swagger: "2.0"

info:
  version: "2.3.1"
  title: DRAFT - SOL003 - VNF Performance Management Notification interface
  description: >
    DRAFT - SOL003 - VNF Performance 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/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 PerformanceInformationAvailableNotification           #
###############################################################################
  '/URI-is-provided-by-the-client-when-creating-the-subscription-PerformanceInformationAvailableNotification':
    #SOL003 location: 6.4.9
    post:
      description: >
        The POST method delivers a notification regarding a performance
        management event from the server to the client.
      parameters:
        - name: PerformanceInformationAvailableNotification
          description: >
            Notification about performance information availability.
          in: body
          required: true
          schema:
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PerformanceInformationAvailableNotification"
      responses:
        204:
          description: > 
            The notification was delivered successfully.
          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
        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.
          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
        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 ThresholdCrossedNotification                          #
###############################################################################
  '/URI-is-provided-by-the-client-when-creating-the-subscription-ThresholdCrossedNotification':
    #SOL003 location: 6.4.9
    post:
      description: >
        The POST method delivers a notification regarding a performance
        management event from the server to the client.
      parameters:
        - name: ThresholdCrossedNotification
          description: >
            Notification about performance information availability.
          in: body
          required: true
          schema:
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/ThresholdCrossedNotification"
      responses:
        204:
          description: > 
            The notification was delivered successfully.
          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
        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.
          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
        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"
