Commit 087e656a authored by Gergely Csatari's avatar Gergely Csatari Committed by Michele Carignani
Browse files

Virtualised Resources Quota Available Notification interface



Change-Id: I406d1c8a20864b0b334d86da15e6a1bf1a785244
Signed-off-by: default avatarGergely Csatari <gergely.csatari@nokia.com>
parent 43be9a88
Loading
Loading
Loading
Loading
+112 −0
Original line number Original line Diff line number Diff line
swagger: "2.0"

info:
  version: "2.3.0"
  title: SOL003 - Virtualised Resources Quota Available Notification interface
  license:
    name: "ETSI Forge copyright notice"
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
  contact: 
    name: "NFV-SOL WG"

basePath: "/vrqan/v1"

schemes:
  - https

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

paths:
###############################################################################
# Subscriptions                                                               #
###############################################################################
  '/subscriptions':
    #SOL003 location: 11.4
    post:
      description: >
        The POST method creates a new subscription.
      parameters:
        - name: VrQuotaAvailSubscriptionRequest
          description: Details of the subscription to be created.
          in: body
          required: true
          schema:
            $ref: "definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscriptionRequest"
      responses:
        201:
          description: > 
            Representation of the created subscription resource.
            The HTTP response shall include a "Location" HTTP header that
            points to the created subscription resource.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              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
            Location:
              description: The resource URI of the created VNF instance
              type: string
              format: url
          schema:
            $ref: "definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscription"
        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"
        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.
            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/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"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
+116 −0
Original line number Original line Diff line number Diff line
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt

definitions:
  VrQuotaAvailNotificationsFilter:
    description: >
      This type represents a subscription filter related to notifications
      about the availability of the virtualised resources quotas.
      At a particular nesting level in the filter structure, the following
      applies: All attributes shall match in order for the filter to match
      (logical "and" between different filter attributes). If an attribute is
      an array, the attribute shall match if at least one of the values in the
      array matches (logical "or" between the values of one filter attribute).
    type: object
    properties: 
      vimIds:
        description: >
          Match VIMs that were created the quota for a consumer of the
          virtualised resources.
          This attribute shall only be supported when VNF-related Resource
          Management in direct mode is applicable.
        type: array
        items:
          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      resourceProviderIds:
        description: >
          Match the entities responsible for the management of the virtualised
          resources that were allocated by the NFVO.
          This attribute shall only be supported when VNF-related Resource
          Management in indirect mode is applicable. The identification scheme
          is outside the scope of the present document.
        type: array
        items:
          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      resourceTypes:
        description: >
          Match particular resource types.
        type: array
        items:
          type: string
          enum:
            - COMPUTE
            - STORAGE
            - NETWORK
      resourceGroupIds:
        description: >
          Match the "infrastructure resource groups" that are logical
          groupings of the virtualised resources assigned to a tenant within
          an infrastructure Domain.
        type: array
        items:
          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"

  VrQuotaAvailSubscription:
    description: >
      This type represents a subscription related to notifications related to
      the availability of the virtualised resources quotas.
    type: object
    required:
      - id
      - callbackUri
      - _links
    properties:
      id:
        description: >
          Identifier of this subscription resource
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      filter:
        description: >
          Input filter for selecting notifications to subscribe to.
          This filter can contain information about specific attributes of the
          virtualised resources quota.
        $ref: "#/definitions/VrQuotaAvailNotificationsFilter"
      callbackUri:
        description: >
          The URI of the endpoint to send the notification to.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
      _links:
        description: >
          Links for this resource
        type: object
        required:
          - self
        properties:
          self:
            description: >
              URI of this resource
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"

  VrQuotaAvailSubscriptionRequest:
    description: >
      This type represents a subscription request related to notifications
      related to the availability of the virtualised resources quotas.
    type: object
    required: 
      - callbackUri
    properties:
      filter:
        description: >
          Input filter for selecting notifications to subscribe to. This
          filter can contain information about specific attributes of the
          virtualised resources quota.
        $ref: "#/definitions/VrQuotaAvailNotificationsFilter"
      callbackUri:
        description: >
          The URI of the endpoint to send the notification to.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
      authentication:
        description: >
          Authentication parameters to configure the use of Authorization when
          sending notifications corresponding to this subscription.
          This attribute shall only be present if the subscriber requires
          authorization of notifications.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"