NFVManoPerformanceManagement.yaml 43.4 KB
Newer Older
openapi: 3.0.2
  title: SOL009 - NFV-MANO Performance Management Interface
  description: |
    SOL009 - NFV-MANO Performance Management 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/SOL009/issues

  contact:
    name: NFV-SOL WG
  license:
    name: ETSI Forge copyright notice
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
  version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1

externalDocs:
  description: ETSI GS NFV-SOL 009 V3.7.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.07.01_60/gs_NFV-SOL009v030701p.pdf
  - url: http://127.0.0.1/nfvmanopm/v2
  - url: https://127.0.0.1/nfvmanopm/v2

paths:
  /api_versions:
    $ref: ../endpoints/SOL009_endpoints.yaml#/endpoints/api_versions
    
  /pm_jobs:
    post:
      description: >
        The POST method creates a PM job. See clause 6.5.3.3.1.
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/CreatePMJobRequest"
      responses:
        "201": 
          $ref: "#/components/responses/pm_jobs.Post.201"
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    get:
      description: >
        The client can use this method to retrieve information about PM jobs. See clause 6.5.3.3.2.
      parameters:
        - $ref: "#/components/parameters/filter.PmJob"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/fields"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/exclude_fields"
        - $ref: "#/components/parameters/exclude_default.PmJob"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/pm_jobs.Get.200"
          $ref: "#/components/responses/pm_jobs.Get.400"
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504

  /pm_jobs/{pmJobId}:
    parameters:
      - $ref: "#/components/parameters/pmJobId"
    get:
      description: >
        The client can use this method for reading an individual PM job. See clause 6.5.4.3.2.
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/IndividualPmJob.Get.200"
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    patch:
      description: >
        This method allows to modify an "individual PM job" resource. See clause 6.5.4.3.4.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/PmJobModificationRequest"
      responses:
        "200":
          $ref: "#/components/responses/IndividualPmJob.Patch.200"
        "412":
          $ref: "#/components/responses/IndividualPmJob.Patch.412"
        "422":
          $ref: "#/components/responses/IndividualPmJob.Patch.422"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
        "403":
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
        "404":
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
        "405":
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
        "406":
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
        "409":
          $ref: ../components/SOL009_resp.yaml#/components/responses/409
        "500":
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
        "503":
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
        "504":
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    delete:
      description: >
        This method terminates an individual PM job. See clause 6.5.4.3.5.
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "204": 
          $ref: "#/components/responses/IndividualPmJob.Delete.204"
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
  
  /pm_jobs/{pmJobId}/reports/{reportId}:
    parameters:
      - $ref: "#/components/parameters/pmJobId"
      - $ref: "#/components/parameters/reportId"
    get:
      description: >
        The client can use this method for reading an individual performance report. See clause 6.5.5.3.2.
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/IndividualPerformanceReport.Get.200"
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504

  /thresholds:
    post:
      description: >
        The POST method can be used by the client to create a threshold. See clause 6.5.6.3.1.
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
Muhammad Hamza's avatar
Muhammad Hamza committed
        $ref: "#/components/requestBodies/CreateThresholdRequest"
      responses:
        "201": 
          $ref: "#/components/responses/Thresholds.Post.201"
        "422":
          $ref: "#/components/responses/Thresholds.Post.422"
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    get:
      description: >
        The client can use this method to query information about thresholds. See clause 6.5.6.3.2.
      parameters:
        - $ref: "#/components/parameters/filter.Threshold"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/Thresholds.Get.200"
          $ref: "#/components/responses/Thresholds.Get.400"
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    
  /thresholds/{thresholdId}:
    parameters:
      - $ref: "#/components/parameters/thresholdId"
    get:
      description: >
        The client can use this method for reading an individual threshold. See clause 6.5.7.3.2.
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "200": 
          $ref: "#/components/responses/Threshold.Get.200"
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    patch:
      description: >
        This method allows to modify an "Individual threshold" resource. See clause 6.5.7.3.4.
      parameters:
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      requestBody:
        $ref: "#/components/requestBodies/ThresholdModificationRequest"
      responses:
        "200":
          $ref: "#/components/responses/Threshold.Patch.200"
        "412":
          $ref: "#/components/responses/Threshold.Patch.412"
        "422":
          $ref: "#/components/responses/Threshold.Patch.422"
        "400":
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
        "401":
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
        "403":
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
        "404":
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
        "405":
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
        "406":
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
        "409":
          $ref: ../components/SOL009_resp.yaml#/components/responses/409
        "500":
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
        "503":
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
        "504":
          $ref: ../components/SOL009_resp.yaml#/components/responses/504
    delete:
      description: >
        This method allows to delete a threshold. See clause 6.5.7.3.5.
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
        - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
      responses:
        "204": 
          $ref: "#/components/responses/Threshold.Delete.204"
          $ref: ../components/SOL009_resp.yaml#/components/responses/400
          $ref: ../components/SOL009_resp.yaml#/components/responses/401
          $ref: ../components/SOL009_resp.yaml#/components/responses/403
          $ref: ../components/SOL009_resp.yaml#/components/responses/404
          $ref: ../components/SOL009_resp.yaml#/components/responses/405
          $ref: ../components/SOL009_resp.yaml#/components/responses/406
          $ref: ../components/SOL009_resp.yaml#/components/responses/422
          $ref: ../components/SOL009_resp.yaml#/components/responses/500
          $ref: ../components/SOL009_resp.yaml#/components/responses/503
          $ref: ../components/SOL009_resp.yaml#/components/responses/504

