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
        requestBody:
            required: true
            content:
                application/json:
                    schema:
                        type: object
                        allOf:
                            - $ref: ../components/schemas/webhook-base-event.yaml
                            - properties:
                                  event:
                                      example: recordingStarted
                                  data:
                                      type: object
                                      required:
                                          - recordingId
                                          - roomId
                                          - status
                                      allOf:
                                          - $ref: ../components/schemas/recording-base.yaml
                                          - properties:
                                                status:
                                                    type: string
                                                    enum: [STARTING]
                                                    description: The status of the recording.
                                                    example: STARTING
        responses:
            '200':
                $ref: ../components/responses/webhook-success.yaml

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
        requestBody:
            required: true
            content:
                application/json:
                    schema:
                        type: object
                        allOf:
                            - $ref: ../components/schemas/webhook-base-event.yaml
                            - properties:
                                  event:
                                      example: recordingUpdated
                                  data:
                                      type: object
                                      required:
                                          - recordingId
                                          - roomId
                                          - status
                                      allOf:
                                          - $ref: ../components/schemas/recording-base.yaml
                                          - properties:
                                                status:
                                                    type: string
                                                    enum: [ACTIVE, ENDING]
                                                    description: The status of the recording.
                                                    example: ACTIVE
        responses:
            '200':
                $ref: ../components/responses/webhook-success.yaml

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
        requestBody:
            required: true
            content:
                application/json:
                    schema:
                        type: object
                        allOf:
                            - $ref: ../components/schemas/webhook-base-event.yaml
                            - properties:
                                  event:
                                      example: recordingEnded
                                  data:
                                      type: object
                                      required:
                                          - recordingId
                                          - roomId
                                          - status
                                          - endDate
                                      allOf:
                                          - $ref: ../components/schemas/recording-base.yaml
                                          - properties:
                                                status:
                                                    type: string
                                                    enum: [COMPLETE, FAILED, ABORTED, LIMITED_REACHED]
                                                    description: The status of the recording.
                                                    example: COMPLETE
                                                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':
                $ref: ../components/responses/webhook-success.yaml

meetingStarted:
    post:
        summary: Meeting started
        description: >
            This webhook is triggered when a meeting starts.
        operationId: meetingStartedWebhook
        parameters:
            - $ref: ../components/parameters/x-timestamp.yaml
            - $ref: ../components/parameters/x-signature.yaml
        requestBody:
            required: true
            content:
                application/json:
                    schema:
                        type: object
                        allOf:
                            - $ref: ../components/schemas/webhook-base-event.yaml
                            - properties:
                                  event:
                                      example: meetingStarted
                                  data:
                                      $ref: ../components/schemas/meet-room.yaml
        responses:
            '200':
                $ref: ../components/responses/webhook-success.yaml

meetingEnded:
    post:
        summary: Meeting ended
        description: >
            This webhook is triggered when a meeting ends.
        operationId: meetingEndedWebhook
        parameters:
            - $ref: ../components/parameters/x-timestamp.yaml
            - $ref: ../components/parameters/x-signature.yaml
        requestBody:
            required: true
            content:
                application/json:
                    schema:
                        type: object
                        allOf:
                            - $ref: ../components/schemas/webhook-base-event.yaml
                            - properties:
                                  event:
                                      example: meetingEnded
                                  data:
                                      $ref: ../components/schemas/meet-room.yaml
        responses:
            '200':
                $ref: ../components/responses/webhook-success.yaml
