All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.hackle.sdk.internal.workspace.dto.kt Maven / Gradle / Ivy

The newest version!
package io.hackle.sdk.internal.workspace

internal data class WorkspaceConfigDto(
    val workspace: WorkspaceDto,
    val experiments: List,
    val featureFlags: List,
    val buckets: List,
    val events: List,
    val segments: List,
    val containers: List,
    val parameterConfigurations: List,
    val remoteConfigParameters: List,
)

internal data class WorkspaceDto(
    val id: Long,
    val environment: EnvironmentDto
)

internal data class EnvironmentDto(
    val id: Long,
)

internal data class ExperimentDto(
    val id: Long,
    val key: Long,
    val name: String?,
    val status: String,
    val version: Int,
    val variations: List,
    val execution: ExecutionDto,
    val winnerVariationId: Long?,
    val identifierType: String,
    val containerId: Long?
)

internal data class VariationDto(
    val id: Long,
    val key: String,
    val status: String,
    val parameterConfigurationId: Long?,
)

internal data class ExecutionDto(
    val status: String,
    val version: Int,
    val userOverrides: List,
    val segmentOverrides: List,
    val targetAudiences: List,
    val targetRules: List,
    val defaultRule: TargetActionDto,
)

internal data class UserOverrideDto(
    val userId: String,
    val variationId: Long,
)

internal data class BucketDto(
    val id: Long,
    val seed: Int,
    val slotSize: Int,
    val slots: List,
)

internal data class SlotDto(
    val startInclusive: Int,
    val endExclusive: Int,
    val variationId: Long,
)

internal data class EventTypeDto(
    val id: Long,
    val key: String,
)

internal data class TargetDto(
    val conditions: List
) {
    data class ConditionDto(
        val key: KeyDto,
        val match: MatchDto
    )

    data class KeyDto(
        val type: String,
        val name: String
    )

    data class MatchDto(
        val type: String,
        val operator: String,
        val valueType: String,
        val values: List
    )
}

internal data class TargetActionDto(
    val type: String,
    val variationId: Long?,
    val bucketId: Long?
)

internal data class TargetRuleDto(
    val target: TargetDto,
    val action: TargetActionDto
)

internal data class SegmentDto(
    val id: Long,
    val key: String,
    val type: String,
    val targets: List,
)

internal data class ContainerDto(
    val id: Long,
    val environmentId: Long,
    val bucketId: Long,
    val groups: List
)

internal data class ContainerGroupDto(
    val id: Long,
    val experiments: List
)


internal data class ParameterConfigurationDto(
    val id: Long,
    val parameters: List
) {
    data class ParameterDto(
        val key: String,
        val value: Any,
    )
}

internal data class RemoteConfigParameterDto(
    val id: Long,
    val key: String,
    val type: String,
    val identifierType: String,
    val targetRules: List,
    val defaultValue: ValueDto,
) {

    data class TargetRuleDto(
        val key: String,
        val name: String,
        val target: TargetDto,
        val bucketId: Long,
        val value: ValueDto
    )

    data class ValueDto(
        val id: Long,
        val value: Any
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy