VNFPackageManagement.yaml 62.2 KB
Newer Older
rameshnaraya's avatar
rameshnaraya committed
  title: SOL005 - VNF Package Management Interface
rameshnaraya's avatar
rameshnaraya committed
    SOL005 - 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 and has not been
    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
    Group Specification takes precedence.
    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
  license:
    name: "ETSI Forge copyright notice"
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
    name: "NFV-SOL WG"
externalDocs:
  description: ETSI GS NFV-SOL 005 V2.4.1
  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf
basePath: "/vnfpkgm/v1"
schemes:
  - https
consumes:
  - "application/json"
produces:
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
  '/api-versions':
    get:
      summary: Retrieve API version information
      description: >
        The GET method reads API version information. This method shall follow the provisions specified in
        table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not
        supported.
      parameters:
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: false
          type: string
      responses:
        200:
          description: >
            200 OK
            
            API version information was read successfully.
            The response body shall contain API version information, as defined in clause 4.4.1.7.
          schema:
            $ref: '../definitions/SOL005_def.yaml#/definitions/ApiVersionInformation'
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            Version:
              description: The used API version.
              type: string
              maximum: 1
              minimum: 1
        400: { $ref: '../responses/SOL005_resp.yaml#/responses/400' }
        401: { $ref: '../responses/SOL005_resp.yaml#/responses/401' }
        403: { $ref: '../responses/SOL005_resp.yaml#/responses/403' }
        404: { $ref: '../responses/SOL005_resp.yaml#/responses/404' }
        405: { $ref: '../responses/SOL005_resp.yaml#/responses/405' }
        406: { $ref: '../responses/SOL005_resp.yaml#/responses/406' }
        413: { $ref: '../responses/SOL005_resp.yaml#/responses/413' }
        414: { $ref: '../responses/SOL005_resp.yaml#/responses/414' }
        416: { $ref: '../responses/SOL005_resp.yaml#/responses/416' }
        422: { $ref: '../responses/SOL005_resp.yaml#/responses/422' }
        429: { $ref: '../responses/SOL005_resp.yaml#/responses/429' }
        500: { $ref: '../responses/SOL005_resp.yaml#/responses/500' }
        503: { $ref: '../responses/SOL005_resp.yaml#/responses/503' }
        504: { $ref: '../responses/SOL005_resp.yaml#/responses/504' }
  ###############################################################################
  # VNF Packages                                                                #
  ###############################################################################
  '/vnf_packages':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.2
    get:
rameshnaraya's avatar
rameshnaraya committed
      summary: Query VNF packages information.
rameshnaraya's avatar
rameshnaraya committed
        The GET method queries the information of the VNF packages matching the filter.
        This method shall follow the provisions specified in the 
        Tables 9.4.2.3.2-1 and 9.4.2.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
      parameters:
        - name: "filter"
          in: "query"
          required: false
          type: "string"
            Attribute-based filtering expression according to clause 4.3.2.
            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 VnfPkgInfo and in data types referenced from it shall
            be supported by the NFVO in the filter expression.
        - name: "all_fields"
          in: "query"
          required: false
          type: "string"
rameshnaraya's avatar
rameshnaraya committed
            Include all complex attributes in the response. See clause 4.3.3 for details. The NFVO
            shall support this parameter.
rameshnaraya's avatar
rameshnaraya committed
            Complex attributes to be included into the response. See clause 4.3.3 for details. The
            NFVO should support this parameter.         
        - name: "exclude_fields"
          in: "query"
          required: false
          type: "string"
rameshnaraya's avatar
rameshnaraya committed
            Complex attributes to be excluded from the response. See clause 4.3.3 for details. The
            NFVO should support this parameter.
        - name: "exclude_default"
          in: "query"
          required: false
          type: "string"
rameshnaraya's avatar
rameshnaraya committed
            Indicates to exclude the following complex attributes from the response. See clause 4.3.3
            for details.
            The NFVO shall support this parameter.
            The following attributes shall be excluded from the VnfPkgInfo structure in the response
            body if this parameter is provided, or none of the parameters "all_fields," "fields",
            "exclude_fields", "exclude_default" are provided:
            - softwareImages
            - additionalArtifacts
            - userDefinedData
