Documentation
¶
Index ¶
- func EdgeTemplatesFromFs(dir fs.FS) (map[string]*knowledgebase.EdgeTemplate, error)
- func InitializeProperty(ptype string) (knowledgebase.Property, error)
- func ModelsFromFS(dir fs.FS) (map[string]*Model, error)
- func NewKBFromFs(resources, edges, models fs.FS) (*knowledgebase.KnowledgeBase, error)
- func TemplatesFromFs(dir fs.FS, models map[string]*Model) (map[construct.ResourceId]*knowledgebase.ResourceTemplate, error)
- type Model
- type Properties
- type Property
- type ResourceTemplate
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EdgeTemplatesFromFs ¶
func EdgeTemplatesFromFs(dir fs.FS) (map[string]*knowledgebase.EdgeTemplate, error)
func InitializeProperty ¶
func InitializeProperty(ptype string) (knowledgebase.Property, error)
func NewKBFromFs ¶
func NewKBFromFs(resources, edges, models fs.FS) (*knowledgebase.KnowledgeBase, error)
func TemplatesFromFs ¶
func TemplatesFromFs(dir fs.FS, models map[string]*Model) (map[construct.ResourceId]*knowledgebase.ResourceTemplate, error)
Types ¶
type Model ¶
type Model struct { Name string `json:"name" yaml:"name"` Properties Properties `json:"properties" yaml:"properties"` Property *Property `json:"property" yaml:"property"` }
type Properties ¶
Properties defines the structure of properties defined in yaml as a part of a template.
func (Properties) Clone ¶
func (p Properties) Clone() Properties
func (*Properties) Convert ¶
func (p *Properties) Convert() (knowledgebase.Properties, error)
func (*Properties) UnmarshalYAML ¶
func (p *Properties) UnmarshalYAML(n *yaml.Node) error
type Property ¶
type Property struct { Name string `json:"name" yaml:"name"` // Type defines the type of the property Type string `json:"type" yaml:"type"` Description string `json:"description" yaml:"description"` IsImportant bool `json:"important" yaml:"important"` Namespace bool `json:"namespace" yaml:"namespace"` DefaultValue any `json:"default_value" yaml:"default_value"` Required bool `json:"required" yaml:"required"` ConfigurationDisabled bool `json:"configuration_disabled" yaml:"configuration_disabled"` DeployTime bool `json:"deploy_time" yaml:"deploy_time"` OperationalRule *knowledgebase.PropertyRule `json:"operational_rule" yaml:"operational_rule"` Properties Properties `json:"properties" yaml:"properties"` // MinLength defines the minimum length of a string, list, set, or map (number of entries) MinLength *int `yaml:"min_length"` MaxLength *int `yaml:"max_length"` MinValue *float64 `yaml:"min_value"` MaxValue *float64 `yaml:"max_value"` // UniqueItems defines whether the items in a list or set must be unique UniqueItems *bool `yaml:"unique_items"` // UniqueKeys defines whether the keys in a map must be unique (default true) UniqueKeys *bool `yaml:"unique_keys"` AllowedTypes construct.ResourceList `yaml:"allowed_types"` SanitizeTmpl string `yaml:"sanitize"` AllowedValues []string `yaml:"allowed_values"` KeyProperty *Property `yaml:"key_property"` ValueProperty *Property `yaml:"value_property"` ItemProperty *Property `yaml:"item_property"` Path string `json:"-" yaml:"-"` }
Property defines the structure of a property defined in yaml as a part of a template. these fields must be exactly the union of all the fields in the different property types.
type ResourceTemplate ¶
type ResourceTemplate struct { QualifiedTypeName string `json:"qualified_type_name" yaml:"qualified_type_name"` DisplayName string `json:"display_name" yaml:"display_name"` Properties Properties `json:"properties" yaml:"properties"` Classification knowledgebase.Classification `json:"classification" yaml:"classification"` PathSatisfaction knowledgebase.PathSatisfaction `json:"path_satisfaction" yaml:"path_satisfaction"` AdditionalRules []knowledgebase.AdditionalRule `json:"additional_rules" yaml:"additional_rules"` Consumption knowledgebase.Consumption `json:"consumption" yaml:"consumption"` // DeleteContext defines the context in which a resource can be deleted DeleteContext knowledgebase.DeleteContext `json:"delete_context" yaml:"delete_context"` // Views defines the views that the resource should be added to as a distinct node Views map[string]string `json:"views" yaml:"views"` NoIac bool `json:"no_iac" yaml:"no_iac"` DeploymentPermissions knowledgebase.DeploymentPermissions `json:"deployment_permissions" yaml:"deployment_permissions"` SanitizeNameTmpl string `yaml:"sanitize_name"` }
ResourceTemplate defines how rules are handled by the engine in terms of making sure they are functional in the graph
func (*ResourceTemplate) Convert ¶
func (r *ResourceTemplate) Convert() (*knowledgebase.ResourceTemplate, error)
Click to show internal directories.
Click to hide internal directories.