models

package
v1.0.774 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2024 License: Apache-2.0 Imports: 32 Imported by: 39

Documentation

Index

Constants

View Source
const (
	CheckStatusHealthy   = "healthy"
	CheckStatusUnhealthy = "unhealthy"
)
View Source
const (
	ConfigClassCluster        = "Cluster"
	ConfigClassDatabase       = "Database"
	ConfigClassDeployment     = "Deployment"
	ConfigClassNamespace      = "Namespace"
	ConfigClassNode           = "Node"
	ConfigClassPod            = "Pod"
	ConfigClassVirtualMachine = "VirtualMachine"
)

Config classes

View Source
const (
	ConfigStatusCordoned   = "Cordoned"
	ConfigStatusCordoning  = "Cordoning"
	ConfigStatusDeleted    = "Deleted"
	ConfigStatusDeleting   = "Deleting"
	ConfigStatusFailed     = "Failed"
	ConfigStatusPending    = "Pending"
	ConfigStatusRunning    = "Running"
	ConfigStatusStarting   = "Starting"
	ConfigStatusStopped    = "Stopped"
	ConfigStatusStopping   = "Stopping"
	ConfigStatusSucceeded  = "Succeeded"
	ConfigStatusUncordoned = "Uncordoned"
	ConfigStatusUnknown    = "Unknown"
)

Config Statuses

View Source
const (
	AnalysisStatusOpen     = "open"
	AnalysisStatusResolved = "resolved"
	AnalysisStatusSilenced = "silenced"
)

Config Analysis statuses

View Source
const (
	ConnectionTypeAWS            = "aws"
	ConnectionTypeAzure          = "azure"
	ConnectionTypeAzureDevops    = "azure_devops"
	ConnectionTypeDiscord        = "discord"
	ConnectionTypeDynatrace      = "dynatrace"
	ConnectionTypeElasticSearch  = "elasticsearch"
	ConnectionTypeEmail          = "email"
	ConnectionTypeFolder         = "folder"
	ConnectionTypeGCP            = "google_cloud"
	ConnectionTypeGCS            = "gcs"
	ConnectionTypeGenericWebhook = "generic_webhook"
	ConnectionTypeGit            = "git"
	ConnectionTypeGithub         = "github"
	ConnectionTypeGitlab         = "gitlab"
	ConnectionTypeGoogleChat     = "google_chat"
	ConnectionTypeHTTP           = "http"
	ConnectionTypeIFTTT          = "ifttt"
	ConnectionTypeJMeter         = "jmeter"
	ConnectionTypeKubernetes     = "kubernetes"
	ConnectionTypeLDAP           = "ldap"
	ConnectionTypeMatrix         = "matrix"
	ConnectionTypeMattermost     = "mattermost"
	ConnectionTypeMongo          = "mongo"
	ConnectionTypeMySQL          = "mysql"
	ConnectionTypeNtfy           = "ntfy"
	ConnectionTypeOpsGenie       = "opsgenie"
	ConnectionTypePostgres       = "postgres"
	ConnectionTypePrometheus     = "prometheus"
	ConnectionTypePushbullet     = "pushbullet"
	ConnectionTypePushover       = "pushover"
	ConnectionTypeRedis          = "redis"
	ConnectionTypeRestic         = "restic"
	ConnectionTypeRocketchat     = "rocketchat"
	ConnectionTypeS3             = "s3"
	ConnectionTypeSFTP           = "sftp"
	ConnectionTypeSlack          = "slack"
	ConnectionTypeSlackWebhook   = "slackwebhook"
	ConnectionTypeSMB            = "smb"
	ConnectionTypeSQLServer      = "sql_server"
	ConnectionTypeTeams          = "teams"
	ConnectionTypeTelegram       = "telegram"
	ConnectionTypeWebhook        = "webhook"
	ConnectionTypeWindows        = "windows"
	ConnectionTypeZulipChat      = "zulip_chat"
)

List of all connection types

View Source
const (
	StatusRunning = "RUNNING"
	StatusSuccess = "SUCCESS"
	StatusWarning = "WARNING"
	StatusFailed  = "FAILED"
	StatusStale   = "STALE"
	StatusSkipped = "SKIPPED"
)
View Source
const (
	NotificationStatusError          = "error"
	NotificationStatusSent           = "sent"
	NotificationStatusSending        = "sending"
	NotificationStatusPending        = "pending" // delayed due to waitFor evaluation
	NotificationStatusSkipped        = "skipped" // due to waitFor evaluation
	NotificationStatusSilenced       = "silenced"
	NotificationStatusRepeatInterval = "repeat-interval"

	// an event was triggered and the notification is waiting for the playbook run to be triggered.
	NotificationStatusPendingPlaybookRun = "pending_playbook_run"

	// A playbook is currently in progress
	NotificationStatusPendingPlaybookCompletion = "pending_playbook_completion"

	// health related notifications of kubernetes config items get into this state
	// to wait for the incremental scraper to re-evaluate the health.
	NotificationStatusEvaluatingWaitFor = "evaluating-waitfor"
)
View Source
const (
	SourceCRD        = "KubernetesCRD"
	SourceConfigFile = "ConfigFile"
	SourceUI         = "UI"
	SourceTopology   = "Topology"
	SourcePush       = "Push"
	SourceCRDSync    = "CRDSync"
)
View Source
const TimeFormat = "2006-01-02T15:04:05"

Variables

View Source
var AllowedColumnFieldsInComponents = []string{
	"owner",
	"topology_type",
	"topology_id",
	"parent_id",
	"type",
}
View Source
var AllowedColumnFieldsInConfigs = []string{"config_class", "external_id"}
View Source
var CheckID = func(c Check) string {
	return c.ID.String()
}
View Source
var ComponentID = func(c Component) string {
	return c.ID.String()
}
View Source
var ConfigID = func(c ConfigComponentRelationship, i int) string {
	return c.ConfigID.String()
}
View Source
var ConfigSelectorID = func(c ConfigComponentRelationship, i int) string {
	return c.SelectorID
}

Functions

func DeleteAllCanaries added in v1.0.561

func DeleteAllCanaries(db *gorm.DB, canaries ...Canary) error

func DeleteAllComponents added in v1.0.561

func DeleteAllComponents(db *gorm.DB, components ...Component) error

func DeleteAllConfigs added in v1.0.561

func DeleteAllConfigs(db *gorm.DB, configs ...ConfigItem) error

func DeleteAllIncidents added in v1.0.561

func DeleteAllIncidents(db *gorm.DB, incidents ...Incident) error

func DeleteCheckComponentRelationshipsForCanary added in v1.0.510

func DeleteCheckComponentRelationshipsForCanary(db *gorm.DB, id string) error

func DeleteChecksForCanary added in v1.0.510

func DeleteChecksForCanary(db *gorm.DB, id string) ([]string, error)

func DeleteComponentChildren added in v1.0.510

func DeleteComponentChildren(db *gorm.DB, componentID string) error

func DeleteComponentsWithIDs added in v1.0.510

func DeleteComponentsWithIDs(db *gorm.DB, compIDs []string) error

DeleteComponentsWithID deletes all components with specified ids.

func DeleteInlineCanariesForComponent added in v1.0.510

func DeleteInlineCanariesForComponent(db *gorm.DB, componentID string) error

func ErrorContext added in v1.0.564

func ErrorContext(items ...Contextable) []any

func GetIDs added in v1.0.561

func GetIDs[T DBTable](items ...T) []string

func Now added in v1.0.510

func Now() clause.Expr

func SetProperties added in v1.0.145

func SetProperties(db *gorm.DB, props []AppProperty) error

func SetPropertiesInDBFromFile added in v1.0.145

func SetPropertiesInDBFromFile(db *gorm.DB, filename string) error

Types

type AccessToken added in v1.0.143

type AccessToken struct {
	ID        uuid.UUID `gorm:"default:generate_ulid()"`
	Name      string    `gorm:"not null"`
	Value     string    `gorm:"not null"`
	PersonID  uuid.UUID `gorm:"not null"`
	CreatedAt time.Time `json:"created_at" gorm:"<-:create"`
	ExpiresAt *time.Time
}

func (AccessToken) PK added in v1.0.561

func (a AccessToken) PK() string

func (AccessToken) TableName added in v1.0.143

func (AccessToken) TableName() string

type Agent added in v1.0.91

type Agent struct {
	ID          uuid.UUID           `json:"id,omitempty" gorm:"default:generate_ulid()"`
	Name        string              `json:"name"`
	Hostname    string              `json:"hostname,omitempty"`
	Description string              `json:"description,omitempty"`
	IP          string              `json:"ip,omitempty"`
	Version     string              `json:"version,omitempty"`
	Username    string              `json:"username,omitempty"`
	PersonID    *uuid.UUID          `json:"person_id,omitempty"`
	Properties  types.JSONStringMap `json:"properties,omitempty"`
	TLS         string              `json:"tls,omitempty"`
	CreatedBy   *uuid.UUID          `json:"created_by,omitempty"`
	CreatedAt   time.Time           `json:"created_at" time_format:"postgres_timestamp"`
	DeletedAt   *time.Time          `json:"deleted_at" time_format:"postgres_timestamp"`
	UpdatedAt   time.Time           `json:"updated_at" time_format:"postgres_timestamp"`

	// Cleanup when set to true will delete all the agent resources when the agent is deleted
	Cleanup bool `json:"cleanup"`

	// LastSeen is the timestamp the agent last sent a heartbeat
	LastSeen *time.Time `json:"last_seen,omitempty" time_format:"postgres_timestamp"`

	// LastReceived is the timestamp the agent last sent a push data
	LastReceived *time.Time `json:"last_received,omitempty" time_format:"postgres_timestamp"`
}

func (Agent) AsMap added in v1.0.171

func (t Agent) AsMap(removeFields ...string) map[string]any

func (Agent) Context added in v1.0.564

func (a Agent) Context() map[string]any

func (Agent) PK added in v1.0.561

func (a Agent) PK() string

func (*Agent) Save added in v1.0.567

func (p *Agent) Save(db *gorm.DB) error

func (Agent) TableName added in v1.0.561

func (a Agent) TableName() string

type AnalysisType added in v1.0.117

type AnalysisType string
const (
	AnalysisTypeAvailability   AnalysisType = "availability"
	AnalysisTypeCompliance     AnalysisType = "compliance"
	AnalysisTypeCost           AnalysisType = "cost"
	AnalysisTypeIntegration    AnalysisType = "integration"
	AnalysisTypeOther          AnalysisType = "other"
	AnalysisTypePerformance    AnalysisType = "performance"
	AnalysisTypeRecommendation AnalysisType = "recommendation"
	AnalysisTypeReliability    AnalysisType = "reliability"
	AnalysisTypeSecurity       AnalysisType = "security"
	AnalysisTypeTechDebt       AnalysisType = "technical_debt"
)

type AppProperty added in v1.0.144

