NSDManagement.yaml 92.7 KB
Newer Older
  title: SOL005 - NSD Management Interface 
  description: |
    SOL005 - NSD 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/SOL005/issues
  contact:
    name: NFV-SOL WG
    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
  description: ETSI GS NFV-SOL 005 V3.5.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.05.01_60/gs_nfv-sol005v030501p.pdf
servers:
  - url: http://127.0.0.1/nsd/v2
  - url: https://127.0.0.1/nsd/v2
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
    $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
  ###############################################################################
  # NS Descriptors                                                              #
  ###############################################################################
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.2
    parameters:
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        The POST method is used to create a new NS descriptor resource. See clause 5.4.2.3.1.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/CreateNsdInfoRequest'
      responses:
        201:
          $ref: '#/components/responses/NSDescriptors.Post.201'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
        The GET method queries information about multiple NS descriptor resources. See clause 5.4.2.3.2.
      parameters:      
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default
        - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker
      responses:
        200:
          $ref: '#/components/responses/NSDescriptors.Get.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"

  ###############################################################################
  # Individual NS Descriptor                                                    #
  ###############################################################################
  /ns_descriptors/{nsdInfoId}:
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.3
    parameters:
      - $ref: '#/components/parameters/NsdInfoId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
        The GET method reads information about an individual NS descriptor. See clause 5.4.3.3.2.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
      responses:
        200:
          $ref: '#/components/responses/IndividualNSDescriptor.Get.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
        The PATCH method modifies the operational state and/or user defined data of an individual NS descriptor resource.
        See clause 5.4.3.3.4.
      requestBody:
        $ref: '#/components/requestBodies/NsdInfoModifications'
          $ref: '#/components/responses/IndividualNSDescriptor.Patch.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          #    409 CONFLICT

          #    Error: The operation cannot be executed currently,
          #    due to a conflict with the state of the "individual NS descriptor" resource.
          #    Typically, this is due to an operational state
          #    mismatch, i.e. enable an already enabled or
          #    disable an already disabled individual NS
          #    descriptor resource, or the "nsdOnboardingState"
          #    is not ONBOARDED.
          #    The response body shall contain a ProblemDetails
          #    structure, in which the "detail" attribute shall convey
          #    more information about the error.
          $ref: "../responses/SOL005_resp.yaml#/components/responses/409"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/412"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
        The DELETE method deletes an individual NS descriptor resource. See clause 5.4.3.3.5.
          $ref: '#/components/responses/IndividualNSDescriptor.Delete.204'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          #    409 CONFLICT

          #    Error: The operation cannot be executed currently,
          #    due to a conflict with the state of the resource.
          #    Typically, this is due to the fact the NS descriptor
          #    resource is in the enabled operational state (i.e.
          #    nsdOperationalState = ENABLED) or there are running
          #    NS instances using the concerned individual NS
          #    descriptor resource (i.e. nsdUsageState = IN_USE).
          #    The response body shall contain a ProblemDetails
          #    structure, in which the "detail" attribute shall convey
          #    more information about the error.
          $ref: "../responses/SOL005_resp.yaml#/components/responses/409"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"

  ###############################################################################
  ###############################################################################
  /ns_descriptors/{nsdInfoId}/nsd_content:
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4
    parameters:
      - $ref: '#/components/parameters/NsdInfoId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
        The GET method fetches the content of the NSD archive. See clause 5.4.4.3.2.
      parameters:
        - $ref: '#/components/parameters/AcceptTextOrZip'
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Range
      responses:
        200:
          $ref: '#/components/responses/NsdArchiveContent.Get.200'
          #    206 PARTIAL CONTENT

          #    On success, if the NFVO supports range requests,
          #    a single consecutive byte range from the content of
          #    the NSD file is returned.
          #    The response body shall contain the requested part
          #    of the NSD 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.
          $ref: "../responses/SOL005_resp.yaml#/components/responses/206"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          #    406 NOT ACCEPTABLE

          #    If the "Accept" header does not contain at least one
          #    name of a content type for which the NFVO can
          #    provide a representation of the NSD, the NFVO
          #    shall respond with this response code.
          #    The "ProblemDetails" structure may be included
          #    with the "detail" attribute providing more information
          #    about the error.
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          #    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
          #    "nsdOnboardingState" 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/SOL005_resp.yaml#/components/responses/409"
          #    416 RANGE NOT SATISFIABLE

          #    The byte range passed in the "Range" header did
          #    not match any available byte range in the NSD file
          #    (e.g. "access after end of file").
          #    The response body may contain a ProblemDetails
          #    structure.
          $ref: "../responses/SOL005_resp.yaml#/components/responses/416"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
        The PUT method is used to upload the content of an NSD archive. See clause 5.4.4.3.3.
      parameters:
        - $ref: '#/components/parameters/ContentTypeZip'
      responses:
        202:
          $ref: '#/components/responses/NsdArchiveContent.Put.202'
          $ref: '#/components/responses/NsdArchiveContent.Put.204'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          #            409 CONFLICT
          #
          #            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 the
          #            NsdOnboardingState has a value other than
          #            CREATED.
          #            The response body shall contain a ProblemDetails
          #            structure, in which the "detail" attribute shall convey
          #            more information about the error.
          $ref: "../responses/SOL005_resp.yaml#/components/responses/409"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"

  ###############################################################################
  # NSD                                                                         #
  ###############################################################################
  /ns_descriptors/{nsdInfoId}/nsd:
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4a
    parameters:
      - $ref: '#/components/parameters/NsdInfoId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
        The GET method reads the content of the NSD within an NSD archive. See clause 5.4.4a.3.2.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures
        - $ref: '#/components/parameters/AcceptTextOrZip'
          $ref: '#/components/responses/NSD.Get.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/409"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"

  ###############################################################################
  # NSD Archive Manifest                                                        #
  ###############################################################################
  /ns_descriptors/{nsdInfoId}/manifest:
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4b
    parameters:
      - $ref: '#/components/parameters/NsdInfoId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
        The GET method reads the content of the manifest file within an NSD archive. See clasue 5.4.4b.3.2.
        - $ref: '#/components/parameters/AcceptTextOrZip'
        - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures
          $ref: '#/components/responses/NsdArchiveManifest.Get.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          #    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
          #    "nsdOnboardingState" 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/SOL005_resp.yaml#/components/responses/409"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
  ###############################################################################
  # Individual NSD Archive Artifact                                             #
  ###############################################################################
  /ns_descriptors/{nsdInfoId}/artifacts/{artifactPath}:
    #ETSI GS NFV-SOL 005 V3.5.1 location: 5.4.4c
      - $ref: '#/components/parameters/NsdInfoId'
      - $ref: '#/components/parameters/ArtifactPathInNSD'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
        The GET method fetches the content of an individual artifact within an NSD archive. See clause 5.4.4c.3.2.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Range
        - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures
          $ref: '#/components/responses/IndividualNsdArchiveArtifact.Get.200'
          $ref: '#/components/responses/IndividualNsdArchiveArtifact.Get.206'
        400:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
        401:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
        403:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
        404:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
        406:
          #   If the related request contained an "Accept" header not compatible with the Content type
          #   "application/zip" but the "include_signatures" flag was provided, the NFVO shall respond 
          #   with this response code.

          #   The "ProblemDetails" structure may be included with the "detail" attribute providing more 
          #   information about the error.
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
        405:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
        409:
          #   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 "nsdOnboardingState" 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/SOL005_resp.yaml#/components/responses/409"
        416:
          #   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/SOL005_resp.yaml#/components/responses/416"
        500:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
        503:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
        504:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
  
  ###############################################################################
  # PNF Descriptors                                                             #
  ###############################################################################
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.5
    parameters:
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
        The POST method is used to create a new PNF descriptor resource. See clause 5.4.5.3.1.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/CreatePnfdInfoRequest'
      responses:
        201:
          $ref: '#/components/responses/PNFDescriptors.Post.201'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
        The GET method queries information about multiple PNF descriptor resources. See clause 5.4.5.3.2.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default
        - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker
      responses:
        200:
          $ref: '#/components/responses/PNFDescriptors.Get.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
  ###############################################################################
  # Individual PNF Descriptor                                                   #
  ###############################################################################
  /pnf_descriptors/{pnfdInfoId}:
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.6
    parameters:
      - $ref: '#/components/parameters/PnfdInfoId'
        The GET method reads information about an individual PNF descriptor. See clause 5.4.6.3.2.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      responses:
        200:
          $ref: '#/components/responses/IndividualPnfDescriptor.Get.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
        The PATCH method modifies the user defined data of an individual PNF descriptor resource. See clause 5.4.6.3.4.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/PnfdInfoModifications'
      responses:
        200:
          $ref: '#/components/responses/IndividualPnfDescriptor.Patch.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/412"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
    delete:
        The DELETE method deletes an individual PNF descriptor resource. See clause 5.4.6.3.5.
      responses:
        204:
          $ref: '#/components/responses/IndividualPnfDescriptor.Delete.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
  ###############################################################################
  # PNFD Archive Content                                                        #
  ###############################################################################
  /pnf_descriptors/{pnfdInfoId}/pnfd_content:
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.7
    parameters:
      - $ref: '#/components/parameters/PnfdInfoId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
        The GET method fetches the content of the PNFD archive. See clause 5.4.7.3.2.
        - $ref: '#/components/parameters/AcceptText'
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Range
      responses:
        200:
          $ref: '#/components/responses/PnfdArchiveContent.Get.200'
          $ref: '#/components/responses/PnfdArchiveContent.Get.206'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          #    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 pnfdOnboardingState
          #    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/SOL005_resp.yaml#/components/responses/409"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/416"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
        The PUT method is used to upload the content of a PNFD archive. See clause 5.4.7.3.3.
      parameters:
        - $ref: '#/components/parameters/AcceptText'
        - $ref: '#/components/parameters/ContentTypeZip'
      responses:
          $ref: '#/components/responses/PnfdArchiveContent.Put.200'
          $ref: '#/components/responses/PnfdArchiveContent.Put.204'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          #    409 CONFLICT

          #    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 the
          #    PnfdOnboardingState has a value other than
          #    CREATED.
          #    The response body shall contain a ProblemDetails
          #    structure, in which the "detail" attribute shall convey
          #    more information about the error.
          $ref: "../responses/SOL005_resp.yaml#/components/responses/409"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"

  ###############################################################################
  # PNFD                                                                        #
  ###############################################################################
  /pnf_descriptors/{pnfdInfoId}/pnfd:
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.7a
    parameters:
      - $ref: '#/components/parameters/PnfdInfoId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
        The GET method reads the content of the PNFD within a PNFD archive. See clause 5.4.7a.3.2.
        - $ref: '#/components/parameters/AcceptText'
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Range
        - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures
          $ref: '#/components/responses/PNFD.Get.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/409"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"

  ###############################################################################
  ###############################################################################
  /pnf_descriptors/{pnfdInfoId}/manifest:
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.7b
    parameters:
      - $ref: '#/components/parameters/PnfdInfoId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
        The GET method reads the content of the manifest file within a PNFD archive. See clause 5.4.7b.3.2.
        - $ref: '#/components/parameters/AcceptTextOrZip'
        - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures
          $ref: '#/components/responses/PnfdArchiveManifest.Get.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/409"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
  ###############################################################################
  # Individual PNFD Archive Artifact                                            #
  ###############################################################################
  /pnf_descriptors/{pnfdInfoId}/artifacts/{artifactPath}:
    #ETSI GS NFV-SOL 005 V3.5.1 location: 5.4.7c
      - $ref: '#/components/parameters/PnfdInfoId'
      - $ref: '#/components/parameters/ArtifactPathInPNFD'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
    
        The GET method fetches the content of an individual artifact within a PNFD archive. See clause 5.4.7c.3.2.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Range
        - $ref: ../components/SOL005_params.yaml#/components/parameters/include_signatures
          $ref: '#/components/responses/IndividualPnfdArchiveArtifact.Get.200'
          $ref: '#/components/responses/IndividualPnfdArchiveArtifact.Get.206'
        400:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
        401:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
        403:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
        404:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
        406:
          #   If the related request contained an "Accept" header not compatible with the Content type
          #   "application/zip" but the "include_signatures" flag was provided, the NFVO shall respond 
          #   with this response code.

          #   The "ProblemDetails" structure may be included with the "detail" attribute providing more 
          #   information about the error.
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
        405:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
        409:
          #   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 "pnfdOnboardingState" 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/SOL005_resp.yaml#/components/responses/409"
        416:
          #   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/SOL005_resp.yaml#/components/responses/416"
        500:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
        503:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
        504:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"
    
  ###############################################################################
  # Subscriptions                                                               #
  ###############################################################################
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.8
    parameters:
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
        The POST method creates a new subscription. See clause 5.4.8.3.1.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/NsdmSubscriptionRequest'
      responses:
        201:
          $ref: '#/components/responses/Subscriptions.Post.201'
          #    303 SEE OTHER

          #    Shall be returned when a subscription with the
          #    same callbackURI and the same filter already
          #    exits 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 subscription resource.
          #    The response body shall be empty.
          $ref: "../responses/SOL005_resp.yaml#/components/responses/303"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/422"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_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 5.4.8.3.2.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
      responses:
        200:
          $ref: '#/components/responses/Subscriptions.Get.200'
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"