NSDManagement.yaml 122 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.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1
  description: ETSI GS NFV-SOL 005 V3.6.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.
        - in: query
          name: filter
          description: >
            Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013.
            The NFVO shall support receiving this filtering parameter as part of the URI query string. 
            The OSS/BSS may supply this parameter.
            All attribute names that appear in the NsdInfo and in data types referenced from it shall 
            be supported by the NFVO in the filter expression.
          schema:
            type: string
        - $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
        - in: query
          name: exclude_default
          description: >
            Indicates to exclude the following complex attributes from the response. See clause 5.3 of ETSI GS 
            NFV-SOL 013 for details. The NFVO shall support this parameter.
            The following attributes shall be excluded from the NsdInfo structure in the response body if this 
            parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", 
            "exclude_default" are provided:
            -	userDefinedData
            -	onboardingFailureDetails
          schema:
            type: string
        - $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"
          $ref: '#/components/responses/IndividualNSDescriptor.Patch.409'
          $ref: '#/components/responses/IndividualNSDescriptor.Patch.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"
          $ref: '#/components/responses/IndividualNSDescriptor.Delete.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'
          $ref: '#/components/responses/NsdArchiveContent.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: '#/components/responses/NsdArchiveContent.Get.409'
          $ref: '#/components/responses/NsdArchiveContent.Get.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"
          $ref: '#/components/responses/NsdArchiveContent.Put.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: '#/components/responses/NSD.Get.406'
          $ref: '#/components/responses/NSD.Get.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'
        - in: query
          name: include_signatures
          description: >
            If this parameter is provided, the NFVO shall return the manifest and related security information 
            (signature and certificate) either in a single text file if the signature and certificate are included 
            in the manifest file, or in a zip file containing the manifest and the certificate file, if this is 
            provided as a separate file in the NSD archive.
            If this parameter is not given, the NFVO shall provide only a copy of the manifest file, as onboarded. 
            If the security information is included in the onboarded manifest, it shall also be included in the 
            returned copy.
            This URI query parameter is a flag, i.e. it shall have no value. The NFVO shall support this parameter.
          schema:
            type: string
          $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"
          $ref: '#/components/responses/NsdArchiveManifest.Get.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
        - in: query
          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.
          schema:
            type: string
          $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:
          $ref: '#/components/responses/IndividualNsdArchiveArtifact.Get.406'
        405:
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
        409:
          $ref: '#/components/responses/IndividualNsdArchiveArtifact.Get.409'
          $ref: '#/components/responses/IndividualNsdArchiveArtifact.Get.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:
        - in: query
          name: filter
          description: >
            Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013.
            The NFVO shall support receiving this filtering parameter as part of the URI query string. 
            The OSS/BSS may supply this parameter.
            All attribute names that appear in the PnfdInfo and in data types referenced from it shall 
            be supported by the NFVO in the filter expression. 
          schema:
            type: string
        - $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
        - in: query
          name: exclude_default
          description: >
            Indicates to exclude the following complex attributes from the response. See clause 5.3 of ETSI GS 
            NFV-SOL 013for details. The NFVO shall support this parameter.
            The following attributes shall be excluded from the PnfdInfo structure in the response body if this 
            parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", 
            "exclude_default" are provided:
            -	userDefinedData
            -	onboardingFailureDetails
          schema:
            type: string
        - $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: '#/components/responses/IndividualPnfDescriptor.Patch.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"
          $ref: '#/components/responses/PnfdArchiveContent.Get.409'
          $ref: '#/components/responses/PnfdArchiveContent.Get.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"
          $ref: '#/components/responses/PnfdArchiveContent.Put.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: '#/components/responses/PNFD.Get.406'
          $ref: '#/components/responses/PNFD.Get.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'
        - in: query
          name: include_signatures
          description: >
            If this parameter is provided, the NFVO shall return the manifest and related security information 
            (signature and certificate) either in a single text file if the signature and certificate are included 
            in the manifest file, or in a zip file containing the manifest and the certificate file, if this is 
            provided as a separate file in the PNFD archive.
            If this parameter is not given, the NFVO shall provide only a copy of the manifest file, as onboarded. 
            If the security information is included in the onboarded manifest, it shall also be included in the 
            returned copy. This URI query parameter is a flag, i.e. it shall have no value.
            The NFVO shall support this parameter.
          schema:
            type: string
          $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: '#/components/responses/PnfdArchiveManifest.Get.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
        - in: query
          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.
          schema:
            type: string
          $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:
          $ref: '#/components/responses/IndividualPnfdArchiveArtifact.Get.406'
          $ref: '#/components/responses/IndividualPnfdArchiveArtifact.Get.409'
          $ref: '#/components/responses/IndividualPnfdArchiveArtifact.Get.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'
          $ref: '#/components/responses/Subscriptions.Post.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: '#/components/responses/Subscriptions.Post.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.
        - in: query
          name: filter
          description: >
            Attribute filtering expression according to clause 5.2 of ETSI GS NFV SOL 013.
            The NFVO shall support receiving this parameter as part of the URI query string. 
            The OSS/BSS may supply this parameter.
            All attribute names that appear in the NsdmSubscription and in data types referenced 
            from it shall be supported by the NFVO in the filter expression.
          schema:
            type: string
        - $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"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"

  ###############################################################################
  # Individual Subscription                                                     #
  ###############################################################################
  /subscriptions/{subscriptionId}:
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.9    
    parameters:
      - $ref: '#/components/parameters/SubscriptionId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
        The GET method retrieves information about a subscription by reading an individual subscription resource.
        See clause 5.4.9.3.2.
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
      responses:
        200:
          $ref: '#/components/responses/IndividualSubscription.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"
    delete:
        The DELETE method terminates an individual subscription. See clause 5.4.9.3.5.
      responses:
        204:
          $ref: '#/components/responses/IndividualSubscription.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"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
          $ref: "../responses/SOL005_resp.yaml#/components/responses/504"

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