type AppProperty struct {
	Name      string     `json:"name,omitempty"`
	Value     string     `json:"value,omitempty"`
	CreatedBy *uuid.UUID `json:"created_by,omitempty"`
	CreatedAt time.Time  `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
	UpdatedAt time.Time  `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
	DeletedAt *time.Time `json:"deleted_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
}

func (AppProperty) PK added in v1.0.561

func (p AppProperty) PK() string

func (AppProperty) TableName added in v1.0.234

func (p AppProperty) TableName() string

type Artifact added in v1.0.225

type Artifact struct {
	ID                  uuid.UUID  `json:"id" gorm:"default:generate_ulid()"`
	CheckID             *uuid.UUID `json:"check_id,omitempty"`
	CheckTime           *time.Time `json:"check_time,omitempty" time_format:"postgres_timestamp"`
	PlaybookRunActionID *uuid.UUID `json:"playbook_run_action_id,omitempty"`
	ConnectionID        uuid.UUID  `json:"connection_id,omitempty"`
	Path                string     `json:"path"`
	IsPushed            bool       `json:"is_pushed"`
	IsDataPushed        bool       `json:"is_data_pushed"`
	Filename            string     `json:"filename"`
	Size                int64      `json:"size"` // Size in bytes
	ContentType         string     `json:"content_type,omitempty"`
	Checksum            string     `json:"checksum"`
	CreatedAt           time.Time  `json:"created_at" yaml:"created_at" time_format:"postgres_timestamp"`
	UpdatedAt           time.Time  `json:"updated_at" yaml:"updated_at" time_format:"postgres_timestamp"`
	DeletedAt           *time.Time `json:"deleted_at,omitempty" yaml:"deleted_at,omitempty" time_format:"postgres_timestamp"`
	ExpiresAt           *time.Time `json:"expires_at,omitempty" yaml:"expires_at,omitempty" time_format:"postgres_timestamp"`
}

Artifact represents the artifacts table

func (Artifact) GetUnpushed added in v1.0.362

func (t Artifact) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (Artifact) PK added in v1.0.362

func (a Artifact) PK() string

func (Artifact) TableName added in v1.0.362

func (a Artifact) TableName() string

type Canary added in v1.0.15

type Canary struct {
	ID          uuid.UUID           `json:"id" yaml:"id" gorm:"default:generate_ulid()"`
	Name        string              `json:"name" yaml:"name"`
	Namespace   string              `json:"namespace" yaml:"namespace"`
	AgentID     uuid.UUID           `json:"agent_id" yaml:"agent_id"`
	Spec        types.JSON          `json:"spec" yaml:"spec"`
	Labels      types.JSONStringMap `json:"labels,omitempty" yaml:"labels,omitempty"`
	Annotations types.JSONStringMap `json:"annotations,omitempty" yaml:"annotations,omitempty"`
	Source      string              `json:"source,omitempty" yaml:"source,omitempty"`
	Checks      types.JSONStringMap `gorm:"-" json:"checks,omitempty" yaml:"checks,omitempty"`
	CreatedAt   time.Time           `json:"created_at" yaml:"created_at" time_format:"postgres_timestamp" gorm:"<-:create"`
	UpdatedAt   *time.Time          `json:"updated_at" yaml:"updated_at" time_format:"postgres_timestamp" gorm:"autoUpdateTime:false"`
	DeletedAt   *time.Time          `json:"deleted_at,omitempty" yaml:"deleted_at,omitempty" time_format:"postgres_timestamp"`
}

func (Canary) AsMap added in v1.0.129

func (c Canary) AsMap(removeFields ...string) map[string]any

func (Canary) ConflictClause added in v1.0.438

func (t Canary) ConflictClause() clause.OnConflict

func (Canary) GetCheckID added in v1.0.15

func (c Canary) GetCheckID(checkName string) string

func (Canary) GetUnpushed added in v1.0.362

func (t Canary) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (Canary) PK added in v1.0.362

func (c Canary) PK() string

func (Canary) TableName added in v1.0.21

func (c Canary) TableName() string

type Check added in v1.0.15

type Check struct {
	ID                 uuid.UUID           `json:"id" gorm:"default:generate_ulid()"`
	CanaryID           uuid.UUID           `json:"canary_id"`
	AgentID            uuid.UUID           `json:"agent_id,omitempty"`
	Spec               types.JSON          `json:"-"`
	Type               string              `json:"type"`
	Name               string              `json:"name"`
	Namespace          string              `json:"namespace"`
	Labels             types.JSONStringMap `json:"labels" gorm:"type:jsonstringmap"`
	Description        string              `json:"description,omitempty"`
	Status             CheckHealthStatus   `json:"status,omitempty"`
	Owner              string              `json:"owner,omitempty"`
	Severity           Severity            `json:"severity,omitempty"`
	Icon               string              `json:"icon,omitempty"`
	Transformed        bool                `json:"transformed,omitempty"`
	LastRuntime        *time.Time          `json:"last_runtime,omitempty"`
	NextRuntime        *time.Time          `json:"next_runtime,omitempty"`
	LastTransitionTime *time.Time          `json:"last_transition_time,omitempty"`
	CreatedAt          *time.Time          `json:"created_at,omitempty" gorm:"<-:create"`
	UpdatedAt          *time.Time          `json:"updated_at,omitempty" gorm:"autoUpdateTime:false"`
	DeletedAt          *time.Time          `json:"deleted_at,omitempty"`
	SilencedAt         *time.Time          `json:"silenced_at,omitempty"`

	// Auxiliary fields
	CanaryName   string        `json:"canary_name,omitempty" gorm:"-"`
	ComponentIDs []string      `json:"components,omitempty"  gorm:"-"` // Linked component ids
	Uptime       types.Uptime  `json:"uptime,omitempty"  gorm:"-"`
	Latency      types.Latency `json:"latency,omitempty"  gorm:"-"`
	Statuses     []CheckStatus `json:"checkStatuses,omitempty"  gorm:"-"`
	DisplayType  string        `json:"display_type,omitempty"  gorm:"-"`

	// These are calculated for the selected date range
	EarliestRuntime *time.Time `json:"earliestRuntime,omitempty" gorm:"-"`
	LatestRuntime   *time.Time `json:"latestRuntime,omitempty" gorm:"-"`
	TotalRuns       int        `json:"totalRuns,omitempty" gorm:"-"`
}

func (Check) AsMap added in v1.0.129

func (c Check) AsMap(removeFields ...string) map[string]any

func (Check) GetDescription added in v1.0.15

func (c Check) GetDescription() string

func (Check) GetFieldsMatcher added in v1.0.401

func (c Check) GetFieldsMatcher() fields.Fields

func (Check) GetID added in v1.0.397

func (c Check) GetID() string

func (Check) GetLabelsMatcher added in v1.0.401

func (c Check) GetLabelsMatcher() labels.Labels

func (Check) GetName added in v1.0.397

func (c Check) GetName() string

func (Check) GetNamespace added in v1.0.397

func (c Check) GetNamespace() string

func (Check) GetStatus added in v1.0.397

func (c Check) GetStatus() (string, error)

func (Check) GetType added in v1.0.397

func (c Check) GetType() string

func (Check) GetUnpushed added in v1.0.362

func (t Check) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (Check) PK added in v1.0.362

func (c Check) PK() string

func (Check) PKCols added in v1.0.428

func (t Check) PKCols() []clause.Column

func (Check) TableName added in v1.0.253

func (c Check) TableName() string

func (Check) ToString added in v1.0.15

func (c Check) ToString() string

func (Check) UpdateParentsIsPushed added in v1.0.428

func (t Check) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error

func (Check) Value added in v1.0.428

func (t Check) Value() any

type CheckComponentRelationship added in v1.0.77

type CheckComponentRelationship struct {
	ComponentID uuid.UUID  `json:"component_id,omitempty"`
	CheckID     uuid.UUID  `json:"check_id,omitempty"`
	CanaryID    uuid.UUID  `json:"canary_id,omitempty"`
	SelectorID  string     `json:"selector_id,omitempty"`
	CreatedAt   time.Time  `json:"created_at,omitempty"`
	UpdatedAt   time.Time  `json:"updated_at,omitempty" gorm:"autoUpdateTime:false"`
	DeletedAt   *time.Time `json:"deleted_at,omitempty"`
}

func (CheckComponentRelationship) GetUnpushed added in v1.0.362

func (t CheckComponentRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (CheckComponentRelationship) PK added in v1.0.362

func (*CheckComponentRelationship) Save added in v1.0.253

func (c *CheckComponentRelationship) Save(db *gorm.DB) error

func (CheckComponentRelationship) TableName added in v1.0.77

func (CheckComponentRelationship) TableName() string

func (CheckComponentRelationship) UpdateIsPushed added in v1.0.362

func (s CheckComponentRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error

type CheckConfigRelationship added in v1.0.235

type CheckConfigRelationship struct {
	ConfigID   uuid.UUID  `json:"config_id,omitempty"`
	CheckID    uuid.UUID  `json:"check_id,omitempty"`
	CanaryID   uuid.UUID  `json:"canary_id,omitempty"`
	SelectorID string     `json:"selector_id,omitempty"`
	CreatedAt  time.Time  `json:"created_at,omitempty"`
	UpdatedAt  time.Time  `json:"updated_at,omitempty"`
	DeletedAt  *time.Time `json:"deleted_at,omitempty"`
}

func (CheckConfigRelationship) GetUnpushed added in v1.0.362

func (c CheckConfigRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (CheckConfigRelationship) PK added in v1.0.362

func (*CheckConfigRelationship) Save added in v1.0.253

func (c *CheckConfigRelationship) Save(db *gorm.DB) error

func (CheckConfigRelationship) TableName added in v1.0.235

func (CheckConfigRelationship) TableName() string

func (CheckConfigRelationship) UpdateIsPushed added in v1.0.362

func (s CheckConfigRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error

type CheckHealthStatus added in v1.0.60

type CheckHealthStatus string

type CheckStatus added in v1.0.15

type CheckStatus struct {
	CheckID   uuid.UUID `json:"check_id" gorm:"primaryKey"`
	Status    bool      `json:"status"`
	Invalid   bool      `json:"invalid,omitempty"`
	Time      string    `json:"time" gorm:"primaryKey"`
	Duration  int       `json:"duration"`
	Message   string    `json:"message,omitempty"`
	Error     string    `json:"error,omitempty"`
	Detail    any       `json:"-" gorm:"-"`
	CreatedAt time.Time `json:"created_at,omitempty" gorm:"<-:create"`
	// IsPushed when set to true indicates that the check status has been pushed to upstream.
	IsPushed bool `json:"is_pushed,omitempty"`
}

func (CheckStatus) AsMap added in v1.0.172

func (s CheckStatus) AsMap(removeFields ...string) map[string]any

func (CheckStatus) GetTime added in v1.0.15

func (s CheckStatus) GetTime() (time.Time, error)

func (CheckStatus) GetUnpushed added in v1.0.362

func (s CheckStatus) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (CheckStatus) PK added in v1.0.362

func (s CheckStatus) PK() string

func (CheckStatus) PKCols added in v1.0.428

func (s CheckStatus) PKCols() []clause.Column

func (CheckStatus) TableName added in v1.0.21

func (CheckStatus) TableName() string

func (CheckStatus) UpdateIsPushed added in v1.0.362

func (s CheckStatus) UpdateIsPushed(db *gorm.DB, items []DBTable) error

func (CheckStatus) UpdateParentsIsPushed added in v1.0.428

func (t CheckStatus) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error

func (CheckStatus) Value added in v1.0.428

func (t CheckStatus) Value() any

type CheckStatusAggregate1d added in v1.0.44

type CheckStatusAggregate1d struct {
	CheckID   string    `gorm:"column:check_id"`
	CreatedAt time.Time `gorm:"column:created_at"`
	Duration  int       `gorm:"column:duration"`
	Total     int       `gorm:"column:total"`
	Passed    int       `gorm:"column:passed"`
	Failed    int       `gorm:"column:failed"`
}

CheckStatusAggregate1d represents the `check_statuses_1d` table

func (CheckStatusAggregate1d) TableName added in v1.0.44

func (CheckStatusAggregate1d) TableName() string

type CheckStatusAggregate1h added in v1.0.44

type CheckStatusAggregate1h struct {
	CheckID   string    `gorm:"column:check_id"`
	CreatedAt time.Time `gorm:"column:created_at"`
	Duration  int       `gorm:"column:duration"`
	Total     int       `gorm:"column:total"`
	Passed    int       `gorm:"column:passed"`
	Failed    int       `gorm:"column:failed"`
}

CheckStatusAggregate1h represents the `check_statuses_1h` table

func (CheckStatusAggregate1h) TableName added in v1.0.44

func (CheckStatusAggregate1h) TableName() string

type CheckSummary added in v1.0.164

type CheckSummary struct {
	ID                 uuid.UUID           `json:"id"`
	CanaryID           uuid.UUID           `json:"canary_id"`
	CanaryName         string              `json:"canary_name"`
	CanaryNamespace    string              `json:"canary_namespace"`
	Description        string              `json:"description,omitempty"`
	Icon               string              `json:"icon,omitempty"`
	Labels             types.JSONStringMap `json:"labels"`
	LastTransitionTime *time.Time          `json:"last_transition_time,omitempty"`
	Latency            types.Latency       `json:"latency,omitempty"`
	Name               string              `json:"name"`
	Namespace          string              `json:"namespace"`
	Owner              string              `json:"owner,omitempty"`
	Severity           string              `json:"severity,omitempty"`
	Status             string              `json:"status"`
	Type               string              `json:"type"`
	Uptime             types.Uptime        `json:"uptime,omitempty"`
	LastRuntime        *time.Time          `json:"last_runtime,omitempty"`
	CreatedAt          time.Time           `json:"created_at"`
	UpdatedAt          time.Time           `json:"updated_at"`
	DeletedAt          *time.Time          `json:"deleted_at,omitempty"`
	SilencedAt         *time.Time          `json:"silenced_at,omitempty"`
}

CheckSummary represents the `check_summary` view

func (CheckSummary) AsMap added in v1.0.175

func (t CheckSummary) AsMap(removeFields ...string) map[string]any

func (*CheckSummary) TableName added in v1.0.164

func (t *CheckSummary) TableName() string

type Checks added in v1.0.15

type Checks []*Check

func (Checks) Find added in v1.0.15

func (c Checks) Find(key string) *Check

func (Checks) Len added in v1.0.15

func (c Checks) Len() int

func (Checks) Less added in v1.0.15

func (c Checks) Less(i, j int) bool

func (Checks) Swap added in v1.0.15

func (c Checks) Swap(i, j int)

type Comment added in v1.0.67

type Comment struct {
	ID                uuid.UUID  `json:"id" gorm:"primaryKey"`
	CreatedBy         uuid.UUID  `json:"created_by,omitempty"`
	Comment           string     `json:"comment,omitempty"`
	ExternalID        *string    `json:"external_id,omitempty"`
	ExternalCreatedBy *string    `json:"external_created_by,omitempty"`
	IncidentID        uuid.UUID  `json:"incident_id,omitempty"`
	ResponderID       *uuid.UUID `json:"responder_id,omitempty"`
	HypothesisID      *uuid.UUID `json:"hypothesis_id,omitempty"`
	Read              []int16    `json:"read,omitempty" gorm:"type:smallint[]"`
	CreatedAt         time.Time  `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
	UpdatedAt         time.Time  `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
}

func (Comment) AsMap added in v1.0.129

func (c Comment) AsMap(removeFields ...string) map[string]any

func (Comment) PK added in v1.0.561

func (c Comment) PK() string

func (Comment) TableName added in v1.0.561

func (c Comment) TableName() string

type Component added in v1.0.15

type Component struct {
	ID              uuid.UUID               `json:"id,omitempty" gorm:"default:generate_ulid()"` //nolint
	TopologyID      *uuid.UUID              `json:"topology_id,omitempty"`
	AgentID         uuid.UUID               `json:"agent_id,omitempty"`
	ExternalId      string                  `json:"external_id,omitempty"` //nolint
	ParentId        *uuid.UUID              `json:"parent_id,omitempty"`   //nolint
	Name            string                  `json:"name"`
	Text            string                  `json:"text,omitempty"`
	TopologyType    string                  `json:"topology_type,omitempty"`
	Namespace       string                  `json:"namespace"`
	Labels          types.JSONStringMap     `json:"labels,omitempty" gorm:"default:null"`
	Hidden          bool                    `json:"hidden,omitempty"`
	Silenced        bool                    `json:"silenced,omitempty"`
	Status          types.ComponentStatus   `json:"status"`
	Health          *Health                 `json:"health,omitempty"`
	Description     string                  `json:"description"`
	Lifecycle       string                  `json:"lifecycle,omitempty"`
	LogSelectors    types.LogSelectors      `json:"logs,omitempty" gorm:"column:log_selectors;default:null"`
	Tooltip         string                  `json:"tooltip,omitempty"`
	StatusReason    types.NullString        `json:"status_reason"`
	Schedule        string                  `json:"schedule,omitempty"`
	Icon            string                  `json:"icon,omitempty"`
	Type            string                  `json:"type"`
	Owner           string                  `json:"owner,omitempty"`
	Selectors       types.ResourceSelectors `json:"selectors,omitempty" gorm:"resourceSelectors;default:null" swaggerignore:"true"`
	Configs         types.ConfigQueries     `json:"configs,omitempty" gorm:"default:null"`
	ComponentChecks types.ComponentChecks   `json:"componentChecks,omitempty" gorm:"default:null"`
	Properties      Properties              `json:"properties,omitempty" gorm:"type:properties;default:null"`
	Path            string                  `json:"path,omitempty"`
	Summary         types.Summary           `json:"summary,omitempty" gorm:"type:summary;default:null"`
	IsLeaf          bool                    `json:"is_leaf"`
	CostPerMinute   float64                 `json:"cost_per_minute,omitempty" gorm:"column:cost_per_minute"`
	CostTotal1d     float64                 `json:"cost_total_1d,omitempty" gorm:"column:cost_total_1d"`
	CostTotal7d     float64                 `json:"cost_total_7d,omitempty" gorm:"column:cost_total_7d"`
	CostTotal30d    float64                 `json:"cost_total_30d,omitempty" gorm:"column:cost_total_30d"`
	CreatedBy       *uuid.UUID              `json:"created_by,omitempty"`
	CreatedAt       time.Time               `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP();<-:create"`
	UpdatedAt       *time.Time              `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"autoUpdateTime:false"`
	DeletedAt       *time.Time              `json:"deleted_at,omitempty" time_format:"postgres_timestamp" swaggerignore:"true"`

	// ConfigID is the id of the config from which this component is derived
	ConfigID *uuid.UUID `json:"config_id,omitempty"`

	// StatusExpr allows defining a cel expression to evaluate the status of a component
	// based on the summary.
	StatusExpr string `json:"status_expr,omitempty" gorm:"column:status_expr;default:null"`

	// HealthExpr allows defining a cel expression to evaluate the health of a component
	// based on the summary.
	HealthExpr string `json:"health_expr,omitempty" gorm:"column:health_expr;default:null"`

	// Auxiliary fields
	Checks         map[string]int            `json:"checks,omitempty" gorm:"-"`
	Incidents      map[string]map[string]int `json:"incidents,omitempty" gorm:"-"`
	Analysis       map[string]map[string]int `json:"analysis,omitempty" gorm:"-"`
	Components     Components                `json:"components,omitempty" gorm:"-"`
	Order          int                       `json:"order,omitempty"  gorm:"-"`
	SelectorID     string                    `json:"-" gorm:"-"`
	RelationshipID *uuid.UUID                `json:"relationship_id,omitempty" gorm:"-"`
	Children       []string                  `json:"children,omitempty" gorm:"-"`
	Parents        []string                  `json:"parents,omitempty" gorm:"-"`

	// Mark it as true when the component is processed
	// during topology tree creation
	NodeProcessed bool `json:"-" gorm:"-"`
}

