Commit 4058020b authored by Giacomo Bernini's avatar Giacomo Bernini
Browse files

updated usage of FM common data types

parent 83b35f7c
......@@ -76,7 +76,7 @@ paths:
schema:
type: array
items:
$ref: definitions/SOL009NFVManoFaultManagement_def.yaml#/definitions/Alarm
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Alarm"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -99,17 +99,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
"/alarms/{alarmId}":
parameters:
- name: alarmId
description: >
Identifier of the alarm. This identifier can be retrieved from the
"id" attribute of the "alarm" attribute in the AlarmNotification or
AlarmClearedNotification. It can also be retrieved from the "id"
attribute of the applicable array element in the payload body of the
response to a GET request to the "Alarms" resource.
in: path
required: true
schema:
type: string
- $ref: "#/components/parameters/alarmId"
get:
description: >
The client can use this method to read an individual alarm. This method
......@@ -139,7 +129,7 @@ paths:
content:
application/json:
schema:
$ref: definitions/SOL009NFVManoFaultManagement_def.yaml#/definitions/Alarm
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Alarm"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -175,7 +165,7 @@ paths:
content:
application/json:
schema:
$ref: definitions/SOL009NFVManoFaultManagement_def.yaml#/definitions/AlarmModifications
$ref: "#/components/schemas/AlarmModifications"
description: >
The parameter for the alarm modification, as defined in clause
7.6.2.8. The Content-Type header shall be set to
......@@ -209,7 +199,7 @@ paths:
content:
application/json:
schema:
$ref: definitions/SOL009NFVManoFaultManagement_def.yaml#/definitions/AlarmModifications
$ref: "#/components/schemas/AlarmModifications"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -264,7 +254,7 @@ paths:
content:
application/json:
schema:
$ref: definitions/SOL009NFVManoFaultManagement_def.yaml#/definitions/FmSubscriptionRequest
$ref: "#/components/schemas/FmSubscriptionRequest"
description: >
Details of the subscription to be created, as defined in clause
7.6.2.2.
......@@ -306,7 +296,7 @@ paths:
content:
application/json:
schema:
$ref: definitions/SOL009NFVManoFaultManagement_def.yaml#/definitions/FmSubscription
$ref: "#/components/schemas/FmSubscription"
"303":
$ref: ../components/SOL009_resp.yaml#/components/responses/303
"400":
......@@ -392,7 +382,7 @@ paths:
content:
application/json:
schema:
$ref: definitions/SOL009NFVManoFaultManagement_def.yaml#/definitions/FmSubscription
$ref: "#/components/schemas/FmSubscription"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -415,17 +405,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
"/subscriptions/{subscriptionId}":
parameters:
- name: subscriptionId
description: >
Identifier of this subscription. This identifier can be retrieved from
the resource referenced by the "Location" HTTP header in the response
to a POST request creating a new "Individual subscription" resource.
It can also be retrieved from the "id" attribute in the payload body
of that response.
in: path
required: true
schema:
type: string
- $ref: "#/components/parameters/subscriptionId"
get:
description: >
Query Subscription Information. The client can use this method for
......@@ -472,7 +452,7 @@ paths:
content:
application/json:
schema:
$ref: definitions/SOL009NFVManoFaultManagement_def.yaml#/definitions/FmSubscription
$ref: "#/components/schemas/FmSubscription"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -553,3 +533,221 @@ paths:
"504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504
components:
parameters:
alarmId:
name: alarmId
description: >
Identifier of the alarm. This identifier can be retrieved from the
"id" attribute of the "alarm" attribute in the AlarmNotification or
AlarmClearedNotification. It can also be retrieved from the "id"
attribute of the applicable array element in the payload body of the
response to a GET request to the "Alarms" resource.
in: path
required: true
schema:
type: string
subscriptionId:
name: subscriptionId
description: >
Identifier of this subscription. This identifier can be retrieved from
the resource referenced by the "Location" HTTP header in the response
to a POST request creating a new "Individual subscription" resource.
It can also be retrieved from the "id" attribute in the payload body
of that response.
in: path
required: true
schema:
type: string
schemas:
FmSubscriptionRequest:
description: >
This type represents a subscription request related to notifications
about NFV-MANO faults.
type: object
required:
- callbackUri
properties:
filter:
description: >
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to. A particular
notification is sent to the subscriber if the filter matches, or if
there is no filter.
$ref: "#/components/schemas/FmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
authentication:
description: >
Authentication parameters to configure the use of Authorization when sending notifications
corresponding to this subscription, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013.
This attribute shall only be present if the subscriber requires authorization of notifications.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication"
FmSubscription:
description: >
This type represents a subscription related to notifications about VNF
faults.
type: object
required:
- id
- callbackUri
- _links
properties:
id:
description: >
Identifier of this "Individual subscription" resource.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
filter:
description: >
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to. A particular
notification is sent to the subscriber if the filter matches, or if
there is no filter.
$ref: "#/components/schemas/FmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
_links:
description: >
Links for this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
AlarmModifications:
description: >
This type represents attribute modifications for an "Individual alarm"
resource, i.e. modifications to a resource representation based on the
"Alarm" data type. The attributes of "Alarm" that can be modified
are included in the "AlarmModifications" data type.
type: object
required:
- ackState
properties:
ackState:
description: >
New value of the "ackState" attribute in "Alarm".
Permitted values:
* ACKNOWLEDGED
type: string
enum:
- ACKNOWLEDGED
EventType:
description: >
The enumeration EventType represents those types of events that trigger
an alarm.
* COMMUNICATIONS_ALARM: An alarm of this type is associated with the
procedure and/or process required conveying information from one point
to another (ITU-T Recommendation X.733).
* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a
software or processing fault (ITU-T Recommendation X.733).
* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a
condition related to an enclosure in which the equipment resides
(ITU-T Recommendation X.733).
* QOS_ALARM: An alarm of this type is associated with degradation in the
quality of a service (ITU-T Recommendation X.733).
* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment
fault (ITU-T Recommendation X.733).
type: string
enum:
- COMMUNICATIONS_ALARM
- PROCESSING_ERROR_ALARM
- ENVIRONMENTAL_ALARM
- QOS_ALARM
- EQUIPMENT_ALARM
FmNotificationsFilter:
description: >
This type represents a subscription filter related to notifications about NFV-MANO functional entity faults.
It shall comply with the provisions defined in table 7.6.3.2-1. At a particular nesting level in the filter
structure, the following applies: All attributes shall match in order for the filter to match (logical "and"
between different filter attributes). If an attribute is an array, the attribute shall match if at least one
of the values in the array matches (logical "or" between the values of one filter attribute).
type: object
properties:
notificationTypes:
description: >
Match particular notification types.
Permitted values:
* AlarmNotification
* AlarmClearedNotification
* AlarmListRebuiltNotification
The permitted values of the "notificationTypes" attribute are
spelled exactly as the names of the notification types to
facilitate automated code generation systems.
type: array
items:
type: string
enum:
- AlarmNotification
- AlarmClearedNotification
- AlarmListRebuiltNotification
perceivedSeverities:
description: >
Match VNF alarms with a perceived severity listed in this attribute.
type: array
items:
$ref: "#/components/schemas/PerceivedSeverityType"
eventTypes:
description: >
Match VNF alarms with an event type listed in this attribute.
type: array
items:
$ref: "#/components/schemas/EventType"
probableCauses:
description: >
Match VNF alarms with a probable cause listed in this attribute.
type: array
items:
type: string
PerceivedSeverityType:
description: >
Indicates the relative level of urgency for operator attention.
* CRITICAL: The Critical severity level indicates that a service
affecting condition has occurred and an immediate corrective action
is required. Such a severity can be reported, for example, when a
managed object becomes totally out of service and its capability needs
to be restored (ITU-T Recommendation X.733).
* MAJOR: The Major severity level indicates that a service affecting
condition has developed and an urgent corrective action is required.
Such a severity can be reported, for example, when there is a severe
degradation in the capability of the managed object and its full
capability needs to be restored (ITU-T Recommendation X.733).
* MINOR: The Minor severity level indicates the existence of a
non-service affecting fault condition and that corrective action
should be taken in order to prevent a more serious (for example,
service affecting) fault. Such a severity can be reported, for
example, when the detected alarm condition is not currently degrading
the capacity of the managed object (ITU-T Recommendation X.733).
* WARNING: The Warning severity level indicates the detection of a
potential or impending service affecting fault, before any significant
effects have been felt. Action should be taken to further diagnose (if
necessary) and correct the problem in order to prevent it from
becoming a more serious service affecting fault (ITU-T Recommendation
X.733).
* INDETERMINATE: The Indeterminate severity level indicates that the
severity level cannot be determined (ITU-T Recommendation X.733).
* CLEARED: The Cleared severity level indicates the clearing of one or
more previously reported alarms. This alarm clears all alarms for this
managed object that have the same Alarm type, Probable cause and
Specific problems (if given) (ITU-T Recommendation X.733).
type: string
enum:
- CRITICAL
- MAJOR
- MINOR
- WARNING
- INDETERMINATE
- CLEARED
......@@ -41,7 +41,7 @@ paths:
content:
application/json:
schema:
$ref: ../NFVManoFaultManagement/definitions/SOL009NFVManoFaultManagement_def.yaml#/definitions/AlarmNotification
$ref: "#/components/schemas/AlarmNotification"
description: >
Information of a NFV-MANO functional entity alarm.
required: true
......@@ -147,7 +147,7 @@ paths:
content:
application/json:
schema:
$ref: ../NFVManoFaultManagement/definitions/SOL009NFVManoFaultManagement_def.yaml#/definitions/AlarmClearedNotification
$ref: "#/components/schemas/AlarmClearedNotification"
description: |
Information of the clearance of an NFV-MANO functional entity alarm.
required: true
......@@ -253,7 +253,7 @@ paths:
content:
application/json:
schema:
$ref: ../NFVManoFaultManagement/definitions/SOL009NFVManoFaultManagement_def.yaml#/definitions/AlarmListRebuiltNotification
$ref: "#/components/schemas/AlarmListRebuiltNotification"
description: >
Information that the alarm list has been rebuilt by the NFV-MANO
functional entity.
......@@ -343,3 +343,172 @@ paths:
"503":
$ref: ../components/SOL009_resp.yaml#/components/responses/503
components:
schemas:
AlarmNotification:
description: >
This type represents an alarm notification about NFV-MANO functional entity faults.
It shall comply with the provisions defined in table 7.6.2.5-1.
This notification shall be triggered by the NFV-MANO functional entity when:
- An alarm has been created.
- An alarm has been updated, e.g. if the severity of the alarm has changed.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- alarm
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"AlarmNotification" for this notification type.
type: string
enum:
- AlarmNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
alarm:
description: >
Information about an alarm including AlarmId, affected VNF
identifier, and FaultDetails.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Alarm"
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
AlarmClearedNotification:
description: >
This type represents an alarm cleared notification about VNF faults.
The notification shall be triggered by the VNFM when an alarm has been
cleared.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- alarmId
- alarmClearedTime
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"AlarmClearedNotification" for this notification type.
type: string
enum:
- AlarmClearedNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
alarmId:
description: >
Alarm identifier.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
alarmClearedTime:
description: >
The time stamp indicating when the alarm was cleared.
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
- alarm
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
alarm:
description: >
Link to the resource that represents the related alarm.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
AlarmListRebuiltNotification:
description: >
This type represents a notification that the alarm list has been
rebuilt, e.g. if the VNFM detects its storage holding the alarm
list is corrupted.
The notification shall be triggered by the VNFM when the alarm list has
been rebuilt.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"AlarmListRebuiltNotification" for this notification type.
type: string
enum:
- AlarmListRebuiltNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
- alarms
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
alarms:
description: >
Link to the alarm list, i.e. the "Alarms" resource.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
<
......@@ -447,3 +447,111 @@ components:
format: URI
#TODO: How to express "any additional attributes"?
Alarm:
description: >
The alarm data type encapsulates information about an alarm.
type: object
required:
- id
- managedObjectId
- alarmRaisedTime
- ackState
- perceivedSeverity
- eventTime
- eventType
- probableCause
- isRootCause
- _links
properties:
id:
description: >
Identifier of this Alarm information element.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
managedObjectId:
description: >
Identifier of the affected NFV-MANO instance.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
associatedFaultyInstanceId:
description: >
The resources that are causing the fault.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference"
alarmRaisedTime:
description: >
Time stamp indicating when the alarm is raised by the managed
object.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
alarmChangedTime:
description: >
Time stamp indicating when the alarm was last changed. It shall be
present if the alarm has been updated.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
alarmClearedTime:
description: >
Time stamp indicating when the alarm was cleared. It shall be
present if the alarm has been cleared.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
ackState:
description: >
Acknowledgement state of the alarm.
Permitted values:
* UNACKNOWLEDGED
* ACKNOWLEDGED.
type: string
enum:
- UNACKNOWLEDGED
- ACKNOWLEDGED
perceivedSeverity:
description: >
Perceived severity of the managed object failure.
$ref: "#/components/schemas/PerceivedSeverityType"
eventTime:
description: >
Time stamp indicating when the fault was observed.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
eventType:
description: >
Type of event.
$ref: "#/components/schemas/EventType"
faultType:
description: >
Additional information to clarify the type of the fault.
type: string
probableCause: