v1alpha1

package
v0.0.0-...-c8bc4d7 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultCategory = "Miscellaneous"

Variables

This section is empty.

Functions

func CreateCategory

func CreateCategory(db *database.Handler, cat Category) (uuid.UUID, error)

func CreateComponent

func CreateComponent(db *database.Handler, c ComponentDefinition) (uuid.UUID, uuid.UUID, error)

func CreateModel

func CreateModel(db *database.Handler, cmodel Model) (uuid.UUID, error)

func CreatePolicy

func CreatePolicy(db *database.Handler, p PolicyDefinition) (uuid.UUID, uuid.UUID, error)

func CreateRelationship

func CreateRelationship(db *database.Handler, r RelationshipDefinition) (uuid.UUID, uuid.UUID, error)

Types

type Category

type Category struct {
	ID       uuid.UUID              `json:"-" yaml:"-"`
	Name     string                 `json:"name"`
	Metadata map[string]interface{} `json:"metadata" yaml:"metadata"`
}

swagger:response Category

func (*Category) GetCategoryDB

func (c *Category) GetCategoryDB(db *database.Handler) (catdb CategoryDB)

type CategoryDB

type CategoryDB struct {
	ID       uuid.UUID `json:"-"`
	Name     string    `json:"categoryName" gorm:"categoryName"`
	Metadata []byte    `json:"categoryMetadata" gorm:"categoryMetadata"`
}

func (*CategoryDB) GetCategory

func (cdb *CategoryDB) GetCategory(db *database.Handler) (cat Category)

type CategoryFilter

type CategoryFilter struct {
	Name    string
	OrderOn string
	Greedy  bool
	Sort    string //asc or desc. Default behavior is asc
	Limit   int    //If 0 or  unspecified then all records are returned and limit is not used
	Offset  int
}

func (*CategoryFilter) Create

func (cf *CategoryFilter) Create(m map[string]interface{})

Create the filter from map[string]interface{}

type ComponentDefinition

type ComponentDefinition struct {
	ID uuid.UUID `json:"-"`
	TypeMeta
	DisplayName     string                 `json:"displayName" gorm:"displayName"`
	Format          ComponentFormat        `json:"format" yaml:"format"`
	HostName        string                 `json:"hostname"`
	HostID          uuid.UUID              `json:"hostID"`
	DisplayHostName string                 `json:"displayhostname"`
	Metadata        map[string]interface{} `json:"metadata" yaml:"metadata"`
	Model           Model                  `json:"model"`
	Schema          string                 `json:"schema,omitempty" yaml:"schema"`
	CreatedAt       time.Time              `json:"-"`
	UpdatedAt       time.Time              `json:"-"`
}

swagger:response ComponentDefinition use NewComponent function for instantiating

func GetMeshModelComponents

func GetMeshModelComponents(db *database.Handler, f ComponentFilter) (c []ComponentDefinition, count int64, unique int)

func (*ComponentDefinition) GetComponentDefinitionDB

func (c *ComponentDefinition) GetComponentDefinitionDB() (cmd ComponentDefinitionDB)

func (ComponentDefinition) GetID

func (c ComponentDefinition) GetID() uuid.UUID

func (ComponentDefinition) Type

type ComponentDefinitionDB

type ComponentDefinitionDB struct {
	ID      uuid.UUID `json:"-"`
	ModelID uuid.UUID `json:"-" gorm:"modelID"`
	TypeMeta
	DisplayName string          `json:"displayName" gorm:"displayName"`
	Format      ComponentFormat `json:"format" yaml:"format"`
	Metadata    []byte          `json:"metadata" yaml:"metadata"`
	Schema      string          `json:"schema,omitempty" yaml:"schema"`
	CreatedAt   time.Time       `json:"-"`
	UpdatedAt   time.Time       `json:"-"`
}

func (*ComponentDefinitionDB) GetComponentDefinition

func (cmd *ComponentDefinitionDB) GetComponentDefinition(model Model) (c ComponentDefinition)

type ComponentFilter

type ComponentFilter struct {
	Name         string
	APIVersion   string
	Greedy       bool //when set to true - instead of an exact match, name will be prefix matched
	Trim         bool //when set to true - the schema is not returned
	DisplayName  string
	ModelName    string
	CategoryName string
	Version      string
	Sort         string //asc or desc. Default behavior is asc
	OrderOn      string
	Limit        int //If 0 or  unspecified then all records are returned and limit is not used
	Offset       int
}

