"git@forge.etsi.org:nfv/api-tests.git" did not exist on "9b8ec7fe770e67ecad5460b2c6154dc7d9548fde"
Newer
Older
title: SSOL003 - VNF Package Management interface
description: |
SOL003 - VNF Package Management interface
![Michele Carignani Michele Carignani's avatar](/rep/assets/no_avatar-849f9c04a3a0d0cea2424ae97b27447dc64a7dbfae83c036c45b403392f0e8ba.png)
Michele Carignani
committed
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.
In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
filtering mechanism is defined. This mechanism is currently not
included in the corresponding OpenAPI design for this GS version. Changes
to the attribute-based filtering mechanism are being considered in v2.5.1
of this GS for inclusion in the corresponding future ETSI NFV OpenAPI
design.
![Michele Carignani Michele Carignani's avatar](/rep/assets/no_avatar-849f9c04a3a0d0cea2424ae97b27447dc64a7dbfae83c036c45b403392f0e8ba.png)
Michele Carignani
committed
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: "2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
![Michele Carignani Michele Carignani's avatar](/rep/assets/no_avatar-849f9c04a3a0d0cea2424ae97b27447dc64a7dbfae83c036c45b403392f0e8ba.png)
Michele Carignani
committed
externalDocs:
description: ETSI GS NFV-SOL 003 V3.3.1
Giacomo Bernini
committed
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf
servers:
- url: http://127.0.0.1/vnfpkgm/v2
- url: https://127.0.0.1/vnfpkgm/v2
Giacomo Bernini
committed
###############################################################################
# API Versions #
###############################################################################
Giacomo Bernini
committed
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
###############################################################################
# VNF packages #
###############################################################################
Query VNF Package Info.
The GET method queries the information of the VNF packages matching the filter.
This method shall follow the provisions specified in the tables 10.4.2.3.2-1 and 10.4.2.3.2-2
for URI query parameters, request and response data structures, and response codes.
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/all_fields
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/fields
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/exclude_fields
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/exclude_default
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
$ref: '#/components/responses/OnboardedVnfPackages.Get.200'
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# Individual VNF package #
###############################################################################
- $ref: '#/components/parameters/VnfPkgId'
Query VNF Package Info.
The GET method reads the information of an individual VNF package.
This method shall follow the provisions specified in the tables
10.4.3.3.2-1 and 10.4.3.3.2-2 for URI query parameters,
request and response data structures, and response codes.
parameters:
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
- $ref: '#/components/parameters/include_signature'
$ref: '#/components/responses/IndividualVnfPackage.Get.200'
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
/onboarded_vnf_packages/{vnfdId}:
- $ref: '#/components/parameters/VnfdId'
Query VNF Package Info.
The GET method reads the information of an individual VNF package.
This method shall follow the provisions specified in the tables
10.4.3.3.2-1 and 10.4.3.3.2-2 for URI query parameters,
request and response data structures, and response codes.
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
$ref: '#/components/responses/IndividualOnboardedVnfPackage.Get.200'
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# VNFD in an individual VNF package #
###############################################################################
/vnf_packages/{vnfPkgId}/vnfd:
- $ref: '#/components/parameters/VnfPkgId'
The GET method reads the content of the VNFD within a VNF package.
Giacomo Bernini
committed
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
The VNFD is implemented as a collection of one or more files.
A ZIP archive embedding these files shall be returned when reading this resource.
The default format of the ZIP archive shall be the one specified in ETSI GS NFV-SOL 004
where only the files representing the VNFD and information needed to navigate the ZIP
archive and to identify the file that is the entry point for parsing the VNFD, and,
if requested, further security information are included. This means that the structure
of the ZIP archive shall correspond to the directory structure used in the VNF package
and that the archive shall contain the following files from the package:
• TOSCA.meta (if available in the package)
• The main TOSCA definitions YAML file (either as referenced from TOSCA.meta
or available as a file with the extension ".yml" or ".yaml" from the root of the archive)
• Every component of the VNFD referenced (recursively) from the main TOSCA definitions YAML file
• The related security information, if the "include_signatures" URI parameter is provided, as follows:
- the manifest file
- the singleton certificate file in the root of the VNF package (if available in the package)
- the signing certificates of the individual files included in the ZIP archive (if available in the package)
- the signatures of the individual files (if available in the package)
Three examples are provided below.
NOTE: These examples do not show the security related files.
EXAMPLE 1: Assuming a request is sent for the following VNF package
(as described in clause A.1 in ETSI GS NFV-SOL 004):
!------TOSCA-Metadata
!----- TOSCA.meta (metadata for navigating the ZIP file)
!------Definitions
!----- MRF.yaml (main VNFD file)
!----- OtherTemplates (e.g. type definitions, referenced by the main VNFD file)
!------Files
!----- ChangeLog.txt
!----- image(s)
!----- other artifacts
!------Tests
!----- file(s)
!------Licenses
!----- file(s)
!------Scripts
!----- install.sh
!----- MRF.mf
The NFVO will return a ZIP file of the following format:
!------TOSCA-Metadata
!----- TOSCA.meta
!------Definitions
!----- MRF.yaml
!----- OtherTemplates
EXAMPLE 2: Assuming a request is sent for the following VNF package
(a VNF package without a TOSCA-Metadata directory, as
described in clause A.2 in ETSI GS NFV-SOL 004):
!------MRF.yaml (main VNFD file)
!------MRF.mf
!------ChangeLog.txt
!------Tests
!----- file(s)
!------Licenses
!----- file(s)
!------Artifacts
!----- install.sh
!----- start.yang
The NFVO will return a ZIP file of the following format:
!------MRF.yaml
EXAMPLE 3: Assuming a request is sent for the following VNF package
(a VNF package with the YANG VNFD without a TOSCA-Metadata directory,
as described in clause A.3 in ETSI GS NFV SOL 004):
!----CompanyVNFD.yaml
!----CompanyVNFD.xml
!----CompanyVNFD.mf
!----ChangeLog.txt
!-----Files
!-----Instance Data Files
!---- start.xml
!-----Licenses
!-----Scripts
!----- install.sh
The NFVO will return a ZIP file of the following format:
!----CompanyVNFD.yaml
!----CompanyVNFD.xml (indicated in the yang_definitions metadata in CompanyVNFD.yaml)
This method shall follow the provisions specified in the tables 10.4.4.3.2-1
and 10.4.4.3.2-2 for URI query parameters, request and response data structures,
nd response codes.
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
- $ref: '#/components/parameters/include_signature'
$ref: '#/components/responses/VnfdInIndividualVnfPackage.Get.200'
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini
committed
# 409 CONFLICT
#
# Shall be returned upon the following error: The operation cannot
# be executed currently, due to a conflict with the state of the resource.
# Typically, this is due to the fact that "onboardingState" of the
# VNF package has a value different from "ONBOARDED".
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
/onboarded_vnf_packages/{vnfdId}/vnfd:
- $ref: '#/components/parameters/VnfdId'
Query VNF Package Info
The GET method reads the content of the VNFD within a VNF package.
Giacomo Bernini
committed
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
The VNFD is implemented as a collection of one or more files.
A ZIP archive embedding these files shall be returned when reading this resource.
The default format of the ZIP archive shall be the one specified in ETSI GS NFV-SOL 004
where only the files representing the VNFD and information needed to navigate the ZIP
archive and to identify the file that is the entry point for parsing the VNFD, and,
if requested, further security information are included. This means that the structure
of the ZIP archive shall correspond to the directory structure used in the VNF package
and that the archive shall contain the following files from the package:
• TOSCA.meta (if available in the package)
• The main TOSCA definitions YAML file (either as referenced from TOSCA.meta
or available as a file with the extension ".yml" or ".yaml" from the root of the archive)
• Every component of the VNFD referenced (recursively) from the main TOSCA definitions YAML file
• The related security information, if the "include_signatures" URI parameter is provided, as follows:
- the manifest file
- the singleton certificate file in the root of the VNF package (if available in the package)
- the signing certificates of the individual files included in the ZIP archive (if available in the package)
- the signatures of the individual files (if available in the package)
Three examples are provided below.
NOTE: These examples do not show the security related files.
EXAMPLE 1: Assuming a request is sent for the following VNF package
(as described in clause A.1 in ETSI GS NFV-SOL 004):
!------TOSCA-Metadata
!----- TOSCA.meta (metadata for navigating the ZIP file)
!------Definitions
!----- MRF.yaml (main VNFD file)
!----- OtherTemplates (e.g. type definitions, referenced by the main VNFD file)
!------Files
!----- ChangeLog.txt
!----- image(s)
!----- other artifacts
!------Tests
!----- file(s)
!------Licenses
!----- file(s)
!------Scripts
!----- install.sh
!----- MRF.mf
The NFVO will return a ZIP file of the following format:
!------TOSCA-Metadata
!----- TOSCA.meta
!------Definitions
!----- MRF.yaml
!----- OtherTemplates
EXAMPLE 2: Assuming a request is sent for the following VNF package
(a VNF package without a TOSCA-Metadata directory, as
described in clause A.2 in ETSI GS NFV-SOL 004):
!------MRF.yaml (main VNFD file)
!------MRF.mf
!------ChangeLog.txt
!------Tests
!----- file(s)
!------Licenses
!----- file(s)
!------Artifacts
!----- install.sh
!----- start.yang
The NFVO will return a ZIP file of the following format:
!------MRF.yaml
EXAMPLE 3: Assuming a request is sent for the following VNF package
(a VNF package with the YANG VNFD without a TOSCA-Metadata directory,
as described in clause A.3 in ETSI GS NFV SOL 004):
!----CompanyVNFD.yaml
!----CompanyVNFD.xml
!----CompanyVNFD.mf
!----ChangeLog.txt
!-----Files
!-----Instance Data Files
!---- start.xml
!-----Licenses
!-----Scripts
!----- install.sh
The NFVO will return a ZIP file of the following format:
!----CompanyVNFD.yaml
!----CompanyVNFD.xml (indicated in the yang_definitions metadata in CompanyVNFD.yaml)
This method shall follow the provisions specified in the tables 10.4.4.3.2-1
and 10.4.4.3.2-2 for URI query parameters, request and response data structures,
nd response codes.
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
- $ref: '#/components/parameters/include_signature'
responses:
200:
$ref: '#/components/responses/VnfdInIndividualOnboardedVnfPackage.Get.200'
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini
committed
# 409 CONFLICT
#
# Shall be returned upon the following error: The operation cannot
# be executed currently, due to a conflict with the state of the resource.
# Typically, this is due to the fact that "onboardingState" of the
# VNF package has a value different from "ONBOARDED".
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
Giacomo Bernini
committed
# Manifest in an individual VNF package #
###############################################################################
/vnf_packages/{vnfPkgId}/manifest:
- $ref: '#/components/parameters/VnfPkgId'
Giacomo Bernini
committed
Query VNF Package Manifest
The GET method reads the content of the manifest within a VNF package.
This method shall follow the provisions specified in the tables 10.4.4a.3.2-1
and 10.4.4a.3.2-2 for URI query parameters, request and response data structures,
and response codes.
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
- $ref: '#/components/parameters/include_signature'
$ref: '#/components/responses/ManifestInIndividualVnfPackage.Get.200'
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
/onboarded_vnf_packages/{vnfdId}/manifest:
- $ref: '#/components/parameters/VnfdId'
Giacomo Bernini
committed
Query VNF Package Manifest
The GET method reads the content of the manifest within a VNF package.
This method shall follow the provisions specified in the tables 10.4.4a.3.2-1
and 10.4.4a.3.2-2 for URI query parameters, request and response data structures,
and response codes.
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
- $ref: '#/components/parameters/include_signature'
$ref: '#/components/responses/ManifestInIndividualOnboardedVnfPackage.Get.200'
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
Giacomo Bernini
committed
# VNF package content #
###############################################################################
/vnf_packages/{vnfPkgId}/package_content:
- $ref: '#/components/parameters/VnfPkgId'
Giacomo Bernini
committed
Fetch VNF Package.
The GET method fetches the content of a VNF package identified by the
VNF package identifier allocated by the NFVO.
The content of the package is provided as onboarded, i.e. depending on
the security option used, the CSAR or the CSAR wrapped in a ZIP archive
together with an external signature is returned, as defined in clause
5.1 of ETSI GS NFV-SOL 004.
NOTE: Information about the applicable security option can be obtained
by evaluating the "packageSecurityOption" attribute in the "VnfPkgInfo"
structure.
This method shall follow the provisions specified in the tables
Giacomo Bernini
committed
10.4.5.3.2-1 and 10.4.5.3.2-2 for URI query parameters, request
and response data structures, and response codes.
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/Range'
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
$ref: '#/components/responses/IndividualVnfPackageContent.Get.200'
$ref: '#/components/responses/IndividualVnfPackageContent.Get.206'
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
# 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 resource.
# Typically, this is due to the fact that "onboardingState" of the VNF package has
# a value different from "ONBOARDED".
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
# description: |
# 416 RANGE NOT SATISFIABLE
# Shall be returned upon the following error: The byte range passed in the "Range" header
# did not match any available byte range in the VNF package file (e.g. "access after end of file").
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
/onboarded_vnf_packages/{vnfdId}/package_content:
parameters:
- $ref: '#/components/parameters/VnfdId'
Giacomo Bernini
committed
Fetch VNF Package.
The GET method fetches the content of a VNF package identified by the
VNF package identifier allocated by the NFVO.
The content of the package is provided as onboarded, i.e. depending on
the security option used, the CSAR or the CSAR wrapped in a ZIP archive
together with an external signature is returned, as defined in clause
5.1 of ETSI GS NFV-SOL 004.
NOTE: Information about the applicable security option can be obtained
by evaluating the "packageSecurityOption" attribute in the "VnfPkgInfo"
structure.
This method shall follow the provisions specified in the tables
Giacomo Bernini
committed
10.4.5.3.2-1 and 10.4.5.3.2-2 for URI query parameters, request
and response data structures, and response codes.
parameters:
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/Range'
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
Giacomo Bernini
committed
responses:
200:
$ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.200'
Giacomo Bernini
committed
206:
$ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.206'
Giacomo Bernini
committed
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
Giacomo Bernini
committed
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
Giacomo Bernini
committed
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
Giacomo Bernini
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
Giacomo Bernini
committed
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini
committed
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
Giacomo Bernini
committed
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 resource.
# Typically, this is due to the fact that "onboardingState" of the VNF package has
# a value different from "ONBOARDED".
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
Giacomo Bernini
committed
416:
# description: |
# 416 RANGE NOT SATISFIABLE
# Shall be returned upon the following error: The byte range passed in the "Range" header
# did not match any available byte range in the VNF package file (e.g. "access after end of file").
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
Giacomo Bernini
committed
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
Giacomo Bernini
committed
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
Giacomo Bernini
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
Giacomo Bernini
committed
###############################################################################
# VNF package artifacts #
###############################################################################
/vnf_packages/{vnfPkgId}/artifacts:
Giacomo Bernini
committed
parameters:
- $ref: '#/components/parameters/VnfPkgId'
Giacomo Bernini
committed
get:
Giacomo Bernini
committed
Fetch VNF Package Artifacts.
The GET method shall return an archive that contains a set of artifacts
according to the provisions for inclusion/exclusion defined below,
embedded in a directory structure being the same as in the VNF package.
The criteria for exclusion/inclusion of an artifact in the archive are defined as follows:
- Artifacts that are software images shall be excluded from the archive.
Samir Medjiah
committed
- Artifacts that are not software images and that are external to the VNF package shall be
excluded from the archive unless the URI query parameter "include_external_artifacts" has
been provided. External artifacts shall be included in the archive using the content of
the "artifactPath" attribute as the path.
Giacomo Bernini
committed
- All additional artifacts included in the VNF package that are MANO artifacts shall
be included in the archive, unless the URI query parameter "exclude_all_mano_artifacts"
has been provided, in which case such artifacts shall be excluded.
- All additional artifacts included in the VNF package that are non-MANO artifacts
shall be included in the archive, unless:
the URI query parameter "exclude_all_non_mano_artifacts" has been provided,
in which case such artifacts shall be excluded;
the URI query parameter "select_non_mano_artifact_sets" has been provided and
is supported by the NFVO, in which case only those non-MANO artifacts shall be
included whose non-MANO artifact set identifier matches one of the values of the query parameter.
Package metadata such as manifest file or VNFD shall not be included in the archive.
This method shall follow the provisions specified in the tables 10.4.5a.3.2-1 and
10.4.5a.3.2-2 for URI query parameters, request and response data structures, and response codes.
parameters:
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/Range'
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
Giacomo Bernini
committed
responses:
200:
$ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.200'
Giacomo Bernini
committed
206:
$ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.206'
Giacomo Bernini
committed
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
Giacomo Bernini
committed
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
Giacomo Bernini
committed
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
Giacomo Bernini
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
Giacomo Bernini
committed
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini
committed
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
Giacomo Bernini
committed
409:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
Giacomo Bernini
committed
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
Giacomo Bernini
committed
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
Giacomo Bernini
committed
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
Giacomo Bernini
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
Giacomo Bernini
committed
/onboarded_vnf_packages/{vnfdId}/artifacts:
Giacomo Bernini
committed
parameters:
- $ref: '#/components/parameters/VnfdId'
Giacomo Bernini
committed
get:
Giacomo Bernini
committed
Fetch VNF Package Artifacts.
The GET method shall return an archive that contains a set of artifacts
according to the provisions for inclusion/exclusion defined below,
embedded in a directory structure being the same as in the VNF package.
The criteria for exclusion/inclusion of an artifact in the archive are defined as follows:
- Artifacts that are software images shall be excluded from the archive.
Samir Medjiah
committed
- Artifacts that are not software images and that are external to the VNF package shall be
excluded from the archive unless the URI query parameter "include_external_artifacts" has
been provided. External artifacts shall be included in the archive using the content of
the "artifactPath" attribute as the path.
Giacomo Bernini
committed
- All additional artifacts included in the VNF package that are MANO artifacts shall
be included in the archive, unless the URI query parameter "exclude_all_mano_artifacts"
has been provided, in which case such artifacts shall be excluded.
- All additional artifacts included in the VNF package that are non-MANO artifacts
shall be included in the archive, unless:
the URI query parameter "exclude_all_non_mano_artifacts" has been provided,
in which case such artifacts shall be excluded;
the URI query parameter "select_non_mano_artifact_sets" has been provided and
is supported by the NFVO, in which case only those non-MANO artifacts shall be
included whose non-MANO artifact set identifier matches one of the values of the query parameter.
Package metadata such as manifest file or VNFD shall not be included in the archive.
This method shall follow the provisions specified in the tables 10.4.5a.3.2-1 and
10.4.5a.3.2-2 for URI query parameters, request and response data structures, and response codes.
parameters:
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/Range'
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
Giacomo Bernini
committed
responses:
200:
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.200'
Giacomo Bernini
committed
206:
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.206'
Giacomo Bernini
committed
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
Giacomo Bernini
committed
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
Giacomo Bernini
committed
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
Giacomo Bernini
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
Giacomo Bernini
committed
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini
committed
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
Giacomo Bernini
committed
409:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
Giacomo Bernini
committed
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
Giacomo Bernini
committed
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
Giacomo Bernini
committed
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
Giacomo Bernini
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
Giacomo Bernini
committed
###############################################################################
# Individual VNF package artifact #
###############################################################################
/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}:
Giacomo Bernini
committed
parameters:
- $ref: '#/components/parameters/ArtifactPath'
- $ref: '#/components/parameters/VnfPkgId'
Giacomo Bernini
committed
get:
Giacomo Bernini
committed
Fetch VNF Package Artifacts.
The GET method fetches the content of an artifact within a VNF package.
This method shall follow the provisions specified in the tables
10.4.6.3.2-1 and 10.4.6.3.2-2 for URI query parameters, request
and response data structures, and response codes.
parameters:
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/Range'
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
- $ref: '#/components/parameters/include_signature'
$ref: '#/components/responses/IndividualVnfPackageArtifact.Get.200'
$ref: '#/components/responses/IndividualVnfPackageArtifact.Get.206'
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
# 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 resource.
# Typically, this is due to the fact that "onboardingState" of the
# VNF package has a value different from "ONBOARDED".
# The response body shall contain a ProblemDetails structure,
# in which the "detail" attribute shall convey more information
# about the error.
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
# description: |
# 416 RANGE NOT SATISFIABLE
# Shall be returned upon the following error: The byte range passed in the
# "Range" header did not match any available byte range in the artifact file
# (e.g. "access after end of file").
# The response body may contain a ProblemDetails structure.
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
Giacomo Bernini
committed
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
Giacomo Bernini
committed
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
Giacomo Bernini
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
Giacomo Bernini
committed
/onboarded_vnf_packages/{vnfdId}/artifacts/{artifactPath}:
Giacomo Bernini
committed
parameters:
- $ref: '#/components/parameters/ArtifactPath'
- $ref: '#/components/parameters/VnfdId'
Giacomo Bernini
committed
get:
Giacomo Bernini
committed
Fetch VNF Package Artifacts.
The GET method fetches the content of an artifact within a VNF package.
This method shall follow the provisions specified in the tables
10.4.6.3.2-1 and 10.4.6.3.2-2 for URI query parameters, request
and response data structures, and response codes.
parameters:
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/Range'
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
- $ref: '#/components/parameters/include_signature'
Giacomo Bernini
committed
responses:
200:
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.200'
Giacomo Bernini
committed
206:
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.206'
Giacomo Bernini
committed
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
Giacomo Bernini
committed
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
Giacomo Bernini
committed
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
Giacomo Bernini
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
Giacomo Bernini
committed
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini
committed
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
Giacomo Bernini
committed
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 resource.
# Typically, this is due to the fact that "onboardingState" of the
# VNF package has a value different from "ONBOARDED".
# The response body shall contain a ProblemDetails structure,
# in which the "detail" attribute shall convey more information
# about the error.
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
Giacomo Bernini
committed
416:
# description: |
# 416 RANGE NOT SATISFIABLE
# Shall be returned upon the following error: The byte range passed in the
# "Range" header did not match any available byte range in the artifact file
# (e.g. "access after end of file").
# The response body may contain a ProblemDetails structure.
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# Subscriptions #
###############################################################################
/subscriptions:
parameters:
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
Subscribe.
The POST method creates a new subscription.
This method shall follow the provisions specified in the tables
10.4.7.3.1-1 and 10.4.7.3.1-2 for URI query parameters, request
and response data structures, and response codes.
As the result of successfully executing this method, a new
"Individual subscription" resource as defined in clause 10.4.8
shall have been created. This method shall not trigger any notification.
Creation of two "Individual subscription" resources with the same
Samir Medjiah
committed
callback URI 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 new "Individual subscription" resource if
another "Individual subscription" resource with the same filter and
Samir Medjiah
committed
callback URI 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"
Samir Medjiah
committed
resource with the same filter and callback URI).
requestBody:
$ref: '#/components/requestBodies/PkgmSubscriptionRequest'
$ref: '#/components/responses/Subscriptions.Post.201'
# description: |
# 303 SEE OTHER
# Shall be returned when a subscription with the same callback URI and the same filter
# already exists and the policy of the NFVO 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.
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/303"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
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.
This method shall follow the provisions specified in the tables 10.4.7.3.2-1 and 10.4.7.3.2-2
for URI query parameters, request and response data structures, and response codes.
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter
- $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker
$ref: '#/components/responses/Subscriptions.Get.200'
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"