swagger: "2.0"

info:
  version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
  title: SOL002 - VNF Indicator Notification Endpoint interface
  description: >
    SOL002 - VNF Indicator Notification Endpoint 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
  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.5.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf

schemes:
  - http
  - https

consumes:
  - application/json

produces:
  - application/json

paths:
  ###############################################################################
  # Notification endpoint VnfIndicatorValueChangeNotification                   #
  ###############################################################################
  '/URI-is-provided-by-the-client-when-creating-the-subscription_VnfIndicatorValueChangeNotification':
    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:
      summary: Notification endpoint
      description: >
        The API producer can use this resource to send notifications related to VNF indicator
        value changes to a subscribed API consumer, which has provided the URI of this resource
        during the subscription process.
        The POST method delivers a notification from API producer to an API consumer. The API 
        consumer shall have previously created an "Individual subscription" resource with a 
        matching filter.
      parameters:
        - name: vnfIndicatorValueChangeNotification
          in: body
          description: >
            A notification about VNF indicator value changes.
          required: true
          schema:
            $ref: 'definitions/SOL002VNFIndicatorNotification_def.yaml#/definitions/VnfIndicatorValueChangeNotification'
      responses:
        204:
          description: >
            204 NO CONTENT

            Shall be returned when the notification has been delivered successfully. 
            The response body shall be empty.
          headers:
            Version:
              description: The used API version.
              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:
      summary: Test notification endpoint.
      description: >
        Service Unavailable

        The GET method allows the server to test the notification endpoint that is provided
        by the client, e.g. during subscription.
      responses:
        204:
          description: >
            204 NO CONTENT

            Shall be returned when 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: The used API version.
              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"