func (*Component) AsMap added in v1.0.175

func (c *Component) AsMap(removeFields ...string) map[string]any

func (Component) Clone added in v1.0.83

func (component Component) Clone() Component

func (Component) GetAsEnvironment added in v1.0.49

func (component Component) GetAsEnvironment() map[string]interface{}

func (Component) GetFieldsMatcher added in v1.0.401

func (c Component) GetFieldsMatcher() fields.Fields

func (Component) GetHealth added in v1.0.575

func (c Component) GetHealth() (Health, error)

func (Component) GetID added in v1.0.397

func (c Component) GetID() string

func (Component) GetLabelsMatcher added in v1.0.401

func (c Component) GetLabelsMatcher() labels.Labels

func (Component) GetName added in v1.0.397

func (c Component) GetName() string

func (Component) GetNamespace added in v1.0.397

func (c Component) GetNamespace() string

func (Component) GetStatus added in v1.0.24

func (c Component) GetStatus() (string, error)

func (Component) GetType added in v1.0.397

func (c Component) GetType() string

func (Component) GetUnpushed added in v1.0.362

func (t Component) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (Component) IsHealthy added in v1.0.83

func (component Component) IsHealthy() bool

func (*Component) ObjectMeta added in v1.0.253

func (c *Component) ObjectMeta() metav1.ObjectMeta

func (Component) PK added in v1.0.347

func (c Component) PK() string

func (Component) String added in v1.0.83

func (component Component) String() string

func (*Component) Summarize added in v1.0.24

func (c *Component) Summarize(depth int) types.Summary

func (Component) TableName added in v1.0.347

func (c Component) TableName() string

func (Component) UpdateParentsIsPushed added in v1.0.428

func (t Component) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error

type ComponentRelationship added in v1.0.15

type ComponentRelationship struct {
	ComponentID      uuid.UUID  `json:"component_id,omitempty" gorm:"primaryKey"`
	RelationshipID   uuid.UUID  `json:"relationship_id,omitempty" gorm:"primaryKey"`
	SelectorID       string     `json:"selector_id,omitempty" gorm:"primaryKey"`
	RelationshipPath string     `json:"relationship_path,omitempty"`
	CreatedAt        time.Time  `json:"created_at,omitempty"`
	UpdatedAt        time.Time  `json:"updated_at,omitempty" gorm:"autoUpdateTime:false"`
	DeletedAt        *time.Time `json:"deleted_at,omitempty"`
}

func (ComponentRelationship) GetUnpushed added in v1.0.362

