NSFaultManagement.yaml 26.9 KB
Newer Older
swagger: "2.0"
info:
  version: "2.4.1"
rameshnaraya's avatar
rameshnaraya committed
  title: SOL005 - NS Fault Management Interface
rameshnaraya's avatar
rameshnaraya committed
    SOL005 - NS Fault Management 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 005 V2.4.1
  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf
basePath: "/nsfm/v1"

schemes:
  - https

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

paths:
###############################################################################
# Alarms                                                                      #
###############################################################################
  '/alarms':
    #SOL005 location: 8.2-1
    get:
      summary: >
rameshnaraya's avatar
rameshnaraya committed
        Query alarms related to NS instances.
rameshnaraya's avatar
rameshnaraya committed
        Get Alarm List.

        The client can use this method to retrieve information about the alarm list.
      parameters:
        - name: "filter"
          in: "query"
          required: false
          type: "string"
          description: >  
            Attribute-based filtering parameters according to clause 4.3.2.
            The NFVO shall support receiving filtering parameters as part of the URI query string.
            The OSS/BSS may supply filtering parameters.
            The following attribute names shall be supported in attribute-based 
            filtering parameters:
            - id            
            - nsInstanceId            
            - rootCauseFaultyComponent.faultyNestedNsInstanceId            
            - rootCauseFaultyComponent.faultyNsVirtualLinkInstanceId            
            - rootCauseFaultyComponent.faultyVnfInstanceId           
            - rootCauseFaultyResource.faultyResourceType            
            - eventType            
            - perceivedSeverity     
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          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
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
          description: >
            200 OK.
            
            The request has succeeded.
            The response body shall contain the list of related alarms.
rameshnaraya's avatar
rameshnaraya committed
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
              type: string            
              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.  
rameshnaraya's avatar
rameshnaraya committed
            type: array
            items:
              properties:
                Alarm:
                  $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm" 
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"            
          
###############################################################################
# Individual alarm                                                            #
###############################################################################
  '/alarms/{alarmId}':
    #SOL005 location: 8.2-1
    parameters:
      - name: alarmId
        description: >
rameshnaraya's avatar
rameshnaraya committed
          Identifier of the alarm.
          This identifier can be retrieved from the "id" attribute of the "alarm" attribute in the AlarmNotification or
          AlarmClearedNotification. 
          It can also be retrieved from the "id" attribute of the applicable array element in the
          payload body of the response to a GET request to the "Alarms" resource.
rameshnaraya's avatar
rameshnaraya committed
        Read individual alarm.
      description: >
        The client can use this method to read an individual alarm.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          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
rameshnaraya's avatar
rameshnaraya committed
      responses:            
rameshnaraya's avatar
rameshnaraya committed
          description: >
            200 OK.
            
            Information about an individual alarm was read successfully.
            The response body shall contain a representation of the
            individual alarm.
          headers:
            Content-Type:
rameshnaraya's avatar
rameshnaraya committed
              description: The MIME type of the body of the response.
rameshnaraya's avatar
rameshnaraya committed
            WWW-Authenticate:
              type: string            
              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.  
rameshnaraya's avatar
rameshnaraya committed
            properties:
              Alarm:
                $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm"                  
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
         $ref: "responses/SOL005_resp.yaml#/responses/403"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
         $ref: "responses/SOL005_resp.yaml#/responses/503"
    patch:
      summary: >
rameshnaraya's avatar
rameshnaraya committed
        Acknowledge individual alarm.
      description: >
        Acknowledge Alarm
  
        This method modifies an individual alarm resource.
      parameters:
rameshnaraya's avatar
rameshnaraya committed
      - name: "body"
        in: "body"
rameshnaraya's avatar
rameshnaraya committed
          type: "object"
          required:
          - "AlarmModifications"
          properties:
            AlarmModifications:
              $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmModifications"
          description: >  
            The parameter for the alarm modification, as defined in clause 8.5.2.8.
      - name: Accept
        description: >
          Content-Types that are acceptable for the response.
          Reference: IETF RFC 7231
        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
      - 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
        enum: ["application/merge-patch+json"]
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
          description: >
            200 OK.
            
            The request was accepted and completed.
            The response body shall contain attribute modifications
            for an 'Individual alarm' resource (see clause 8.5.2.4).
          headers:
            Content-Type:
rameshnaraya's avatar
rameshnaraya committed
              description: The MIME type of the body of the response.
rameshnaraya's avatar
rameshnaraya committed
              type: string            
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
rameshnaraya's avatar
rameshnaraya committed
                request has provided an invalid authorization token. 
rameshnaraya's avatar
rameshnaraya committed
              minimum: 0                
rameshnaraya's avatar
rameshnaraya committed
            properties:
              AlarmModifications:
                $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmModifications"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        409:
          $ref: "responses/NSFManagement_resp.yaml#/responses/409-alarm-state-conflict"
        412:
          $ref: "responses/SOL005_resp.yaml#/responses/412"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"
##############################################################################
#Subscriptions                                                               #
##############################################################################
  '/subscriptions':
    #SOL005 location: 8.2-1
    post:
      summary: >
rameshnaraya's avatar
rameshnaraya committed
        Subscribe to alarms related to NSs.
      description: > 
        The POST method creates a new subscription.
        This method shall follow the provisions specified in the Tables 8.4.4.3.1-1 and 8.4.4.3.1-2 for URI query parameters,
        request and response data structures, and response codes.
        Creation of two subscription resources with the same callbackURI and the same filter can result in performance
        degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases.
        Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the
        same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide
        to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing
rameshnaraya's avatar
rameshnaraya committed
        the existing subscription resource with the same filter and callbackUri).
      parameters:         
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          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
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
rameshnaraya's avatar
rameshnaraya committed
          type: string            
        - name: "body"
          in: "body"
          required: true
          schema:
            type: "object"
            required:
            - "FmSubscriptionRequest"
            properties:
              FmSubscriptionRequest:
                $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscriptionRequest"
            description: >
              Details of the subscription to be created, as defined in clause 8.5.2.2.
              
rameshnaraya's avatar
rameshnaraya committed
          description: 201 Created
          schema:
            type: "object"
            description: >            
              The subscription was created successfully.
              The response body shall contain a representation of the
              created subscription resource.
              The HTTP response shall include a "Location:" HTTP
              header that points to the created subscription resource.
            properties:
              FmSubscription:
                $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription"
rameshnaraya's avatar
rameshnaraya committed
              type: "string"
rameshnaraya's avatar
rameshnaraya committed
                The HTTP response shall include a Location HTTP header
                that contains the resource URI of the new NS descriptor resource.
            Content-Type:
              type: "string"
              description: >
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message
                body.
rameshnaraya's avatar
rameshnaraya committed
              type: "string"
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.               
        303:
          $ref: "responses/SOL005_resp.yaml#/responses/303"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"
    get:
      summary: >
rameshnaraya's avatar
rameshnaraya committed
        Query multiple subscriptions.
      description: >
        Query Subscription Information
  
        The client can use this method to retrieve the list of active subscriptions 
        for alarms related to a NS subscribed by the client. 
        It can be used e.g. for resynchronization after error situations.
        
        This method shall follow the provisions specified in the Tables 8.4.4.3.2-1 and 8.4.4.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
        Table 8.4.4.3.2-1: URI query parameters supported.

      parameters:
        - name: "filter"
          in: "query"
          required: false
          type: "string"
          description: >  
rameshnaraya's avatar
rameshnaraya committed
            Attribute-based filtering parameters according to clause 4.3.2.
            The NFVO shall support receiving filtering parameters as part of the URI
            query string. The OSS/BSS may supply filtering parameters.
            All attribute names that appear in the FmSubscription and in data types
rameshnaraya's avatar
rameshnaraya committed
            referenced from it shall be supported in attribute-based filtering parameters.       
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          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
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
          description: >
            200 OK.
            
            The list of subscriptions was queried successfully.
            The response body shall contain the representations of
            all active subscriptions of the functional block that
            invokes the method.
          headers:
            Content-Type:
rameshnaraya's avatar
rameshnaraya committed
              description: The MIME type of the body of the response.
rameshnaraya's avatar
rameshnaraya committed
              type: string            
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
rameshnaraya's avatar
rameshnaraya committed
                request has provided an invalid authorization token.  
rameshnaraya's avatar
rameshnaraya committed
              properties:
                FmSubscription:
                  $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription"  
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400-attr-based-filtering-error"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        412:
          $ref: "responses/SOL005_resp.yaml#/responses/412"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"
rameshnaraya's avatar
rameshnaraya committed
          
###############################################################################
# Individual subscription                                                     #
###############################################################################
  '/subscriptions/{subscriptionId}':
    #SOL005 location: 8.2-1
    parameters:
      - name: subscriptionId
        description: >
          Identifier of this subscription.
          This identifier can be retrieved from the resource referenced by the
          "Location" HTTP header in the response to a POST request creating a
          new subscription resource. It can also be retrieved from the "id"
          attribute in the payload body of that response.
        in: path
        type: string
        required: true
    get:
      summary: >
rameshnaraya's avatar
rameshnaraya committed
        Read an individual subscription.
      description: >
        Query Subscription Information
  
        The client can use this method for reading an individual subscription for alarms related to NSs subscribed by the client.
        This method shall follow the provisions specified in the Tables 8.4.5.3.2-1 and 8.4.5.3.2-2 for URI query parameters,
        request and response data structures, and response codes
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          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
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        200:
          description: >            
            The operation has completed successfully.
            The response body shall contain a representation of the
            subscription resource.
          headers:
            Content-Type:
              description: >
                The MIME type of the body of the request.
                Reference: IETF RFC 7231
              type: string
              maximum: 1
              minimum: 1
            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
          schema:
            $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"
    delete:
      summary: >
rameshnaraya's avatar
rameshnaraya committed
        Terminate a subscription.
      description: >
        Terminate Subscription
          
        This method terminates an individual subscription.
      parameters:
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
      responses:
        204:
          description: > 
rameshnaraya's avatar
rameshnaraya committed
            204 - No Content.
 
            The subscription resource was deleted 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
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"
          
###############################################################################
# Notification endpoint                                                       #
# "/notification_endpoint" is the                                             #
# is the dummy URI used for testing, in real case endpoint URI has to         #
# provided by client.                                                         #
###############################################################################
  '/notification_endpoint':
    #SOL005 location: 8.2-1
    post:
      summary: >
rameshnaraya's avatar
rameshnaraya committed
        Notify about NS alarms.
      description: >
        The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt.
rameshnaraya's avatar
rameshnaraya committed
      # Don't know how to pass multiple body parameters. 
      # Jenkin build is failing if enable more than one body parameters, So commented body parameters.
      parameters:
        - name: alarmNotification
          description: >
            Information of a NS alarm.
          in: body
          required: true
          schema:
rameshnaraya's avatar
rameshnaraya committed
            properties:
              AlarmNotification:
                $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmNotification"
        #- name: alarmClearedNotification
        #  description: >
        #    Information of the clearance of a NS alarm.
        #  in: body
        #  required: true
        #  schema:
rameshnaraya's avatar
rameshnaraya committed
        #      properties:
        #        AlarmClearedNotification:        
        #         $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmClearedNotification"
        #- name: alarmListRebuiltNotification
        #  description: >
        #    Information that the alarm list has been rebuilt by the NFVO.
        #  in: body
        #  required: true
        #  schema:
rameshnaraya's avatar
rameshnaraya committed
        #      properties:
        #        AlarmListRebuiltNotification:   
        #    $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmListRebuiltNotification"            
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          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
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        204:
          description: >
            The notification was delivered successfully.
            The response body shall be empty.          
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"                        
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503" 
    get:
rameshnaraya's avatar
rameshnaraya committed
      summary: Test the notification endpoint.
      description: >
        The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during
        subscription.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          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
      responses:
        204:
          description: >
            The notification endpoint was tested successfully.
            The response body shall be empty. 
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"                        
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"