rameshnaraya's avatar
rameshnaraya committed
            - checksum
        - name: nextpage_opaque_marker
          in: query
          description: >
            Marker to obtain the next page of a paged response. Shall be supported by the NFVO
            if the NFVO supports alternative 2 (paging) according to clause 4.7.2.1 for this resource.
          required: false
          type: string
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
rameshnaraya's avatar
rameshnaraya committed
          description: >
            Information about zero or more VNF packages was successfully queried.
            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 9.5.2.5.
            If the NFVO supports alternative 2 (paging) according to 
            clause 4.7.2.1 for this resource, inclusion of the Link HTTP header 
            in this response shall follow the provisions in clause 4.7.2.3.
rameshnaraya's avatar
rameshnaraya committed
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
              type: "string"
rameshnaraya's avatar
rameshnaraya committed
              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.
              maximum: 1
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
            Link:
              description: >
                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
              type: string
              maximum: 1
              minimum: 0
rameshnaraya's avatar
rameshnaraya committed
            type: array
rameshnaraya's avatar
rameshnaraya committed
              properties:
                VnfPkgInfo:
                  $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"
rameshnaraya's avatar
rameshnaraya committed
      summary: Create a new individual VNF package resource.
rameshnaraya's avatar
rameshnaraya committed
        The POST method creates a new individual VNF package resource.
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
        - name: "body"
          in: "body"
          required: true
          schema:
            type: "object"
            required:
              - "CreateVnfPkgInfoRequest"
            properties:
              CreateVnfPkgInfoRequest:
                $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest"
            description: >
              IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2

            201 Created            
            An individual VNF package resource has been created successfully.
            The response body shall contain a representation of
            the new individual VNF package resource, as defined
            in clause 9.5.2.4.
            The HTTP response shall include a "Location" HTTP
            header that contains the resource URI of the individual
            VNF package resource.
            properties:
              VnfPkgInfo:
                $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo"
            Content-Type:
              description: >
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message
                body.
              maximum: 1
            WWW-Authenticate:
              type: "string"
              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.
              maximum: 1
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
  ###############################################################################
  # Individual VNF Package                                                      #
  ###############################################################################
  '/vnf_packages/{vnfPkgId}':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.3
    parameters:
      - name: "vnfPkgId"
        description: >
          Identifier of the VNF package. The identifier is allocated by the NFVO.  
        in: "path"
        required: true
rameshnaraya's avatar
rameshnaraya committed
      summary: Read information about an individual VNF package.
        The GET method reads the information of a VNF package.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
          description: >
            200 OK
            Information of the VNF package was read successfully.
            The response body shall contain the VNF package
            info representation defined in clause 9.5.2.5.     
rameshnaraya's avatar
rameshnaraya committed
            properties:
              VnfPkgInfo:
                $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo"
          headers:
            Content-Type:
              type: "string"
              description: >
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message body.
            WWW-Authenticate:
              type: "string"
              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.
              maximum: 1
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"
rameshnaraya's avatar
rameshnaraya committed
      summary: Delete an individual VNF package.
        The DELETE method deletes an individual VNF Package resource.
      parameters:
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
            204 No Content
rameshnaraya's avatar
rameshnaraya committed
            The VNF package was deleted successfully.
            The response body shall be empty.
        409:
          $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"
rameshnaraya's avatar
rameshnaraya committed
      summary: Update information about an individual VNF package.
        "The PATCH method updates the information of a VNF package."
        "This method shall follow the provisions specified in the 
        Tables 9.4.3.3.4-1 and 9.4.3.3.4-2 for URI query parameters,
        request and response data structures, and response codes."
      parameters:
        - name: "body"
          in: "body"
          required: true
          schema:
            type: "object"
            required:
              - "VnfPkgInfoModifications"
            properties:
              VnfPkgInfoModifications:
                $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications"
            description: >
              Parameters for VNF package information modifications.
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
rameshnaraya's avatar
rameshnaraya committed
          description: >