func (cr ComponentRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (ComponentRelationship) PK added in v1.0.362

func (cr ComponentRelationship) PK() string

func (ComponentRelationship) PKCols added in v1.0.428

func (s ComponentRelationship) PKCols() []clause.Column

func (ComponentRelationship) TableName added in v1.0.15

func (ComponentRelationship) TableName() string

func (ComponentRelationship) UpdateIsPushed added in v1.0.362

func (s ComponentRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error

func (ComponentRelationship) UpdateParentsIsPushed added in v1.0.428

func (s ComponentRelationship) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error

func (ComponentRelationship) Value added in v1.0.428

func (s ComponentRelationship) Value() any

type Components added in v1.0.15

type Components []*Component

func (Components) Debug added in v1.0.83

func (components Components) Debug(prefix string) string

func (Components) Find added in v1.0.83

func (components Components) Find(name string) *Component

func (Components) Map added in v1.0.25

func (components Components) Map(fn func(c *Component))

func (Components) Summarize added in v1.0.83

func (components Components) Summarize(depth int) types.Summary

func (Components) Walk added in v1.0.83

func (components Components) Walk() Components

type ConfigAnalysis added in v1.0.5

type ConfigAnalysis struct {
	ID            uuid.UUID     `gorm:"primaryKey;unique_index;not null;column:id;default:generate_ulid()" json:"id"`
	ExternalID    string        `gorm:"-"`
	ConfigType    string        `gorm:"-"`
	ConfigID      uuid.UUID     `gorm:"column:config_id;default:''" json:"config_id"`
	ScraperID     *uuid.UUID    `gorm:"column:scraper_id;default:null" json:"scraper_id"`
	Analyzer      string        `gorm:"column:analyzer" json:"analyzer" faker:"oneof: ec2-instance-no-public-ip, eks-endpoint-no-public-access"`
	Message       string        `gorm:"column:message" json:"message"`
	Summary       string        `gorm:"column:summary;default:null" json:"summary,omitempty"`
	Status        string        `gorm:"column:status;default:null" json:"status,omitempty" faker:"oneof: open, resolved, silenced"`
	Severity      Severity      `gorm:"column:severity" json:"severity" faker:"oneof: critical, high, medium, low, info"`
	AnalysisType  AnalysisType  `gorm:"column:analysis_type" json:"analysis_type" faker:"oneof: availability, compliance, cost, security, performance"`
	Analysis      types.JSONMap `gorm:"column:analysis" json:"analysis,omitempty"`
	Source        string        `gorm:"column:source" json:"source,omitempty"`
	FirstObserved *time.Time    `gorm:"column:first_observed;<-:false" json:"first_observed"`
	LastObserved  *time.Time    `gorm:"column:last_observed" json:"last_observed"`
	// IsPushed when set to true indicates that the check status has been pushed to upstream.
	IsPushed bool `json:"is_pushed,omitempty"`
}

func (ConfigAnalysis) GetUnpushed added in v1.0.362

func (ConfigAnalysis) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (ConfigAnalysis) PK added in v1.0.362

func (a ConfigAnalysis) PK() string

func (ConfigAnalysis) PKCols added in v1.0.428

func (c ConfigAnalysis) PKCols() []clause.Column

func (ConfigAnalysis) String added in v1.0.5

func (a ConfigAnalysis) String() string

func (ConfigAnalysis) TableName added in v1.0.5

func (a ConfigAnalysis) TableName() string

func (ConfigAnalysis) UpdateParentsIsPushed added in v1.0.428

func (t ConfigAnalysis) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error

func (ConfigAnalysis) Value added in v1.0.428

func (c ConfigAnalysis) Value() any

type ConfigChange added in v1.0.5

type ConfigChange struct {
	// ExternalID is the external identifier for the configuration change.
	// Note: This field is not stored in the database.
	ExternalID string `gorm:"-" json:"-"`

	// ConfigType represents the type of configuration.
	// Note: This field is not stored in the database.
	ConfigType string `gorm:"-" json:"-"`

	// ExternalChangeID is the identifier for the change from an external system.
	ExternalChangeID *string `gorm:"column:external_change_id;default:null" json:"external_change_id"`

	// ID is the unique identifier for the configuration change.
	// It is automatically generated using ULID if not provided.
	ID string `gorm:"primaryKey;unique_index;not null;column:id;default:generate_ulid()" json:"id"`

	// ConfigID is the identifier of the associated configuration item.
	ConfigID string `gorm:"column:config_id;default:''" json:"config_id"`

	// ChangeType describes the nature of the configuration change.
	// Example values: RunInstances, diff
	ChangeType string `gorm:"column:change_type" json:"change_type" faker:"oneof:  RunInstances, diff" `

	// Severity indicates the importance or impact level of the change.
	// Possible values: critical, high, medium, low, info
	Severity Severity `json:"severity"  faker:"oneof: critical, high, medium, low, info"`

	// Source indicates the origin of the configuration change, e.g. Kubernetes, Cloudtrail
	Source string `json:"source"`

	// Summary provides a brief description of the change.
	Summary string `json:"summary,omitempty"`

	// Patches contains a JSON strategic merge patch
	Patches string `gorm:"column:patches;default:null" json:"patches,omitempty"`

	// Diff represents the differences introduced by this change.
	Diff string `gorm:"column:diff;default:null" json:"diff,omitempty"`

	// Fingerprint is a uniquest identifier for the change, it ignores all UUID, numbers and timestamps to enable de-duplication of equivalent changes.
	Fingerprint string `gorm:"column:fingerprint;default:null" json:"fingerprint,omitempty"`

	// Details contains additional information about the change in JSON format.
	Details types.JSON `json:"details,omitempty"`

	// CreatedAt represents the timestamp when the change was created or last observed
	CreatedAt *time.Time `json:"created_at"`

	// FirstObserved represents the timestamp when this change was first observed.
	FirstObserved *time.Time `gorm:"first_observed;default:now()" json:"first_observed,omitempty"`

	// Count is the number of occurrences of this change, including duplicates detected by fingerprinting
	Count int `json:"count"`

	// IsPushed indicates whether the change has been pushed to upstream.
	// When set to true, it means the status has been synchronized.
	IsPushed bool `json:"is_pushed,omitempty"`
}

ConfigChange represents the config change database table ConfigChange represents a change to a configuration item.

func (*ConfigChange) BeforeCreate added in v1.0.64

func (c *ConfigChange) BeforeCreate(tx *gorm.DB) error

BeforeCreate is a user defined hook for Gorm. It will be called when creating a record.

func (ConfigChange) GetExternalID added in v1.0.5

func (c ConfigChange) GetExternalID() ExternalID

func (ConfigChange) GetUnpushed added in v1.0.362

func (t ConfigChange) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (ConfigChange) PK added in v1.0.362

func (c ConfigChange) PK() string

func (ConfigChange) PKCols added in v1.0.428

func (c ConfigChange) PKCols() []clause.Column

func (ConfigChange) String added in v1.0.5

func (c ConfigChange) String() string

func (ConfigChange) TableName added in v1.0.5

func (c ConfigChange) TableName() string

func (ConfigChange) UpdateParentsIsPushed added in v1.0.428

func (t ConfigChange) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error

func (ConfigChange) Value added in v1.0.428

func (c ConfigChange) Value() any

type ConfigComponentRelationship added in v1.0.15

type ConfigComponentRelationship struct {
	ComponentID uuid.UUID  `json:"component_id,omitempty" gorm:"primaryKey"`
	ConfigID    uuid.UUID  `json:"config_id,omitempty" gorm:"primaryKey"`
	SelectorID  string     `json:"selector_id,omitempty"`
	CreatedAt   time.Time  `json:"created_at,omitempty"`
	UpdatedAt   *time.Time `json:"updated_at,omitempty" gorm:"autoUpdateTime:false"`
	DeletedAt   *time.Time `json:"deleted_at,omitempty"`
}

func (ConfigComponentRelationship) GetUnpushed added in v1.0.362

func (t ConfigComponentRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (ConfigComponentRelationship) PK added in v1.0.362

func (ConfigComponentRelationship) PKCols added in v1.0.428

func (ConfigComponentRelationship) TableName added in v1.0.15

func (ConfigComponentRelationship) TableName() string

func (ConfigComponentRelationship) UpdateIsPushed added in v1.0.362

func (s ConfigComponentRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error

func (ConfigComponentRelationship) UpdateParentsIsPushed added in v1.0.428

func (s ConfigComponentRelationship) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error

func (ConfigComponentRelationship) Value added in v1.0.428

func (s ConfigComponentRelationship) Value() any

type ConfigItem added in v1.0.5

type ConfigItem struct {
	ID              uuid.UUID            `json:"id" faker:"uuid_hyphenated" gorm:"default:generate_ulid()"`
	ScraperID       *string              `json:"scraper_id,omitempty"`
	AgentID         uuid.UUID            `json:"agent_id,omitempty"`
	ConfigClass     string               `json:"config_class" faker:"oneof:File,EC2Instance,KubernetesPod" `
	ExternalID      pq.StringArray       `gorm:"type:[]text" json:"external_id,omitempty"`
	Type            *string              `json:"type"`
	Status          *string              `json:"status" gorm:"default:null"`
	Ready           bool                 `json:"ready"`
	Health          *Health              `json:"health"`
	Name            *string              `json:"name,omitempty" faker:"name"`
	Description     *string              `json:"description"`
	Config          *string              `json:"config"`
	Source          *string              `json:"source,omitempty"`
	ParentID        *uuid.UUID           `json:"parent_id,omitempty" faker:"-"`
	Path            string               `json:"path,omitempty" faker:"-"`
	CostPerMinute   float64              `gorm:"column:cost_per_minute;default:null" json:"cost_per_minute,omitempty"`
	CostTotal1d     float64              `gorm:"column:cost_total_1d;default:null" json:"cost_total_1d,omitempty"`
	CostTotal7d     float64              `gorm:"column:cost_total_7d;default:null" json:"cost_total_7d,omitempty"`
	CostTotal30d    float64              `gorm:"column:cost_total_30d;default:null" json:"cost_total_30d,omitempty"`
	Labels          *types.JSONStringMap `json:"labels,omitempty" faker:"labels"`
	Tags            types.JSONStringMap  `json:"tags,omitempty" faker:"tags"`
	Properties      *types.Properties    `json:"properties,omitempty"`
	LastScrapedTime *time.Time           `json:"last_scraped_time,omitempty"`
	CreatedAt       time.Time            `json:"created_at" gorm:"<-:create"`
	UpdatedAt       *time.Time           `json:"updated_at" gorm:"autoUpdateTime:false"`
	DeletedAt       *time.Time           `json:"deleted_at,omitempty"`
	DeleteReason    string               `json:"delete_reason,omitempty"`
	// contains filtered or unexported fields
}

ConfigItem represents the config item database table

func (ConfigItem) AsMap added in v1.0.175

func (ci ConfigItem) AsMap(removeFields ...string) map[string]any

func (*ConfigItem) ConfigJSONStringMap added in v1.0.5

func (ci *ConfigItem) ConfigJSONStringMap() (map[string]any, error)

func (ConfigItem) GetFieldsMatcher added in v1.0.401

func (c ConfigItem) GetFieldsMatcher() fields.Fields

func (ConfigItem) GetID added in v1.0.374

func (c ConfigItem) GetID() string

func (ConfigItem) GetLabelsMatcher added in v1.0.401

func (c ConfigItem) GetLabelsMatcher() labels.Labels

func (ConfigItem) GetName added in v1.0.374

func (c ConfigItem) GetName() string

func (ConfigItem) GetNamespace added in v1.0.374

func (c ConfigItem) GetNamespace() string

func (ConfigItem) GetSelectorID added in v1.0.83

func (c ConfigItem) GetSelectorID() string

func (ConfigItem) GetStatus added in v1.0.374

func (c ConfigItem) GetStatus() (string, error)

func (ConfigItem) GetTagsMatcher added in v1.0.412

func (c ConfigItem) GetTagsMatcher() labels.Labels

func (ConfigItem) GetType added in v1.0.374

func (c ConfigItem) GetType() string

func (ConfigItem) GetUnpushed added in v1.0.362

func (t ConfigItem) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (*ConfigItem) NestedString added in v1.0.660

func (ci *ConfigItem) NestedString(paths ...string) string

func (ConfigItem) PK added in v1.0.347

func (t ConfigItem) PK() string

func (ConfigItem) PKCols added in v1.0.536

func (t ConfigItem) PKCols() []clause.Column

func (*ConfigItem) SetParent added in v1.0.5

func (ci *ConfigItem) SetParent(parent *ConfigItem)

func (ConfigItem) String added in v1.0.5

func (ci ConfigItem) String() string

func (ConfigItem) TableName added in v1.0.5

func (ConfigItem) TableName() string

func (ConfigItem) UpdateParentsIsPushed added in v1.0.428

func (t ConfigItem) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error

func (ConfigItem) Value added in v1.0.536

func (c ConfigItem) Value() any

type ConfigRelationship added in v1.0.5

type ConfigRelationship struct {
	ConfigID   string     `json:"config_id" gorm:"primaryKey"`
	RelatedID  string     `json:"related_id" gorm:"primaryKey"`
	Relation   string     `json:"relation" gorm:"primaryKey"`
	SelectorID string     `json:"selector_id"`
	CreatedAt  time.Time  `json:"created_at,omitempty"`
	UpdatedAt  time.Time  `json:"updated_at,omitempty" gorm:"autoUpdateTime:false"`
	DeletedAt  *time.Time `json:"deleted_at,omitempty"`
}

func (ConfigRelationship) GetUnpushed added in v1.0.362

func (t ConfigRelationship) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (ConfigRelationship) PK added in v1.0.362

func (cr ConfigRelationship) PK() string

func (ConfigRelationship) PKCols added in v1.0.428

func (c ConfigRelationship) PKCols() []clause.Column

func (ConfigRelationship) TableName added in v1.0.5

func (cr ConfigRelationship) TableName() string

func (ConfigRelationship) UpdateIsPushed added in v1.0.362

func (s ConfigRelationship) UpdateIsPushed(db *gorm.DB, items []DBTable) error

func (ConfigRelationship) UpdateParentsIsPushed added in v1.0.428

func (t ConfigRelationship) UpdateParentsIsPushed(db *gorm.DB, items []DBTable) error

func (ConfigRelationship) Value added in v1.0.428

func (c ConfigRelationship) Value() any

type ConfigScraper added in v1.0.53

type ConfigScraper struct {
	ID          uuid.UUID  `json:"id"`
	AgentID     uuid.UUID  `json:"agent_id,omitempty"`
	Name        string     `json:"name"`
	Namespace   string     `json:"namespace"`
	Description string     `json:"description,omitempty"`
	Spec        string     `json:"spec,omitempty"`
	Source      string     `json:"source,omitempty"`
	CreatedBy   *uuid.UUID `json:"created_by,omitempty"`
	CreatedAt   time.Time  `json:"created_at" gorm:"<-:create"`
	UpdatedAt   *time.Time `json:"updated_at" gorm:"autoUpdateTime:false"`
	DeletedAt   *time.Time `json:"deleted_at,omitempty"`
}

ConfigScraper represents the config_scrapers database table

func (ConfigScraper) AsMap added in v1.0.175

func (c ConfigScraper) AsMap(removeFields ...string) map[string]any

func (*ConfigScraper) BeforeCreate added in v1.0.53

func (cs *ConfigScraper) BeforeCreate(tx *gorm.DB) error

BeforeCreate GORM hook

func (ConfigScraper) GetUnpushed added in v1.0.362

func (t ConfigScraper) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (ConfigScraper) PK added in v1.0.362

func (c ConfigScraper) PK() string

func (ConfigScraper) TableName added in v1.0.53

func (c ConfigScraper) TableName() string

type Connection added in v1.0.45

type Connection struct {
	ID          uuid.UUID           `gorm:"primaryKey;unique_index;not null;column:id;default:generate_ulid()" json:"id" faker:"uuid_hyphenated"  `
	Name        string              `gorm:"column:name" json:"name" faker:"name"  `
	Namespace   string              `gorm:"column:namespace" json:"namespace"`
	Source      string              `json:"source"`
	Type        string              `gorm:"column:type" json:"type" faker:"oneof:  postgres, mysql, aws, gcp, http" `
	URL         string              `gorm:"column:url" json:"url,omitempty" faker:"url" template:"true"`
	Username    string              `gorm:"column:username" json:"username,omitempty" faker:"username"  `
	Password    string              `gorm:"column:password" json:"password,omitempty" faker:"password"  `
	Properties  types.JSONStringMap `gorm:"column:properties" json:"properties,omitempty" faker:"-" template:"true"`
	Certificate string              `gorm:"column:certificate" json:"certificate,omitempty" faker:"-"  `
	InsecureTLS bool                `gorm:"column:insecure_tls;default:false" json:"insecure_tls,omitempty" faker:"-"  `
	CreatedAt   time.Time           `gorm:"column:created_at;default:now();<-:create" json:"created_at,omitempty" faker:"-"  `
	UpdatedAt   time.Time           `gorm:"column:updated_at;default:now()" json:"updated_at,omitempty" faker:"-"  `
	CreatedBy   *uuid.UUID          `gorm:"column:created_by" json:"created_by,omitempty" faker:"-"  `
}

func ConnectionFromURL added in v1.0.216

func ConnectionFromURL(url url.URL) *Connection

func (Connection) AsEnv added in v1.0.200

func (c Connection) AsEnv(ctx context.Context) EnvPrep

AsEnv generates environment variables and a configuration file content based on the connection type.

func (Connection) AsGoGetterURL added in v1.0.200

func (c Connection) AsGoGetterURL() (string, error)

AsGoGetterURL returns the connection as a url that's supported by https://github.com/hashicorp/go-getter Connection details are added to the url as query params

func (Connection) AsMap added in v1.0.175

func (c Connection) AsMap(removeFields ...string) map[string]any

func (Connection) Merge added in v1.0.213

func (c Connection) Merge(ctx types.GetEnvVarFromCache, from any) (*Connection, error)

func (Connection) PK added in v1.0.561

func (c Connection) PK() string

func (*Connection) SetProperty added in v1.0.605

func (c *Connection) SetProperty(key, value string)

func (Connection) String added in v1.0.48

func (c Connection) String() string

func (Connection) TableName added in v1.0.561

func (c Connection) TableName() string

type Contextable added in v1.0.564

type Contextable interface {
	Context() map[string]any
}

type DBTable added in v1.0.362

type DBTable interface {
	PK() string
	TableName() string
}

type Deleteable added in v1.0.561

type Deleteable interface {
	Delete(db *gorm.DB) error
}

type EnvPrep added in v1.0.200

type EnvPrep struct {
	// Env is the connection credentials in environment variables
	Env []string

	// CmdEnvs is a list of env vars that will be passed to the command
	CmdEnvs []string

	// List of commands that need to be run before the actual command.
	// These commands will setup the connection.
	PreRuns []*exec.Cmd

	// File contains the content of the configuration file based on the connection
	Files map[string]bytes.Buffer
}

func (*EnvPrep) Inject added in v1.0.200

func (c *EnvPrep) Inject(ctx context.Context, cmd *exec.Cmd) ([]*exec.Cmd, error)

Inject creates the config file & injects the necessary environment variable into the command

type Event added in v1.0.273

type Event struct {
	ID          uuid.UUID           `gorm:"default:generate_ulid()"`
	Name        string              `json:"name"`
	CreatedAt   time.Time           `json:"created_at"`
	Properties  types.JSONStringMap `json:"properties"`
	Delay       *time.Duration      `json:"delay,omitempty"`
	Error       *string             `json:"error,omitempty"`
	Attempts    int                 `json:"attempts"`
	LastAttempt *time.Time          `json:"last_attempt"`
	Priority    int                 `json:"priority"`
}

func (Event) PK added in v1.0.561

func (e Event) PK() string

func (*Event) SetError added in v1.0.565

func (t *Event) SetError(err string)

func (Event) TableName added in v1.0.273

func (Event) TableName() string

We are using the term `Event` as it represents an event in the event_queue table, but the table is named event_queue to signify it's usage as a queue

type EventQueueSummary added in v1.0.273

type EventQueueSummary struct {
	Name          string     `json:"name"`
	Pending       int64      `json:"pending"`
	Failed        int64      `json:"failed"`
	AvgAttempts   int64      `json:"average_attempts"`
	FirstFailure  *time.Time `json:"first_failure,omitempty"`
	LastFailure   *time.Time `json:"last_failure,omitempty"`
	MostCommonErr string     `json:"most_common_error,omitempty"`
}

func (*EventQueueSummary) TableName added in v1.0.273

func (t *EventQueueSummary) TableName() string

type Events added in v1.0.273

type Events []Event

func (Events) Recreate added in v1.0.565

func (events Events) Recreate(ctx context.Context, tx *gorm.DB) error

Recreate creates the given failed events in batches after updating the attempts count.

type Evidence added in v1.0.24

type Evidence struct {
	ID               uuid.UUID     `json:"id"`
	HypothesisID     uuid.UUID     `json:"hypothesis_id"`
	ConfigID         *uuid.UUID    `json:"config_id"`
	ConfigChangeID   *uuid.UUID    `json:"config_change_id"`
	ConfigAnalysisID *uuid.UUID    `json:"config_analysis_id"`
	ComponentID      *uuid.UUID    `json:"component_id"`
	CheckID          *uuid.UUID    `json:"check_id"`
	Description      string        `json:"description"`
	DefinitionOfDone bool          `json:"definition_of_done"`
	Done             bool          `json:"done"`
	Factor           bool          `json:"factor"`
	Mitigator        bool          `json:"mitigator"`
	CreatedBy        uuid.UUID     `json:"created_by"`
	Type             string        `json:"type"`
	Script           string        `json:"script"`
	ScriptResult     string        `json:"script_result"`
	Evidence         types.JSONMap `json:"evidence"`
	Properties       types.JSONMap `json:"properties"`
	CreatedAt        time.Time     `json:"created_at"`
	UpdatedAt        time.Time     `json:"updated_at"`
}

func (Evidence) AsMap added in v1.0.129

func (i Evidence) AsMap(removeFields ...string) map[string]any

func (Evidence) PK added in v1.0.561

func (e Evidence) PK() string

func (Evidence) TableName added in v1.0.561

func (e Evidence) TableName() string

type EvidenceCanaryCheck added in v1.0.24

type EvidenceCanaryCheck struct {
}

type EvidenceComponent added in v1.0.24

type EvidenceComponent struct {
}

type EvidenceConfig added in v1.0.24

type EvidenceConfig struct {
	ID            uuid.UUID           `json:"id"`
	Lines         []string            `json:"lines"`
	SelectedLines types.JSONStringMap `json:"selected_lines"`
}

type EvidenceConfigAnalysis added in v1.0.24

type EvidenceConfigAnalysis struct {
	ID uuid.UUID `json:"id"`
}

type EvidenceConfigChange added in v1.0.24

type EvidenceConfigChange struct {
	ID uuid.UUID `json:"id"`
}

type EvidenceLogs added in v1.0.24

type EvidenceLogs struct {
	Lines []LogLine `json:"lines"`
}

type ExtendedDBTable added in v1.0.428

type ExtendedDBTable interface {
	DBTable
	Value() any
	PKCols() []clause.Column
}

TODO: Find a better way to handle this

type ExternalID added in v1.0.5

type ExternalID struct {
	ConfigType string
	ExternalID []string
}

func (ExternalID) CacheKey added in v1.0.5

func (e ExternalID) CacheKey() string

func (ExternalID) IsEmpty added in v1.0.5

func (e ExternalID) IsEmpty() bool

func (ExternalID) String added in v1.0.5

func (e ExternalID) String() string

func (ExternalID) WhereClause added in v1.0.5

func (e ExternalID) WhereClause(db *gorm.DB) *gorm.DB

type Health added in v1.0.423

type Health string
const (
	HealthHealthy   Health = "healthy"
	HealthUnhealthy Health = "unhealthy"
	HealthUnknown   Health = "unknown"
	HealthWarning   Health = "warning"
)

func WorseHealth added in v1.0.613

func WorseHealth(healths ...Health) Health

type Hypothesis added in v1.0.24

type Hypothesis struct {
	ID         uuid.UUID  `json:"id,omitempty" gorm:"default:generate_ulid()"`
	IncidentID uuid.UUID  `json:"incident_id,omitempty"`
	Type       string     `json:"type,omitempty"`
	Title      string     `json:"title,omitempty"`
	Status     string     `json:"status,omitempty"`
	ParentID   *uuid.UUID `json:"parent_id,omitempty"`
	TeamID     *uuid.UUID `json:"team_id,omitempty"`
	Owner      *uuid.UUID `json:"owner,omitempty"`
	CreatedAt  *time.Time `json:"created_at,omitempty"`
	UpdatedAt  *time.Time `json:"updated_at,omitempty"`
	CreatedBy  uuid.UUID  `json:"created_by,omitempty"`
}

func (Hypothesis) AsMap added in v1.0.129

func (h Hypothesis) AsMap(removeFields ...string) map[string]any

func (Hypothesis) PK added in v1.0.561

func (h Hypothesis) PK() string

func (Hypothesis) TableName added in v1.0.24

func (Hypothesis) TableName() string

type Incident added in v1.0.24

type Incident struct {
	ID             uuid.UUID      `json:"id,omitempty" gorm:"default:generate_ulid()"`
	IncidentID     string         `json:"incident_id,omitempty" gorm:"default:format_incident_id(NEXTVAL('incident_id_sequence'))"`
	Title          string         `json:"title,omitempty"`
	Description    string         `json:"description,omitempty"`
	Type           IncidentType   `json:"type,omitempty"`
	Status         IncidentStatus `json:"status,omitempty"`
	Severity       Severity       `json:"severity,omitempty"`
	CreatedAt      *time.Time     `json:"created_at,omitempty"`
	UpdatedAt      *time.Time     `json:"updated_at,omitempty"`
	Acknowledged   *time.Time     `json:"acknowledged,omitempty"`
	Resolved       *time.Time     `json:"resolved,omitempty"`
	Closed         *time.Time     `json:"closed,omitempty"`
	CreatedBy      uuid.UUID      `json:"created_by,omitempty"`
	IncidentRuleID *uuid.UUID     `json:"incident_rule_id,omitempty"`
	CommanderID    *uuid.UUID     `json:"commander_id,omitempty"`
	CommunicatorID *uuid.UUID     `json:"communicator_id,omitempty"`
}

func (Incident) AsMap added in v1.0.129

func (i Incident) AsMap(removeFields ...string) map[string]any

func (Incident) PK added in v1.0.561

func (i Incident) PK() string

func (Incident) TableName added in v1.0.561

func (i Incident) TableName() string

type IncidentStatus added in v1.0.24

type IncidentStatus string
var (
	IncidentStatusOpen      IncidentStatus = "open"
	IncidentStatusClosed    IncidentStatus = "closed"
	IncidentStatusMitigated IncidentStatus = "mitigated"
	IncidentStatusResolved  IncidentStatus = "resolved"
	IncidentStatusCancelled IncidentStatus = "cancelled"
)

type IncidentType added in v1.0.24

type IncidentType string
var (
	IncidentTypeAvailability  IncidentType = "availability"
	IncidentTypeCost          IncidentType = "cost"
	IncidentTypePerformance   IncidentType = "performance"
	IncidentTypeSecurity      IncidentType = "security"
	IncidentTypeTechnicalDebt IncidentType = "technical_debt"
	IncidentTypeCompliance    IncidentType = "compliance"
	IncidentTypeIntegration   IncidentType = "integration"
)

type Integration added in v1.0.238

type Integration struct {
	ID           uuid.UUID       `json:"id"`
	Name         string          `json:"name"`
	Description  string          `json:"description"`
	Integration  IntegrationType `json:"integration"`
	Source       string          `json:"source"`
	AgentID      *uuid.UUID      `json:"agent_id,omitempty"`
	CreatedAt    time.Time       `json:"created_at"`
	UpdatedAt    time.Time       `json:"updated_at"`
	DeletedAt    *time.Time      `json:"deleted_at,omitempty"`
	CreatedBy    *uuid.UUID      `json:"created_by,omitempty"`
	JobName      string          `json:"job_name"`
	JobSuccess   int             `json:"job_success_count"`
	JobError     int             `json:"job_error_count"`
	JobDetails   string          `json:"job_details"`
	JobHostname  string          `json:"job_hostname"`
	JobDuration  int             `json:"job_duration_millis"`
	JobResource  string          `json:"job_resource_type"`
	JobStatus    string          `json:"job_status"`
	JobTimeStart time.Time       `json:"job_time_start"`
	JobTimeEnd   time.Time       `json:"job_time_end"`
	JobCreatedAt time.Time       `json:"job_created_at"`
}

func (Integration) PK added in v1.0.561

func (i Integration) PK() string

func (*Integration) TableName added in v1.0.238

func (t *Integration) TableName() string

type IntegrationType added in v1.0.238

type IntegrationType string
const (
	IntegrationTypeScraper         IntegrationType = "scrapers"
	IntegrationTypeLoggingBackends IntegrationType = "logging_backends"
	IntegrationTypeTopology        IntegrationType = "topology"
)

type JobHistory

type JobHistory struct {
	ID             uuid.UUID `gorm:"default:generate_ulid()"`
	AgentID        uuid.UUID `json:"agent_id,omitempty"`
	Name           string
	SuccessCount   int
	ErrorCount     int
	Hostname       string
	DurationMillis int64
	ResourceType   string
	ResourceID     string
	Details        types.JSONMap
	Status         string
	TimeStart      time.Time
	TimeEnd        *time.Time
	Errors         []string      `gorm:"-"`
	Logger         logger.Logger `gorm:"-"`
}

func NewJobHistory added in v1.0.4

func NewJobHistory(log logger.Logger, name, resourceType, resourceID string) *JobHistory

func (*JobHistory) AddDetails added in v1.0.525

func (h *JobHistory) AddDetails(key string, val any)

func (*JobHistory) AddError

func (h *JobHistory) AddError(err any) *JobHistory

func (*JobHistory) AddErrorWithSkipReportLevel added in v1.0.310

func (h *JobHistory) AddErrorWithSkipReportLevel(err string, level int) *JobHistory

func (*JobHistory) AddErrorf added in v1.0.270

func (h *JobHistory) AddErrorf(msg string, args ...interface{}) *JobHistory

func (JobHistory) AsError added in v1.0.307

func (j JobHistory) AsError() error

func (*JobHistory) End

func (h *JobHistory) End() *JobHistory

func (JobHistory) GetUnpushed added in v1.0.476

func (j JobHistory) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (*JobHistory) IncrSuccess

func (h *JobHistory) IncrSuccess() *JobHistory

func (JobHistory) PK added in v1.0.476

func (j JobHistory) PK() string

func (*JobHistory) Persist added in v1.0.245

func (h *JobHistory) Persist(db *gorm.DB) error

func (*JobHistory) Start

func (h *JobHistory) Start() *JobHistory

func (*JobHistory) String added in v1.0.254

func (h *JobHistory) String() string

func (JobHistory) TableName added in v1.0.250

func (j JobHistory) TableName() string

type JobStatus added in v1.0.250

type JobStatus string
type Link struct {
	// e.g. documentation, support, playbook
	Type string `json:"type,omitempty"`
	URL  string `json:"url,omitempty"`
	Text `json:",inline"`
}

+kubebuilder:object:generate=true

func (*Link) DeepCopy added in v1.0.317

func (in *Link) DeepCopy() *Link

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Link.

func (*Link) DeepCopyInto added in v1.0.317

func (in *Link) DeepCopyInto(out *Link)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LocalTime added in v1.0.24

type LocalTime time.Time

func (LocalTime) MarshalJSON added in v1.0.24

func (t LocalTime) MarshalJSON() ([]byte, error)

func (*LocalTime) Scan added in v1.0.24

func (t *LocalTime) Scan(v interface{}) error

func (LocalTime) String added in v1.0.24

func (t LocalTime) String() string

func (*LocalTime) UnmarshalJSON added in v1.0.24

func (t *LocalTime) UnmarshalJSON(data []byte) (err error)

func (LocalTime) Value added in v1.0.24

func (t LocalTime) Value() (driver.Value, error)

type LogLine added in v1.0.24

type LogLine struct {
	Timestamp time.Time           `json:"timestamp"`
	Message   string              `json:"message"`
	Labels    types.JSONStringMap `json:"labels"`
}

type LogNameAccessor added in v1.0.564

type LogNameAccessor interface {
	LoggerName() string
}

type LoggingBackend added in v1.0.40

type LoggingBackend struct {
	ID        uuid.UUID           `json:"id" gorm:"default:generate_ulid()"`
	Name      string              `json:"name"`
	Labels    types.JSONStringMap `json:"labels" gorm:"type:jsonstringmap"`
	Spec      string              `json:"spec,omitempty"`
	Source    string              `json:"source,omitempty"`
	AgentID   *uuid.UUID          `json:"agent_id,omitempty"`
	CreatedAt time.Time           `json:"created_at,omitempty"`
	UpdatedAt time.Time           `json:"updated_at,omitempty"`
	DeletedAt *time.Time          `json:"deleted_at,omitempty"`
}

func (LoggingBackend) PK added in v1.0.561

func (l LoggingBackend) PK() string

func (LoggingBackend) TableName added in v1.0.561

func (l LoggingBackend) TableName() string

type NamespaceScopeAccessor added in v1.0.564

type NamespaceScopeAccessor interface {
	NamespaceScope() string
}

type Notification added in v1.0.129

type Notification struct {
	ID             uuid.UUID           `json:"id"`
	Name           string              `json:"name"`
	Namespace      string              `json:"namespace,omitempty"`
	Events         pq.StringArray      `json:"events" gorm:"type:[]text"`
	Title          string              `json:"title,omitempty"`
	Template       string              `json:"template,omitempty"`
	Filter         string              `json:"filter,omitempty"`
	PlaybookID     *uuid.UUID          `json:"playbook_id,omitempty"`
	PersonID       *uuid.UUID          `json:"person_id,omitempty"`
	TeamID         *uuid.UUID          `json:"team_id,omitempty"`
	Properties     types.JSONStringMap `json:"properties,omitempty"`
	Source         string              `json:"source"`
	RepeatInterval string              `json:"repeat_interval,omitempty"`
	GroupBy        pq.StringArray      `json:"group_by" gorm:"type:[]text"`
	CustomServices types.JSON          `json:"custom_services,omitempty" gorm:"column:custom_services"`
	CreatedBy      *uuid.UUID          `json:"created_by,omitempty"`
	UpdatedAt      time.Time           `json:"updated_at" time_format:"postgres_timestamp" gorm:"<-:false"`
	CreatedAt      time.Time           `json:"created_at" time_format:"postgres_timestamp" gorm:"<-:false"`
	DeletedAt      *time.Time          `json:"deleted_at,omitempty"`

	// Duration to wait before re-evaluating health of the resource.
	WaitFor *time.Duration `json:"wait_for,omitempty"`

	// Duration to wait after triggering incremental scrape for kubernetes config.
	// Works together with waitFor duration.
	WaitForEvalPeriod *time.Duration `json:"wait_for_eval_period,omitempty"`

	// Error stores errors in notification filters (if any).
	Error *string `json:"error,omitempty"`
}

Notification represents the notifications table

func (Notification) AsMap added in v1.0.175

func (n Notification) AsMap(removeFields ...string) map[string]any

func (*Notification) HasRecipients added in v1.0.129

func (n *Notification) HasRecipients() bool

func (Notification) PK added in v1.0.561

func (n Notification) PK() string

func (Notification) TableName added in v1.0.561

func (n Notification) TableName() string

type NotificationSendHistory added in v1.0.181

type NotificationSendHistory struct {
	ID             uuid.UUID `json:"id,omitempty" gorm:"default:generate_ulid()"`
	NotificationID uuid.UUID `json:"notification_id"`
	Body           *string   `json:"body,omitempty"`
	Error          *string   `json:"error,omitempty"`
	DurationMillis int64     `json:"duration_millis,omitempty"`
	CreatedAt      time.Time `json:"created_at" time_format:"postgres_timestamp"`
	Status         string    `json:"status,omitempty"`

	// payload holds in original event properties for delayed/pending notifications
	Payload types.JSONStringMap `json:"payload,omitempty"`

	NotBefore *time.Time `json:"notBefore,omitempty"`

	// number of retries of pending notifications
	Retries int `json:"retries,omitempty" gorm:"default:null"`

	// Notifications that were silenced or blocked by repeat intervals
	// use this counter.
	Count int `json:"count"`

	// Notifications that were silenced or blocked by repeat intervals
	// use this as the first observed timestamp.
	FirstObserved time.Time `json:"first_observed" gorm:"<-:false"`

	// Name of the original event that caused this notification
	SourceEvent string `json:"source_event"`

	// ID of the resource this notification is for
	ResourceID uuid.UUID `json:"resource_id"`

	// ID of the person this notification is for.
	PersonID *uuid.UUID `json:"person_id"`

	// The run created by this notification
	PlaybookRunID *uuid.UUID `json:"playbook_run_id"`
	// contains filtered or unexported fields
}

func NewNotificationSendHistory added in v1.0.181

func NewNotificationSendHistory(notificationID uuid.UUID) *NotificationSendHistory

func (NotificationSendHistory) AsMap added in v1.0.181

func (n NotificationSendHistory) AsMap(removeFields ...string) map[string]any

func (*NotificationSendHistory) End added in v1.0.181

func (*NotificationSendHistory) Failed added in v1.0.268

func (*NotificationSendHistory) PendingPlaybookRun added in v1.0.773

func (t *NotificationSendHistory) PendingPlaybookRun() *NotificationSendHistory

func (*NotificationSendHistory) Sending added in v1.0.268

func (*NotificationSendHistory) Sent added in v1.0.268

func (*NotificationSendHistory) TableName added in v1.0.181

func (t *NotificationSendHistory) TableName() string

func (*NotificationSendHistory) WithStartTime added in v1.0.752

type NotificationSilence added in v1.0.632

type NotificationSilence struct {
	NotificationSilenceResource `json:",inline" yaml:",inline"`

	ID          uuid.UUID           `json:"id"  gorm:"default:generate_ulid()"`
	Namespace   string              `json:"namespace,omitempty"`
	Filter      types.CelExpression `json:"filter,omitempty"`
	From        time.Time           `json:"from"`
	Until       time.Time           `json:"until"`
	Source      string              `json:"source"`
	Recursive   bool                `json:"recursive"`
	Description string              `json:"description,omitempty"`
	CreatedBy   *uuid.UUID          `json:"created_by,omitempty"`
	CreatedAt   time.Time           `json:"created_at" time_format:"postgres_timestamp" gorm:"<-:false"`
	UpdatedAt   time.Time           `json:"updated_at" time_format:"postgres_timestamp" gorm:"<-:false"`
	DeletedAt   *time.Time          `json:"deleted_at,omitempty"`

	// Error contains cel expression error in the filter
	Error *string `json:"error,omitempty"`
}

func (NotificationSilence) AsMap added in v1.0.632

func (n NotificationSilence) AsMap(removeFields ...string) map[string]any

func (*NotificationSilence) TableName added in v1.0.632

func (t *NotificationSilence) TableName() string

type NotificationSilenceResource added in v1.0.632

type NotificationSilenceResource struct {
	ConfigID    *string `json:"config_id,omitempty"`
	CanaryID    *string `json:"canary_id,omitempty"`
	ComponentID *string `json:"component_id,omitempty"`
	CheckID     *string `json:"check_id,omitempty"`
}

func (NotificationSilenceResource) Empty added in v1.0.635

type Permission added in v1.0.674

type Permission struct {
	ID             uuid.UUID  `json:"id" gorm:"default:generate_ulid()"`
	Action         string     `json:"action"`
	ConnectionID   *uuid.UUID `json:"connection_id,omitempty"`
	CanaryID       *uuid.UUID `json:"canary_id,omitempty"`
	ComponentID    *uuid.UUID `json:"component_id,omitempty"`
	ConfigID       *uuid.UUID `json:"config_id,omitempty"`
	CreatedAt      time.Time  `json:"created_at"`
	CreatedBy      uuid.UUID  `json:"created_by"`
	Deny           bool       `json:"deny"`
	Description    string     `json:"description"`
	PersonID       *uuid.UUID `json:"person_id,omitempty"`
	PlaybookID     *uuid.UUID `json:"playbook_id,omitempty"`
	TeamID         *uuid.UUID `json:"team_id,omitempty"`
	NotificationID *uuid.UUID `json:"notification_id,omitempty"`
	Until          *time.Time `json:"until"`
	UpdatedAt      *time.Time `json:"updated_at"`
	UpdatedBy      *uuid.UUID `json:"updated_by"`
}

func (*Permission) Condition added in v1.0.674

func (t *Permission) Condition() string

func (*Permission) Effect added in v1.0.674

func (t *Permission) Effect() string

func (*Permission) Principal added in v1.0.674

func (t *Permission) Principal() string

type Person added in v1.0.24

type Person struct {
	ID         uuid.UUID        `json:"id" gorm:"default:generate_ulid()"`
	Name       string           `json:"name"`
	Email      string           `json:"email,omitempty" gorm:"default:null"`
	Type       string           `json:"type,omitempty" gorm:"default:null"`
	Avatar     string           `json:"avatar,omitempty" gorm:"default:null"`
	ExternalID string           `json:"external_id,omitempty" gorm:"default:null"`
	Properties PersonProperties `json:"properties,omitempty" gorm:"default:null"`
}

func (Person) AsMap added in v1.0.172

func (person Person) AsMap(removeFields ...string) map[string]any

func (Person) GetName added in v1.0.615

func (p Person) GetName() string

func (Person) PK added in v1.0.561

func (p Person) PK() string

func (*Person) Save added in v1.0.567

func (p *Person) Save(db *gorm.DB) error

func (Person) TableName added in v1.0.24

func (person Person) TableName() string

type PersonProperties added in v1.0.24

type PersonProperties struct {
	Role string `json:"role,omitempty"`
}

func (*PersonProperties) Scan added in v1.0.24

func (p *PersonProperties) Scan(val any) error

func (PersonProperties) Value added in v1.0.24

func (p PersonProperties) Value() (driver.Value, error)

type Playbook added in v1.0.155

type Playbook struct {
	ID          uuid.UUID  `json:"id" gorm:"default:generate_ulid()"`
	Namespace   string     `json:"namespace"`
	Name        string     `json:"name"`
	Title       string     `json:"title"`
	Icon        string     `json:"icon,omitempty"`
	Description string     `json:"description,omitempty"`
	Spec        types.JSON `json:"spec"`
	Source      string     `json:"source"`
	Category    string     `json:"category"`
	CreatedBy   *uuid.UUID `json:"created_by,omitempty"`
	CreatedAt   time.Time  `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"<-:false"`
	UpdatedAt   time.Time  `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"<-:false"`
	DeletedAt   *time.Time `json:"deleted_at,omitempty" time_format:"postgres_timestamp"`
}

func (Playbook) AsMap added in v1.0.175

func (p Playbook) AsMap(removeFields ...string) map[string]any

func (Playbook) Context added in v1.0.564

func (p Playbook) Context() map[string]any

func (Playbook) Load added in v1.0.564

func (p Playbook) Load(db *gorm.DB) (*Playbook, error)

func (*Playbook) LoggerName added in v1.0.564

func (p *Playbook) LoggerName() string

func (*Playbook) NamespaceScope added in v1.0.564

func (p *Playbook) NamespaceScope() string

func (*Playbook) NamespacedName added in v1.0.772

func (p *Playbook) NamespacedName() string

func (Playbook) PK added in v1.0.561

func (p Playbook) PK() string

func (*Playbook) Save added in v1.0.567

func (p *Playbook) Save(db *gorm.DB) error

func (Playbook) TableName added in v1.0.561

func (p Playbook) TableName() string

type PlaybookActionAgentData added in v1.0.295

type PlaybookActionAgentData struct {
	ActionID   uuid.UUID  `json:"action_id"`
	RunID      uuid.UUID  `json:"run_id"`
	PlaybookID uuid.UUID  `json:"playbook_id"`
	Spec       types.JSON `json:"spec"`
	Env        types.JSON `json:"env,omitempty"`
}

func (*PlaybookActionAgentData) Context added in v1.0.564

func (p *PlaybookActionAgentData) Context() map[string]any

func (*PlaybookActionAgentData) TableName added in v1.0.295

func (t *PlaybookActionAgentData) TableName() string

type PlaybookActionStatus added in v1.0.281

type PlaybookActionStatus string

PlaybookRunStatus are statuses for a playbook run and its actions.

const (
	PlaybookActionStatusCompleted PlaybookActionStatus = "completed"
	PlaybookActionStatusFailed    PlaybookActionStatus = "failed"
	PlaybookActionStatusRunning   PlaybookActionStatus = "running"
	PlaybookActionStatusScheduled PlaybookActionStatus = "scheduled"
	PlaybookActionStatusWaiting   PlaybookActionStatus = "waiting"
	PlaybookActionStatusSkipped   PlaybookActionStatus = "skipped"
	PlaybookActionStatusSleeping  PlaybookActionStatus = "sleeping"
)

type PlaybookApproval added in v1.0.158

type PlaybookApproval struct {
	ID        uuid.UUID  `json:"id" gorm:"default:generate_ulid()"`
	RunID     uuid.UUID  `json:"run_id"`
	PersonID  *uuid.UUID `json:"person_id,omitempty"`
	TeamID    *uuid.UUID `json:"team_id,omitempty"`
	CreatedAt time.Time  `json:"created_at" gorm:"<-:false"`
}

func (PlaybookApproval) AsMap added in v1.0.175

func (p PlaybookApproval) AsMap(removeFields ...string) map[string]any

func (PlaybookApproval) PK added in v1.0.561

func (p PlaybookApproval) PK() string

func (PlaybookApproval) TableName added in v1.0.561

func (p PlaybookApproval) TableName() string

type PlaybookRun added in v1.0.155

type PlaybookRun struct {
	ID            uuid.UUID           `json:"id" gorm:"default:generate_ulid()"`
	PlaybookID    uuid.UUID           `json:"playbook_id"`
	Status        PlaybookRunStatus   `json:"status,omitempty"`
	Spec          types.JSON          `json:"spec"`
	CreatedAt     time.Time           `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"<-:false"`
	StartTime     *time.Time          `json:"start_time,omitempty" time_format:"postgres_timestamp"`
	ScheduledTime time.Time           `json:"scheduled_time,omitempty" time_format:"postgres_timestamp" gorm:"default:NOW(), NOT NULL"`
	EndTime       *time.Time          `json:"end_time,omitempty" time_format:"postgres_timestamp"`
	CreatedBy     *uuid.UUID          `json:"created_by,omitempty"`
	ComponentID   *uuid.UUID          `json:"component_id,omitempty"`
	CheckID       *uuid.UUID          `json:"check_id,omitempty"`
	ConfigID      *uuid.UUID          `json:"config_id,omitempty"`
	Error         *string             `json:"error,omitempty"`
	Parameters    types.JSONStringMap `json:"parameters,omitempty" gorm:"default:null"`
	Request       types.JSONMap       `json:"request,omitempty" gorm:"default:null"`
	AgentID       *uuid.UUID          `json:"agent_id,omitempty"`

	NotificationSendID *uuid.UUID `json:"notification_send_id,omitempty"`
}

func (PlaybookRun) AsMap added in v1.0.175

func (p PlaybookRun) AsMap(removeFields ...string) map[string]any

func (PlaybookRun) Assign added in v1.0.564

func (p PlaybookRun) Assign(db *gorm.DB, agent *Agent, action string) error

func (PlaybookRun) Context added in v1.0.564

func (p PlaybookRun) Context() map[string]any

func (PlaybookRun) Delay added in v1.0.564

func (p PlaybookRun) Delay(db *gorm.DB, delay time.Duration) error

func (PlaybookRun) End added in v1.0.564

func (p PlaybookRun) End(db *gorm.DB) error

func (PlaybookRun) Fail added in v1.0.564

func (p PlaybookRun) Fail(db *gorm.DB, err error) error

func (PlaybookRun) GetAction added in v1.0.564

func (p PlaybookRun) GetAction(db *gorm.DB, name string) (action *PlaybookRunAction, err error)

func (PlaybookRun) GetActions added in v1.0.564

func (p PlaybookRun) GetActions(db *gorm.DB) (actions []PlaybookRunAction, err error)

func (PlaybookRun) GetAgentAction added in v1.0.567

func (p PlaybookRun) GetAgentAction(db *gorm.DB, name string) (*PlaybookRunAction, error)

func (PlaybookRun) GetAgentActions added in v1.0.567

func (p PlaybookRun) GetAgentActions(db *gorm.DB) (actions []PlaybookRunAction, err error)

func (PlaybookRun) GetPlaybook added in v1.0.564

func (p PlaybookRun) GetPlaybook(db *gorm.DB) (*Playbook, error)

func (*PlaybookRun) GetRBACAttributes added in v1.0.680

func (run *PlaybookRun) GetRBACAttributes(db *gorm.DB) (map[string]any, error)

func (PlaybookRun) Load added in v1.0.564

func (p PlaybookRun) Load(db *gorm.DB) (*PlaybookRun, error)

func (PlaybookRun) PK added in v1.0.561

func (p PlaybookRun) PK() string

func (PlaybookRun) Running added in v1.0.564

func (p PlaybookRun) Running(db *gorm.DB) error

func (PlaybookRun) Schedule added in v1.0.564

func (p PlaybookRun) Schedule(db *gorm.DB) error

func (PlaybookRun) StartAction added in v1.0.564

func (p PlaybookRun) StartAction(db *gorm.DB, action string) (*PlaybookRunAction, error)

func (*PlaybookRun) String added in v1.0.564

func (p *PlaybookRun) String(db *gorm.DB) string

func (PlaybookRun) TableName added in v1.0.561

func (p PlaybookRun) TableName() string

func (PlaybookRun) Update added in v1.0.564

func (p PlaybookRun) Update(db *gorm.DB, columns map[string]any) error

func (PlaybookRun) Waiting added in v1.0.564

func (p PlaybookRun) Waiting(db *gorm.DB) error

type PlaybookRunAction added in v1.0.155

type PlaybookRunAction struct {
	ID            uuid.UUID            `json:"id" gorm:"default:generate_ulid()"`
	Name          string               `json:"name" gorm:"not null"`
	PlaybookRunID uuid.UUID            `json:"playbook_run_id"`
	Status        PlaybookActionStatus `json:"status,omitempty"`
	ScheduledTime time.Time            `json:"scheduled_time,omitempty" time_format:"postgres_timestamp" gorm:"default:NOW(), NOT NULL"`
	StartTime     time.Time            `json:"start_time,omitempty" time_format:"postgres_timestamp"  gorm:"default:NOW(), NOT NULL"`
	EndTime       *time.Time           `json:"end_time,omitempty" time_format:"postgres_timestamp"`
	Result        types.JSONMap        `json:"result,omitempty" gorm:"default:null"`
	Error         *string              `json:"error,omitempty" gorm:"default:null"`
	IsPushed      bool                 `json:"is_pushed"`
	AgentID       *uuid.UUID           `json:"agent_id,omitempty"`
}

func (PlaybookRunAction) AsMap added in v1.0.175

func (p PlaybookRunAction) AsMap(removeFields ...string) map[string]any

func (PlaybookRunAction) Complete added in v1.0.564

func (p PlaybookRunAction) Complete(db *gorm.DB, result any) error

func (PlaybookRunAction) Context added in v1.0.564

func (p PlaybookRunAction) Context() map[string]any

func (PlaybookRunAction) Fail added in v1.0.564

func (p PlaybookRunAction) Fail(db *gorm.DB, result any, err error) error

func (PlaybookRunAction) GetPlaybook added in v1.0.564

func (p PlaybookRunAction) GetPlaybook(db *gorm.DB) (*Playbook, error)

func (PlaybookRunAction) GetRun added in v1.0.564

func (p PlaybookRunAction) GetRun(db *gorm.DB) (*PlaybookRun, error)

func (PlaybookRunAction) JSON added in v1.0.567

func (p PlaybookRunAction) JSON() (out map[string]any)

func (PlaybookRunAction) Load added in v1.0.564

func (PlaybookRunAction) PK added in v1.0.561

func (p PlaybookRunAction) PK() string

func (PlaybookRunAction) ScheduleRun added in v1.0.564

func (p PlaybookRunAction) ScheduleRun(db *gorm.DB) error

func (PlaybookRunAction) Skip added in v1.0.564

func (p PlaybookRunAction) Skip(db *gorm.DB) error

func (PlaybookRunAction) Start added in v1.0.564

func (p PlaybookRunAction) Start(db *gorm.DB) error

func (PlaybookRunAction) String added in v1.0.564

func (p PlaybookRunAction) String() string

func (PlaybookRunAction) TableName added in v1.0.561

func (p PlaybookRunAction) TableName() string

func (PlaybookRunAction) Update added in v1.0.564

func (p PlaybookRunAction) Update(db *gorm.DB, columns map[string]any) error

func (PlaybookRunAction) UpdateRun added in v1.0.564

func (p PlaybookRunAction) UpdateRun(db *gorm.DB, columns map[string]any) error

type PlaybookRunStatus added in v1.0.155

type PlaybookRunStatus string

PlaybookRunStatus are statuses for a playbook run and its actions.

const (
	PlaybookRunStatusCancelled       PlaybookRunStatus = "cancelled"
	PlaybookRunStatusCompleted       PlaybookRunStatus = "completed"
	PlaybookRunStatusFailed          PlaybookRunStatus = "failed"
	PlaybookRunStatusPendingApproval PlaybookRunStatus = "pending_approval"
	PlaybookRunStatusRunning         PlaybookRunStatus = "running"
	PlaybookRunStatusScheduled       PlaybookRunStatus = "scheduled"
	PlaybookRunStatusSleeping        PlaybookRunStatus = "sleeping"
	PlaybookRunStatusWaiting         PlaybookRunStatus = "waiting" // waiting for a consumer
)

type Properties added in v1.0.15

type Properties []*Property

func (Properties) AsJSON added in v1.0.15

func (p Properties) AsJSON() []byte

func (Properties) AsMap added in v1.0.15

func (p Properties) AsMap() map[string]any

func (Properties) Find added in v1.0.15

func (p Properties) Find(name string) *Property

func (Properties) GormDBDataType added in v1.0.15

func (Properties) GormDBDataType(db *gorm.DB, field *schema.Field) string

func (Properties) GormDataType added in v1.0.15

func (Properties) GormDataType() string

GormDataType gorm common data type

func (Properties) GormValue added in v1.0.15

func (p Properties) GormValue(ctx context.Context, db *gorm.DB) clause.Expr

func (*Properties) Scan added in v1.0.15

func (p *Properties) Scan(val any) error

Scan scan value into Jsonb, implements sql.Scanner interface

func (Properties) Value added in v1.0.15

func (p Properties) Value() (driver.Value, error)

Scan scan value into Jsonb, implements sql.Scanner interface

type Property added in v1.0.15

type Property struct {
	Label    string `json:"label,omitempty"`
	Name     string `json:"name,omitempty"`
	Tooltip  string `json:"tooltip,omitempty"`
	Icon     string `json:"icon,omitempty"`
	Type     string `json:"type,omitempty"`
	Color    string `json:"color,omitempty"`
	Order    int    `json:"order,omitempty"`
	Headline bool   `json:"headline,omitempty"`

	// Either text or value is required, but not both.
	Text  string `json:"text,omitempty"`
	Value *int64 `json:"value,omitempty"`

	// e.g. milliseconds, bytes, millicores, epoch etc.
	Unit string `json:"unit,omitempty"`
	Max  *int64 `json:"max,omitempty"`
	Min  *int64 `json:"min,omitempty"`

	Status         string `json:"status,omitempty"`
	LastTransition string `json:"lastTransition,omitempty"`
	Links          []Link `json:"links,omitempty"`
}

Property is a realized v1.Property without the lookup definition +kubebuilder:object:generate=true

func (Property) AsMap added in v1.0.175

func (p Property) AsMap(removeFields ...string) map[string]any

func (*Property) DeepCopy added in v1.0.317

func (in *Property) DeepCopy() *Property

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Property.

func (*Property) DeepCopyInto added in v1.0.317

func (in *Property) DeepCopyInto(out *Property)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Property) GetValue added in v1.0.15

func (p Property) GetValue() any

func (*Property) Merge added in v1.0.15

func (p *Property) Merge(other *Property)

func (*Property) String added in v1.0.15

func (p *Property) String() string

type RelatedConfigDirection added in v1.0.459

type RelatedConfigDirection string
const (
	RelatedConfigTypeIncoming RelatedConfigDirection = "incoming"
	RelatedConfigTypeOutgoing RelatedConfigDirection = "outgoing"
)

type Responder added in v1.0.67

type Responder struct {
	ID           uuid.UUID  `gorm:"primaryKey" json:"id"`
	IncidentID   uuid.UUID  `json:"incident_id"`
	Type         string     `json:"type"`
	Index        *int16     `json:"index,omitempty"`
	PersonID     *uuid.UUID `json:"person_id,omitempty"`
	TeamID       *uuid.UUID `json:"team_id,omitempty"`
	ExternalID   *string    `json:"external_id,omitempty"`
	Properties   *string    `gorm:"type:jsonb;default:null" json:"properties,omitempty"`
	Acknowledged *time.Time `json:"acknowledged,omitempty" time_format:"postgres_timestamp"`
	Resolved     *time.Time `json:"resolved,omitempty" time_format:"postgres_timestamp"`
	Closed       *time.Time `json:"closed,omitempty" time_format:"postgres_timestamp"`
	CreatedBy    uuid.UUID  `json:"created_by"`
	CreatedAt    time.Time  `json:"created_at" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
	UpdatedAt    time.Time  `json:"updated_at" time_format:"postgres_timestamp" gorm:"default:CURRENT_TIMESTAMP()"`
}

func (Responder) AsMap added in v1.0.129

func (r Responder) AsMap(removeFields ...string) map[string]any

func (Responder) PK added in v1.0.561

func (r Responder) PK() string

func (Responder) TableName added in v1.0.561

func (r Responder) TableName() string

type ScrapePlugin added in v1.0.764

type ScrapePlugin struct {
	ID        uuid.UUID  `json:"id" gorm:"default:generate_ulid()"`
	Name      string     `json:"name"`
	Namespace string     `json:"namespace"`
	Spec      types.JSON `json:"spec,omitempty"`
	Source    string     `json:"source,omitempty"`
	CreatedBy *uuid.UUID `json:"created_by,omitempty"`
	CreatedAt time.Time  `json:"created_at" gorm:"<-:create"`
	UpdatedAt *time.Time `json:"updated_at" gorm:"autoUpdateTime:false"`
	DeletedAt *time.Time `json:"deleted_at,omitempty"`
}

type Severity added in v1.0.116

type Severity string
const (
	SeverityInfo     Severity = "info"
	SeverityLow      Severity = "low"
	SeverityMedium   Severity = "medium"
	SeverityHigh     Severity = "high"
	SeverityCritical Severity = "critical"
)

type Team added in v1.0.115

type Team struct {
	ID        uuid.UUID  `gorm:"default:generate_ulid()"`
	Name      string     `gorm:"not null" json:"name"`
	Icon      string     `json:"icon,omitempty"`
	Spec      types.JSON `json:"spec,omitempty"`
	Source    string     `json:"source,omitempty"`
	CreatedBy uuid.UUID  `gorm:"not null" json:"created_by"`
	CreatedAt time.Time  `json:"created_at"`
	UpdatedAt time.Time  `json:"updated_at"`
	DeletedAt *time.Time `json:"deleted_at,omitempty"`
}

func (*Team) AsMap added in v1.0.175

func (t *Team) AsMap(removeFields ...string) map[string]any

func (Team) PK added in v1.0.561

func (t Team) PK() string

func (Team) TableName added in v1.0.561

func (t Team) TableName() string

type Text added in v1.0.15

type Text struct {
	Tooltip string `json:"tooltip,omitempty"`
	Icon    string `json:"icon,omitempty"`
	Text    string `json:"text,omitempty"`
	Label   string `json:"label,omitempty"`
}

type Topology added in v1.0.72

type Topology struct {
	ID        uuid.UUID           `gorm:"default:generate_ulid()"`
	AgentID   uuid.UUID           `json:"agent_id"`
	Name      string              `json:"name"`
	Namespace string              `json:"namespace"`
	Labels    types.JSONStringMap `json:"labels,omitempty"  gorm:"default:null"`
	Source    string              `json:"source"`
	Spec      types.JSON          `gorm:"default:null"`
	Schedule  *string             `json:"schedule,omitempty"`
	CreatedBy *uuid.UUID          `json:"created_by,omitempty"`
	CreatedAt *time.Time          `json:"created_at,omitempty" time_format:"postgres_timestamp" gorm:"<-:create"`
	UpdatedAt *time.Time          `json:"updated_at,omitempty" time_format:"postgres_timestamp" gorm:"autoUpdateTime:false"`
	DeletedAt *time.Time          `json:"deleted_at,omitempty" time_format:"postgres_timestamp"`
}

Topology represents the topologies database table

func (*Topology) AsMap added in v1.0.175

func (t *Topology) AsMap(removeFields ...string) map[string]any

func (Topology) GetUnpushed added in v1.0.362

func (t Topology) GetUnpushed(db *gorm.DB) ([]DBTable, error)

func (Topology) OnConflictClause added in v1.0.438

func (t Topology) OnConflictClause() clause.OnConflict

func (Topology) PK added in v1.0.362

func (t Topology) PK() string

func (*Topology) Save added in v1.0.510

func (t *Topology) Save(db *gorm.DB) error

func (Topology) TableName added in v1.0.72

func (Topology) TableName() string

Jump to

Keyboard shortcuts

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