components:
  responses:
    pm_jobs.Post.201:
      description: >
        201 CREATED

        Shall be returned when the PM job has been created successfully.

        The response body shall contain a representation of the created 
        "Individual PM job" resource, as defined in clause 6.6.2.7.

        The HTTP response shall include a "Location" HTTP header that 
        points to the created "Individual PM job" resource.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
Giacomo Bernini's avatar
Giacomo Bernini committed
            $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/PmJob"
    pm_jobs.Post.422:
      description: >
        422 Unprocessable Content

        Shall be returned upon the following error: The content type
        of the message content is supported and the message content of a request
        contains syntactically correct data but the data cannot be processed.

        The general cause for this error and its handling is specified in
        clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
        of the response body.

        Specifically in case of this resource, the response code 422 shall also
        be returned if the API producer has tested the Notification endpoint as
        described in clause 6.5.10.3.2 and the test has failed.

        In this case, the "detail" attribute in the "ProblemDetails" structure
        shall convey more information about the error.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"

    pm_jobs.Get.200:
      description: >
        200 OK

        Shall be returned when information about zero or more PM jobs has 
        been queried successfully.

        The response body shall contain in an array the representations 
        of zero or more PM jobs, as defined in clause 6.6.2.7.

        If the "filter" URI parameter or one of the "all_fields", "fields" 
        (if supported), "exclude_fields" (if supported) or "exclude_default" 
        URI parameters 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 and 5.3.2 of ETSI GS NFV-SOL 013, respectively.

        If the NFV-MANO functional entity 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:
        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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
        Link:
          description: >
            Reference to other resources. Link HTTP header in this response 
            shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
          schema:
            type: string
            minimum: 0
            maximum: 1
      content:
        application/json:
          schema:
            type: array
            items:
Giacomo Bernini's avatar
Giacomo Bernini committed
              $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/PmJob"
    pm_jobs.Get.400:
      description: >
        400 BAD REQUEST

        Shall be returned upon the following errors: 
          - Invalid attribute-based filtering expression.
            The response body shall contain a ProblemDetails structure, in which 
            the "detail" attribute should convey more information about the error.
          - Invalid attribute selector.
            The response body shall contain a ProblemDetails structure, in which 
            the "detail" attribute should convey more information about the error.
          - Response too big.
            If the NFV-MANO functional entity supports alternative N°1 (error) 
            according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, 
            this error response shall follow the provisions in clause 5.4.2.2 of 
            ETSI GS NFV-SOL 013.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    IndividualPmJob.Get.200:
      description: >
        200 OK

        Shall be returned when information about an individual PM job 
        has been read successfully.

        The response body shall contain a representation of the
        "Individual PM job" resource, as defined in clause 6.6.2.7.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
Giacomo Bernini's avatar
Giacomo Bernini committed
            $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/PmJob"
    IndividualPmJob.Patch.200:
      description: >
        200 OK

        Shall be returned when the request has been processed successfully.

        The response body shall contain a data structure of type "PmJobModifications"
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
Giacomo Bernini's avatar
Giacomo Bernini committed
            $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/PmJobModifications"
    IndividualPmJob.Patch.412:
      description: >
        412 PRECONDITION FAILED

        Shall be returned upon the following error: A precondition given in
        an HTTP request header is not fulfilled.

        Typically, this is due to an ETag mismatch, indicating that the resource
        was modified by another entity.

        The response body should contain a ProblemDetails structure, in which
        the "detail" attribute should convey more information about the error.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    IndividualPmJob.Patch.422:
      description: >
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        422 Unprocessable Content

        Shall be returned upon the following error: The content type
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        of the message content is supported and the message content of a request
        contains syntactically correct data but the data cannot be processed.

        The general cause for this error and its handling is specified in
        clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
        of the response body.

        Specifically in case of this resource, the response code 422 shall also
        be returned if the API producer has tested the Notification endpoint as
        described in clause 6.5.10.3.2 and the test has failed.

        In this case, the "detail" attribute in the "ProblemDetails" structure
        shall convey more information about the error.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    IndividualPmJob.Delete.204:
      description: >
        204 NO CONTENT

        Shall be returned when the PM job has been deleted 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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string

    IndividualPerformanceReport.Get.200:
      description: >
        200 OK

        Shall be returned when information of an individual performance 
        report has been read successfully.

        The response body shall contain a representation of the 
        "Individual performance report" resource, as defined 
        in clause 6.6.2.10.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
