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

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='')