From 1fe904ea5abef8b3e98b4e1a90c2053035a33604 Mon Sep 17 00:00:00 2001 From: abbaseya <8595210+abbaseya@users.noreply.github.com> Date: Mon, 10 Aug 2026 23:39:02 +0000 Subject: [PATCH] feat(types): automated Kotlin serving API types update --- .../core/model/generated/ConfigExperience.kt | 3 +- .../ExperienceChangeCustomCodeDataUpdate.kt | 2 +- ...xperienceChangeCustomCodeDataUpdateNoId.kt | 2 +- .../ExperienceChangeDefaultCodeDataUpdate.kt | 2 +- ...perienceChangeDefaultCodeDataUpdateNoId.kt | 2 +- ...nceChangeDefaultCodeMultipageDataUpdate.kt | 2 +- ...hangeDefaultCodeMultipageDataUpdateNoId.kt | 2 +- ...perienceChangeDefaultRedirectDataUpdate.kt | 2 +- ...enceChangeDefaultRedirectDataUpdateNoId.kt | 2 +- .../ExperienceChangeFullStackFeatureUpdate.kt | 2 +- ...erienceChangeFullStackFeatureUpdateNoId.kt | 2 +- ...ExperienceChangeRichStructureDataUpdate.kt | 2 +- ...rienceChangeRichStructureDataUpdateNoId.kt | 2 +- .../ExperienceKeyBucketedMatchRule.kt | 51 ++++++++++++++ ...rienceKeyBucketedMatchRuleAllOfMatching.kt | 46 +++++++++++++ ...> ExperienceKeyBucketedMatchRulesTypes.kt} | 28 +++----- ...ketedMatchRulesTypesNullableSerializer.kt} | 18 ++--- .../sdk/core/model/generated/GASettings.kt | 1 + .../core/model/generated/NumericOutlier.kt | 7 +- .../generated/NumericOutlierPercentile.kt | 17 ++--- .../NumericOutlierPercentileAllOfMax.kt | 36 ---------- .../NumericOutlierPercentileAllOfMin.kt | 36 ---------- .../generated/PlanStatusNullableSerializer.kt | 64 ------------------ .../sdk/core/model/generated/Products.kt | 66 ------------------- .../model/generated/ProjectGASettingsBase.kt | 7 +- .../model/generated/ProjectIntegrationGA3.kt | 5 ++ .../model/generated/ProjectIntegrationGA4.kt | 5 ++ .../sdk/core/model/generated/RuleElement.kt | 1 + .../model/generated/RuleElementAudience.kt | 1 + .../core/model/generated/RuleElementNoUrl.kt | 1 + .../UpdateExperienceChangeRequestData.kt | 50 -------------- .../model/generated/VisitorInsightsBase.kt | 25 +++---- .../model/generated/VisitorInsightsData.kt | 23 ++++++- .../core/model/generated/VisitorSegments.kt | 5 ++ 34 files changed, 199 insertions(+), 321 deletions(-) create mode 100644 packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRule.kt create mode 100644 packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRuleAllOfMatching.kt rename packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/{PlanStatus.kt => ExperienceKeyBucketedMatchRulesTypes.kt} (70%) rename packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/{ProductsNullableSerializer.kt => ExperienceKeyBucketedMatchRulesTypesNullableSerializer.kt} (73%) delete mode 100644 packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentileAllOfMax.kt delete mode 100644 packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentileAllOfMin.kt delete mode 100644 packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/PlanStatusNullableSerializer.kt delete mode 100644 packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/Products.kt delete mode 100644 packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/UpdateExperienceChangeRequestData.kt diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ConfigExperience.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ConfigExperience.kt index e934aad65..91b655d14 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ConfigExperience.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ConfigExperience.kt @@ -21,6 +21,7 @@ import com.convert.sdk.core.model.generated.ConfigExperienceSettings import com.convert.sdk.core.model.generated.ExperienceStatuses import com.convert.sdk.core.model.generated.ExperienceTypes import com.convert.sdk.core.model.generated.ExperienceVariationConfig +import com.convert.sdk.core.model.generated.MultipageExperiencePage import com.convert.sdk.core.model.generated.RuleObject import kotlinx.serialization.Serializable @@ -83,7 +84,7 @@ data class ConfigExperience ( /* Only for multipage experience type */ @SerialName(value = "multipage_pages") - val multipagePages: kotlin.collections.List? = null, + val multipagePages: kotlin.collections.List? = null, @Serializable(with = ExperienceStatusesNullableSerializer::class) @SerialName(value = "status") val status: ExperienceStatuses? = null, diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeCustomCodeDataUpdate.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeCustomCodeDataUpdate.kt index 5e7d65486..b3f5516d7 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeCustomCodeDataUpdate.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeCustomCodeDataUpdate.kt @@ -41,7 +41,7 @@ data class ExperienceChangeCustomCodeDataUpdate ( @SerialName(value = "data") - val `data`: ExperienceChangeCustomCodeDataBaseAllOfData, + val `data`: ExperienceChangeCustomCodeDataBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeCustomCodeDataUpdateNoId.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeCustomCodeDataUpdateNoId.kt index bf6dc5d7a..1df4f170f 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeCustomCodeDataUpdateNoId.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeCustomCodeDataUpdateNoId.kt @@ -36,7 +36,7 @@ data class ExperienceChangeCustomCodeDataUpdateNoId ( @SerialName(value = "data") - val `data`: ExperienceChangeCustomCodeDataBaseAllOfData, + val `data`: ExperienceChangeCustomCodeDataBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeDataUpdate.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeDataUpdate.kt index 62e1b78db..b9c782641 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeDataUpdate.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeDataUpdate.kt @@ -41,7 +41,7 @@ data class ExperienceChangeDefaultCodeDataUpdate ( @SerialName(value = "data") - val `data`: ExperienceChangeDefaultCodeDataBaseAllOfData, + val `data`: ExperienceChangeDefaultCodeDataBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeDataUpdateNoId.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeDataUpdateNoId.kt index 515209264..de7886745 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeDataUpdateNoId.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeDataUpdateNoId.kt @@ -36,7 +36,7 @@ data class ExperienceChangeDefaultCodeDataUpdateNoId ( @SerialName(value = "data") - val `data`: ExperienceChangeDefaultCodeDataBaseAllOfData, + val `data`: ExperienceChangeDefaultCodeDataBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeMultipageDataUpdate.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeMultipageDataUpdate.kt index b133697f1..eb4bdd535 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeMultipageDataUpdate.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeMultipageDataUpdate.kt @@ -41,7 +41,7 @@ data class ExperienceChangeDefaultCodeMultipageDataUpdate ( @SerialName(value = "data") - val `data`: ExperienceChangeDefaultCodeMultipageDataBaseAllOfData, + val `data`: ExperienceChangeDefaultCodeMultipageDataBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeMultipageDataUpdateNoId.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeMultipageDataUpdateNoId.kt index 16b8fd4dc..70c889692 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeMultipageDataUpdateNoId.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultCodeMultipageDataUpdateNoId.kt @@ -36,7 +36,7 @@ data class ExperienceChangeDefaultCodeMultipageDataUpdateNoId ( @SerialName(value = "data") - val `data`: ExperienceChangeDefaultCodeMultipageDataBaseAllOfData, + val `data`: ExperienceChangeDefaultCodeMultipageDataBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultRedirectDataUpdate.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultRedirectDataUpdate.kt index 05aa31794..964632361 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultRedirectDataUpdate.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultRedirectDataUpdate.kt @@ -41,7 +41,7 @@ data class ExperienceChangeDefaultRedirectDataUpdate ( @SerialName(value = "data") - val `data`: ExperienceChangeDefaultRedirectDataBaseAllOfData, + val `data`: ExperienceChangeDefaultRedirectDataBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultRedirectDataUpdateNoId.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultRedirectDataUpdateNoId.kt index a085cdcf1..b00391918 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultRedirectDataUpdateNoId.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeDefaultRedirectDataUpdateNoId.kt @@ -36,7 +36,7 @@ data class ExperienceChangeDefaultRedirectDataUpdateNoId ( @SerialName(value = "data") - val `data`: ExperienceChangeDefaultRedirectDataBaseAllOfData, + val `data`: ExperienceChangeDefaultRedirectDataBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeFullStackFeatureUpdate.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeFullStackFeatureUpdate.kt index 5632bb2de..e7aa12d59 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeFullStackFeatureUpdate.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeFullStackFeatureUpdate.kt @@ -41,7 +41,7 @@ data class ExperienceChangeFullStackFeatureUpdate ( @SerialName(value = "data") - val `data`: ExperienceChangeFullStackFeatureBaseAllOfData, + val `data`: ExperienceChangeFullStackFeatureBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeFullStackFeatureUpdateNoId.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeFullStackFeatureUpdateNoId.kt index 024f00551..39a476537 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeFullStackFeatureUpdateNoId.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeFullStackFeatureUpdateNoId.kt @@ -36,7 +36,7 @@ data class ExperienceChangeFullStackFeatureUpdateNoId ( @SerialName(value = "data") - val `data`: ExperienceChangeFullStackFeatureBaseAllOfData, + val `data`: ExperienceChangeFullStackFeatureBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeRichStructureDataUpdate.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeRichStructureDataUpdate.kt index 380a126a9..660cf1d0a 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeRichStructureDataUpdate.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeRichStructureDataUpdate.kt @@ -41,7 +41,7 @@ data class ExperienceChangeRichStructureDataUpdate ( @Contextual @SerialName(value = "data") - val `data`: ExperienceChangeRichStructureDataBaseAllOfData, + val `data`: ExperienceChangeRichStructureDataBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeRichStructureDataUpdateNoId.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeRichStructureDataUpdateNoId.kt index 1268055c9..b86ab890a 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeRichStructureDataUpdateNoId.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceChangeRichStructureDataUpdateNoId.kt @@ -36,7 +36,7 @@ data class ExperienceChangeRichStructureDataUpdateNoId ( @Contextual @SerialName(value = "data") - val `data`: ExperienceChangeRichStructureDataBaseAllOfData, + val `data`: ExperienceChangeRichStructureDataBaseAllOfData? = null, /* A server-generated hash that represents the object's state at the time of retrieval. When included in an update request, the operation will only succeed if the object hasn't been modified since this key was obtained. If another update has occurred in the meantime, the request will fail with a conflict error, requiring you to fetch the latest version and retry your update with the new concurrency_key. This implements optimistic concurrency control to prevent lost updates in concurrent scenarios. */ @SerialName(value = "concurrency_key") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRule.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRule.kt new file mode 100644 index 000000000..ae3523001 --- /dev/null +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRule.kt @@ -0,0 +1,51 @@ +// This file is auto-generated by openapi-generator — do not edit. Regenerate via `yarn generateKotlinTypes` in the backend/apiDoc/serving directory, then sync. +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package com.convert.sdk.core.model.generated + +import com.convert.sdk.core.model.generated.ExperienceKeyBucketedMatchRuleAllOfMatching +import com.convert.sdk.core.model.generated.ExperienceKeyBucketedMatchRulesTypes + +import kotlinx.serialization.Serializable +import kotlinx.serialization.SerialName +import kotlinx.serialization.Contextual + +/** + * + * + * @param ruleType + * @param `value` The value used to match against 'rule_type' using 'matching' + * @param matching + */ +@Serializable + +data class ExperienceKeyBucketedMatchRule ( + + @Contextual @SerialName(value = "rule_type") + val ruleType: ExperienceKeyBucketedMatchRulesTypes, + + /* The value used to match against 'rule_type' using 'matching' */ + @SerialName(value = "value") + val `value`: kotlin.String? = null, + + @SerialName(value = "matching") + val matching: ExperienceKeyBucketedMatchRuleAllOfMatching? = null + +) { + + +} + diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRuleAllOfMatching.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRuleAllOfMatching.kt new file mode 100644 index 000000000..540f12d17 --- /dev/null +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRuleAllOfMatching.kt @@ -0,0 +1,46 @@ +// This file is auto-generated by openapi-generator — do not edit. Regenerate via `yarn generateKotlinTypes` in the backend/apiDoc/serving directory, then sync. +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package com.convert.sdk.core.model.generated + +import com.convert.sdk.core.model.generated.ChoiceMatchingOptions + +import kotlinx.serialization.Serializable +import kotlinx.serialization.SerialName +import kotlinx.serialization.Contextual + +/** + * + * + * @param negated If `true`, the logical result of the match is inverted. For example, if `match_type` is 'contains' and `value` is 'apple', `negated: true` means the rule matches if the attribute *does not* contain 'apple'. + * @param matchType + */ +@Serializable + +data class ExperienceKeyBucketedMatchRuleAllOfMatching ( + + /* If `true`, the logical result of the match is inverted. For example, if `match_type` is 'contains' and `value` is 'apple', `negated: true` means the rule matches if the attribute *does not* contain 'apple'. */ + @SerialName(value = "negated") + val negated: kotlin.Boolean? = null, + + @Serializable(with = ChoiceMatchingOptionsNullableSerializer::class) @SerialName(value = "match_type") + val matchType: ChoiceMatchingOptions? = null + +) { + + +} + diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/PlanStatus.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRulesTypes.kt similarity index 70% rename from packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/PlanStatus.kt rename to packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRulesTypes.kt index 531df31b6..6a52a7bc3 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/PlanStatus.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRulesTypes.kt @@ -21,27 +21,15 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable /** - * Account billing status + * * - * Values: PAID,TRIAL,TRIAL_EXPIRED,CANCELED,PAUSED + * Values: BUCKETED_INTO_EXPERIENCE_KEY */ @Serializable -enum class PlanStatus(val value: kotlin.String) { +enum class ExperienceKeyBucketedMatchRulesTypes(val value: kotlin.String) { - @SerialName(value = "paid") - PAID("paid"), - - @SerialName(value = "trial") - TRIAL("trial"), - - @SerialName(value = "trialExpired") - TRIAL_EXPIRED("trialExpired"), - - @SerialName(value = "canceled") - CANCELED("canceled"), - - @SerialName(value = "paused") - PAUSED("paused"); + @SerialName(value = "bucketed_into_experience_key") + BUCKETED_INTO_EXPERIENCE_KEY("bucketed_into_experience_key"); /** * Override [toString()] to avoid using the enum variable name as the value, and instead use @@ -56,12 +44,12 @@ enum class PlanStatus(val value: kotlin.String) { /** * Converts the provided [data] to a [String] on success, null otherwise. */ - fun encode(data: kotlin.Any?): kotlin.String? = if (data is PlanStatus) "$data" else null + fun encode(data: kotlin.Any?): kotlin.String? = if (data is ExperienceKeyBucketedMatchRulesTypes) "$data" else null /** - * Returns a valid [PlanStatus] for [data], null otherwise. + * Returns a valid [ExperienceKeyBucketedMatchRulesTypes] for [data], null otherwise. */ - fun decode(data: kotlin.Any?): PlanStatus? = data?.let { + fun decode(data: kotlin.Any?): ExperienceKeyBucketedMatchRulesTypes? = data?.let { val normalizedData = "$it".lowercase() values().firstOrNull { value -> it == value || normalizedData == "$value".lowercase() diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProductsNullableSerializer.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRulesTypesNullableSerializer.kt similarity index 73% rename from packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProductsNullableSerializer.kt rename to packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRulesTypesNullableSerializer.kt index 0aecd54cb..8cec624bb 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProductsNullableSerializer.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ExperienceKeyBucketedMatchRulesTypesNullableSerializer.kt @@ -14,14 +14,14 @@ import kotlinx.serialization.json.JsonNull import kotlinx.serialization.json.JsonPrimitive /** - * KSerializer that decodes unknown wire values to null + * KSerializer that decodes unknown wire values to null * instead of throwing SerializationException. Auto-generated by * patchKotlinGeneratorBugs.js Rule 9 from `@Serializable enum class - * Products`. Closes the F-170 crash class (unknown enum value + * ExperienceKeyBucketedMatchRulesTypes`. Closes the F-170 crash class (unknown enum value * in CDN payload bricks the SDK). * - * Wired via property-level `@Serializable(with = ProductsNullableSerializer::class)` - * on every `val

: Products?` declaration in any generated + * Wired via property-level `@Serializable(with = ExperienceKeyBucketedMatchRulesTypesNullableSerializer::class)` + * on every `val

: ExperienceKeyBucketedMatchRulesTypes?` declaration in any generated * class file (Rule 9 sweep). NO SerializersModule registration * needed — compile-time per-property binding is type-safe. * @@ -32,11 +32,11 @@ import kotlinx.serialization.json.JsonPrimitive * Do not edit. */ @OptIn(ExperimentalSerializationApi::class) -internal object ProductsNullableSerializer : KSerializer { - private val backing = Products.serializer() +internal object ExperienceKeyBucketedMatchRulesTypesNullableSerializer : KSerializer { + private val backing = ExperienceKeyBucketedMatchRulesTypes.serializer() override val descriptor: SerialDescriptor = backing.descriptor.nullable - override fun deserialize(decoder: Decoder): Products? { + override fun deserialize(decoder: Decoder): ExperienceKeyBucketedMatchRulesTypes? { val jsonDecoder = decoder as? JsonDecoder ?: return try { backing.deserialize(decoder) } catch (e: SerializationException) { null } val element = jsonDecoder.decodeJsonElement() @@ -50,10 +50,10 @@ internal object ProductsNullableSerializer : KSerializer { // openapi-generator's kotlinx_serialization output emits both // shapes; Percentiles is the BigDecimal-valued case in the // current spec. - return Products.entries.firstOrNull { it.value.toString() == content } + return ExperienceKeyBucketedMatchRulesTypes.entries.firstOrNull { it.value.toString() == content } } - override fun serialize(encoder: Encoder, value: Products?) { + override fun serialize(encoder: Encoder, value: ExperienceKeyBucketedMatchRulesTypes?) { if (value == null) { val jsonEncoder = encoder as? JsonEncoder if (jsonEncoder != null) jsonEncoder.encodeJsonElement(JsonNull) else encoder.encodeNull() diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/GASettings.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/GASettings.kt index fec3371ea..7684876e3 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/GASettings.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/GASettings.kt @@ -28,6 +28,7 @@ import kotlinx.serialization.Contextual * * @param enabled If true, integration with Google Analytics is enabled for this project or experience, allowing experiment data to be sent to GA. * @param autoRevenueTracking Attempt to pull revenue data from Google Analytics Revenue Tracking code. + * @param trackFirstExposureOnly When enabled, the experience_impression event is sent only the first time a visitor is exposed to an experience, instead of on every subsequent qualifying page view. Opt-in and disabled by default. * @param type * @param propertyUA The Universal Analytics Property ID (e.g., \"UA-XXXXXXXX-Y\") to which Convert experiment data will be sent. * @param measurementId The GA4 Measurement ID (e.g., \"G-XXXXXXXXXX\") for the data stream where Convert experiment data will be sent. diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlier.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlier.kt index 59d28638f..287c82f96 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlier.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlier.kt @@ -19,8 +19,7 @@ package com.convert.sdk.core.model.generated import com.convert.sdk.core.model.generated.NumericOutlierMinMax import com.convert.sdk.core.model.generated.NumericOutlierNone import com.convert.sdk.core.model.generated.NumericOutlierPercentile -import com.convert.sdk.core.model.generated.NumericOutlierPercentileAllOfMax -import com.convert.sdk.core.model.generated.NumericOutlierPercentileAllOfMin +import com.convert.sdk.core.model.generated.Percentiles import kotlinx.serialization.Serializable import kotlinx.serialization.SerialName @@ -30,8 +29,8 @@ import kotlinx.serialization.Contextual * * * @param detectionType - * @param min - * @param max + * @param min Minimum percentile value for the outlier detection; values outside this percentile are considered outliers + * @param max Maximum percentile value for the outlier detection; values outside this percentile are considered outliers */ @OptIn(kotlinx.serialization.ExperimentalSerializationApi::class) @kotlinx.serialization.Serializable diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentile.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentile.kt index b5c48a975..6cf11176c 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentile.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentile.kt @@ -16,8 +16,7 @@ package com.convert.sdk.core.model.generated -import com.convert.sdk.core.model.generated.NumericOutlierPercentileAllOfMax -import com.convert.sdk.core.model.generated.NumericOutlierPercentileAllOfMin +import com.convert.sdk.core.model.generated.Percentiles import kotlinx.serialization.Serializable import kotlinx.serialization.SerialName @@ -27,8 +26,8 @@ import kotlinx.serialization.Contextual * * * @param detectionType - * @param min - * @param max + * @param min Minimum percentile value for the outlier detection; values outside this percentile are considered outliers + * @param max Maximum percentile value for the outlier detection; values outside this percentile are considered outliers */ @kotlinx.serialization.SerialName("percentile") @Serializable @@ -36,11 +35,13 @@ import kotlinx.serialization.Contextual data class NumericOutlierPercentile ( - @SerialName(value = "min") - val min: NumericOutlierPercentileAllOfMin? = null, + /* Minimum percentile value for the outlier detection; values outside this percentile are considered outliers */ + @Serializable(with = PercentilesNullableSerializer::class) @SerialName(value = "min") + val min: Percentiles? = null, - @SerialName(value = "max") - val max: NumericOutlierPercentileAllOfMax? = null + /* Maximum percentile value for the outlier detection; values outside this percentile are considered outliers */ + @Serializable(with = PercentilesNullableSerializer::class) @SerialName(value = "max") + val max: Percentiles? = null ) : NumericOutlier { diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentileAllOfMax.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentileAllOfMax.kt deleted file mode 100644 index 3cf53bca5..000000000 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentileAllOfMax.kt +++ /dev/null @@ -1,36 +0,0 @@ -// This file is auto-generated by openapi-generator — do not edit. Regenerate via `yarn generateKotlinTypes` in the backend/apiDoc/serving directory, then sync. -/** - * - * Please note: - * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * Do not edit this file manually. - * - */ - -@file:Suppress( - "ArrayInDataClass", - "EnumEntryName", - "RemoveRedundantQualifierName", - "UnusedImport" -) - -package com.convert.sdk.core.model.generated - - -import kotlinx.serialization.Serializable -import kotlinx.serialization.SerialName -import kotlinx.serialization.Contextual - -/** - * - * - */ -@Serializable - -class NumericOutlierPercentileAllOfMax ( - -) { - - -} - diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentileAllOfMin.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentileAllOfMin.kt deleted file mode 100644 index f0eb0aa38..000000000 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/NumericOutlierPercentileAllOfMin.kt +++ /dev/null @@ -1,36 +0,0 @@ -// This file is auto-generated by openapi-generator — do not edit. Regenerate via `yarn generateKotlinTypes` in the backend/apiDoc/serving directory, then sync. -/** - * - * Please note: - * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * Do not edit this file manually. - * - */ - -@file:Suppress( - "ArrayInDataClass", - "EnumEntryName", - "RemoveRedundantQualifierName", - "UnusedImport" -) - -package com.convert.sdk.core.model.generated - - -import kotlinx.serialization.Serializable -import kotlinx.serialization.SerialName -import kotlinx.serialization.Contextual - -/** - * - * - */ -@Serializable - -class NumericOutlierPercentileAllOfMin ( - -) { - - -} - diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/PlanStatusNullableSerializer.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/PlanStatusNullableSerializer.kt deleted file mode 100644 index 469f8a43b..000000000 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/PlanStatusNullableSerializer.kt +++ /dev/null @@ -1,64 +0,0 @@ -// This file is auto-generated by openapi-generator — do not edit. Regenerate via `yarn generateKotlinTypes` in the backend/apiDoc/serving directory, then sync. -package com.convert.sdk.core.model.generated - -import kotlinx.serialization.ExperimentalSerializationApi -import kotlinx.serialization.KSerializer -import kotlinx.serialization.SerializationException -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.descriptors.nullable -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder -import kotlinx.serialization.json.JsonDecoder -import kotlinx.serialization.json.JsonEncoder -import kotlinx.serialization.json.JsonNull -import kotlinx.serialization.json.JsonPrimitive - -/** - * KSerializer that decodes unknown wire values to null - * instead of throwing SerializationException. Auto-generated by - * patchKotlinGeneratorBugs.js Rule 9 from `@Serializable enum class - * PlanStatus`. Closes the F-170 crash class (unknown enum value - * in CDN payload bricks the SDK). - * - * Wired via property-level `@Serializable(with = PlanStatusNullableSerializer::class)` - * on every `val

: PlanStatus?` declaration in any generated - * class file (Rule 9 sweep). NO SerializersModule registration - * needed — compile-time per-property binding is type-safe. - * - * Round-trip identity for unknown wire values is lossy by design - * (decode to null, re-encode to null). Preserving the raw token is - * deferred to a future story (Story 1-5 AC-13(h)). - * - * Do not edit. - */ -@OptIn(ExperimentalSerializationApi::class) -internal object PlanStatusNullableSerializer : KSerializer { - private val backing = PlanStatus.serializer() - override val descriptor: SerialDescriptor = backing.descriptor.nullable - - override fun deserialize(decoder: Decoder): PlanStatus? { - val jsonDecoder = decoder as? JsonDecoder - ?: return try { backing.deserialize(decoder) } catch (e: SerializationException) { null } - val element = jsonDecoder.decodeJsonElement() - if (element is JsonNull) return null - val primitive = element as? JsonPrimitive ?: return null - val content = primitive.content - // Compare via toString() to unify lookup across String-valued - // enums (where value: String, toString()==value) and BigDecimal- - // valued enums (Rule 1's handling — value: java.math.BigDecimal, - // toString() yields the numeric string "5", "25", etc.). The - // openapi-generator's kotlinx_serialization output emits both - // shapes; Percentiles is the BigDecimal-valued case in the - // current spec. - return PlanStatus.entries.firstOrNull { it.value.toString() == content } - } - - override fun serialize(encoder: Encoder, value: PlanStatus?) { - if (value == null) { - val jsonEncoder = encoder as? JsonEncoder - if (jsonEncoder != null) jsonEncoder.encodeJsonElement(JsonNull) else encoder.encodeNull() - return - } - backing.serialize(encoder, value) - } -} diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/Products.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/Products.kt deleted file mode 100644 index 2e015d415..000000000 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/Products.kt +++ /dev/null @@ -1,66 +0,0 @@ -// This file is auto-generated by openapi-generator — do not edit. Regenerate via `yarn generateKotlinTypes` in the backend/apiDoc/serving directory, then sync. -/** - * - * Please note: - * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * Do not edit this file manually. - * - */ - -@file:Suppress( - "ArrayInDataClass", - "EnumEntryName", - "RemoveRedundantQualifierName", - "UnusedImport" -) - -package com.convert.sdk.core.model.generated - - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -/** - * The Convert product line this billing plan pertains to. - `experiences`: Relates to A/B testing, MVT, Split URL, and personalization features. - `deploy`: Relates to the \"Deploy\" feature for rolling out changes to specific audiences without A/B testing reports. Knowledge Base: \"Deployments have the potential to contain small segments...and this could be interpreted by Privacy Authorities in Europe as identification of data subjects.\" - `addons`: Relates to add-on products that extend the core platform capabilities. - * - * Values: EXPERIENCES,DEPLOY,ADDONS - */ -@Serializable -enum class Products(val value: kotlin.String) { - - @SerialName(value = "experiences") - EXPERIENCES("experiences"), - - @SerialName(value = "deploy") - DEPLOY("deploy"), - - @SerialName(value = "addons") - ADDONS("addons"); - - /** - * Override [toString()] to avoid using the enum variable name as the value, and instead use - * the actual value defined in the API spec file. - * - * This solves a problem when the variable name and its value are different, and ensures that - * the client sends the correct enum values to the server always. - */ - override fun toString(): kotlin.String = value - - companion object { - /** - * Converts the provided [data] to a [String] on success, null otherwise. - */ - fun encode(data: kotlin.Any?): kotlin.String? = if (data is Products) "$data" else null - - /** - * Returns a valid [Products] for [data], null otherwise. - */ - fun decode(data: kotlin.Any?): Products? = data?.let { - val normalizedData = "$it".lowercase() - values().firstOrNull { value -> - it == value || normalizedData == "$value".lowercase() - } - } - } -} - diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectGASettingsBase.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectGASettingsBase.kt index 7b6be5adf..14149ad83 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectGASettingsBase.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectGASettingsBase.kt @@ -26,6 +26,7 @@ import kotlinx.serialization.Contextual * * @param enabled If true, integration with Google Analytics is enabled for this project or experience, allowing experiment data to be sent to GA. * @param autoRevenueTracking Attempt to pull revenue data from Google Analytics Revenue Tracking code. + * @param trackFirstExposureOnly When enabled, the experience_impression event is sent only the first time a visitor is exposed to an experience, instead of on every subsequent qualifying page view. Opt-in and disabled by default. */ @Serializable @@ -37,7 +38,11 @@ data class ProjectGASettingsBase ( /* Attempt to pull revenue data from Google Analytics Revenue Tracking code. */ @SerialName(value = "auto_revenue_tracking") - val autoRevenueTracking: kotlin.Boolean? = null + val autoRevenueTracking: kotlin.Boolean? = null, + + /* When enabled, the experience_impression event is sent only the first time a visitor is exposed to an experience, instead of on every subsequent qualifying page view. Opt-in and disabled by default. */ + @SerialName(value = "track_first_exposure_only") + val trackFirstExposureOnly: kotlin.Boolean? = false ) { diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectIntegrationGA3.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectIntegrationGA3.kt index d9f0c99b8..dd67ba09f 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectIntegrationGA3.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectIntegrationGA3.kt @@ -26,6 +26,7 @@ import kotlinx.serialization.Contextual * * @param enabled If true, integration with Google Analytics is enabled for this project or experience, allowing experiment data to be sent to GA. * @param autoRevenueTracking Attempt to pull revenue data from Google Analytics Revenue Tracking code. + * @param trackFirstExposureOnly When enabled, the experience_impression event is sent only the first time a visitor is exposed to an experience, instead of on every subsequent qualifying page view. Opt-in and disabled by default. * @param type * @param propertyUA The Universal Analytics Property ID (e.g., \"UA-XXXXXXXX-Y\") to which Convert experiment data will be sent. */ @@ -42,6 +43,10 @@ data class ProjectIntegrationGA3 ( @SerialName(value = "auto_revenue_tracking") val autoRevenueTracking: kotlin.Boolean? = null, + /* When enabled, the experience_impression event is sent only the first time a visitor is exposed to an experience, instead of on every subsequent qualifying page view. Opt-in and disabled by default. */ + @SerialName(value = "track_first_exposure_only") + val trackFirstExposureOnly: kotlin.Boolean? = false, + /* The Universal Analytics Property ID (e.g., \"UA-XXXXXXXX-Y\") to which Convert experiment data will be sent. */ @SerialName(value = "property_UA") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectIntegrationGA4.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectIntegrationGA4.kt index 6412f5009..aec35f4cd 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectIntegrationGA4.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/ProjectIntegrationGA4.kt @@ -26,6 +26,7 @@ import kotlinx.serialization.Contextual * * @param enabled If true, integration with Google Analytics is enabled for this project or experience, allowing experiment data to be sent to GA. * @param autoRevenueTracking Attempt to pull revenue data from Google Analytics Revenue Tracking code. + * @param trackFirstExposureOnly When enabled, the experience_impression event is sent only the first time a visitor is exposed to an experience, instead of on every subsequent qualifying page view. Opt-in and disabled by default. * @param type * @param measurementId The GA4 Measurement ID (e.g., \"G-XXXXXXXXXX\") for the data stream where Convert experiment data will be sent. * @param noWaitPageview Boolean indicating whether to wait for the page view event to complete before sending other events. @@ -43,6 +44,10 @@ data class ProjectIntegrationGA4 ( @SerialName(value = "auto_revenue_tracking") val autoRevenueTracking: kotlin.Boolean? = null, + /* When enabled, the experience_impression event is sent only the first time a visitor is exposed to an experience, instead of on every subsequent qualifying page view. Opt-in and disabled by default. */ + @SerialName(value = "track_first_exposure_only") + val trackFirstExposureOnly: kotlin.Boolean? = false, + /* The GA4 Measurement ID (e.g., \"G-XXXXXXXXXX\") for the data stream where Convert experiment data will be sent. */ @SerialName(value = "measurementId") diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElement.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElement.kt index a1cf9930d..c4e6b3586 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElement.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElement.kt @@ -20,6 +20,7 @@ import com.convert.sdk.core.model.generated.BrowserNameMatchRule import com.convert.sdk.core.model.generated.CookieMatchRule import com.convert.sdk.core.model.generated.CountryMatchRule import com.convert.sdk.core.model.generated.DayOfWeekMatchRule +import com.convert.sdk.core.model.generated.ExperienceKeyBucketedMatchRule import com.convert.sdk.core.model.generated.GenericBoolKeyValueMatchRule import com.convert.sdk.core.model.generated.GenericBoolMatchRule import com.convert.sdk.core.model.generated.GenericNumericKeyValueMatchRule diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElementAudience.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElementAudience.kt index 2f10d3f0c..a1c3e7207 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElementAudience.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElementAudience.kt @@ -20,6 +20,7 @@ import com.convert.sdk.core.model.generated.BrowserNameMatchRule import com.convert.sdk.core.model.generated.CookieMatchRule import com.convert.sdk.core.model.generated.CountryMatchRule import com.convert.sdk.core.model.generated.DayOfWeekMatchRule +import com.convert.sdk.core.model.generated.ExperienceKeyBucketedMatchRule import com.convert.sdk.core.model.generated.GenericBoolKeyValueMatchRule import com.convert.sdk.core.model.generated.GenericBoolMatchRule import com.convert.sdk.core.model.generated.GenericNumericKeyValueMatchRule diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElementNoUrl.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElementNoUrl.kt index f3688ecb0..c96a77b35 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElementNoUrl.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/RuleElementNoUrl.kt @@ -20,6 +20,7 @@ import com.convert.sdk.core.model.generated.BrowserNameMatchRule import com.convert.sdk.core.model.generated.CookieMatchRule import com.convert.sdk.core.model.generated.CountryMatchRule import com.convert.sdk.core.model.generated.DayOfWeekMatchRule +import com.convert.sdk.core.model.generated.ExperienceKeyBucketedMatchRule import com.convert.sdk.core.model.generated.GenericBoolKeyValueMatchRule import com.convert.sdk.core.model.generated.GenericBoolMatchRule import com.convert.sdk.core.model.generated.GenericNumericKeyValueMatchRule diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/UpdateExperienceChangeRequestData.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/UpdateExperienceChangeRequestData.kt deleted file mode 100644 index b4fec5925..000000000 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/UpdateExperienceChangeRequestData.kt +++ /dev/null @@ -1,50 +0,0 @@ -// This file is auto-generated by openapi-generator — do not edit. Regenerate via `yarn generateKotlinTypes` in the backend/apiDoc/serving directory, then sync. -/** - * - * Please note: - * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * Do not edit this file manually. - * - */ - -@file:Suppress( - "ArrayInDataClass", - "EnumEntryName", - "RemoveRedundantQualifierName", - "UnusedImport" -) - -package com.convert.sdk.core.model.generated - -import com.convert.sdk.core.model.generated.ExperienceChangeAdd - -import kotlinx.serialization.Serializable -import kotlinx.serialization.SerialName -import kotlinx.serialization.Contextual - -/** - * - * - * @param type - * @param `data` - * @param id The unique numerical identifier for this specific change. - */ -@Serializable - -class UpdateExperienceChangeRequestData ( - - @SerialName(value = "type") - val type: kotlin.String, - - @Contextual @SerialName(value = "data") - val `data`: kotlin.Any?, - - /* The unique numerical identifier for this specific change. */ - @SerialName(value = "id") - val id: kotlin.Int? = null - -) { - - -} - diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorInsightsBase.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorInsightsBase.kt index fab9048ee..0ba7becc5 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorInsightsBase.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorInsightsBase.kt @@ -27,6 +27,7 @@ import kotlinx.serialization.Contextual * @param enabled If true, Convert Signals™ is enabled for the project, allowing the system to capture sessions exhibiting user frustration or usability issues. * @param obfuscateText True when all text elements (apart from placeholders) should be obfuscated inside a recording. * @param samplingRate The percentage of visitors included in sampling for Convert Signals session recordings and Heatmaps for this project. Higher values collect data from a larger share of traffic and consume allocation faster. + * @param heatmapVisitsLimit Maximum number of visits per variation used when generating a heatmap for this project. Applies to newly created heatmaps when an experience is activated. */ @Serializable @@ -38,27 +39,29 @@ data class VisitorInsightsBase ( /* True when all text elements (apart from placeholders) should be obfuscated inside a recording. */ @SerialName(value = "obfuscate_text") - val obfuscateText: kotlin.Boolean? = true, + val obfuscateText: kotlin.Boolean? = false, /* The percentage of visitors included in sampling for Convert Signals session recordings and Heatmaps for this project. Higher values collect data from a larger share of traffic and consume allocation faster. */ @SerialName(value = "sampling_rate") - val samplingRate: VisitorInsightsBase.SamplingRate? = SamplingRate._5 + val samplingRate: kotlin.Int? = 5, + + /* Maximum number of visits per variation used when generating a heatmap for this project. Applies to newly created heatmaps when an experience is activated. */ + @SerialName(value = "heatmap_visits_limit") + val heatmapVisitsLimit: VisitorInsightsBase.HeatmapVisitsLimit? = HeatmapVisitsLimit._2500 ) { /** - * The percentage of visitors included in sampling for Convert Signals session recordings and Heatmaps for this project. Higher values collect data from a larger share of traffic and consume allocation faster. + * Maximum number of visits per variation used when generating a heatmap for this project. Applies to newly created heatmaps when an experience is activated. * - * Values: _5,_10,_20,_30,_40,_50 + * Values: _2500,_5000,_10000,_15000 */ @Serializable - enum class SamplingRate(val value: kotlin.Int) { - @SerialName(value = "5") _5(5), - @SerialName(value = "10") _10(10), - @SerialName(value = "20") _20(20), - @SerialName(value = "30") _30(30), - @SerialName(value = "40") _40(40), - @SerialName(value = "50") _50(50); + enum class HeatmapVisitsLimit(val value: kotlin.Int) { + @SerialName(value = "2500") _2500(2500), + @SerialName(value = "5000") _5000(5000), + @SerialName(value = "10000") _10000(10000), + @SerialName(value = "15000") _15000(15000); } } diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorInsightsData.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorInsightsData.kt index 0ff9963e4..886ba1dcb 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorInsightsData.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorInsightsData.kt @@ -27,6 +27,7 @@ import kotlinx.serialization.Contextual * @param enabled If true, Convert Signals™ is enabled for the project, allowing the system to capture sessions exhibiting user frustration or usability issues. * @param obfuscateText True when all text elements (apart from placeholders) should be obfuscated inside a recording. * @param samplingRate The sampling rate for tracking events. + * @param heatmapVisitsLimit Maximum number of visits per variation used when generating a heatmap for this project. Applies to newly created heatmaps when an experience is activated. * @param trackingId The tracking ID for Visitor Insights. */ @Serializable @@ -39,11 +40,15 @@ data class VisitorInsightsData ( /* True when all text elements (apart from placeholders) should be obfuscated inside a recording. */ @SerialName(value = "obfuscate_text") - val obfuscateText: kotlin.Boolean? = true, + val obfuscateText: kotlin.Boolean? = false, /* The sampling rate for tracking events. */ - @Contextual @SerialName(value = "sampling_rate") - val samplingRate: java.math.BigDecimal? = java.math.BigDecimal("5"), + @SerialName(value = "sampling_rate") + val samplingRate: kotlin.Int? = 5, + + /* Maximum number of visits per variation used when generating a heatmap for this project. Applies to newly created heatmaps when an experience is activated. */ + @SerialName(value = "heatmap_visits_limit") + val heatmapVisitsLimit: VisitorInsightsData.HeatmapVisitsLimit? = HeatmapVisitsLimit._2500, /* The tracking ID for Visitor Insights. */ @SerialName(value = "tracking_id") @@ -51,6 +56,18 @@ data class VisitorInsightsData ( ) { + /** + * Maximum number of visits per variation used when generating a heatmap for this project. Applies to newly created heatmaps when an experience is activated. + * + * Values: _2500,_5000,_10000,_15000 + */ + @Serializable + enum class HeatmapVisitsLimit(val value: kotlin.Int) { + @SerialName(value = "2500") _2500(2500), + @SerialName(value = "5000") _5000(5000), + @SerialName(value = "10000") _10000(10000), + @SerialName(value = "15000") _15000(15000); + } } diff --git a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorSegments.kt b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorSegments.kt index 534e9da7b..fe65c9155 100644 --- a/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorSegments.kt +++ b/packages/core/src/main/kotlin/com/convert/sdk/core/model/generated/VisitorSegments.kt @@ -28,6 +28,7 @@ import kotlinx.serialization.Contextual * @param devices List of device classes that the visitor device falls into * @param source Traffic source * @param campaign Campaign string + * @param content Content string (ad-creative identifier from utm_content) * @param visitorType Type of the visitor * @param country Two ISO country code for visitor's country * @param customSegments Custom Segments as defined inside Convert app. This will be the list of segments' IDs @@ -52,6 +53,10 @@ data class VisitorSegments ( @SerialName(value = "campaign") val campaign: kotlin.String? = null, + /* Content string (ad-creative identifier from utm_content) */ + @SerialName(value = "content") + val content: kotlin.String? = null, + /* Type of the visitor */ @SerialName(value = "visitorType") val visitorType: VisitorSegments.VisitorType? = null,