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 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/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

externalDocs:
  description: ETSI GS NFV-SOL 005 V3.3.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.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:
      summary: Query NFVI capacity information
      description: |
        The API consumer can use this method to retrieve information about NFVI capacity information.
      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:
      summary: Query NFVI capacity information for a specific VIM
      description: |
        The API consumer can use this method for reading an individual VIM’s NFVI capacity information.
      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:
      summary: Query NFVI capacity thresholds
      description: |
        This resource represents NFVI capacity thresholds.
        The API consumer can use this resource to create and query NFVI capacity thresholds.
      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:
      summary: Create a NFVI capacity threshold
      description: |
        The POST method creates a new NFVI capacity threshold.
        As a result of successfully executing this method, a new "Individual capacity threshold" resource as defined
        in clause 10.4.5 shall have been created.
      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:
      summary: Query Individual NFVI capacity threshold
      description: |
        The API consumer can use this method for reading information about an NFVI capacity threshold.
        This method shall follow the provisions specified in the tables 10.4.5.3.2-1 and 10.4.5.3.2-2 for URI query
        parameters, request and response data structures, and response codes.
      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

    patch:
      summary: Modify an "Individual capacity threshold" resource
      description: |
        This method iallows to modify an "Individual capacity threshold" resource.
        This method shall follow the provisions specified in the Tables 10.4.5.3.4-1 and 10.4.5.3.4-2 for URI query
        parameters, request and response data structures, and response codes.
      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

    delete:
      summary: Delete an NFVI capacity threshold
      description: |
        This method allows to delete an NFVI capacity threshold.
        As a result of successfully executing this method, the "Individual capacity threshold" resource shall not exist
        any longer.
      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

  /subscriptions:
    parameters:
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
    get:
      summary: Query multiple subscriptions.
      description: |
        The API consumer can use this method to query the list of active subscriptions to NFVI capacity information
        notifications subscribed by the API consumer.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker
      responses:
        "200":
          $ref: '#/components/responses/NfviCiSubscriptions.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:
      summary: Create an NFVI capacity subscription
      description: |
        The POST method creates a new subscription.
        This method shall follow the provisions specified in the Tables 10.4.6.3.1-1 and 10.4.6.3.1-2 for URI query
        parameters, request and response data structures, and response codes.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/NfviCapacitySubscriptionRequest'
      responses:
        "201":
          $ref: '#/components/responses/NfviCiSubscriptions.Post'
        "303":
          $ref: ../responses/SOL005_resp.yaml#/components/responses/303
        "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
      callbacks:
        CapacityShortageNotification:
          $ref: '#/components/callbacks/CapacityShortageNotification'


  /subscriptions/{subscriptionId}:
    parameters:
      - $ref: '#/components/parameters/SubscriptionId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
    get:
      summary: Read an individual subscription resource
      description: |
        The API consumer can use this method for reading an individual subscription about NFVI capacity information
        notifications subscribed by the API consumer.
      parameters:
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
      responses:
        "200":
          $ref: '#/components/responses/NfviCiSubscription.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

    delete:
      summary: Terminate a subscription.
      description: |
        This method terminates an individual subscription.
        This method shall follow the provisions specified in the Tables 10.4.7.3.5-1 and 10.4.7.3.5-2 for URI query
        parameters, request and response data structures, and response codes.
      responses:
        "204":
          $ref: '#/components/responses/NfviCiSubscription.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

    SubscriptionId:
      name: subscriptionId
      in: path
      description: |
        Identifier of the 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.
      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

    NfviCapacitySubscriptionRequest:
      description: |
        Details of the subscription to be created.
      content:
        application/json:
          schema:
            $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/NfviCapacityInfoSubscriptionRequest
      required: true

    CapacityShortageNotificationRequest:
      description: |
        Notification about the available NFVI capacity having crossed below a threshold value or having re-covered from
        a capacity shortage.
      content:
        application/json:
          schema:
            $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityShortageNotification
      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
      content: {}

    NfviCiSubscriptions.Get:
      description: |
        Shall be returned when the list of subscriptions has been queried successfully.
        The response body shall contain in an array the representations of all active subscriptions of the functional
        block that invokes the method, i.e. zero or more representations of NFVI capacity information subscriptions,
        as defined in clause 10.5.2.9.
        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.
        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/NfviCapacityInfoSubscription

    NfviCiSubscriptions.Post:
      description: |
        Shall be returned when the subscription has been created successfully.
        A representation of the created subscription resource shall be returned in the response body, as defined in
        clause 10.5.2.9.
        The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created subscription
        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/NfviCapacityInfoSubscription

    NfviCiSubscription.Get:
      description: |
        Shall be returned when the subscription has been read successfully.
        The response body shall contain a representation of the subscription resource, as defined in clause 10.5.2.9.
      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/NfviCapacityInfoSubscription

    NfviCiSubscription.Delete:
      description: |
        Shall be returned when the subscription resource 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
      content: {}

    CapacityShortageNotification.Post:
      description: |
        Shall be returned when the notification has been delivered successfully.
      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: {}

    CapacityShortageNotification.Get:
      description: |
        Shall be returned to indicate that the notification endpoint has been tested 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
      content: {}

  callbacks:
    CapacityShortageNotification:
      '{$request.body#/callbackUri}':
        description: >-
          This resource represents a notification endpoint for NFVI capacity information.
          The API producer can use this resource to send notifications related to log management events to a
          subscribed API consumer, which has provided the URI of this resource during the capacity threshold
          creation process.
        post:
          description: >-
            The POST method delivers a notification regarding an NFVI capacity information event from the API producer
            to an API consumer. The API consumer shall have previously created an "Individual capacity threshold" resource"
          parameters:
            - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
            - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
          requestBody:
            $ref: "#/components/requestBodies/CapacityShortageNotificationRequest"
          responses:
            "204":
              $ref: '#/components/responses/CapacityShortageNotification.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

        get:
          description: >-
            The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
            e.g. during creation of the capacity threshold resource.
          parameters:
            - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
            - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
            - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
          responses:
            "204":
              $ref: '#/components/responses/CapacityShortageNotification.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
            "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