swagger: "2.0"

info:
  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
  title: SOL002 - VNF Configuration interface
  description: >
    SOL002 - VNF Configuration 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
  contact:
    name: NFV-SOL WG

externalDocs:
  description: ETSI GS NFV-SOL 002 V2.5.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf

basePath: /vnfconfig/v1

schemes:
  - http
  - https

consumes:
  - application/json

produces:
  - application/json

paths:
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
  '/api-versions':
    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'

  ###############################################################################
  # VNF Configuration                                                           #
  ###############################################################################
  '/configuration':
    parameters:
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        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
    get:
      summary: Read VNF/VNFC configuration from VNF
      description: >
        The client can use this method to read configuration information about a VNF instance and/or its VNFC instances.
      responses:
        200:
          description: >
            200 OK
            Configuration information about a VNF instance was read successfully.
            The response body shall contain a representation of the configuration resource.
          schema:
            $ref: 'definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfiguration'
          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
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        416:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
        422:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
        429:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
    patch:
      summary: Modify VNF/VNFC configuration.
      description: This method sets or modifies a configuration resource.
      parameters:
        - name: configModifications
          description: >
            The parameter for the configuration modification, as defined in
            clause 9.5.2.2.
          required: true
          in: body
          schema:
            $ref: 'definitions/SOL002VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
      responses:
        200:
          description: >
            200 OK

            The request was accepted and completed. The response body shall contain the parameters
            of the configuration modification that was applied to the configuration resource.
          schema:
            $ref: 'definitions/SOL002VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
          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/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        412:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
        416:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
        422:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
        429:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"