openapi: 3.0.2

info:
  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. In case of
    discrepancies the published ETSI Group Specification takes precedence.

    Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues

  contact:
    name: NFV-SOL WG
  license:
    name: ETSI Forge copyright notice
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
  version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1

externalDocs:
  description: ETSI GS NFV-SOL 002 V3.7.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.07.01_60/gs_NFV-SOL002v030701p.pdf

servers:
  - url: http://127.0.0.1/vnfconfig/v1
  - url: https://127.0.0.1/vnfconfig/v1

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

  /configuration:
    parameters:
      - $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
      - $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
    get:
      description: |
        The API consumer can use this method to read configuration information about a VNF instance and/or its VNFC instances.
        See clause 9.4.2.3.2.
      responses:
        "200":
          $ref: '#/components/responses/Configuration.Get.200'
        "400":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
        "401":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
        "403":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
        "404":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404
        "405":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
        "406":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
        "422":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422
        "429":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
        "500":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
        "503":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
        "504":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504

    patch:
      description: |
        This method sets or modifies a configuration resource. See clause 9.4.2.3.4.
      parameters: 
        - $ref: ../../components/SOL002_params.yaml#/components/parameters/If-Unmodified-Since
        - $ref: ../../components/SOL002_params.yaml#/components/parameters/If-Match
      requestBody:
        $ref: '#/components/requestBodies/ConfigurationRequest'
      responses:
        "200":
          $ref: '#/components/responses/Configuration.Patch.200'
        "400":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
        "401":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
        "403":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
        "404":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404
        "405":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
        "406":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
        "412":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/412
        "416":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416
        "422":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422
        "429":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
        "500":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
        "503":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
        "504":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504

components:
  requestBodies:
    ConfigurationRequest:
      description: |
        The parameter for the configuration modification, as defined in clause 9.5.2.2.
      content:
        application/json:
          schema:
            $ref: ./definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfigModifications
      required: true

  responses:
    Configuration.Get.200:
      description: |
        200 OK
        Shall be returned when configuration information about a VNF instance  has been read successfully. The response
        body shall contain a representation of the configuration resource.
      headers:
        Version:
          description: The used API version.
          style: simple
          explode: false
          schema:
            type: string
        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.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: The MIME type of the body of the response.
          style: simple
          explode: false
          schema:
            type: string
        ETag:
          description: >
            Used to provide the current entity-tag for the selected resource representation. It can be sent in
            "200 OK", "201 Created" and "204 No Content" responses.
          style: simple
          schema:
            type: string
        Last-Modified:
          description: >
            Used to provide a timestamp indicating the date and time at which the server believes the selected resource
            representation was last modified. It can be sent in "200 OK", "201 Created" and "204 No Content" responses.
          style: simple
          schema:
            type: string
            format: date-time

      content:
        application/json:
          schema:
            $ref: ./definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfiguration

    Configuration.Patch.200:
      description: |
        200 OK
        Shall be returned when the request has been accepted and completed.  The response body shall contain the
        parameters of the configuration  modification that was applied to the configuration resource.
      headers:
        Version:
          description: The used API version.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: The MIME type of the body of the response.
          style: simple
          explode: false
          schema:
            type: string
        ETag:
          description: >
            Used to provide the current entity-tag for the selected resource representation. It can be sent in
            "200 OK", "201 Created" and "204 No Content" responses.
          style: simple
          schema:
            type: string
        Last-Modified:
          description: >
            Used to provide a timestamp indicating the date and time at which the server believes the selected resource
            representation was last modified. It can be sent in "200 OK", "201 Created" and "204 No Content" responses.
          style: simple
          schema:
            type: string
            format: date-time
      content:
        application/json:
          schema:
            $ref: ./definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfigModifications