Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • nfv/SOL002-SOL003
  • reinaortega/SOL002-SOL003
2 results
Show changes
Commits on Source (556)
Showing
with 3531 additions and 694 deletions
build/
*.pyc
.idea/
[gerrit]
host=forge.etsi.org
port=29418
project=NFV-SOL002-SOL003
defaultbranch=master
defaultremote=origin
......@@ -14,9 +14,7 @@ cd docker
./build-container.sh
./run-container.sh "${run_dir}" "$1"
OUTCOME=$?
cd ..
exit $OUTCOME
python ./scripts/add_change_comment.py
exit $?
ETSI FORGE COPYRIGHT STATEMENT
Copyright (c) ETSI 2017.
This software is subject to copyrights owned by ETSI. Non-exclusive permission
is hereby granted, free of charge, to copy, reproduce and amend this file
under the following conditions: It is provided "as is", without warranty of any
kind, expressed or implied.
ETSI shall never be liable for any claim, damages, or other liability arising
from its use or inability of use.This permission does not apply to any documentation
associated with this file for which ETSI keeps all rights reserved. The present
copyright notice shall be included in all copies of whole or part of this
software and shall not imply any sub-license right.
Copyright 2019 ETSI
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
# NFV SOL002 and SOL003 APIs
This repository hosts the [OpenAPI](https://www.openapis.org/) specificatons and other documentation
for the APIs defined in ETSI NFV GSs [SOL002](http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.03.01_60/gs_NFV-SOL002v020301p.pdf) and [SOL003](http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.03.01_60/gs_NFV-SOL003v020301p.pdf).
for the APIs defined in ETSI NFV GSs SOL002 and SOL003 v3.7.1.
The APIs described in this repository are defined for the following reference points:
* `Or-Vnfm`
* `Ve-vnfm`
**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.**
**IMPORTANT: In case of discrepancies the published ETSI Group Specification takes precedence.**
More information at [NFV Solutions wiki](https://nfvwiki.etsi.org/index.php?title=NFV_Solutions).
......@@ -35,22 +35,23 @@ and the results will be stored in a `build/` directory in the project folder.
## How to raise issues
Change requests can be filed at [ETSI Forge Bugzilla](forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=62&product=NFV). Please report errors, bugs or other issues [here](https://forge.etsi.org/bugzilla/enter_bug.cgi?product=NFV).
Please report errors, bugs or other issues [here](https://forge.etsi.org/rep/nfv/SOL002-SOL003/-/issues).
## How to contribute
ETSI Forge uses Gerrit to manage submissions to the repository, any submission is tracked with a Change. Currently open and closed Changes can be reviewed [here](https://forge.etsi.org/gerrit/#/q/project:NFV-SOL002-SOL003).
ETSI Forge uses Gitlab to manage submissions to the repository.
More information is available [here](https://nfvwiki.etsi.org/index.php?title=SOL_OpenAPI_Main_Page#How_to_Contribute).
### Latest builds
See the recent builds from:
* [Master](https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol002-sol003-master/)
* [Gerrit changes](https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol002-sol003/).
* [Master branch](https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol002-sol003-master/)
* [Other branches](https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol002-sol003/).
## License
Copyright (c) ETSI 2017.
Copyright (c) ETSI 2020.
This software is subject to copyrights owned by ETSI. Non-exclusive permission
is hereby granted, free of charge, to copy, reproduce and amend this file
......
# 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
......@@ -12,13 +12,13 @@ RUN apk add asciidoctor
RUN apk add openjdk8
RUN apk add ca-certificates wget && update-ca-certificates
RUN apk add openssl
RUN gem install rdoc --pre || gem install rdoc --pre
RUN gem install rdoc -v 6.3.3 || gem install rdoc -v 6.3.3
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
......
......@@ -23,7 +23,7 @@ function validate_api () {
echo "--- Merging file."
merged_file="../build/${deliverable}-${api}-API.yaml"
json_file="../build/${deliverable}-${api}-API.json"
json-refs resolve "${file}" > "${merged_file}"
json-refs --filter relative resolve "${file}" > "${merged_file}"
yaml2json "${merged_file}" > "${json_file}"
# Create the PDF version
......@@ -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)."
......
"""
Add comments on gerrit
"""
import os
import sys
import jnk_grt_comment as jgc
import glob
CHANGE = os.environ.get('GERRIT_CHANGE_NUMBER') or None
PATCH = os.environ.get('GERRIT_PATCHSET_NUMBER') or None
URL = os.environ.get('BUILD_URL') or None
# print glob.glob("**/*-API.yaml")
if not (CHANGE and PATCH and URL):
print "No Gerrit change information found. Exiting"
sys.exit()
print "START Comment on Gerrit change ---"
jgc.comment_openapis_artifacts(CHANGE, PATCH, URL)
print "DONE Comment on Gerrit change ---\n"
#!/env/python2.7
"""
Comments on gerrit
"""
import os.path
import subprocess
import glob
def mk_swg_ui_link(artifact, build_uri):
"""
creates the link to the swagger ui
"""
swg_ui = "https://forge.etsi.org/swagger/ui"
return swg_ui + "/?url=" + build_uri + "/artifact/"+ artifact +"/*view*/"
def mk_swg_ui_comment(files, bu):
"""
creates the link to the swagger ui
"""
msg = "Review links for the built OpenAPIS:"
for artifact in glob.glob(files):
msg += "\n * " + os.path.basename(artifact) + ": " + mk_swg_ui_link(artifact, bu)
return msg
def mk_grt_comment_cmd(change, payload):
"""
creates the link to the swagger ui
"""
command = "ssh -p 29418 forge.etsi.org \"gerrit review --message '"+payload+"' "+change + "\""
print command
return command
def send_gerrit_comment(change, patchset):
"""
creates the link to the swagger ui
"""
cmd = mk_grt_comment_cmd(change, patchset)
print "Executing: " + cmd
subprocess.call(cmd, shell=True)
def jenkins_gerrit_comment(change_num, patch_num, comment):
send_gerrit_comment(change_num+","+patch_num, comment)
def comment_openapis_artifacts(cn, pn, bu):
comment = mk_swg_ui_comment("**/*-API.yaml", bu)
# print "comment: "+comment
jenkins_gerrit_comment(str(cn), str(pn), comment)
\ No newline at end of file
openapi: 3.0.2
info:
title: SOL002 - API version interface
description: |
SOL002 - 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. In case of
discrepancies the published ETSI Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues
contact:
name: NFV-SOL WG
license:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 002 V3.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.07.01_60/gs_NFV-SOL002v030701p.pdf
paths:
/vnfconfig/api_versions:
$ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions
/vnffm/api_versions:
$ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions
/vnfind/api_versions:
$ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions
/vnflcm/api_versions:
$ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions
/vnfpm/api_versions:
$ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions
/lcmcoord/api_versions:
$ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions
\ No newline at end of file
swagger: "2.0"
openapi: 3.0.2
info:
title: SOL002 - VNF Configuration interface
description: |
SOL002 - VNF Configuration Interface
info:
version: "2.3.1"
title: "DRAFT VNF Configuration interface"
description: >
DRAFT VNF Configuration interface of ETSI NFV SOL002
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&list_id=61&product=NFV&resolution=---
termsOfService: "http://etsi.org"
contact:
name: "NFV-SOL WG"
version of the ETSI Group Specification it refers to. In case of
discrepancies the published ETSI Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/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
version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 002 V3.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.07.01_60/gs_NFV-SOL002v030701p.pdf
basePath: /vnfconfig/v1
servers:
- url: http://127.0.0.1/vnfconfig/v1
- url: https://127.0.0.1/vnfconfig/v1
schemes:
- http
- https
consumes:
- application/json
paths:
/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
produces:
- application/json
/configuration:
parameters:
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
get:
description: |
The API consumer can use this method to read configuration information about a VNF instance and/or its VNFC instances.
See clause 9.4.2.3.2.
responses:
"200":
$ref: '#/components/responses/Configuration.Get.200'
"400":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
"401":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
"403":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
"404":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404
"405":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
"406":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
"422":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422
"429":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
"500":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
"503":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
"504":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
patch:
description: |
This method sets or modifies a configuration resource. See clause 9.4.2.3.4.
parameters:
- $ref: ../../components/SOL002_params.yaml#/components/parameters/If-Unmodified-Since
- $ref: ../../components/SOL002_params.yaml#/components/parameters/If-Match
requestBody:
$ref: '#/components/requestBodies/ConfigurationRequest'
responses:
"200":
$ref: '#/components/responses/Configuration.Patch.200'
"400":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
"401":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
"403":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
"404":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404
"405":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
"406":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
"412":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/412
"416":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416
"422":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422
"429":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
"500":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
"503":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
"504":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
paths:
components:
requestBodies:
ConfigurationRequest:
description: |
The parameter for the configuration modification, as defined in clause 9.5.2.2.
content:
application/json:
schema:
$ref: ./definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfigModifications
required: true
/configuration:
get:
summary: Read VNF/VNFC configuration from VNF.
description: >
The client can use this method to read configuration information about a VNF instance and/or its VNFC instances.
responses:
200:
description: >
Configuration information about a VNF instance was read successfully.
The response body shall contain a representation of the configuration resource.
schema:
$ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfiguration'
400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
409: { $ref: 'responses/VNFConfiguration_resp.yaml#/responses/409' }
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
patch:
summary: Modify VNF/VNFC configuration.
description: This method sets or modifies a configuration resource.
parameters:
- name: configModifications
description: The parameter for the configuration modification.
required: true
in: body
schema:
$ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
responses:
200:
description: >
The request was accepted and completed. The response body shall contain the parameters
of the configuration modification that was applied to the configuration resource.
schema:
$ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
412: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/412' }
400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
409: { $ref: 'responses/VNFConfiguration_resp.yaml#/responses/409' }
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
responses:
Configuration.Get.200:
description: |
200 OK
Shall be returned when configuration information about a VNF instance has been read successfully. The response
body shall contain a representation of the configuration resource.
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
ETag:
description: >
Used to provide the current entity-tag for the selected resource representation. It can be sent in
"200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
Last-Modified:
description: >
Used to provide a timestamp indicating the date and time at which the server believes the selected resource
representation was last modified. It can be sent in "200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
format: date-time
content:
application/json:
schema:
$ref: ./definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfiguration
Configuration.Patch.200:
description: |
200 OK
Shall be returned when the request has been accepted and completed. The response body shall contain the
parameters of the configuration modification that was applied to the configuration resource.
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
ETag:
description: >
Used to provide the current entity-tag for the selected resource representation. It can be sent in
"200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
Last-Modified:
description: >
Used to provide a timestamp indicating the date and time at which the server believes the selected resource
representation was last modified. It can be sent in "200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
format: date-time
content:
application/json:
schema:
$ref: ./definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfigModifications
\ No newline at end of file
definitions:
VnfConfiguration:
description: >
This type represents configuration parameters of a VNF instance and its VNFC instances.
type: object
required:
- vnfConfigurationData
properties:
vnfConfigurationData:
description: >
Configuration parameters of the VNF instance.
$ref: '#/definitions/VnfConfigurationData'
vnfcConfigurationData:
description: >
Configuration parameters of the VNFC instances.
type: array
items:
$ref: '#/definitions/VnfcConfigurationData'
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
VnfConfigModifications:
description: >
This type represents request parameters for the "Set Configuration" operation.
......@@ -27,64 +10,93 @@ definitions:
* NOTE 2: The VnfcConfiguration data type can only be used to modify the configuration
of existing VNFC instances.
type: object
anyOf:
- required:
- vnfConfigurationData
- required:
- vnfcConfigurationData
properties:
vnfConfigurationData:
description: >
Modifications to configuration data for the VNF instance. See NOTE 1.
If present, the modifications of the "vnfConfigurationData" attribute shall
be applied according to the rules of JSON Merge PATCH (see IETF RFC 7396).
$ref: '#/definitions/VnfConfigurationData'
$ref: '#/definitions/VnfConfigurationData'
vnfcConfigurationData:
description: >
Modifications to configuration data for certain VNFC instances. See NOTE 1 and NOTE 2.
If present, the modifications of the "vnfcConfigurationData" attribute shall follow these
If present, the modifications of the "vnfcConfigurationData" attribute shall follow these
provisions:
Modifying an attribute that is an array of objects of type "VnfcConfigurationData".
Assumptions:
1) "oldList" is the "VnfcConfigurationData" array to be modified and "newList"
is the "VnfcConfigurationData" array that contains the changes.
2) "oldEntry" is an entry in "oldList" and "newEntry" is an entry in "newList".
3) A "newEntry" has a "corresponding entry" if there exists an "oldEntry" that
has the same content of the "vnfcInstanceId" attribute as the "newEntry";
a "newEntry" has no corresponding entry if no such "oldEntry" exists.
4) In any array of "VnfcConfigurationData" structures, the content of "vnfcInstanceId"
is unique (i.e. there shall be no two entries with the same content of "vnfcInstanceId").
1) "oldList" is the "VnfcConfigurationData" array to be modified and "newList"
is the "VnfcConfigurationData" array that contains the changes.
2) "oldEntry" is an entry in "oldList" and "newEntry" is an entry in "newList".
3) A "newEntry" has a "corresponding entry" if there exists an "oldEntry" that
has the same content of the "vnfcInstanceId" attribute as the "newEntry";
a "newEntry" has no corresponding entry if no such "oldEntry" exists.
4) In any array of "VnfcConfigurationData" structures, the content of "vnfcInstanceId"
is unique (i.e. there shall be no two entries with the same content of "vnfcInstanceId").
Provisions:
1) For each "newEntry" in "newList" that has no corresponding entry in "oldList",
the "oldList" array shall be modified by adding that "newEntry".
1) For each "newEntry" in "newList" that has no corresponding entry in "oldList",
the "oldList" array shall be modified by adding that "newEntry".
2) For each "newEntry" in "newList" that has a corresponding "oldEntry" in "oldList",
the value of "oldEntry" shall be updated with the value of "newEntry" according to
the rules of JSON Merge PATCH (see IETF RFC 7396 ).
2) For each "newEntry" in "newList" that has a corresponding "oldEntry" in "oldList",
the value of "oldEntry" shall be updated with the value of "newEntry" according to
the rules of JSON Merge PATCH (see IETF RFC 7396 ).
type: array
items:
$ref: '#/definitions/VnfcConfigurationData'
$ref: '#/definitions/VnfcConfigurationData'
vnfcConfigurationDataDeleteIds:
description: >
List of identifiers entries to be deleted from the 'vnfcConfigurationData" attribute array to be used
as "deleteIdList" as defined below this table.
type: array
items:
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
VnfConfiguration:
description: >
This type represents configuration parameters of a VNF instance and its VNFC instances.
type: object
required:
- vnfConfigurationData
properties:
vnfConfigurationData:
description: >
Configuration parameters of the VNF instance.
$ref: '#/definitions/VnfConfigurationData'
vnfcConfigurationData:
description: >
Configuration parameters of the VNFC instances.
type: array
items:
$ref: '#/definitions/VnfcConfigurationData'
VnfConfigurationData:
description: >
This type represents configuration parameters of a VNF instance.
* NOTE: ETSI GS NFV-SOL 001 specifies the structure and format of
the VNFD based on TOSCA specifications.
type: object
properties:
extCpConfig:
description: >
Configuration parameters for the external CPs of the VNF instance.
$ref: '#/definitions/CpConfiguration'
dhcpServer:
description: >
IP address of the DHCP server that the VNF instance can use to obtain
IP addresses to be assigned to its external CPs.
$ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IpAddress'
type: array
items:
$ref: '#/definitions/CpConfiguration'
vnfSpecificData:
description: >
Additional configurable properties of the VNF instance declared in the
VNFD as "VnfConfigurableProperties".
$ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs'
VNFD as "VnfConfigurableProperties". see note.
$ref: '../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs'
VnfcConfigurationData:
description: >
This type represents configuration parameters of a VNFC instance.
* NOTE: ETSI GS NFV-SOL 001 specifies the structure and format
of the VNFD based on TOSCA specifications.
type: object
required:
- vnfcInstanceId
......@@ -92,22 +104,19 @@ definitions:
vnfcInstanceId:
description: >
Identifier of a VNFC instance to which this set of configuration data applies.
$ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf'
extCpConfig:
description: >
Configuration parameters for the external CPs of the VNFC instance.
$ref: '#/definitions/CpConfiguration'
dhcpServer:
The identifier references the "id" attribute in a "VnfcInfo" structure.
$ref: '../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf'
intCpConfig:
description: >
IP address of the DHCP server that the VNF instance can use to obtain
IP addresses to be assigned to its external CPs.
$ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IpAddress'
Configuration parameters for the internal CPs of the VNFC instance.
type: array
items:
$ref: '#/definitions/CpConfiguration'
vnfcSpecificData:
description: >
Additional configurable properties of the VNFC instance declared in the
VNFD as "VnfcConfigurableProperties".
$ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs'
VNFD as "VnfcConfigurableProperties". See note.
$ref: '../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs'
CpConfiguration:
description: >
......@@ -121,17 +130,17 @@ definitions:
cpId:
description: >
Identifier of a CP instance within the namespace of a specific VNF instance or a VNFC instance.
$ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf'
$ref: '../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf'
cpdId:
description: >
Identifier of the CPD in the VNFD.
$ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd'
$ref: '../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd'
addresses:
description: >
Network address and port assigned to the CP.
type: array
items:
$ref: '#/definitions/CpAddress'
$ref: '#/definitions/CpAddress'
CpAddress:
description: >
......@@ -139,6 +148,16 @@ definitions:
* NOTE 1: Either "address" or "useDynamicAddress" shall be present.
* NOTE 2: At least one of "macAddress" and "ipAddress" shall be present.
type: object
oneOf:
- required:
- address
- required:
- useDynamicAddress
anyOf:
- required:
- macAddress
- required:
- ipAddress
properties:
address:
description: >
......@@ -148,11 +167,11 @@ definitions:
macAddress:
description: >
Mac address. See NOTE 2.
$ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/MacAddress'
$ref: '../../General_Definitions/SOL002_def.yaml#/definitions/MacAddress'
ipAddress:
description: >
IP address. See NOTE 2.
$ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IpAddress'
$ref: '../../General_Definitions/SOL002_def.yaml#/definitions/IpAddress'
useDynamicAddress:
description: >
Set to true if an address shall be assigned dynamically. Otherwise set to false.
......@@ -161,8 +180,4 @@ definitions:
port:
description: >
The port assigned to the CP instance (e.g. IP port number, Ethernet port number, etc.).
type: integer
type: integer
\ No newline at end of file
responses:
409:
description: >
Another request is in progress that prohibits the fulfilment of
the current request, or the current resource state is inconsistent
with the request.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
This diff is collapsed.
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
Alarm:
description: >
The alarm data type encapsulates information about an alarm.
If the attribute "faultType" has the value "NFVI_OAM_VIRTUALISED_RESOURCE_STATE_CHANGE",
the following provisions apply for the values of the attribute "faultDetails" related to
changes in the state of virtualised resources:
- One of the entries in the array shall provide information about the anticipated time of maintenance in the
following format: "anticipatedTime=$time", wherein "$time" shall be formatted as a "DateTime", as specified
in ETSI GS NFV-SOL 013 [6].
- One of the entries in the array shall provide identification information about the affinity/anti-affinity group
defined in the VNFD that is associated to the affected virtualised resource indicated by "rootCauseFaultyResource"
in the following format: "affinityOrAntiAffinityGroupId=$group", wherein "$group" shall be equal to the
"affinityOrAntiAffinityGroupId" value in the corresponding "VduProfile" (for a VNFC/COMPUTE affected resource)
or "VirtualLinkProfile" for a VL/NETWORK affected resource) in the VNFD, which is mapped by the VNFM to the
virtualised resource group identifier in the virtualised resource change notification received by the VNFM from
the VIM.
NOTE 1: For an alarm about upcoming impact due to NFVI operation and maintenance (i.e. the attribute "faultType"
has the value "NFVI_OAM_VIRTUALISED_RESOURCE_STATE_CHANGE"), the attribute "rootCauseFaultyResource"
indicates a resource to be impacted. Further information on the upcoming impact (e.g. group of impacted
resources, time of impact) is provided in the attribute "faultDetails".
NOTE 2: When alarms are due to upcoming NFVI operation and maintenance (i.e. the attribute "faultType" has the
value "NFVI_OAM_VIRTUALISED_RESOURCE_STATE_CHANGE"), the attribute "faultDetails" shall include information
about the anticipated time of the maintenance. See provisions under the present table.
type: object
required:
- id
- managedObjectId
- alarmRaisedTime
- ackState
- perceivedSeverity
- eventTime
- eventType
- probableCause
- isRootCause
- _links
properties:
id:
description: >
Identifier of this Alarm.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
managedObjectId:
description: >
Identifier of the affected VNF instance.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
vnfcInstanceIds:
description: >
Identifiers of the affected VNFC instances. Each identifier references the
"id" attribute in a "VnfcInfo" structure. Shall be present if the alarm affects
at least one VNFC instance.
type: array
items:
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
rootCauseFaultyResource:
description: >
The virtualised resources that are causing the VNF fault. Shall be present if the alarm affects
virtualised resources. See note 1.
$ref: "#/definitions/FaultyResourceInfo"
alarmRaisedTime:
description: >
Time stamp indicating when the alarm is raised by the managed
object.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
alarmChangedTime:
description: >
Time stamp indicating when the alarm was last changed. It shall be
present if the alarm has been updated.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
alarmClearedTime:
description: >
Time stamp indicating when the alarm was cleared. It shall be
present if the alarm has been cleared.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
alarmAcknowledgedTime:
description: >
Time stamp indicating when the alarm was
acknowledged. It shall be present if the alarm has
been acknowledged.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/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: "#/definitions/PerceivedSeverityType"
eventTime:
description: >
Time stamp indicating when the fault was observed. See note 2.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
eventType:
description: >
Type of event.
$ref: "#/definitions/EventType"
type: string
faultType:
description: >
Additional information to clarify the type of the fault.
If the alarm is related to changes in the state of virtualised resources due to NFVI
operation and maintenance, this attribute shall be set to "NFVI_OAM_VIRTUALISED_RESOURCE_STATE _CHANGE".
type: string
probableCause:
description: >
Information about the probable cause of the fault.
If the attribute "faultType" has the value “NFVI_OAM_VIRTUALISED_RESOURCE_STATE_CHANGE”, the
permitted values are:
- "NFVI_COMPONENT_MAINTENANCE": Maintenance of NFVI components, e.g. physical maintenance/repair,
hypervisor software updates, etc.
- "NFVI_COMPONENT_EVACUATION": Evacuation of physical hosts.
- "NFVI_COMPONENT_OPTIMIZATION": Operation and management of NFVI resources, e.g. to support energy
efficiency or resource usage optimization.
type: string
isRootCause:
description: >
Attribute indicating if this fault is the root for other correlated
alarms. If TRUE, then the alarms listed in the attribute
CorrelatedAlarmId are caused by this fault.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Boolean"
correlatedAlarmIds:
description: >
List of identifiers of other alarms correlated to this fault.
type: array
items:
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
faultDetails:
description: >
Provides additional information about the fault. See notes 1 and 2.
type: array
items:
type: string
_links:
description: >
Links for this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Link"
objectInstance:
description: >
Link to the resource representing the VNF instance to which the
notified alarm is correlated. Shall be present if the VNF
instance information is accessible as a resource.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Link"
PerceivedSeverityRequest:
description: >
This type represents the escalated value of the perceived severity for an alarm.
type: object
required:
- proposedPerceivedSeverity
properties:
proposedPerceivedSeverity:
description: >
Indicates the proposed escalated perceived severity for an alarm.
$ref: "#/definitions/PerceivedSeverityType"
FmSubscriptionRequest:
description: >
This type represents a subscription request related to notifications
about VNF 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: "#/definitions/FmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/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: "../../General_Definitions/SOL002_def.yaml#/definitions/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: "../../General_Definitions/SOL002_def.yaml#/definitions/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: "#/definitions/FmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Uri"
_links:
description: >
Links for this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/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
* UNACKNOWLEDGED
type: string
enum:
- ACKNOWLEDGED
- UNACKNOWLEDGED
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
FaultyResourceInfo:
description: >
This type represents the faulty virtual resources that have a negative
impact on a VNF.
type: object
required:
- faultyResource
- faultyResourceType
properties:
faultyResource:
description: >
Information that identifies the faulty resource instance and its
managing entity.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/ResourceHandle"
faultyResourceType:
description: >
Type of the faulty resource.
$ref: "#/definitions/FaultyResourceType"
FaultyResourceType:
description: >
The enumeration FaultyResourceType represents those types of faulty
resource.
type: string
enum:
- COMPUTE
- STORAGE
- NETWORK
FmNotificationsFilter:
description: >
This type represents a subscription filter related to notifications about VNF faults.
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:
vnfInstanceSubscriptionFilter:
description: >
Filter criteria to select VNF instances about which to notify.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
notificationTypes:
description: >
Match particular notification types.
Permitted values:
- AlarmNotification
- AlarmClearedNotification
- AlarmListRebuiltNotification
See note.
type: array
items:
type: string
enum:
- AlarmNotification
- AlarmClearedNotification
- AlarmListRebuiltNotification
faultyResourceTypes:
description: >
Match VNF alarms with a faulty resource type listed in this
attribute.
type: array
items:
$ref: "#/definitions/FaultyResourceType"
perceivedSeverities:
description: >
Match VNF alarms with a perceived severity listed in this attribute.
type: array
items:
$ref: "#/definitions/PerceivedSeverityType"
eventTypes:
description: >
Match VNF alarms with an event type listed in this attribute.
type: array
items:
$ref: "#/definitions/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
openapi: 3.0.2
info:
title: SOL002 - VNF Fault Management Notification interface
description: |
SOL002 - VNF Fault Management Notification interface
IMPORTANT: Please note that this file might be not aligned to the current
version of the ETSI Group Specification it refers to. In case of
discrepancies the published ETSI Group Specification takes precedence.
https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues
contact:
name: NFV-SOL WG
license:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: 1.5.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 002 V3.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.07.01_60/gs_NFV-SOL002v030701p.pdf
servers:
- url: http://127.0.0.1/callback/v1
- url: https://127.0.0.1/callback/v1
paths:
/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification:
parameters:
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
get:
description: |
The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
e.g. during subscription. See clause 7.4.7.3.2.
responses:
"204":
$ref: '#/components/responses/VNFFMNotification.Get.204'
"400":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
"401":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
"403":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
"405":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
"406":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
"500":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
"503":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
post:
description: |
The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have
previously created an "Individual subscription" resource with a matching filter. See clause 7.4.7.3.1.
parameters:
- $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/AlarmNotification'
responses:
"204":
$ref: '#/components/responses/VNFFMNotification.Post.204'
"400":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
"401":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
"403":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
"405":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
"406":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
"500":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
"503":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification:
parameters:
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
get:
description: |
The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
e.g. during subscription. See clause 7.4.7.3.2.
responses:
"204":
$ref: '#/components/responses/VNFFMNotification.Get.204'
"400":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
"401":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
"403":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
"405":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
"406":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
"500":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
"503":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
post:
description: |
The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have
previously created an "Individual subscription" resource with a matching filter. See clause 7.4.7.3.1.
parameters:
- $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/AlarmClearedNotification'
responses:
"204":
$ref: '#/components/responses/VNFFMNotification.Post.204'
"400":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
"401":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
"403":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
"405":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
"406":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
"500":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
"503":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification:
parameters:
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
get:
description: |
The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
e.g. during subscription. See clause 7.4.7.3.2.
responses:
"204":
$ref: '#/components/responses/VNFFMNotification.Get.204'
"400":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
"401":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
"403":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
"405":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
"406":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
"500":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
"503":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
post:
description: |
The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have
previously created an "Individual subscription" resource with a matching filter. See clause 7.4.7.3.1.
parameters:
- $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/AlarmListRebuiltNotification'
responses:
"204":
$ref: '#/components/responses/VNFFMNotification.Post.204'
"400":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
"401":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
"403":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
"405":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
"406":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
"500":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
"503":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
components:
requestBodies:
AlarmNotification:
description: |
Information of a VNF alarm.
content:
application/json:
schema:
$ref: definitions/SOL002VNFFaultManagementNotification_def.yaml#/definitions/AlarmNotification
required: true
AlarmClearedNotification:
description: |
Information of the clearance of a VNF alarm.
content:
application/json:
schema:
$ref: definitions/SOL002VNFFaultManagementNotification_def.yaml#/definitions/AlarmClearedNotification
required: true
AlarmListRebuiltNotification:
description: |
Information that the alarm list has been rebuilt by the VNFM.
content:
application/json:
schema:
$ref: definitions/SOL002VNFFaultManagementNotification_def.yaml#/definitions/AlarmListRebuiltNotification
required: true
responses:
VNFFMNotification.Get.204:
description: |
204 NO CONTENT
Shall be returned to indicate the notification endpoint has been tested successfully. The response body
shall be empty.
headers:
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
content: {}
VNFFMNotification.Post.204:
description: |
204 NO CONTENT
Shall be returned when the notification has been delivered successfully. The response body shall be empty.
headers:
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
content: {}
\ No newline at end of file
......@@ -2,130 +2,135 @@
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
Alarm:
AlarmNotification:
description: >
The alarm data type encapsulates information about an alarm.
This type represents an alarm notification about VNF faults.
This notification shall be triggered by the VNFM 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
- managedObjectId
- rootCauseFaultyResource
- alarmRaisedTime
- ackState
- perceivedSeverity
- eventTime
- eventType
- probableCause
- isRootCause
- notificationType
- subscriptionId
- timeStamp
- alarm
- _links
properties:
id:
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: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
notificationType:
description: >
Identifier of this Alarm information element.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
managedObjectId:
Discriminator for the different notification types. Shall be set to
"AlarmNotification" for this notification type.
type: string
enum:
- AlarmNotification
subscriptionId:
description: >
Identifier of the affected VNF instance.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
rootCauseFaultyResource:
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
timeStamp:
description: >
The virtualised resources that are causing the VNF fault.
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FaultyResourceInfo"
alarmRaisedTime:
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
alarm:
description: >
Time stamp indicating when the alarm is raised by the managed
object.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
alarmChangedTime:
Information about an alarm including AlarmId, affected VNF
identifier, and FaultDetails.
$ref: "../../VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml#/definitions/Alarm"
_links:
description: >
Time stamp indicating when the alarm was last changed. It shall be
present if the alarm has been updated.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
alarmClearedTime:
Links to resources related to this notification.
type: object
required:
- subscription
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/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: >
Time stamp indicating when the alarm was cleared. It shall be
present if the alarm has been cleared.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
ackState:
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: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
notificationType:
description: >
Acknowledgement state of the alarm.
Permitted values:
* UNACKNOWLEDGED
* ACKNOWLEDGED.
Discriminator for the different notification types. Shall be set to
"AlarmClearedNotification" for this notification type.
type: string
enum:
- UNACKNOWLEDGED
- ACKNOWLEDGED
perceivedSeverity:
description: >
Perceived severity of the managed object failure.
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityType"
eventTime:
enum:
- AlarmClearedNotification
subscriptionId:
description: >
Time stamp indicating when the fault was observed.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
eventType:
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Type of event.
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/EventType"
faultType:
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
alarmId:
description: >
Additional information to clarify the type of the fault.
type: string
probableCause:
Alarm identifier.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
alarmClearedTime:
description: >
Information about the probable cause of the fault.
type: string
isRootCause:
description: >
Attribute indicating if this fault is the root for other correlated
alarms. If TRUE, then the alarms listed in the attribute
CorrelatedAlarmId are caused by this fault.
type: boolean
correlatedAlarmIds:
description: >
List of identifiers of other alarms correlated to this fault.
type: array
items:
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
faultDetails:
description: >
Provides additional information about the fault.
type: array
items:
type: string
The time stamp indicating when the alarm was cleared.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
_links:
description: >
Links for this resource.
Links to resources related to this notification.
type: object
required:
- self
- subscription
- alarm
properties:
self:
subscription:
description: >
URI of this resource.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
objectInstance:
Link to the related subscription.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/NotificationLink"
alarm:
description: >
Link to the resource representing the VNF instance to which the
notified alarm is correlated. Shall be present if the VNF
instance information is accessible as a resource.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
Link to the resource that represents the related alarm.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/NotificationLink"
AlarmNotification:
AlarmListRebuiltNotification:
description: >
This type represents an alarm notification about VNF faults.
This notification shall be triggered by the VNFM when:
* An alarm has been created.
* An alarm has been updated, e.g. if the severity of the alarm has
changed.
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, e.g. because the VNFM has detected that its storage
holding the alarm list was corrupted.
type: object
required:
required:
- id
- notificationType
- subscriptionId
- timeStamp
- alarm
- _links
properties:
id:
......@@ -133,36 +138,35 @@ definitions:
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: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"AlarmNotification" for this notification type.
"AlarmListRebuiltNotification" for this notification type.
type: string
enum:
- AlarmNotification
enum:
- AlarmListRebuiltNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
alarm:
description: >
Information about an alarm including AlarmId, affected VNF
identifier, and FaultDetails.
$ref: "#/definitions/Alarm"
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
_links:
description: >
Links to resources related to this notification.
type: object
required:
required:
- subscription
properties:
subscription:
- alarms
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
\ No newline at end of file
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/NotificationLink"
alarms:
description: >
Link to the alarm list, i.e. the "Alarms" resource.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/NotificationLink"
\ No newline at end of file