Commit e3eec91b authored by admin_forge's avatar admin_forge
Browse files

Merge branch '2.7.1-dev' into 'master'

SOL002 and SOL003 OpenAPI representations for v2.7.1

See merge request !14
parents 5b48a59a 691a9cb7
Pipeline #5606 passed with stage
in 0 seconds
# 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](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_NFV-SOL002v020601p.pdf) and [SOL003](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf).
for the APIs defined in ETSI NFV GSs [SOL002](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_NFV-SOL002v020701p.pdf) and [SOL003](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_nfv-sol003v020701p.pdf).
The APIs described in this repository are defined for the following reference points:
......
swagger: "2.0"
info:
version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
version: "1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
title: SOL002 - API version interface
description: >
SOL002 - API version Interface
......@@ -17,8 +17,8 @@ info:
name: NFV-SOL WG
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
description: ETSI GS NFV-SOL 002 V2.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf
schemes:
- http
......@@ -34,17 +34,17 @@ paths:
###############################################################################
# API Versions #
###############################################################################
'/vnfconfig/api-versions':
'/vnfconfig/api_versions':
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
'/vnffm/api-versions':
'/vnffm/api_versions':
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
'/vnfind/api-versions':
'/vnfind/api_versions':
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
'/vnflcm/api-versions':
'/vnflcm/api_versions':
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
'/vnfpm/api-versions':
'/vnfpm/api_versions':
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
\ No newline at end of file
......@@ -17,8 +17,8 @@ info:
name: NFV-SOL WG
externalDocs:
description: ETSI GS NFV-SOL 002 V2.6.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf
description: ETSI GS NFV-SOL 002 V2.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf
basePath: /vnfconfig/v1
......@@ -36,7 +36,7 @@ paths:
###############################################################################
# API Versions #
###############################################################################
'/api-versions':
'/api_versions':
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
###############################################################################
......@@ -102,8 +102,6 @@ paths:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
429:
......@@ -160,16 +158,16 @@ paths:
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
412:
description: >
412 PRECONDITION FAILED
Shall be returned upon the following error: A precondition given
in an HTTP request header is not fulfilled.
Typically, this is due to an ETag mismatch, indicating that the resource
was modified by another entity. The response body should contain a
ProblemDetails structure, in which the "detail" attribute should convey
more information about the error.
# description: >
# 412 PRECONDITION FAILED
# Shall be returned upon the following error: A precondition given
# in an HTTP request header is not fulfilled.
# Typically, this is due to an ETag mismatch, indicating that the resource
# was modified by another entity. The response body should contain a
# ProblemDetails structure, in which the "detail" attribute should convey
# more information about the error.
# schema:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
......
......@@ -76,6 +76,8 @@ definitions:
extCpConfig:
description: >
Configuration parameters for the external CPs of the VNF instance.
type: array
items:
$ref: '#/definitions/CpConfiguration'
dhcpServer:
description: >
......@@ -99,9 +101,11 @@ definitions:
description: >
Identifier of a VNFC instance to which this set of configuration data applies.
$ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf'
extCpConfig:
intCpConfig:
description: >
Configuration parameters for the external CPs of the VNFC instance.
Configuration parameters for the internal CPs of the VNFC instance.
type: array
items:
$ref: '#/definitions/CpConfiguration'
dhcpServer:
description: >
......
swagger: "2.0"
info:
version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
title: SOL002 - VNF Fault Management interface
description: >
SOL002 - VNF Fault Management interface
......@@ -17,8 +17,8 @@ info:
name: NFV-SOL WG
externalDocs:
description: ETSI GS NFV-SOL 002 V2.6.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf
description: ETSI GS NFV-SOL 002 V2.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf
basePath: /vnffm/v1
......@@ -36,7 +36,7 @@ paths:
###############################################################################
# API Versions #
###############################################################################
'/api-versions':
'/api_versions':
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
###############################################################################
......@@ -186,7 +186,6 @@ paths:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# Individual alarm #
###############################################################################
......@@ -355,27 +354,29 @@ paths:
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
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.
# 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.
# schema:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
412:
description: >
412 PRECONDITION FAILED
ErrorShall be returned upon the following error: A precondition given in an
HTTP request header is not fulfilled.
Typically, this is due to an ETag mismatch, indicating that the resource was
modified by another entity.
The response body should contain a ProblemDetails structure, in which the
"detail" attribute should convey more information about the error.
# description: >
# 412 PRECONDITION FAILED
# ErrorShall be returned upon the following error: A precondition given in an
# HTTP request header is not fulfilled.
# Typically, this is due to an ETag mismatch, indicating that the resource was
# modified by another entity.
# The response body should contain a ProblemDetails structure, in which the
# "detail" attribute should convey more information about the error.
# schema:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
......@@ -389,7 +390,6 @@ paths:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# Escalate Perceived Severity task #
###############################################################################
......@@ -436,7 +436,7 @@ paths:
responses:
200:
description: >
200 OK
204 No Content
Shall be returned when the VNFM has received the proposed "escalated
perceived severity" value successfully. The response body shall be empty.
......@@ -470,7 +470,6 @@ paths:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# Subscriptions #
###############################################################################
......@@ -550,14 +549,15 @@ paths:
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
303:
description: >
303 SEE OTHER
A subscription with the same callbackURI and the same filter already exists and the policy of
the VNFM is to not create redundant subscriptions.
The HTTP response shall include a "Location" HTTP header that contains the resource URI of the
existing subscription resource.
The response body shall be empty.
# description: >
# 303 SEE OTHER
# A subscription with the same callbackURI and the same filter already exists and the policy of
# the VNFM is to not create redundant subscriptions.
# The HTTP response shall include a "Location" HTTP header that contains the resource URI of the
# existing subscription resource.
# The response body shall be empty.
# schema:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
......@@ -574,6 +574,23 @@ paths:
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
422:
# description: >
# 422 UNPROCESSABLE ENTITY
# Shall be returned upon the following error: The content
# type of the payload body is supported and the payload
# body 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
# schema:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
429:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
......@@ -711,7 +728,6 @@ paths:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# Individual subscription #
###############################################################################
......
......@@ -9,8 +9,6 @@ definitions:
required:
- id
- managedObjectId
- vnfcInstanceIds
- rootCauseFaultyResource
- alarmRaisedTime
- ackState
- perceivedSeverity
......@@ -53,6 +51,12 @@ definitions:
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"
alarmAcknowledgedTime:
description: >
Time stamp indicating when the alarm was
acknowledged. It shall be present if the alarm has
been acknowledged.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
ackState:
description: >
Acknowledgement state of the alarm.
......
swagger: "2.0"
info:
version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
title: SOL002 - VNF Fault Management Notification interface
description: >
SOL002 - VNF Fault Management Notification interface
......@@ -17,8 +17,8 @@ info:
name: NFV-SOL WG
externalDocs:
description: ETSI GS NFV-SOL 002 V2.6.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf
description: ETSI GS NFV-SOL 002 V2.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf
basePath: /callback/v1
......@@ -151,7 +151,6 @@ paths:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Notification endpoint AlarmClearedNotification #
###############################################################################
......@@ -270,7 +269,6 @@ paths:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Notification endpoint AlarmListRebuiltNotification #
###############################################################################
......
swagger: "2.0"
info:
version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1"
title: SOL002 - VNF Indicator interface
description: >
SOL002 - VNF Indicator interface
......@@ -17,8 +17,8 @@ info:
name: NFV-SOL WG
externalDocs:
description: ETSI GS NFV-SOL 002 V2.6.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf
description: ETSI GS NFV-SOL 002 V2.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf
basePath: /vnfind/v1
......@@ -36,7 +36,7 @@ paths:
###############################################################################
# API Versions #
###############################################################################
'/api-versions':
'/api_versions':
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
###############################################################################
......@@ -165,7 +165,6 @@ paths:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# VNF indicators related to a VNF instance #
###############################################################################
......@@ -305,7 +304,6 @@ paths:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# Individual VNF indicator #
###############################################################################
......@@ -393,25 +391,10 @@ paths:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# Subscriptions #
###############################################################################
/subscriptions:
parameters:
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
post:
summary: Create a new subscription to VNF indicator change notifications
description: >
......@@ -419,6 +402,15 @@ paths:
As the result of successfully executing this method, a new "Individual
subscription" resource as defined in clause 8.4.6 shall have been created.
This method shall not trigger any notification.
Creation of two "Individual subscription" resources with the same callbackURI and the same filter can result in
performance degradation and will provide duplicates of notifications to the VNFM, and might make sense only in very
rare use cases. Consequently, the API producer may either allow creating a new "Individual subscription" resource if
another "Individual subscription" resource with the same filter and callbackUri already exists (in which case it shall
return the "201 Created" response code), or may decide to not create a duplicate "Individual subscription" resource (in
which case it shall return a "303 See Other" response code referencing the existing "Individual subscription" resource
with the same filter and callbackUri).
This method shall follow the provisions specified in the tables 8.4.5.3.1-1 and 8.4.5.3.1-2 for URI query parameters,
request and response data structures, and response codes
parameters:
- name: vnfIndicatorSubscriptionRequest
in: body
......@@ -426,6 +418,33 @@ paths:
required: true
schema:
$ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscriptionRequest'
- 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: false
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
responses:
201:
description: >
......@@ -435,6 +454,8 @@ paths:
The response body shall contain a representation of the created
"Individual subscription" resource.
schema:
type: array
items:
$ref: '../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription'
headers:
Location:
......@@ -447,21 +468,30 @@ paths:
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
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
303:
description: >
303 SEE OTHER
Shall be returned when a subscription with the same callbackURI and
the same filter already exists and the policy of the VNFM is to not
create redundant subscriptions.
The HTTP response shall include a "Location" HTTP header that contains
the resource URI of the existing "Individual subscription" resource.
The response body shall be empty.
# description: >
# 303 SEE OTHER
# Shall be returned when a subscription with the same callbackURI and
# the same filter already exists and the policy of the VNFM is to not
# create redundant subscriptions.
# The HTTP response shall include a "Location" HTTP header that contains
# the resource URI of the existing "Individual subscription" resource.
# The response body shall be empty.
# schema:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
......@@ -600,7 +630,6 @@ paths:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# Individual Subscription #
###############################################################################
......
swagger: "2.0"
info:
version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1"
title: SOL002 - VNF Indicator Notification Endpoint interface
description: >
SOL002 - VNF Indicator Notification Endpoint interface
......@@ -17,8 +17,8 @@ info:
name: NFV-SOL WG
externalDocs:
description: ETSI GS NFV-SOL 002 V2.6.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_nfv-sol002v020601p.pdf
description: ETSI GS NFV-SOL 002 V2.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf
schemes:
- http
......
......@@ -15,6 +15,7 @@ definitions:
- vnfdVersion
- vnfPkgInfoId
- instantiationState
- _links
properties:
id:
description: >
......@@ -59,7 +60,7 @@ definitions:
description: >
Identifies the version of the VNFD. The value is copied from the VNFD.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version"
vnfPkgInfoId:
vnfPkgId:
description: >
Identifier of information held by the NFVO about the specific VNF
package on which the VNF is based. This identifier was allocated by the
......@@ -118,6 +119,7 @@ definitions:
- flavourId
- vnfState
- extCpInfo
- _links
properties:
flavourId:
description: >
......@@ -134,6 +136,13 @@ definitions:
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo"
maxScaleLevels:
description: >
Maximum allowed scale levels of the VNF, one entry per aspect.
This attribute shall be present if the VNF supports scaling.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo"
extCpInfo:
description: >
Information about the external CPs exposed by the VNF instance.
......@@ -342,6 +351,15 @@ definitions:
as defined in clause 5.5.2.2. If an entry with the same key exists in the VnfInstance data structure,
the VNFM shall replace its value with the value passed in the InstantiateVnfRequest data structure.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
vnfConfigurableProperties:
description: >
This parameter provides values for the VNF configurable
properties attribute in the "VnfInstance", as defined in
clause 5.5.2.2. If an entry with the same key exists in the
VnfInstance data structure, the VNFM shall replace its
value with the value passed in the InstantiateVnfRequest
data structure.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
ChangeVnfFlavourRequest:
description: >
......@@ -527,7 +545,7 @@ definitions:
"instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table.
type: array
items:
$ref: "#/definitions/VnfcInfoModifications"
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcInfoModifications"
vnfcInfoModificationsDeleteIds:
description: >
List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array
......