parameters:
  #Path
  - $ref: ../components/parameters/ID.yaml
  #Headers
  - $ref: ../components/parameters/Content-Type.yaml
  - $ref: ../components/parameters/Date.yaml
  - $ref: ../components/parameters/X-Forwarded-For.yaml
  - $ref: ../components/parameters/FSPIOP-Source.yaml
  - $ref: ../components/parameters/FSPIOP-Destination.yaml
  - $ref: ../components/parameters/FSPIOP-Encryption.yaml
  - $ref: ../components/parameters/FSPIOP-Signature.yaml
  - $ref: ../components/parameters/FSPIOP-URI.yaml
  - $ref: ../components/parameters/FSPIOP-HTTP-Method.yaml
get:
  tags:
    - thirdpartyRequests
    - sampled
  operationId: GetThirdpartyTransactionRequests
  summary: GetThirdpartyTransactionRequests
  description: |
    The HTTP request `GET /thirdpartyRequests/transactions/{ID}` is used to request the
    retrieval of a third party transaction request.
  parameters:
    #Headers
    - $ref: ../components/parameters/Accept.yaml
  responses:
    202:
      $ref: ../components/responses/202.yaml
    400:
      $ref: ../components/responses/400.yaml
    401:
      $ref: ../components/responses/401.yaml
    403:
      $ref: ../components/responses/403.yaml
    404:
      $ref: ../components/responses/404.yaml
    405:
      $ref: ../components/responses/405.yaml
    406:
      $ref: ../components/responses/406.yaml
    501:
      $ref: ../components/responses/501.yaml
    503:
      $ref: ../components/responses/503.yaml

put:
  tags:
    - thirdpartyRequests
    - sampled
  operationId: UpdateThirdPartyTransactionRequests
  summary: UpdateThirdPartyTransactionRequests
  description: |
    The HTTP request `PUT /thirdpartyRequests/transactions/{ID}` is used by the DFSP to inform the client about
    the status of a previously requested thirdparty transaction request.

    Switch(Thirdparty API Adapter) -> PISP
  parameters:
    #Headers
    - $ref: ../components/parameters/Content-Length.yaml
  requestBody:
    required: true
    content:
      application/json:
        schema:
          $ref: ../components/schemas/ThirdpartyRequestsTransactionsIDPutResponse.yaml
        example:
          transactionRequestState: 'RECEIVED'
  responses:
    200:
      $ref: ../components/responses/200.yaml
    400:
      $ref: ../components/responses/400.yaml
    401:
      $ref: ../components/responses/401.yaml
    403:
      $ref: ../components/responses/403.yaml
    404:
      $ref: ../components/responses/404.yaml
    405:
      $ref: ../components/responses/405.yaml
    406:
      $ref: ../components/responses/406.yaml
    501:
      $ref: ../components/responses/501.yaml
    503:
      $ref: ../components/responses/503.yaml

patch:
  operationId: NotifyThirdpartyTransactionRequests
  summary: NotifyThirdpartyTransactionRequests
  description: |
    The HTTP request `PATCH /thirdpartyRequests/transactions/{ID}` is used to
    notify a thirdparty of the outcome of a transaction request.

    Switch(Thirdparty API Adapter) -> PISP
  tags:
    - thirdpartyRequests
  parameters:
    - $ref: ../components/parameters/Accept.yaml
    - $ref: ../components/parameters/Content-Length.yaml
  requestBody:
    required: true
    content:
      application/json:
        schema:
          $ref: ../components/schemas/ThirdpartyRequestsTransactionsIDPatchResponse.yaml
        example:
          transactionRequestState: 'ACCEPTED'
          transactionState: 'COMMITTED'
  responses:
    200:
      $ref: ../components/responses/200.yaml
    400:
      $ref: ../components/responses/400.yaml
    401:
      $ref: ../components/responses/401.yaml
    403:
      $ref: ../components/responses/403.yaml
    404:
      $ref: ../components/responses/404.yaml
    405:
      $ref: ../components/responses/405.yaml
    406:
      $ref: ../components/responses/406.yaml
    501:
      $ref: ../components/responses/501.yaml
    503:
      $ref: ../components/responses/503.yaml

