VNFPackageManagement.yaml 102 KB
Newer Older
openapi: 3.0.2
  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
ishaqm's avatar
ishaqm committed
  version: "2.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
ishaqm's avatar
ishaqm committed
  description: ETSI GS NFV-SOL 003 V3.7.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.07.01_60/gs_NFV-SOL003v030701p.pdf
servers:
  - url: http://127.0.0.1/vnfpkgm/v2
  - url: https://127.0.0.1/vnfpkgm/v2
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
  /api_versions:
    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
  ###############################################################################
  # VNF packages                                                                #
  ###############################################################################
  /onboarded_vnf_packages:
    #SOL003 location: 10.4.2
    get:
      description: |
        The GET method queries the information of the VNF packages matching the filter. See clause 10.4.2.3.2.
      parameters:
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: '#/components/parameters/filter_vnf_packages'
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/all_fields_nfvo
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/fields_nfvo
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/exclude_fields_nfvo
        - $ref: '#/components/parameters/exclude_default_vnf_packages'
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_nfvo
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
      responses:
        200:
          $ref: '#/components/responses/OnboardedVnfPackages.Get.200'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  /vnf_packages:
    $ref: '#/paths/~1onboarded_vnf_packages'
  ###############################################################################
  # Individual VNF package                                                      #
  ###############################################################################
  /vnf_packages/{vnfPkgId}:
    parameters:
      - $ref: '#/components/parameters/VnfPkgId'
      description: |
        The GET method reads the information of an individual VNF package. Clause 10.4.3.3.2.
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
          $ref: '#/components/responses/IndividualVnfPackage.Get.200'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  /onboarded_vnf_packages/{vnfdId}:
      - $ref: '#/components/parameters/VnfdId'
        The GET method reads the information of an individual VNF package. Clause 10.4.3.3.2.
      parameters:
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
      responses:
        200:
          $ref: '#/components/responses/IndividualOnboardedVnfPackage.Get.200'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  ###############################################################################
  # VNFD in an individual VNF package                                           #
  ###############################################################################
  /vnf_packages/{vnfPkgId}/vnfd:
    parameters:
      - $ref: '#/components/parameters/VnfPkgId'
        The GET method reads the content of the VNFD within a VNF package. See clause 10.4.4.3.2.
      parameters:
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
        - $ref: '#/components/parameters/include_signatures_content_of_vnfd'
      responses:
        200:
          $ref: '#/components/responses/VnfdInIndividualVnfPackage.Get.200'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: '#/components/responses/VnfdInIndividualVnfPackage.Get.409'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  /onboarded_vnf_packages/{vnfdId}/vnfd:
      - $ref: '#/components/parameters/VnfdId'
        The GET method reads the content of the VNFD within a VNF package. See clause 10.4.4.3.2.
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
        - $ref: '#/components/parameters/include_signatures_content_of_vnfd'
          $ref: '#/components/responses/VnfdInIndividualOnboardedVnfPackage.Get.200'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: '#/components/responses/VnfdInIndividualOnboardedVnfPackage.Get.409'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  ###############################################################################
  ###############################################################################
  /vnf_packages/{vnfPkgId}/manifest:
    parameters:
      - $ref: '#/components/parameters/VnfPkgId'
        The GET method reads the content of the manifest within a VNF package. See clause 10.4.4a.3.1.
      parameters:
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
        - $ref: '#/components/parameters/include_signatures_content_of_manifest'
      responses:
        200:
          $ref: '#/components/responses/ManifestInIndividualVnfPackage.Get.200'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: '#/components/responses/ManifestInIndividualVnfPackage.Get.406'
          $ref: '#/components/responses/ManifestInIndividualVnfPackage.Get.409'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  /onboarded_vnf_packages/{vnfdId}/manifest:
      - $ref: '#/components/parameters/VnfdId'
Giacomo Bernini's avatar
Giacomo Bernini committed
    get:
        The GET method reads the content of the manifest within a VNF package. See clause 10.4.4a.3.1.
Giacomo Bernini's avatar
Giacomo Bernini committed
      parameters:
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
        - $ref: '#/components/parameters/include_signatures_content_of_manifest'
Giacomo Bernini's avatar
Giacomo Bernini committed
      responses:
        200:
          $ref: '#/components/responses/ManifestInIndividualOnboardedVnfPackage.Get.200'
Giacomo Bernini's avatar
Giacomo Bernini committed
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
Giacomo Bernini's avatar
Giacomo Bernini committed
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
Giacomo Bernini's avatar
Giacomo Bernini committed
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
Giacomo Bernini's avatar
Giacomo Bernini committed
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
Giacomo Bernini's avatar
Giacomo Bernini committed
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini's avatar
Giacomo Bernini committed
        406:
          $ref: '#/components/responses/ManifestInIndividualOnboardedVnfPackage.Get.406'
Giacomo Bernini's avatar
Giacomo Bernini committed
        409:
          $ref: '#/components/responses/ManifestInIndividualOnboardedVnfPackage.Get.409'
