recordingStarted:
    post:
        summary: Recording started
        description: >
            This webhook is triggered when a recording starts.

            > The recording can be in the `STARTING` status for a few seconds before it becomes `ACTIVE`.

        operationId: recordingStartedWebhook
        parameters:
            - $ref: ../components/parameters/x-timestamp.yaml
            - $ref: ../components/parameters/x-signature.yaml
        # TODO: Use defined schema for request body
        requestBody:
            required: true
            content:
                application/json:
                    schema:
                        properties:
                            creationDate:
                                type: number
                                description: The date when the event was created (milliseconds since the Unix epoch).
                                example: 1620000000000
                            event:
                                type: string
                                description: Event type identifier.
                                example: recordingStarted
                            data:
                                properties:
                                    recordingId:
                                        type: string
                                        description: The unique identifier of the recording.
                                        example: room-123--EG_XYZ--XX445
                                    roomId:
                                        type: string
                                        description: The ID of the room where the recording was made.
                                        example: room-123
                                    status:
                                        type: string
                                        description: The status of the recording.
                                        example: STARTING
                                    filename:
                                        type: string
                                        description: The name of the recording file.
                                        example: room-123--XX445.mp4
                                    startDate:
                                        type: number
                                        description: The date when the recording started (milliseconds since the Unix epoch).
                                        example: 1620000000000
        responses:
            '200':
                description: Webhook received successfully
recordingUpdated:
    post:
        summary: Recording updated
        description: >
            This webhook is triggered when a recording update occurs.

            > This update can be due to a change in the recording status (e.g., from `STARTING` to `ACTIVE`).
        operationId: recordingUpdatedWebhook
        parameters:
            - $ref: ../components/parameters/x-timestamp.yaml
            - $ref: ../components/parameters/x-signature.yaml
        # TODO: Use defined schema for request body
        requestBody:
            required: true
            content:
                application/json:
                    schema:
                        type: object
                        properties:
                            creationDate:
                                type: number
                                description: The date when the event was created (milliseconds since the Unix epoch).
                                example: 1620000000000
                            event:
                                type: string
                                description: Event type identifier.
                                example: recordingUpdated
                            data:
                                properties:
                                    recordingId:
                                        type: string
                                        description: The unique identifier of the recording.
                                        example: room-123--EG_XYZ--XX445
                                    roomId:
                                        type: string
                                        description: The ID of the room where the recording was made.
                                        example: room-123
                                    status:
                                        type: string
                                        enum: [ACTIVE, ENDING]
                                        description: The status of the recording.
                                        example: ACTIVE
                                    filename:
                                        type: string
                                        description: The name of the recording file.
                                        example: room-123--XX445.mp4
                                    startDate:
                                        type: number
                                        description: The date when the recording started (milliseconds since the Unix epoch).
                                        example: 1620000000000
        responses:
            '200':
                description: Webhook received successfully
recordingEnded:
    post:
        summary: Recording ended
        description: >
            This webhook is triggered when a recording ends.

            > The recording can end due to various reasons, such as the user stopping the recording or the recording reaching its maximum duration.
        operationId: recordingEndedWebhook
        parameters:
            - $ref: ../components/parameters/x-timestamp.yaml
            - $ref: ../components/parameters/x-signature.yaml
        # TODO: Use defined schema for request body
        requestBody:
            required: true
            content:
                application/json:
                    schema:
                        type: object
                        properties:
                            creationDate:
                                type: number
                                description: The date when the event was created (milliseconds since the Unix epoch).
                                example: 1620000000000
                            event:
                                type: string
                                description: Event type identifier.
                                example: recordingEnded
                            data:
                                properties:
                                    recordingId:
                                        type: string
                                        description: The unique identifier of the recording.
                                        example: room-123--EG_XYZ--XX445
                                    roomId:
                                        type: string
                                        description: The ID of the room where the recording was made.
                                        example: room-123
                                    status:
                                        type: string
                                        enum: [COMPLETE, FAILED, ABORTED, LIMITED_REACHED]
                                        description: The status of the recording.
                                        example: COMPLETE
                                    filename:
                                        type: string
                                        description: The name of the recording file.
                                        example: room-123--XX445.mp4
                                    startDate:
                                        type: number
                                        description: The date when the recording started (milliseconds since the Unix epoch).
                                        example: 1620000000000
                                    endDate:
                                        type: number
                                        description: The date when the recording ended (milliseconds since the Unix epoch).
                                        example: 1620000003600
                                    duration:
                                        type: number
                                        description: The duration of the recording in seconds.
                                        example: 3.6
                                    size:
                                        type: number
                                        description: The size of the recording file in bytes.
                                        example: 1024
                                    details:
                                        type: string
                                        description: Additional details about the recording.
                                        example: Stopped using API

        responses:
            '200':
                description: Webhook received successfully
