VNFPackageManagement.yaml 95.5 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
  version: "2.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
  description: ETSI GS NFV-SOL 003 V3.5.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.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/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'
          $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/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
        - $ref: '#/components/parameters/include_signature'
          $ref: '#/components/responses/IndividualVnfPackage.Get.200'
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
  /onboarded_vnf_packages/{vnfdId}:
      - $ref: '#/components/parameters/VnfdId'
        The GET method reads the information of an individual VNF package. Clause 10.4.3.3.2.
      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'
          $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/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'
          $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/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
        - $ref: '#/components/parameters/include_signature'
          $ref: '#/components/responses/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/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'
          $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/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'
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/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'
          $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/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: '#/components/parameters/Range'
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
          $ref: '#/components/responses/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/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: '#/components/parameters/Range'
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
          $ref: '#/components/responses/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/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: '#/components/parameters/Range'
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
          $ref: '#/components/responses/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/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'
          $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/SOL002SOL003_params.yaml#/components/parameters/Accept
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
        - $ref: '#/components/parameters/Range'
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
        - $ref: '#/components/parameters/include_signature'
          $ref: '#/components/responses/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/SOL002SOL003_params.yaml#/components/parameters/Accept
      - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization
      - $ref: ../../components/SOL002SOL003_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/SOL002SOL003_params.yaml#/components/parameters/filter
        - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker
      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/SOL002SOL003_params.yaml#/components/parameters/Authorization
      - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version
        The GET method reads an individual subscription. See clause 10.4.8.3.2.
      parameters:
        - $ref: ../../components/SOL002SOL003_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:
    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 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

    VnfdInIndividualVnfPackage.Get.409:
      description: |
        409 CONFLICT

        Shall be returned upon the following error: The
        operation cannot be executed currently, due to a conflict
        with the state of the resource.
        Typically, this is due to the fact 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.
      headers:
        WWW-Authenticate:
          description: |
            Challenge if the corresponding HTTP request has not provided authorization, or error details if the
            corresponding HTTP request has provided an invalid authorization token.
          style: simple
          explode: false
          schema:
            type: string
        Version:
          description: The used API version.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: |
            The MIME type of the body of the response. Reference: IETF RFC 7231
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"

    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.