Documentation ¶
Index ¶
- Constants
- func AddCriteria(ctx context.Context, newCriteria ...Criterion) (context.Context, error)
- func ApplyLabelChangesToLabels(changes LabelChanges, labels types.Labels) (types.Labels, types.Labels, types.Labels)
- func ContextWithCriteria(ctx context.Context, criteria []Criterion) context.Context
- type ByLeftOp
- type Criterion
- type CriterionType
- type LabelChange
- type LabelChanges
- type LabelOperation
- type Operator
Constants ¶
const ( // OpenBracket is the token that denotes the beginning of a multivariate operand OpenBracket rune = '[' // CloseBracket is the token that denotes the end of a multivariate operand CloseBracket rune = ']' // Separator is the separator between field and label queries Separator rune = '|' // OperandSeparator is the separator between the operator and the operands OperandSeparator rune = ' ' )
Variables ¶
This section is empty.
Functions ¶
func AddCriteria ¶
AddCriteria adds the given criteria to the context and returns an error if any of the criteria is not valid
Types ¶
type Criterion ¶
type Criterion struct { // LeftOp is the left operand in the query LeftOp string // Operator is the query operator Operator Operator // RightOp is the right operand in the query which can be multivariate RightOp []string // Type is the type of the query Type CriterionType }
Criterion is a single part of a query criteria
func BuildCriteriaFromRequest ¶
BuildCriteriaFromRequest builds criteria for the given request's query params and returns an error if the query is not valid
func CriteriaForContext ¶
CriteriaForContext returns the criteria for the given context
type CriterionType ¶
type CriterionType string
CriterionType is a type of criteria to be applied when querying
const ( // FieldQuery denotes that the query should be executed on the entity's fields FieldQuery CriterionType = "fieldQuery" // LabelQuery denotes that the query should be executed on the entity's labels LabelQuery CriterionType = "labelQuery" )
type LabelChange ¶
type LabelChange struct { Operation LabelOperation `json:"op"` Key string `json:"key"` Values []string `json:"values"` }
LabelChange represents the changes that should be performed to a label
func LabelChangesFromJSON ¶
func LabelChangesFromJSON(jsonBytes []byte) ([]*LabelChange, error)
LabelChangesFromJSON returns the label changes from the json byte array and an error if the changes are not valid
func (*LabelChange) Validate ¶
func (lc *LabelChange) Validate() error
type LabelChanges ¶ added in v0.1.9
type LabelChanges []*LabelChange
func (*LabelChanges) Validate ¶ added in v0.1.9
func (lc *LabelChanges) Validate() error
type LabelOperation ¶
type LabelOperation string
LabelOperation is an operation to be performed on labels
const ( // AddLabelOperation takes a label and adds it to the entity's labels AddLabelOperation LabelOperation = "add" // AddLabelValuesOperation takes a key and values and adds the values to the label with this key AddLabelValuesOperation LabelOperation = "add_values" // RemoveLabelOperation takes a key and removes the label with this key RemoveLabelOperation LabelOperation = "remove" // RemoveLabelValuesOperation takes a key and values and removes the values from the label with this key RemoveLabelValuesOperation LabelOperation = "remove_values" )
func (LabelOperation) RequiresValues ¶
func (o LabelOperation) RequiresValues() bool
RequiresValues returns true if the operation requires values to be provided
type Operator ¶
type Operator string
Operator is a query operator
const ( // EqualsOperator takes two operands and tests if they are equal EqualsOperator Operator = "=" // NotEqualsOperator takes two operands and tests if they are not equal NotEqualsOperator Operator = "!=" // GreaterThanOperator takes two operands and tests if the left is greater than the right GreaterThanOperator Operator = "gt" // GreaterThanOrEqualOperator takes two operands and tests if the left is greater than or equal the right GreaterThanOrEqualOperator Operator = "gte" // LessThanOperator takes two operands and tests if the left is lesser than the right LessThanOperator Operator = "lt" // LessThanOrEqualOperator takes two operands and tests if the left is lesser than or equal the right LessThanOrEqualOperator Operator = "lte" // InOperator takes two operands and tests if the left is contained in the right InOperator Operator = "in" // NotInOperator takes two operands and tests if the left is not contained in the right NotInOperator Operator = "notin" // EqualsOrNilOperator takes two operands and tests if the left is equal to the right, or if the left is nil EqualsOrNilOperator Operator = "eqornil" )
func (Operator) IsMultiVariate ¶
IsMultiVariate returns true if the operator requires right operand with multiple values
func (Operator) IsNullable ¶
IsNullable returns true if the operator can check if the left operand is nil