# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt

components:
  responses:
    206:
      description: >
        206 PARTIAL CONTENT
      headers:
        Content-Type:
          description: >
            The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        Content-Range:
          description: >
            The Content-Range response HTTP header indicates where in a full body message a partial message belongs.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    303:
      description: >
        303 See Other
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1

    400:
      description: >
        400 BAD REQUEST

        400 code can be returned in the following specified cases, the specific cause has to be proper specified in the
        "ProblemDetails" structure to be returned.

        If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect
        query parameters or the message content contains a syntactically incorrect data structure),
        the API producer shall respond with this response code. More details are defined in IETF RFC 9110.
        The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more 
        information about the source of the problem.

        If the response to a GET request which queries a container resource would be so big that the performance
        of the API producer is adversely affected, and the API producer does not support paging for the affected resource,
        it shall respond with this response code. Clause 5.4.2.2 specifies provisions for the "ProblemDetails" structure 
        provided in the response body.

        If there is an application error related to the client's input that cannot be easily mapped to any other
        HTTP response code ("catch all error"), the API producer shall respond with this response code.
        The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information
        about the source of the problem.

        If the request contains a malformed access token, the API producer should respond with this response.
        The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750. The 
        ProblemDetails structure may be provided.

        The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0
        for the authorization of API requests and notifications, as defined in clauses 8.3.3 and 8.3.4.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    401:
      description: >
        401 UNAUTHORIZED

        If the request contains no access token even though one is required, or if the request contains an authorization
        token that is invalid (e.g. expired or revoked), the API producer should respond with this response.
        The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750
        and IETF RFC 9110. The ProblemDetails structure may be provided.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    403:
      description: >
        403 FORBIDDEN

        If the API consumer is not allowed to perform a particular request to a particular resource,
        the API producer shall respond with this response code. More details are defined in IETF RFC 9110.
        The "ProblemDetails" structure shall be provided. It should include in the "detail" attribute information 
        about the source of the problem, and may indicate how to solve it.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    404:
      description: >
        404 NOT FOUND

        If the API producer did not find a current representation for the resource addressed by the URI passed
        in the request or is not willing to disclose that one exists, it shall respond with this response code.
        A typical reason for this error can e.g. be that resource URI variables were set wrongly. More details 
        are defined in IETF RFC 9110. The "ProblemDetails" structure may be provided, including in the "detail" 
        attribute information about the source of the problem, e.g. a wrong resource URI variable.

        This response code is not appropriate in case the resource addressed by the URI is a container resource
        which is designed to contain child resources, but does not contain any child resource at the time
        the request is received. For a GET request to an existing empty container resource, a typical response
        contains a 200 OK response code and a message content with an empty array.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    405:
      description: >
        405 METHOD NOT ALLOWED

        If a particular HTTP method is not supported for a particular resource, the API producer shall respond
        with this response code. The "ProblemDetails" structure may be provided.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    406:
      description: >
        406 NOT ACCEPTABLE

        If the "Accept" HTTP header does not contain at least one name of a content type
        that is acceptable to the API producer, the API producer shall respond with this
        response code. The "ProblemDetails" structure may be provided.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    409:
      description: >
        409 CONFLICT
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    412:
      description: >
        412 PRECONDITION FAILED

        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:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    413:
      description: >
        413 PAYLOAD TOO LARGE

        If the message content of a request is larger than the amount of data the API producer is willing or able to process,
        it shall respond with this response code, following the provisions in IETF RFC 9110 for the use
        of the "Retry-After" HTTP header and for closing the connection. The "ProblemDetails" structure may be provided.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    414:
      description: >
        414 URI TOO LONG

        If the request URI of a request is longer than the API producer is willing or able to process,
        it shall respond with this response code. This condition can e.g. be caused by passing long queries
        in the request URI of a GET request. More details are defined in IETF RFC 9110. The "ProblemDetails" 
        structure may be provided.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    416:
      description: >
        416 Range Not Satisfiable
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    422:
      description: >
        422 UNPROCESSABLE Content

        If the content type of the message content is supported and the message content of a request contains 
        syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails 
        validation against a schema), the API producer shall respond with this response code. More details are 
        defined in IETF RFC 9110. The "ProblemDetails" structure shall be provided, and should include in the 
        "detail" attribute more information about the source of the problem. 

        This error response code is only applicable for methods that have a request body.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    429:
      description: >
        429 TOO MANY REQUESTS

        If the API consumer has sent too many requests in a defined period of time and the API producer is able
        to detect that condition ("rate limiting"), the API producer shall respond with this response code,
        following the provisions in IETF RFC 6585 for the use of the "Retry-After" HTTP header. The "ProblemDetails" 
        structure shall be provided and shall include in the "detail" attribute more information about the source 
        of the problem.

        The period of time and allowed number of requests are configured within the API producer by means
        outside the scope of the present document.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    500:
      description: >
        500 INTERNAL SERVER ERROR

        If the Server is unable to process the request, and retrying the same request later might eventually 
        succeed, the server shall respond with this response code. Further, if there is an application error 
        not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), 
        the API producer shall respond with this response code. More details are defined in IETF RFC 9110. The 
        "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information 
        about the source of the problem.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    503:
      description: >
        503 SERVICE UNAVAILABLE

        If the API producer encounters an internal overload situation of itself or of a system it relies on,
        it should respond with this response code, following the provisions in IETF RFC 9110 for the use of
        the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" 
        structure may be provided.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"

    504:
      description: >
        504 GATEWAY TIMEOUT

        If the API producer encounters a timeout while waiting for a response from an upstream server
        (i.e. a server that the API producer communicates with when fulfilling a request), it should respond
        with this response code. More details are defined in IETF RFC 9110. The "ProblemDetails" structure 
        may be provided.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        WWW-Authenticate:
          description: >
            Challenge if the corresponding HTTP request has not provided
            authorization, or error details if the corresponding HTTP
            request has provided an invalid authorization token.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
      content:
        application/json:
          schema:
            $ref: "../SOL002/General_Definitions/SOL002_def.yaml#/definitions/ProblemDetails"