Package-level declarations

Types

Link copied to clipboard
@Serializable
@SerialName(value = "allowList")
data class AllowListStrategy(val allowedList: Set<String>) : FlippingStrategy

A strategy that enables a feature only for users in an allowed list.

Link copied to clipboard
@Serializable
@SerialName(value = "alwaysFalse")
data object AlwaysFalseFlippingStrategy : FlippingStrategy

A strategy that always evaluates to false.

Link copied to clipboard
@Serializable
@SerialName(value = "alwaysTrue")
data object AlwaysTrueFlippingStrategy : FlippingStrategy

A strategy that always evaluates to true.

Link copied to clipboard
@Serializable
@SerialName(value = "and")
data class AndStrategy(val strategies: List<FlippingStrategy>) : FlippingStrategy

A composite strategy that evaluates to true only if all child strategies evaluate to true.

Link copied to clipboard
@Serializable
@SerialName(value = "clientFilter")
data class ClientFilterStrategy(val grantedClients: Set<String> = emptySet()) : FlippingStrategy

A strategy that enables a feature only for requests from specific client hostnames.

Link copied to clipboard
@Serializable
@SerialName(value = "dailyHours")
data class DailyHoursStrategy(val startHour: Int, val endHour: Int, val timezone: TimeZone = TimeZone.UTC, clock: Clock = Clock.System) : FlippingStrategy

A strategy that enables a feature only during specific hours of the day.

Link copied to clipboard
@Serializable
@SerialName(value = "dateRange")
data class DateRangeStrategy(val startDate: Instant, val endDate: Instant, clock: Clock = Clock.System) : FlippingStrategy

A strategy that enables a feature only within a specified time range.

Link copied to clipboard
@Serializable
@SerialName(value = "denyList")
data class DenyListStrategy(val denyList: Set<String>) : FlippingStrategy

A strategy that disables a feature for users in a deny list.

Link copied to clipboard
@Serializable
@SerialName(value = "not")
data class NotStrategy(val strategy: FlippingStrategy) : FlippingStrategy

A composite strategy that negates the result of another strategy.

Link copied to clipboard
@Serializable
@SerialName(value = "or")
data class OrStrategy(val strategies: List<FlippingStrategy>) : FlippingStrategy

A composite strategy that evaluates to true if any child strategy evaluates to true.

Link copied to clipboard
@Serializable
@SerialName(value = "ponderation")
data class PonderationStrategy(val weight: Double = HALF) : FlippingStrategy

A strategy that randomly enables a feature based on a weight.

Link copied to clipboard
@Serializable
@SerialName(value = "region")
data class RegionFilterStrategy(val grantedRegions: Set<String> = emptySet()) : FlippingStrategy

A strategy that enables a feature only for specific geographic regions.

Link copied to clipboard
@Serializable
@SerialName(value = "releaseDate")
data class ReleaseDateStrategy(val releaseDate: Instant, clock: Clock = Clock.System) : FlippingStrategy

A strategy that enables a feature after a specified release date.

Link copied to clipboard
@Serializable
@SerialName(value = "serverFilter")
data class ServerFilterStrategy(val targetServers: Set<String> = emptySet()) : FlippingStrategy

A strategy that enables a feature only on specific server hostnames.

Link copied to clipboard
@Serializable
@SerialName(value = "userPonderation")
data class UserPonderationStrategy(val weight: Double = HALF) : FlippingStrategy

A strategy that enables a feature for a consistent percentage of users.

Link copied to clipboard
@Serializable
@SerialName(value = "weekday")
data class WeekdayStrategy(val allowedDays: Set<DayOfWeek>, val timezone: TimeZone = TimeZone.UTC, clock: Clock = Clock.System) : FlippingStrategy

A strategy that enables a feature only on specific days of the week.

Functions

Link copied to clipboard

Combines this strategy with other using logical AND.

Link copied to clipboard

Negates this strategy.

Link copied to clipboard

Combines this strategy with other using logical OR.