Commit a7ab4caf authored by Francesca Moscatelli's avatar Francesca Moscatelli
Browse files

Merge branch '2.5.1-dev' of https://forge.etsi.org/gitlab/nfv/SOL002-SOL003 into 2.5.1-dev

parents 7b6378f4 2a197e19
Pipeline #398 passed with stage
in 0 seconds
swagger: "2.0"
info:
version: "1.1.1"
title: SOL002 - VNF Configuration interface
info:
version: "1.1.0"
title: "SOL002 - VNF Configuration interface"
description: >
VNF Configuration interface of ETSI NFV SOL002
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. In case of
discrepancies the published ETSI Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=---
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
license:
name: "ETSI Forge copyright notice"
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: "NFV-SOL WG"
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
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:
schemes:
- http
- https
consumes:
consumes:
- application/json
produces:
produces:
- application/json
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.
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
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' }
###############################################################################
# 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.
responses:
200:
description: >
OK
Configuration information about a VNF instance was read successfully.
The response body shall contain a representation of the configuration resource.
schema:
$ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfiguration'
headers:
Content-Type:
description: The MIME type of the body of the response.
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
description: >
The parameter for the configuration modification, as defined in
clause 9.5.2.2.
required: true
in: body
schema:
$ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
responses:
200:
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.
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
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' }
/configuration:
get:
summary: Read VNF/VNFC configuration from VNF.
description: >
The client can use this method to read configuration information about a VNF instance and/or its VNFC instances.
responses:
200:
description: >
OK
Configuration information about a VNF instance was read successfully.
The response body shall contain a representation of the configuration resource.
schema:
$ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfiguration'
400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
409: { $ref: 'responses/VNFConfiguration_resp.yaml#/responses/409' }
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
patch:
summary: Modify VNF/VNFC configuration.
description: This method sets or modifies a configuration resource.
parameters:
- name: configModifications
description: The parameter for the configuration modification.
required: true
in: body
schema:
$ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
responses:
200:
description: >
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.
schema:
$ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
412: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/412' }
400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
409: { $ref: 'responses/VNFConfiguration_resp.yaml#/responses/409' }
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
......@@ -58,7 +58,7 @@ definitions:
are associated to an external CP of the VNF instance.
May be present for further affected CPs of the VNFC instance.
type: array
items:
items:
$ref: "#/definitions/IdentifierInVnf"
addedStorageResourceIds:
description: >
......@@ -67,7 +67,7 @@ definitions:
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:
items:
$ref: "#/definitions/IdentifierInVnf"
removedStorageResourceIds:
description: >
......@@ -78,21 +78,40 @@ definitions:
It shall be provided if at least one storage resource was removed
from the VNFC.
type: array
items:
items:
$ref: "#/definitions/IdentifierInVnf"
Link:
description: >
This type represents a link to a resource.
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
properties:
href:
description: >
URI of the referenced resource.
type: string
format: url
URI of another resource referenced from a resource.
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.
type: object
required:
- href
properties:
href:
description: >
URI of a resource referenced from a notification.
Should be an absolute URI (i.e. a URI that contains
{apiRoot}), however, may be a relative URI (i.e. a URI
where the {apiRoot} part is omitted) if the {apiRoot}
information is not available.
$ref: "#/definitions/Uri"
Version:
description: >
......@@ -117,9 +136,9 @@ definitions:
description: >
This type represents network protocol data.
type: object
required:
required:
- layerProtocol
properties:
properties:
layerProtocol:
description: >
Identifier of layer(s) and protocol(s).
......@@ -128,7 +147,7 @@ definitions:
backwards-compatible way. In the current version of the present
document, only IP over Ethernet is supported.
type: string
enum:
enum:
- IP_OVER_ETHERNET
ipOverEthernet:
description: >
......@@ -149,7 +168,7 @@ definitions:
This type represents an externally provided link port to be used to
connect an external connection point to an external VL.
type: object
required:
required:
- id
- resourceHandle
properties:
......@@ -207,8 +226,8 @@ definitions:
- id
- resourceId
- extCps
properties:
id:
properties:
id:
description: >
The identifier of the external VL instance. The identifier is
assigned by the NFV-MANO entity that manages this VL instance.
......@@ -219,7 +238,7 @@ definitions:
attribute shall only be supported and present if VNF-related
resource management in direct mode is applicable.
$ref: "#/definitions/Identifier"
resourceProviderId:
resourceProviderId:
description: >
Identifies the entity responsible for the management of this
resource. This attribute shall only be supported and present
......@@ -227,7 +246,7 @@ definitions:
The identification scheme is outside the scope of the present
document.
$ref: "#/definitions/Identifier"
resourceId:
resourceId:
description: >
The identifier of the resource in the scope of the VIM or the
resource provider.
......@@ -236,7 +255,7 @@ definitions:
description: >
External CPs of the VNF to be connected to this external VL.
type: array
items:
items:
$ref: "#/definitions/VnfExtCpData"
extLinkPorts:
description: >
......@@ -244,7 +263,7 @@ definitions:
connection points to this external VL. If this attribute is not
present, the VNFM shall create the link ports on the external VL.
type: array
items:
items:
$ref: "#/definitions/ExtLinkPortData"
Identifier:
......@@ -274,7 +293,7 @@ definitions:
This type represents network address data for IP over Ethernet.
type: object
properties:
macAddress:
macAddress:
description: >
MAC address. If this attribute is not present, it shall be chosen by
the VIM.
......@@ -289,9 +308,9 @@ definitions:
type: array
items:
type: object
required:
required:
- type
properties:
properties:
type:
description: >
The type of the IP addresses.
......@@ -307,7 +326,7 @@ definitions:
Exactly one of "fixedAddresses", "numDynamicAddresses" or
"ipAddressRange" shall be present.
type: array
items:
items:
$ref: "#/definitions/IpAddress"
numDynamicAddresses:
description: >
......@@ -326,7 +345,7 @@ definitions:
required:
- minAddress
- maxAddress
properties:
properties:
minAddress:
description: >
Lowest IP address belonging to the range.
......@@ -374,7 +393,7 @@ definitions:
- HEAL
- OPERATE
- CHANGE_EXT_CONN
- MODIFY_INFO
- MODIFY_INFO
ProblemDetails:
#SOL003 location: 4.3.5.3
......@@ -475,9 +494,9 @@ definitions:
SubscriptionAuthentication:
type: object
required:
required:
- authType
properties:
properties:
authType:
description: >
Defines the types of Authentication / Authorization which the API
......@@ -493,7 +512,7 @@ definitions:
server is authenticated, but also the client is authenticated
during the TLS tunnel setup.
type: array
items:
items:
type: string
enum:
- BASIC
......@@ -696,9 +715,9 @@ definitions:
This type represents configuration information for external CPs created
from a CPD.
type: object
required:
required:
- cpdId
properties:
properties:
cpdId:
description: >
The identifier of the CPD in the VNFD.
......@@ -751,7 +770,7 @@ definitions:
If present, match VNF instances that belong to VNF products
with certain product names, from one particular provider.
type: array
items:
items:
type: object
required:
- vnfProductName
......@@ -782,7 +801,7 @@ definitions:
software version and a certain product name, from
one particular provider.
type: array
items:
items:
$ref: "#/definitions/Version"
vnfInstanceIds:
description: >
......@@ -793,7 +812,7 @@ definitions:
They should not be used both in the same filter instance, but one
alternative should be chosen.
type: array
items:
items:
$ref: "#/definitions/Identifier"
vnfInstanceNames:
description: >
......@@ -804,5 +823,61 @@ definitions:
They should not be used both in the same filter instance, but one
alternative should be chosen.
type: array
items:
type: string
items:
type: string
ApiVersionInformation:
description: >
This type represents API version information. It shall comply with the
provisions defined in table 4.4.1.6-1.
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"
......@@ -61,22 +61,28 @@ responses:
Bad Request
If the request is malformed or syntactically incorrect (e.g. if the
request URI contains incorrect query parameters or a syntactically
incorrect payload body), the API producer shall respond with this
response code. The "ProblemDetails" structure shall be provided,
and should include in the "detail" attribute more information about
the source of the problem.
If the request contains a malformed access token, the API producer
should respond with this response. The details of the error shall
be returned in the WWW-Authenticate HTTP header, as defined in
IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be
provided.
If there is an application error related to the client's input that
cannot be easily mapped to any other HTTP response code ("catch all
error"), the API producer shall respond with this response code.The
"ProblemDetails" structure shall be provided, and shall include in
the "detail" attribute more information about the source of the
problem.
request URI contains incorrect query parameters or a payload body contains
a syntactically incorrect payload bodydata structure), the API producer
shall respond with this response code. The "ProblemDetails" structure
shall be provided, and should include in the "detail" attribute more
information about the source of the problem.
If the response to a GET request which queries a container resource
would be so big that the performance of the API producer is adversely
affected, and the API producer does not support paging for the
affected resource, it shall respond with this response code.
The "ProblemDetails" structure shall be provided, and should include
in the "detail" attribute more information about the source of the problem.
If there is an application error related to the client's input that cannot
be easily mapped to any other HTTP response code ("catch all error"),
the API producer shall respond with this response code. The
"ProblemDetails" structure shall be provided, and shall include
in the "detail" attribute more information about the source of
the problem.
If the request contains a malformed access token, the API Producer
should respond with this response. The details of the error shall be
returned in the WWW-Authenticate HTTP header, as defined in IETF
RFC 6750 and IETF RFC 7235. The ProblemDetails structure
may be provided.
headers:
Content-Type:
description: The MIME type of the body of the response.
......@@ -243,6 +249,12 @@ responses:
In this case, the response body shall be present, and shall contain a
ProblemDetails structure, in which the "detail" attribute shall convey
more information about the error.
This response code is not appropriate in case the resource addressed by
the URI is a container resource which is designed to contain child
resources, but does not contain any child resource at the time the request
is received. For a GET request to an existing empty container resource,
a typical response contains a 200 OK response code and a payload body
with an empty array
headers:
Content-Type:
description: The MIME type of the body of the response.
......@@ -364,7 +376,42 @@ responses:
maximum: 1
minimum: 1
schema:
$ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
$ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
413:
description: >
Payload Too Large
If the payload body of a request is larger than the amount of data
the API producer is willing or able to process, it shall respond with
this response code, following the provisions in IETF RFC 7231 for
the use of the "Retry-After" HTTP header and for closing the connection.
The "ProblemDetails" structure may be omitted
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"
414:
description: >
URI Too Long
If the request URI of a request is longer than the API producer is
willing or able to process, it shall respond with this response code.
This condition can e.g. be caused by passing long queries in the request
URI of a GET request. The "ProblemDetails" structure may be omitted
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string<