openapi: 3.0.2

info:
  title: SOL002 - VNF Fault Management Notification interface
  description: |
    SOL002 - VNF Fault Management Notification 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.

    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.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1

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

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

paths:
  /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification:
    parameters:
      - $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
      - $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
    get:
      description: |
        The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
        e.g. during subscription. See clause 7.4.7.3.2.
      responses:
        "204":
          $ref: '#/components/responses/VNFFMNotification.Get.204'
        "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
        "405":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
        "406":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
        "500":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
        "503":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503

    post:
      description: |
        The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have
        previously created an "Individual subscription" resource with a matching filter. See clause 7.4.7.3.1.
      parameters:
        - $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/AlarmNotification'
      responses:
        "204":
          $ref: '#/components/responses/VNFFMNotification.Post.204'
        "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
        "405":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
        "406":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
        "500":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
        "503":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503

  /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification:
    parameters:
      - $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
      - $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
    get:
      description: |
        The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
        e.g. during subscription. See clause 7.4.7.3.2.
      responses:
        "204":
          $ref: '#/components/responses/VNFFMNotification.Get.204'
        "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
        "405":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
        "406":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
        "500":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
        "503":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503

    post:
      description: |
        The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have
        previously created an "Individual subscription" resource with a matching filter. See clause 7.4.7.3.1.
      parameters:
        - $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/AlarmClearedNotification'
      responses:
        "204":
          $ref: '#/components/responses/VNFFMNotification.Post.204'
        "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
        "405":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
        "406":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
        "500":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
        "503":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503

  /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification:
    parameters:
      - $ref: ../../components/SOL002_params.yaml#/components/parameters/Version
      - $ref: ../../components/SOL002_params.yaml#/components/parameters/Authorization
    get:
      description: |
        The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
        e.g. during subscription. See clause 7.4.7.3.2.
      responses:
        "204":
          $ref: '#/components/responses/VNFFMNotification.Get.204'
        "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
        "405":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
        "406":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
        "500":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
        "503":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503

    post:
      description: |
        The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have
        previously created an "Individual subscription" resource with a matching filter. See clause 7.4.7.3.1.
      parameters:
        - $ref: ../../components/SOL002_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/AlarmListRebuiltNotification'
      responses:
        "204":
          $ref: '#/components/responses/VNFFMNotification.Post.204'
        "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
        "405":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
        "406":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
        "500":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
        "503":
          $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503

components:
  requestBodies:
    AlarmNotification:
      description: |
        Information of a VNF alarm.
      content:
        application/json:
          schema:
            $ref: ../VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml#/definitions/AlarmNotification
      required: true

    AlarmClearedNotification:
      description: |
        Information of the clearance of a VNF alarm.
      content:
        application/json:
          schema:
            $ref: ../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmClearedNotification
      required: true

    AlarmListRebuiltNotification:
      description: |
        Information that the alarm list has been rebuilt by the VNFM.
      content:
        application/json:
          schema:
            $ref: ../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmListRebuiltNotification
      required: true

  responses:
    VNFFMNotification.Get.204:
      description: |
        204 NO CONTENT
        Shall be returned to indicate the notification endpoint has been  tested successfully. The response body
        shall be empty.
      headers:
        Version:
          description: |
            Version of the API used in the response.
          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: {}

    VNFFMNotification.Post.204:
      description: |
        204 NO CONTENT
        Shall be returned when the notification has been delivered successfully. The response body shall be empty.
      headers:
        Version:
          description: |
            Version of the API used in the response.
          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: {}