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 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/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 version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 003 V3.3.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: - url: http://0.0.0.1/vnfsnapshotpkgm/v1 - url: https://0.0.0.1/vnfsnapshotpkgm/v1 paths: ############################################################################### # API Versions # ############################################################################### /api_versions: $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' /vnf_snapshot_packages: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | The GET method queries the information of the VNF packages matching the filter. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: 200: $ref: '#/components/responses/VNFSnapshotPackages.Get.200' 400: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 401: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 403: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 404: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 405: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 406: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 416: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 422: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 429: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 500: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 503: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 504: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 /vnf_snapshot_packages/{vnfSnapshotPkgId}: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization - $ref: '#/components/parameters/VnfSnapshotPkgId' get: description: | The GET method reads the information of an individual VNF snapshot package. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: 200: $ref: '#/components/responses/IndividualVNFSnapshotPackages.Get.200' 400: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 401: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 403: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 404: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 405: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 406: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 416: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 422: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 429: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 500: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 503: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 504: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 /vnf_snapshot_packages/{vnfSnapshotPkgId}/package_content: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization - $ref: '#/components/parameters/VnfSnapshotPkgId' get: description: | The GET method fetches the content of a VNF snapshot package. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType responses: 200: $ref: '#/components/responses/PackageContent.Get.200' 206: $ref: '#/components/responses/PackageContent.Get.206' 400: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 401: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 403: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 404: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 405: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 406: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 409: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 416: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 422: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 429: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 500: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 503: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 504: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 /vnf_snapshot_packages/{vnfSnapshotPkgId}/artifacts/{artifactPath}: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_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. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType responses: 200: $ref: '#/components/responses/IndividualArtifact.Get.200' 206: $ref: '#/components/responses/IndividualArtifact.Get.206' 400: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 401: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 403: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 404: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 405: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 406: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 409: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 416: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 422: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 429: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 500: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 503: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 504: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 components: parameters: 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 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: 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: 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" for a VNF snapshot package. The VNF snapshot package format is defined in ETSI GS NFV-SOL 010. 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 7233. The "Content-Type" HTTP header shall be set as 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 IndividualArtifact.Get.200: description: | 200 OK Shall be returned when the whole content of the artifact file has been read successfully. 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. 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: | 2006 PARTIAL CONTENT 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. 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 7233. 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