rameshnaraya's avatar
rameshnaraya committed
            The operation was completed successfully.
rameshnaraya's avatar
rameshnaraya committed
            modifications for an "Individual VNF
            package" resource
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
              type: "string"
              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.
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
rameshnaraya's avatar
rameshnaraya committed
            properties:
rameshnaraya's avatar
rameshnaraya committed
                $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications"
        409:
          $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"

  ###############################################################################
  # VNFD in an individual VNF package                                           #
  ###############################################################################
  '/vnf_packages/{vnfPkgId}/vnfd':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.4
    parameters:
      - name: vnfPkgId
        description: >
          Identifier of the VNF package. The identifier is allocated by the NFVO.
rameshnaraya's avatar
rameshnaraya committed
      summary: Read VNFD of an on-boarded VNF package.
rameshnaraya's avatar
rameshnaraya committed
        The GET method reads the content of the VNFD within a VNF package.
rameshnaraya's avatar
rameshnaraya committed
        The VNFD can be implemented as a single file or as a collection of multiple files. If the VNFD is implemented in the
        form of multiple files, a ZIP file embedding these files shall be returned. If the VNFD is implemented as a single file,
        either that file or a ZIP file embedding that file shall be returned.
        The selection of the format is controlled by the "Accept" HTTP header passed in the GET request.
        • If the "Accept" header contains only "text/plain" and the VNFD is implemented as a single file, the file shall
        be returned; otherwise, an error message shall be returned.
        • If the "Accept" header contains only "application/zip", the single file or the multiple files that make up the
        VNFD shall be returned embedded in a ZIP file.
        • If the "Accept" header contains both "text/plain" and "application/zip", it is up to the NFVO to choose the
        format to return for a single-file VNFD; for a multi-file VNFD, a ZIP file shall be returned.
        The default format of the ZIP file shall be the one specified in ETSI GS NFV-SOL 004 [5] where only the YAML files
        representing the VNFD, and information necessary to navigate the ZIP file and to identify the file that is the entry point
        for parsing the VNFD (such as TOSCA-meta or manifest files or naming conventions) are included.
        This method shall follow the provisions specified in the Tables 9.4.4.3.2-1 and 9.4.4.3.2-2 for URI query parameters,
rameshnaraya's avatar
rameshnaraya committed
        request and response data structures, and response codes.
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
          enum:
            - text/plain
            - application/zip
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string

            On success, the content of the VNFD is returned.
            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.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
              type: "string"
              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.
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          description: >
            "406 Not AccepTable"

          $ref: "responses/SOL005_resp.yaml#/responses/406"

          $ref: "responses/VNFPackageManagement_resp.yaml#/responses/406-state-conflict"
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"

  ###############################################################################
  # VNF Package Content                                                         #
  ###############################################################################
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.5
    parameters:
      - name: "vnfPkgId"
        description: >
          Identifier of the VNF package. The identifier is allocated by the NFVO.
        in: "path"
        required: true
rameshnaraya's avatar
rameshnaraya committed
      summary: Fetch an on-boarded VNF package.
rameshnaraya's avatar
rameshnaraya committed
        The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO.
        This method shall follow the provisions specified in the Tables 9.4.5.3.2-1 and 9.4.5.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
          enum:
            - application/zip
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: "Range"
          in: "header"
          required: false
          type: "string"
          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 NFVO does not support range requests, it should return the
            whole file with a 200 OK response instead.
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string

            On success, a copy of the VNF package file is returned.
            The response body shall include a copy of the VNF package file.
            The "Content-Type" HTTP header shall be set
            according to the type of the file, i.e. to "application/zip"
            for a VNF Package as defined in ETSI
            GS NFV-SOL 004 [5].
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
              type: "string"
              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.
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
        206:
          $ref: "responses/SOL005_resp.yaml#/responses/206"
        409:
          $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING"
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"

