entities

package
v0.26.0 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DeepEntity added in v0.25.0

type DeepEntity interface {
	Entity
	Metadata() Metadata
	Spec() map[string]interface{}
}

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
	Validate() error
}

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 NewIndicator added in v0.21.0

func NewIndicator() *Indicator

NewIndicator returns a new instance of the Indicator struct with non-zero values for internal maps

func NewIndicatorForObjective added in v0.21.0

func NewIndicatorForObjective(o *Objective, from time.Time, to time.Time) *Indicator

func (*Indicator) Kind

func (i *Indicator) Kind() string

func (*Indicator) Validate added in v0.25.1

func (i *Indicator) Validate() error

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 ManifestContents added in v0.25.1

type ManifestContents []DeepEntity

func LoadFromFile added in v0.25.0

func LoadFromFile(path string) (ManifestContents, error)

func (ManifestContents) Objectives added in v0.25.1

func (m ManifestContents) Objectives() []*Objective

type ManifestObject added in v0.25.0

type ManifestObject struct {
	APIVersion    string                 `json:"apiVersion" yaml:"apiVersion"`
	KindValue     string                 `json:"kind" yaml:"kind"`
	MetadataValue Metadata               `json:"metadata" yaml:"metadata"`
	SpecValue     map[string]interface{} `json:"spec" yaml:"spec"`
}

func (*ManifestObject) Kind added in v0.25.0

func (t *ManifestObject) Kind() string

func (*ManifestObject) Metadata added in v0.25.0

func (t *ManifestObject) Metadata() Metadata

func (*ManifestObject) Spec added in v0.25.0

func (t *ManifestObject) Spec() map[string]interface{}

func (*ManifestObject) Validate added in v0.25.0

func (t *ManifestObject) Validate() error

func (*ManifestObject) Version added in v0.25.0

func (t *ManifestObject) Version() string

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

func (Metadata) Validate added in v0.25.1

func (m Metadata) Validate() error

type Node added in v0.20.0

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

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