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 (449)
Showing
with 2551 additions and 1939 deletions
build/
*.pyc
.idea/
......@@ -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("build/*-API.yaml", bu)
# print "comment: "+comment
jenkins_gerrit_comment(str(cn), str(pn), comment)
\ No newline at end of file
swagger: "2.0"
openapi: 3.0.2
info:
version: "1.2.0"
title: "SOL002 - API version interface"
description: >
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 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
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
contact:
name: "NFV-SOL WG"
version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 002 V2.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
basePath: /{apiName}
schemes:
- http
- https
consumes:
- application/json
produces:
- application/json
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:
###############################################################################
# API Versions #
###############################################################################
'/api-versions':
get:
summary: Retrieve API version information
description: >
The GET method reads API version information. This method shall follow the provisions specified in
table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not
supported.
parameters:
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: false
type: string
responses:
200:
description: >
API version information was read successfully.
The response body shall contain 4.4 API version
information, as defined in clause 4.4.1.13.
schema:
$ref: '../../definitions/SOL002SOL003_def.yaml#/definitions/ApiVersionInformation'
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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' }
413: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/413' }
414: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/414' }
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
429: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/429' }
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
504: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/504' }
/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
......@@ -2,89 +2,9 @@
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
AffectedVnfc:
description: >
This type provides information about added, deleted, modified and
temporary VNFCs.
type: object
required:
- id
- vduId
- changeType
- computeResource
properties:
id:
description: >
Identifier of the Vnfc instance, identifying the applicable
"vnfcResourceInfo" entry in the "VnfInstance" data type.
$ref: "#/definitions/IdentifierInVnf"
vduId:
description: >
Identifier of the related VDU in the VNFD.
$ref: "#/definitions/IdentifierInVnfd"
changeType:
description: >
Signals the type of change. Permitted values:
* ADDED
* REMOVED
* MODIFIED
* TEMPORARY
For a temporary resource, an AffectedVnfc structure exists as long
as the temporary resource exists.
type: string
enum:
- ADDED
- REMOVED
- MODIFIED
- TEMPORARY
computeResource:
description: >
Reference to the VirtualCompute resource. Detailed information is
(for new and modified resources) or has been (for removed
resources) available from the VIM.
$ref: "#/definitions/ResourceHandle"
metadata:
description: >
Metadata about this resource.
The content of this attribute shall be a copy of the content of the
"metadata" attribute of the VnfcResourceInfo structure.
$ref: "#/definitions/KeyValuePairs"
affectedVnfcCpIds:
description: >
Identifiers of CP(s) of the VNFC instance that were affected by the
change.
Shall be present for those affected CPs of the VNFC instance that
are associated to an external CP of the VNF instance.
May be present for further affected CPs of the VNFC instance.
type: array
items:
$ref: "#/definitions/IdentifierInVnf"
addedStorageResourceIds:
description: >
References to VirtualStorage resources that have been added. Each
value refers to a VirtualStorageResourceInfo item in the
VnfInstance that was added to the VNFC. It shall be provided if at
least one storage resource was added to the VNFC.
type: array
items:
$ref: "#/definitions/IdentifierInVnf"
removedStorageResourceIds:
description: >
References to VirtualStorage resources that have been removed.
The value contains the identifier of a VirtualStorageResourceInfo
item that has been removed from the VNFC, and might no longer exist
in the VnfInstance.
It shall be provided if at least one storage resource was removed
from the VNFC.
type: array
items:
$ref: "#/definitions/IdentifierInVnf"
Link:
description: >
This type represents a link to a resource using an absolute URI.
It shall comply with the provisions defined in table 4.4.1.3-1.
type: object
required:
- href
......@@ -92,14 +12,12 @@ definitions:
href:
description: >
URI of another resource referenced from a resource.
Shall be an absolute URI (i.e. a URI that contains {apiRoot}).
Shall be an absolute URI (i.e. a UTI that contains {apiRoot}).
$ref: "#/definitions/Uri"
NotificationLink:
description: >
This type represents a link to a resource in a notification,
using an absolute or relative URI. It shall comply with the
provisions defined in table 4.4.1.3a-1.
This type represents a link to a resource in a notification, using an absolute or relative URI.
type: object
required:
- href
......@@ -113,223 +31,377 @@ definitions:
information is not available.
$ref: "#/definitions/Uri"
Version:
description: >
A version.
type: string
MacAddress:
description: >
A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
type: string
format: MAC
IpAddress:
KeyValuePairs:
description: >
An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal
integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that
consists of groups of zero to four hexadecimal digits, separated by colons.
type: string
format: IP
This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON,
a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4
of IETF RFC 8259. In the following example, a list of key-value pairs with four keys ("aString", "aNumber",
"anArray" and "anObject") is provided to illustrate that the values associated with different keys can be of
different type.
type: object
CpProtocolData:
ApiVersionInformation:
description: >
This type represents network protocol data.
This type represents API version information.
type: object
required:
- layerProtocol
- uriPrefix
- apiVersions
properties:
layerProtocol:
uriPrefix:
description: >
Identifier of layer(s) and protocol(s).
This attribute allows to signal the addition of further types of
layer and protocol in future versions of the present document in a
backwards-compatible way. In the current version of the present
document, only IP over Ethernet is supported.
Specifies the URI prefix for the API, in the following
form {apiRoot}/{apiName}/{apiMajorVersion}/.
type: string
enum:
- IP_OVER_ETHERNET
ipOverEthernet:
apiVersions:
description: >
Network address data for IP over Ethernet to assign to the extCP
instance. Shall be present if layerProtocol is equal to
"IP_OVER_ETHERNET", and shall be absent otherwise.
$ref: "#/definitions/IpOverEthernetAddressData"
Version(s) supported for the API signaled by the
uriPrefix attribute.
type: array
items:
type: object
required:
- version
properties:
version:
description: >
Identifies a supported version. The value of the
version attribute shall be a version identifier as
specified in clause 9.1 (SOL013).
type: string
isDeprecated:
description: >
If such information is available, this attribute indicates
whether use of the version signaled by the version
attribute is deprecated (true) or not (false).
DateTime:
description: >
Date-time stamp.
Representation: String formatted according to IETF RFC 3339.
type: string
format: "date-time"
A deprecated version is still supported by the API producer but is recommended
not to be used any longer.
When a version is no longer supported, it does not appear in the response body.
type: boolean
retirementDate:
description: >
The date and time after which the API version will no
longer be supported.
This attribute may be included if the value of the
isDeprecated attribute is set to true and shall be
absent otherwise.
$ref: "#/definitions/DateTime"
ExtLinkPortData:
VnfInstanceSubscriptionFilter:
description: >
This type represents an externally provided link port to be used to
connect an external connection point to an external VL.
This type represents subscription filter criteria to match VNF
instances.
* NOTE 1: The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to VNF instances
that are based on certain VNFDs in a filter. They should not be used both in the same filter instance,
but one alternative should be chosen.
NOTE 2: The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF
instances in a filter. They should not be used both in the same filter instance, but one alternative
should be chosen.
type: object
required:
- id
- resourceHandle
anyOf:
- oneOf:
- required:
- vnfdId
- required:
- vnfProductsFromProviders
- oneOf:
- required:
- vnfInstanceIds
- required:
- vnfInstanceNames
properties:
id:
vnfdIds:
description: >
Identifier of this link port as provided by the entity that has
created the link port.
$ref: "#/definitions/Identifier"
resourceHandle:
If present, match VNF instances that were created based on a VNFD
identified by one of the vnfdId values listed in this attribute. See note 1.
type: array
items:
$ref: "#/definitions/Identifier"
vnfProductsFromProviders:
description: >
Reference to the virtualised resource realizing this link port.
$ref: "#/definitions/ResourceHandle"
If present, match VNF instances that belong to VNF products from
certain providers. See note 1.
type: array
items:
type: object
required:
- vnfProvider
properties:
vnfProvider:
description: >
Name of the VNF provider to match.
type: string
vnfProducts:
description: >
If present, match VNF instances that belong to VNF products
with certain product names, from one particular provider.
type: array
items:
type: object
required:
- vnfProductName
properties:
vnfProductName:
description: >
Name of the VNF product to match.
type: string
versions:
description: >
If present, match VNF instances that belong to VNF
products with certain versions and a certain product
name, from one particular provider.
type: array
items:
type: object
required:
- vnfSoftwareVersion
properties:
vnfSoftwareVersion:
description: >
Software version to match.
$ref: "#/definitions/Version"
vnfdVersions:
description: >
If present, match VNF instances that belong to VNF
products with certain VNFD versions, a certain
software version and a certain product name, from
one particular provider.
type: array
items:
$ref: "#/definitions/Version"
vnfInstanceIds:
description: >
If present, match VNF instances with an instance identifier listed
in this attribute. See note 2.
type: array
items:
$ref: "#/definitions/Identifier"
vnfInstanceNames:
description: >
If present, match VNF instances with a VNF Instance Name listed in
this attribute. See note 2.
type: array
items:
type: string
ExtManagedVirtualLinkData:
type: object
ResourceHandle:
required:
- id
- virtualLinkDescId
- resourceId
type: object
description: >
This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.
Information about the resource is available from the VIM.
* NOTE 1: The information about the VIM connection referenced by the VIM connection id is known to the VNFM. Moreover,
the identifier of the VIM connection provides scope to the resourceId.
* NOTE 2: The value set of the "vimLevelResourceType" attribute is within the scope of the VIM or the resource provider
and can be used as information that complements the ResourceHandle.
properties:
id:
description: >
The identifier of the externally-managed internal VL instance. The
identifier is assigned by the NFV-MANO entity that manages this VL
instance.
$ref: "#/definitions/Identifier"
vnfVirtualLinkDescId:
description: >
The identifier of the VLD in the VNFD for this VL.
$ref: "#/definitions/IdentifierInVnfd"
vimConnectionId:
description: >
Identifier of the VIM connection to manage this resource. This
attribute shall only be supported and present if VNF-related
resource management in direct mode is applicable.
Identifier of the VIM connection to manage the resource.
This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable.
See note 1.
$ref: "#/definitions/Identifier"
resourceProviderId:
description: >
Identifies the entity responsible for the management of this
resource. This attribute shall only be supported and present if
Identifier of the entity responsible for the management of the
resource. This attribute shall only be supported and present when
VNF-related resource management in indirect mode is applicable. The
identification scheme is outside the scope of the present document.
$ref: "#/definitions/Identifier"
resourceId:
description: >
The identifier of the resource in the scope of the VIM or the
resource provider.
Identifier of the resource in the scope of the VIM or the resource provider.
$ref: "#/definitions/IdentifierInVim"
vimLevelResourceType:
description: >
Type of the resource in the scope of the VIM or the resource provider. See note 2.
type: string
ExtVirtualLinkData:
VnfExtCpData:
description: >
This type represents an external VL.
This type represents configuration information for external CPs created.
* NOTE 1: In case this identifier refers to a CPD with trunking enabled, the external CP instances created
from this CPD will represent ports in a trunk.
* NOTE 2: Within one VNF instance, all VNFC instances created from a particular VDU have the same external
connectivity. Thus, given a particular value of the "cpdId" attribute, there shall be one
"cpConfig" entry for each VNFC instance that has been or can be created from a VDU which includes
a CPD identified by the "cpdId" attribute. If the cpConfig represents a subport in a trunk,
all "cpConfig" entries in this list shall have the same segmentationId, which means they are
connected to the same set of external VLs via the trunk.
* NOTE 3: The map entry value shall be set to "null" in order to delete a "VnfExtCpConfig" entry identified
by a particular key value from the map, i.e. for the disconnection of an existing external
CP instance addressed by cpInstanceId in the deleted map entry from a particular external
virtual link, and deletion of that instance in case it represents a subport. Deleting the
last key from the map removes the affected instance of the "VnfExtCpData" structure from
its parent data structure.
* NOTE 4: If, as defined by the input parameters of a "ChangeVnfFlavour", "ChangeExtVnfConnectivity" or
"ChangeCurrentVnfPkg" operation, a cpConfig map entry identified by a particular map key value
is moved into another "ExtVirtualLinkData" or "VnfExtCpData" structure, this particular cpConfig
map entry may be used by an external CP instance different than the one that has used it before the
operation, or by no external CP instance at all. Renaming a CPD identifier during the "changeCurrentVnfPkg"
operation does not count as moving the related "cpConfig" map entries to a new "extCpData" structure.
type: object
required:
- id
- resourceId
- extCps
- cpdId
properties:
id:
cpdId:
description: >
The identifier of the external VL instance. The identifier is
assigned by the NFV-MANO entity that manages this VL instance.
$ref: "#/definitions/Identifier"
vimConnectionId:
The identifier of the CPD in the VNFD. See note 1.
$ref: "#/definitions/IdentifierInVnfd"
cpConfig:
description: >
Identifier of the VIM connection to manage this resource. This
attribute shall only be supported and present if VNF-related
resource management in direct mode is applicable.
$ref: "#/definitions/Identifier"
resourceProviderId:
Map of instance data that need to be configured on the CP instances
created from the respective CPD.
The key of the map which identifies the individual VnfExtCpConfig entries is of type "IdentifierInVnf"
and is managed by the NFVO.
The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396).
See notes 2, 3 and 4.
type: object
additionalProperties:
$ref: "#/definitions/VnfExtCpConfig"
VnfExtCpConfig:
description: >
This type represents an externally provided link port or network address information per instance of an
external connection point. In case a link port is provided, the VNFM shall use that link port when
connecting the external CP to the external VL. In case a link port is not provided, the VNFM shall create
a link port on the external VL, and use that link port to connect the external CP to the external VL.
* NOTE : The following conditions apply to the attributes "linkPortId" and "cpProtocolData":
1) Void.
2) At least one of the "linkPortId" and "cpProtocolData" attributes shall be present for an external CP instance
representing a subport that is to be created, or an external CP instance that is to be created by creating the
corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing
external CP instance that is to be re-configured or added to a particular external virtual link.
3) If the "linkPortId" attribute is absent, the VNFM shall create a link port.
4) If the "cpProtocolData" attribute is absent, the "linkPortId" attribute shall be provided referencing a
precreated link port, and the VNFM can use means outside the scope of the present document to obtain the
pre-configured address information for the connection point from the resource representing the link port.
5) If both "cpProtocolData" and "linkportId" are provided, the NFVO shall ensure that the
cpProtocolData can be used with the pre-created link port referenced by "linkPortId".
anyOf:
- required:
- linkPortId
- required:
- cpProtocolData
- required:
- netAttDefResourceId
type: object
properties:
parentCpConfigId:
description: >
Identifies the entity responsible for the management of this
resource. This attribute shall only be supported and present
if VNF-related resource management in indirect mode is applicable.
The identification scheme is outside the scope of the present
document.
$ref: "#/definitions/Identifier"
resourceId:
Value of the key that identifies the "VnfExtCpConfig" map entry which corresponds to the parent port of the
trunk. Reference to the "VnfExtCpConfig" entry that corresponds to the parent port of the trunk. Only present
in "VnfExtCpConfig" structures that provide configuration information for a CP which represents a sub-port in
a trunk, and if parent ports are supported.
$ref: "#/definitions/IdentifierInVnf"
linkPortId:
description: >
The identifier of the resource in the scope of the VIM or the
resource provider.
$ref: "#/definitions/IdentifierInVim"
extCps:
Identifier of a pre-configured link port to which the external CP
will be associated. See notes 1 and 4.
$ref: "#/definitions/Identifier"
createExtLinkPort:
description: >
External CPs of the VNF to be connected to this external VL.
type: array
items:
$ref: "#/definitions/VnfExtCpData"
extLinkPorts:
Indicates to the VNFM the need to create a dedicated link port for the external CP.
If set to True, the VNFM shall create a link port.
If set to False, the VNFM shall not create a link port.
This attribute is only applicable for external CP instances without a floating IP address that expose a VIP CP
instance for which a dedicated IP address is allocated. It shall be present in that case and shall be absent otherwise.
type: boolean
cpProtocolData:
description: >
Externally provided link ports to be used to connect external
connection points to this external VL. If this attribute is not
present, the VNFM shall create the link ports on the external VL.
Parameters for configuring the network protocols on the link port that connects the
CP to a VL. See note.
type: array
items:
$ref: "#/definitions/ExtLinkPortData"
GrantedLcmOperationType:
description: >
The enumeration GrantedLcmOperationType defines the permitted values
to represent VNF lifecycle operation types in grant requests.
Value | Description
------|------------
INSTANTIATE | Represents the "Instantiate VNF" LCM operation.
SCALE | Represents the "Scale VNF" LCM operation.
SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation.
CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation.
TERMINATE | Represents the "Terminate VNF" LCM operation.
HEAL | Represents the "Heal VNF" LCM operation.
OPERATE | Represents the "Operate VNF" LCM operation.
CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation.
type: string
enum:
- INSTANTIATE
- SCALE
- SCALE_TO_LEVEL
- CHANGE_FLAVOUR
- TERMINATE
- HEAL
- OPERATE
- CHANGE_EXT_CONN
Identifier:
description: >
An identifier with the intention of being globally unique.
type: string
IdentifierInVim:
description: >
An identifier maintained by the VIM or other resource provider. It is
expected to be unique within the VIM instance.
type: string
IdentifierInVnf:
description: >
An identifier that is unique for the respective type within a VNF
instance, but may not be globally unique.
type: string
$ref: "#/definitions/CpProtocolData"
IdentifierInVnfd:
CpProtocolData:
description: >
An identifier that is unique within a VNF descriptor.
type: string
This type represents network protocol data.
* NOTE: This attribute allows to signal the addition of further types of layer and protocol
in future versions of the present document in a backwards-compatible way. In the current
version of the present document, only IP over Ethernet is supported.
type: object
required:
- layerProtocol
properties:
layerProtocol:
description: >
Identifier of layer(s) and protocol(s). Permitted values: IP_OVER_ETHERNET See note.
type: string
enum:
- IP_OVER_ETHERNET
ipOverEthernet:
description: >
Network address data for IP over Ethernet to assign to the extCP instance. Shall be
present if layerProtocol is equal to "IP_OVER_ETHERNET", and shall be absent otherwise.
$ref: "#/definitions/IpOverEthernetAddressData"
IpOverEthernetAddressData:
description: >
This type represents network address data for IP over Ethernet.
* NOTE 1: At least one of "macAddress" or "ipAddresses" shall be present.
* NOTE 2: Exactly one of "fixedAddresses", "numDynamicAddresses" or "ipAddressRange" shall be present.
* NOTE 3: If the CP instance represents a subport in a trunk, segmentationId shall be present.
Otherwise it shall not be present.
* NOTE 4: Depending on the NFVI networking infrastructure, the segmentationId may indicate the actual
network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header
of the packets or it may be an identifier used between the application and the NFVI networking
infrastructure to identify the network sub-interface of the trunk port in question. In the latter
case the NFVI infrastructure will map this local segmentationId to whatever segmentationId is
actually used by the NFVI's transport technology.
type: object
anyOf:
- required:
- macAddress
- required:
- ipAddresses
oneOf:
- required:
- fixedAddresses
- required:
- numDynamicAddresses
- required:
- ipAddressRange
properties:
macAddress:
description: >
MAC address. If this attribute is not present, it shall be chosen by
the VIM.
At least one of "macAddress" or "ipAddresses" shall be present.
the VIM. See note 1.
$ref: "#/definitions/MacAddress"
segmentationType:
description: >
Specifies the encapsulation type for the traffics coming in and out of the trunk subport.
Permitted values:
- VLAN: the subport uses VLAN as encapsulation type.
- INHERIT: the subport gets it is segmentation type from the network it’s connected to.
This attribute may be present for CP instances that represent subports in a trunk and shall be
absent otherwise. If this attribute is not present for a subport CP instance, default value VLAN shall be used.
type: string
enum:
- VLAN
- INHERIT
segmentationId:
description: >
Identification of the network segment to which the CP instance connects to. See note 3 and note 4.
type: string
ipAddresses:
description: >
List of IP addresses to assign to the CP instance. Each entry
represents IP address data for fixed or dynamic IP address
assignment per subnet.
If this attribute is not present, no IP address shall be assigned.
If this attribute is not present, no IP address shall be assigned. See note 1.
type: array
items:
type: object
......@@ -347,25 +419,21 @@ definitions:
fixedAddresses:
description: >
Fixed addresses to assign (from the subnet defined by
"subnetId" if provided).
Exactly one of "fixedAddresses", "numDynamicAddresses" or
"ipAddressRange" shall be present.
"subnetId" if provided). See note 2.
type: array
items:
$ref: "#/definitions/IpAddress"
numDynamicAddresses:
description: >
Number of dynamic addresses to assign (from the subnet defined
by "subnetId" if provided).
Exactly one of "fixedAddresses", "numDynamicAddresses" or
"ipAddressRange" shall be present.
by "subnetId" if provided). See note 2.
type: integer
addressRange:
description: >
An IP address range to be used, e.g. in case of egress
connections.
In case this attribute is present, IP addresses from the range
will be used.
will be used. See note 2.
type: object
required:
- minAddress
......@@ -388,15 +456,269 @@ definitions:
a subnet will be assigned.
$ref: "#/definitions/IdentifierInVim"
KeyValuePairs:
ExtVirtualLinkData:
description: >
This type represents an external VL.
* NOTE 1: The information about the VIM connection referenced by the VIM connection id is known to the VNFM.
Moreover, the identifier of the VIM connection provides scope to the resourceId.
* NOTE 2: A link port is not needed for an external CP instance that exposes a VIP CP in the following cases:
1) For a VIP CP directly exposed as an extCP:
1.1) No dedicated IP address is allocated as VIP address, as indicated in the VNFD.
1.2) A dedicated IP address is allocated as VIP address, but the NFVO indicates that no port is needed
(createExtLinkPort in VnfExtCpConfig set to false).
2) For a VIP CP exposed as an extCP via a floating IP address:
2.1) No dedicated IP address is allocated as VIP address, as indicated in the VNFD, and the VNFC CP
associated to the VIP CP is also exposed via a floating IP address.
type: object
required:
- id
- resourceId
- extCps
properties:
id:
description: >
The identifier of the external VL instance. The identifier is
assigned by the NFV-MANO entity that manages this VL instance.
$ref: "#/definitions/Identifier"
vimConnectionId:
description: >
Identifier of the VIM connection to manage this resource. This
attribute shall only be supported and present if VNF-related
resource management in direct mode is applicable. See note 1.
$ref: "#/definitions/Identifier"
resourceProviderId:
description: >
Identifies the entity responsible for the management of this
resource. This attribute shall only be supported and present
if VNF-related resource management in indirect mode is applicable.
The identification scheme is outside the scope of the present
document.
$ref: "#/definitions/Identifier"
resourceId:
description: >
The identifier of the resource in the scope of the VIM or the
resource provider.
$ref: "#/definitions/IdentifierInVim"
extCps:
description: >
External CPs of the VNF to be connected to this external VL. Entries in the list of external
CP data that are unchanged need not be supplied if the ExtVirtualLinkData structure is part
of a request or response that modifies the external connectivity.
type: array
items:
$ref: "#/definitions/VnfExtCpData"
extLinkPorts:
description: >
Externally provided link ports to be used to connect external connection points to this external
VL. If this attribute is not present, the VNFM shall create the link ports on the external VL
unless the extCp exposes a VIP CP and a link port is not needed for it based on the conditions
defined below. See note 2.
type: array
items:
$ref: "#/definitions/ExtLinkPortData"
ScaleInfo:
description: >
This type represents the scale level of a VNF instance related to a scaling aspect.
type: object
required:
- aspectId
- scaleLevel
properties:
aspectId:
description: >
Identifier of the scaling aspect.
$ref: "#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case the value differs from the vnfdId
attribute of the VnfInstance (e.g. during a "Change
current VNF package" operation or due to its final
failure).
$ref: "#/definitions/IdentifierInVnfd"
scaleToLevel:
description: >
Indicates the scale level. The minimum value shall be 0
and the maximum value shall be ≤ maxScaleLevel as
described in the VNFD.
$ref: "#/definitions/Identifier"
Identifier:
description: >
An identifier with the intention of being globally unique.
type: string
DateTime:
description: >
Date-time stamp.
Representation: String formatted according to IETF RFC 3339.
type: string
format: date-time
Uri:
description: >
String formatted according to IETF RFC 3986.
type: string
Boolean:
description: >
The Boolean is a data type having two values (true and false).
type: boolean
MacAddress:
description: >
A MAC address. Representation: string that consists of groups of two hexadecimal digits,
separated by hyphens or colons.
type: string
format: MAC
IpAddress:
description: >
An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal
integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that
consists of groups of zero to four hexadecimal digits, separated by colons.
type: string
format: IP
Version:
description: >
A version.
type: string
String:
description: >
A string defined in IETF RFC 8259.
type: string
Number:
description: >
A number defined in IETF RFC 8259.
type: number
UnsignedInt:
description: >
Unsigned integer number
type: integer
minimum: 0
IdentifierInVnfd:
description: >
An identifier that is unique within a VNF descriptor.
type: string
IdentifierInVim:
description: >
An identifier maintained by the VIM or the CISM or other resource provider. It is
expected to be unique within the VIM instance.
type: string
IdentifierInVnf:
description: >
An identifier that is unique for the respective type within a VNF
instance, but may not be globally unique.
type: string
IdentifierLocal:
description: >
An identifier that is unique within a limited local scope other than above listed identifiers,
such as within a complex data structure or within a request-response pair.
Representation: string of variable length.
type: string
Checksum: #no definition found
description: >
Cheksum description
type: string
########################################################################################################################
# TO CHECK IF INCLUDE THESE DATA TYPES IN ANOTHER DEF FILES
VnfLinkPortData:
description: >
This type represents an externally provided link port to be used to connect a VNFC connection point
to an exernally managed VL.
type: object
required:
- vnfLinkPortId
- resourceHandle
properties:
vnfLinkPortId:
description: >
Identifier of this link port as provided by the entity that has created the link port.
$ref: "#/definitions/Identifier"
resourceHandle:
description: >
Resource handle of the virtualised resource that realizes the link port.
$ref: "#/definitions/ResourceHandle"
ExtLinkPortData:
description: >
This type represents a list of key-value pairs. The order of the pairs in the list is not significant.
In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions
defined in clause 4 of IETF RFC 7159.
This type represents an externally provided link port to be used to
connect an external connection point to an external VL.
* NOTE: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute.
type: object
required:
- id
- resourceHandle
properties:
id:
description: >
Identifier of this link port as provided by the entity that has
created the link port.
$ref: "#/definitions/Identifier"
resourceHandle:
description: >
Reference to the virtualised resource realizing this link port.
$ref: "#/definitions/ResourceHandle"
trunkResourceId:
description: >
Identifier of the trunk resource in the VIM.
Shall be present if the present link port corresponds to the parent
port that the trunk resource is associated with. See note.
$ref: "#/definitions/IdentifierInVim"
GrantedLcmOperationType:
description: >
The enumeration GrantedLcmOperationType defines the permitted values
to represent VNF lifecycle operation types in grant requests.
Value | Description
------|------------
INSTANTIATE | Represents the "Instantiate VNF" LCM operation.
SCALE | Represents the "Scale VNF" LCM operation.
SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation.
CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation.
TERMINATE | Represents the "Terminate VNF" LCM operation.
HEAL | Represents the "Heal VNF" LCM operation.
OPERATE | Represents the "Operate VNF" LCM operation.
CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation.
CHANGE_VNFPKG | Represents the "Change current VNF package" LCM operation.
CREATE_SNAPSHOT | Represents the "Create VNF snapshot" LCM operation.
REVERT_TO_SNAPSHOT | Represents the "Revert to VNF snapshot" LCM operation.
type: string
enum:
- INSTANTIATE
- SCALE
- SCALE_TO_LEVEL
- CHANGE_FLAVOUR
- TERMINATE
- HEAL
- OPERATE
- CHANGE_EXT_CONN
- CHANGE_VNFPKG
- CREATE_SNAPSHOT
- REVERT_TO_SNAPSHOT
LcmOperationType:
description: >
The enumeration LcmOpType defines the permitted values to represent
VNF lifecycle operation types in VNF lifecycle management operation
occurrence resources and VNF lifecycle management operation occurrence
notifications.
Value | Description
------|------------
INSTANTIATE | Represents the "Instantiate VNF" LCM operation.
......@@ -407,7 +729,10 @@ definitions:
HEAL | Represents the "Heal VNF" LCM operation.
OPERATE | Represents the "Operate VNF" LCM operation.
CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation.
MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
CREATE_SNAPSHOT | Represents the "Create VNF Snapshot" LCM operation.
REVERT_TO_SNAPSHOT | Represents the “Revert-To VNF Snapshot" LCM operation.
CHANGE_VNFPKG | Represents the "Change current VNF package" LCM operation.
type: string
enum:
- INSTANTIATE
......@@ -419,22 +744,25 @@ definitions:
- OPERATE
- CHANGE_EXT_CONN
- MODIFY_INFO
- CREATE_SNAPSHOT
- REVERT_TO_SNAPSHOT
- CHANGE_VNFPKG
ProblemDetails:
#SOL003 location: 4.3.5.3
description: >
The definition of the general "ProblemDetails" data structure from
IETF RFC 7807 [19] is reproduced inthis structure. Compared to the
general framework defined in IETF RFC 7807 [19], the "status" and
IETF RFC 7807 is reproduced inthis structure. Compared to the
general framework defined in IETF RFC 7807, the "status" and
"detail" attributes are mandated to be included by the present document,
to ensure that the response contains additional textual information about
an error. IETF RFC 7807 [19] foresees extensibility of the
an error. IETF RFC 7807 foresees extensibility of the
"ProblemDetails" type. It is possible that particular APIs in the present
document, or particular implementations, define extensions to define
additional attributes that provide more information about the error.
The description column only provides some explanation of the meaning to
Facilitate understanding of the design. For a full description, see
IETF RFC 7807 [19].
IETF RFC 7807.
type: object
required:
- status
......@@ -442,7 +770,7 @@ definitions:
properties:
type:
description: >
A URI reference according to IETF RFC 3986 [5] that identifies the
A URI reference according to IETF RFC 3986 that identifies the
problem type. It is encouraged that the URI provides human-readable
documentation for the problem (e.g. using HTML) when dereferenced.
When this member is not present, its value is assumed to be
......@@ -479,45 +807,11 @@ definitions:
format: URI
#TODO: How to express "any additional attributes"?
ResourceHandle:
required:
- vimConnectionId
- resourceId
type: object
description: >
This type represents the information that allows addressing a virtualised
resource that is used by a VNF instance. Information about the resource
is available from the VIM.
properties:
vimConnectionId:
description: >
Identifier of the VIM connection to manage the resource. This
attribute shall only be supported and present if VNF-related resource
management in direct mode is applicable. The applicable
"VimConnectionInfo" structure, which is referenced by
vimConnectionId, can be obtained from the "vimConnectionInfo"
attribute of the "VnfInstance" structure.
$ref: "#/definitions/Identifier"
resourceProviderId:
description: >
Identifier of the entity responsible for the management of the
resource. This attribute shall only be supported and present when
VNF-related resource management in indirect mode is applicable. The
identification scheme is outside the scope of the present document.
$ref: "#/definitions/Identifier"
resourceId:
description: >
Identifier of the resource in the scope of the VIM or the resource
provider.
$ref: "#/definitions/IdentifierInVim"
vimLevelResourceType:
description: >
Type of the resource in the scope of the VIM or the resource
provider.
type: string
#TODO: Note of Table 4.4.1.7-1
SubscriptionAuthentication:
description: >
* NOTE: The clientId and clientPassword passed in a subscription shall not be the same as the clientId and
clientPassword that are used to obtain authorization for API requests. Client credentials may differ between
subscriptions. The value of clientPassword should be generated by a random process
type: object
required:
- authType
......@@ -574,335 +868,64 @@ definitions:
description: >
Client identifier to be used in the access token request of the
OAuth 2.0 client credentials grant type.
Shall be present if it has not been provisioned out of band.
The clientId and clientPassword passed in a subscription shall
not be the same as the clientId and clientPassword that are used
to obtain authorization for API requests. Client credentials may
differ between subscriptions. The value of clientPassword should
be generated by a random process.
Shall be present if it has not been provisioned out of band. See note.
type: string
clientPassword:
description: >
Client password to be used in the access token request of the
OAuth 2.0 client credentials grant type.
Shall be present if it has not been provisioned out of band.
The clientId and clientPassword passed in a subscription shall
not be the same as the clientId and clientPassword that are used
to obtain authorization for API requests. Client credentials may
differ between subscriptions. The value of clientPassword should
be generated by a random process.
Shall be present if it has not been provisioned out of band. See note.
type: string
tokenEndpoint:
description: >
The token endpoint from which the access token can be obtained.
Shall be present if it has not been provisioned out of band.
$ref: "#/definitions/Uri"
Uri:
LcmCoordResultType:
description: >
String formatted according to IETF RFC 3986.
The enumeration LcmCoordResultType defines the permitted values
to represent the result of executing an LCM coordination action.
The coordination result also implies the action to be performed by
the VNFM as the follow-up to this coordination.
Value | Description
------|------------
CONTINUE | The related LCM operation shall be continued, staying in the state "PROCESSING".
ABORT | The related LCM operation shall be aborted by transitioning into the state "FAILED_TEMP".
CANCELLED | The coordination action has been cancelled upon request of the API consumer, i.e. the VNFM.
The related LCM operation shall be aborted by transitioning into the state "FAILED_TEMP".
type: string
enum:
- CONTINUE
- ABORT
- CANCELLED
VimConnectionInfo:
description: >
This type represents parameters to connect to a VIM for managing the
resources of a VNF instance.
This structure is used to convey VIM-related parameters over the Or-Vnfm
interface. Additional parameters for a VIM may be configured into the
VNFM by means outside the scope of the present document, and bound to
the identifier of that VIM.
type: object
required:
- id
- vimType
properties:
id:
description: >
The identifier of the VIM Connection. This identifier is managed by
the NFVO.
$ref: "#/definitions/Identifier"
vimId:
description: >
The identifier of the VIM instance. This identifier is managed by
the NFVO.
Shall be present to address additional information about the VIM if
such information has been configured into the VNFM by means outside
the scope of the present document, and should be absent otherwise.
$ref: "#/definitions/Identifier"
vimType:
description: >
Discriminator for the different types of the VIM information. The
value of this attribute determines the structure of the
"interfaceInfo" and "accessInfo" attributes, based on the type of the
VIM. The set of permitted values is expected to change over time as
new types or versions of VIMs become available.
The ETSI NFV registry of VIM-related information provides access to
information about VimConnectionInfo definitions for various VIM
types. The structure of the registry is defined in Annex C of SOL003.
type: string
interfaceInfo:
description: >
Information about the interface or interfaces to the VIM, if
applicable, such as the URI of an interface endpoint to
communicate with the VIM. The applicable keys are dependent on the
content of vimType.
Alternatively, such information may have been configured into the
VNFM and bound to the vimId.
$ref: "#/definitions/KeyValuePairs"
accessInfo:
description: >
Authentication credentials for accessing the VIM, and other
access-related information such as tenants or infrastructure
resource groups (see note). The applicable keys are dependent on the
content of vimType.
If the VimConnectionInfo structure is part of an HTTP response
payload body, sensitive attributes that are children of this attributes
(such as passwords) shall not be included.
If the VimConnectionInfo structure is part of an HTTP request payload
body, sensitive attributes that are children of this attribute (such
as passwords) shall be present if they have not been provisioned out
of band.
$ref: "#/definitions/KeyValuePairs"
extra:
description: >
VIM type specific additional information. The applicable structure,
and whether or not this attribute is available, is dependent on the
content of vimType.
$ref: "#/definitions/KeyValuePairs"
VnfExtCpConfig:
description: >
This type represents an externally provided link port or network address
information per instance of an external connection point. In case a link
port is provided, the VNFM shall use that link port when connecting the
external CP to the external VL. In a link port is not provided, the VNFM
shall create a link port on the external VL, and use that link port to
connect the external CP to the external VL.
type: object
properties:
cpInstanceId:
description: >
Identifier of the external CP instance to which this set of
configuration parameters is requested to be applied.
Shall be present if this instance has already been created.
$ref: "#/definitions/IdentifierInVnf"
linkPortId:
description: >
Identifier of a pre-configured link port to which the external CP
will be associated.
The following conditions apply to the attributes "linkPortId" and
"cpProtocolData":
* The "linkPortId" and "cpProtocolData" attributes shall both be
absent for the deletion of an existing external CP instance
addressed by cpInstanceId.
* At least one of these attributes shall be present for a
to-be-created external CP instance or an existing external
CP instance.
* If the "linkPortId" attribute is absent, the VNFM shall create a
link port.
* If the "cpProtocolData" attribute is absent, the "linkPortId"
attribute shall be provided referencing a pre-created link port,
and the VNFM can use means outside the scope of the present
document to obtain the pre-configured address information for the
connection point from the resource representing the link port.
* If both "cpProtocolData" and "linkportId" are provided, the API
consumer shall ensure that the cpProtocolData can be used with the
pre-created link port referenced by "linkPortId".
$ref: "#/definitions/Identifier"
cpProtocolData:
description: >
Parameters for configuring the network protocols on the link port
that connects the CP to a VL.
The following conditions apply to the attributes "linkPortId" and
"cpProtocolData":
* The "linkPortId" and "cpProtocolData" attributes shall both be
absent for the deletion of an existing external CP instance
addressed by cpInstanceId.
* At least one of these attributes shall be present for a
to-be-created external CP instance or an existing external
CP instance.
* If the "linkPortId" attribute is absent, the VNFM shall create a
link port.
* If the "cpProtocolData" attribute is absent, the "linkPortId"
attribute shall be provided referencing a pre-created link port,
and the VNFM can use means outside the scope of the present
document to obtain the pre-configured address information for the
connection point from the resource representing the link port.
* If both "cpProtocolData" and "linkportId" are provided, the API
consumer shall ensure that the cpProtocolData can be used with the
pre-created link port referenced by "linkPortId".
type: array
items:
$ref: "#/definitions/CpProtocolData"
VnfExtCpData:
description: >
This type represents configuration information for external CPs created
from a CPD.
type: object
required:
- cpdId
properties:
cpdId:
description: >
The identifier of the CPD in the VNFD.
$ref: "#/definitions/IdentifierInVnfd"
cpConfig:
description: >
List of instance data that need to be configured on the CP instances
created from the respective CPD.
type: array
items:
$ref: "#/definitions/VnfExtCpConfig"
VnfInstanceSubscriptionFilter:
description: >
This type represents subscription filter criteria to match VNF
instances.
type: object
properties:
vnfdIds:
description: >
If present, match VNF instances that were created based on a VNFD
identified by one of the vnfdId values listed in this attribute.
The attributes "vnfdIds" and "vnfProductsFromProviders" are
alternatives to reference to VNF instances that are based on certain
VNFDs in a filter. They should not be used both in the same filter
instance, but one alternative should be chosen.
type: array
items:
$ref: "#/definitions/Identifier"
vnfProductsFromProviders:
description: >
If present, match VNF instances that belong to VNF products from
certain providers.
The attributes "vnfdIds" and "vnfProductsFromProviders" are
alternatives to reference to VNF instances that are based on certain
VNFDs in a filter. They should not be used both in the same filter
instance, but one alternative should be chosen.
type: array
items:
type: object
required:
- vnfProvider
properties:
vnfProvider:
description: >
Name of the VNF provider to match.
type: string
vnfProducts:
description: >
If present, match VNF instances that belong to VNF products
with certain product names, from one particular provider.
type: array
items:
type: object
required:
- vnfProductName
properties:
vnfProductName:
description: >
Name of the VNF product to match.
type: string
versions:
description: >
If present, match VNF instances that belong to VNF
products with certain versions and a certain product
name, from one particular provider.
type: array
items:
type: object
required:
- vnfSoftwareVersion
properties:
vnfSoftwareVersion:
description: >
Software version to match.
$ref: "#/definitions/Version"
vnfdVersions:
description: >
If present, match VNF instances that belong to VNF
products with certain VNFD versions, a certain
software version and a certain product name, from
one particular provider.
type: array
items:
$ref: "#/definitions/Version"
vnfInstanceIds:
description: >
If present, match VNF instances with an instance identifier listed
in this attribute.
The attributes "vnfInstanceIds" and "vnfInstanceNames" are
alternatives to reference to particular VNF Instances in a filter.
They should not be used both in the same filter instance, but one
alternative should be chosen.
type: array
items:
$ref: "#/definitions/Identifier"
vnfInstanceNames:
description: >
If present, match VNF instances with a VNF Instance Name listed in
this attribute.
The attributes "vnfInstanceIds" and "vnfInstanceNames" are
alternatives to reference to particular VNF Instances in a filter.
They should not be used both in the same filter instance, but one
alternative should be chosen.
type: array
items:
type: string
ApiVersionInformation:
LcmOperationForCoordType:
description: >
This type represents API version information. It shall comply with the
provisions defined in table 4.4.1.13-1 (SOL003).
type: object
required:
- uriPrefix
- apiVersions
properties:
uriPrefix:
description: >
Specifies the URI prefix for the API, in the following
form {apiRoot}/{apiName}/{apiMajorVersion}/
type: string
apiVersions:
description: >
Version(s) supported for the API signaled by the
uriPrefix attribute.
type: array
items:
type: object
required:
- version
properties:
version:
description: >
Identifies a supported version. The value of the
version attribute shall be a version identifier as
specified in clause 4.6.1.
type: string
isDeprecated:
description: >
If such information is available, this attribute
indicates whether use of the version signaled by the
version attribute is deprecated (true) or not (false).
A deprecated version is still supported by the API producer
but is recommended not to be used any longer.
When a version is no longer supported, it does not appear in
the response body.
type: boolean
retirementDate:
description: >
The date and time after which the API version will no
longer be supported.
This attribute may be included if the value of the
isDeprecated attribute is set to true and shall be
absent otherwise.
$ref: "#/definitions/DateTime"
The enumeration LcmOperationForCoordType defines the permitted values to
represent VNF lifecycle operation types in VNF LCM operation coordination actions.
* INSTANTIATE: Represents the "Instantiate VNF" LCM operation.
* SCALE: Represents the "Scale VNF" LCM operation.
* SCALE_TO_LEVEL: Represents the "Scale VNF to Level" LCM operation.
* CHANGE_FLAVOUR: Represents the "Change VNF Flavour" LCM operation.
* TERMINATE: Represents the "Terminate VNF" LCM operation.
* HEAL: Represents the "Heal VNF" LCM operation.
* OPERATE: Represents the "Operate VNF" LCM operation.
* CHANGE_EXT_CONN: Represents the "Change external VNF connectivity" LCM operation.
* MODIFY_INFO: Represents the "Modify VNF Information" LCM operation.
* CREATE_SNAPSHOT: Represents the "Create VNF Snapshot" LCM operation.
* REVERT_TO_SNAPSHOT: Represents the "Revert To VNF Snapshot" LCM operation.
* CHANGE_VNFPKG: Represents the "Change current VNF package" LCM operation.
type: string
enum:
- INSTANTIATE
- SCALE
- SCALE_TO_LEVEL
- CHANGE_FLAVOUR
- TERMINATE
- HEAL
- OPERATE
- CHANGE_EXT_CONN
- MODIFY_INFO
- CREATE_SNAPSHOT
- REVERT_TO_SNAPSHOT
- CHANGE_VNFPKG
\ No newline at end of file
swagger: "2.0"
openapi: 3.0.2
info:
version: "1.2.0"
title: "SOL002 - VNF Configuration interface"
description: >
title: SOL002 - VNF Configuration interface
description: |
SOL002 - VNF Configuration 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
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
contact:
name: "NFV-SOL WG"
version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 002 V2.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
basePath: /vnfconfig/v1
schemes:
- http
- https
consumes:
- application/json
produces:
- application/json
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/vnfconfig/v1
- url: https://127.0.0.1/vnfconfig/v1
paths:
###############################################################################
# API Versions #
###############################################################################
'/api-versions':
/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
/configuration:
parameters:
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
get:
summary: Retrieve API version information
description: >
The GET method reads API version information. This method shall follow the provisions specified in
table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not
supported.
parameters:
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: false
type: string
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:
description: >
API version information was read successfully.
The response body shall contain 4.4 API version
information, as defined in clause 4.4.1.13.
schema:
$ref: '../../definitions/SOL002SOL003_def.yaml#/definitions/ApiVersionInformation'
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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' }
413: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/413' }
414: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/414' }
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
429: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/429' }
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
504: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/504' }
"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
###############################################################################
# VNF Configuration #
###############################################################################
'/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.
parameters:
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: false
type: string
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:
"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
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
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: >
OK
Configuration information about a VNF instance was read successfully.
The response body shall contain a representation of the configuration resource.
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:
$ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfiguration'
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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' }
413: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/413' }
414: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/414' }
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
429: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/429' }
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
504: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/504' }
patch:
summary: Modify VNF/VNFC configuration.
description: This method sets or modifies a configuration resource.
parameters:
- name: configModifications
type: string
Last-Modified:
description: >
The parameter for the configuration modification, as defined in
clause 9.5.2.2.
required: true
in: body
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:
$ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
- name: Version
type: string
ETag:
description: >
Version of the API requested to use when responding to this request.
in: header
required: false
type: string
responses:
200:
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: >
OK
The request was accepted and completed. The response body shall contain the parameters
of the configuration modification that was applied to the configuration resource.
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/VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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' }
413: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/413' }
414: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/414' }
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
429: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/429' }
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
504: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/504' }
\ No newline at end of file
$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,35 +10,40 @@ 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'
......@@ -65,33 +53,50 @@ definitions:
as "deleteIdList" as defined below this table.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$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
......@@ -99,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: >
......@@ -128,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: >
......@@ -146,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: >
......@@ -155,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.
......@@ -168,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: >
Conflict
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"
swagger: "2.0"
info:
version: "1.2.0"
title: SOL002 - VNF Configuration interface
description: >
VNF Configuration interface of ETSI NFV SOL002
openapi: 3.0.2
info:
title: SOL002 - VNF Fault Management interface
description: |
SOL002 - VNF Fault Management 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
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=---
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.5.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 002 V2.4.1
url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf
basePath: /vnffm/v1
schemes:
- http
- https
consumes:
- application/json
produces:
- application/json
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/vnffm/v1
- url: https://127.0.0.1/vnffm/v1
paths:
###############################################################################
# API Versions #
###############################################################################
'/api-versions':
get:
summary: Retrieve API version information
description: >
The GET method reads API version information. This method shall follow the provisions specified in
table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not
supported.
parameters:
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: false
type: string
responses:
200:
description: >
API version information was read successfully.
The response body shall contain 4.4 API version
information, as defined in clause 4.4.1.13.
schema:
$ref: '../../definitions/SOL002SOL003_def.yaml#/definitions/ApiVersionInformation'
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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' }
413: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/413' }
414: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/414' }
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
429: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/429' }
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
504: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/504' }
###############################################################################
# Alarms #
###############################################################################
'/alarms':
#SOL003 location: 7.4.2
/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
/alarms:
parameters:
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: false
type: string
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
get:
description: >
The client can use this method to retrieve information about the alarm
list.
description: |
The API consumer can use this method to retrieve information about the alarm list. See clause 7.4.2.3.2.
parameters:
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
- name: filter
description: >
Attribute-based filtering expression according to clause 4.3.2.
The VNFM shall support receiving this parameter as part of the URI query string.
The EM may supply this parameter. The VNF may supply its instance Id as an attribute filter.
The following attribute names shall be supported in the filter expression: id, managedObjectId,
vnfcInstanceIds, rootCauseFaultyResource.faultyResourceType, eventType, perceivedSeverity, probableCause.
If the vnfcInstanceIds parameter is provided, exactly one value for the managedObjectId attribute
shall be provided.
EXAMPLE
objects
obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
Request 1:
GET …/container
Response 1:
[
{"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
{"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
]
Request 2:
GET …/container?filter=(eq.weight,100)
Response 2:
[
{"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
]
#Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
in: query
required: false
type: string
- name: nextpage_opaque_marker
description: >
Marker to obtain the next page of a paged response.
Shall be supported by the VNFM if the VNFM supports alternative 2
(paging) according to clause 4.7.2.1 for this resource.
in: query
required: false
type: string
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
- $ref: '#/components/parameters/filter_alarms'
- $ref: ../../components/SOL002_params.yaml#/components/parameters/nextpage_opaque_marker_vnfm
responses:
200:
description: >
OK
Information about zero or more alarms was queried successfully.
The response body shall contain in an array the representations of zero or more alarms
as defined in clause 7.5.2.4.
If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource,
inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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.
type: string
maximum: 1
minimum: 0
schema:
$ref: "./definitions/VNFFaultManagement_def.yaml#/definitions/Alarm"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Individual alarm #
###############################################################################
'/alarms/{alarmId}':
#SOL003 location: 7.4.3
"200":
$ref: '#/components/responses/Alarms.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
"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
/alarms/{alarmId}:
parameters:
- name: alarmId
description: >
Identifier of the alarm.
This identifier can be retrieved from the "id" attribute of the
"alarm" attribute in the AlarmNotification or
AlarmClearedNotification. It can also be retrieved from the "id"
attribute of the applicable array element in the payload body of the
response to a GET request to the "Alarms" resource.
in: path
type: string
required: true
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: false
type: string
- $ref: '#/components/parameters/AlarmId'
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
get:
description: >
The client can use this method to read an individual alarm.
description: |
The API consumer can use this method to read an individual alarm. See clause 7.4.3.3.2.
parameters:
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
responses:
200:
description: >
OK
Information about an individual alarm was read successfully.
The response body shall contain a representation of the individual
alarm.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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.
type: string
maximum: 1
minimum: 0
schema:
$ref: "./definitions/VNFFaultManagement_def.yaml#/definitions/Alarm"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
"200":
$ref: '#/components/responses/IndividualAlarm.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
"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
patch:
description: >
This method modifies an individual alarm resource.
description: |
This method modifies an individual alarm resource. See clause 7.4.3.3.4.
parameters:
- name: AlarmModifications
description: The VNF creation parameters
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications"
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
- $ref: ../../components/SOL002_params.yaml#/components/parameters/If-Unmodified-Since
- $ref: ../../components/SOL002_params.yaml#/components/parameters/If-Match
requestBody:
$ref: '#/components/requestBodies/IndividualAlarmRequest'
responses:
200:
description: >
OK
The request was accepted and completed. The response body shall
contain attribute modifications for an ‘Individual alarm’
resource.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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.
type: string
maximum: 1
minimum: 0
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
409:
$ref: "responses/VNFFaultManagement_resp.yaml#/responses/409-alarm-state-conflict"
412:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Escalate Perceived Severity task #
###############################################################################
'/alarms/{alarmId}/escalate':
#SOL002 location: 7.4.4
"200":
$ref: '#/components/responses/IndividualAlarm.Patch.200'
"409":
$ref: '#/components/responses/IndividualAlarm.Patch.409'
"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
/alarms/{alarmId}/escalate:
parameters:
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: false
type: string
- $ref: '#/components/parameters/AlarmId'
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
post:
description: >
The POST method enables the consumer to escalate the perceived severity
of an alarm that is represented by an ndividual alarm resource.
parameters:
- name: alarmId
description: >
Identifier of the alarm.
This identifier can be retrieved from the "id" attribute of the
"alarm" attribute in the AlarmNotification or
AlarmClearedNotification. It can also be retrieved from the "id"
attribute of the applicable array element in the payload body of the
response to a GET request to the "Alarms" resource.
in: path
type: string
required: true
- name: PerceivedSeverityRequest
description: The proposed "escalated perceived severity" value
in: body
schema:
$ref: "./definitions/VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityRequest"
description: |
The POST method enables the API consumer to escalate the perceived severity of an alarm that is represented
by an individual alarm resource. See clause 7.4.4.3.1.
requestBody:
$ref: '#/components/requestBodies/IndividualAlarmEscalateRequest'
responses:
200:
description: >
OK
The VNFM has received the proposed "escalated perceived severity" value
successfully. The response body shall be empty.
headers:
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
412:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Subscriptions #
###############################################################################
'/subscriptions':
#SOL003 location: 7.4.4
"204":
$ref: '#/components/responses/IndividualAlarmEscalate.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
"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
"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
/subscriptions:
parameters:
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: false
type: string
- $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 retrieve the list of active subscriptions for VNF alarms subscribed
by the API consumer. It can be used e.g. for resynchronization after error situations. See clause 7.4.5.3.2.
parameters:
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
- $ref: '#/components/parameters/filter_subscriptions'
- $ref: ../../components/SOL002_params.yaml#/components/parameters/nextpage_opaque_marker_vnfm
responses:
"200":
$ref: '#/components/responses/Subscriptions.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
"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
post:
description: >
The POST method creates a new subscription.
description: |
The POST method creates a new subscription. See clause 7.4.5.3.1.
parameters:
- name: FmSubscriptionRequest
description: The VNF creation parameters
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscriptionRequest"
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/FmSubscriptionRequest'
responses:
201:
description: >
Created
The subscription was created successfully. The response body shall
contain a representation of the created subscription resource.
The HTTP response shall include a "Location:" HTTP header that
points to the created subscription resource.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
Location:
description: >
The resource URI of the created subscription resource.
type: string
format: url
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.
type: string
maximum: 1
minimum: 0
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
"201":
$ref: '#/components/responses/Subscriptions.Post.201'
"303":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/303
"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
"416":
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416
"422":
$ref: '#/components/responses/Subscriptions.Post.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
/subscriptions/{subscriptionId}:
parameters:
- $ref: '#/components/parameters/SubscriptionId'
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
get:
description: >
The client can use this method to retrieve the list of active
subscriptions for VNF alarms subscribed by the client. It can be used
e.g. for resynchronization after error situations.
description: |
The API consumer can use this method for reading an individual subscription for VNF alarms subscribed
by the API consumer. See clause 7.4.6.3.2.
parameters:
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
- name: filter
description: >
Attribute-based filtering expression according to clause 4.3.2.
The VNFM shall support receiving this parameter as part of the URI query string.
The EM may supply this parameter. The VNF may supply its instance Id as an attribute filter.
All attribute names that appear in the FmSubscription and in data types referenced from it
shall be supported by the VNFM in the filter expression.
EXAMPLE
objects
obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
Request 1:
GET …/container
Response 1:
[
{"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
{"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
]
Request 2:
GET …/container?filter=(eq.weight,100)
Response 2:
[
{"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
]
#Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
in: query
required: false
type: string
- name: nextpage_opaque_marker
description: >
Marker to obtain the next page of a paged response.
Shall be supported by the VNFM if the VNFM supports alternative 2
(paging) according to clause 4.7.2.1 for this resource.
in: query
required: false
type: string
- $ref: ../../components/SOL002_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
responses:
200:
description: >
OK
The list of subscriptions was queried successfully. The response
body shall contain the representations of all active
subscriptions of the functional block that invokes the method.
If the VNFM supports alternative 2 (paging) according to clause
4.7.2.1 for this resource, inclusion of the Link HTTP header in this
response shall follow the provisions in clause 4.7.2.3.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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.
type: string
maximum: 1
minimum: 0
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
412:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Individual subscription #
###############################################################################
'/subscriptions/{subscriptionId}':
#SOL003 location: 7.4.5
parameters:
- name: subscriptionId
description: >
Identifier of this subscription.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request creating a
new subscription resource. It can also be retrieved from the "id"
attribute in the payload body of that response.
in: path
type: string
required: true
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: false
"200":
$ref: '#/components/responses/IndividualSubscription.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
"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
delete:
description: |
This method terminates an individual subscription. See clause 7.4.6.3.5.
responses:
"204":
$ref: '#/components/responses/IndividualSubscription.Delete.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
"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
"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
components:
parameters:
filter_subscriptions:
name: filter
description: >
Attribute-based filtering expression according to clause 5.2 of ETSI
GS NFV-SOL 013 [6].
The VNFM shall support receiving this parameter as part of the URI query
string. The EM may supply this parameter. The VNF may supply its instance
Id as an attribute filter.
All attribute names that appear in the FmSubscription and in data types
referenced from it shall be supported by the VNFM in the filter expression
in: query
required: false
schema:
type: string
get:
filter_alarms:
name: filter
description: >
The client can use this method for reading an individual subscription
for VNF alarms subscribed by the client.
parameters:
- name: Accept
Attribute-based filtering expression according to clause 5.2 of ETSI
GS NFV-SOL 013 [6].
The VNFM shall support receiving this parameter as part of the URI query string. The
EM may supply this parameter. The VNF may supply its instance Id as an attribute
filter.
The following attribute names shall be supported in the filter expression: id,
managedObjectId, vnfcInstanceIds, rootCauseFaultyResource.faultyResourceType,
eventType, perceivedSeverity, probableCause. If the vnfcInstanceIds parameter is
provided, exactly one value for the managedObjectId attribute shall be provided.
in: query
required: false
schema:
type: string
AlarmId:
name: alarmId
in: path
description: |
Identifier of the alarm. This identifier can be retrieved from the "id" attribute of the "alarm" attribute
in the AlarmNotification or AlarmClearedNotification. It can also be retrieved from the "id" attribute of
the applicable array element in the message content of the response to a GET request to the "Alarms" resource.
required: true
style: simple
explode: false
schema:
type: string
SubscriptionId:
name: subscriptionId
in: path
description: |
Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location"
HTTP header in the response to a POST request creating a new subscription resource. It can also be retrieved
from the "id" attribute in the message content of that response.
required: true
style: simple
explode: false
schema:
type: string
requestBodies:
IndividualAlarmRequest:
description: The parameter for the alarm modification
content:
application/json:
schema:
$ref: definitions/SOL002VNFFaultManagement_def.yaml#/definitions/AlarmModifications
required: true
IndividualAlarmEscalateRequest:
description: The proposed "escalated perceived severity" value
content:
application/json:
schema:
$ref: ./definitions/SOL002VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityRequest
required: false
FmSubscriptionRequest:
description: The VNF creation parameters
content:
application/json:
schema:
$ref: definitions/SOL002VNFFaultManagement_def.yaml#/definitions/FmSubscriptionRequest
required: true
responses:
Alarms.Get.200:
description: |
200 OK
Shall be returned when information about zero or more alarms was queried successfully. The response body shall
contain in an array the representations of zero or more alarms as defined in clause 7.5.2.4. If the "filter"
URI parameter was supplied in the request, the data in the response body shall have been transformed according
to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. If the VNFM supports alternative 2 (paging)
according to clause 5.4.2.1 of ETSI GS NFV-SOL 013for this resource, inclusion of the Link HTTP header in this
response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
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
Link:
description: |
Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
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
content:
application/json:
schema:
$ref: ./definitions/SOL002VNFFaultManagement_def.yaml#/definitions/Alarm
IndividualAlarm.Get.200:
description: |
200 OK
Shall be returned when information about an individual alarm read successfully. The response body shall contain
a representation of the individual alarm.
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: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Content-Type
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: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
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/SOL002VNFFaultManagement_def.yaml#/definitions/Alarm
IndividualAlarm.Patch.200:
description: |
200 OK
Shall be returned when the request was accepted and completed. The response body shall contain attribute
modifications for an "Individual alarm" 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: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
responses:
200:
description: >
OK
The operation has completed successfully.
The response body shall contain a representation of the
subscription resource.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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.
type: string
maximum: 1
minimum: 0
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
delete:
description: >
This method terminates an individual subscription.
parameters:
- name: Authorization
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: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
responses:
204:
description: >
No Content
The subscription resource was deleted successfully.
The response body shall be empty.
headers:
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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.
type: string
maximum: 1
minimum: 0
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
\ No newline at end of file
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/SOL002VNFFaultManagement_def.yaml#/definitions/AlarmModifications
IndividualAlarm.Patch.409:
description: |
409 CONFLICT
Shall be returned upon the following error: The
operation cannot be executed currently, due to a
conflict with the state of the "Individual alarm"
resource.
Typically, this is due to the fact that the alarm is
already in the state that is requested to be set (such
as trying to acknowledge an already-acknowledged
alarm).
The response body shall contain a ProblemDetails
structure, in which the "detail" attribute shall convey
more information about the error.
headers:
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
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. Reference: IETF RFC 7231
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "../General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"
IndividualAlarmEscalate.Post.204:
description: |
204 No Content
Shall be returned when the VNFM has received the proposed "escalated perceived severity" value successfully.
The response body shall be empty.
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
content: {}
Subscriptions.Get.200:
description: |
200 OK
Shall be returned when the list of subscriptions has been queried successfully.
The response body shall contain the representations of all active subscriptions of the functional block that
invokes the method. If the "filter" URI parameter was supplied in the request, the data in the response body
shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013.
If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource,
inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of
ETSI GS NFV-SOL 013.
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
Link:
description: |
Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
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
content:
application/json:
schema:
$ref: definitions/SOL002VNFFaultManagement_def.yaml#/definitions/FmSubscription
Subscriptions.Post.201:
description: |
201 CREATED
The subscription was created successfully. The response body shall contain a representation of the created
subscription resource. The HTTP response shall include a "Location:" HTTP header that points to the created
subscription 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
Location:
description: |
The resource URI of the created subscription resource.
style: simple
explode: false
schema:
type: string
format: url
content:
application/json:
schema:
$ref: definitions/SOL002VNFFaultManagement_def.yaml#/definitions/FmSubscription
Subscriptions.Post.422:
description: |
422 Unprocessable Content
Shall be returned upon the following error: The content type of the message content is supported
and the message content of a request contains syntactically correct data but the data cannot be processed.
The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013 [6],
including rules for the presence of the response body.
Specifically in case of this resource, the response code 422 shall also be returned if the VNFM has tested
the Notification endpoint as described in clause 7.4.7.3.2 and the test has failed.
In this case, the "detail" attribute in the "ProblemDetails" structure shall convey more information
about the error.
headers:
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
Version:
description: Version of the API used in the response.
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "../General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"
IndividualSubscription.Get.200:
description: |
200 OK
Shall be returned when information about an individual subscription has been read successfully.
The response body shall contain a representation of the "Individual subscription" 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
content:
application/json:
schema:
$ref: definitions/SOL002VNFFaultManagement_def.yaml#/definitions/FmSubscription
IndividualSubscription.Delete.204:
description: |
204 NO CONTENT
Shall be returned when the "Individual subscription" resource has been deleted successfully.
The response body shall be empty.
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: {}
\ No newline at end of file
# 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
# 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.
type: object
required:
- id
- managedObjectId
- rootCauseFaultyResource
- alarmRaisedTime
- ackState
- perceivedSeverity
- eventTime
- eventType
- probableCause
- isRootCause
- _links
properties:
id:
description: >
Identifier of this Alarm information element.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
managedObjectId:
description: >
Identifier of the affected VNF instance.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
rootCauseFaultyResource:
description: >
The virtualised resources that are causing the VNF fault.
$ref: "../../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FaultyResourceInfo"
alarmRaisedTime:
description: >
Time stamp indicating when the alarm is raised by the managed
object.
$ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityType"
type: string
eventTime:
description: >
Time stamp indicating when the fault was observed.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
eventType:
#description: >
# Type of event.
# todo: Fix
#$ref: "../../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/EventType"
type: string
faultType:
description: >
Additional information to clarify the type of the fault.
type: string
probableCause:
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
_links:
description: >
Links for this resource.
type: object
required:
- self
properties:
self:
#description: >
# URI of this resource.
$ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
PerceivedSeverityRequest:
type: string
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
responses:
409-alarm-state-conflict:
description: >
Conflict
The operation cannot be executed currently, due to a conflict with the
state of the "Individual alarm" resource.
Typically, this is due to the fact that the alarm is already in the
state that is requested to be set (such as trying to acknowledge an
already-acknowledged alarm).
The response body shall contain a ProblemDetails structure, in which the
"detail" attribute should convey more information about the error.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
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.
type: string
maximum: 1
minimum: 0
schema:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
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
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
AlarmNotification:
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.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- alarm
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"AlarmNotification" for this notification type.
type: string
enum:
- AlarmNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
alarm:
description: >
Information about an alarm including AlarmId, affected VNF
identifier, and FaultDetails.
$ref: "../../VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml#/definitions/Alarm"
_links:
description: >
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: >
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: >
Discriminator for the different notification types. Shall be set to
"AlarmClearedNotification" for this notification type.
type: string
enum:
- AlarmClearedNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
alarmId:
description: >
Alarm identifier.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
alarmClearedTime:
description: >
The time stamp indicating when the alarm was cleared.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
- alarm
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/NotificationLink"
alarm:
description: >
Link to the resource that represents the related alarm.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/NotificationLink"
AlarmListRebuiltNotification:
description: >
This type represents a notification that the alarm list has been
rebuilt, e.g. if the VNFM detects its storage holding the alarm
list is corrupted.
The notification shall be triggered by the VNFM when the alarm list has
been rebuilt, e.g. because the VNFM has detected that its storage
holding the alarm list was corrupted.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"AlarmListRebuiltNotification" for this notification type.
type: string
enum:
- AlarmListRebuiltNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL002_def.yaml#/definitions/DateTime"
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
- alarms
properties:
subscription:
description: >
Link to the related subscription.
$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