Documentation
¶
Index ¶
- Variables
- type Constraint
- type Dependency
- type Feature
- type FeatureResponse
- type Operator
- type Override
- type ParameterDescription
- type ParameterMap
- type Payload
- type Response
- type Segment
- type Strategy
- type StrategyDescription
- type StrategyResponse
- type StrategyResult
- type Variant
- type VariantCollection
- type VariantInternal
Constants ¶
This section is empty.
Variables ¶
View Source
var DISABLED_VARIANT = &Variant{ Name: "disabled", Enabled: false, }
Functions ¶
This section is empty.
Types ¶
type Constraint ¶
type Constraint struct {
// ContextName is the context name of the constraint.
ContextName string `json:"contextName"`
// Operator is the operator of the constraint.
Operator Operator `json:"operator"`
// Values is the list of target values for multi-valued constraints.
Values []string `json:"values"`
// Value is the target value single-value constraints.
Value string `json:"value"`
// CaseInsensitive makes the string operators case-insensitive.
CaseInsensitive bool `json:"caseInsensitive"`
// Inverted flips the constraint check result.
Inverted bool `json:"inverted"`
}
Constraint represents a constraint on a particular context value.
type Dependency ¶ added in v3.9.0
type Dependency struct {
// Feature is the name of the feature toggle we depend upon
Feature string `json:"feature"`
// Variants contains a string of variants that the dependency should resolve to
Variants *[]string `json:"variants"`
// Enabled is the property that determines whether the dependency should be on or off
// If the property is absent from the payload it's assumed to be default on
Enabled *bool `json:"enabled"`
}
type Feature ¶
type Feature struct {
// Name is the name of the feature toggle.
Name string `json:"name"`
// Description is a description of the feature toggle.
Description string `json:"description"`
// Enabled indicates whether the feature was enabled or not.
Enabled bool `json:"enabled"`
// Strategies is a list of names of the strategies supported by the client.
Strategies []Strategy `json:"strategies"`
// CreatedAt is the creation time of the feature toggle.
CreatedAt time.Time `json:"createdAt"`
// Strategy is the strategy of the feature toggle.
Strategy string `json:"strategy"`
// Parameters is the parameters of the feature toggle.
Parameters ParameterMap `json:"parameters"`
// Variants is a list of variants of the feature toggle.
Variants []VariantInternal `json:"variants"`
// Dependencies is a list of feature toggle dependency objects
Dependencies *[]Dependency `json:"dependencies"`
}
type FeatureResponse ¶
type FeatureResponse struct {
Response
Features []Feature `json:"features"`
Segments []Segment `json:"segments"`
}
func (FeatureResponse) FeatureMap ¶
func (fr FeatureResponse) FeatureMap() map[string]interface{}
func (FeatureResponse) SegmentsMap ¶ added in v3.6.0
func (fr FeatureResponse) SegmentsMap() map[int][]Constraint
type Operator ¶
type Operator string
Operator is a type representing a constraint operator
const ( // OperatorIn indicates that the context values must be // contained within those specified in the constraint. OperatorIn Operator = "IN" // OperatorNotIn indicates that the context values must // NOT be contained within those specified in the constraint. OperatorNotIn Operator = "NOT_IN" // OperatorStrContains indicates that the context value // must contain the specified substring. OperatorStrContains Operator = "STR_CONTAINS" // OperatorStrStartsWith indicates that the context value // must have the specified prefix. OperatorStrStartsWith Operator = "STR_STARTS_WITH" // OperatorStrEndsWith indicates that the context value // must have the specified suffix. OperatorStrEndsWith Operator = "STR_ENDS_WITH" // OperatorNumEq indicates that the context value // must be equal to the specified number. OperatorNumEq Operator = "NUM_EQ" // OperatorNumLt indicates that the context value // must be less than the specified number. OperatorNumLt Operator = "NUM_LT" // OperatorNumLte indicates that the context value // must be less than or equal to the specified number. OperatorNumLte Operator = "NUM_LTE" // OperatorNumGt indicates that the context value // must be greater than the specified number. OperatorNumGt Operator = "NUM_GT" // OperatorNumGte indicates that the context value // must be greater than or equal to the specified number. OperatorNumGte Operator = "NUM_GTE" // OperatorDateBefore indicates that the context value // must be before the specified date. OperatorDateBefore Operator = "DATE_BEFORE" // OperatorDateAfter indicates that the context value // must be after the specified date. OperatorDateAfter Operator = "DATE_AFTER" // OperatorSemverEq indicates that the context value // must be equal to the specified SemVer version. OperatorSemverEq Operator = "SEMVER_EQ" // OperatorSemverLt indicates that the context value // must be less than the specified SemVer version. OperatorSemverLt Operator = "SEMVER_LT" // OperatorSemverGt indicates that the context value // must be greater than the specified SemVer version. OperatorSemverGt Operator = "SEMVER_GT" )
type ParameterDescription ¶
type ParameterMap ¶
type ParameterMap map[string]interface{}
type Segment ¶ added in v3.6.0
type Segment struct {
Id int `json:"id"`
Constraints []Constraint `json:"constraints"`
}
type Strategy ¶
type Strategy struct {
// Id is the name of the strategy.
Id int `json:"id"`
// Name is the name of the strategy.
Name string `json:"name"`
// Constraints is the constraints of the strategy.
Constraints []Constraint `json:"constraints"`
// Parameters is the parameters of the strategy.
Parameters ParameterMap `json:"parameters"`
Segments []int `json:"segments"`
// Variants for a strategy
Variants []VariantInternal `json:"variants"`
}
type StrategyDescription ¶
type StrategyDescription struct {
Name string `json:"name"`
Description string `json:"description"`
Parameters []ParameterDescription `json:"parameters"`
}
type StrategyResponse ¶
type StrategyResponse struct {
Response
Strategies []StrategyDescription `json:"strategies"`
}
type StrategyResult ¶ added in v3.8.0
type Variant ¶
type Variant struct {
// Name is the value of the variant name.
Name string `json:"name"`
// Payload is the value of the variant payload
Payload Payload `json:"payload"`
// Enabled indicates whether the feature which is extend by this variant was enabled or not.
Enabled bool `json:"enabled"`
}
func GetDefaultVariant ¶
func GetDefaultVariant() *Variant
Get default variant if no variant is found
type VariantCollection ¶ added in v3.8.0
type VariantCollection struct {
// groupId to evaluate the variant
GroupId string
// variants for a feature toggle or feature strategy
Variants []VariantInternal
}
func (VariantCollection) GetVariant ¶ added in v3.8.0
func (vc VariantCollection) GetVariant(ctx *context.Context) *Variant
Get variant for a given feature which is considered as enabled
type VariantInternal ¶
type VariantInternal struct {
Variant
// Weight is the traffic ratio for the request
Weight int `json:"weight"`
// WeightType can be fixed or variable
WeightType string `json:"weightType"`
Stickiness string `json:"stickiness"`
// Override is used to get a variant accoording to the Unleash context field
Overrides []Override `json:"overrides"`
}
Click to show internal directories.
Click to hide internal directories.