matrix-spec/event-schemas/schema/m.room.message$m.file
Jimmy Cuadra b885714d94 Remove the "required" designation from the url field of certain
m.room.message msgtypes.

Now that content referenced by the *m.audio*, *m.file*, *m.image*, and
*m.video* message types can be encrypted, the `url` field is required
*only* if the content is unencrypted. The "required" designation in the
event schemas (which prefixes the field description with "Required" in
bold in the generated HTML) is used to indicate fields which must always
be present, and this is no longer the case.

Signed-off-by: Jimmy Cuadra <jimmy@jimmycuadra.com>
2019-06-14 13:49:14 -07:00

65 lines
2 KiB
Plaintext

---
allOf:
- $ref: core-event-schema/room_event.yaml
description: This message represents a generic file.
properties:
content:
properties:
body:
description: A human-readable description of the file. This is recommended to be the filename of the original upload.
type: string
filename:
description: The original filename of the uploaded file.
type: string
info:
description: Information about the file referred to in ``url``.
properties:
mimetype:
description: The mimetype of the file e.g. ``application/msword``.
type: string
size:
description: The size of the file in bytes.
type: integer
thumbnail_url:
description: |-
The URL to the thumbnail of the file. Only present if the
thumbnail is unencrypted.
type: string
thumbnail_file:
description: |-
Information on the encrypted thumbnail file, as specified in
|encrypted_files|_. Only present if the thumbnail is encrypted.
title: EncryptedFile
type: object
thumbnail_info:
allOf:
- $ref: core-event-schema/msgtype_infos/thumbnail_info.yaml
description: Metadata about the image referred to in ``thumbnail_url``.
title: FileInfo
type: object
msgtype:
enum:
- m.file
type: string
url:
description: |-
Required if the file is unencrypted. The URL (typically `MXC URI`_)
to the file.
type: string
file:
description: |-
Required if the file is encrypted. Information on the encrypted
file, as specified in |encrypted_files|_.
title: EncryptedFile
type: object
required:
- msgtype
- body
type: object
type:
enum:
- m.room.message
type: string
title: FileMessage
type: object