Commits (13)
# NFV SOL009 - OpenAPIs for the management of NFV-MANO
This repository contains OpenAPIs for ETSI GS NFV-SOL 009 v3.5.1, RESTful protocols
This repository contains OpenAPIs for ETSI GS NFV-SOL 009 v3.6.1, RESTful protocols
specification for the management of NFV-MANO functional entities.
**IMPORTANT: In case of discrepancies the published ETSI Group Specification takes precedence.**
......
......@@ -19,7 +19,7 @@ info:
version: 1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 009 V3.5.1
description: ETSI GS NFV-SOL 009 V3.6.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
paths:
......
......@@ -16,11 +16,11 @@ info:
license:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
description: ETSI GS NFV-SOL 009 V3.6.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.06.01_60/gs_NFV-SOL009v030601p.pdf
servers:
- url: http://127.0.0.1/callback/v2
......@@ -153,158 +153,6 @@ components:
application/json:
schema:
oneOf:
- $ref: "#/components/schemas/InformationChangedNotification"
- $ref: "#/components/schemas/ChangeStateNotification"
required: true
schemas:
InformationChangedNotification:
description: >
This type represents a notification that is sent when data about
configuration and information of the NFV-MANO functional entity
have been changed.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- informationChangedTime
- manoEntityId
- changedInfo
- _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
"InformationChangedNotification" for this notification type.
type: string
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
timeStamp:
description: >
Date and time of the generation of the notification.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
informationChangedTime:
description: >
Timestamp indicating when the information was changed.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
manoEntityId:
description: >
Identifier of the MANO entity of which the information was changed.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
changedInfo:
description: >
Data about the changed configuration and information of the NFV-MANO
functional entity.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
_links:
description: >
Links to resources related to this notification.
type: object
properties:
self:
description: >
Link to the related subscription.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
subscription:
description: >
Link to the related subscription.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
required:
- self
ChangeStateNotification:
description: >
This type represents a Change state operation occurrence.
type: object
required:
- id
- notificationType
- subscriptionId
- timestamp
- changeStateOpOccId
- stateChangedTime
- changeStateOperationState
- managedObjectRef
- _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
"ChangeStateNotification" for this notification type.
type: string
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"
changeStateOpOccId:
description: >
Identifier of the change state operation occurrence associated to the
notification.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
stateChangedTime:
description: >
Timestamp indicating when the state on the managed object was changed.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
changeStateOperationState:
description: >
The state of the "change state operation occurrence".
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ChangeStateOpOccStateEnumType"
managedObjectRef:
description: >
Reference of the managed object to which the state change notification relates.
The value of the "type" attribute shall be "MANO_ENTITY" or "MANO_SERVICE_IF".
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference"
operationalState:
description: >
New operational state of the managed object. Shall only be present when
there is a change in the operational state.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType"
administrativeState:
description: >
New administrative state of the managed object. Shall only be present
when there is a change in the administrative state.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType"
_links:
description: >
Links to resources related to this notification.
type: object
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
objectInstance:
description: >
Link to the resource representing the object to which the change
state applies. Shall be present if the object instance is accessible
as a resource.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
changeStateOpOcc:
description: >
Link to the change state operation occurrence that this notification
is related to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
required:
- subscription
- objectInstance
- changeStateOpOcc
\ No newline at end of file
- $ref: "./components/NFVManoConfigurationAndInformationManagementNotification_def.yaml#/components/schemas/InformationChangedNotification"
- $ref: "./components/NFVManoConfigurationAndInformationManagementNotification_def.yaml#/components/schemas/ChangeStateNotification"
required: true
\ No newline at end of file
components:
schemas:
InformationChangedNotification:
description: >
This type represents a notification that is sent when data about
configuration and information of the NFV-MANO functional entity
have been changed.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- informationChangedTime
- manoEntityId
- changedInfo
- _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
"InformationChangedNotification" for this notification type.
type: string
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier"
timeStamp:
description: >
Date and time of the generation of the notification.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime"
informationChangedTime:
description: >
Timestamp indicating when the information was changed.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime"
manoEntityId:
description: >
Identifier of the MANO entity of which the information was changed.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier"
changedInfo:
description: >
Data about the changed configuration and information of the NFV-MANO
functional entity.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
_links:
description: >
Links to resources related to this notification.
type: object
properties:
self:
description: >
Link to the related subscription.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
subscription:
description: >
Link to the related subscription.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
required:
- self
ChangeStateNotification:
description: >
This type represents a Change state operation occurrence.
type: object
required:
- id
- notificationType
- subscriptionId
- timestamp
- changeStateOpOccId
- stateChangedTime
- changeStateOperationState
- managedObjectRef
- _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
"ChangeStateNotification" for this notification type.
type: string
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"
changeStateOpOccId:
description: >
Identifier of the change state operation occurrence associated to the
notification.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/Identifier"
stateChangedTime:
description: >
Timestamp indicating when the state on the managed object was changed.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/DateTime"
changeStateOperationState:
description: >
The state of the "change state operation occurrence".
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/ChangeStateOpOccStateEnumType"
managedObjectRef:
description: >
Reference of the managed object to which the state change notification relates.
The value of the "type" attribute shall be "MANO_ENTITY" or "MANO_SERVICE_IF".
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/ManoManagedObjectReference"
operationalState:
description: >
New operational state of the managed object. Shall only be present when
there is a change in the operational state.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/OperationalStateEnumType"
administrativeState:
description: >
New administrative state of the managed object. Shall only be present
when there is a change in the administrative state.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/AdministrativeStateEnumType"
_links:
description: >
Links to resources related to this notification.
type: object
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
objectInstance:
description: >
Link to the resource representing the object to which the change
state applies. Shall be present if the object instance is accessible
as a resource.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
changeStateOpOcc:
description: >
Link to the change state operation occurrence that this notification
is related to.
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
required:
- subscription
- objectInstance
- changeStateOpOcc
......@@ -19,8 +19,8 @@ info:
version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
description: ETSI GS NFV-SOL 009 V3.6.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.06.01_60/gs_NFV-SOL009v030601p.pdf
servers:
- url: http://127.0.0.1/nfvmanofm/v1
......@@ -38,7 +38,7 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
- $ref: "../components/SOL009_params.yaml#/components/parameters/filter"
- $ref: "#/components/parameters/filter.Alarms"
- $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
responses:
"200":
......@@ -178,7 +178,7 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
- $ref: "../components/SOL009_params.yaml#/components/parameters/filter"
- $ref: "#/components/parameters/filter.FmSubscriptions"
- $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
responses:
"200":
......@@ -269,6 +269,35 @@ paths:
components:
parameters:
filter.Alarms:
name: filter
description: >
Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013.
The NFV-MANO functional entity shall support receiving this parameter as part of the URI query string.
The API consumer may supply this parameter.
The following attribute names shall be supported by the NFV-MANO functional entity in the attribute-based
filtering expression: id, managedObjectId, eventType, perceivedSeverity, probableCause.
in: query
required: false
schema:
type: string
filter.FmSubscriptions:
name: filter
description: >
Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013.
The NFV-MANO functional entity shall support receiving this parameter as part of the URI query string.
The API consumer may supply this parameter.
All attribute names that appear in the FmSubscription and in data types referenced from it shall be supported
by the NFV-MANO functional entity in the filter expression.
in: query
required: false
schema:
type: string
alarmId:
name: alarmId
description: >
......@@ -293,134 +322,7 @@ components:
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
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).
* NOTE: The permitted values of the "notificationTypes" attribute are spelled exactly as the names
of the notification types to facilitate automated code generation systems.
type: object
properties:
notificationTypes:
description: >
Match particular notification types.
Permitted values:
* AlarmNotification
* AlarmClearedNotification
* AlarmListRebuiltNotification
See note.
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/SOL009_schemas.yaml#/components/schemas/PerceivedSeverityType"
eventTypes:
description: >
Match VNF alarms with an event type listed in this attribute.
type: array
items:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/EventType"
probableCauses:
description: >
Match VNF alarms with a probable cause listed in this attribute.
type: array
items:
type: string
requestBodies:
AlarmModifications:
description: >
......@@ -430,7 +332,7 @@ components:
content:
application/json:
schema:
$ref: "#/components/schemas/AlarmModifications"
$ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/AlarmModifications"
required: true
FmSubscriptionRequest:
......@@ -440,7 +342,7 @@ components:
content:
application/json:
schema:
$ref: "#/components/schemas/FmSubscriptionRequest"
$ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/FmSubscriptionRequest"
required: true
responses:
......@@ -533,7 +435,7 @@ components:
content:
application/json:
schema:
$ref: "#/components/schemas/AlarmModifications"
$ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/AlarmModifications"
Subscriptions.Post.201:
description: >
......@@ -571,7 +473,7 @@ components:
content:
application/json:
schema:
$ref: "#/components/schemas/FmSubscription"
$ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/FmSubscription"
Subscriptions.Post.303:
description: >
303 SEE OTHER
......@@ -693,7 +595,7 @@ components:
schema:
type: array
items:
$ref: "#/components/schemas/FmSubscription"
$ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/FmSubscription"
Subscription.Get.200:
description: >
......@@ -729,7 +631,7 @@ components:
content:
application/json:
schema:
$ref: "#/components/schemas/FmSubscription"
$ref: "./components/NFVManoFaultManagement_def.yaml#/components/schemas/FmSubscription"
Subscription.Delete.204:
description: >
......
components:
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
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).
* NOTE: The permitted values of the "notificationTypes" attribute are spelled exactly as the names
of the notification types to facilitate automated code generation systems.
type: object
properties:
notificationTypes:
description: >
Match particular notification types.
Permitted values:
* AlarmNotification
* AlarmClearedNotification
* AlarmListRebuiltNotification
See note.
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/SOL009_schemas.yaml#/components/schemas/PerceivedSeverityType"
eventTypes:
description: >
Match VNF alarms with an event type listed in this attribute.
type: array
items:
$ref: "../../components/SOL009_schemas.yaml#/components/schemas/EventType"
probableCauses:
description: >
Match VNF alarms with a probable cause listed in this attribute.
type: array
items:
type: string