Giacomo Bernini's avatar
Giacomo Bernini committed
            $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/PerformanceReport"
    Thresholds.Post.201:
      description: >
        201 CREATED

        Shall be returned when a threshold has been created successfully. 

        The response body shall contain a representation of the created 
        "Individual threshold" resource, as defined in clause 6.6.2.9.

        The HTTP response shall include a "Location" HTTP header that 
        contains the resource URI of the created "Individual threshold" 
        resource.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
        Location:
          description: >
            The resource URI of the created "Individual change state 
            operation occurence" resource.
          schema:
            type: string
            format: url
            minimum: 1
            maximum: 1
      content:
        application/json:
          schema:
Giacomo Bernini's avatar
Giacomo Bernini committed
            $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/Threshold"
    Thresholds.Post.422:
      description: >
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        422 Unprocessable Content

        Shall be returned upon the following error: The content type
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        of the message content is supported and the message content of a request
        contains syntactically correct data but the data cannot be processed.

        The general cause for this error and its handling is specified in
        clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
        of the response body.

        Specifically in case of this resource, the response code 422 shall also
        be returned if the API producer has tested the Notification endpoint as
        described in clause 6.5.10.3.2 and the test has failed.

        In this case, the "detail" attribute in the "ProblemDetails" structure
        shall convey more information about the error.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"

    Thresholds.Get.200:
      description: >
        200 OK

        Shall be returned when information about zero or more thresholds 
        has been queried successfully.

        The response body shall contain in an array the representations 
        of zero or more thresholds, as defined in clause 6.6.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 NFV-MANO functional entity 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:
        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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            type: array
            items:
Giacomo Bernini's avatar
Giacomo Bernini committed
              $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/Threshold"
    Thresholds.Get.400:
      description: >
        400 BAD REQUEST

        Shall be returned upon the following errors: 
          - Invalid attribute-based filtering expression.
            The response body shall contain a ProblemDetails structure, in which 
            the "detail" attribute should convey more information about the error.
          - Response too big.
            If the NFV-MANO functional entity supports alternative N°1 (error) 
            according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, 
            this error response shall follow the provisions in clause 5.4.2.2 of 
            ETSI GS NFV-SOL 013.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    Threshold.Get.200:
      description: >
        200 OK

        Shall be returned when information about an individual threshold 
        has been read successfully.

        The response body shall contain a representation of the threshold, 
        as defined in clause 6.6.2.9.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
Giacomo Bernini's avatar
Giacomo Bernini committed
            $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/Threshold"
    Threshold.Patch.200:
      description: >
        200 OK

        Shall be returned when the request has been processed successfully.

        The response body shall contain a data structure of type "ThresholdModifications"
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
Giacomo Bernini's avatar
Giacomo Bernini committed
            $ref: "./components/NFVManoPerformanceManagement_def.yaml#/components/schemas/ThresholdModifications"
    Threshold.Patch.412:
      description: >
        412 PRECONDITION FAILED

        Shall be returned upon the following error: A precondition given in
        an HTTP request header is not fulfilled.

        Typically, this is due to an ETag mismatch, indicating that the resource
        was modified by another entity.

        The response body should contain a ProblemDetails structure, in which
        the "detail" attribute should convey more information about the error.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
    Threshold.Patch.422:
      description: >
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        422 Unprocessable Content

        Shall be returned upon the following error: The content type
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        of the message content is supported and the message content of a request
        contains syntactically correct data but the data cannot be processed.

        The general cause for this error and its handling is specified in
        clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
        of the response body.

        Specifically in case of this resource, the response code 422 shall also
        be returned if the API producer has tested the Notification endpoint as
        described in clause 6.5.10.3.2 and the test has failed.

        In this case, the "detail" attribute in the "ProblemDetails" structure
        shall convey more information about the error.
      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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"

    Threshold.Delete.204:
      description: >
        204 NO CONTENT
        
        Shall be returned when the threshold has been deleted 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.
          schema:
            type: string
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string

  parameters:

    filter.PmJob :
      name: filter
      description: >
        Attribute-based filtering expression according to clause 5.2 of 
        ETSI GS NFV-SOL 013.