rameshnaraya's avatar
rameshnaraya committed
      summary: Upload a VNF package by providing the content of the VNF package.
rameshnaraya's avatar
rameshnaraya committed
        The PUT method uploads the content of a VNF package.
        This method shall follow the provisions specified in the 
        Tables 9.4.5.3.3-1 and 9.4.5.3.3-2 for URI query parameters,
        request and response data structures, and response codes.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
          enum:
            - application/zip
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - in: formData
          name: file
          required: false
          type: file
          description: >
            The payload body contains a ZIP file that represents the VNF package.
            The "Content-Type" HTTP header shall be set according to the
            type of the file, i.e. to "application/zip" for a VNF Package as
            defined in ETSI GS NFV-SOL 004 [5].
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
            202 Accepted
rameshnaraya's avatar
rameshnaraya committed
            The VNF package was accepted for uploading, but the
            processing has not been completed. It is expected to
            take some time for processing.
            The response body shall be empty.
          $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING-NOT-CREATED"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"
  ###############################################################################
  # Upload VNF package from URI task                                            #
  ###############################################################################
  '/vnf_packages/{vnfPkgId}/package_content/upload_from_uri':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.6   
    post:
rameshnaraya's avatar
rameshnaraya committed
      summary: Upload a VNF package by providing the address information of the VNF package.
        The POST method provides the information for the NFVO to get the content of a VNF package.
        This method shall follow the provisions specified in the 
        Tables 9.4.6.3.1-1 and 9.4.6.3.1-2 for URI query parameters,
        request and response data structures, and response codes.        
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string

        - name: "vnfPkgId"
          description: >
            Identifier of the VNF package. The identifier is allocated by the NFVO.
          in: "path"
          required: true
          type: "string"

        - name: "body"
          in: "body"
          required: true
          schema:
            type: "object"
            required:
              - "UploadVnfPkgFromUriRequest"
            properties:
              UploadVnfPkgFromUriRequest:
                $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/UploadVnfPkgFromUriRequest"
            description: >
              The payload body contains the address information based on
              which the NFVO can obtain the content of the VNF package.
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
rameshnaraya's avatar
rameshnaraya committed
          description: >
            202 Accepted
rameshnaraya's avatar
rameshnaraya committed
            The information about the VNF package was received
            successfully, but the on-boarding has not been
            completed. It is expected to take some time for processing.
rameshnaraya's avatar
rameshnaraya committed
            The response body shall be empty.
        409:
          $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING-NOT-CREATED"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"

  ###############################################################################
  # Individual VNF package artifact                                             #
  ###############################################################################
  '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.7
    parameters:
      - name: vnfPkgId
        description: >
          The identifier is allocated by the NFVO.
          This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or
          VnfPackageChangeNotification.
        in: path
        type: string
        required: true
      - name: artifactPath
        description: >
          Sequence of one or path segments representing the path of the artifact 
          within the VNF package.
          EXAMPLE: foo/bar/run.sh
          This identifier can be retrieved from the "artifactPath" attribute of 
          the applicable "additionalArtifacts" entry in the body of the response 
          to a GET request querying the "Individual VNF package" or the 
          "VNF packages" resource.
        in: path
        type: string
        required: true
    get:
      summary: Fetch individual VNF package artifact.
      description: >
        The GET method fetches the content of an artifact within a VNF package.
        This method shall follow the provisions specified in the
        Tables 9.4.7.3.2-1 and 9.4.7.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Range
          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 NFVO does not support range requests, it should return the
            whole file with a 200 OK response instead.
          in: header
          type: string
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
      responses:
        200:
          description: >
            200 OK
             On success, the content of the artifact is returned.
            The payload body shall contain a copy of the artifact file from
            the VNF package, as defined by ETSI GS NFV-SOL 004.
            The "Content-Type" HTTP header shall be set according to the
            content type of the artifact file. If the content type cannot be
            determined, the header shall be set to the value
            "application/octet-stream".
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1