entities

package
v0.20.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Edge added in v0.20.0

type Edge struct {
	Source string `json:"source"`
	Target string `json:"target"`
}

type Entity

type Entity interface {
	Version() string
	Kind() string
}

Entity is the interface of an entity object It can be used for type asserting

type Indicator

type Indicator struct {
	TypeMeta `json:",inline" yaml:",inline"`
	Metadata `json:"metadata,omitempty"`

	Spec IndicatorSpec `json:"spec" yaml:"spec"`
}

func (*Indicator) Kind

func (i *Indicator) Kind() string

func (*Indicator) Version

func (i *Indicator) Version() string

type IndicatorSpec

type IndicatorSpec struct {
	From    time.Time `json:"from"`
	To      time.Time `json:"to"`
	Percent float64   `json:"percent"`
}

type Labels

type Labels map[string]string

type Manifest

type Manifest []*Objective

Manifest - a slice of Objectives

func (*Manifest) Hash added in v0.20.0

func (m *Manifest) Hash() string

Hash - returns an MD5 hash of the manifest

func (*Manifest) LoadFromFile

func (m *Manifest) LoadFromFile(path string) (err error)

type Metadata

type Metadata struct {
	// Name of the object representation
	Name string `json:"-" yaml:"-"`

	// Map of string keys and values that can be used to identify an entity
	Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`

	// List of map of string keys and values that can be used to link entities together
	// by identifying relationships
	// All string keys and values in the same map are mandatory to make a link (AND operand)
	// while any map of the list is necessary to make a link (OR operand)
	// example:
	// RelatedTo:
	//   - service:web
	//     region:us
	//   - service:web
	//     region:eu
	// In this example, the current object representation will be linked to
	// any other entity that is a web service and located in US or EU regions
	RelatedTo []map[string]string `json:"relatedTo,omitempty" yaml:"relatedTo,omitempty"`
}

ObjectMeta is metadata that all entities must have

type Node added in v0.20.0

type Node struct {
	ID       string   `json:"id"`
	Metadata Metadata `json:"metadata"`
	Kind     string   `json:"kind"`
}

type NodeGraph added in v0.20.0

type NodeGraph struct {
	Nodes []*Node `json:"nodes"`
	Edges []*Edge `json:"edges"`
}

func (*NodeGraph) MarshalJSON added in v0.20.0

func (g *NodeGraph) MarshalJSON() ([]byte, error)

MarshalJSON - custom JSON unmarshaller for NodeGraph type used to insure that empty values are returned instead of null

Eg:

{ "nodes": [], "edges": [] }
vs.
{ "nodes": null, "edges": null }

type Objective

type Objective struct {
	TypeMeta `json:",inline" yaml:",inline"`
	Metadata `json:"metadata,omitempty"`

	Spec ObjectiveSpec `json:"spec" yaml:"spec"`
}

func NewObjective

func NewObjective() *Objective

NewObjective returns a new instance of the Objective struct with non-zero values for internal maps

func (*Objective) Kind

func (o *Objective) Kind() string

func (*Objective) Version

func (o *Objective) Version() string

type ObjectiveResult

type ObjectiveResult struct {
	TypeMeta                `json:",inline" yaml:",inline"`
	ObjectiveResultResponse `json:",inline" yaml:",inline"`
}

func (ObjectiveResult) Kind

func (o ObjectiveResult) Kind() string

func (ObjectiveResult) Version

func (o ObjectiveResult) Version() string

type ObjectiveResultResponse

type ObjectiveResultResponse struct {
	Metadata `json:"metadata,omitempty"`
	Spec     ObjectiveResultSpec `json:"spec" yaml:"spec"`
}

type ObjectiveResultSpec

type ObjectiveResultSpec struct {
	IndicatorSelector Selector `json:"indicatorSelector" yaml:"indicatorSelector"`
	ObjectivePercent  float64  `json:"objectivePercent" yaml:"objectivePercent"`
	ActualPercent     float64  `json:"actualPercent" yaml:"actualPercent"`
	RemainingPercent  float64  `json:"remainingPercent" yaml:"remainingPercent"`
}

type ObjectiveSpec

type ObjectiveSpec struct {
	IndicatorSelector Selector      `json:"indicatorSelector" yaml:"indicatorSelector"`
	ObjectivePercent  float64       `json:"objectivePercent" yaml:"objectivePercent"`
	Window            core.Duration `json:"window" yaml:"window"`
}

type Selector

type Selector Labels

type TypeMeta

type TypeMeta struct {
	// APIVersion defines the versioned schema of this representation of an object
	APIVersion string `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"`

	// Kind is a string value representing the REST resource this object represents.
	// In CamelCase.
	Kind string `json:"kind,omitempty" yaml:"kind,omitempty"`
}

TypeMeta describes an individual object in the entity API with strings representing the type of the object and its API schema version

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL