# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
type: object
title: Transaction
description: Transaction
example:
  $ref: "../examples/transaction.json"
properties:
  origin:
    type: string
    description: |-
      The ``server_name`` of the homeserver sending this transaction.
    example: "example.org"
  origin_server_ts:
    type: integer
    format: int64
    description: |-
      POSIX timestamp in milliseconds on originating homeserver when this
      transaction started.
    example: 1532991320875
  pdus:
    type: array
    description: |-
      List of persistent updates to rooms. Must not include more than 50 PDUs. Note that
      events have a different format depending on the room version - check the
      `room version specification`_ for precise event formats.
    items:
      type: object
      title: PDU
      description: |-
        The `PDUs <#pdus>`_ contained in the transaction. The event format varies depending
        on the room version - check the `room version specification`_ for precise event formats.
      properties: []
      example:
        $ref: "../examples/minimal_pdu.json"
required: ['origin', 'origin_server_ts', 'pdus']
