openapi: 3.0.2

info:
  title: SOL009 - NFV-MANO Fault Management Notification Interface
  description: |
    SOL009 - NFV-MANO 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.

    Please report bugs to https://forge.etsi.org/rep/nfv/SOL009/issues

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

externalDocs:
  description: ETSI GS NFV-SOL 009 V3.7.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.07.01_60/gs_NFV-SOL009v0307601p.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:
    post:
      description: >
        The POST method notifies an NFV-MANO functional entity 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.5.7.3.1.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/AlarmNotification"
      responses:
        "204":
          $ref: "#/components/responses/AlarmNotification.Post.204"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
        "403":
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
        "405":
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
        "406":
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
        "500":
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
        "503":
          $ref: ../components/SOL009_resp.yaml#/components/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. See clause 7.5.7.3.2.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "204":
          $ref: "#/components/responses/AlarmNotification.Get.204"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
        "403":
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
        "405":
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
        "406":
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
        "500":
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
        "503":
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
  /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification:
    post:
      description: >
        The POST method notifies an NFV-MANO functional entity 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.5.7.3.1.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/AlarmClearedNotification"
      responses:
        "204":
          $ref: "#/components/responses/AlarmClearedNotification.Post.204"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
        "403":
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
        "405":
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
        "406":
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
        "500":
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
        "503":
          $ref: ../components/SOL009_resp.yaml#/components/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. See clause 7.5.7.3.2.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "204":
          $ref: "#/components/responses/AlarmClearedNotification.Get.204"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
        "403":
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
        "405":
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
        "406":
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
        "500":
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
        "503":
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
  /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification:
    post:
      description: >
        The POST method notifies an NFV-MANO functional entity 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.5.7.3.1.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/AlarmListRebuiltNotification"
      responses:
        "204":
          $ref: "#/components/responses/AlarmListRebuiltNotification.Post.204"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
        "403":
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
        "405":
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
        "406":
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
        "500":
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
        "503":
          $ref: ../components/SOL009_resp.yaml#/components/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. See clause 7.5.7.3.2.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "204":
          $ref: "#/components/responses/AlarmListRebuiltNotification.Get.204"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
        "403":
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
        "405":
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
        "406":
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
        "500":
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
        "503":
          $ref: ../components/SOL009_resp.yaml#/components/responses/503

components:
  requestBodies:
    AlarmNotification:
      description: >
        Information of a NFV-MANO functional entity alarm.
      content:
        application/json:
          schema:
            $ref: "./components/NFVManoFaultManagementNotification_def.yaml#/components/schemas/AlarmNotification"
      required: true

    AlarmClearedNotification:
      description: |
        Information of the clearance of an NFV-MANO functional entity alarm.
      content:
        application/json:
          schema:
            $ref: "./components/NFVManoFaultManagementNotification_def.yaml#/components/schemas/AlarmClearedNotification"
      required: true

    AlarmListRebuiltNotification:
      description: >
        Information that the alarm list has been rebuilt by the NFV-MANO
        functional entity.
      content:
        application/json:
          schema:
            $ref: "./components/NFVManoFaultManagementNotification_def.yaml#/components/schemas/AlarmListRebuiltNotification"
      required: true

  responses:
    AlarmNotification.Post.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.
          schema:
            type: string
            minimum: 0
            maximum: 1
        Version:
          description: |
            Version of the API used in the response.
          schema:
            type: string
            minimum: 1
            maximum: 1

    AlarmNotification.Get.204:
      description: >
        204 NO CONTENT

        Shall be returned to indicate that 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.
          schema:
            type: string
            minimum: 0
            maximum: 1
        Version:
          description: |
            Version of the API used in the response.
          schema:
            type: string
            minimum: 1
            maximum: 1

    AlarmClearedNotification.Post.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.
          schema:
            type: string
            minimum: 0
            maximum: 1
        Version:
          description: |
            Version of the API used in the response.
          schema:
            type: string
            minimum: 1
            maximum: 1

    AlarmClearedNotification.Get.204:
      description: >
        204 NO CONTENT

        Shall be returned to indicate that 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.
          schema:
            type: string
            minimum: 0
            maximum: 1
        Version:
          description: |
            Version of the API used in the response.
          schema:
            type: string
            minimum: 1
            maximum: 1

    AlarmListRebuiltNotification.Post.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.
          schema:
            type: string
            minimum: 0
            maximum: 1
        Version:
          description: |
            Version of the API used in the response.
          schema:
            type: string
            minimum: 1
            maximum: 1

    AlarmListRebuiltNotification.Get.204:
      description: >
        204 NO CONTENT

        Shall be returned to indicate that 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.
          schema:
            type: string
            minimum: 0
            maximum: 1
        Version:
          description: >-
            Version of the API used in the response.
          schema:
            type: string
            minimum: 1
            maximum: 1