---
allOf:
  - $ref: core-event-schema/room_event.yaml
description: This message represents a single audio clip.
properties:
  content:
    properties:
      body:
        description: |-
          If `filename` is not set or the value of both properties are
          identical, this is the filename of the original upload. Otherwise,
          this is a caption for the audio.
        type: string
        x-changedInMatrixVersion:
          "1.10": This property can act as a caption for the audio.
      format:
        description: |-
          The format used in the `formatted_body`. Currently only
          `org.matrix.custom.html` is supported.
        type: string
        x-addedInMatrixVersion: "1.10"
      formatted_body:
        description: |-
          The formatted version of the `body`, when it acts as a caption. This
          is required if `format` is specified.
        type: string
        x-addedInMatrixVersion: "1.10"
      filename:
        description: The original filename of the uploaded file.
        type: string
        x-addedInMatrixVersion: "1.10"
      info:
        description: Metadata for the audio clip referred to in `url`.
        properties:
          duration:
            description: The duration of the audio in milliseconds.
            type: integer
          mimetype:
            description: The mimetype of the audio e.g. `audio/aac`.
            type: string
          size:
            description: The size of the audio clip in bytes.
            type: integer
        title: AudioInfo
        type: object
      msgtype:
        enum:
          - m.audio
        type: string
      url:
        description: |-
          Required if the file is unencrypted. The URL (typically [`mxc://` URI](/client-server-api/#matrix-content-mxc-uris))
          to the audio clip.
        type: string
      file:
        description: |-
          Required if the file is encrypted. Information on the encrypted
          file, as specified in
          [End-to-end encryption](/client-server-api/#sending-encrypted-attachments).
        title: EncryptedFile
        type: object
    required:
      - msgtype
      - body
    type: object
  type:
    enum:
      - m.room.message
    type: string
title: AudioMessage
type: object