Giacomo Bernini's avatar
Giacomo Bernini committed
        416:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
Giacomo Bernini's avatar
Giacomo Bernini committed
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
Giacomo Bernini's avatar
Giacomo Bernini committed
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
Giacomo Bernini's avatar
Giacomo Bernini committed
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  ###############################################################################
  ###############################################################################
  /vnf_packages/{vnfPkgId}/package_content:
    parameters:
      - $ref: '#/components/parameters/VnfPkgId'
        The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO.
        See clause 10.4.5.3.2.
      parameters:
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: '#/components/parameters/Range'
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
      responses:
        200:
          $ref: '#/components/responses/IndividualVnfPackageContent.Get.200'
          $ref: '#/components/responses/IndividualVnfPackageContent.Get.206'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: '#/components/responses/IndividualVnfPackageContent.Get.409'
          $ref: '#/components/responses/IndividualVnfPackageContent.Get.416'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  /onboarded_vnf_packages/{vnfdId}/package_content:
      - $ref: '#/components/parameters/VnfdId'
        The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO.
        See clause 10.4.5.3.2.
      parameters:
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: '#/components/parameters/Range'
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
          $ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.200'
          $ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.206'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.409'
          $ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.416'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"

  ###############################################################################
  # VNF package artifacts                                                       #
  ###############################################################################
  /vnf_packages/{vnfPkgId}/artifacts:
      - $ref: '#/components/parameters/VnfPkgId'
        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.
        See clause 10.4.5a.3.2.
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: '#/components/parameters/Range'
        - $ref: '#/components/parameters/exclude_all_mano_artifacts'
        - $ref: '#/components/parameters/exclude_all_non_mano_artifacts'
        - $ref: '#/components/parameters/include_external_artifacts'
        - $ref: '#/components/parameters/select_non_mano_artifact_sets'
        - $ref: '#/components/parameters/include_signatures_artifacts'
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
          $ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.200'
          $ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.206'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.409'
          $ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.416'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  /onboarded_vnf_packages/{vnfdId}/artifacts:
      - $ref: '#/components/parameters/VnfdId'
        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.
        See clause 10.4.5a.3.2.
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: '#/components/parameters/Range'
        - $ref: '#/components/parameters/exclude_all_mano_artifacts'
        - $ref: '#/components/parameters/exclude_all_non_mano_artifacts'
        - $ref: '#/components/parameters/include_external_artifacts'
        - $ref: '#/components/parameters/select_non_mano_artifact_sets'
        - $ref: '#/components/parameters/include_signatures_artifacts'
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
          $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.200'
          $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.206'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.409'
          $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.416'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"

  ###############################################################################
  # Individual VNF package artifact                                             #
  ###############################################################################
  /vnf_packages/{vnfPkgId}/artifacts/{artifactPath}:
      - $ref: '#/components/parameters/ArtifactPath'
      - $ref: '#/components/parameters/VnfPkgId'
        The GET method fetches the content of an artifact within a VNF package. See clause 10.4.6.3.2.
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: '#/components/parameters/Range'
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
        - $ref: '#/components/parameters/include_signatures_content_of_artifact'
      responses:
        200:
          $ref: '#/components/responses/IndividualVnfPackageArtifact.Get.200'
          $ref: '#/components/responses/IndividualVnfPackageArtifact.Get.206'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: '#/components/responses/IndividualVnfPackageArtifact.Get.409'
          $ref: '#/components/responses/IndividualVnfPackageArtifact.Get.416'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  /onboarded_vnf_packages/{vnfdId}/artifacts/{artifactPath}:
      - $ref: '#/components/parameters/ArtifactPath'
      - $ref: '#/components/parameters/VnfdId'
        The GET method fetches the content of an artifact within a VNF package. See clause 10.4.6.3.2.
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
        - $ref: '#/components/parameters/Range'
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
        - $ref: '#/components/parameters/include_signatures_content_of_artifact'
          $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.200'
          $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.206'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.409'
          $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.416'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  ###############################################################################
  # Subscriptions                                                               #
  ###############################################################################
  /subscriptions:
    parameters:
      - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
      - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
      - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
        The POST method creates a new subscription. See clause 10.4.7.3.1.
      requestBody:
        $ref: '#/components/requestBodies/PkgmSubscriptionRequest'
      responses:
        201:
          $ref: '#/components/responses/Subscriptions.Post.201'
          $ref: '#/components/responses/Subscriptions.Post.303'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: '#/components/responses/Subscriptions.Post.422'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
        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. See clause 10.4.7.3.2.
      parameters:
        - $ref: '#/components/parameters/filter_subscriptions'
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_nfvo
      responses:
        200:
          $ref: '#/components/responses/Subscriptions.Get.200'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  ###############################################################################
  # Individual subscription                                                     #
  ###############################################################################
  /subscriptions/{subscriptionId}:
    #SOL003 location: 10.4.8
    parameters:
      - $ref: '#/components/parameters/SubscriptionId'
      - $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
      - $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
        The GET method reads an individual subscription. See clause 10.4.8.3.2.
      parameters:
        - $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
      responses:
        200:
          $ref: '#/components/responses/IndividualSubscription.Get.200'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
        The DELETE method terminates an individual subscription. See clause 10.4.8.3.5.
      responses:
        204:
          $ref: '#/components/responses/IndividualSubscription.Delete.204'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"

