swagger: "2.0"

info:
  version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
  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 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/rep/nfv/SOL002-SOL003/issues
  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.8.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf

basePath: /callback/v1

schemes:
  - http
  - https

consumes:
  - application/json

produces:
  - application/json

paths:
  ###############################################################################
  # Notification endpoint AlarmNotification                                     #
  ###############################################################################
  '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification':
    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
    post:
      description: >
        Notify

        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.
      parameters:
        - name: AlarmNotification
          description: >
            Information of a VNF alarm.
          in: body
          required: true
          schema:
            $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmNotification"
        - name: Content-Type
          description: >
            The Content-Type header shall be set to
            "application/merge-patch+json" according to
            IETF RFC 7396.
          in: header
          required: true
          type: string
      responses:
        204:
          description: >
            204 NO CONTENT

            Shall be returned when the notification has been delivered successfully.
            The response body shall be empty.
          headers:
            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
            Version:
              description: >
                Version of the API used in the response.
              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"
        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 API producer to test the notification endpoint
        that is provided by the API consumer, e.g. during subscription.
      responses:
        204:
          description: >
            201 NO CONTENT

            Shall be returned to indicate the notification endpoint has been 
            tested successfully.
            The response body shall be empty.
          headers:
            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
            Version:
              description: >
                Version of the API used in the response.
              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"
        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':
    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
    post:
      description: >
        Notify

        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.
      parameters:
        - name: AlarmClearedNotification
          description: >
            Information of the clearance of a VNF alarm
          in: body
          required: true
          schema:
            $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmClearedNotification"
        - name: Content-Type
          description: >
            The Content-Type header shall be set to
            "application/merge-patch+json" according to
            IETF RFC 7396.
          in: header
          required: true
          type: string
      responses:
        204:
          description: >
            204 NO CONTENT

            Shall be returned when the notification has been delivered successfully.
            The response body shall be empty.
          headers:
            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
            Version:
              description: >
                Version of the API used in the response.
              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"
        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 API producer to test the notification endpoint
        that is provided by the API consumer, e.g. during subscription.
      responses:
        204:
          description: >
            201 NO CONTENT

            Shall be returned to indicate the notification endpoint has been 
            tested successfully.
            The response body shall be empty.
          headers:
            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
            Version:
              description: >
                Version of the API used in the response.
              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"
        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':
    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
    post:
      description: >
        Notify

        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.
      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"
        - name: Content-Type
          description: >
            The Content-Type header shall be set to
            "application/merge-patch+json" according to
            IETF RFC 7396.
          in: header
          required: true
          type: string
      responses:
        204:
          description: >
            204 NO CONTENT

            Shall be returned when the notification has been delivered successfully.
            The response body shall be empty.
          headers:
            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
            Version:
              description: >
                Version of the API used in the response.
              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"
        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 API producer to test the notification endpoint
        that is provided by the API consumer, e.g. during subscription.
      responses:
        204:
          description: >
            204 NO CONTENT

            Shall be returned to indicate the notification endpoint has been 
            tested successfully.
            The response body shall be empty.
          headers:
            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
            Version:
              description: >
                Version of the API used in the response.
              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"
        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"