swagger: "2.0"

info: 
  version: "1.1.0"
  title: SOL002 - VNF Configuration interface
  description: >
    VNF Configuration interface of ETSI NFV SOL002

    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/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=---
  license:
    name: "ETSI Forge copyright notice"
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
externalDocs:
  description: ETSI GS NFV-SOL 002 V2.4.1
  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.04.01_60/gs_NFV-SOL002v020401p.pdf

basePath: /vnfconfig/v1

schemes: 
  - http
  - https

consumes: 
  - application/json

produces: 
  - application/json


paths:
###############################################################################
# Configuration                                                               #
###############################################################################
    /configuration:
      #SOL002 location: 9.4.2
      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: >
              OK
              
              Configuration information about a VNF instance was read successfully.
              The response body shall contain a representation of the configuration resource.
            schema:
              $ref: '#/definitions/VnfConfiguration'                  
          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/405' }
          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
      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.
           required: true
           in: body
           schema: 
             $ref: '#/definitions/VnfConfigModifications'            
        responses:
          200:
            description: >
              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/VnfConfigModifications'                  
          412: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/412' }
          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/405' }
          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
          409: { $ref: 'responses/VNFConfiguration_resp.yaml#/responses/409' }
          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
definitions:
  VnfConfiguration:
    $ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfiguration'
  VnfConfigModifications: 
    $ref: 'definitions/VnfConfiguration_def.yaml#/definitions/VnfConfigModifications'
