> ## Documentation Index
> Fetch the complete documentation index at: https://docs.threetone.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Update agent

> Patches an Agent settings



## OpenAPI

````yaml https://api.threetone.in/openapi.json patch /v1/convai/agents/{agent_id}
openapi: 3.1.0
info:
  title: Threetone API Documentation
  version: 1.0.0
servers:
  - url: https://api.threetone.in
    description: Production
security: []
paths:
  /v1/convai/agents/{agent_id}:
    patch:
      tags:
        - Agents Platform
      summary: Update agent
      description: Patches an Agent settings
      operationId: patch_agent_settings_route
      parameters:
        - name: agent_id
          in: path
          required: true
          schema:
            type: string
            description: The id of an agent. This is returned on agent creation.
            examples:
              - agent_3701k3ttaq12ewp8b7qv5rfyszkz
            title: Agent Id
          description: The id of an agent. This is returned on agent creation.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentPatchRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAgentResponseModel'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
components:
  schemas:
    AgentPatchRequest:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: A name to make the agent easier to find
          examples:
            - My agent
        conversation_config:
          anyOf:
            - $ref: '#/components/schemas/ConversationalConfigAPIModelInput'
            - type: 'null'
          description: Conversation configuration for an agent (partial update)
        platform_settings:
          anyOf:
            - $ref: '#/components/schemas/AgentPlatformSettingsRequestModel'
            - type: 'null'
          description: Platform settings for the agent (partial update)
        workflow:
          anyOf:
            - $ref: '#/components/schemas/AgentWorkflowRequestModel'
            - type: 'null'
          description: Workflow for the agent
        tags:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Tags
          description: Tags to help classify and filter the agent
          examples:
            - - Customer Support
              - Technical Help
        version_description:
          anyOf:
            - type: string
            - type: 'null'
          title: Version Description
          description: Description for this version when publishing changes
      type: object
      title: AgentPatchRequest
    GetAgentResponseModel:
      properties:
        agent_id:
          type: string
          title: Agent Id
          description: The ID of the agent
        name:
          type: string
          title: Name
          description: The name of the agent
        conversation_config:
          $ref: '#/components/schemas/ConversationalConfigAPIModelOutput'
          description: The conversation configuration of the agent
        metadata:
          $ref: '#/components/schemas/AgentMetadataResponseModel'
          description: The metadata of the agent
        platform_settings:
          anyOf:
            - $ref: '#/components/schemas/AgentPlatformSettingsResponseModel'
            - type: 'null'
          description: The platform settings of the agent
        phone_numbers:
          items:
            $ref: '#/components/schemas/AgentPhoneNumberResponseModel'
          type: array
          title: Phone Numbers
          description: The phone numbers of the agent
        workflow:
          anyOf:
            - $ref: '#/components/schemas/AgentWorkflowResponseModel'
            - type: 'null'
          description: The workflow of the agent
        access_info:
          anyOf:
            - $ref: '#/components/schemas/ResourceAccessInfo'
            - type: 'null'
          description: Access information for the user
        tags:
          items:
            type: string
          type: array
          title: Tags
          description: Agent tags for categorization
      type: object
      required:
        - agent_id
        - name
        - conversation_config
        - metadata
      title: GetAgentResponseModel
      example:
        agent_id: agent_7101k5zvyjhmfg983brhmhkd98n6
        name: My Agent
        tags:
          - Customer Support
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ConversationalConfigAPIModelInput:
      properties:
        asr:
          anyOf:
            - $ref: '#/components/schemas/ASRConversationalConfig'
            - type: 'null'
          description: Configuration for conversational transcription
        turn:
          anyOf:
            - $ref: '#/components/schemas/TurnConfig'
            - type: 'null'
          description: Configuration for turn detection
        tts:
          anyOf:
            - $ref: '#/components/schemas/TTSConversationalConfigInput'
            - type: 'null'
          description: Configuration for conversational text to speech
        conversation:
          anyOf:
            - $ref: '#/components/schemas/ConversationConfigSettings'
            - type: 'null'
          description: Configuration for conversational events
        language_presets:
          anyOf:
            - additionalProperties:
                $ref: '#/components/schemas/LanguagePresetInput'
              type: object
            - type: 'null'
          title: Language Presets
          description: Language presets for conversations
        agent:
          anyOf:
            - $ref: '#/components/schemas/AgentConfigAPIModelInput'
            - type: 'null'
          description: Agent specific configuration
      type: object
      title: ConversationalConfigAPIModel-Input
    AgentPlatformSettingsRequestModel:
      properties:
        evaluation:
          anyOf:
            - $ref: '#/components/schemas/EvaluationSettings-Input'
            - type: 'null'
          description: Settings for evaluation
        widget:
          anyOf:
            - $ref: '#/components/schemas/WidgetConfigInput-Input'
            - type: 'null'
          description: Configuration for the widget
        data_collection:
          additionalProperties:
            $ref: '#/components/schemas/LiteralJsonSchemaProperty'
          type: object
          title: Data Collection
          description: Data collection settings
        data_collection_scopes:
          additionalProperties:
            $ref: '#/components/schemas/AnalysisScope'
          type: object
          title: Data Collection Scopes
          description: >-
            Scope per data collection item ID. Missing keys default to
            conversation scope.
        overrides:
          anyOf:
            - $ref: >-
                #/components/schemas/ConversationInitiationClientDataConfigInput-Input
            - type: 'null'
          description: Additional overrides for the agent during conversation initiation
        workspace_overrides:
          anyOf:
            - $ref: '#/components/schemas/AgentWorkspaceOverridesInput-Input'
            - type: 'null'
          description: Workspace overrides for the agent
        testing:
          anyOf:
            - $ref: '#/components/schemas/AgentTestingSettings'
            - type: 'null'
          description: Testing configuration for the agent
        archived:
          type: boolean
          title: Archived
          description: Whether the agent is archived
          default: false
        guardrails:
          anyOf:
            - $ref: '#/components/schemas/GuardrailsV1Input-Input'
            - type: 'null'
          title: Guardrails
          description: Guardrails configuration for the agent
        summary_language:
          anyOf:
            - type: string
            - type: 'null'
          title: Summary Language
          description: >-
            Language for all conversation analysis outputs (summaries, titles,
            evaluation rationales, data collection rationales). If not set, the
            language will be inferred from the conversation. Must be one of the
            supported conversation languages.
        auth:
          anyOf:
            - $ref: '#/components/schemas/AuthSettings'
            - type: 'null'
          description: Settings for authentication
        call_limits:
          anyOf:
            - $ref: '#/components/schemas/AgentCallLimits'
            - type: 'null'
          description: Call limits for the agent
        privacy:
          anyOf:
            - $ref: '#/components/schemas/PrivacyConfigInput'
            - type: 'null'
          description: Privacy settings for the agent
      type: object
      title: AgentPlatformSettingsRequestModel
    AgentWorkflowRequestModel:
      properties:
        edges:
          additionalProperties:
            $ref: '#/components/schemas/WorkflowEdgeModel'
          type: object
          title: Edges
          description: Workflow edges
        nodes:
          additionalProperties:
            oneOf:
              - $ref: '#/components/schemas/WorkflowStartNodeModel'
              - $ref: '#/components/schemas/WorkflowEndNodeModel'
              - $ref: '#/components/schemas/WorkflowPhoneNumberNodeModel'
              - $ref: '#/components/schemas/WorkflowOverrideAgentNodeModel'
              - $ref: '#/components/schemas/WorkflowStandaloneAgentNodeModel'
              - $ref: '#/components/schemas/WorkflowToolNodeModel'
            discriminator:
              propertyName: type
              mapping:
                end:
                  $ref: '#/components/schemas/WorkflowEndNodeModel'
                override_agent:
                  $ref: '#/components/schemas/WorkflowOverrideAgentNodeModel'
                phone_number:
                  $ref: '#/components/schemas/WorkflowPhoneNumberNodeModel'
                standalone_agent:
                  $ref: '#/components/schemas/WorkflowStandaloneAgentNodeModel'
                start:
                  $ref: '#/components/schemas/WorkflowStartNodeModel'
                tool:
                  $ref: '#/components/schemas/WorkflowToolNodeModel'
          type: object
          minProperties: 1
          title: Nodes
          description: Workflow nodes
        prevent_subagent_loops:
          type: boolean
          title: Prevent Subagent Loops
          description: Prevent loops in workflow execution
          default: false
      type: object
      required:
        - nodes
      title: AgentWorkflowRequestModel
    ConversationalConfigAPIModelOutput:
      properties:
        asr:
          anyOf:
            - $ref: '#/components/schemas/ASRConversationalConfig'
            - type: 'null'
          description: Conversational transcription configuration
        turn:
          anyOf:
            - $ref: '#/components/schemas/TurnConfig'
            - type: 'null'
          description: Turn detection configuration
        tts:
          anyOf:
            - $ref: '#/components/schemas/TTSConversationalConfigOutput'
            - type: 'null'
          description: TTS configuration
        conversation:
          anyOf:
            - $ref: '#/components/schemas/ConversationConfigSettings'
            - type: 'null'
          description: Conversation settings
        language_presets:
          anyOf:
            - additionalProperties:
                $ref: '#/components/schemas/LanguagePresetOutput'
              type: object
            - type: 'null'
          title: Language Presets
          description: Language presets
        agent:
          anyOf:
            - $ref: '#/components/schemas/AgentConfigAPIModelOutput'
            - type: 'null'
          description: Agent configuration
      type: object
      title: ConversationalConfigAPIModel
    AgentMetadataResponseModel:
      properties:
        created_at_unix_secs:
          type: integer
          title: Created At Unix Secs
          description: The creation time of the agent in unix seconds
        updated_at_unix_secs:
          type: integer
          title: Updated At Unix Secs
          description: The last update time of the agent in unix seconds
      type: object
      required:
        - created_at_unix_secs
        - updated_at_unix_secs
      title: AgentMetadataResponseModel
    AgentPlatformSettingsResponseModel:
      properties:
        evaluation:
          anyOf:
            - $ref: '#/components/schemas/EvaluationSettings-Output'
            - type: 'null'
          description: Evaluation settings
        widget:
          anyOf:
            - $ref: '#/components/schemas/WidgetConfigInput-Output'
            - type: 'null'
          description: Widget configuration
        data_collection:
          anyOf:
            - additionalProperties:
                $ref: '#/components/schemas/LiteralJsonSchemaProperty'
              type: object
            - type: 'null'
          title: Data Collection
          description: Data collection settings
        data_collection_scopes:
          anyOf:
            - additionalProperties:
                $ref: '#/components/schemas/AnalysisScope'
              type: object
            - type: 'null'
          title: Data Collection Scopes
          description: >-
            Scope per data collection item ID. Missing keys default to
            conversation scope.
        overrides:
          anyOf:
            - $ref: >-
                #/components/schemas/ConversationInitiationClientDataConfigInput-Output
            - type: 'null'
          description: Override settings
        workspace_overrides:
          anyOf:
            - $ref: '#/components/schemas/AgentWorkspaceOverridesInput-Output'
            - type: 'null'
          description: Workspace overrides
        testing:
          anyOf:
            - $ref: '#/components/schemas/AgentTestingSettings'
            - type: 'null'
          description: Testing settings
        archived:
          type: boolean
          title: Archived
          description: Whether agent is archived
          default: false
        guardrails:
          anyOf:
            - $ref: '#/components/schemas/GuardrailsV1Input-Output'
            - type: 'null'
          description: Guardrails configuration
        summary_language:
          anyOf:
            - type: string
            - type: 'null'
          title: Summary Language
          description: >-
            Language for conversation analysis outputs when set at platform
            level.
        auth:
          anyOf:
            - $ref: '#/components/schemas/AuthSettings'
            - type: 'null'
          description: Auth settings
        call_limits:
          anyOf:
            - $ref: '#/components/schemas/AgentCallLimits'
            - type: 'null'
          description: Call limits
        privacy:
          anyOf:
            - $ref: '#/components/schemas/PrivacyConfig'
            - type: 'null'
          description: Privacy settings
      type: object
      title: AgentPlatformSettingsResponseModel
    AgentPhoneNumberResponseModel:
      properties:
        phone_number_id:
          type: string
          title: Phone Number Id
          description: The ID of the phone number
        name:
          type: string
          title: Name
          description: Label for the phone number
        phone_number:
          type: string
          title: Phone Number
          description: The phone number in E.164 format
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
          description: Country code
        purchased_at:
          anyOf:
            - type: integer
            - type: 'null'
          title: Purchased At
          description: Unix timestamp of purchase date
      type: object
      required:
        - phone_number_id
        - name
        - phone_number
      title: AgentPhoneNumberResponseModel
      description: Simple phone number info returned in agent detail responses.
    AgentWorkflowResponseModel:
      properties:
        prevent_subagent_loops:
          type: boolean
          title: Prevent Subagent Loops
          description: Prevent subagent loops
          default: false
      type: object
      title: AgentWorkflowResponseModel
    ResourceAccessInfo:
      properties:
        is_creator:
          type: boolean
          title: Is Creator
          description: Whether the user making the request is the creator of the resource
        creator_name:
          type: string
          title: Creator Name
          description: Name of the resource's creator
        creator_email:
          type: string
          title: Creator Email
          description: Email of the resource's creator
        role:
          $ref: '#/components/schemas/ResourceRole'
          description: The role of the user making the request
      type: object
      required:
        - is_creator
        - creator_name
        - creator_email
        - role
      title: ResourceAccessInfo
      description: Access information for a resource
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    ASRConversationalConfig:
      properties:
        quality:
          $ref: '#/components/schemas/ASRQuality'
          description: The quality of the transcription
          default: high
        provider:
          $ref: '#/components/schemas/ASRProvider'
          description: The provider of the transcription service
          default: elevenlabs
        user_input_audio_format:
          $ref: '#/components/schemas/ASRInputFormat'
          description: The format of the audio to be transcribed
          default: pcm_16000
        keywords:
          items:
            type: string
          type: array
          title: Keywords
          description: Keywords to boost prediction probability for
      type: object
      title: ASRConversationalConfig
      description: >-
        Conversational ASR defaults (kept minimal; runtime STT provider is
        internal).
    TurnConfig:
      properties:
        turn_timeout:
          type: number
          title: Turn Timeout
          description: Maximum wait time for the user's reply before re-engaging the user
          default: 7
        initial_wait_time:
          anyOf:
            - type: number
            - type: 'null'
          title: Initial Wait Time
          description: >-
            How long the agent will wait for the user to start the conversation
            if the first message is empty. If not set, uses the regular
            turn_timeout.
        silence_end_call_timeout:
          type: number
          title: Silence End Call Timeout
          description: >-
            Maximum wait time since the user last spoke before terminating the
            call. -1 disables.
          default: -1
        soft_timeout_config:
          anyOf:
            - $ref: '#/components/schemas/SoftTimeoutConfig'
            - type: 'null'
          description: Configuration for soft timeout during longer LLM responses.
        speculative_turn:
          type: boolean
          title: Speculative Turn
          description: >-
            When enabled, starts generating LLM responses during silence before
            full turn confidence is reached (preemptive generation). Reduces
            perceived latency; may increase LLM costs.
          default: false
      type: object
      title: TurnConfig
    TTSConversationalConfigInput:
      properties:
        model_id:
          $ref: '#/components/schemas/TTSConversationalModel'
          description: The model to use for TTS
          default: eleven_flash_v2
        voice_id:
          type: string
          title: Voice Id
          description: The voice ID to use for TTS
          default: cjVigY5qzO86Huf0OWal
        performance:
          anyOf:
            - $ref: '#/components/schemas/TTSPerformance'
            - type: 'null'
          description: >-
            User-facing TTS performance tier (latency or quality). The concrete
            provider/model is selected by the voice-server based on this value.
        supported_voices:
          items:
            $ref: '#/components/schemas/SupportedVoice'
          type: array
          title: Supported Voices
          description: Additional supported voices for the agent
        expressive_mode:
          type: boolean
          title: Expressive Mode
          description: >-
            When enabled, applies expressive audio tags prompt (auto-disabled
            for non-v3 models).
          default: true
        suggested_audio_tags:
          items:
            $ref: '#/components/schemas/SuggestedAudioTag'
          type: array
          maxItems: 20
          title: Suggested Audio Tags
          description: Suggested audio tags for v3 conversational models
        agent_output_audio_format:
          $ref: '#/components/schemas/TTSPcmOutputFormat'
          description: The audio format to use for TTS
          default: pcm_16000
        optimize_streaming_latency:
          $ref: '#/components/schemas/TTSStreamingLatencyLevel'
          description: The optimization for streaming latency (0–4)
          default: 3
        stability:
          type: number
          maximum: 1
          minimum: 0
          title: Stability
          description: The stability of generated speech
          default: 0.5
        speed:
          type: number
          maximum: 1.2
          minimum: 0.7
          title: Speed
          description: The speed of generated speech
          default: 1
        similarity_boost:
          type: number
          maximum: 1
          minimum: 0
          title: Similarity Boost
          description: The similarity boost for generated speech
          default: 0.8
        text_normalisation_type:
          $ref: '#/components/schemas/TextNormalisationType'
          description: How numbers are normalized before TTS
          default: system_prompt
        pronunciation_dictionary_locators:
          items:
            $ref: '#/components/schemas/PydanticPronunciationDictionaryVersionLocator'
          type: array
          title: Pronunciation Dictionary Locators
          description: Pronunciation dictionary locators
      type: object
      title: TTSConversationalConfig-Input
    ConversationConfigSettings:
      properties:
        text_only:
          type: boolean
          title: Text Only
          description: >-
            If enabled audio will not be processed and only text will be used,
            use to avoid audio pricing.
          default: false
        max_duration_seconds:
          type: integer
          title: Max Duration Seconds
          description: The maximum duration of a conversation in seconds
          default: 600
        client_events:
          anyOf:
            - items:
                $ref: '#/components/schemas/ClientEvent'
              type: array
            - type: 'null'
          title: Client Events
          description: The events that will be sent to the client
        file_input:
          anyOf:
            - $ref: '#/components/schemas/FileInputConfig'
            - type: 'null'
          description: >-
            Configuration for file input (image/PDF uploads) during
            conversations.
        monitoring_enabled:
          type: boolean
          title: Monitoring Enabled
          description: Enable real-time monitoring of conversations via WebSocket
          default: false
        monitoring_events:
          anyOf:
            - items:
                $ref: '#/components/schemas/ClientEvent'
              type: array
            - type: 'null'
          title: Monitoring Events
          description: The events that will be sent to monitoring connections
      type: object
      title: ConversationConfig
      description: >-
        Conversation-level settings.


        Note: Some reference OpenAPI fields use vendor extensions such as
        ``x-convai-client-override``;

        those flags describe which fields a hosted client may override at
        conversation start.

        They are not validated by this API and are omitted from our schema.
    LanguagePresetInput:
      properties:
        overrides:
          $ref: '#/components/schemas/ConversationConfigClientOverride-Input'
          description: The overrides for the language preset
        first_message_translation:
          anyOf:
            - $ref: '#/components/schemas/LanguagePresetTranslation'
            - type: 'null'
          description: The translation of the first message
        soft_timeout_translation:
          anyOf:
            - $ref: '#/components/schemas/LanguagePresetTranslation'
            - type: 'null'
          description: The translation of the soft timeout message
      type: object
      required:
        - overrides
      title: LanguagePreset-Input
    AgentConfigAPIModelInput:
      properties:
        first_message:
          type: string
          title: First Message
          description: >-
            If non-empty, the first message the agent will say. If empty, the
            agent waits for the user to start the discussion.
          default: ''
        language:
          type: string
          title: Language
          description: >-
            Primary ISO 639-1 language code for voice (e.g. en, hi, kn). Use
            short codes aligned with STT (Cartesia Ink Whisper), not regional
            BCP-47 (e.g. not hi-IN).
          default: en
        dynamic_variables:
          anyOf:
            - $ref: '#/components/schemas/DynamicVariablesConfig'
            - type: 'null'
          description: Configuration for dynamic variables
        disable_first_message_interruptions:
          type: boolean
          title: Disable First Message Interruptions
          description: >-
            If true, the user will not be able to interrupt the agent while the
            first message is being delivered.
          default: false
        max_conversation_duration_message:
          type: string
          title: Max Conversation Duration Message
          description: >-
            If non-empty, the message the agent will send when max conversation
            duration is reached.
          default: ''
        prompt:
          anyOf:
            - $ref: '#/components/schemas/PromptAgentAPIModelInput'
            - type: 'null'
          description: The prompt for the agent
      type: object
      title: AgentConfigAPIModel-Input
    EvaluationSettings-Input:
      properties:
        criteria:
          items:
            $ref: '#/components/schemas/PromptEvaluationCriteria'
          type: array
          title: Criteria
          description: Individual criteria that the agent should be evaluated against
      type: object
      title: EvaluationSettings-Input
      description: Settings to evaluate an agent's performance (request/response shape).
    WidgetConfigInput-Input:
      properties:
        variant:
          $ref: '#/components/schemas/EmbedVariant'
          description: The variant of the widget
          default: full
        placement:
          $ref: '#/components/schemas/WidgetPlacement'
          description: The placement of the widget on the screen
          default: bottom-right
        expandable:
          $ref: '#/components/schemas/WidgetExpandable'
          description: Whether the widget is expandable
          default: never
        default_expanded:
          type: boolean
          title: Default Expanded
          description: Widget expanded by default
          default: false
        always_expanded:
          type: boolean
          title: Always Expanded
          description: Widget always expanded
          default: false
        dismissible:
          type: boolean
          title: Dismissible
          description: Whether the user can dismiss the widget
          default: false
        show_agent_status:
          type: boolean
          title: Show Agent Status
          description: Show agent working/done/error status during tool use
          default: false
        show_conversation_id:
          type: boolean
          title: Show Conversation Id
          description: Show conversation ID after disconnection
          default: true
        strip_audio_tags:
          type: boolean
          title: Strip Audio Tags
          description: Strip audio markup from assistant messages
          default: true
        syntax_highlight_theme:
          anyOf:
            - $ref: '#/components/schemas/SyntaxHighlightTheme'
            - type: 'null'
          description: Syntax highlighting theme for code blocks
        show_avatar_when_collapsed:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Show Avatar When Collapsed
          description: Show avatar when widget is collapsed
          default: false
        avatar:
          anyOf:
            - $ref: '#/components/schemas/OrbAvatar'
            - $ref: '#/components/schemas/URLAvatar'
            - $ref: '#/components/schemas/ImageAvatar'
            - type: 'null'
          title: Avatar
          description: The avatar of the widget
        custom_avatar_path:
          anyOf:
            - type: string
            - type: 'null'
          title: Custom Avatar Path
          description: Custom avatar path (set via POST /avatar)
        feedback_mode:
          $ref: '#/components/schemas/WidgetFeedbackMode'
          description: The feedback mode of the widget
          default: none
        end_feedback:
          anyOf:
            - $ref: '#/components/schemas/WidgetEndFeedbackConfig'
            - type: 'null'
          description: Configuration for feedback at end of conversation
        bg_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Bg Color
          description: Background color of the widget
        text_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Text Color
          description: Primary text color
        btn_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Btn Color
          description: Primary button color
        btn_text_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Btn Text Color
          description: Button label color
        border_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Border Color
          description: Border color
        focus_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Focus Color
          description: Focus ring / outline color
        border_radius:
          anyOf:
            - type: integer
            - type: 'null'
          title: Border Radius
          description: Widget border radius in pixels
        btn_radius:
          anyOf:
            - type: integer
            - type: 'null'
          title: Btn Radius
          description: Button border radius in pixels
        action_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Action Text
          description: Primary action label text
        start_call_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Call Text
          description: Start call label text
        end_call_text:
          anyOf:
            - type: string
            - type: 'null'
          title: End Call Text
          description: End call label text
        expand_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Expand Text
          description: Expand control label text
        listening_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Listening Text
          description: Listening state label text
        speaking_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Speaking Text
          description: Speaking state label text
        mic_muting_enabled:
          type: boolean
          title: Mic Muting Enabled
          description: Enable mic muting
          default: false
        transcript_enabled:
          type: boolean
          title: Transcript Enabled
          description: Show conversation transcript
          default: false
        text_input_enabled:
          type: boolean
          title: Text Input Enabled
          description: Enable text message input
          default: true
        conversation_mode_toggle_enabled:
          type: boolean
          title: Conversation Mode Toggle Enabled
          description: Enable conversation mode toggle
          default: false
        language_selector:
          type: boolean
          title: Language Selector
          description: Show language selector
          default: false
        supports_text_only:
          type: boolean
          title: Supports Text Only
          description: Support text-only mode
          default: true
        shareable_page_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Shareable Page Text
          description: Text for shareable page
        shareable_page_show_terms:
          type: boolean
          title: Shareable Page Show Terms
          description: Show terms on shareable page
          default: true
        terms_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Text
          description: Terms and conditions text (Markdown)
        terms_html:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Html
          description: Terms and conditions HTML (auto-generated from terms_text)
        terms_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Key
          description: LocalStorage key to remember acceptance
        markdown_link_allowed_hosts:
          items:
            $ref: '#/components/schemas/AllowlistItem'
          type: array
          title: Markdown Link Allowed Hosts
          description: Allowed hostnames for clickable markdown links
        markdown_link_include_www:
          type: boolean
          title: Markdown Link Include Www
          description: Include www. variants of allowed hosts
          default: true
        markdown_link_allow_http:
          type: boolean
          title: Markdown Link Allow Http
          description: Allow http:// URLs
          default: true
        disable_banner:
          type: boolean
          title: Disable Banner
          description: Whether to disable the banner
          default: false
        override_link:
          anyOf:
            - type: string
            - type: 'null'
          title: Override Link
          description: Override link for the widget
        text_contents:
          anyOf:
            - $ref: '#/components/schemas/WidgetTextContents'
            - type: 'null'
          description: All text contents shown in the widget
        styles:
          anyOf:
            - $ref: '#/components/schemas/WidgetStyles'
            - type: 'null'
          description: Semantic color and radius styles for the widget
        language_presets:
          anyOf:
            - additionalProperties:
                $ref: '#/components/schemas/WidgetLanguagePresetResponse'
              type: object
            - type: 'null'
          title: Language Presets
          description: Language presets for the widget
      type: object
      title: WidgetConfig-Input
    LiteralJsonSchemaProperty:
      properties:
        type:
          type: string
          enum:
            - boolean
            - string
            - integer
            - number
          title: Type
        description:
          type: string
          title: Description
          description: >-
            The description of the property. When set, the LLM will provide the
            value based on this description. Mutually exclusive with
            dynamic_variable, is_system_provided, and constant_value.
          default: ''
        enum:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Enum
          description: List of allowed string values for string type parameters
        is_system_provided:
          type: boolean
          title: Is System Provided
          description: >-
            If true, the value will be populated by the system at runtime. Used
            by API Integration Webhook tools for templating. Mutually exclusive
            with description, dynamic_variable, and constant_value.
          default: false
        dynamic_variable:
          type: string
          title: Dynamic Variable
          description: >-
            The name of the dynamic variable to use for this property's value.
            Mutually exclusive with description, is_system_provided, and
            constant_value.
          default: ''
        constant_value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
            - type: 'null'
          title: Constant Value
          description: >-
            A constant value to use for this property. Mutually exclusive with
            description, dynamic_variable, and is_system_provided.
      additionalProperties: false
      type: object
      required:
        - type
      title: LiteralJsonSchemaProperty
      example:
        description: A user-provided message
        type: string
    AnalysisScope:
      type: string
      enum:
        - conversation
        - agent
      title: AnalysisScope
      description: Transcript scope for evaluation criteria and data collection.
    ConversationInitiationClientDataConfigInput-Input:
      properties:
        conversation_config_override:
          anyOf:
            - $ref: >-
                #/components/schemas/ConversationConfigClientOverrideConfigInput-Input
            - type: 'null'
          description: Overrides for the conversation configuration
        custom_llm_extra_body:
          type: boolean
          title: Custom Llm Extra Body
          description: Whether to include custom LLM extra body
          default: false
        enable_conversation_initiation_client_data_from_webhook:
          type: boolean
          title: Enable Conversation Initiation Client Data From Webhook
          description: Whether to enable conversation initiation client data from webhooks
          default: false
      type: object
      title: ConversationInitiationClientDataConfig-Input
      example:
        custom_llm_extra_body: true
        enable_conversation_initiation_client_data_from_webhook: true
    AgentWorkspaceOverridesInput-Input:
      properties:
        conversation_initiation_client_data_webhook:
          anyOf:
            - $ref: '#/components/schemas/ConversationInitiationClientDataWebhook'
            - type: 'null'
          description: The webhook to send conversation initiation client data to
        webhooks:
          anyOf:
            - $ref: '#/components/schemas/ConvAIWebhooks'
            - type: 'null'
          description: Webhook configuration
      type: object
      title: AgentWorkspaceOverrides
    AgentTestingSettings:
      properties:
        attached_tests:
          items:
            $ref: '#/components/schemas/AttachedTestModel'
          type: array
          maxItems: 1000
          minItems: 0
          title: Attached Tests
          description: List of test IDs that should be run for this agent
      type: object
      title: AgentTestingSettings
      example:
        attached_tests:
          - test_id: test_123
            workflow_node_id: node_abc
          - test_id: test_456
    GuardrailsV1Input-Input:
      properties:
        version:
          type: string
          const: '1'
          title: Version
          default: '1'
        focus:
          anyOf:
            - $ref: '#/components/schemas/FocusGuardrail'
            - type: 'null'
        prompt_injection:
          anyOf:
            - $ref: '#/components/schemas/PromptInjectionGuardrail'
            - type: 'null'
        content:
          anyOf:
            - $ref: '#/components/schemas/ContentGuardrailInput-Input'
            - type: 'null'
        moderation:
          anyOf:
            - $ref: '#/components/schemas/ModerationGuardrailInput-Input'
            - type: 'null'
          x-fern-ignore: true
        custom:
          anyOf:
            - $ref: '#/components/schemas/CustomGuardrailInput-Input'
            - type: 'null'
      type: object
      title: GuardrailsV1
      discriminator:
        propertyName: version
        mapping:
          '1': '#/components/schemas/GuardrailsV1-Input'
    AuthSettings:
      properties:
        enable_auth:
          type: boolean
          title: Enable Auth
          description: >-
            If set to true, starting a conversation with an agent will require a
            signed token
          default: false
        allowlist:
          items:
            $ref: '#/components/schemas/AllowlistItem'
          type: array
          title: Allowlist
          description: >-
            A list of hosts that are allowed to start conversations with the
            agent
        require_origin_header:
          type: boolean
          title: Require Origin Header
          description: >-
            When enabled, connections with no origin header will be rejected. If
            the allowlist is empty, this option has no effect.
          default: false
        shareable_token:
          anyOf:
            - type: string
            - type: 'null'
          title: Shareable Token
          description: >-
            A shareable token that can be used to start a conversation with the
            agent
      type: object
      title: AuthSettings
      example:
        allowlist:
          - hostname: https://example.com
        enable_auth: true
        require_origin_header: true
        shareable_token: '1234567890'
    AgentCallLimits:
      properties:
        agent_concurrency_limit:
          type: integer
          title: Agent Concurrency Limit
          description: >-
            The maximum number of concurrent conversations. -1 indicates that
            there is no maximum
          default: -1
        daily_limit:
          type: integer
          title: Daily Limit
          description: The maximum number of conversations per day
          default: 100000
        bursting_enabled:
          type: boolean
          title: Bursting Enabled
          description: >-
            Whether to enable bursting. If true, exceeding workspace concurrency
            limit will be allowed up to 3 times the limit. Calls will be charged
            at double rate when exceeding the limit.
          default: true
      type: object
      title: AgentCallLimits
      example:
        agent_concurrency_limit: -1
        bursting_enabled: true
        daily_limit: 100000
    PrivacyConfigInput:
      properties:
        record_voice:
          type: boolean
          title: Record Voice
          description: Whether to record the conversation
          default: true
        retention_days:
          type: integer
          title: Retention Days
          description: >-
            The number of days to retain the conversation. -1 indicates there is
            no retention limit
          default: -1
        delete_transcript_and_pii:
          type: boolean
          title: Delete Transcript And Pii
          description: Whether to delete the transcript and PII
          default: false
        delete_audio:
          type: boolean
          title: Delete Audio
          description: Whether to delete the audio
          default: false
        apply_to_existing_conversations:
          type: boolean
          title: Apply To Existing Conversations
          description: Whether to apply the privacy settings to existing conversations
          default: false
        zero_retention_mode:
          type: boolean
          title: Zero Retention Mode
          description: Whether to enable zero retention mode - no PII data is stored
          default: false
        conversation_history_redaction:
          anyOf:
            - $ref: '#/components/schemas/ConversationHistoryRedactionConfig'
            - type: 'null'
          description: Config for PII redaction in the conversation history
      type: object
      title: PrivacyConfig
      example:
        apply_to_existing_conversations: false
        delete_audio: false
        delete_transcript_and_pii: false
        record_voice: true
        retention_days: -1
        zero_retention_mode: false
    WorkflowEdgeModel:
      properties:
        source:
          type: string
          title: Source
          description: Source node ID
        target:
          type: string
          title: Target
          description: Target node ID
        forward_condition:
          $ref: '#/components/schemas/WorkflowForwardCondition'
          description: Condition for traversing edge
      type: object
      required:
        - source
        - target
      title: WorkflowEdgeModel
    WorkflowStartNodeModel:
      properties:
        label:
          anyOf:
            - type: string
            - type: 'null'
          title: Label
          description: Display label for the node
        edge_order:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Edge Order
          description: Order of outgoing edges
        type:
          type: string
          const: start
          title: Type
          default: start
      type: object
      title: WorkflowStartNodeModel
    WorkflowEndNodeModel:
      properties:
        label:
          anyOf:
            - type: string
            - type: 'null'
          title: Label
          description: Display label for the node
        edge_order:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Edge Order
          description: Order of outgoing edges
        type:
          type: string
          const: end
          title: Type
          default: end
      type: object
      title: WorkflowEndNodeModel
    WorkflowPhoneNumberNodeModel:
      properties:
        label:
          anyOf:
            - type: string
            - type: 'null'
          title: Label
          description: Display label for the node
        edge_order:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Edge Order
          description: Order of outgoing edges
        type:
          type: string
          const: phone_number
          title: Type
          default: phone_number
        transfer_destination:
          additionalProperties: true
          type: object
          title: Transfer Destination
          description: Phone number transfer destination
      type: object
      required:
        - transfer_destination
      title: WorkflowPhoneNumberNodeModel
    WorkflowOverrideAgentNodeModel:
      properties:
        label:
          anyOf:
            - type: string
            - type: 'null'
          title: Label
          description: Display label for the node
        edge_order:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Edge Order
          description: Order of outgoing edges
        type:
          type: string
          const: override_agent
          title: Type
          default: override_agent
        conversation_config:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Conversation Config
          description: Override conversation config
      type: object
      title: WorkflowOverrideAgentNodeModel
    WorkflowStandaloneAgentNodeModel:
      properties:
        label:
          anyOf:
            - type: string
            - type: 'null'
          title: Label
          description: Display label for the node
        edge_order:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Edge Order
          description: Order of outgoing edges
        type:
          type: string
          const: standalone_agent
          title: Type
          default: standalone_agent
        agent_id:
          type: string
          title: Agent Id
          description: Agent ID to transfer to
      type: object
      required:
        - agent_id
      title: WorkflowStandaloneAgentNodeModel
    WorkflowToolNodeModel:
      properties:
        label:
          anyOf:
            - type: string
            - type: 'null'
          title: Label
          description: Display label for the node
        edge_order:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Edge Order
          description: Order of outgoing edges
        type:
          type: string
          const: tool
          title: Type
          default: tool
        tools:
          items:
            $ref: '#/components/schemas/WorkflowToolReference'
          type: array
          title: Tools
          description: Tools to execute
      type: object
      required:
        - tools
      title: WorkflowToolNodeModel
    TTSConversationalConfigOutput:
      properties:
        voice_id:
          type: string
          title: Voice Id
          description: The voice ID to use for TTS
        language:
          type: string
          title: Language
          description: Language for TTS
          default: en
        performance:
          $ref: '#/components/schemas/TTSPerformance'
          description: >-
            User-facing TTS performance tier. Never exposes the underlying
            provider/model.
          default: latency
        supported_voices:
          items:
            $ref: '#/components/schemas/SupportedVoice'
          type: array
          title: Supported Voices
          description: Additional supported voices
        output_format:
          anyOf:
            - $ref: '#/components/schemas/TTSOutputFormat'
            - type: 'null'
          description: Output format configuration
        generation_config:
          anyOf:
            - $ref: '#/components/schemas/TTSGenerationConfig'
            - type: 'null'
          description: Generation configuration
        enable_emotions:
          type: boolean
          title: Enable Emotions
          description: Enable emotion control for TTS
          default: false
      type: object
      required:
        - voice_id
      title: TTSConversationalConfig
    LanguagePresetOutput:
      properties:
        overrides:
          $ref: '#/components/schemas/ConversationConfigClientOverride-Output'
          description: The overrides for the language preset
        first_message_translation:
          anyOf:
            - $ref: '#/components/schemas/LanguagePresetTranslation'
            - type: 'null'
          description: Translation of the first message
        soft_timeout_translation:
          anyOf:
            - $ref: '#/components/schemas/LanguagePresetTranslation'
            - type: 'null'
          description: Translation of the soft timeout message
      type: object
      required:
        - overrides
      title: LanguagePreset
    AgentConfigAPIModelOutput:
      properties:
        first_message:
          type: string
          title: First Message
          description: >-
            If non-empty, the first message the agent will say. If empty, the
            agent waits for the user to start the discussion.
          default: ''
        language:
          type: string
          title: Language
          description: >-
            Primary ISO 639-1 language code for voice (e.g. en, hi, kn). Short
            codes aligned with STT (Cartesia Ink Whisper), not regional BCP-47
            (e.g. not hi-IN).
          default: en
        dynamic_variables:
          anyOf:
            - $ref: '#/components/schemas/DynamicVariablesConfig'
            - type: 'null'
          description: Configuration for dynamic variables
        disable_first_message_interruptions:
          type: boolean
          title: Disable First Message Interruptions
          description: >-
            If true, the user will not be able to interrupt the agent while the
            first message is being delivered.
          default: false
        max_conversation_duration_message:
          type: string
          title: Max Conversation Duration Message
          description: >-
            If non-empty, the message the agent will send when max conversation
            duration is reached.
          default: ''
        prompt:
          $ref: '#/components/schemas/PromptAgentAPIModelOutput'
          description: The prompt for the agent
      type: object
      required:
        - prompt
      title: AgentConfigAPIModel
    EvaluationSettings-Output:
      properties:
        criteria:
          items:
            $ref: '#/components/schemas/PromptEvaluationCriteria'
          type: array
          title: Criteria
          description: Individual criteria that the agent should be evaluated against
      type: object
      title: EvaluationSettings-Input
      description: Settings to evaluate an agent's performance (request/response shape).
    WidgetConfigInput-Output:
      properties:
        variant:
          $ref: '#/components/schemas/EmbedVariant'
          description: The variant of the widget
          default: full
        placement:
          $ref: '#/components/schemas/WidgetPlacement'
          description: The placement of the widget on the screen
          default: bottom-right
        expandable:
          $ref: '#/components/schemas/WidgetExpandable'
          description: Whether the widget is expandable
          default: never
        default_expanded:
          type: boolean
          title: Default Expanded
          description: Widget expanded by default
          default: false
        always_expanded:
          type: boolean
          title: Always Expanded
          description: Widget always expanded
          default: false
        dismissible:
          type: boolean
          title: Dismissible
          description: Whether the user can dismiss the widget
          default: false
        show_agent_status:
          type: boolean
          title: Show Agent Status
          description: Show agent working/done/error status during tool use
          default: false
        show_conversation_id:
          type: boolean
          title: Show Conversation Id
          description: Show conversation ID after disconnection
          default: true
        strip_audio_tags:
          type: boolean
          title: Strip Audio Tags
          description: Strip audio markup from assistant messages
          default: true
        syntax_highlight_theme:
          anyOf:
            - $ref: '#/components/schemas/SyntaxHighlightTheme'
            - type: 'null'
          description: Syntax highlighting theme for code blocks
        show_avatar_when_collapsed:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Show Avatar When Collapsed
          description: Show avatar when widget is collapsed
          default: false
        avatar:
          anyOf:
            - $ref: '#/components/schemas/OrbAvatar'
            - $ref: '#/components/schemas/URLAvatar'
            - $ref: '#/components/schemas/ImageAvatar'
            - type: 'null'
          title: Avatar
          description: The avatar of the widget
        custom_avatar_path:
          anyOf:
            - type: string
            - type: 'null'
          title: Custom Avatar Path
          description: Custom avatar path (set via POST /avatar)
        feedback_mode:
          $ref: '#/components/schemas/WidgetFeedbackMode'
          description: The feedback mode of the widget
          default: none
        end_feedback:
          anyOf:
            - $ref: '#/components/schemas/WidgetEndFeedbackConfig'
            - type: 'null'
          description: Configuration for feedback at end of conversation
        bg_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Bg Color
          description: Background color of the widget
        text_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Text Color
          description: Primary text color
        btn_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Btn Color
          description: Primary button color
        btn_text_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Btn Text Color
          description: Button label color
        border_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Border Color
          description: Border color
        focus_color:
          anyOf:
            - type: string
            - type: 'null'
          title: Focus Color
          description: Focus ring / outline color
        border_radius:
          anyOf:
            - type: integer
            - type: 'null'
          title: Border Radius
          description: Widget border radius in pixels
        btn_radius:
          anyOf:
            - type: integer
            - type: 'null'
          title: Btn Radius
          description: Button border radius in pixels
        action_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Action Text
          description: Primary action label text
        start_call_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Call Text
          description: Start call label text
        end_call_text:
          anyOf:
            - type: string
            - type: 'null'
          title: End Call Text
          description: End call label text
        expand_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Expand Text
          description: Expand control label text
        listening_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Listening Text
          description: Listening state label text
        speaking_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Speaking Text
          description: Speaking state label text
        mic_muting_enabled:
          type: boolean
          title: Mic Muting Enabled
          description: Enable mic muting
          default: false
        transcript_enabled:
          type: boolean
          title: Transcript Enabled
          description: Show conversation transcript
          default: false
        text_input_enabled:
          type: boolean
          title: Text Input Enabled
          description: Enable text message input
          default: true
        conversation_mode_toggle_enabled:
          type: boolean
          title: Conversation Mode Toggle Enabled
          description: Enable conversation mode toggle
          default: false
        language_selector:
          type: boolean
          title: Language Selector
          description: Show language selector
          default: false
        supports_text_only:
          type: boolean
          title: Supports Text Only
          description: Support text-only mode
          default: true
        shareable_page_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Shareable Page Text
          description: Text for shareable page
        shareable_page_show_terms:
          type: boolean
          title: Shareable Page Show Terms
          description: Show terms on shareable page
          default: true
        terms_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Text
          description: Terms and conditions text (Markdown)
        terms_html:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Html
          description: Terms and conditions HTML (auto-generated from terms_text)
        terms_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Key
          description: LocalStorage key to remember acceptance
        markdown_link_allowed_hosts:
          items:
            $ref: '#/components/schemas/AllowlistItem'
          type: array
          title: Markdown Link Allowed Hosts
          description: Allowed hostnames for clickable markdown links
        markdown_link_include_www:
          type: boolean
          title: Markdown Link Include Www
          description: Include www. variants of allowed hosts
          default: true
        markdown_link_allow_http:
          type: boolean
          title: Markdown Link Allow Http
          description: Allow http:// URLs
          default: true
        disable_banner:
          type: boolean
          title: Disable Banner
          description: Whether to disable the banner
          default: false
        override_link:
          anyOf:
            - type: string
            - type: 'null'
          title: Override Link
          description: Override link for the widget
        text_contents:
          anyOf:
            - $ref: '#/components/schemas/WidgetTextContents'
            - type: 'null'
          description: All text contents shown in the widget
        styles:
          anyOf:
            - $ref: '#/components/schemas/WidgetStyles'
            - type: 'null'
          description: Semantic color and radius styles for the widget
        language_presets:
          anyOf:
            - additionalProperties:
                $ref: '#/components/schemas/WidgetLanguagePresetResponse'
              type: object
            - type: 'null'
          title: Language Presets
          description: Language presets for the widget
      type: object
      title: WidgetConfig-Input
    ConversationInitiationClientDataConfigInput-Output:
      properties:
        conversation_config_override:
          anyOf:
            - $ref: >-
                #/components/schemas/ConversationConfigClientOverrideConfigInput-Output
            - type: 'null'
          description: Overrides for the conversation configuration
        custom_llm_extra_body:
          type: boolean
          title: Custom Llm Extra Body
          description: Whether to include custom LLM extra body
          default: false
        enable_conversation_initiation_client_data_from_webhook:
          type: boolean
          title: Enable Conversation Initiation Client Data From Webhook
          description: Whether to enable conversation initiation client data from webhooks
          default: false
      type: object
      title: ConversationInitiationClientDataConfig-Input
      example:
        custom_llm_extra_body: true
        enable_conversation_initiation_client_data_from_webhook: true
    AgentWorkspaceOverridesInput-Output:
      properties:
        conversation_initiation_client_data_webhook:
          anyOf:
            - $ref: '#/components/schemas/ConversationInitiationClientDataWebhook'
            - type: 'null'
          description: The webhook to send conversation initiation client data to
        webhooks:
          anyOf:
            - $ref: '#/components/schemas/ConvAIWebhooks'
            - type: 'null'
          description: Webhook configuration
      type: object
      title: AgentWorkspaceOverrides
    GuardrailsV1Input-Output:
      properties:
        version:
          type: string
          const: '1'
          title: Version
          default: '1'
        focus:
          anyOf:
            - $ref: '#/components/schemas/FocusGuardrail'
            - type: 'null'
        prompt_injection:
          anyOf:
            - $ref: '#/components/schemas/PromptInjectionGuardrail'
            - type: 'null'
        content:
          anyOf:
            - $ref: '#/components/schemas/ContentGuardrailInput-Output'
            - type: 'null'
        moderation:
          anyOf:
            - $ref: '#/components/schemas/ModerationGuardrailInput-Output'
            - type: 'null'
          x-fern-ignore: true
        custom:
          anyOf:
            - $ref: '#/components/schemas/CustomGuardrailInput-Output'
            - type: 'null'
      type: object
      title: GuardrailsV1
      discriminator:
        propertyName: version
        mapping:
          '1': '#/components/schemas/GuardrailsV1-Input'
    PrivacyConfig:
      properties:
        record_voice:
          type: boolean
          title: Record Voice
          description: Whether to record the conversation
          default: true
        retention_days:
          type: integer
          title: Retention Days
          description: >-
            The number of days to retain the conversation. -1 indicates there is
            no retention limit
          default: -1
        delete_transcript_and_pii:
          type: boolean
          title: Delete Transcript And Pii
          description: Whether to delete the transcript and PII
          default: false
        delete_audio:
          type: boolean
          title: Delete Audio
          description: Whether to delete the audio
          default: false
        apply_to_existing_conversations:
          type: boolean
          title: Apply To Existing Conversations
          description: Whether to apply the privacy settings to existing conversations
          default: false
        zero_retention_mode:
          type: boolean
          title: Zero Retention Mode
          description: Whether to enable zero retention mode - no PII data is stored
          default: false
        conversation_history_redaction:
          anyOf:
            - $ref: '#/components/schemas/ConversationHistoryRedactionConfig'
            - type: 'null'
          description: Config for PII redaction in the conversation history
      type: object
      title: PrivacyConfig
    ResourceRole:
      type: string
      enum:
        - admin
        - editor
        - commenter
        - viewer
      title: ResourceRole
      description: Role for resource access control
    ASRQuality:
      type: string
      enum:
        - high
      title: ASRQuality
    ASRProvider:
      type: string
      enum:
        - elevenlabs
        - scribe_realtime
      title: ASRProvider
    ASRInputFormat:
      type: string
      enum:
        - pcm_8000
        - pcm_16000
        - pcm_22050
        - pcm_24000
        - pcm_44100
        - pcm_48000
        - ulaw_8000
      title: ASRInputFormat
    SoftTimeoutConfig:
      properties:
        timeout_seconds:
          type: number
          title: Timeout Seconds
          description: >-
            Time in seconds before showing the predefined message while waiting
            for LLM response. Set to -1 to disable.
          default: -1
        message:
          type: string
          maxLength: 200
          minLength: 1
          title: Message
          description: >-
            Message to show when soft timeout is reached while waiting for LLM
            response
          default: Hhmmmm...yeah.
        use_llm_generated_message:
          type: boolean
          title: Use Llm Generated Message
          description: >-
            If enabled, the soft timeout message will be generated dynamically
            instead of using the static message.
          default: false
      type: object
      title: SoftTimeoutConfig
      description: Configuration for soft timeout while waiting for LLM responses.
    TTSConversationalModel:
      type: string
      enum:
        - eleven_turbo_v2
        - eleven_turbo_v2_5
        - eleven_flash_v2
        - eleven_flash_v2_5
        - eleven_multilingual_v2
        - eleven_v3_conversational
      title: TTSConversationalModel
    TTSPerformance:
      type: string
      enum:
        - latency
        - quality
      title: TTSPerformance
      description: |-
        User-facing TTS performance tier. Decouples the UI from vendor names.

        latency  -> optimized for response speed (currently Cartesia Sonic).
        quality  -> optimized for expressiveness (currently ElevenLabs v3).
    SupportedVoice:
      properties:
        label:
          type: string
          title: Label
          description: Human-readable label for the voice
        voice_id:
          type: string
          minLength: 1
          title: Voice Id
          description: The voice ID
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Optional voice description
        language:
          anyOf:
            - type: string
            - type: 'null'
          title: Language
          description: BCP-47 or agent language for the voice
        model_family:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Family
          description: Optional TTS model family hint when listing supported voices
        optimize_streaming_latency:
          anyOf:
            - $ref: '#/components/schemas/TTSStreamingLatencyLevel'
            - type: 'null'
          description: Optional latency optimization level for this voice
        stability:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Stability
          description: Optional default stability
        speed:
          anyOf:
            - type: number
              maximum: 1.2
              minimum: 0.7
            - type: 'null'
          title: Speed
          description: Optional default speed
        similarity_boost:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Similarity Boost
          description: Optional similarity boost
      type: object
      required:
        - label
        - voice_id
      title: SupportedVoice
    SuggestedAudioTag:
      properties:
        tag:
          type: string
          title: Tag
          description: Audio tag (e.g. 'happy', 'excited')
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: When to use this tag
      type: object
      required:
        - tag
      title: SuggestedAudioTag
    TTSPcmOutputFormat:
      type: string
      enum:
        - pcm_8000
        - pcm_16000
        - pcm_22050
        - pcm_24000
        - pcm_44100
        - pcm_48000
        - ulaw_8000
      title: TTSPcmOutputFormat
      description: PCM / telephony audio formats for conversational TTS output.
    TTSStreamingLatencyLevel:
      type: integer
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
      title: TTSStreamingLatencyLevel
      description: ElevenLabs streaming latency optimization (0–4).
    TextNormalisationType:
      type: string
      enum:
        - system_prompt
        - elevenlabs
      title: TextNormalisationType
    PydanticPronunciationDictionaryVersionLocator:
      properties:
        pronunciation_dictionary_id:
          type: string
          title: Pronunciation Dictionary Id
          description: Pronunciation dictionary ID
        version_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Version Id
          description: Dictionary version ID
      type: object
      required:
        - pronunciation_dictionary_id
      title: PydanticPronunciationDictionaryVersionLocator
    ClientEvent:
      type: string
      enum:
        - conversation_initiation_metadata
        - asr_initiation_metadata
        - ping
        - audio
        - interruption
        - user_transcript
        - tentative_user_transcript
        - agent_response
        - agent_response_correction
        - client_tool_call
        - mcp_tool_call
        - mcp_connection_status
        - agent_tool_request
        - agent_tool_response
        - agent_response_metadata
        - vad_score
        - agent_chat_response_part
        - client_error
        - guardrail_triggered
        - dtmf_request
        - internal_turn_probability
        - internal_tentative_agent_response
      title: ClientEvent
    FileInputConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: >-
            When enabled, users may attach images or PDFs when the LLM supports
            multimodal input.
          default: true
        max_files_per_conversation:
          type: integer
          maximum: 10
          minimum: 1
          title: Max Files Per Conversation
          description: Maximum number of files that can be uploaded per conversation.
          default: 10
      type: object
      title: FileInputConfig
    ConversationConfigClientOverride-Input:
      properties:
        turn:
          anyOf:
            - $ref: '#/components/schemas/TurnConfigOverride'
            - type: 'null'
          description: Configuration for turn detection
        tts:
          anyOf:
            - $ref: '#/components/schemas/TTSConversationalConfigOverride'
            - type: 'null'
          description: Configuration for conversational text to speech
        conversation:
          anyOf:
            - $ref: '#/components/schemas/ConversationConfigOverride'
            - type: 'null'
          description: Configuration for conversational events
        agent:
          anyOf:
            - $ref: '#/components/schemas/AgentConfigOverrideInput-Input'
            - type: 'null'
          description: Agent specific configuration
      type: object
      title: ConversationConfigClientOverride-Input
      description: >-
        Subset of conversation settings the client may override at conversation
        start.
    LanguagePresetTranslation:
      properties:
        source_hash:
          type: string
          title: Source Hash
          description: Hash of the source text
        text:
          type: string
          title: Text
          description: Translated text
      type: object
      required:
        - source_hash
        - text
      title: LanguagePresetTranslation
    DynamicVariablesConfig:
      properties:
        dynamic_variable_placeholders:
          additionalProperties:
            anyOf:
              - type: string
              - type: integer
              - type: number
              - type: boolean
          type: object
          title: Dynamic Variable Placeholders
          description: A dictionary of dynamic variable placeholders and their values
      type: object
      title: DynamicVariablesConfig
      description: >-
        Configuration for dynamic variables with placeholder values.


        Variable naming rules:

        - system__* prefix is RESERVED for platform-generated variables

        - secret__* prefix is allowed (filtered from LLM prompts, available for
        tool headers)

        - All other names are user-defined and available everywhere
      example:
        dynamic_variable_placeholders:
          user_name: John Doe
    PromptAgentAPIModelInput:
      properties:
        prompt:
          type: string
          title: Prompt
          description: The prompt for the agent
          default: ''
        llm:
          $ref: '#/components/schemas/LLM'
          description: >-
            The LLM to query with the prompt and the chat history. If using data
            residency, the LLM must be supported in the data residency
            environment
          default: gemini-2.5-flash
        reasoning_effort:
          anyOf:
            - $ref: '#/components/schemas/LLMReasoningEffort'
            - type: 'null'
          description: Reasoning effort of the model. Only available for some models.
        thinking_budget:
          anyOf:
            - type: integer
            - type: 'null'
          title: Thinking Budget
          description: >-
            Max number of tokens used for thinking. Use 0 to turn off if
            supported by the model.
        temperature:
          type: number
          title: Temperature
          description: The temperature for the LLM
          default: 0
        max_tokens:
          type: integer
          title: Max Tokens
          description: If greater than 0, maximum number of tokens the LLM can predict
          default: -1
        tool_ids:
          items:
            type: string
          type: array
          title: Tool Ids
          description: A list of IDs of tools used by the agent
        built_in_tools:
          anyOf:
            - $ref: '#/components/schemas/BuiltInToolsInput'
            - type: 'null'
          description: Built-in system tools to be used by the agent
        mcp_server_ids:
          items:
            type: string
          type: array
          maxItems: 10
          title: Mcp Server Ids
          description: A list of MCP server ids to be used by the agent
        native_mcp_server_ids:
          items:
            type: string
          type: array
          maxItems: 10
          title: Native Mcp Server Ids
          description: A list of Native MCP server ids to be used by the agent
        knowledge_base:
          items:
            $ref: '#/components/schemas/KnowledgeBaseLocator'
          type: array
          title: Knowledge Base
          description: A list of knowledge bases to be used by the agent
        custom_llm:
          anyOf:
            - $ref: '#/components/schemas/CustomLLM'
            - type: 'null'
          description: Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'
        ignore_default_personality:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Ignore Default Personality
          description: >-
            Whether to remove the default personality lines from the system
            prompt
          default: false
        rag:
          anyOf:
            - $ref: '#/components/schemas/RagConfig'
            - type: 'null'
          description: Configuration for RAG
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
          description: >-
            Timezone for displaying current time in system prompt. If set, the
            current time will be included in the system prompt using this
            timezone. Must be a valid timezone name (e.g., 'America/New_York',
            'Europe/London', 'UTC').
        backup_llm_config:
          anyOf:
            - $ref: '#/components/schemas/BackupLLMDefault'
            - $ref: '#/components/schemas/BackupLLMDisabled'
            - $ref: '#/components/schemas/BackupLLMOverride'
            - type: 'null'
          title: Backup Llm Config
          description: >-
            Configuration for backup LLM cascading. Can be disabled, use system
            defaults, or specify custom order.
        cascade_timeout_seconds:
          type: number
          maximum: 15
          minimum: 2
          title: Cascade Timeout Seconds
          description: >-
            Time in seconds before cascading to backup LLM. Must be between 2
            and 15 seconds.
          default: 8
        tools:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Tools
          description: >-
            A list of tools that the agent can use over the course of the
            conversation, use tool_ids instead
          deprecated: true
      type: object
      title: PromptAgentAPIModel-Input
      example:
        knowledge_base: []
        llm: gemini-2.5-flash
        max_tokens: -1
        mcp_server_ids: []
        native_mcp_server_ids: []
        prompt: >-
          You are a helpful assistant that can answer questions about the topic
          of the conversation.
        temperature: 0
        tool_ids: []
    PromptEvaluationCriteria:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the evaluation criteria
        name:
          type: string
          title: Name
        type:
          type: string
          const: prompt
          title: Type
          description: The type of evaluation criteria
          default: prompt
        conversation_goal_prompt:
          type: string
          maxLength: 2000
          title: Conversation Goal Prompt
          description: The prompt that the agent should use to evaluate the conversation
        use_knowledge_base:
          type: boolean
          title: Use Knowledge Base
          description: >-
            When evaluating the prompt, should the agent's knowledge base be
            used.
          default: false
        scope:
          $ref: '#/components/schemas/AnalysisScope'
          description: >-
            The scope of transcript context used when evaluating this criterion.
            'conversation' uses the full transcript; 'agent' uses only the
            portion where the defining agent was active.
          default: conversation
      type: object
      required:
        - id
        - name
        - conversation_goal_prompt
      title: PromptEvaluationCriteria
      description: >-
        An evaluation using the transcript and a prompt for a yes/no achieved
        answer.
      example:
        conversation_goal_prompt: >-
          You are a helpful assistant that can answer questions about the topic
          of the conversation.
        id: '1234567890'
        name: Customer satisfaction check
        scope: conversation
        type: prompt
        use_knowledge_base: false
    EmbedVariant:
      type: string
      enum:
        - tiny
        - compact
        - full
        - expandable
      title: EmbedVariant
    WidgetPlacement:
      type: string
      enum:
        - top-left
        - top
        - top-right
        - bottom-left
        - bottom
        - bottom-right
      title: WidgetPlacement
    WidgetExpandable:
      type: string
      enum:
        - never
        - mobile
        - desktop
        - always
      title: WidgetExpandable
    SyntaxHighlightTheme:
      type: string
      enum:
        - light
        - dark
      title: SyntaxHighlightTheme
    OrbAvatar:
      properties:
        type:
          type: string
          title: Type
          description: Avatar type
          default: orb
        color_1:
          type: string
          title: Color 1
          description: Primary orb color
          default: '#2792dc'
        color_2:
          type: string
          title: Color 2
          description: Secondary orb color
          default: '#9ce6e6'
      type: object
      title: OrbAvatar
    URLAvatar:
      properties:
        type:
          type: string
          title: Type
          description: Avatar type
          default: url
        custom_url:
          type: string
          title: Custom Url
          description: The custom URL of the avatar
          default: ''
      type: object
      title: URLAvatar
    ImageAvatar:
      properties:
        type:
          type: string
          title: Type
          description: Avatar type
          default: image
        url:
          type: string
          title: Url
          description: URL to the avatar image
          default: ''
      type: object
      title: ImageAvatar
    WidgetFeedbackMode:
      type: string
      enum:
        - none
        - during
        - end
      title: WidgetFeedbackMode
    WidgetEndFeedbackConfig:
      properties:
        type:
          $ref: '#/components/schemas/WidgetEndFeedbackType'
          description: The type of feedback to collect at the end of the conversation
          default: rating
      type: object
      title: WidgetEndFeedbackConfig
    AllowlistItem:
      properties:
        hostname:
          type: string
          title: Hostname
          description: The hostname of the allowed origin
      type: object
      required:
        - hostname
      title: AllowlistItem
    WidgetTextContents:
      properties:
        main_label:
          anyOf:
            - type: string
            - type: 'null'
          title: Main Label
          description: Call to action displayed inside the compact and full variants.
        start_call:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Call
          description: Text and ARIA label for the start call button.
        start_chat:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Chat
          description: Text and ARIA label for the start chat button (text only)
        new_call:
          anyOf:
            - type: string
            - type: 'null'
          title: New Call
          description: >-
            Text and ARIA label for the new call button. Displayed when the
            caller already finished at least one call.
        end_call:
          anyOf:
            - type: string
            - type: 'null'
          title: End Call
          description: Text and ARIA label for the end call button.
        mute_microphone:
          anyOf:
            - type: string
            - type: 'null'
          title: Mute Microphone
          description: ARIA label for the mute microphone button.
        change_language:
          anyOf:
            - type: string
            - type: 'null'
          title: Change Language
          description: ARIA label for the change language dropdown.
        collapse:
          anyOf:
            - type: string
            - type: 'null'
          title: Collapse
          description: ARIA label for the collapse button.
        expand:
          anyOf:
            - type: string
            - type: 'null'
          title: Expand
          description: ARIA label for the expand button.
        copied:
          anyOf:
            - type: string
            - type: 'null'
          title: Copied
          description: Text displayed when the user copies a value using the copy button.
        accept_terms:
          anyOf:
            - type: string
            - type: 'null'
          title: Accept Terms
          description: Text and ARIA label for the accept terms button.
        dismiss_terms:
          anyOf:
            - type: string
            - type: 'null'
          title: Dismiss Terms
          description: Text and ARIA label for the cancel terms button.
        listening_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Listening Status
          description: Status displayed when the agent is listening.
        speaking_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Speaking Status
          description: Status displayed when the agent is speaking.
        connecting_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Connecting Status
          description: Status displayed when the agent is connecting.
        chatting_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Chatting Status
          description: Status displayed when the agent is chatting (text only)
        input_label:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Label
          description: ARIA label for the text message input.
        input_placeholder:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Placeholder
          description: Placeholder text for the text message input.
        input_placeholder_text_only:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Placeholder Text Only
          description: Placeholder text for the text message input (text only)
        input_placeholder_new_conversation:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Placeholder New Conversation
          description: >-
            Placeholder text for the text message input when starting a new
            conversation (text only)
        user_ended_conversation:
          anyOf:
            - type: string
            - type: 'null'
          title: User Ended Conversation
          description: Information message displayed when the user ends the conversation.
        agent_ended_conversation:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Ended Conversation
          description: Information message displayed when the agent ends the conversation.
        conversation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Conversation Id
          description: Text label used next to the conversation ID.
        error_occurred:
          anyOf:
            - type: string
            - type: 'null'
          title: Error Occurred
          description: Text label used when an error occurs.
        copy_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Copy Id
          description: Text and ARIA label used for the copy ID button.
        initiate_feedback:
          anyOf:
            - type: string
            - type: 'null'
          title: Initiate Feedback
          description: Text displayed to prompt the user for feedback.
        request_follow_up_feedback:
          anyOf:
            - type: string
            - type: 'null'
          title: Request Follow Up Feedback
          description: Text displayed to request additional feedback details.
        thanks_for_feedback:
          anyOf:
            - type: string
            - type: 'null'
          title: Thanks For Feedback
          description: Text displayed to thank the user for providing feedback.
        thanks_for_feedback_details:
          anyOf:
            - type: string
            - type: 'null'
          title: Thanks For Feedback Details
          description: Additional text displayed explaining the value of user feedback.
        follow_up_feedback_placeholder:
          anyOf:
            - type: string
            - type: 'null'
          title: Follow Up Feedback Placeholder
          description: Placeholder text for the follow-up feedback input field.
        submit:
          anyOf:
            - type: string
            - type: 'null'
          title: Submit
          description: Text and ARIA label for the submit button.
        go_back:
          anyOf:
            - type: string
            - type: 'null'
          title: Go Back
          description: Text and ARIA label for the go back button.
        send_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Send Message
          description: Text and ARIA label for the send message button.
        text_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Text Mode
          description: Text and ARIA label for the switch to text mode button.
        voice_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Voice Mode
          description: Text and ARIA label for the switch to voice mode button.
        switched_to_text_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Switched To Text Mode
          description: Toast notification displayed when switching to text mode.
        switched_to_voice_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Switched To Voice Mode
          description: Toast notification displayed when switching to voice mode.
        copy:
          anyOf:
            - type: string
            - type: 'null'
          title: Copy
          description: Text and ARIA label for the copy button.
        download:
          anyOf:
            - type: string
            - type: 'null'
          title: Download
          description: Text and ARIA label for the download button.
        wrap:
          anyOf:
            - type: string
            - type: 'null'
          title: Wrap
          description: Text and ARIA label for the wrap toggle button.
        agent_working:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Working
          description: Status text displayed when the agent is processing a tool call.
        agent_done:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Done
          description: >-
            Status text displayed when the agent finishes processing a tool
            call.
        agent_error:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Error
          description: >-
            Status text displayed when the agent encounters an error during a
            tool call.
      type: object
      title: WidgetTextContents
    WidgetStyles:
      properties:
        base:
          anyOf:
            - type: string
            - type: 'null'
          title: Base
          description: The base background color.
        base_hover:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Hover
          description: The color of the base background when hovered.
        base_active:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Active
          description: The color of the base background when active (clicked).
        base_border:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Border
          description: The color of the border against the base background.
        base_subtle:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Subtle
          description: The color of subtle text against the base background.
        base_primary:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Primary
          description: The color of primary text against the base background.
        base_error:
          anyOf:
            - type: string
            - type: 'null'
          title: Base Error
          description: The color of error text against the base background.
        accent:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent
          description: The accent background color.
        accent_hover:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent Hover
          description: The color of the accent background when hovered.
        accent_active:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent Active
          description: The color of the accent background when active (clicked).
        accent_border:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent Border
          description: The color of the border against the accent background.
        accent_subtle:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent Subtle
          description: The color of subtle text against the accent background.
        accent_primary:
          anyOf:
            - type: string
            - type: 'null'
          title: Accent Primary
          description: The color of primary text against the accent background.
        overlay_padding:
          anyOf:
            - type: number
            - type: 'null'
          title: Overlay Padding
          description: The padding around the edges of the viewport.
        button_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Button Radius
          description: The radius of the buttons.
        input_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Input Radius
          description: The radius of the input fields.
        bubble_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Bubble Radius
          description: The radius of the chat bubbles.
        sheet_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Sheet Radius
          description: The default radius of sheets.
        compact_sheet_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Compact Sheet Radius
          description: The radius of the sheet in compact mode.
        dropdown_sheet_radius:
          anyOf:
            - type: number
            - type: 'null'
          title: Dropdown Sheet Radius
          description: The radius of the dropdown sheet.
      type: object
      title: WidgetStyles
    WidgetLanguagePresetResponse:
      properties:
        first_message:
          anyOf:
            - type: string
            - type: 'null'
          title: First Message
          description: First message in this language
        text_contents:
          anyOf:
            - $ref: '#/components/schemas/WidgetTextContents'
            - type: 'null'
          description: The text contents for the selected language
        terms_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Text
          description: The text to display for terms and conditions in this language
        terms_html:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Html
          description: The HTML to display for terms and conditions in this language
        terms_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Terms Key
          description: The key to display for terms and conditions in this language
        terms_translation:
          anyOf:
            - $ref: '#/components/schemas/WidgetTermsTranslation'
            - type: 'null'
          description: The translation cache for the terms in this language
      type: object
      title: WidgetLanguagePresetResponse
    ConversationConfigClientOverrideConfigInput-Input:
      properties:
        turn:
          anyOf:
            - $ref: '#/components/schemas/TurnConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
        tts:
          anyOf:
            - $ref: '#/components/schemas/TTSConversationalConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
        conversation:
          anyOf:
            - $ref: '#/components/schemas/ConversationConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
        agent:
          anyOf:
            - $ref: '#/components/schemas/AgentConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
      type: object
      title: ConversationConfigClientOverrideConfig-Input
    ConversationInitiationClientDataWebhook:
      properties:
        url:
          type: string
          title: Url
          description: The URL to send the webhook to
        request_headers:
          additionalProperties:
            anyOf:
              - type: string
              - $ref: '#/components/schemas/ConvAISecretLocator'
          type: object
          title: Request Headers
          description: The headers to send with the webhook request
      type: object
      required:
        - url
        - request_headers
      title: ConversationInitiationClientDataWebhook
      example:
        request_headers:
          Content-Type: application/json
        url: https://example.com/webhook
    ConvAIWebhooks:
      properties:
        post_call_webhook_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Post Call Webhook Id
        events:
          items:
            $ref: '#/components/schemas/WebhookEventType'
          type: array
          title: Events
          description: >-
            List of event types to send via webhook. Options: transcript, audio,
            call_initiation_failure.
        send_audio:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Send Audio
          description: >-
            DEPRECATED: Use 'events' field instead. Whether to send audio data
            with post-call webhooks for ConvAI conversations
          deprecated: true
      type: object
      title: ConvAIWebhooks
    AttachedTestModel:
      properties:
        test_id:
          type: string
          title: Test Id
        workflow_node_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Node Id
      type: object
      required:
        - test_id
      title: AttachedTestModel
    FocusGuardrail:
      properties:
        is_enabled:
          type: boolean
          title: Is Enabled
          default: false
      type: object
      title: FocusGuardrail
    PromptInjectionGuardrail:
      properties:
        is_enabled:
          type: boolean
          title: Is Enabled
          default: false
      type: object
      title: PromptInjectionGuardrail
    ContentGuardrailInput-Input:
      properties:
        execution_mode:
          $ref: '#/components/schemas/GuardrailExecutionMode'
          default: streaming
        config:
          anyOf:
            - $ref: '#/components/schemas/ContentConfig'
            - type: 'null'
        trigger_action:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/EndCallTriggerAction'
                - $ref: '#/components/schemas/RetryTriggerAction'
              discriminator:
                propertyName: type
                mapping:
                  end_call:
                    $ref: '#/components/schemas/EndCallTriggerAction'
                  retry:
                    $ref: '#/components/schemas/RetryTriggerAction'
            - type: 'null'
          title: Trigger Action
      type: object
      title: ContentGuardrail
    ModerationGuardrailInput-Input:
      properties:
        execution_mode:
          $ref: '#/components/schemas/GuardrailExecutionMode'
          default: streaming
        config:
          anyOf:
            - $ref: '#/components/schemas/ModerationConfig'
            - type: 'null'
      type: object
      title: ModerationGuardrail
    CustomGuardrailInput-Input:
      properties:
        config:
          anyOf:
            - $ref: '#/components/schemas/CustomGuardrailsConfigInput-Input'
            - type: 'null'
      type: object
      title: CustomGuardrail
    ConversationHistoryRedactionConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Whether conversation history redaction is enabled
          default: false
        entities:
          items:
            $ref: '#/components/schemas/ConfigEntityType'
          type: array
          title: Entities
          description: >-
            The entities to redact from the conversation transcript, audio and
            analysis. Use top-level types like 'name', 'email_address', or dot
            notation for specific subtypes like 'name.name_given'.
      type: object
      title: ConversationHistoryRedactionConfig
    WorkflowForwardCondition:
      properties:
        condition:
          anyOf:
            - type: string
            - type: 'null'
          title: Condition
          description: Natural language condition
        successful:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Successful
          description: Tool success condition
        expression:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Expression
          description: Complex expression condition
      type: object
      title: WorkflowForwardCondition
    WorkflowToolReference:
      properties:
        tool_id:
          type: string
          title: Tool Id
          description: Tool ID to execute
      type: object
      required:
        - tool_id
      title: WorkflowToolReference
    TTSOutputFormat:
      properties:
        container:
          type: string
          title: Container
          description: Output container format (raw, wav, mp3)
          default: raw
        encoding:
          $ref: '#/components/schemas/TTSOutputEncoding'
          description: Audio encoding format
          default: pcm_s16le
        sample_rate:
          $ref: '#/components/schemas/TTSSampleRate'
          description: Audio sample rate
          default: 24000
      type: object
      title: TTSOutputFormat
    TTSGenerationConfig:
      properties:
        volume:
          type: number
          maximum: 2
          minimum: 0.5
          title: Volume
          description: Volume adjustment (0.5x to 2.0x)
          default: 1
        speed:
          type: number
          maximum: 1.5
          minimum: 0.6
          title: Speed
          description: Speed adjustment (0.6x to 1.5x)
          default: 1
      type: object
      title: TTSGenerationConfig
    ConversationConfigClientOverride-Output:
      properties:
        turn:
          anyOf:
            - $ref: '#/components/schemas/TurnConfigOverride'
            - type: 'null'
          description: Configuration for turn detection
        tts:
          anyOf:
            - $ref: '#/components/schemas/TTSConversationalConfigOverride'
            - type: 'null'
          description: Configuration for conversational text to speech
        conversation:
          anyOf:
            - $ref: '#/components/schemas/ConversationConfigOverride'
            - type: 'null'
          description: Configuration for conversational events
        agent:
          anyOf:
            - $ref: '#/components/schemas/AgentConfigOverrideInput-Output'
            - type: 'null'
          description: Agent specific configuration
      type: object
      title: ConversationConfigClientOverride-Input
      description: >-
        Subset of conversation settings the client may override at conversation
        start.
    PromptAgentAPIModelOutput:
      properties:
        prompt:
          type: string
          title: Prompt
          description: The prompt for the agent
          default: ''
        reasoning_effort:
          anyOf:
            - $ref: '#/components/schemas/LLMReasoningEffort'
            - type: 'null'
          description: Reasoning effort of the model. Only available for some models.
        thinking_budget:
          anyOf:
            - type: integer
            - type: 'null'
          title: Thinking Budget
          description: >-
            Max number of tokens used for thinking. Use 0 to turn off if
            supported by the model.
        temperature:
          type: number
          title: Temperature
          description: The temperature for the LLM
          default: 0
        max_tokens:
          type: integer
          title: Max Tokens
          description: If greater than 0, maximum number of tokens the LLM can predict
          default: -1
        tool_ids:
          items:
            type: string
          type: array
          title: Tool Ids
          description: A list of IDs of tools used by the agent
        built_in_tools:
          anyOf:
            - $ref: '#/components/schemas/BuiltInToolsOutput'
            - type: 'null'
          description: Built-in system tools to be used by the agent
        mcp_server_ids:
          items:
            type: string
          type: array
          maxItems: 10
          title: Mcp Server Ids
          description: A list of MCP server ids to be used by the agent
        native_mcp_server_ids:
          items:
            type: string
          type: array
          maxItems: 10
          title: Native Mcp Server Ids
          description: A list of Native MCP server ids to be used by the agent
        knowledge_base:
          items:
            $ref: '#/components/schemas/KnowledgeBaseLocator'
          type: array
          title: Knowledge Base
          description: A list of knowledge bases to be used by the agent
        custom_llm:
          anyOf:
            - $ref: '#/components/schemas/CustomLLM'
            - type: 'null'
          description: Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'
        ignore_default_personality:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Ignore Default Personality
          description: >-
            Whether to remove the default personality lines from the system
            prompt
          default: false
        rag:
          anyOf:
            - $ref: '#/components/schemas/RagConfig'
            - type: 'null'
          description: Configuration for RAG
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
          description: >-
            Timezone for displaying current time in system prompt. If set, the
            current time will be included in the system prompt using this
            timezone. Must be a valid timezone name (e.g., 'America/New_York',
            'Europe/London', 'UTC').
        backup_llm_config:
          anyOf:
            - $ref: '#/components/schemas/BackupLLMDefault'
            - $ref: '#/components/schemas/BackupLLMDisabled'
            - $ref: '#/components/schemas/BackupLLMOverride'
            - type: 'null'
          title: Backup Llm Config
          description: >-
            Configuration for backup LLM cascading. Can be disabled, use system
            defaults, or specify custom order.
        cascade_timeout_seconds:
          type: number
          maximum: 15
          minimum: 2
          title: Cascade Timeout Seconds
          description: >-
            Time in seconds before cascading to backup LLM. Must be between 2
            and 15 seconds.
          default: 8
      type: object
      title: PromptAgentAPIModel
    ConversationConfigClientOverrideConfigInput-Output:
      properties:
        turn:
          anyOf:
            - $ref: '#/components/schemas/TurnConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
        tts:
          anyOf:
            - $ref: '#/components/schemas/TTSConversationalConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
        conversation:
          anyOf:
            - $ref: '#/components/schemas/ConversationConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
        agent:
          anyOf:
            - $ref: '#/components/schemas/AgentConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
      type: object
      title: ConversationConfigClientOverrideConfig-Input
    ContentGuardrailInput-Output:
      properties:
        execution_mode:
          $ref: '#/components/schemas/GuardrailExecutionMode'
          default: streaming
        config:
          anyOf:
            - $ref: '#/components/schemas/ContentConfig'
            - type: 'null'
        trigger_action:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/EndCallTriggerAction'
                - $ref: '#/components/schemas/RetryTriggerAction'
              discriminator:
                propertyName: type
                mapping:
                  end_call:
                    $ref: '#/components/schemas/EndCallTriggerAction'
                  retry:
                    $ref: '#/components/schemas/RetryTriggerAction'
            - type: 'null'
          title: Trigger Action
      type: object
      title: ContentGuardrail
    ModerationGuardrailInput-Output:
      properties:
        execution_mode:
          $ref: '#/components/schemas/GuardrailExecutionMode'
          default: streaming
        config:
          anyOf:
            - $ref: '#/components/schemas/ModerationConfig'
            - type: 'null'
      type: object
      title: ModerationGuardrail
    CustomGuardrailInput-Output:
      properties:
        config:
          anyOf:
            - $ref: '#/components/schemas/CustomGuardrailsConfigInput-Output'
            - type: 'null'
      type: object
      title: CustomGuardrail
    TurnConfigOverride:
      properties:
        soft_timeout_config:
          anyOf:
            - $ref: '#/components/schemas/SoftTimeoutConfigOverride'
            - type: 'null'
          description: >-
            Configuration for soft timeout functionality. Provides immediate
            feedback during longer LLM responses.
      type: object
      title: TurnConfigOverride
    TTSConversationalConfigOverride:
      properties:
        voice_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Voice Id
          description: The voice ID to use for TTS
        stability:
          anyOf:
            - type: number
            - type: 'null'
          title: Stability
          description: The stability of generated speech
        speed:
          anyOf:
            - type: number
            - type: 'null'
          title: Speed
          description: The speed of generated speech
        similarity_boost:
          anyOf:
            - type: number
            - type: 'null'
          title: Similarity Boost
          description: The similarity boost for generated speech
      type: object
      title: TTSConversationalConfigOverride
    ConversationConfigOverride:
      properties:
        text_only:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Text Only
          description: >-
            If enabled audio will not be processed and only text will be used,
            use to avoid audio pricing.
      type: object
      title: ConversationConfigOverride
    AgentConfigOverrideInput-Input:
      properties:
        first_message:
          anyOf:
            - type: string
            - type: 'null'
          title: First Message
          description: >-
            If non-empty, the first message the agent will say. If empty, the
            agent waits for the user to start the discussion.
        language:
          anyOf:
            - type: string
            - type: 'null'
          title: Language
          description: >-
            Primary ISO 639-1 language code for voice (e.g. en, hi, kn). Short
            codes only, not regional BCP-47 (e.g. not hi-IN).
        max_conversation_duration_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Max Conversation Duration Message
          description: >-
            If non-empty, the message the agent will send when max conversation
            duration is reached.
        prompt:
          anyOf:
            - $ref: '#/components/schemas/PromptAgentAPIModelOverride-Input'
            - type: 'null'
          description: The prompt for the agent
      type: object
      title: AgentConfigOverride-Input
    LLM:
      type: string
      enum:
        - gpt-5-mini
        - gemini-2.5-flash
        - gemini-3-flash-preview
        - gpt-4o-mini
      title: LLM
    LLMReasoningEffort:
      type: string
      enum:
        - none
        - minimal
        - low
        - medium
        - high
      title: LLMReasoningEffort
    BuiltInToolsInput:
      properties:
        end_call:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigInput'
            - type: 'null'
          description: The end call tool
        language_detection:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigInput'
            - type: 'null'
          description: The language detection tool
        transfer_to_agent:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigInput'
            - type: 'null'
          description: The transfer to agent tool
        transfer_to_number:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigInput'
            - type: 'null'
          description: The transfer to number tool
        skip_turn:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigInput'
            - type: 'null'
          description: The skip turn tool
        play_keypad_touch_tone:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigInput'
            - type: 'null'
          description: The play DTMF tool
        voicemail_detection:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigInput'
            - type: 'null'
          description: The voicemail detection tool
      type: object
      title: BuiltInTools
      description: Built-in system tools for an agent
    KnowledgeBaseLocator:
      properties:
        type:
          $ref: '#/components/schemas/KnowledgeBaseDocumentType'
          description: The type of the knowledge base
        name:
          type: string
          title: Name
          description: The name of the knowledge base
        id:
          type: string
          title: Id
          description: The ID of the knowledge base
        usage_mode:
          $ref: '#/components/schemas/DocumentUsageModeEnum'
          description: The usage mode of the knowledge base
          default: auto
      type: object
      required:
        - type
        - name
        - id
      title: KnowledgeBaseLocator
      description: >-
        Reference to a knowledge base document (locator for agent attachment).

        Used when attaching knowledge bases to an agent. Canonical definition
        lives here;

        do not duplicate in other domains.
      example:
        id: '123'
        name: My Knowledge Base
        type: file
        usage_mode: auto
    CustomLLM:
      properties:
        url:
          type: string
          title: Url
          description: The URL of the Chat Completions compatible endpoint
        model_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Id
          description: The model ID to be used if URL serves multiple models
        api_key:
          anyOf:
            - $ref: '#/components/schemas/ConvAISecretLocator'
            - $ref: '#/components/schemas/ConvAIEnvVarLocator'
            - type: 'null'
          title: Api Key
          description: >-
            The API key for authentication. Either a workspace secret reference
            {'secret_id': '...'} or an environment variable reference
            {'env_var_label': '...'}.
        request_headers:
          anyOf:
            - additionalProperties:
                anyOf:
                  - type: string
                  - $ref: '#/components/schemas/ConvAISecretLocator'
                  - $ref: '#/components/schemas/ConvAIDynamicVariable'
                  - $ref: '#/components/schemas/ConvAIEnvVarLocator'
              type: object
            - type: 'null'
          title: Request Headers
          description: Headers that should be included in the request
        api_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Api Version
          description: The API version to use for the request
        api_type:
          $ref: '#/components/schemas/CustomLLMAPIType'
          description: The API type to use (chat_completions or responses)
          default: chat_completions
      type: object
      required:
        - url
      title: CustomLLM
    RagConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Whether RAG is enabled
          default: false
        embedding_model:
          $ref: >-
            #/components/schemas/app__domains__agents__schemas__EmbeddingModelEnum
          description: The embedding model to use for RAG
          default: gemini-embedding-001
        max_vector_distance:
          type: number
          exclusiveMaximum: 1
          exclusiveMinimum: 0
          title: Max Vector Distance
          description: Maximum vector distance of retrieved chunks.
          default: 0.6
        max_documents_length:
          type: integer
          exclusiveMaximum: 10000000
          exclusiveMinimum: 0
          title: Max Documents Length
          description: Maximum total length of document chunks retrieved from RAG.
          default: 50000
        max_retrieved_rag_chunks_count:
          type: integer
          maximum: 20
          exclusiveMinimum: 0
          title: Max Retrieved Rag Chunks Count
          description: >-
            Maximum number of RAG document chunks to initially retrieve from the
            vector store. These are then further filtered by vector distance and
            total length.
          default: 20
        num_candidates:
          anyOf:
            - type: integer
              maximum: 10000
              exclusiveMinimum: 0
            - type: 'null'
          title: Num Candidates
          description: >-
            Number of candidates evaluated in ANN vector search. Higher number
            means better results, but higher latency. Minimum recommended value
            is 100. If disabled, the default value is used.
        query_rewrite_prompt_override:
          anyOf:
            - type: string
              maxLength: 1000
              minLength: 1
            - type: 'null'
          title: Query Rewrite Prompt Override
          description: >-
            Custom prompt for rewriting user queries before RAG retrieval. The
            conversation history will be automatically appended at the end. If
            not set, the default prompt will be used.
      type: object
      title: RagConfig
      example:
        embedding_model: gemini-embedding-001
        enabled: false
        max_documents_length: 50000
        max_retrieved_rag_chunks_count: 5
        max_vector_distance: 0.5
        num_candidates: 300
    BackupLLMDefault:
      properties:
        preference:
          type: string
          const: default
          title: Preference
          description: Use system defaults for backup LLM
          default: default
      type: object
      title: BackupLLMDefault
    BackupLLMDisabled:
      properties:
        preference:
          type: string
          const: disabled
          title: Preference
          description: Disable backup LLM cascading
          default: disabled
      type: object
      title: BackupLLMDisabled
    BackupLLMOverride:
      properties:
        preference:
          type: string
          const: override
          title: Preference
          description: Override with custom LLM order
          default: override
        order:
          items:
            $ref: '#/components/schemas/LLM'
          type: array
          title: Order
          description: Custom order of LLMs for fallback
      type: object
      required:
        - order
      title: BackupLLMOverride
    WidgetEndFeedbackType:
      type: string
      enum:
        - rating
      title: WidgetEndFeedbackType
    WidgetTermsTranslation:
      properties:
        source_hash:
          type: string
          title: Source Hash
          description: Hash of the source terms text
        text:
          type: string
          title: Text
          description: Translated terms text
      type: object
      required:
        - source_hash
        - text
      title: WidgetTermsTranslation
    TurnConfigOverrideConfig:
      properties:
        soft_timeout_config:
          anyOf:
            - $ref: '#/components/schemas/SoftTimeoutConfigOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
      type: object
      title: TurnConfigOverrideConfig
    TTSConversationalConfigOverrideConfig:
      properties:
        voice_id:
          type: boolean
          title: Voice Id
          description: Whether to allow overriding the voice_id field.
          default: false
        stability:
          type: boolean
          title: Stability
          description: Whether to allow overriding the stability field.
          default: false
        speed:
          type: boolean
          title: Speed
          description: Whether to allow overriding the speed field.
          default: false
        similarity_boost:
          type: boolean
          title: Similarity Boost
          description: Whether to allow overriding the similarity_boost field.
          default: false
      type: object
      title: TTSConversationalConfigOverrideConfig
    ConversationConfigOverrideConfig:
      properties:
        text_only:
          type: boolean
          title: Text Only
          description: Whether to allow overriding the text_only field.
          default: false
      type: object
      title: ConversationConfigOverrideConfig
    AgentConfigOverrideConfig:
      properties:
        first_message:
          type: boolean
          title: First Message
          description: Whether to allow overriding the first_message field.
          default: false
        language:
          type: boolean
          title: Language
          description: Whether to allow overriding the language field.
          default: false
        max_conversation_duration_message:
          type: boolean
          title: Max Conversation Duration Message
          description: >-
            Whether to allow overriding the max_conversation_duration_message
            field.
          default: false
        prompt:
          anyOf:
            - $ref: '#/components/schemas/PromptAgentAPIModelOverrideConfig'
            - type: 'null'
          description: Configures overrides for nested fields.
      type: object
      title: AgentConfigOverrideConfig
    ConvAISecretLocator:
      properties:
        secret_id:
          type: string
          title: Secret Id
      type: object
      required:
        - secret_id
      title: ConvAISecretLocator
      example:
        secret_id: sec_workspace_abc123
    WebhookEventType:
      type: string
      enum:
        - transcript
        - audio
        - call_initiation_failure
      title: WebhookEventType
    GuardrailExecutionMode:
      type: string
      enum:
        - streaming
        - blocking
      title: GuardrailExecutionMode
    ContentConfig:
      properties:
        sexual:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        violence:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        harassment:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        self_harm:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        profanity:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        religion_or_politics:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
        medical_and_legal_information:
          anyOf:
            - $ref: '#/components/schemas/ContentThresholdGuardrail'
            - type: 'null'
      type: object
      title: ContentConfig
    EndCallTriggerAction:
      properties:
        type:
          type: string
          const: end_call
          title: Type
          default: end_call
      type: object
      title: EndCallTriggerAction
    RetryTriggerAction:
      properties:
        type:
          type: string
          const: retry
          title: Type
          default: retry
        feedback:
          type: string
          title: Feedback
          description: >-
            Custom feedback to inject into the agent when retrying after
            guardrail trigger.
          default: >-
            Your response was blocked by a guardrail that blocks content that
            matches this condition/category: '{{trigger_reason}}' During your
            next turn you must tell the user "I'm sorry but I can't answer that
            question, would you like to know something else?".
      type: object
      title: RetryTriggerAction
    ModerationConfig:
      properties:
        sexual:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        violence:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        violence_graphic:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        harassment:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        harassment_threatening:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        hate:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        hate_threatening:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        self_harm_instructions:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        self_harm:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        self_harm_intent:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
        sexual_minors:
          anyOf:
            - $ref: '#/components/schemas/ThresholdGuardrail'
            - type: 'null'
      type: object
      title: ModerationConfig
    CustomGuardrailsConfigInput-Input:
      properties:
        configs:
          items:
            $ref: '#/components/schemas/CustomGuardrailConfig'
          type: array
          title: Configs
      type: object
      title: CustomGuardrailsConfig
    ConfigEntityType:
      type: string
      enum:
        - name
        - name.name_given
        - name.name_family
        - name.name_other
        - email_address
        - contact_number
        - dob
        - age
        - religious_belief
        - political_opinion
        - sexual_orientation
        - ethnicity_race
        - marital_status
        - occupation
        - physical_attribute
        - language
        - username
        - password
        - url
        - organization
        - financial_id
        - financial_id.payment_card
        - financial_id.payment_card.payment_card_number
        - financial_id.payment_card.payment_card_expiration_date
        - financial_id.payment_card.payment_card_cvv
        - financial_id.bank_account
        - financial_id.bank_account.bank_account_number
        - financial_id.bank_account.bank_routing_number
        - financial_id.bank_account.swift_bic_code
        - financial_id.financial_id_other
        - location
        - location.location_address
        - location.location_city
        - location.location_postal_code
        - location.location_coordinate
        - location.location_state
        - location.location_country
        - location.location_other
        - date
        - date_interval
        - unique_id
        - unique_id.government_issued_id
        - unique_id.account_number
        - unique_id.vehicle_id
        - unique_id.healthcare_number
        - unique_id.healthcare_number.medical_record_number
        - unique_id.healthcare_number.health_plan_beneficiary_number
        - unique_id.device_id
        - unique_id.unique_id_other
        - medical
        - medical.medical_condition
        - medical.medication
        - medical.medical_procedure
        - medical.medical_measurement
        - medical.medical_other
      title: ConfigEntityType
      description: >-
        Entity types for the API configuration.


        This enum contains all valid entity type configurations that users can
        specify:

        - Parent types (e.g., "name", "financial_id") that expand to all
        subtypes

        - Specific subtypes using dot notation (e.g., "name.name_given")

        - Standalone terminal types (e.g., "email_address")


        When converted for service use, parent types expand to all their
        terminal subtypes.
    TTSOutputEncoding:
      type: string
      enum:
        - pcm_f32le
        - pcm_s16le
        - pcm_mulaw
        - pcm_alaw
      title: TTSOutputEncoding
    TTSSampleRate:
      type: integer
      enum:
        - 8000
        - 16000
        - 22050
        - 24000
        - 44100
        - 48000
      title: TTSSampleRate
    AgentConfigOverrideInput-Output:
      properties:
        first_message:
          anyOf:
            - type: string
            - type: 'null'
          title: First Message
          description: >-
            If non-empty, the first message the agent will say. If empty, the
            agent waits for the user to start the discussion.
        language:
          anyOf:
            - type: string
            - type: 'null'
          title: Language
          description: >-
            Primary ISO 639-1 language code for voice (e.g. en, hi, kn). Short
            codes only, not regional BCP-47 (e.g. not hi-IN).
        max_conversation_duration_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Max Conversation Duration Message
          description: >-
            If non-empty, the message the agent will send when max conversation
            duration is reached.
        prompt:
          anyOf:
            - $ref: '#/components/schemas/PromptAgentAPIModelOverride-Output'
            - type: 'null'
          description: The prompt for the agent
      type: object
      title: AgentConfigOverride-Input
    BuiltInToolsOutput:
      properties:
        end_call:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The end call tool
        language_detection:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The language detection tool
        transfer_to_agent:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The transfer to agent tool
        transfer_to_number:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The transfer to number tool
        skip_turn:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The skip turn tool
        play_keypad_touch_tone:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The play DTMF tool
        voicemail_detection:
          anyOf:
            - $ref: '#/components/schemas/SystemToolConfigOutput'
            - type: 'null'
          description: The voicemail detection tool
      type: object
      title: BuiltInTools
      description: Built-in system tools for an agent
    CustomGuardrailsConfigInput-Output:
      properties:
        configs:
          items:
            $ref: '#/components/schemas/CustomGuardrailConfig'
          type: array
          title: Configs
      type: object
      title: CustomGuardrailsConfig
    SoftTimeoutConfigOverride:
      properties:
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: Message
          description: >-
            Message to show when soft timeout is reached while waiting for LLM
            response
      type: object
      title: SoftTimeoutConfigOverride
    PromptAgentAPIModelOverride-Input:
      properties:
        prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: Prompt
          description: The prompt for the agent
        llm:
          anyOf:
            - $ref: '#/components/schemas/LLM'
            - type: 'null'
          description: >-
            The LLM to query with the prompt and the chat history. If using data
            residency, the LLM must be supported in the data residency
            environment
        tool_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Tool Ids
          description: A list of IDs of tools used by the agent
        native_mcp_server_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Native Mcp Server Ids
          description: A list of Native MCP server ids to be used by the agent
        knowledge_base:
          anyOf:
            - items:
                $ref: '#/components/schemas/KnowledgeBaseLocator'
              type: array
            - type: 'null'
          title: Knowledge Base
          description: A list of knowledge bases to be used by the agent
      type: object
      title: PromptAgentAPIModelOverride-Input
    SystemToolConfigInput:
      properties:
        type:
          type: string
          const: system
          title: Type
          description: The type of tool
          default: system
        name:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,64}$
          title: Name
        description:
          type: string
          title: Description
          description: >-
            Description of when the tool should be used and what it does. Leave
            empty to use the default description that's optimized for the
            specific tool type.
          default: ''
        response_timeout_secs:
          type: integer
          title: Response Timeout Secs
          description: The maximum time in seconds to wait for the tool call to complete.
          default: 20
        disable_interruptions:
          type: boolean
          title: Disable Interruptions
          description: >-
            If true, the user will not be able to interrupt the agent while this
            tool is running.
          default: false
        force_pre_tool_speech:
          type: boolean
          title: Force Pre Tool Speech
          description: If true, the agent will speak before the tool call.
          default: false
        assignments:
          items:
            $ref: '#/components/schemas/DynamicVariableAssignment'
          type: array
          title: Assignments
          description: >-
            Configuration for extracting values from tool responses and
            assigning them to dynamic variables
        tool_call_sound:
          anyOf:
            - $ref: '#/components/schemas/ToolCallSoundType'
            - type: 'null'
          description: >-
            Predefined tool call sound type to play during tool execution. If
            not specified, no tool call sound will be played.
        tool_call_sound_behavior:
          $ref: '#/components/schemas/ToolCallSoundBehavior'
          description: >-
            Determines when the tool call sound should play. 'auto' only plays
            when there's pre-tool speech, 'always' plays for every tool call.
          default: auto
        tool_error_handling_mode:
          $ref: '#/components/schemas/ToolErrorHandlingMode'
          description: >-
            Controls how tool errors are processed before being shared with the
            agent. 'auto' uses tool-type defaults; 'summarized' sends an LLM
            summary; 'passthrough' sends the raw error; 'hide' does not share
            errors with the agent.
          default: auto
        params:
          oneOf:
            - $ref: '#/components/schemas/EndCallToolConfig'
            - $ref: '#/components/schemas/LanguageDetectionToolConfig'
            - $ref: '#/components/schemas/SkipTurnToolConfig'
            - $ref: '#/components/schemas/TransferToAgentToolConfig'
            - $ref: '#/components/schemas/TransferToNumberToolConfigInput'
            - $ref: '#/components/schemas/PlayDTMFToolConfig'
            - $ref: '#/components/schemas/VoicemailDetectionToolConfig'
          title: Params
          discriminator:
            propertyName: system_tool_type
            mapping:
              end_call:
                $ref: '#/components/schemas/EndCallToolConfig'
              language_detection:
                $ref: '#/components/schemas/LanguageDetectionToolConfig'
              play_keypad_touch_tone:
                $ref: '#/components/schemas/PlayDTMFToolConfig'
              skip_turn:
                $ref: '#/components/schemas/SkipTurnToolConfig'
              transfer_to_agent:
                $ref: '#/components/schemas/TransferToAgentToolConfig'
              transfer_to_number:
                $ref: '#/components/schemas/TransferToNumberToolConfigInput'
              voicemail_detection:
                $ref: '#/components/schemas/VoicemailDetectionToolConfig'
      type: object
      required:
        - name
        - params
      title: SystemToolConfig
      description: >-
        A system tool is a tool that is used to call a system method in the
        server
      examples:
        - description: ''
          name: end_call
          params:
            system_tool_type: end_call
          type: system
        - description: Custom description for specific use case
          name: transfer_to_agent
          params:
            system_tool_type: transfer_to_agent
            transfers: []
          type: system
    KnowledgeBaseDocumentType:
      type: string
      enum:
        - file
        - url
        - text
        - folder
      title: KnowledgeBaseDocumentType
      description: Type of knowledge base document
    DocumentUsageModeEnum:
      type: string
      enum:
        - prompt
        - auto
      title: DocumentUsageModeEnum
      description: |-
        How the document is used in agent context.
        - prompt: Always include full document in LLM context
        - auto: Use RAG to retrieve relevant chunks
    ConvAIEnvVarLocator:
      properties:
        env_var_label:
          type: string
          title: Env Var Label
          description: The environment variable label
      type: object
      required:
        - env_var_label
      title: ConvAIEnvVarLocator
      description: Used to reference an environment variable by label.
      example:
        env_var_label: MY_API_TOKEN
    ConvAIDynamicVariable:
      properties:
        variable_name:
          type: string
          title: Variable Name
          description: The variable name
      type: object
      required:
        - variable_name
      title: ConvAIDynamicVariable
      description: Used to reference a dynamic variable.
      example:
        variable_name: customer_id
    CustomLLMAPIType:
      type: string
      enum:
        - chat_completions
        - responses
      title: CustomLLMAPIType
    app__domains__agents__schemas__EmbeddingModelEnum:
      type: string
      enum:
        - gemini-embedding-001
      title: EmbeddingModelEnum
    SoftTimeoutConfigOverrideConfig:
      properties:
        message:
          type: boolean
          title: Message
          description: Whether to allow overriding the message field.
          default: false
      type: object
      title: SoftTimeoutConfigOverrideConfig
    PromptAgentAPIModelOverrideConfig:
      properties:
        prompt:
          type: boolean
          title: Prompt
          description: Whether to allow overriding the prompt field.
          default: false
        llm:
          type: boolean
          title: Llm
          description: Whether to allow overriding the llm field.
          default: false
        tool_ids:
          type: boolean
          title: Tool Ids
          description: Whether to allow overriding the tool_ids field.
          default: false
        native_mcp_server_ids:
          type: boolean
          title: Native Mcp Server Ids
          description: Whether to allow overriding the native_mcp_server_ids field.
          default: false
        knowledge_base:
          type: boolean
          title: Knowledge Base
          description: Whether to allow overriding the knowledge_base field.
          default: false
      type: object
      title: PromptAgentAPIModelOverrideConfig
    ContentThresholdGuardrail:
      properties:
        is_enabled:
          type: boolean
          title: Is Enabled
          default: false
        threshold:
          anyOf:
            - type: number
            - type: string
              enum:
                - low
                - medium
                - high
          title: Threshold
          default: 0.3
      type: object
      title: ContentThresholdGuardrail
    ThresholdGuardrail:
      properties:
        is_enabled:
          type: boolean
          title: Is Enabled
          default: false
        threshold:
          type: number
          maximum: 1
          minimum: 0
          title: Threshold
          default: 0.3
      type: object
      title: ThresholdGuardrail
    CustomGuardrailConfig:
      properties:
        is_enabled:
          type: boolean
          title: Is Enabled
          default: false
        name:
          type: string
          maxLength: 500
          minLength: 1
          title: Name
          description: User-facing name for this guardrail
        prompt:
          type: string
          maxLength: 10000
          minLength: 1
          title: Prompt
          description: >-
            Instruction describing what to block, e.g. 'don't talk about
            politics'
        execution_mode:
          $ref: '#/components/schemas/GuardrailExecutionMode'
          default: streaming
        trigger_action:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/EndCallTriggerAction'
                - $ref: '#/components/schemas/RetryTriggerAction'
              discriminator:
                propertyName: type
                mapping:
                  end_call:
                    $ref: '#/components/schemas/EndCallTriggerAction'
                  retry:
                    $ref: '#/components/schemas/RetryTriggerAction'
            - type: 'null'
          title: Trigger Action
      type: object
      required:
        - name
        - prompt
      title: CustomGuardrailConfig
    PromptAgentAPIModelOverride-Output:
      properties:
        prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: Prompt
          description: The prompt for the agent
        llm:
          anyOf:
            - $ref: '#/components/schemas/LLM'
            - type: 'null'
          description: >-
            The LLM to query with the prompt and the chat history. If using data
            residency, the LLM must be supported in the data residency
            environment
        tool_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Tool Ids
          description: A list of IDs of tools used by the agent
        native_mcp_server_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Native Mcp Server Ids
          description: A list of Native MCP server ids to be used by the agent
        knowledge_base:
          anyOf:
            - items:
                $ref: '#/components/schemas/KnowledgeBaseLocator'
              type: array
            - type: 'null'
          title: Knowledge Base
          description: A list of knowledge bases to be used by the agent
      type: object
      title: PromptAgentAPIModelOverride-Input
    SystemToolConfigOutput:
      properties:
        type:
          type: string
          const: system
          title: Type
          description: The type of tool
          default: system
        name:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,64}$
          title: Name
        description:
          type: string
          title: Description
          description: >-
            Description of when the tool should be used and what it does. Leave
            empty to use the default description that's optimized for the
            specific tool type.
          default: ''
        response_timeout_secs:
          type: integer
          title: Response Timeout Secs
          description: The maximum time in seconds to wait for the tool call to complete.
          default: 20
        disable_interruptions:
          type: boolean
          title: Disable Interruptions
          description: >-
            If true, the user will not be able to interrupt the agent while this
            tool is running.
          default: false
        force_pre_tool_speech:
          type: boolean
          title: Force Pre Tool Speech
          description: If true, the agent will speak before the tool call.
          default: false
        assignments:
          items:
            $ref: '#/components/schemas/DynamicVariableAssignment'
          type: array
          title: Assignments
          description: >-
            Configuration for extracting values from tool responses and
            assigning them to dynamic variables
        tool_call_sound:
          anyOf:
            - $ref: '#/components/schemas/ToolCallSoundType'
            - type: 'null'
          description: >-
            Predefined tool call sound type to play during tool execution. If
            not specified, no tool call sound will be played.
        tool_call_sound_behavior:
          $ref: '#/components/schemas/ToolCallSoundBehavior'
          description: >-
            Determines when the tool call sound should play. 'auto' only plays
            when there's pre-tool speech, 'always' plays for every tool call.
          default: auto
        tool_error_handling_mode:
          $ref: '#/components/schemas/ToolErrorHandlingMode'
          description: >-
            Controls how tool errors are processed before being shared with the
            agent. 'auto' uses tool-type defaults; 'summarized' sends an LLM
            summary; 'passthrough' sends the raw error; 'hide' does not share
            errors with the agent.
          default: auto
        params:
          oneOf:
            - $ref: '#/components/schemas/EndCallToolConfig'
            - $ref: '#/components/schemas/LanguageDetectionToolConfig'
            - $ref: '#/components/schemas/SkipTurnToolConfig'
            - $ref: '#/components/schemas/TransferToAgentToolConfig'
            - $ref: '#/components/schemas/TransferToNumberToolConfigOutput'
            - $ref: '#/components/schemas/PlayDTMFToolConfig'
            - $ref: '#/components/schemas/VoicemailDetectionToolConfig'
          title: Params
          discriminator:
            propertyName: system_tool_type
            mapping:
              end_call:
                $ref: '#/components/schemas/EndCallToolConfig'
              language_detection:
                $ref: '#/components/schemas/LanguageDetectionToolConfig'
              play_keypad_touch_tone:
                $ref: '#/components/schemas/PlayDTMFToolConfig'
              skip_turn:
                $ref: '#/components/schemas/SkipTurnToolConfig'
              transfer_to_agent:
                $ref: '#/components/schemas/TransferToAgentToolConfig'
              transfer_to_number:
                $ref: '#/components/schemas/TransferToNumberToolConfigOutput'
              voicemail_detection:
                $ref: '#/components/schemas/VoicemailDetectionToolConfig'
      type: object
      required:
        - name
        - params
      title: SystemToolConfig
      description: >-
        A system tool is a tool that is used to call a system method in the
        server
    DynamicVariableAssignment:
      properties:
        source:
          type: string
          const: response
          title: Source
          description: >-
            The source to extract the value from. Currently only 'response' is
            supported.
          default: response
        dynamic_variable:
          type: string
          title: Dynamic Variable
          description: The name of the dynamic variable to assign the extracted value to
        value_path:
          type: string
          title: Value Path
          description: >-
            Dot notation path to extract the value from the source (e.g.,
            'user.name' or 'data.0.id')
        sanitize:
          type: boolean
          title: Sanitize
          description: >-
            If true, this assignment's value will be removed from the tool
            response before sending to the LLM and transcript, but still
            processed for variable assignment.
          default: false
      type: object
      required:
        - dynamic_variable
        - value_path
      title: DynamicVariableAssignment
      description: >-
        Configuration for extracting values from tool responses and assigning
        them to dynamic variables.
      example:
        dynamic_variable: user_name
        sanitize: false
        source: response
        value_path: user.name
    ToolCallSoundType:
      type: string
      enum:
        - typing
        - elevator1
        - elevator2
        - elevator3
        - elevator4
      title: ToolCallSoundType
      description: Predefined sounds to play during tool execution
    ToolCallSoundBehavior:
      type: string
      enum:
        - auto
        - always
      title: ToolCallSoundBehavior
      description: 'Determines how the tool call sound should be played (default: auto).'
    ToolErrorHandlingMode:
      type: string
      enum:
        - auto
        - summarized
        - passthrough
        - hide
      title: ToolErrorHandlingMode
      description: >-
        Controls how tool errors are processed before being shared with the
        agent (default: auto).
    EndCallToolConfig:
      properties:
        system_tool_type:
          type: string
          const: end_call
          title: System Tool Type
          default: end_call
      type: object
      title: EndCallToolConfig
      description: Configuration for end_call system tool
    LanguageDetectionToolConfig:
      properties:
        system_tool_type:
          type: string
          const: language_detection
          title: System Tool Type
          default: language_detection
      type: object
      title: LanguageDetectionToolConfig
      description: Configuration for language_detection system tool
    SkipTurnToolConfig:
      properties:
        system_tool_type:
          type: string
          const: skip_turn
          title: System Tool Type
          default: skip_turn
      type: object
      title: SkipTurnToolConfig
      description: >-
        Allows the agent to explicitly skip its turn.


        This tool should be invoked by the LLM when the user indicates they
        would like

        to think or take a short pause before continuing the conversation.
    TransferToAgentToolConfig:
      properties:
        system_tool_type:
          type: string
          const: transfer_to_agent
          title: System Tool Type
          default: transfer_to_agent
        transfers:
          items:
            $ref: '#/components/schemas/AgentTransfer'
          type: array
          title: Transfers
      type: object
      required:
        - transfers
      title: TransferToAgentToolConfig
      description: Configuration for transfer_to_agent system tool
    TransferToNumberToolConfigInput:
      properties:
        system_tool_type:
          type: string
          const: transfer_to_number
          title: System Tool Type
          default: transfer_to_number
        transfers:
          items:
            $ref: '#/components/schemas/PhoneNumberTransfer'
          type: array
          title: Transfers
        enable_client_message:
          type: boolean
          title: Enable Client Message
          description: >-
            Whether to play a message to the client while they wait for
            transfer. Defaults to true for backward compatibility.
          default: true
      type: object
      required:
        - transfers
      title: TransferToNumberToolConfig
      description: Configuration for transfer_to_number system tool (Input)
    PlayDTMFToolConfig:
      properties:
        system_tool_type:
          type: string
          const: play_keypad_touch_tone
          title: System Tool Type
          default: play_keypad_touch_tone
        use_out_of_band_dtmf:
          type: boolean
          title: Use Out Of Band Dtmf
          description: >-
            If true, send DTMF tones out-of-band using RFC 4733 (useful for SIP
            calls only). If false, send DTMF as in-band audio tones (works for
            all call types).
          default: true
        suppress_turn_after_dtmf:
          type: boolean
          title: Suppress Turn After Dtmf
          description: >-
            If true, the agent will not generate further speech after playing
            DTMF tones. This prevents the agent's speech from interfering with
            IVR systems.
          default: false
      type: object
      title: PlayDTMFToolConfig
      description: |-
        Allows the agent to play DTMF tones during a phone call.

        This tool can be used to interact with automated phone systems, such as
        navigating phone menus, entering extensions, or inputting numeric codes.
    VoicemailDetectionToolConfig:
      properties:
        system_tool_type:
          type: string
          const: voicemail_detection
          title: System Tool Type
          default: voicemail_detection
        voicemail_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Voicemail Message
          description: >-
            Optional message to leave on voicemail when detected. If not
            provided, the call will end immediately when voicemail is detected.
            Supports dynamic variables.
      type: object
      title: VoicemailDetectionToolConfig
      description: >-
        Allows the agent to detect when a voicemail system is encountered.


        This tool should be invoked by the LLM when it detects that the call has
        been

        answered by a voicemail system rather than a human.
    TransferToNumberToolConfigOutput:
      properties:
        system_tool_type:
          type: string
          const: transfer_to_number
          title: System Tool Type
          default: transfer_to_number
        transfers:
          items:
            $ref: '#/components/schemas/PhoneNumberTransfer'
          type: array
          title: Transfers
        enable_client_message:
          type: boolean
          title: Enable Client Message
          description: >-
            Whether to play a message to the client while they wait for
            transfer. Defaults to true for backward compatibility.
          default: true
      type: object
      required:
        - transfers
      title: TransferToNumberToolConfig
      description: Configuration for transfer_to_number system tool (Output)
    AgentTransfer:
      properties:
        agent_id:
          type: string
          title: Agent Id
        condition:
          type: string
          title: Condition
        delay_ms:
          type: integer
          title: Delay Ms
          default: 0
        transfer_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Transfer Message
        enable_transferred_agent_first_message:
          type: boolean
          title: Enable Transferred Agent First Message
          default: false
        is_workflow_node_transfer:
          type: boolean
          title: Is Workflow Node Transfer
          default: false
      type: object
      required:
        - agent_id
        - condition
      title: AgentTransfer
      description: Configuration for transferring to another agent
    PhoneNumberTransfer:
      properties:
        custom_sip_headers:
          items:
            oneOf:
              - $ref: '#/components/schemas/CustomSIPHeader'
              - $ref: '#/components/schemas/CustomSIPHeaderWithDynamicVariable'
            discriminator:
              propertyName: type
              mapping:
                dynamic:
                  $ref: '#/components/schemas/CustomSIPHeaderWithDynamicVariable'
                static:
                  $ref: '#/components/schemas/CustomSIPHeader'
          type: array
          maxItems: 20
          title: Custom Sip Headers
          description: >-
            Custom SIP headers to include when transferring the call. Each
            header can be either a static value or a dynamic variable reference.
        transfer_destination:
          anyOf:
            - $ref: '#/components/schemas/PhoneNumberTransferDestination'
            - $ref: '#/components/schemas/SIPUriTransferDestination'
            - $ref: >-
                #/components/schemas/PhoneNumberDynamicVariableTransferDestination
            - $ref: '#/components/schemas/SIPUriDynamicVariableTransferDestination'
            - type: 'null'
          title: Transfer Destination
        phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Phone Number
          description: >-
            Legacy root-level E.164. Prefer `transfer_destination` with type
            `phone`. Still accepted when loading older agent tool configs.
        condition:
          type: string
          title: Condition
        transfer_type:
          $ref: '#/components/schemas/TransferTypeEnum'
          default: conference
        post_dial_digits:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/PostDialDigitsStatic'
                - $ref: '#/components/schemas/PostDialDigitsDynamicVariable'
              discriminator:
                propertyName: type
                mapping:
                  dynamic:
                    $ref: '#/components/schemas/PostDialDigitsDynamicVariable'
                  static:
                    $ref: '#/components/schemas/PostDialDigitsStatic'
            - type: 'null'
          title: Post Dial Digits
          description: >-
            DTMF digits to send after call connects (e.g., 'ww1234' for
            extension). Can be either a static value or a dynamic variable
            reference. Use 'w' for 0.5s pause. Only supported for Twilio
            transfers.
      type: object
      required:
        - condition
      title: PhoneNumberTransfer
      description: >-
        Configuration for transferring to a phone number.


        Prefer `transfer_destination` (discriminated: phone, sip_uri, dynamic
        variants).

        `phone_number` is only for reading legacy stored rules; new configs
        should use `transfer_destination`.
    CustomSIPHeader:
      properties:
        type:
          type: string
          const: static
          title: Type
          description: Header type discriminator
          default: static
        key:
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$
          title: Key
          description: The SIP header name (e.g., 'X-Customer-ID')
        value:
          type: string
          maxLength: 512
          minLength: 1
          pattern: ^[\x09\x20-\x7E]+$
          title: Value
          description: The header value
      type: object
      required:
        - key
        - value
      title: CustomSIPHeader
      description: Custom SIP header for phone transfers with a static (validated) value.
    CustomSIPHeaderWithDynamicVariable:
      properties:
        type:
          type: string
          const: dynamic
          title: Type
          description: Header type discriminator
        key:
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$
          title: Key
          description: The SIP header name (e.g., 'X-Customer-ID')
        value:
          type: string
          minLength: 1
          title: Value
          description: The dynamic variable name to resolve
      type: object
      required:
        - type
        - key
        - value
      title: CustomSIPHeaderWithDynamicVariable
      description: >-
        Custom SIP header for phone transfers with a dynamic variable reference.


        The value is a variable name that will be resolved at runtime.

        Value is not validated here since it will be substituted with actual
        value later.
    PhoneNumberTransferDestination:
      properties:
        type:
          type: string
          const: phone
          title: Type
          default: phone
        phone_number:
          type: string
          title: Phone Number
      type: object
      required:
        - phone_number
      title: PhoneNumberTransferDestination
      description: Transfer to a static phone number
    SIPUriTransferDestination:
      properties:
        type:
          type: string
          const: sip_uri
          title: Type
          default: sip_uri
        sip_uri:
          type: string
          title: Sip Uri
      type: object
      required:
        - sip_uri
      title: SIPUriTransferDestination
      description: Transfer to a static SIP URI
    PhoneNumberDynamicVariableTransferDestination:
      properties:
        type:
          type: string
          const: phone_dynamic_variable
          title: Type
          default: phone_dynamic_variable
        phone_number:
          type: string
          title: Phone Number
      type: object
      required:
        - phone_number
      title: PhoneNumberDynamicVariableTransferDestination
      description: Transfer to a phone number from dynamic variable
    SIPUriDynamicVariableTransferDestination:
      properties:
        type:
          type: string
          const: sip_uri_dynamic_variable
          title: Type
          default: sip_uri_dynamic_variable
        sip_uri:
          type: string
          title: Sip Uri
      type: object
      required:
        - sip_uri
      title: SIPUriDynamicVariableTransferDestination
      description: Transfer to a SIP URI from dynamic variable
    TransferTypeEnum:
      type: string
      enum:
        - blind
        - conference
        - sip_refer
      title: TransferTypeEnum
      description: Transfer type for phone number transfers
    PostDialDigitsStatic:
      properties:
        type:
          type: string
          const: static
          title: Type
          default: static
        value:
          type: string
          minLength: 1
          pattern: ^[0-9*#wW]*$
          title: Value
          description: >-
            DTMF digits to send after call connects (e.g., 'ww1234' for
            extension)
      type: object
      required:
        - value
      title: PostDialDigitsStatic
      description: Literal DTMF digits sent after the transfer leg connects.
    PostDialDigitsDynamicVariable:
      properties:
        type:
          type: string
          const: dynamic
          title: Type
          default: dynamic
        value:
          type: string
          minLength: 1
          title: Value
          description: The dynamic variable name to resolve
      type: object
      required:
        - value
      title: PostDialDigitsDynamicVariable
      description: Post-dial digit string supplied by a dynamic variable at runtime.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: API key for programmatic access
      in: header
      name: x-api-key
    HTTPBearer:
      type: http
      description: JWT Bearer token for dashboard access
      scheme: bearer

````