components:
  parameters:
    filter_vnf_packages:
      name: filter
      description: >
        Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013 [8].
        The NFVO shall support receiving this parameter as part of the URI query string. The
        VNFM may supply this parameter.
        All attribute names that appear in the VnfPkgInfo and in data types referenced from it
        shall be supported by the NFVO in the filter expression.
      in: query
      required: false
      schema:
        type: string

    exclude_default_vnf_packages:
      name: exclude_default
      in: query
      description: >-
        Indicates to exclude the following complex attributes from the response. See clause 5.3
        of ETSI GS NFV-SOL 013 [8] for details.
        The NFVO shall support this parameter.
        The following attributes shall be excluded from the VnfPkgInfo structure in the response
        body if this parameter is provided, or none of the parameters "all_fields," "fields",
        "exclude_fields", "exclude_default" are provided:
          - softwareImages
          - additionalArtifacts
          - userDefinedData
          - checksum
          - onboardingFailureDetails.
      required: false
      schema:
        type: string

    exclude_all_mano_artifacts:
      name: exclude_all_mano_artifacts
      description: >
        Flag (i.e. parameter without value) that instructs the NFVO to exclude
        the set of additional MANO artifacts (i.e. those that are not images)
        from the response message content.
        The NFVO shall support this parameter. The VNFM may supply this
        parameter.
      in: query
      required: false
      schema:
        type: string

    exclude_all_non_mano_artifacts:
      name: exclude_all_non_mano_artifacts 
      description: >
        Flag (i.e. parameter without value) that instructs the NFVO to exclude
        the set of non-MANO artifacts from the response message content.
        The NFVO shall support this parameter. The VNFM may supply this
        parameter.
      in: query
      required: false
      schema:
        type: string

    include_external_artifacts:
      name: include_external_artifacts 
      description: >
        Flag (i.e. parameter without value) that instructs the NFVO to include
        external artifacts in the response message content. It shall not be treated
        as an error if this flag is provided but there is no external artifact to
        include in the result. If this parameter is missing, no external artifacts
        shall be included.
        The NFVO shall support this parameter. The VNFM may supply this
        parameter.
      in: query
      required: false
      schema:
        type: string

    select_non_mano_artifact_sets:
      name: select_non_mano_artifact_sets
      description: >
        Comma-separated list of non-MANO artifact set identifiers for which
        the artifacts are to be included in the response body.
        The NFVO should support this parameter. If the NFVO does not
        support this parameter, it shall ignore it, i.e. provide a response as if
        no parameter was provided. The VNFM may supply this parameter.
      in: query
      required: false
      schema:
        type: string

    include_signatures_artifacts:
      name: include_signatures
      description: >
        If this parameter is provided, the NFVO shall include in the ZIP
        archive the individual signatures and, if provided, related certificates
        for the included artifacts, in the format in which they are provided in
        the VNF package.
        If this parameter is not given, the NFVO shall only provide copies of
        the artifact files.
        This URI query parameter is a flag, i.e. it shall have no value.
        The NFVO shall support this parameter.
      in: query
      required: false
      schema:
        type: string
 
    include_signatures_content_of_artifact:
      name: include_signatures
      description: >
        If this parameter is provided, the NFVO shall return the artifact and related security
        information (such as signature and optional certificate) in a ZIP archive.
        If this parameter is not given, the NFVO shall provide only a copy of the artifact file.
        This URI query parameter is a flag, i.e. it shall have no value.
        The NFVO shall support this parameter.
      in: query
      required: false
      schema:
        type: string

    filter_subscriptions:
      name: filter
      description: >
        Attribute-based filtering expression according to clause 5.2 of ETSI
        GS NFV-SOL 013 [8].
        The NFVO shall support receiving this parameter as part of the URI query string.
        The VNFM may supply this parameter.
        All attribute names that appear in the PkgmSubscription and in data types
        referenced from it shall be supported by the NFVO in the filter expression.
      in: query
      required: false
      schema:
        type: string

    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.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        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 message content of that response.
      required: true
      style: simple
      explode: false
      schema:
        type: string

    include_signatures_content_of_vnfd:
      name: include_signatures
      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

    include_signatures_content_of_manifest:
      name: include_signatures
      in: query
      description: |
        If this parameter is provided, the NFVO shall return the manifest and related
        security information (such as certificate) in a ZIP archive.
        If this parameter is not given, the NFVO shall provide only a copy of the manifest
        file.
        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: