Documentation ¶
Overview ¶
Package condition contains logical operators that, based on their configuration, return boolean values from messages under certain circumstances.
Index ¶
- Variables
- func Descriptions() string
- func SanitiseConfig(conf Config) (interface{}, error)
- type And
- type AndConfig
- type Config
- type Count
- type CountConfig
- type JMESPath
- type JMESPathConfig
- type Not
- type NotConfig
- type Or
- type OrConfig
- type Resource
- type Static
- type Text
- type TextConfig
- type Type
- func New(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error)
- func NewAnd(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error)
- func NewCount(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error)
- func NewJMESPath(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error)
- func NewNot(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error)
- func NewOr(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error)
- func NewResource(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error)
- func NewStatic(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error)
- func NewText(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error)
- func NewXor(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error)
- type TypeSpec
- type Xor
- type XorConfig
Constants ¶
This section is empty.
Variables ¶
var Constructors = map[string]TypeSpec{}
Constructors is a map of all condition types with their specs.
var (
ErrInvalidTextOperator = errors.New("invalid text operator type")
)
Errors for the text condition.
Functions ¶
func Descriptions ¶
func Descriptions() string
Descriptions returns a formatted string of collated descriptions of each type.
func SanitiseConfig ¶
SanitiseConfig returns a sanitised version of the Config, meaning sections that aren't relevant to behaviour are removed.
Types ¶
type And ¶ added in v0.9.4
type And struct {
// contains filtered or unexported fields
}
And is a condition that returns the logical AND of all children.
type AndConfig ¶ added in v0.9.4
type AndConfig []Config
AndConfig is a configuration struct containing fields for the And condition.
func NewAndConfig ¶ added in v0.9.4
func NewAndConfig() AndConfig
NewAndConfig returns a AndConfig with default values.
type Config ¶
type Config struct { Type string `json:"type" yaml:"type"` And AndConfig `json:"and" yaml:"and"` Count CountConfig `json:"count" yaml:"count"` JMESPath JMESPathConfig `json:"jmespath" yaml:"jmespath"` Not NotConfig `json:"not" yaml:"not"` Or OrConfig `json:"or" yaml:"or"` Resource string `json:"resource" yaml:"resource"` Static bool `json:"static" yaml:"static"` Text TextConfig `json:"text" yaml:"text"` Xor XorConfig `json:"xor" yaml:"xor"` }
Config is the all encompassing configuration struct for all condition types.
func NewConfig ¶
func NewConfig() Config
NewConfig returns a configuration struct fully populated with default values.
func (*Config) UnmarshalJSON ¶
UnmarshalJSON ensures that when parsing configs that are in a slice the default values are still applied.
func (*Config) UnmarshalYAML ¶
UnmarshalYAML ensures that when parsing configs that are in a slice the default values are still applied.
type Count ¶ added in v0.11.2
type Count struct {
// contains filtered or unexported fields
}
Count is a condition that returns the logical or of all children.
type CountConfig ¶ added in v0.11.2
type CountConfig struct {
Arg int `json:"arg" yaml:"arg"`
}
CountConfig is a configuration struct containing fields for the Count condition.
func NewCountConfig ¶ added in v0.11.2
func NewCountConfig() CountConfig
NewCountConfig returns a CountConfig with default values.
type JMESPath ¶ added in v0.9.8
type JMESPath struct {
// contains filtered or unexported fields
}
JMESPath is a condition that checks message against a jmespath query.
type JMESPathConfig ¶ added in v0.9.8
type JMESPathConfig struct { Part int `json:"part" yaml:"part"` Query string `json:"query" yaml:"query"` }
JMESPathConfig is a configuration struct containing fields for the jmespath condition.
func NewJMESPathConfig ¶ added in v0.9.8
func NewJMESPathConfig() JMESPathConfig
NewJMESPathConfig returns a JMESPathConfig with default values.
type Not ¶ added in v0.9.4
type Not struct {
// contains filtered or unexported fields
}
Not is a condition that returns the opposite of another condition.
type NotConfig ¶ added in v0.9.4
type NotConfig struct {
*Config
}
NotConfig is a configuration struct containing fields for the Not condition.
func NewNotConfig ¶ added in v0.9.4
func NewNotConfig() NotConfig
NewNotConfig returns a NotConfig with default values.
func (NotConfig) MarshalJSON ¶ added in v0.9.4
MarshalJSON prints an empty object instead of nil.
func (NotConfig) MarshalYAML ¶ added in v0.9.4
MarshalYAML prints an empty object instead of nil.
func (*NotConfig) UnmarshalJSON ¶ added in v0.9.4
UnmarshalJSON ensures that when parsing child config it is initialised.
func (*NotConfig) UnmarshalYAML ¶ added in v0.9.4
UnmarshalYAML ensures that when parsing child config it is initialised.
type Or ¶ added in v0.9.4
type Or struct {
// contains filtered or unexported fields
}
Or is a condition that returns the logical or of all children.
type OrConfig ¶ added in v0.9.4
type OrConfig []Config
OrConfig is a configuration struct containing fields for the Or condition.
func NewOrConfig ¶ added in v0.9.4
func NewOrConfig() OrConfig
NewOrConfig returns a OrConfig with default values.
type Resource ¶ added in v0.9.7
type Resource struct {
// contains filtered or unexported fields
}
Resource is a condition that returns the result of a condition resource.
type Static ¶ added in v0.11.6
type Static struct {
// contains filtered or unexported fields
}
Static is a condition that always returns a static boolean value.
type Text ¶ added in v0.17.0
type Text struct {
// contains filtered or unexported fields
}
Text is a condition that checks message text against logical operators.
type TextConfig ¶ added in v0.17.0
type TextConfig struct { Operator string `json:"operator" yaml:"operator"` Part int `json:"part" yaml:"part"` Arg string `json:"arg" yaml:"arg"` }
TextConfig is a configuration struct containing fields for the text condition.
func NewTextConfig ¶ added in v0.17.0
func NewTextConfig() TextConfig
NewTextConfig returns a TextConfig with default values.
type Type ¶
type Type interface { // Check tests a message against a configured condition. Check(msg types.Message) bool }
Type reads a message, calculates a condition and returns a boolean.
func NewJMESPath ¶ added in v0.9.8
func NewJMESPath( conf Config, mgr types.Manager, log log.Modular, stats metrics.Type, ) (Type, error)
NewJMESPath returns a JMESPath processor.
func NewResource ¶ added in v0.9.7
func NewResource( conf Config, mgr types.Manager, log log.Modular, stats metrics.Type, ) (Type, error)
NewResource returns a resource processor.
func NewStatic ¶ added in v0.11.6
func NewStatic( conf Config, mgr types.Manager, log log.Modular, stats metrics.Type, ) (Type, error)
NewStatic returns a Static processor.
type TypeSpec ¶
type TypeSpec struct {
// contains filtered or unexported fields
}
TypeSpec Constructor and a usage description for each condition type.