Commit 0338b777 authored by Gergely Csatari's avatar Gergely Csatari Committed by Michele Carignani
Browse files

VNF Performance Management interface



Change-Id: Ie44a72a9e9ded5acf6014dcf8018224149bb7e3c
Signed-off-by: default avatarGergely Csatari <gergely.csatari@nokia.com>
parent c1d1ce0c
Loading
Loading
Loading
Loading
+17 −17
Original line number Diff line number Diff line
@@ -322,63 +322,63 @@ definitions:
        properties:
          self:
            description: URI of this resource.
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          indicators:
            description: Indicators related to this VNF instance, if applicable.
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          instantiate:
            description: >
              Link to the "instantiate" task resource, if the related operation
              is possible based on the current status of this VNF instance
              resource (i.e. VNF instance in NOT_INSTANTIATED state).
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          terminate:
            description: >
              Link to the "terminate" task resource, if the related operation
              is possible based on the current status of this VNF instance
              resource (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          scale:
            description: >
              Link to the "scale" task resource, if the related operation is
              supported for this VNF instance, and is possible based on the
              current status of this VNF instance resource (i.e. VNF instance
              is in INSTANTIATED state).
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          scaleToLevel:
            description: >
              Link to the "scale_to_level" task resource, if the related
              operation is supported for this VNF instance, and is possible
              based on the current status of this VNF instance resource
              (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          changeFlavour:
            description: >
              Link to the "change_flavour" task resource, if the related
              operation is supported for this VNF instance, and is possible
              based on the current status of this VNF instance resource
              (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          heal:
            description: >
              Link to the "heal" task resource, if the related operation is
              supported for this VNF instance, and is possible based on the
              current status of this VNF instance resource
              (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          operate:
            description: >
              Link to the "operate" task resource, if the related operation is
              supported for this VNF instance, and is possible based on the
              current status of this VNF instance resource
              (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          changeExtConn:
            description: >
              Link to the "change_ext_conn" task resource, if the related
              operation is possible based on the current status of this VNF
              instance resource (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"

  MonitoringParameter:
    type: object
@@ -928,39 +928,39 @@ definitions:
          self:
            description: >
              URI of this resource.
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          vnfInstance:
            description: >
              Link to the VNF instance that the operation applies to.
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          grant:
            description: >
              Link to the grant for this operation, if one exists.
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          cancel:
            description: >
              Link to the task resource that represents the "cancel" operation
              for this VNF LCM operation occurrence, if cancelling is
              currently allowed.
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          retry:
            description: >
              Link to the task resource that represents the "retry" operation
              for this VNF LCM operation occurrence, if retrying is currently
              allowed.
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          rollback:
            description: >
              Link to the task resource that represents the "rollback"
              operation for this VNF LCM operation occurrence, if rolling back
              is currently allowed.
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
          fail:
            description: >
              Link to the task resource that represents the "fail" operation
              for this VNF LCM operation occurrence, if declaring as failed is
              currently allowed.
            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link"
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"

  VnfLinkPort:
    type: object
+814 −0

File added.

Preview size limit exceeded, changes collapsed.

+67 −0
Original line number Diff line number Diff line
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt

definitions:
  PerformanceReport:
    description: >
      This type defines the format of a performance report provided by the
      VNFM to the NFVO as a result of collecting performance information as
      part of a PM job.
    type: object
    properties:
      entries:
        description: >
          List of performance information entries. Each performance report
          entry is for a given metric of a given object (i.e. VNF instance),
          but can include multiple collected values.
        type: array
        items:
          type: object
          required: 
            - objectType
            - objectInstanceId
            - performanceMetric
            - performanceValue
          properties: 
            objectType:
              description: >
                Defines the object type for which performance information is
                reported (i.e. VNF type). The string value shall be set to the
                vnfdId of the VNF instance to which the performance
                information relates.
              type: string
            objectInstanceId: 
              description: >
                The object instance for which the performance metric is
                reported.
                The object instances for this information element will be VNF
                instances.
              $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
            performanceMetric:
              description: >
                Name of the metric collected.
              type: string
            performanceValue:
              description: >
                List of performance values with associated timestamp.
              type: array
              items: 
                type: object
                required: 
                  - timeStamp
                  - performanceValue
                properties:
                  timeStamp:
                    description: >
                      Time stamp indicating when the data was collected.
                    $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
                  performanceValue:
                    description: >
                      Value of the metric collected.
                      The type of the "performanceValue" attribute 
                      (i.e. scalar, structure (Object in JSON), or array 
                      (of scalars, arrays or structures / Objects)) is assumed
                      to be defined in an external measurement specification
                      outside the scope of the present document.
                    type: object
+172 −0
Original line number Diff line number Diff line
swagger: "2.0"

info:
  version: "2.3.0"
  title: SOL003 - VNF Lifecycle Management Notification interface
  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"
+5 −92
Original line number Diff line number Diff line
@@ -378,17 +378,17 @@ definitions:
        description: >
          Link to the resource representing the VNF instance to which the
          notified change applies.
        $ref: "#/definitions/Link"
        $ref: "SOL002SOL003_def.yaml#/definitions/Link"
      subscription:
        description: >
          Link to the related subscription.
        $ref: "#/definitions/Link"
        $ref: "SOL002SOL003_def.yaml#/definitions/Link"
      vnfLcmOpOcc:
        description: >
          Link to the VNF lifecycle management operation occurrence that this
          notification is related to. Shall be present if there is a related
          lifecycle operation occurrence.
        $ref: "#/definitions/Link"
        $ref: "SOL002SOL003_def.yaml#/definitions/Link"

  LccnSubscription:
    description: >
@@ -453,7 +453,7 @@ definitions:
          in clause 4.5.3.4.
          This attribute shall only be present if the subscriber requires
          authorization of notifications.
        $ref: "#/definitions/SubscriptionAuthentication"
        $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"

  LcmOperationStateType:
    description: >
@@ -516,7 +516,7 @@ definitions:
      vnfInstanceSubscriptionFilter:
        description: >
          Filter criteria to select VNF instances about which to notify.
        $ref: "#/definitions/VnfInstanceSubscriptionFilter"
        $ref: "SOL002SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
      notificationTypes:
        description: >
          Match particular notification types.
@@ -553,19 +553,6 @@ definitions:
        items: 
          $ref: "#/definitions/LcmOperationStateType"

  Link:
    description: >
      This type represents a link to a resource.
    type: object
    required:
      - href
    properties:
      href:
        description: >
          URI of the referenced resource.
        type: string
        format: url

  ResourceHandle:
    required:
      - vimConnectionId
@@ -703,80 +690,6 @@ definitions:
      A Version.
    type: string

  SubscriptionAuthentication:
    type: object
    required: 
      - authType
    properties: 
      authType:
        description: >
          Defines the type of Authentication / Authorization to use when
          sending a notification. 
          Permitted values:
          * BASIC: In every POST request that sends a notification, use
            HTTP Basic authentication with the client credentials.
          * OAUTH2_CLIENT_CREDENTIALS: In every POST request that sends a
            notification, use an OAuth 2.0 Bearer token, obtained using the
            client credentials grant type.
        type: string
        enum:
          - BASIC
          - OAUTH2_CLIENT_CREDENTIALS
      paramsBasic:
        description: >
          Parameters for authentication/authorization using BASIC.
          Shall be present if authType is "BASIC" and the contained
          information has not been provisioned out of band.
          Shall be absent otherwise.
        type: object
        properties:
          userName:
            description: >
              Username to be used in HTTP Basic authentication. Shall be
              present if it has not been provisioned out of band.
            type: string
          password:
            description: >
              Password to be used in HTTP Basic authentication. Shall be
              present if it has not been provisioned out of band.
            type: string
      paramsOauth2ClientCredentials:
        description: >
          Parameters for authentication/authorization using
          OAUTH2_CLIENT_CREDENTIALS.
          Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the
          contained information has not been provisioned out of band.
          Shall be absent otherwise.
        type: object
        properties:
          clientId:
            description: >
              Client identifier to be used in the access token request of the
              OAuth 2.0 client credentials grant type. 
              Shall be present if it has not been provisioned out of band.
              The clientId and clientPassword passed in a subscription shall
              not be the same as the clientId and clientPassword that are used
              to obtain authorization for API requests. Client credentials may
              differ between subscriptions. The value of clientPassword should
              be generated by a random process.
            type: string
          clientPassword:
            description: >
              Client password to be used in the access token request of the
              OAuth 2.0 client credentials grant type. 
              Shall be present if it has not been provisioned out of band.
              The clientId and clientPassword passed in a subscription shall
              not be the same as the clientId and clientPassword that are used
              to obtain authorization for API requests. Client credentials may
              differ between subscriptions. The value of clientPassword should
              be generated by a random process.
            type: string
          tokenEndpoint:
            description: >
              The token endpoint from which the access token can be obtained.
              Shall be present if it has not been provisioned out of band.
            $ref: "#/definitions/Version"

  VimConnectionInfo:
    type: object
    required:
Loading