func (*ComponentFilter) Create

func (cf *ComponentFilter) Create(m map[string]interface{})

Create the filter from map[string]interface{}

type ComponentFormat

type ComponentFormat string
const (
	JSON ComponentFormat = "JSON"
	YAML ComponentFormat = "YAML"
	CUE  ComponentFormat = "CUE"
)

type EntitySummary

type EntitySummary struct {
	Models        int64 `json:"models"`
	Components    int64 `json:"components"`
	Relationships int64 `json:"relationships"`
	Policies      int64 `json:"policies"`
}

type HostFilter

type HostFilter struct {
	Name        string
	Greedy      bool //when set to true - instead of an exact match, name will be prefix matched
	Trim        bool //when set to true - the schema is not returned
	DisplayName string
	Version     string
	Sort        string //asc or desc. Default behavior is asc
	OrderOn     string
	Limit       int //If 0 or  unspecified then all records are returned and limit is not used
	Offset      int
}

type MeshModelHostsWithEntitySummary

type MeshModelHostsWithEntitySummary struct {
	ID       uuid.UUID     `json:"id"`
	Hostname string        `json:"hostname"`
	Port     int           `json:"port"`
	Summary  EntitySummary `json:"summary"`
}

type MeshplayHostSummaryDB

type MeshplayHostSummaryDB struct {
	HostID        uuid.UUID `json:"-" gorm:"id"`
	Hostname      string    `json:"-" gorm:"hostname"`
	Port          int       `json:"-" gorm:"port"`
	Models        int64     `json:"-" gorm:"models"`
	Components    int64     `json:"-" gorm:"components"`
	Relationships int64     `json:"-" gorm:"relationships"`
	Policies      int64     `json:"-" gorm:"policies"`
}

type Model

type Model struct {
	ID              uuid.UUID              `json:"-" yaml:"-"`
	Name            string                 `json:"name"`
	Version         string                 `json:"version"`
	DisplayName     string                 `json:"displayName" gorm:"modelDisplayName"`
	HostName        string                 `json:"hostname"`
	HostID          uuid.UUID              `json:"hostID"`
	DisplayHostName string                 `json:"displayhostname"`
	Category        Category               `json:"category"`
	Metadata        map[string]interface{} `json:"metadata" yaml:"modelMetadata"`
}

swagger:response Model

func (Model) GetID

func (m Model) GetID() uuid.UUID

func (*Model) GetModelDB

func (c *Model) GetModelDB() (cmd ModelDB)

func (Model) Type

func (m Model) Type() types.CapabilityType

type ModelDB

type ModelDB struct {
	ID          uuid.UUID `json:"-"`
	CategoryID  uuid.UUID `json:"-" gorm:"categoryID"`
	Name        string    `json:"modelName" gorm:"modelName"`
	Version     string    `json:"version"`
	DisplayName string    `json:"modelDisplayName" gorm:"modelDisplayName"`
	SubCategory string    `json:"subCategory" gorm:"subCategory"`
	Metadata    []byte    `json:"modelMetadata" gorm:"modelMetadata"`
}

func (*ModelDB) GetModel

func (cmd *ModelDB) GetModel(cat Category) (c Model)

type ModelFilter

type ModelFilter struct {
	Name        string
	DisplayName string //If Name is already passed, avoid passing Display name unless greedy=true, else the filter will translate to an AND returning only the models where name and display name match exactly. Ignore, if this behavior is expected.
	Greedy      bool   //when set to true - instead of an exact match, name will be prefix matched. Also an OR will be performed of name and display_name
	Version     string
	Category    string
	OrderOn     string
	Sort        string //asc or desc. Default behavior is asc
	Limit       int    //If 0 or  unspecified then all records are returned and limit is not used
	Offset      int
}

func (*ModelFilter) Create

func (cf *ModelFilter) Create(m map[string]interface{})

Create the filter from map[string]interface{}

type PolicyDefinition

type PolicyDefinition struct {
	ID uuid.UUID `json:"-"`
	TypeMeta
	Model      Model                  `json:"model"`
	SubType    string                 `json:"subType" yaml:"subType"`
	Expression map[string]interface{} `json:"expression" yaml:"expression"`
	CreatedAt  time.Time              `json:"-"`
	UpdatedAt  time.Time              `json:"-"`
}

func GetMeshModelPolicy

