NFVICapacityInformation.yaml 21.2 KB
Newer Older
openapi: 3.0.2

info:
  title: SOL005 - NFVI Capacity Information Interface
  description: |
    SOL005 - NFVI Capacity Information Interface

    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/rep/nfv/SOL005/issues
  contact:
    name: NFV-SOL WG
  license:
    name: ETSI Forge copyright notice
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
  version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
  description: ETSI GS NFV-SOL 005 V3.5.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.05.01_60/gs_nfv-sol005v030501p.pdf

servers:
  - url: http://127.0.0.1/nfvici/v1
  - url: https://127.0.0.1/nfvici/v1

paths:
  /api_versions:
    $ref: ../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions

  /nfvi_capacity_infos:
    parameters:
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
    get:
      description: |
        The API consumer can use this method to retrieve information about NFVI capacity information. See clause 10.4.2.3.2.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default
        - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
      responses:
        "200":
          $ref: '#/components/responses/NfviCapacityInfos.Get'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/406
        "500":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/504

  /nfvi_capacity_infos/{vimId}:
    parameters:
      - $ref: '#/components/parameters/VimId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
    get:
      description: |
        The API consumer can use this method for reading an individual VIM's NFVI capacity information. See clause 10.4.3.3.2.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
      responses:
        "200":
          $ref: '#/components/responses/NfviCapacityInfo.Get'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/406
        "500":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/504

  /capacity_thresholds:
    parameters:
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
    get:
      description: |
        The API consumer can use this method to query information about NFVI capacity thresholds. See clause 10.4.4.3.2
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker
      responses:
        "200":
          $ref: '#/components/responses/CapacityThresholds.Get'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/406
        "500":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/504

    post:
      description: |
        The POST method creates a new NFVI capacity threshold. See clause 10.4.4.3.1.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/NfviCapacityThresholdRequest'
      responses:
        "201":
          $ref: '#/components/responses/CapacityThresholds.Post'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/406
        "422":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/422
        "500":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/504

  /capacity_thresholds/{capacityThresholdId}:
    parameters:
      - $ref: '#/components/parameters/CapacityThresholdId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
    get:
      description: |
        The API consumer can use this method for reading information about an NFVI capacity threshold. See clause 10.4.5.3.2.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
      responses:
        "200":
          $ref: '#/components/responses/IndividualCapacityThreshold.Get'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/406
        "500":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/504

        This method allows to modify an "Individual capacity threshold" resource. See clause 10.4.5.3.4.
      requestBody:
        $ref: '#/components/requestBodies/IndividualNfviCapacityThresholdRequest'
      responses:
        "200":
          $ref: '#/components/responses/IndividualCapacityThreshold.Patch'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/406
        "412":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/412
        "422":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/422
        "500":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/504

        This method allows to delete an NFVI capacity threshold. See clause 10.4.5.3.5.
      responses:
        "204":
          $ref: '#/components/responses/IndividualCapacityThreshold.Delete'
        "400":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/400
        "401":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/401
        "403":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/403
        "404":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/404
        "405":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/405
        "406":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/406
        "500":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/500
        "503":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/503
        "504":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/504

components:
  parameters:
    VimId:
      name: vimId
      in: path
      description: |
        Identifier of the VIM with associated NFVI capacity information.
        This identifier can be retrieved from the "vimId" attribute in the CapacityShortageNotification.
        It can also be retrieved from the "vimId" attribute in the payload body of the response.
      required: true
      style: simple
      explode: false
      schema:
        type: string

    CapacityThresholdId:
      name: capacityThresholdId
      in: path
      description: |
        Identifier of the capacity threshold.
        This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to
        a POST request creating a new "Individual capacity threshold" resource. It can also be retrieved from the "id"
        attribute in the payload body of that response.
      required: true
      style: simple
      explode: false
      schema:
        type: string

  requestBodies:
    NfviCapacityThresholdRequest:
      description: |
        Request parameters to create a new "Individual capacity threshold" resource.
      content:
        application/json:
          schema:
            $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CreateCapacityThresholdRequest
      required: true

    IndividualNfviCapacityThresholdRequest:
      description: |
        Parameters for the capacity threshold modification.
        The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396.
      content:
        application/json:
          schema:
            $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThresholdModifications
      required: true

  responses:
    NfviCapacityInfos.Get:
      description: |
        Shall be returned when information about NFVI capacity information has been queried successfully.
        The response body shall contain NFVI capacity information, as defined in clause 10.5.2.4.
        If the "filter" URI parameter was supplied in the request, the data in the response body shall have been
        transformed according to the rules specified in clauses 5.2.2 of ETSI GS NFV-SOL 013.
        If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource,
        inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
      headers:
        Version:
          description: |
            Version of the API used in the response.
          style: simple
          explode: false
          schema:
            type: string
        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.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: The MIME type of the body of the response.
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/NfviCapacityInfo

    NfviCapacityInfo.Get:
      description: |
        Shall be returned when information of an individual VIM’s NFVI capacity has been read successfully.
        The response body shall contain a representation of  the NFVI capacity information, as defined in clause 10.5.2.4.
      headers:
        Version:
          description: |
            Version of the API used in the response.
          style: simple
          explode: false
          schema:
            type: string
        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.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: The MIME type of the body of the response.
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/NfviCapacityInfo

    CapacityThresholds.Get:
      description: |
        Shall be returned when information about zero or more capacity thresholds has been queried successfully.
        If the "filter" URI parameter was supplied in the request, the data in the response body shall have been
        transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013.
        The response body shall contain in an array the representations of zero or more capacity thresholds, as
        defined in clause 10.5.2.8.
        If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource,
        inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
      headers:
        Version:
          description: |
            Version of the API used in the response.
          style: simple
          explode: false
          schema:
            type: string
        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.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: The MIME type of the body of the response.
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThreshold

    CapacityThresholds.Post:
      description: |
        Shall be returned when a capacity threshold has been created successfully.
        The response body shall contain a representation of the created "Individual capacity threshold" resource,
        as defined in clause 10.5.2.8.
        The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created resource.
      headers:
        Version:
          description: |
            Version of the API used in the response.
          style: simple
          explode: false
          schema:
            type: string
        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.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: The MIME type of the body of the response.
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThreshold

    IndividualCapacityThreshold.Get:
      description: |
        Shall be returned when information about an individual capacity threshold has been read successfully.
        The response body shall contain in a representation of the capacity threshold, as defined in clause 10.5.2.8.
      headers:
        Version:
          description: |
            Version of the API used in the response.
          style: simple
          explode: false
          schema:
            type: string
        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.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: The MIME type of the body of the response.
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThreshold

    IndividualCapacityThreshold.Patch:
      description: |
        200 OK
        Shall be returned when the request has been processed successfully.
        The response body shall contain a data structure of type "CapacityThresholdModifications".
      headers:
        Version:
          description: |
            Version of the API used in the response.
          style: simple
          explode: false
          schema:
            type: string
        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.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: The MIME type of the body of the response.
          style: simple
          explode: false
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThresholdModifications

    IndividualCapacityThreshold.Delete:
      description: |
        Shall be returned when the NFVI capacity threshold has been deleted successfully.
        The response body shall be empty.
      headers:
        Version:
          description: |
            Version of the API used in the response.
          style: simple
          explode: false
          schema:
            type: string
        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.
          style: simple
          explode: false
          schema:
            type: string
        Content-Type:
          description: The MIME type of the body of the response.
          style: simple
          explode: false
          schema:
            type: string
Giacomo Bernini's avatar
Giacomo Bernini committed
      content: {}