type: object
properties:
    recordingId:
        type: string
        example: 'room-123--EG_XYZ--XX445'
        description: The unique identifier of the recording.
    roomId:
        type: string
        example: 'room-123'
        description: The unique identifier of the room where the recording was made.
    roomName:
        type: string
        example: 'room'
        description: The name of the room where the recording was made.
    # outputMode:
    #   type: string
    #   example: 'COMPOSED'
    #   description: >
    #     The output mode of the recording. Possible value: "COMPOSED".
    status:
        type: string
        enum: ['starting', 'active', 'ending', 'complete', 'failed', 'aborted', 'limit_reached']
        example: 'active'
        description: The status of the recording.
    layout:
        type: string
        example: 'grid'
        description: The layout of the recording.
    encoding:
        oneOf:
            - type: string
              enum: ['H264_720P_30', 'H264_720P_60', 'H264_1080P_30', 'H264_1080P_60', 'PORTRAIT_H264_720P_30', 'PORTRAIT_H264_720P_60', 'PORTRAIT_H264_1080P_30', 'PORTRAIT_H264_1080P_60']
              description: Encoding preset
            - type: object
              properties:
                  video:
                      type: object
                      properties:
                          width:
                              type: integer
                              example: 1920
                          height:
                              type: integer
                              example: 1080
                          framerate:
                              type: integer
                              example: 30
                          codec:
                              type: string
                              enum: ['DEFAULT_VC', 'H264_BASELINE', 'H264_MAIN', 'H264_HIGH', 'VP8']
                          bitrate:
                              type: integer
                              example: 4500
                          keyFrameInterval:
                              type: number
                              example: 2
                          depth:
                              type: integer
                              example: 24
                  audio:
                      type: object
                      properties:
                          codec:
                              type: string
                              enum: ['DEFAULT_AC', 'OPUS', 'AAC', 'AC_MP3']
                          bitrate:
                              type: integer
                              example: 128
                          frequency:
                              type: integer
                              example: 48000
              description: Advanced encoding options
        description: |
            The encoding configuration used for this recording.
            Can be either a preset string or advanced encoding options.
        example: 'H264_720P_30'
    filename:
        type: string
        example: 'room-123--XX445.mp4'
        description: The name of the recording file.
    startDate:
        type: [number, 'null']
        example: 1620000000000
        description: The date when the recording started (milliseconds since the Unix epoch).
    endDate:
        type: [number, 'null']
        example: 1620000003600
        description: The date when the recording was stopped (milliseconds since the Unix epoch).
    duration:
        type: [number, 'null']
        example: 3.6
        description: The duration of the recording in seconds.
    size:
        type: [number, 'null']
        example: 1024
        description: The size of the recording file in bytes.
    errorCode:
        type: [number, 'null']
        example: 100
        description: The error code of the recording.
    error:
        type: [string, 'null']
        description: The error message of the recording.
    details:
        type: [string, 'null']
        example: 'Stopped using API'
        description: Additional details about the recording.
