openapi: 3.0.2 info: title: SOL003 - VNF Package Management interface description: | SOL003 - 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. 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: "2.1.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://127.0.0.1/vnfpkgm/v2 - url: https://127.0.0.1/vnfpkgm/v2 paths: ############################################################################### # API Versions # ############################################################################### /api_versions: $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' ############################################################################### # VNF packages # ############################################################################### /onboarded_vnf_packages: #SOL003 location: 10.4.2 get: description: | 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. parameters: - $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 responses: 200: $ref: '#/components/responses/OnboardedVnfPackages.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" 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" 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" ############################################################################### # Individual VNF package # ############################################################################### /vnf_packages/{vnfPkgId}: parameters: - $ref: '#/components/parameters/VnfPkgId' get: description: | 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' responses: 200: $ref: '#/components/responses/IndividualVnfPackage.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" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 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" /onboarded_vnf_packages/{vnfdId}: parameters: - $ref: '#/components/parameters/VnfdId' get: description: | 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 responses: 200: $ref: '#/components/responses/IndividualOnboardedVnfPackage.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" 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" ############################################################################### # VNFD in an individual VNF package # ############################################################################### /vnf_packages/{vnfPkgId}/vnfd: parameters: - $ref: '#/components/parameters/VnfPkgId' get: description: | Query VNF Package Info The GET method reads the content of the VNFD within a VNF package. 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. 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' responses: 200: $ref: '#/components/responses/VnfdInIndividualVnfPackage.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" 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" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 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" /onboarded_vnf_packages/{vnfdId}/vnfd: parameters: - $ref: '#/components/parameters/VnfdId' get: description: | Query VNF Package Info The GET method reads the content of the VNFD within a VNF package. 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. 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' responses: 200: $ref: '#/components/responses/VnfdInIndividualOnboardedVnfPackage.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" 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" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 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" ############################################################################### # Manifest in an individual VNF package # ############################################################################### /vnf_packages/{vnfPkgId}/manifest: parameters: - $ref: '#/components/parameters/VnfPkgId' get: description: | 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. 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' responses: 200: $ref: '#/components/responses/ManifestInIndividualVnfPackage.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" 409: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 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" /onboarded_vnf_packages/{vnfdId}/manifest: parameters: - $ref: '#/components/parameters/VnfdId' get: description: | 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. 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' responses: 200: $ref: '#/components/responses/ManifestInIndividualOnboardedVnfPackage.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" 409: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 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 package content # ############################################################################### /vnf_packages/{vnfPkgId}/package_content: parameters: - $ref: '#/components/parameters/VnfPkgId' get: description: | 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 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 responses: 200: $ref: '#/components/responses/IndividualVnfPackageContent.Get.200' 206: $ref: '#/components/responses/IndividualVnfPackageContent.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: # 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" 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" 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" /onboarded_vnf_packages/{vnfdId}/package_content: parameters: - $ref: '#/components/parameters/VnfdId' get: description: | 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 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 responses: 200: $ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.200' 206: $ref: '#/components/responses/IndividualOnboardedVnfPackageContent.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: # 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" 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" 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 package artifacts # ############################################################################### /vnf_packages/{vnfPkgId}/artifacts: parameters: - $ref: '#/components/parameters/VnfPkgId' get: description: | 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. - 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. - 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 responses: 200: $ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.200' 206: $ref: '#/components/responses/IndividualVnfPackageArtifacts.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" 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" /onboarded_vnf_packages/{vnfdId}/artifacts: parameters: - $ref: '#/components/parameters/VnfdId' get: description: | 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. - 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. - 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 responses: 200: $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.200' 206: $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.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" 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" ############################################################################### # Individual VNF package artifact # ############################################################################### /vnf_packages/{vnfPkgId}/artifacts/{artifactPath}: parameters: - $ref: '#/components/parameters/ArtifactPath' - $ref: '#/components/parameters/VnfPkgId' get: description: | 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' responses: 200: $ref: '#/components/responses/IndividualVnfPackageArtifact.Get.200' 206: $ref: '#/components/responses/IndividualVnfPackageArtifact.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: # 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" 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" 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" /onboarded_vnf_packages/{vnfdId}/artifacts/{artifactPath}: parameters: - $ref: '#/components/parameters/ArtifactPath' - $ref: '#/components/parameters/VnfdId' get: description: | 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' responses: 200: $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.200' 206: $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.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: # 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" 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" 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" ############################################################################### # 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 post: description: | 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 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 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" resource with the same filter and callback URI). requestBody: $ref: '#/components/requestBodies/PkgmSubscriptionRequest' responses: 201: $ref: '#/components/responses/Subscriptions.Post.201' 303: # 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" 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" 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" 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" get: 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. 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. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: 200: $ref: '#/components/responses/Subscriptions.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" 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" 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" ############################################################################### # Individual subscription # ############################################################################### /subscriptions/{subscriptionId}: #SOL003 location: 10.4.8 parameters: - $ref: '#/components/parameters/SubscriptionId' - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version get: description: | Query Subscription Information. The GET method reads an individual subscription. This method shall follow the provisions specified in the tables 10.4.8.3.2-1 and 10.4.8.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: 200: $ref: '#/components/responses/IndividualSubscription.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" 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" 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" delete: description: | Terminate subscription. The DELETE method terminates an individual subscription. This method shall follow the provisions specified in the tables 10.4.8.3.5-1 and 10.4.8.3.5-2 for URI query parameters, request and response data structures, and response codes. As the result of successfully executing this method, the "Individual subscription" resource shall not exist any longer. This means that no notifications for that subscription shall be sent to the formerly-subscribed API consumer. NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed API consumer for a certain time period after the deletion. responses: 204: $ref: '#/components/responses/IndividualSubscription.Delete.204' 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" 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" 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: VnfPkgId: name: vnfPkgId in: path description: | Identifier of the VNF package. The identifier is allocated by the NFVO. This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. required: true style: simple explode: false schema: type: string VnfdId: name: vnfdId in: path description: | Identifier of the VNFD and the VNF package. The identifier is allocated by the VNF provider. This identifier can be retrieved from the "vnfdId" attribute in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. required: true style: simple explode: false schema: type: string ArtifactPath: name: artifactPath in: path description: | SequenceFor an artifact contained as a file in the VNF package, this variable shall contain a sequence of one or more path segments representing the path of the artifact within the VNF 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 package manifest, this variable shall contain a sequence of one or more path segments as synthesized by the NFVO (see clause 10.5.3.3), representing this artifact. 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 SubscriptionId: name: subscriptionId in: path description: | Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. required: true style: simple explode: false schema: type: string include_signature: name: include_signature in: query description: | If this parameter is provided, the NFVO shall include in the ZIP archive the security information as specified above. This URI query parameter is a flag, i.e. it shall have no value. The NFVO shall support this parameter. required: false schema: type: string Range: name: Range in: header description: | The request may contain a "Range" HTTP header to obtain single range of bytes from the VNF package file. This can be used to continue an aborted transmission. If the "Range" header is present in the request and the NFVO does not support responding to range requests with a 206 response, it shall return a 200 OK response instead. required: false schema: type: string requestBodies: PkgmSubscriptionRequest: description: | Representation of the created subscription resource. The HTTP response shall include a "Location" HTTP header that points to the created subscription resource. content: application/json: schema: $ref: "definitions/SOL003VNFPackageManagement_def.yaml#/definitions/PkgmSubscriptionRequest" required: true responses: OnboardedVnfPackages.Get.200: description: | 200 OK Shall be returned when information about zero or more VNF packages has been queried successfully. The response body shall contain in an array the VNF package info representations that match the attribute filter, i.e. zero or more VNF package info representations as defined in clause 10.5.2.2. If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), "exclude_fields" (if supported) or "exclude_default" URI parameters was supplied in the request, 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 VNFM 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: Content-Type: description: The MIME type of the body of the response. 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 Version: description: The used API version. 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: application/json: schema: type: array items: $ref: "definitions/SOL003VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" IndividualVnfPackage.Get.200: description: | 200 OK Shall be returned when information of the VNF package has been read successfully. The response body shall contain the VNF package info representation defined in clause 10.5.2.2. headers: Content-Type: description: The MIME type of the body of the response. 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 Version: description: The used API version. style: simple explode: false schema: type: string content: application/json: schema: $ref: "definitions/SOL003VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" IndividualOnboardedVnfPackage.Get.200: description: | 200 OK Shall be returned when information of the VNF package has been read successfully. The response body shall contain the VNF package info representation defined in clause 10.5.2.2. headers: Content-Type: description: The MIME type of the body of the response. 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 Version: description: The used API version. style: simple explode: false schema: type: string content: application/json: schema: $ref: "definitions/SOL003VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" VnfdInIndividualVnfPackage.Get.200: description: | 200 OK Shall be returned when the content of the VNFD has been read successfully. The payload body shall contain a copy of the file representing the VNFD or a ZIP file that contains the file or multiple files representing the VNFD, as specified above. The "Content-Type" HTTP header shall be set according to the format of the returned file, i.e. to "text/plain" for a YAML file or to "application/zip" for a ZIP file. headers: Content-Type: description: The MIME type of the body of the response. style: simple explode: false required: true schema: type: string enum: - text/plain - application/zip 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 VnfdInIndividualOnboardedVnfPackage.Get.200: description: | 200 OK Shall be returned when the content of the VNFD has been read successfully. The payload body shall contain a copy of the file representing the VNFD or a ZIP file that contains the file or multiple files representing the VNFD, as specified above. The "Content-Type" HTTP header shall be set according to the format of the returned file, i.e. to "text/plain" for a YAML file or to "application/zip" for a ZIP file. headers: Content-Type: description: The MIME type of the body of the response. style: simple explode: false required: true schema: type: string enum: - text/plain - application/zip 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 ManifestInIndividualVnfPackage.Get.200: description: | 200 OK Shall be returned when the content of the manifest has been read successfully. If the "include_signatures" URI query parameter was absent in the request, or if the manifest file has all security-related information embedded (i.e. there is no separate certificate file), the payload body shall contain a copy of the manifest file of the VNF package and the "Content-Type" HTTP header shall be set to "text/plain". If the "include_signatures" URI query parameter was present in the related request and the manifest file does not have all the security-related information embedded (i.e. there is a separate certificate file), the "Content-Type" HTTP header shall be set to "application/zip and the payload body shall contain a ZIP archive which includes: • a copy of the manifest file of the VNF package; • a copy of the related individual certificate file. headers: Content-Type: description: The MIME type of the body of the response. style: simple explode: false required: true schema: type: string enum: - text/plain - application/zip 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 ManifestInIndividualOnboardedVnfPackage.Get.200: description: | 200 OK Shall be returned when the content of the manifest has been read successfully. If the "include_signatures" URI query parameter was absent in the request, or if the manifest file has all security-related information embedded (i.e. there is no separate certificate file), the payload body shall contain a copy of the manifest file of the VNF package and the "Content-Type" HTTP header shall be set to "text/plain". If the "include_signatures" URI query parameter was present in the related request and the manifest file does not have all the security-related information embedded (i.e. there is a separate certificate file), the "Content-Type" HTTP header shall be set to "application/zip and the payload body shall contain a ZIP archive which includes: • a copy of the manifest file of the VNF package; • a copy of the related individual certificate file. headers: Content-Type: description: The MIME type of the body of the response. style: simple explode: false required: true schema: type: string enum: - text/plain - application/zip 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 IndividualVnfPackageContent.Get.200: description: | 200 OK Shall be returned when the whole content of the VNF package file has been read successfully. The response body shall include a copy of the VNF 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 Package as defined in ETSI GS NFV SOL 004. headers: Content-Type: description: The MIME type of the body of the response. 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 Version: description: The used API version. style: simple explode: false schema: type: string IndividualVnfPackageContent.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 package file has been read successfully according to the request. The response body shall contain the requested part of the VNF 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: Content-Range: required : true 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 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 IndividualOnboardedVnfPackageContent.Get.200: description: | 200 OK Shall be returned when the whole content of the VNF package file has been read successfully. The response body shall include a copy of the VNF 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 Package as defined in ETSI GS NFV SOL 004. headers: Content-Type: description: The MIME type of the body of the response. 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 Version: description: The used API version. style: simple explode: false schema: type: string IndividualVnfPackageArtifact.Get.200: description: | 200 OK Shall be returned when the whole content of the artifact file has been read successfully. If the "include_signatures" request URI parameter was not provided in the related request, the payload body shall contain a copy of the artifact file from the VNF package, as defined by ETSI GS NFV-SOL 004 and the "Content-Type" HTTP header shall be set according to the content type of the artifact file. If the artifact is encrypted, the header shall be set to the value "application/cms" (IETF RFC 7193). If the content type cannot be determined, the header shall be set to the value "application/octet-stream". If the "include_signatures" request URI parameter was provided in the related request, the "Content-Type" HTTP header shall be set to "application/zip and the payload body shall contain a ZIP archive which includes: • a copy of the artifact file from the VNF package, as defined by ETSI GS NFV SOL 004; • the related security information (individual signature file and optional related individual certificate file). headers: Content-Type: description: | The MIME type of the body of the response. 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". 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 Version: description: The used API version. style: simple explode: false schema: type: string IndividualOnboardedVnfPackageContent.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 package file has been read successfully according to the request. The response body shall contain the requested part of the VNF 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: Content-Range: required : true style: simple explode: false schema: type: string Content-Type: description: The MIME type of the body of the response. style: simple explode: false required: true 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 Version: description: The used API version. style: simple explode: false schema: type: string IndividualVnfPackageArtifacts.Get.200: description: | 200 OK Shall be returned when the whole content of the archive containing the artifact files has been read successfully. The payload body shall be a ZIP archive containing the requested set of artifacts selected according to the provisions specified above in this clause, and, if the flag "include_signatures" was provided in the related request, the applicable signature files and, if available, the separate certificate files from the VNF package. The "Content-Type" HTTP header shall be set to "application/zip". headers: Content-Type: description: | The MIME type of the body of the response. 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". 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 Version: description: The used API version. style: simple explode: false schema: type: string IndividualVnfPackageArtifact.Get.206: description: | 206 PARTIAL CONTENT If the NFVO supports range requests and the "include_signatures" request URI parameter was not present in the related request, this response shall be returned when a single consecutive byte range from the content of the artifact file, if the NFVO supports range requests has been read successfully according to the request. The response body shall contain the requested part of the VNF 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: Content-Range: required : true style: simple explode: false schema: type: string Content-Type: description: The MIME type of the body of the response. style: simple explode: false required: true 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 Version: description: The used API version. style: simple explode: false schema: type: string IndividualVnfPackageArtifacts.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 archive that would have been returned in a "200 OK" response has been read successfully according to the request. The response body shall contain the requested part of the archive. The "Content-Type" HTTP header shall be set to "application/zip". The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. headers: Content-Range: required : true style: simple explode: false schema: type: string Content-Type: description: | The MIME type of the body of the response. 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". 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 Version: description: The used API version. style: simple explode: false schema: type: string IndividualOnboardedVnfPackageArtifacts.Get.200: description: | 200 OK Shall be returned when the whole content of the archive containing the artifact files has been read successfully. The payload body shall be a ZIP archive containing the requested set of artifacts selected according to the provisions specified above in this clause, and, if the flag "include_signatures" was provided in the related request, the applicable signature files and, if available, the separate certificate files from the VNF package. The "Content-Type" HTTP header shall be set to "application/zip". headers: Content-Type: description: | The MIME type of the body of the response. 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". 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 Version: description: The used API version. style: simple explode: false schema: type: string IndividualOnboardedVnfPackageArtifacts.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 archive that would have been returned in a "200 OK" response has been read successfully according to the request. The response body shall contain the requested part of the archive. The "Content-Type" HTTP header shall be set to "application/zip". The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. headers: Content-Range: required : true style: simple explode: false schema: type: string Content-Type: description: | The MIME type of the body of the response. 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". 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 Version: description: The used API version. style: simple explode: false schema: type: string IndividualOnboardedVnfPackageArtifact.Get.200: description: | 200 OK Shall be returned when the whole content of the artifact file has been read successfully. If the "include_signatures" request URI parameter was not provided in the related request, the payload body shall contain a copy of the artifact file from the VNF package, as defined by ETSI GS NFV-SOL 004 and the "Content-Type" HTTP header shall be set according to the content type of the artifact file. If the artifact is encrypted, the header shall be set to the value "application/cms" (IETF RFC 7193). If the content type cannot be determined, the header shall be set to the value "application/octet-stream". If the "include_signatures" request URI parameter was provided in the related request, the "Content-Type" HTTP header shall be set to "application/zip and the payload body shall contain a ZIP archive which includes: • a copy of the artifact file from the VNF package, as defined by ETSI GS NFV SOL 004; • the related security information (individual signature file and optional related individual certificate file). headers: Content-Type: description: | The MIME type of the body of the response. 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". 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 Version: description: The used API version. style: simple explode: false schema: type: string IndividualOnboardedVnfPackageArtifact.Get.206: description: | 206 PARTIAL CONTENT If the NFVO supports range requests and the "include_signatures" request URI parameter was not present in the related request, this response shall be returned when a single consecutive byte range from the content of the artifact file, if the NFVO supports range requests has been read successfully according to the request. The response body shall contain the requested part of the VNF 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: Content-Range: required : true 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 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 Subscriptions.Post.201: description: | 201 CREATED Shall be returned when the subscription has been created successfully. The response body shall contain a representation of the created "Individual subscription" resource. The HTTP response shall include a "Location" HTTP header that points to the created resource. headers: Content-Type: description: The MIME type of the body of the response. style: simple explode: false schema: type: string Location: description: The resource URI of the created PM Job style: simple explode: false schema: type: string format: url 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: application/json: schema: type: array items: $ref: "definitions/SOL003VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" Subscriptions.Get.200: description: | 200 OK Shall be returned when the list of subscriptions has been queried successfully. The response body shall contain in an array the representations of all active subscriptions of the functional block that invokes the method, i.e. zero or more representations of VNF package management subscriptions as defined in clause 10.5.2.4. If the "filter" URI parameter was supplied in the request, the data in the response body shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013 If the VNFM 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: Content-Type: description: The MIME type of the body of the response. 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 Version: description: The used API version. 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: application/json: schema: type: array items: $ref: "definitions/SOL003VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" IndividualSubscription.Get.200: description: | 200 OK Shall be returned when information about an individual subscription has been read successfully. The response body shall contain a representation of the "Individual subscription" resource. headers: Content-Type: description: The MIME type of the body of the response. 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 Version: description: The used API version. style: simple explode: false schema: type: string content: application/json: schema: $ref: "definitions/SOL003VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" IndividualSubscription.Delete.204: description: | 204 NO CONTENT Shall be returned when the "Individual subscription" resource has been deleted successfully. 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