Commit 94d75a0e authored by moscatelli's avatar moscatelli
Browse files

SOL002: VNF Indicator interface consolidation

parent a382051f
Loading
Loading
Loading
Loading
Loading
+698 −536
Original line number Diff line number Diff line
@@ -9,14 +9,11 @@ info:
    This API allows the EM/VNF to provide information on value changes of VNF related indicators. 
    VNF related indicators are declared in the VNFD.


    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/bugzilla/buglist.cgi?component=Nfv-Openapis
  
  license:
    name: "ETSI Forge copyright notice"
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
@@ -37,7 +34,6 @@ consumes:
produces:
  - application/json


paths:
  ###############################################################################
  # API Versions                                                                #
@@ -56,6 +52,13 @@ paths:
        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
    get:
      summary: Query multiple indicators
      description: Get a list of indicators. Support of attribute based filtering via query parameters.
@@ -104,7 +107,7 @@ paths:
      responses:
        200:
          description: >
              OK
            200 OK

            Information about zero or more VNF indicators was queried successfully.
            The response body shall contain in an array the representations of all
@@ -133,18 +136,34 @@ paths:
            type: array
            items:
              $ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator'
          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        416:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
        422:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
        429:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"

  ###############################################################################
  # VNF indicators related to a VNF instance                                    #
  ###############################################################################
  /indicators/{vnfInstanceId}:
    parameters:
      - name: vnfInstanceId
@@ -164,6 +183,13 @@ paths:
        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
    get:
      summary: Query multiple indicators related to a VNF instance.
      description: >
@@ -213,7 +239,7 @@ paths:
      responses:
        200:
          description: >
              OK
            200 OK

            Information about zero or more VNF indicators was queried successfully.
            The response body shall contain in an array the representations of all
@@ -244,19 +270,34 @@ paths:
            type: array
            items:
              $ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator'
          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }

        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        416:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
        422:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
        429:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"

  ###############################################################################
  # Individual VNF indicator                                                    #
  ###############################################################################
  /indicators/{vnfInstanceId}/{indicatorId}:
    parameters:
      - name: vnfInstanceId
@@ -283,6 +324,13 @@ paths:
        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
    get:
      summary: Read an inidividual VNF indicator related to a VNF instance.
      description: >
@@ -293,7 +341,7 @@ paths:
      responses:
        200:
          description: >
              OK
            200 OK

            The VNF indicator was read successfully.
            The response body shall contain the representation of the VNF indicator.
@@ -310,17 +358,30 @@ paths:
              minimum: 1
          schema:
            $ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator'
          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        416:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
        422:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
        429:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"

  /indicators/{indicatorId}:
    parameters:
@@ -336,6 +397,13 @@ paths:
        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
    get:
      summary: Read an inidividual VNF indicator related to a VNF instance.
      description: >
@@ -343,7 +411,7 @@ paths:
      responses:
        200:
          description: >
              OK
            200 OK

            The VNF indicator was read successfully.
            The response body shall contain the representation of the VNF indicator.
@@ -360,18 +428,34 @@ paths:
              minimum: 1
          schema:
            $ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator'
          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        416:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
        422:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
        429:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"

  ###############################################################################
  # Subscriptions                                                               #
  ###############################################################################
  /subscriptions:
    parameters:
      - name: Version
@@ -380,20 +464,27 @@ paths:
        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: Create a new subscription to VNF indicator change notifications
      description: Create a new subscription
      parameters:
         - name: subscription
        - name: vnfIndicatorSubscriptionRequest
          in: body
           description: Subscription data.
          description: Details of the subscription to be created.
          required: true
          schema:
            $ref: 'definitions/VnfIndicatorSubscriptionRequest_def.yaml#/definitions/VnfIndicatorSubscriptionRequest'
      responses:
        201:
          description: >
              Created
            201 CREATED

            The subscription was created successfully.
            The response body shall contain a representation of the created subscription resource.
@@ -415,17 +506,40 @@ paths:
              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' }
          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
        303:
          description: >
            303 SEE OTHER

            A subscription with the same callbackURI and the same filter already exists and the policy
            of the VNFM is to not create redundant subscriptions.
            The HTTP response shall include a "Location" HTTP header that contains the resource URI of
            the existing subscription resource.
            The response body shall be empty.
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        416:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
        422:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
        429:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
    get:
      summary: Query multiple subscriptions.
      description: >
@@ -479,7 +593,7 @@ paths:
      responses:
        200:
          description: >
              OK
            200 OK

            The list of subscriptions was queried successfully.
            The response body shall contain in an array the representations of all active
@@ -509,19 +623,34 @@ paths:
            type: array
            items:
              $ref: 'definitions/VnfIndicatorSubscription_def.yaml#/definitions/VnfIndicatorSubscription'
          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }

        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        416:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
        422:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
        429:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"

  ###############################################################################
  # Individual Subscription                                                     #
  ###############################################################################
  /subscriptions/{subscriptionId}:
    parameters:
      - name: Version
@@ -530,6 +659,13 @@ paths:
        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
    get:
      summary: Read an individual subscription.
      description: >
@@ -551,7 +687,7 @@ paths:
      responses:
        200:
          description: >
              OK
            200 OK

            The subscriptions was queried successfully. The response body shall contain
            the representation of the requested subscription.
@@ -568,17 +704,30 @@ paths:
              minimum: 1
          schema:
            $ref: 'definitions/VnfIndicatorSubscription_def.yaml#/definitions/VnfIndicatorSubscription'
          400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
          401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
          403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        416:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
        422:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
        429:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
    delete:
      summary: Delete a subscription
      description: Terminate an individual subscription.
@@ -598,7 +747,7 @@ paths:
      responses:
        204:
          description: >
              No Content
            204 NO CONTENT

            The subscription was deleted successfully.
            The response body shall be empty.
@@ -608,14 +757,27 @@ paths:
              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' }
          404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
          405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
          406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
          409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
          416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
          422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
          500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
          503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
 No newline at end of file
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        404:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        416:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
        422:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
        429:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        504:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
 No newline at end of file