Newer
Older
openapi: 3.0.2
info:
title: SOL003 - VNF Snapshot Package Management interface
description: |
SOL003 - VNF Snapshot 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. In case of
discrepancies the published ETSI Group Specification takes precedence.
Giacomo Bernini
committed
Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues
contact:
name: NFV-SOL WG
license:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
externalDocs:
description: ETSI GS NFV-SOL 003 V3.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.07.01_60/gs_NFV-SOL003v030701p.pdf
servers:
- url: http://127.0.0.1/vnfsnapshotpkgm/v1
- url: https://127.0.0.1/vnfsnapshotpkgm/v1
paths:
###############################################################################
# API Versions #
###############################################################################
/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
/vnf_snapshot_packages:
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
get:
description: |
The GET method queries the information of the VNF packages matching the filter. See clause 12.4.2.3.2.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
- $ref: '#/components/parameters/filter_vnf_packages'
- $ref: '#/components/parameters/exclude_default_vnf_packages'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/all_fields_nfvo
- $ref: ../../components/SOL003_params.yaml#/components/parameters/fields_nfvo
- $ref: ../../components/SOL003_params.yaml#/components/parameters/exclude_fields_nfvo
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_nfvo
$ref: '#/components/responses/VNFSnapshotPackages.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/422
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
/vnf_snapshot_packages/{vnfSnapshotPkgId}:
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/VnfSnapshotPkgId'
get:
description: |
The GET method reads the information of an individual VNF snapshot package. See clause 12.4.3.3.2
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
$ref: '#/components/responses/IndividualVNFSnapshotPackages.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/422
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
/vnf_snapshot_packages/{vnfSnapshotPkgId}/package_content:
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/VnfSnapshotPkgId'
get:
description: |
The GET method fetches the content of a VNF snapshot package. See clause 12.4.4.3.2.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
responses:
$ref: '#/components/responses/PackageContent.Get.200'
$ref: '#/components/responses/PackageContent.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
$ref: '#/components/responses/PackageContent.Get.409'
$ref: '#/components/responses/PackageContent.Get.416'
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
/vnf_snapshot_packages/{vnfSnapshotPkgId}/artifacts/{artifactPath}:
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/VnfSnapshotPkgId'
- $ref: '#/components/parameters/ArtifactPath'
get:
description: |
The GET method fetches the content of an artifact within the VNF snapshot package. See clause 12.4.5.3.2.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
responses:
$ref: '#/components/responses/IndividualArtifact.Get.200'
$ref: '#/components/responses/IndividualArtifact.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
$ref: '#/components/responses/IndividualArtifact.Get.409'
$ref: '#/components/responses/IndividualArtifact.Get.416'
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
components:
parameters:
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
filter_vnf_packages:
name: filter
description: >
Attribute-based filtering expression according to clause 5.2 of ETSI
GS NFV-SOL 013 [8].
The NFVO shall support receiving this parameter as part of the URI query string. The
VNFM may supply this parameter.
All attribute names that appear in the VnfSnapshotPkgInfo and in data types
referenced from it shall be supported by the NFVO in the filter expression.
in: query
required: false
schema:
type: string
exclude_default_vnf_packages:
name: exclude_default
in: query
description: >-
Indicates to exclude the following complex attributes from the response. See
clause 5.3 of ETSI GS NFV-SOL 013 [8] for details.
The NFVO shall support this parameter.
The following attributes shall be excluded from the VnfSnapshotPkgInfo structure in
the response body if this parameter is provided, or none of the parameters "all_fields,"
"fields", "exclude_fields", "exclude_default" are provided:
- vnfcSnapshotImages
- additionalArtifacts
- userDefinedData
- checksum
required: false
schema:
type: string
VnfSnapshotPkgId:
name: vnfSnapshotPkgId
in: path
description: |
Identifier of the VNF snapshot package. The identifier is allocated by the NFVO.
This identifier can be retrieved from the "id" attribute of the applicable "VnfSnapshotPkgInfo" in the body of
the response to requesting the creation of a new "Individual VNF snapshot package" resource or in a response to
a GET request querying the "Individual VNF snapshot package" or the "VNF snapshot packages" resource.
required: true
style: simple
explode: false
schema:
type: string
ArtifactPath:
name: artifactPath
in: path
description: |
For an artifact contained as a file in the VNF snapshot package, this variable shall contain a sequence
of one or path segments representing the path of the artifact within the VNF snapshot package, relative
to the root of the package.
EXAMPLE: foo/bar/m%40ster.sh
Samir Medjiah
committed
For an external artifact represented as a URI in the VNF snapshot package manifest, this variable shall
contain a sequence of one or more path segments as synthesized by the NFVO (see clause 12.5.3.3) representing
this artifact.
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 snapshot package" or the
"VNF snapshot packages" resource.
Since multiple path segments are allowed to be contained in this variable, the "/" character that separates
these segments is not percent-encoded. Each individual segment is percent-encoded if necessary as defined
in clause 4.1 of ETSI GS NFV-SOL 013.
required: true
style: simple
explode: false
schema:
type: string
responses:
VNFSnapshotPackages.Get.200:
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
description: |
200 OK
Shall be returned when information about zero or more VNF snapshot packages has been queried successfully.
The response body shall contain in an array the VNF snapshot package info representations that match the
attribute filter, i.e. zero or more VNF snapshot package info representations as defined in clause 12.5.2.2.
If the "filter" URI parameter or one of the "all_fields", "fields", "exclude_fields" or "exclude_default"
URI parameters was supplied in the request and is supported, the data in the response body shall have been
transformed according to the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively.
If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this
resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3
of ETSI GS NFV-SOL 013.
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Link:
description: |
Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: array
items:
$ref: definitions/SOL003VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgInfo
IndividualVNFSnapshotPackages.Get.200:
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
description: |
200 OK
Shall be returned when information of the VNF snapshot package has been read successfully.
The response body shall contain the VNF snapshot package info representation defined in clause 12.5.2.2.
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: definitions/SOL003VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgInfo
PackageContent.Get.200:
description: |
200 OK
Shall be returned when the whole content of the VNF snapshot package file has been read successfully.
The response body shall include a copy of the VNF snapshot package file.
The "Content-Type" HTTP header shall be set according to the type of the file, i.e. to "application/zip"
Samir Medjiah
committed
for a VNF snapshot package. The VNF snapshot package format is defined in ETSI GS NFV-SOL 010.
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
content:
application/*:
schema:
type: string
format: binary
PackageContent.Get.206:
description: |
206 PARTIAL CONTENT
If the NFVO supports range requests, this response shall be returned when a single consecutive byte range
from the content of the VNF snapshot package file has been read successfully according to the request.
The response body shall contain the requested part of the VNF snapshot package file. The "Content-Range"
HTTP header shall be provided according to IETF RFC 9110. The "Content-Type" HTTP header shall be set as
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
defined above for the "200 OK" response.
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
Content-Range:
description: >
The Content-Range response HTTP header indicates where in a full body message a partial message belongs.
schema:
type: string
maximum: 1
minimum: 1
content:
application/*:
schema:
type: string
format: binary
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
PackageContent.Get.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 the "state" of the
VNF snapshot package has a value different from
"AVAILABLE".
The response body shall contain a ProblemDetails
structure, in which the "detail" attribute shall convey
more information about the error.
headers:
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
PackageContent.Get.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 snapshot
package file (e.g. "access after end of file").
The response body may contain a ProblemDetails
structure
headers:
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
IndividualArtifact.Get.200:
description: |
200 OK
Shall be returned when the whole content of the artifact file has been read successfully.
Samir Medjiah
committed
The response body shall include a copy of the artifact file from the VNF snapshot package.
The VNF snapshot package format is defined in ETSI GS NFV-SOL 010.
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
The "Content-Type" HTTP header shall be set according to the content type of the artifact file.
If the content type cannot be determined, the header shall be set to the value "application/octet-stream".
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
content:
application/*:
schema:
type: string
format: binary
IndividualArtifact.Get.206:
description: |
If the NFVO supports range requests, this response shall be returned when a single consecutive byte range
from the content of the artifact file has been read successfully according to the request.
Samir Medjiah
committed
The response body shall contain the requested part of the artifact file from the VNF snapshot package.
The VNF snapshot package is defined in ETSI GS NFV-SOL 010.
The "Content-Type" HTTP header shall be set according to the content type of the artifact file. If the
content type cannot be determined, the header shall be set to the value "application/octet-stream".
The "Content-Range" HTTP header shall be provided according to IETF RFC 9110.
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
Content-Range:
description: >
The Content-Range response HTTP header indicates where in a full body message a partial message belongs.
schema:
type: string
maximum: 1
minimum: 1
content:
application/*:
schema:
type: string
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
format: binary
IndividualArtifact.Get.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 the "state" of the
VNF snapshot package has a value different from
"AVAILABLE".
The response body shall contain a ProblemDetails
structure, in which the "detail" attribute shall convey
more information about the error.
headers:
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
IndividualArtifact.Get.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
headers:
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string