1 # Copyright (C) 2021 Wind River Systems, Inc.
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 from flask_restx import fields
17 from o2common.views.flask_restx_fields import Json2Dict
18 from o2ims.views.api_ns import api_ims_monitoring as api_monitoring_v1
23 alarm_event_record_get = api_monitoring_v1.model(
26 'alarmEventRecordId': fields.String(
28 example='f078a1d3-56df-46c2-88a2-dd659aa3f6bd',
29 description='Alarm Event Record ID'),
30 'resourceTypeId': fields.String,
31 'resourceTypeID': fields.String(attribute='resourceTypeId'),
32 'resourceId': fields.String,
33 'resourceID': fields.String(attribute='resourceId'),
34 'alarmDefinitionId': fields.String,
35 'alarmDefinitionID': fields.String(attribute='alarmDefinitionId'),
36 'probableCauseId': fields.String,
37 'probableCauseID': fields.String(attribute='probableCauseId'),
38 'alarmRaisedTime': fields.String,
39 'alarmChangedTime': fields.String,
40 'alarmAcknowledgeTime': fields.String,
41 'alarmAcknowledged': fields.Boolean,
42 'perceivedSeverity': fields.String,
43 'extensions': Json2Dict(attribute='extensions')
45 # mask='{alarmEventRecordId,resourceTypeID,resourceID,' +
46 # 'alarmDefinitionID,probableCauseID,' +
47 # 'alarmRaisedTime,perceivedSeverity,alarmChangedTime,' +
48 # 'alarmAcknowledgeTime,alarmAcknowledged,extensions}'
52 class SubscriptionDTO:
54 subscription_get = api_monitoring_v1.model(
55 "AlarmSubscriptionGetDto",
57 'alarmSubscriptionId': fields.String(
59 description='Alarm Subscription ID'),
60 'callback': fields.String,
61 'consumerSubscriptionId': fields.String,
62 'filter': fields.String,
64 mask='{alarmSubscriptionId,callback}'
67 subscription_create = api_monitoring_v1.model(
68 "AlarmSubscriptionCreateDto",
70 'callback': fields.String(
72 description='Alarm Subscription callback address'),
73 'consumerSubscriptionId': fields.String,
74 'filter': fields.String,