// This file was auto-generated by Fern from our API Definition.

export interface MonitorPlan {
    /**
     * This determines whether the assistant's calls allow live listening. Defaults to true.
     *
     * Fetch `call.monitor.listenUrl` to get the live listening URL.
     *
     * @default true
     */
    listenEnabled?: boolean | undefined;
    /**
     * This enables authentication on the `call.monitor.listenUrl`.
     *
     * If `listenAuthenticationEnabled` is `true`, the `call.monitor.listenUrl` will require an `Authorization: Bearer <vapi-public-api-key>` header.
     *
     * @default false
     */
    listenAuthenticationEnabled?: boolean | undefined;
    /**
     * This determines whether the assistant's calls allow live control. Defaults to true.
     *
     * Fetch `call.monitor.controlUrl` to get the live control URL.
     *
     * To use, send any control message via a POST request to `call.monitor.controlUrl`. Here are the types of controls supported: https://docs.vapi.ai/api-reference/messages/client-inbound-message
     *
     * @default true
     */
    controlEnabled?: boolean | undefined;
    /**
     * This enables authentication on the `call.monitor.controlUrl`.
     *
     * If `controlAuthenticationEnabled` is `true`, the `call.monitor.controlUrl` will require an `Authorization: Bearer <vapi-public-api-key>` header.
     *
     * @default false
     */
    controlAuthenticationEnabled?: boolean | undefined;
    /**
     * This the set of monitor ids that are attached to the assistant.
     * The source of truth for the monitor ids is the assistant_monitor join table.
     * This field can be used for transient assistants and to update assistants with new monitor ids.
     *
     * @default []
     */
    monitorIds?: string[] | undefined;
}
