# Copyright 2019 The Matrix.org Foundation C.I.C.
#
# 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: KeyBackupData
description: "The key data"
properties:
  first_message_index:
    description: |-
      The index of the first message in the session that the key can decrypt.
    type: integer
    example: 1
  forwarded_count:
    description: |-
      The number of times this key has been forwarded via key-sharing between devices.
    type: integer
    example: 0
  is_verified:
    description: |-
      Whether the device backing up the key verified the device that the key
      is from.
    type: boolean
    example: false
  session_data:
    description: |-
      Algorithm-dependent data.  See the documentation for the backup
      algorithms in [Server-side key backups](/client-server-api/#server-side-key-backups) for more information on the
      expected format of the data.
    type: object
    example: {
      "ephemeral": "base64+ephemeral+key",
      "ciphertext": "base64+ciphertext+of+JSON+data",
      "mac": "base64+mac+of+ciphertext"
    }
required:
  - first_message_index
  - forwarded_count
  - is_verified
  - session_data
