Commit 7a3abb12 authored by Michele Carignani's avatar Michele Carignani
Browse files

Merge branch '3.3.1-dev' into 'master'

SOL005 OpenAPI representations for v3.3.1

Closes #2

See merge request !15
parents 738b8c84 9fdc14f2
Pipeline #5257 passed with stage
in 0 seconds
# NFV SOL005 APIs
This repository hosts the [OpenAPI](https://www.openapis.org/) specificatons and other documentation
for the APIs defined in ETSI NFV GSs [SOL005](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf).
for the APIs defined in ETSI NFV GSs SOL005 v3.3.1.
The APIs described in this repository are defined for the `Os-Ma-nfvo` reference point.
......
# Copyright ETSI 2017
# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt
FROM alpine:3.6
FROM alpine:3.10.0
RUN env
RUN apk update
......@@ -16,9 +16,9 @@ RUN gem install rdoc --pre || gem install rdoc --pre
RUN gem install asciidoctor-pdf-cjk
RUN wget https://forge.etsi.org/swagger2markup-cli-1.3.2.jar
RUN npm config set proxy $http_proxy
RUN npm install -g swagger-tools@0.10.3
RUN npm install -g json-refs@3.0.2
RUN npm install -g yamljs@0.3.0
RUN npm install -g swagger-cli
RUN npm install -g json-refs
RUN npm install -g yamljs
ADD validate-in-docker.sh /validate-in-docker.sh
RUN chmod +x /validate-in-docker.sh
......
......@@ -32,7 +32,7 @@ function validate_api () {
mv "${deliverable}-${api}-API.pdf" "../build/"
echo "--- Validating ${merged_file}"
swagger-tools validate "${merged_file}"
swagger-cli validate "${merged_file}"
vres=$?
echo "--- Validation done ($vres)."
......
swagger: "2.0"
openapi: 3.0.2
info:
version: "1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
title: "SOL005 - API version interface"
description: >
SOL005 - API version Interface
IMPORTANT: Please note that this file might be not aligned to the current
version of the ETSI Group Specification it refers to and has not been
approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
title: SOL005 - API version interface
description: |
SOL005 - API version Interface IMPORTANT: Please note that this file might be not aligned to the current version of
the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the
published ETSI Group Specification takes precedence.
Please report bugs to Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues
contact:
name: NFV-SOL WG
license:
name: "ETSI Forge copyright notice"
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: "NFV-SOL WG"
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 005 V2.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf
schemes:
- http
- https
consumes:
- application/json
description: ETSI GS NFV-SOL 005 V3.3.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf
produces:
- application/json
servers:
- url: http://127.0.0.1/
- url: https://127.0.0.1/
paths:
###############################################################################
# API Versions #
###############################################################################
'/nsd/api_versions':
$ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
/nsd/api_versions:
$ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions
'/nsfm/api_versions':
$ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
/nsfm/api_versions:
$ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions
'/nslcm/api_versions':
$ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
/nslcm/api_versions:
$ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions
'/nspm/api_versions':
$ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
/nspm/api_versions:
$ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions
'/vnfpkgm/api_versions':
$ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
\ No newline at end of file
/vnfpkgm/api_versions:
$ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions
\ No newline at end of file
This diff is collapsed.
......@@ -10,6 +10,11 @@ definitions:
NsdInfo that can be modified are included in the NsdInfoModifications
data type.NOTE: At least one of the attributes - nsdOperationalState and
userDefinedData - shall be present.
oneOf:
- required:
- nsdOperationalState
- required:
- userDefinedData
properties:
nsdOperationalState:
$ref: "#/definitions/NsdOperationalStateType"
......@@ -17,7 +22,7 @@ definitions:
description: >
Modifications of the userDefinedData attribute in NsdInfo
data type. See note. If present, these modifications shall be applied
according to the rules of JSON Merge PATCH (see IETF RFC 7396 [25]).
according to the rules of JSON Merge Patch (see IETF RFC 7396).
NOTE- At least one of the attributes - nsdOperationalState and userDefinedData - shall be present.
type: array
items:
......@@ -25,6 +30,11 @@ definitions:
NsdInfo:
type: object
anyOf:
- required:
- vnfPkgIds
- required:
- nestedNsdInfoIds
required:
- id
- nsdOnboardingState
......@@ -263,7 +273,7 @@ definitions:
userDefinedData:
description: >
User defined data for the individual PNF descriptor resource.
This attribute can be modified with the PATCH method.
This attribute can be modified with the Patch method.
$ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
_links:
required:
......@@ -359,6 +369,17 @@ definitions:
NOTE 2: The attributes "pnfdId" and "pnfdInfoId" are alternatives to reference to a particular PNFD in a filter.
They should not be used both in the same filter instance, but one alternative should be chosen.
anyOf:
- oneOf:
- required:
- nsdId
- required:
- nsdInfoId
- oneOf:
- required:
- pnfdId
- required:
- pnfdInfoIds
properties:
notificationTypes:
description: >
......@@ -515,7 +536,8 @@ definitions:
$ref: "../../definitions/SOL005_def.yaml#/definitions/String"
checksum:
description: >
Checksum of the artifact file.
Checksum of the artifact file. Permitted hash algorithms are
defined in ETSI GS NFV-SOL 007.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum"
metadata:
description: >
......@@ -539,7 +561,8 @@ definitions:
$ref: "../../definitions/SOL005_def.yaml#/definitions/String"
checksum:
description: >
Checksum of the artifact file.
Checksum of the artifact file. Permitted hash algorithms are
defined in ETSI GS NFV-SOL 004.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum"
nonManoArtifactSetId:
description: >
......
......@@ -75,10 +75,22 @@ definitions:
NS is modified as a result of an operation on its
composite NS. Set to false otherwise.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean"
verbosity:
description: >
This attribute signals the verbosity of the notification.
If it is not present, it shall default to the value "FULL".
If the value is "SHORT", full change details can be obtained by performing a GET request on the
"Individual LCM operation occurrence" resource that is signalled by the "nsLcmOpOcc" child attribute
of the "_links" attribute.
$ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LcmOpOccNotificationVerbosityType"
affectedVnf:
description: >
Information about the VNF instances that were affected
during the lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL"
and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains
information about the cumulative changes to virtualised resources that were performed so far by the NS LCM
operation occurrence and by any of the error handling procedures for that operation occurrence.
type: array
items:
$ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnf"
......@@ -86,6 +98,10 @@ definitions:
description: >
Information about the PNF instances that were affected
during the lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL"
and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains
information about the cumulative changes to virtualised resources that were performed so far by the NS LCM
operation occurrence and by any of the error handling procedures for that operation occurrence.
type: array
items:
$ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedPnf"
......@@ -93,6 +109,10 @@ definitions:
description: >
Information about the VL instances that were affected
during the lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL"
and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains
information about the cumulative changes to virtualised resources that were performed so far by the NS LCM
operation occurrence and by any of the error handling procedures for that operation occurrence.
type: array
items:
$ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink"
......@@ -100,21 +120,31 @@ definitions:
description: >
Information about the VNFFG instances that were
affected during the lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL"
and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains
information about the cumulative changes to virtualised resources that were performed so far by the NS LCM
operation occurrence and by any of the error handling procedures for that operation occurrence.
type: array
items:
$ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnffg"
affectedNs:
description: >
Information about the SAP instances that were affected
during the lifecycle operation. See note.
during the lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL"
and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains
information about the cumulative changes to virtualised resources that were performed so far by the NS LCM
operation occurrence and by any of the error handling procedures for that operation occurrence.
type: array
items:
$ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedNs"
affectedSap:
description: >
Information about the SAP instances that were affected during the lifecycle operation.
Shall be present if the "notificationStatus" is set to "RESULT" and the operation
has performed any resource modification. Shall be absent otherwise.
Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL"
and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains
information about the cumulative changes to virtualised resources that were performed so far by the NS LCM
operation occurrence and by any of the error handling procedures for that operation occurrence.
type: array
items:
$ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedSap"
......@@ -163,7 +193,9 @@ definitions:
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
nsInstanceId:
description: >
The created NS instance identifier
The created NS instance identifier.
Shall be set to the same "id" attribute value of the associated "NsInstance" representation of the
"Individual NS instance" resource.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
_links:
description: >
......@@ -203,7 +235,9 @@ definitions:
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
nsInstanceId:
description: >
The created NS instance identifier
The deleted NS instance identifier.
Shall be set to the same "id" attribute value of the associated "NsInstance" representation of the
"Individual NS instance" resource.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
_links:
description: >
......@@ -272,7 +306,7 @@ definitions:
associated to the notification and
impacts the NS component directly or
indirectly.
$ref: "#/definitions/LcmOpNameForChangeNotificationType"
$ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LcmOpNameForChangeNotificationType"
lcmOpOccStatusImpactingNsComponent:
description: >
Indicates this status of the lifecycle
......@@ -280,7 +314,7 @@ definitions:
associated to the notification and
impacts the NS component directly or
indirectly.
$ref: "#/definitions/LcmOpOccStatusForChangeNotificationType"
$ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LcmOpOccStatusForChangeNotificationType"
notificationType:
description: >
Discriminator for the different
......
......@@ -420,6 +420,11 @@ definitions:
This type represents modifications to a PM job.
It shall comply with the provisions defined in Table 7.5.2.12-1.
type: object
anyOf:
- required:
- callbackUri
- required:
- authentication
properties:
callbackUri:
description: >
......@@ -430,7 +435,7 @@ definitions:
description: >
New value of the "authentication" attribute, or "null" to remove the attribute.
If present in a request body, these modifications shall be applied according to
the rules of JSON Merge PATCH (see IETF RFC 7396).
the rules of JSON Merge Patch (see IETF RFC 7396).
This attribute shall not be present in response bodies.
At least one of the attributes defined in this type shall be present in request bodies.
$ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication"
......@@ -440,6 +445,11 @@ definitions:
This type represents modifications to a threshold.
It shall comply with the provisions defined in Table 7.5.2.11-1.
type: object
anyOf:
- required:
- callbackUri
- required:
- authentication
properties:
callbackUri:
description: >
......@@ -450,7 +460,7 @@ definitions:
description: >
New value of the "authentication" attribute, or "null" to remove the attribute.
If present in a request body, these modifications shall be applied according to
the rules of JSON Merge PATCH (see IETF RFC 7396).
the rules of JSON Merge Patch (see IETF RFC 7396).
This attribute shall not be present in response bodies.
At least one of the attributes defined in this type shall be present in request bodies.
$ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication"
......@@ -510,7 +520,7 @@ definitions:
description: >
Group of performance metrics.
A metric group is a pre-defined list of metrics,
known to the producer that it can decompose to
known to the API producer that it can decompose to
individual metrics. Valid values are specified as
"Measurement Group" values in clause 7.3 of ETSI
GS NFV-IFA 027. At least one of the two attributes
......@@ -520,29 +530,35 @@ definitions:
$ref: "../../definitions/SOL005_def.yaml#/definitions/String"
collectionPeriod:
description: >
Specifies the periodicity at which the producer
Specifies the periodicity at which the API producer
will collect performance information. The unit
shall be seconds.
At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance
data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be
equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods
At the end of each reportingPeriod, the API producer will inform
the API consumer about availability of the performance data collected
for each completed collection period during this reportingPeriod.
The reportingPeriod should be equal to or a multiple of the collectionPeriod.
In the latter case, the performance data for the collection periods
within one reporting period are reported together.
In particular when choosing short collection and reporting periods, the number of PM jobs that can be
supported depends on the capability of the producing entity.
In particular when choosing short collection and reporting periods,
the number of PM jobs that can be supported depends on the capability
of the producing entity.
type: integer
minimum: 0
default: 0
reportingPeriod:
description: >
Specifies the periodicity at which the producer
will report to the consumer.
Specifies the periodicity at which the API producer
will report to the API consumer.
about performance information. The unit shall be seconds.
At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance
data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be
equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods
At the end of each reportingPeriod, the API producer will inform the
API consumer about availability of the performance data collected for
each completed collection period during this reportingPeriod.
The reportingPeriod should be equal to or a multiple of the collectionPeriod.
In the latter case, the performance data for the collection periods
within one reporting period are reported together.
In particular when choosing short collection and reporting periods, the number of PM jobs that can be
supported depends on the capability of the producing entity.
In particular when choosing short collection and reporting periods,
the number of PM jobs that can be supported depends on the capability
of the producing entity.
type: integer
minimum: 0
default: 0
......
......@@ -14,6 +14,7 @@ definitions:
- id
- notificationType
- timeStamp
- pmJobId
- objectType
- objectInstanceId
- _links
......@@ -36,6 +37,10 @@ definitions:
description: >
Date and time of the generation of the notification.
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
pmJobId:
description: >
Identifier of the PM job for which performance information is available.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
objectType:
description: >
Type of the measured object.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment