Documentation ¶
Index ¶
- Constants
- func GetStringIssueState(issueState IssueState) string
- type AbstractSituationInstance
- type Action
- type CaseInput
- type CaseState
- type ExternalConfig
- type FactValue
- type FrontAction
- type FrontDraft
- type FrontFactHistory
- type FrontRecommendation
- type FrontRootCause
- type InputTask
- type Issue
- type IssueLevel
- type IssueState
- type MetaData
- type NotSupportedValue
- type ObjectValue
- type PaginatedResource
- type RootCause
- type RuleData
- type RuleInput
- type SearchOptions
- type SingleValue
- type SortOption
- type SortOptionOrder
Constants ¶
const ( //ContextKeyUser is used as key to add the user data in the request context ContextKeyUser keyContext = iota //ContextKeyLoggerR is used as key to add the value of the http.Request at the CustomLogger middlewere execution ContextKeyLoggerR //UserLogin is used as key to add the userloging into the request context UserLogin )
Variables ¶
This section is empty.
Functions ¶
func GetStringIssueState ¶
func GetStringIssueState(issueState IssueState) string
GetStringIssueState gets the string representation of a IssueState
Types ¶
type AbstractSituationInstance ¶
type AbstractSituationInstance map[string]interface{}
AbstractSituationInstance wrap a standard map for evaluation
type Action ¶
type Action struct { ID int64 `json:"id"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` RootCauseID int64 `json:"rootCauseId"` }
Action object that represents the actions to be taken for an Issue
type CaseInput ¶
type CaseInput struct { Name string `json:"name"` Condition string `json:"condition"` State CaseState `json:"state"` Errors []string `json:"errors,omitempty"` }
CaseInput : Input of a case in a rule evaluation
type CaseState ¶
type CaseState int
CaseState state of a evaluated case (caseResult)
func (CaseState) MarshalJSON ¶
MarshalJSON marshals the enum as a quoted json string
func (*CaseState) UnmarshalJSON ¶
UnmarshalJSON unmashals a quoted json string to the enum value
type ExternalConfig ¶
type ExternalConfig struct { Name string `json:"name"` Data interface{} `json:"data"` }
type FrontAction ¶
type FrontAction struct { ID int64 `json:"id"` Name string `json:"name"` Description string `json:"description"` Selected bool `json:"selected"` Custom bool `json:"custom"` Occurrence int64 `json:"occurrence"` UsageRate float64 `json:"usageRate"` }
FrontAction represent a single action
type FrontDraft ¶
type FrontDraft = FrontRecommendation
FrontDraft is a type alias used for FrontRecommendation persistence It allow an easier recognition inside the different functions to distinguish User Draft and generated Recommendation
type FrontFactHistory ¶
type FrontFactHistory struct { ID int64 `json:"id"` Name string `json:"name"` Type string `json:"type"` Deepness int32 `json:"deepness"` CurrentValue FactValue `json:"currentValue"` History map[time.Time]FactValue `json:"history"` }
FrontFactHistory represents the current fact value and its history
type FrontRecommendation ¶
type FrontRecommendation struct { ConcurrencyUUID string `json:"uuid"` Tree []*FrontRootCause `json:"tree"` }
FrontRecommendation is the main exchange structure with the frontend It is used to display recommendations, and to process issue resolving draft and feedback
type FrontRootCause ¶
type FrontRootCause struct { ID int64 `json:"id"` Name string `json:"name"` Description string `json:"description"` Selected bool `json:"selected"` Custom bool `json:"custom"` Occurrence int64 `json:"occurrence"` UsageRate float64 `json:"usageRate"` ClusteringScore float64 `json:"clusteringScore"` Actions []*FrontAction `json:"actions"` }
FrontRootCause represent a single rootcause and its actions
type Issue ¶
type Issue struct { ID int64 `json:"id"` Key string `json:"key"` Name string `json:"name"` Level IssueLevel `json:"level"` SituationHistoryID int64 `json:"situationHistoryId"` SituationID int64 `json:"situationId"` TemplateInstanceID int64 `json:"templateInstanceId"` SituationTS time.Time `json:"situationDate"` ExpirationTS time.Time `json:"expirationDate"` Rule RuleData `json:"rule"` State IssueState `json:"state"` CreationTS time.Time `json:"createdAt,omitempty"` LastModificationTS time.Time `json:"lastModified"` DetectionRatingAvg float64 `json:"detectionRatingAvg,omitempty"` AssignedAt *time.Time `json:"assignedAt,omitempty"` AssignedTo *string `json:"assignedTo,omitempty"` ClosedAt *time.Time `json:"closedAt,omitempty"` CloseBy *string `json:"closedBy,omitempty"` Comment *string `json:"comment,omitempty"` }
Issue is created for a situation to take Root causes and Actions
type IssueLevel ¶
type IssueLevel int
IssueLevel state of a issue
const ( // Info information level Info IssueLevel = iota + 1 // Ok stable level Ok // Warning warning level Warning // Critical critical level Critical )
func ToIssueLevel ¶
func ToIssueLevel(s string) IssueLevel
ToIssueLevel get the IssueLevel from is string representation
func (IssueLevel) MarshalJSON ¶
func (s IssueLevel) MarshalJSON() ([]byte, error)
MarshalJSON marshals the enum as a quoted json string
func (IssueLevel) String ¶
func (s IssueLevel) String() string
func (*IssueLevel) UnmarshalJSON ¶
func (s *IssueLevel) UnmarshalJSON(b []byte) error
UnmarshalJSON unmashals a quoted json string to the enum value
type IssueState ¶
type IssueState int
IssueState represents the state in which the Issue is
const ( // Open state of issue Open IssueState = iota + 1 // Draft state of issue Draft // ClosedFeedback state of issue ClosedFeedback // ClosedNoFeedback state of issue ClosedNoFeedback // ClosedTimeout state of issue ClosedTimeout // ClosedDiscard state of issue ClosedDiscard )
func ToIssueState ¶
func ToIssueState(s string) IssueState
ToIssueState get the IssueState from is string representation
func (IssueState) IsClosed ¶
func (s IssueState) IsClosed() bool
IsClosed returns if the IssueState is a closed state
func (IssueState) MarshalJSON ¶
func (s IssueState) MarshalJSON() ([]byte, error)
MarshalJSON marshals the enum as a quoted json string
func (IssueState) String ¶
func (s IssueState) String() string
func (*IssueState) UnmarshalJSON ¶
func (s *IssueState) UnmarshalJSON(b []byte) error
UnmarshalJSON unmashals a quoted json string to the enum value
type MetaData ¶
type MetaData struct { Key string `json:"key"` Value interface{} `json:"value"` RuleID int64 `json:"ruleId"` RuleVersion int64 `json:"ruleVersion"` CaseName string `json:"caseName"` }
MetaData struct to represent a situation metadata
type NotSupportedValue ¶
type NotSupportedValue struct {
IsCurrent bool
}
NotSupportedValue value for not supported history facts
func (*NotSupportedValue) GetDeepness ¶
func (factValue *NotSupportedValue) GetDeepness() int32
GetDeepness get deepness
func (*NotSupportedValue) GetType ¶
func (factValue *NotSupportedValue) GetType() string
GetType get fact value type
func (*NotSupportedValue) SetCurrent ¶
func (factValue *NotSupportedValue) SetCurrent(current bool)
SetCurrent set the IsCurrent boolean
func (*NotSupportedValue) String ¶
func (factValue *NotSupportedValue) String() string
type ObjectValue ¶
type ObjectValue struct {
Attributes map[string]interface{} `json:"attributes"`
}
ObjectValue is a factValue implementation dedicated to object facts
func (*ObjectValue) GetDeepness ¶
func (factValue *ObjectValue) GetDeepness() int32
GetDeepness get deepness
func (*ObjectValue) GetType ¶
func (factValue *ObjectValue) GetType() string
GetType get fact value type
func (*ObjectValue) SetCurrent ¶
func (factValue *ObjectValue) SetCurrent(current bool)
SetCurrent set the IsCurrent boolean
func (*ObjectValue) String ¶
func (factValue *ObjectValue) String() string
type PaginatedResource ¶
type PaginatedResource struct { Total int `json:"total"` Items interface{} `json:"items"` // Usually a slice of struct }
PaginatedResource wraps a list of resources with additionnal informations
type RootCause ¶
type RootCause struct { ID int64 `json:"id"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` SituationID int64 `json:"situationId"` RuleID int64 `json:"ruleId"` }
RootCause is the causes for the Issues
type RuleData ¶
type RuleData struct { RuleID int64 `json:"ruleId"` RuleVersion int64 `json:"ruleVersion"` CaseName string `json:"caseName"` }
RuleData rule identification
type RuleInput ¶
type RuleInput struct { RuleID int64 `json:"id"` RuleVersion int64 `json:"version"` RuleTitle string `json:"title"` RuleDescription string `json:"description"` CasesInput []CaseInput `json:"cases,omitempty"` }
RuleInput Input of one evaluation of the rule
type SearchOptions ¶
type SearchOptions struct { Limit int `json:"limit"` Offset int `json:"offset"` SortBy []SortOption `json:"sortBy"` }
SearchOptions contains standard listing / search options
type SingleValue ¶
type SingleValue struct { Key string `json:"key"` Value interface{} `json:"value"` IsCurrent bool `json:"isCurrent"` }
SingleValue represents a fact with a single value
func (*SingleValue) GetDeepness ¶
func (factValue *SingleValue) GetDeepness() int32
GetDeepness get deepness
func (*SingleValue) GetType ¶
func (factValue *SingleValue) GetType() string
GetType get fact value type
func (*SingleValue) SetCurrent ¶
func (factValue *SingleValue) SetCurrent(isCurrent bool)
SetCurrent set the IsCurrent boolean
func (*SingleValue) String ¶
func (factValue *SingleValue) String() string
type SortOption ¶
type SortOption struct { Field string `json:"field"` Order SortOptionOrder `json:"order"` }
SortOption contains a sort clause (field + ordering)
type SortOptionOrder ¶
type SortOptionOrder int
SortOptionOrder indicate if the sorting is ASC or DESC
const ( // Asc sort order Asc SortOptionOrder = iota + 1 // Desc sort order Desc )
func ToSortOptionOrder ¶
func ToSortOptionOrder(s string) SortOptionOrder
ToSortOptionOrder get the SortOptionOrder from is string representation
func (SortOptionOrder) MarshalJSON ¶
func (s SortOptionOrder) MarshalJSON() ([]byte, error)
MarshalJSON marshals the enum as a quoted json string
func (SortOptionOrder) String ¶
func (s SortOptionOrder) String() string
func (*SortOptionOrder) UnmarshalJSON ¶
func (s *SortOptionOrder) UnmarshalJSON(b []byte) error
UnmarshalJSON unmashals a quoted json string to the enum value