swagger: "2.0"

info:
  version: "2.4.1"
  title: DRAFT - SOL003 - VNF Fault Management Notification interface
  description: >
    DRAFT - SOL003 - 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 and has not been
    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
    Group Specification takes precedence.
    
    In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
    filtering mechanism is defined. This mechanism is currently not
    included in the corresponding OpenAPI design for this GS version. Changes
    to the attribute-based filtering mechanism are being considered in v2.5.1
    of this GS for inclusion in the corresponding future ETSI NFV OpenAPI
    design.
    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
  contact: 
    name: "NFV-SOL WG"

basePath: "/callback/v1"

schemes:
  - https

consumes:
  - "application/json"
produces:
  - "application/json"

paths:
###############################################################################
# Notification endpoint AlarmNotification                                     #
###############################################################################
  '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmNotification':
    #SOL003 location: 7.4.6
    post:
      description: >
        The POST method notifies a VNF alarm or that the alarm list has been
        rebuilt.
      parameters:
        - name: AlarmNotification
          description: >
            Information of a VNF alarm.
          in: body
          required: true
          schema:
            $ref: "../definitions/SOL003_def.yaml#/definitions/AlarmNotification"
      responses:
        204:
          description: > 
            The notification was delivered successfully.
            The response body shall be empty.
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    get:
      description: >
        The GET method allows the server to test the notification endpoint
        that is provided by the client, e.g. during subscription.
      responses:
        204:
          description: > 
            The notification endpoint was tested successfully.
            The response body shall be empty.
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Notification endpoint AlarmClearedNotification                              #
###############################################################################
  '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmClearedNotification':
    #SOL003 location: 7.4.6
    post:
      description: >
        The POST method notifies a VNF alarm or that the alarm list has been
        rebuilt.
      parameters:
        - name: AlarmClearedNotification
          description: >
            Information of the clearance of a VNF alarm
          in: body
          required: true
          schema:
            $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmClearedNotification"
      responses:
        204:
          description: > 
            The notification was delivered successfully.
            The response body shall be empty.
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    get:
      description: >
        The GET method allows the server to test the notification endpoint
        that is provided by the client, e.g. during subscription.
      responses:
        204:
          description: > 
            The notification endpoint was tested successfully.
            The response body shall be empty.
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Notification endpoint AlarmListRebuiltNotification                          #
###############################################################################
  '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmListRebuiltNotification':
    #SOL003 location: 7.4.6
    post:
      description: >
        The POST method notifies a VNF alarm or that the alarm list has been
        rebuilt.
      parameters:
        - name: AlarmListRebuiltNotification
          description: >
            Information that the alarm list has been rebuilt by the VNFM
          in: body
          required: true
          schema:
            $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmListRebuiltNotification"
      responses:
        204:
          description: > 
            The notification was delivered successfully.
            The response body shall be empty.
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    get:
      description: >
        The GET method allows the server to test the notification endpoint
        that is provided by the client, e.g. during subscription.
      responses:
        204:
          description: > 
            The notification endpoint was tested successfully.
            The response body shall be empty.
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