func GetMeshModelPolicy(db *database.Handler, f PolicyFilter) (pl []PolicyDefinition)

func (PolicyDefinition) GetID

func (p PolicyDefinition) GetID() uuid.UUID

func (*PolicyDefinition) GetPolicyDefinitionDB

func (p *PolicyDefinition) GetPolicyDefinitionDB() (pdb PolicyDefinitionDB)

func (PolicyDefinition) Type

type PolicyDefinitionDB

type PolicyDefinitionDB struct {
	ID      uuid.UUID `json:"-"`
	ModelID uuid.UUID `json:"-" gorm:"modelID"`
	TypeMeta
	SubType    string    `json:"subType" yaml:"subType"`
	Expression []byte    `json:"expression" yaml:"expression"`
	CreatedAt  time.Time `json:"-"`
	UpdatedAt  time.Time `json:"-"`
}

func (*PolicyDefinitionDB) GetPolicyDefinition

func (pdb *PolicyDefinitionDB) GetPolicyDefinition(m Model) (p PolicyDefinition)

type PolicyFilter

type PolicyFilter struct {
	Kind      string
	Greedy    bool
	SubType   string
	ModelName string
	OrderOn   string
	Sort      string
	Limit     int
	Offset    int
}

func (*PolicyFilter) Create

func (pf *PolicyFilter) Create(m map[string]interface{})

type RelationshipDefinition

type RelationshipDefinition struct {
	ID uuid.UUID `json:"-"`
	TypeMeta
	Model           Model                  `json:"model"`
	HostName        string                 `json:"hostname"`
	HostID          uuid.UUID              `json:"hostID"`
	DisplayHostName string                 `json:"displayhostname"`
	Metadata        map[string]interface{} `json:"metadata" yaml:"metadata"`
	SubType         string                 `json:"subType" yaml:"subType" gorm:"subType"`
	Selectors       map[string]interface{} `json:"selectors" yaml:"selectors"`
	CreatedAt       time.Time              `json:"-"`
	UpdatedAt       time.Time              `json:"-"`
}

https://docs.google.com/drawings/d/1_qzQ_YxvCWPYrOBcdqGMlMwfbsZx96SBuIkbn8TfKhU/edit?pli=1 see RELATIONSHIPDEFINITIONS table in the diagram swagger:response RelationshipDefinition TODO: Add support for Model

func GetMeshModelRelationship

func GetMeshModelRelationship(db *database.Handler, f RelationshipFilter) (r []RelationshipDefinition, count int64)

func (RelationshipDefinition) GetID

func (r RelationshipDefinition) GetID() uuid.UUID

func (*RelationshipDefinition) GetRelationshipDefinitionDB

func (r *RelationshipDefinition) GetRelationshipDefinitionDB() (rdb RelationshipDefinitionDB)

func (RelationshipDefinition) Type

type RelationshipDefinitionDB

type RelationshipDefinitionDB struct {
	ID      uuid.UUID `json:"-"`
	ModelID uuid.UUID `json:"-" gorm:"modelID"`
	TypeMeta
	Metadata  []byte    `json:"metadata" yaml:"metadata"`
	SubType   string    `json:"subType" yaml:"subType"`
	Selectors []byte    `json:"selectors" yaml:"selectors"`
	CreatedAt time.Time `json:"-"`
	UpdatedAt time.Time `json:"-"`
}

func (*RelationshipDefinitionDB) GetRelationshipDefinition

func (rdb *RelationshipDefinitionDB) GetRelationshipDefinition(m Model) (r RelationshipDefinition)

type RelationshipFilter

type RelationshipFilter struct {
	Kind      string
	Greedy    bool //when set to true - instead of an exact match, kind will be prefix matched
	SubType   string
	Version   string
	ModelName string
	OrderOn   string
	Sort      string //asc or desc. Default behavior is asc
	Limit     int    //If 0 or  unspecified then all records are returned and limit is not used
	Offset    int
}

For now, only filtering by Kind and SubType are allowed. In the future, we will add support to query using `selectors` (using CUE) TODO: Add support for Model

func (*RelationshipFilter) Create

func (rf *RelationshipFilter) Create(m map[string]interface{})

Create the filter from map[string]interface{}

type TypeMeta

type TypeMeta struct {
	Kind       string `json:"kind,omitempty" yaml:"kind"`
	APIVersion string `json:"apiVersion,omitempty" yaml:"apiVersion"`
}

Jump to

Keyboard shortcuts

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