You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
3.1 KiB
137 lines
3.1 KiB
from itsimodels.core.base_models import BaseModel, ChildModel
|
|
from itsimodels.core.fields import (
|
|
BoolField,
|
|
DictField,
|
|
ForeignKey,
|
|
ListField,
|
|
NumberField,
|
|
StringField,
|
|
TypeField
|
|
)
|
|
|
|
|
|
class FactorWeight(ChildModel):
|
|
factor_name = StringField()
|
|
|
|
factor_weight = NumberField()
|
|
|
|
|
|
class Rule(ChildModel):
|
|
key = StringField(alias='_key')
|
|
|
|
actions = ListField(object)
|
|
|
|
activation_criteria = DictField()
|
|
|
|
description = StringField()
|
|
|
|
priority = NumberField()
|
|
|
|
title = StringField()
|
|
|
|
|
|
class FieldSpecificationConfig(ChildModel):
|
|
operator = StringField()
|
|
|
|
field = StringField()
|
|
|
|
value = ForeignKey('itsimodels.neap.NotableEventAggregationPolicy')
|
|
|
|
|
|
class FieldSpecification(ChildModel):
|
|
config = TypeField(FieldSpecificationConfig)
|
|
|
|
type = StringField()
|
|
|
|
|
|
class FieldSpecifications(ChildModel):
|
|
items = ListField(FieldSpecification)
|
|
|
|
condition = StringField()
|
|
|
|
|
|
class Clause(ChildModel):
|
|
type = StringField()
|
|
|
|
config = TypeField(FieldSpecifications)
|
|
|
|
|
|
class FilterCriteria(ChildModel):
|
|
items = ListField(Clause)
|
|
|
|
condition = StringField()
|
|
|
|
|
|
class NotableEventAggregationPolicy(BaseModel):
|
|
key = StringField(required=True, alias='_key')
|
|
|
|
title = StringField(required=True)
|
|
|
|
breaking_criteria = DictField(object)
|
|
|
|
description = StringField(default='')
|
|
|
|
disabled = BoolField(default=True)
|
|
|
|
entity_factor_enabled = BoolField(default=True)
|
|
|
|
filter_criteria = TypeField(FilterCriteria)
|
|
|
|
group_assignee = StringField()
|
|
|
|
group_custom_instruction = StringField()
|
|
|
|
group_dashboard = StringField()
|
|
|
|
group_dashboard_context = StringField()
|
|
|
|
group_description = StringField()
|
|
|
|
group_instruction = StringField()
|
|
|
|
group_severity = StringField()
|
|
|
|
group_status = StringField()
|
|
|
|
group_title = StringField()
|
|
|
|
priority = StringField()
|
|
|
|
rules = ListField(Rule)
|
|
|
|
service_topology_enabled = BoolField(default=True)
|
|
|
|
smart_breaking_criteria = DictField(object, alias='ace_breaking_criteria')
|
|
|
|
smart_enabled = BoolField(default=False, alias='ace_enabled')
|
|
|
|
smart_factor_fields = ListField(object, alias='ace_factor_fields')
|
|
|
|
smart_factor_weights = ListField(FactorWeight, alias='ace_factor_weights')
|
|
|
|
smart_field_analysis_end_time = NumberField(alias='ace_field_analysis_end_time')
|
|
|
|
smart_field_analysis_start_time = NumberField(alias='ace_field_analysis_start_time')
|
|
|
|
smart_group_assignee = StringField(alias='ace_group_assignee')
|
|
|
|
smart_group_dashboard = StringField(alias='ace_group_dashboard')
|
|
|
|
smart_group_dashboard_context = StringField(alias='ace_group_dashboard_context')
|
|
|
|
smart_group_description = StringField(alias='ace_group_description')
|
|
|
|
smart_group_instruction = StringField(alias='ace_group_instruction')
|
|
|
|
smart_group_severity = StringField(alias='ace_group_severity')
|
|
|
|
smart_group_status = StringField(alias='ace_group_status')
|
|
|
|
smart_group_title = StringField(alias='ace_group_title')
|
|
|
|
smart_split_by_field = StringField(default='', alias='ace_split_by_field')
|
|
|
|
split_by_field = StringField(default='')
|
|
|
|
sub_group_limit = StringField(default='')
|