Commit 4ed27582 authored by rameshnaraya's avatar rameshnaraya

Merge Request issue.

Re committing VNFPM files.
parent 35f30f0a
Pipeline #163 passed with stage
in 0 seconds
......@@ -2,9 +2,9 @@ swagger: "2.0"
info:
version: "2.4.1"
title: DRAFT - SOL005 - VNF Package Management Interface
title: SOL005 - VNF Package Management Interface
description: >
DRAFT - SOL005 - VNF Package Management Interface
SOL005 - VNF Package Management 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
......@@ -35,59 +35,59 @@ paths:
'/vnf_packages':
#ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.2
get:
summary: "VNF packages"
summary: Query VNF packages information.
description: >
"The GET method queries the information of the VNF packages matching the filter.
This method shall follow the provisions specified in the
Tables 9.4.2.3.2-1 and 9.4.2.3.2-2 for URI query parameters,
request and response data structures, and response codes."
The GET method queries the information of the VNF packages matching the filter.
This method shall follow the provisions specified in the
Tables 9.4.2.3.2-1 and 9.4.2.3.2-2 for URI query parameters,
request and response data structures, and response codes.
parameters:
- name: "filter"
in: "query"
required: false
type: "string"
description: >
"Attribute-based filtering parameters according to clause 4.3.2.
Attribute-based filtering parameters according to clause 4.3.2.
The NFVO shall support receiving filtering parameters as part of the URI query string. The
OSS/BSS may supply filtering parameters.
All attribute names that appear in the VnfPkgInfo and in data types referenced from it shall
be supported in attribute-based filtering parameters."
be supported in attribute-based filtering parameters.
- name: "all_fields"
in: "query"
required: false
type: "string"
description: >
"Include all complex attributes in the response. See clause 4.3.3
for details. The NFVO shall support this parameter."
Include all complex attributes in the response. See clause 4.3.3 for details. The NFVO
shall support this parameter.
- name: "fields"
in: "query"
required: false
type: "string"
description: >
"Complex attributes to be included into the response. See clause 4.3.3 for
details. The NFVO should support this parameter."
Complex attributes to be included into the response. See clause 4.3.3 for details. The
NFVO should support this parameter.
- name: "exclude_fields"
in: "query"
required: false
type: "string"
description: >
"Complex attributes to be excluded from the response. See clause 4.3.3 for
details. The NFVO should support this parameter."
Complex attributes to be excluded from the response. See clause 4.3.3 for details. The
NFVO should support this parameter.
- name: "exclude_default"
in: "query"
required: false
type: "string"
description: >
"Indicates to exclude the following complex attributes from the response. See clause 4.3.3
for details. The NFVO shall support this parameter.
Indicates to exclude the following complex attributes from the response. See clause 4.3.3
for details.
The NFVO shall support this parameter.
The following attributes shall be excluded from the VnfPkgInfo structure in the response
body if this parameter is provided, or none of the parameters "all_fields," "fields",
"exclude_fields", "exclude_default" are provided:
- softwareImages
- additionalArtifacts
- userDefinedData
- checksum."
- checksum
- name: Accept
description: >
Content-Types that are acceptable for the response.
......@@ -104,14 +104,27 @@ paths:
type: string
responses:
200:
description: >
"Status 200"
description: >
200 OK.
Information of the selected VNF packages.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
WWW-Authenticate:
type: string
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.
schema:
type: "array"
description: >
"Information of the selected VNF packages."
type: array
items:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo"
properties:
VnfPkgInfo:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo"
400:
$ref: "responses/SOL005_resp.yaml#/responses/400"
401:
......@@ -132,17 +145,10 @@ paths:
$ref: "responses/SOL005_resp.yaml#/responses/503"
post:
summary: "VNF packages"
summary: Create a new individual VNF package resource.
description: >
"The POST method creates a new individual VNF package resource."
The POST method creates a new individual VNF package resource.
parameters:
- name: "CreateVnfPkgInfoRequest"
description: >
"IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2"
in: "body"
required: true
schema:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest"
- name: Accept
description: >
Content-Types that are acceptable for the response.
......@@ -163,7 +169,20 @@ paths:
Reference: IETF RFC 7231
in: header
required: true
type: string
type: string
- name: "body"
in: "body"
required: true
schema:
type: "object"
required:
- "CreateVnfPkgInfoRequest"
properties:
CreateVnfPkgInfoRequest:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest"
description: >
IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2
responses:
201:
description: >
......@@ -191,7 +210,7 @@ paths:
'/vnf_packages/{vnfPkgId}':
#ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.3
get:
summary: "Individual VNF package"
summary: Read information about an individual VNF package.
description: >
"This resource represents an individual VNF package.
The client can use this resource to read information of the VNF
......@@ -213,12 +232,31 @@ paths:
type: string
responses:
200:
description: >
"200 OK"
"Information of the VNF package."
description: 200 OK.
schema:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo"
type: "object"
description: >
Information of the VNF package.
properties:
VnfPkgInfo:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo"
headers:
Location:
type: "string"
description: >
The HTTP response shall include a Location HTTP header
that contains the resource URI of the new NS descriptor resource.
Content-Type:
type: "string"
description: >
The MIME type of the body of the response.This header
field shall be present if the response has a non-empty message body.
WWW-Authenticate:
type: "string"
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.
400:
$ref: "responses/SOL005_resp.yaml#/responses/400"
401:
......@@ -238,7 +276,7 @@ paths:
503:
$ref: "responses/SOL005_resp.yaml#/responses/503"
delete:
summary: "Individual VNF package"
summary: Delete an individual VNF package.
description: >
"The DELETE method deletes an individual NS descriptor resource.
parameters:
......@@ -252,14 +290,10 @@ paths:
responses:
204:
description: >
"204 No Content"
"The operation has completed successfully. The response body
shall be empty."
schema:
type: "object"
description: >
"The operation has completed successfully. The response body
shall be empty."
204 No Content.
The VNF package was deleted successfully.
The response body shall be empty.
409:
$ref: "responses/VNFPackageManagement_resp.yaml#/responses/409"
400:
......@@ -281,7 +315,7 @@ paths:
503:
$ref: "responses/SOL005_resp.yaml#/responses/503"
patch:
summary: "Individual VNF package"
summary: Update information about an individual VNF package.
description: >
"The PATCH method updates the information of a VNF package."
......@@ -289,7 +323,7 @@ paths:
Tables 9.4.3.3.4-1 and 9.4.3.3.4-2 for URI query parameters,
request and response data structures, and response codes."
parameters:
- name: "VnfPkgInfoModifications"
- name: "body"
in: "body"
required: true
schema:
......@@ -297,10 +331,10 @@ paths:
required:
- "VnfPkgInfoModifications"
properties:
NsdInfoModifications:
VnfPkgInfoModifications:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications"
description: >
"Parameters for VNF package information modifications."
Parameters for VNF package information modifications.
- name: Authorization
description: >
The authorization token for the request.
......@@ -315,14 +349,16 @@ paths:
in: header
required: true
type: string
responses:
200:
description: >
"200 OK."
"The operation was completed successfully.
description: >
200 OK.
The operation was completed successfully.
The response body shall contain attribute
modifications for an "Individual VNF package" resource."
modifications for an "Individual VNF
package" resource
headers:
Content-Type:
description: The MIME type of the body of the response.
......@@ -338,7 +374,9 @@ paths:
maximum: 1
minimum: 0
schema:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications"
properties:
VnfPkgInfoModifications:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications"
409:
$ref: "responses/VNFPackageManagement_resp.yaml#/responses/409"
400:
......@@ -363,7 +401,7 @@ paths:
parameters:
- name: "vnfPkgId"
description: >
"Identifier of the VNF package. The identifier is allocated by the NFVO".
Identifier of the VNF package. The identifier is allocated by the NFVO.
in: "path"
required: true
type: "string"
......@@ -376,16 +414,16 @@ paths:
parameters:
- name: vnfPkgId
description: >
"Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO."
Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO.
in: path
type: string
required: true
get:
summary: "VNFD of an individual VNF package"
summary: Read VNFD of an on-boarded VNF package.
description: >
"The GET method reads the content of the VNFD within a VNF package."
The GET method reads the content of the VNFD within a VNF package.
"The VNFD can be implemented as a single file or as a collection of multiple files. If the VNFD is implemented in the
The VNFD can be implemented as a single file or as a collection of multiple files. If the VNFD is implemented in the
form of multiple files, a ZIP file embedding these files shall be returned. If the VNFD is implemented as a single file,
either that file or a ZIP file embedding that file shall be returned.
The selection of the format is controlled by the "Accept" HTTP header passed in the GET request.
......@@ -399,7 +437,7 @@ paths:
representing the VNFD, and information necessary to navigate the ZIP file and to identify the file that is the entry point
for parsing the VNFD (such as TOSCA-meta or manifest files or naming conventions) are included.
This method shall follow the provisions specified in the Tables 9.4.4.3.2-1 and 9.4.4.3.2-2 for URI query parameters,
request and response data structures, and response codes."
request and response data structures, and response codes.
parameters:
- name: Accept
description: >
......@@ -420,7 +458,7 @@ paths:
responses:
200:
description: >
OK
200 OK.
On success, the content of the VNFD is returned.
The payload body shall contain a copy of the file
......@@ -444,8 +482,6 @@ paths:
type: string
maximum: 1
minimum: 0
400:
$ref: "responses/SOL005_resp.yaml#/responses/400"
401:
......@@ -479,10 +515,11 @@ paths:
'/vnf_packages/{vnfPkgId}/package_content':
#ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.5
get:
summary: "VNF package content"
summary: Fetch an on-boarded VNF package.
description: >
"The GET method fetches the content of a VNF package identified
by the VNF package identifier allocated by the NFVO."
The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO.
This method shall follow the provisions specified in the Tables 9.4.5.3.2-1 and 9.4.5.3.2-2 for URI query parameters,
request and response data structures, and response codes.
parameters:
- name: Accept
description: >
......@@ -506,15 +543,15 @@ paths:
type: "string"
description: >
The request may contain a "Range" HTTP header to obtain single
ange of bytes from the VNF package file. This can be used to
ontinue an aborted transmission.
range of bytes from the VNF package file. This can be used to
continue an aborted transmission.
If the NFVO does not support range requests, it should return the
whole file with a 200 OK response instead.
responses:
200:
description: >
OK
200 OK.
On success, a copy of the VNF package file is returned.
The response body shall include a copy of the VNF package file.
......@@ -537,12 +574,9 @@ paths:
maximum: 1
minimum: 0
206:
description: >
"Partial Content"
$ref: "responses/SOL005_resp.yaml#/responses/206"
409:
description: >
"Conflict"
description: >
$ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING"
416:
description: >
......@@ -566,9 +600,12 @@ paths:
$ref: "responses/SOL005_resp.yaml#/responses/503"
put:
summary: "VNF package content."
summary: Upload a VNF package by providing the content of the VNF package.
description: >
"The PUT method uploads the content of a VNF package."
The PUT method uploads the content of a VNF package.
This method shall follow the provisions specified in the
Tables 9.4.5.3.3-1 and 9.4.5.3.3-2 for URI query parameters,
request and response data structures, and response codes.
consumes:
- multipart/form-data
parameters:
......@@ -584,15 +621,14 @@ paths:
responses:
202:
description: >
"202 Accepted"
202 Accepted.
"The VNF package was accepted for uploading, but the
processing has not been completed. It is expected to
take some time for processing.
The response body shall be empty. See note."
The VNF package was accepted for uploading, but the
processing has not been completed. It is expected to
take some time for processing.
The response body shall be empty.
409:
description: >
"409 Conflict"
description: >
$ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING-NOT-CREATED"
400:
$ref: "responses/SOL005_resp.yaml#/responses/400"
......@@ -612,6 +648,8 @@ paths:
$ref: "responses/SOL005_resp.yaml#/responses/503"
parameters:
- name: "vnfPkgId"
description: >
Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO.
in: "path"
required: true
type: "string"
......@@ -622,26 +660,12 @@ paths:
'/vnf_packages/{vnfPkgId}/package_content/upload_from_uri':
#ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.6
post:
summary: "Upload VNF package from URI task."
summary: Upload a VNF package by providing the address information of the VNF package.
description: >
"This task resource represents the "Upload VNF package from URI" operation. The client can use this resource to
This task resource represents the "Upload VNF package from URI" operation. The client can use this resource to
request the uploading of a VNF package by providing address information to the NFVO for retrieving the content of the
VNF package.
The POST method provides the information for the NFVO to get the content of a VNF package."
VNF package.
parameters:
- name: "vnfPkgId"
in: "path"
required: true
type: "string"
- name: "UploadVnfPkgFromUriRequest"
description: >
"The payload body contains the address information based on
which the NFVO can obtain the content of the VNF package."
in: "body"
required: true
schema:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/UploadVnfPkgFromUriRequest"
- name: Accept
description: >
Content-Types that are acceptable for the response.
......@@ -663,16 +687,37 @@ paths:
in: header
required: true
type: string
- name: "vnfPkgId"
description: >
Identifier of the VNF package. The identifier is allocated by the NFVO.
in: "path"
required: true
type: "string"
- name: "body"
in: "body"
required: true
schema:
type: "object"
required:
- "UploadVnfPkgFromUriRequest"
properties:
UploadVnfPkgFromUriRequest:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/UploadVnfPkgFromUriRequest"
description: >
The payload body contains the address information based on
which the NFVO can obtain the content of the VNF package.
responses:
202:
description: >
"Accepted"
description: >
202 Accepted.
"The information about the VNF package was received
The information about the VNF package was received
successfully, but the on-boarding has not been
completed. It is expected to take some time for processing.
The response body shall be empty."
The response body shall be empty.
409:
$ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING-NOT-CREATED"
400:
......@@ -698,26 +743,30 @@ paths:
'/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
#ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.6
parameters:
- name: artifactPath
- name: vnfPkgId
description: >
This resource represents an individual artifact contained in a VNF package.
The client can use this resource to fetch the
content of the artifact.
Identifier of the on-boarded VNF package.
This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or
VnfPackageChangeNotification.
in: path
type: string
required: true
- name: vnfPkgId
required: true
- name: artifactPath
description: >
Identifier of the on-boarded VNF package. The identifier is
allocated by the NFVO.
This identifier can be retrieved from the "vnfPkgId"
attribute in the VnfPackageOnboardingNotification or
VnfPackageChangeNotification.
Path of the artifact within the VNF package.
This identifier can be retrieved from the "artifactPath" attribute of the applicable "additionalArtifacts" entry in
the body of the response to a GET request querying the "Individual VNF package" or the "VNF packages"
resource.
in: path
type: string
required: true
get:
summary: IndividualVNF package artifact.
summary: Fetch individual VNF package artifact.
description: >
The GET method fetches the content of an artifact within a VNF package.
This method shall follow the provisions specified in the
Tables 9.4.7.3.2-1 and 9.4.7.3.2-2 for URI query parameters,
request and response data structures, and response codes.
parameters:
- name: Accept
description: >
......@@ -806,82 +855,80 @@ paths:
###############################################################################
'/subscriptions':
post:
summary: Subscriptions
description: >
Subscribe.
summary: Subscribe to notifications related to on-boarding and/or changes of VNF packages.
description: >
The POST method creates a new subscription.
Creation of two 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 NFVO may either allow creating
a subscription resource if another 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 subscription resource (in which case it shall return a
“303 See Other” response code referencing the existing subscription
resource with the same filter and callbackUri).
This method shall follow the provisions specified in the Tables 9.4.8.3.1-1 and 9.4.8.3.1-2 for URI query parameters,
request and response data structures, and response codes.
Creation of two subscription resources with the same callbackURI and the same filter can result in performance
degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases.
Consequently, the NFVO may either allow creating a subscription resource if another 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 subscription resource (in which case it shall return a "303 See Other" response code referencing
the existing subscription resource with the same filter and callbackUri).
parameters:
- name: PkgmSubscriptionRequest
- name: Accept
description: >
Content-Types that are acceptable for the response.
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: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: "body"
in: "body"
required: true
schema:
type: "object"
required:
- "PkgmSubscriptionRequest"
properties:
PkgmSubscriptionRequest:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscriptionRequest"
description: >
Representation of the created subscription resource.
The HTTP response shall include a "Location" HTTP header that
points to the created subscription resource.
in: body
required: true
schema:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscriptionRequest"
- name: Accept
description: >
Content-Types that are acceptable for the response.
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: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
responses:
201:
description: >
Created
description: >
201 Created.
Representation of the created subscription resource.
The HTTP response shall include a "Location" HTTP header that
points to 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
Location:
description: The resource URI of the created VNF instance
type: string
format: url
WWW-Authenticate:
type: string
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
request has provided an invalid authorization token.
schema:
type: array
items:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription"
properties:
PkgmSubscription:
$ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription"
303:
$ref: "responses/SOL005_resp.yaml#/responses/303"
400:
......@@ -904,24 +951,24 @@ paths:
$ref: "responses/SOL005_resp.yaml#/responses/503"
get:
summary: >
Query Subscription Information
description: >
Query Subscription Information
The GET method queries the list of active subscriptions of the
functional block that invokes the method. It can be used e.g. for
resynchronization after error situations.
Query multiple subscriptions.
description: >
The GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used
e.g. for resynchronization after error situations.
This method shall follow the provisions specified in the
Tables 9.4.7.8.2-1 and 9.4.8.3.2-2 for URI query parameters,
request and response data structures, and response codes.
parameters:
- name: "filter"
in: "query"
required: false
type: "string"
description: >
"Attribute-based filtering parameters according to clause 4.3.2.
Attribute-based filtering parameters according to clause 4.3.2.
The NFVO shall support receiving filtering parameters as part of the URI query
string. The OSS/BSS may supply filtering parameters.
All attribute names that appear in the PkgmSubscription and in data types
referenced from it shall be supported in attribute-based filtering parameters."