info:
  contact:
    email: service@tenios.de
    name: Tenios Support
  description: |-
    With this service, you can automate mass calling campaigns and get statistics.

    ## Usage
    ##### PRECONDITIONS
    You have to be registered Tenios user for using this service

    1. Register an Tenios account (https://tenios.com/)
    2. Get account_sid and account_token in your personal account profile (https://account.tenios.com/profile).
    3. Buy a number in Tenios personal account (https://account.tenios.com/numbers/buy/) and register an alpha name (if you need to send sms)


    ##### USER FLOW
    1. Create scenario
    2. Create campaign
    3. Add contacts
    4. Create instant or delayed attempt
    5. Get attempt statistics
    6. Get communication report
    7. Get contact report

    See the documentation of API interface description below
  title: Voicebot API
  version: "1.0"
  x-logo:
    altText: Tenios logo
    url: https://www.tenios.de/wp-content/uploads/2022/10/Tenios-Part-of-apifonica-220x99-1.png
openapi: 3.0.0
security:
  - httpBasic: []
servers:
  - url: https://api-voicebot.tenios.com/
    variables: {}
tags:
  - description: |-
      Scenario is the voicebot algorithm

      Below you can see voicebot Scenario API
    name: Scenario
  - description: Below you can see voicebot Сampaign API
    name: Campaign
  - description: |-
      Contacts are the recipients of a call by a voice bot

      Below you can see voicebot Contact API
    name: Contact
  - description: |-
      An attempt is one campaign launch for all created contacts
      Below you can see voicebot Attempt API
    name: Attempt
  - description: Below you can see voicebot Profile API
    name: Profile
paths:
  /profile:
    post:
      description: |
        Use this endpoint to create profile.
      operationId: ProfileService_CreateProfile
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proto_profileProfile'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_profileProfile'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Create profile
      tags:
        - Profile
  /profile/{id}:
    delete:
      description: |
        Use this endpoint to delete profile.
      operationId: ProfileService_DeleteProfile
      parameters:
        - description: ID
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Delete profile
      tags:
        - Profile
    get:
      description: |
        Use this endpoint to get profile.
      operationId: ProfileService_GetProfile
      parameters:
        - description: ID
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_profileProfile'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get profile
      tags:
        - Profile
  /profile/{profile.id}:
    patch:
      description: |
        Use this endpoint to patch profile.
      operationId: ProfileService_PatchProfile
      parameters:
        - description: ID
          in: path
          name: profile.id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              example:
                creation_time: "2023-04-21T12:44:23.990Z"
                email: test@example.com
                id: acce89e8156-7d86-3234-a25f-4a6d9c305927
                timezone: Europe/Berlin
                update_time: "2023-04-21T12:44:23.990Z"
              properties:
                creation_time:
                  description: Creation time
                  format: date-time
                  type: string
                email:
                  description: Email
                  type: string
                timezone:
                  description: Timezone
                  type: string
                update_time:
                  description: Update time
                  format: date-time
                  type: string
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_profileProfile'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Patch profile
      tags:
        - Profile
  /v1/accounts/{sid}:
    get:
      description: |
        Use this endpoint to get profile info.
      operationId: AccountService_GetAccount
      parameters:
        - in: path
          name: sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_accountAccount'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get account
      tags:
        - Account
  /v1/campaign:
    get:
      description: |
        Use this endpoint to get a campaign list.
      operationId: Campaign_ListCampaigns
      parameters:
        - description: Filter by archived flag
          in: query
          name: filter.archived
          required: false
          schema:
            type: string
        - description: Filter by campaign sid
          in: query
          name: filter.sid
          required: false
          schema:
            type: string
        - description: Filter by scenario sid
          in: query
          name: filter.scenario_sid
          required: false
          schema:
            type: string
        - description: Filter by description
          in: query
          name: filter.description
          required: false
          schema:
            type: string
        - description: Filter by campaign number
          in: query
          name: filter.number
          required: false
          schema:
            type: string
        - description: per page items
          in: query
          name: options.limit
          required: false
          schema:
            format: int64
            type: string
        - description: items offset
          in: query
          name: options.offset
          required: false
          schema:
            format: int64
            type: string
        - description: items sort
          in: query
          name: options.order_by
          required: false
          schema:
            format: int64
            type: string
        - description: per page items
          in: query
          name: limit
          required: false
          schema:
            type: string
        - description: items offset
          in: query
          name: offset
          required: false
          schema:
            type: string
        - description: items sort
          in: query
          name: order_by
          required: false
          schema:
            type: string
        - description: Filter by archived flag
          in: query
          name: archived
          required: false
          schema:
            type: string
        - description: Filter by campaign sid
          in: query
          name: sid
          required: false
          schema:
            type: string
        - description: Filter by scenario sid
          in: query
          name: scenario_sid
          required: false
          schema:
            type: string
        - description: Filter by description
          in: query
          name: description
          required: false
          schema:
            type: string
        - description: Filter by campaign number
          in: query
          name: number
          required: false
          schema:
            type: string
        - description: filter_or param expects list of fields joined by comma to be searched for through
          in: query
          name: filter_or
          required: false
          schema:
            type: string
        - description: filter_query is a query string for filter_or fields
          in: query
          name: filter_query
          required: false
          schema:
            type: string
        - description: Filter by status
          in: query
          name: status
          required: false
          schema:
            type: string
        - description: Filter by pool sid
          in: query
          name: pool_sid
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Campaigns list.
                items:
                  $ref: '#/components/schemas/proto_campaignGetCampaignReply'
                type: array
          description: Campaigns list.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get campaign list
      tags:
        - Campaign
    post:
      description: |
        Use this endpoint to create a campaign.
      operationId: Campaign_CreateCampaign
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proto_campaignCreateCampaignRequest'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_campaignCreateCampaignReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Create campaign
      tags:
        - Campaign
  /v1/campaign/{campaign_id}:
    delete:
      description: |
        Use this endpoint to delete a campaign.
      operationId: Campaign_DeleteCampaign
      parameters:
        - description: Campaign ID.
          in: path
          name: campaign_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_campaignDeleteCampaignReply'
          description: A successful response.
        "204":
          content:
            application/json:
              examples:
                response:
                  value: ""
              schema: {}
          description: ""
        "404":
          content:
            application/json:
              examples:
                response:
                  value:
                    code: ERR012
                    message: campaign not found
                    reason: Resource not found
              schema: {}
          description: ""
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Delete campaign
      tags:
        - Campaign
    get:
      description: |
        Use this endpoint to get a campaign.
      operationId: Campaign_GetCampaign
      parameters:
        - description: Campaign ID.
          in: path
          name: campaign_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_campaignGetCampaignReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get campaign
      tags:
        - Campaign
    put:
      description: |
        Use this endpoint to update a campaign.
      operationId: Campaign_UpdateCampaign
      parameters:
        - description: Campaign ID
          in: path
          name: campaign_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignUpdateCampaignBody'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_campaignUpdateCampaignReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Update campaign
      tags:
        - Campaign
  /v1/campaign/{campaign_id}/archive:
    post:
      description: |
        Use this endpoint to archive a campaign.
      operationId: Campaign_ArchiveCampaign
      parameters:
        - description: Campaign ID.
          in: path
          name: campaign_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_campaignArchiveCampaignReply'
          description: A successful response.
        "204":
          content:
            application/json:
              examples:
                response:
                  value: ""
              schema: {}
          description: ""
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Archive campaign
      tags:
        - Campaign
  /v1/campaign/{campaign_id}/communication:
    delete:
      description: Use this endpoint to delete all communications by campaign
      operationId: CommunicationService_DeleteAllCommunications
      parameters:
        - description: Campaign ID
          in: path
          name: campaign_id
          required: true
          schema:
            type: string
        - description: Status
          in: query
          name: status
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Delete all communications by campaign
      tags:
        - Communication
    post:
      description: Use this endpoint to single start communication
      operationId: CommunicationService_StartCommunication
      parameters:
        - description: Campaign ID
          in: path
          name: campaign_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommunicationServiceStartCommunicationBody'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_communicationStartCommunicationReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Start communication
      tags:
        - Communication
  /v1/campaign/{campaign_id}/communication-batch:
    post:
      description: 'Use this endpoint to start multiple communications '
      operationId: CommunicationService_StartBatchCommunication
      parameters:
        - description: Campaign ID
          in: path
          name: campaign_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              description: Communicationdata
              items:
                $ref: '#/components/schemas/proto_communicationCommunicationData'
              type: array
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_communicationStartBatchCommunicationsReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Start multiple communications
      tags:
        - Communication
  /v1/campaign/{campaign_id}/communication/{communication_id}:
    delete:
      description: Use this endpoint to delete single communication
      operationId: CommunicationService_DeleteCommunication
      parameters:
        - description: Campaign ID
          in: path
          name: campaign_id
          required: true
          schema:
            type: string
        - description: Communication ID
          in: path
          name: communication_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Delete communication
      tags:
        - Communication
  /v1/campaign/{campaign_id}/communication/{communication_id}/cancel:
    post:
      description: Use this endpoint to cancel a communication. Sets the communication status to canceled without deleting it from the database. Canceled communications will not be processed.
      operationId: CommunicationService_CancelCommunication
      parameters:
        - description: Campaign ID
          in: path
          name: campaign_id
          required: true
          schema:
            type: string
        - description: Communication ID
          in: path
          name: communication_id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Cancel communication
      tags:
        - Communication
  /v1/campaign/{campaign_id}/communication/scheduled:
    post:
      description: Use this endpoint to create scheduled
      operationId: CommunicationService_CreateScheduledCommunication
      parameters:
        - description: Campaign ID
          in: path
          name: campaign_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommunicationServiceCreateScheduledCommunicationBody'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_communicationCreateCommunicationReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Create scheduled communication
      tags:
        - Communication
  /v1/campaign/{campaign_sid}/attempt:
    get:
      description: Use this endpoint to get list of attempts
      operationId: Attempt_ListAttempts
      parameters:
        - description: Campaign ID.
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Array of attempts.
                items:
                  $ref: '#/components/schemas/proto_attemptAttemptReply'
                type: array
          description: Array of attempts.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: List of attempts
      tags:
        - Attempt
    post:
      description: Use this endpoint to create an attempt
      operationId: Attempt_CreateAttempt
      parameters:
        - description: Campaign ID.
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttemptCreateAttemptBody'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_attemptAttemptReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Create attempt
      tags:
        - Attempt
  /v1/campaign/{campaign_sid}/attempt/{attempt_sid}:
    delete:
      description: Use this endpoint to delete an attempt
      operationId: Attempt_DeleteAttempt
      parameters:
        - description: Campaign ID.
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - description: Attempt ID.
          in: path
          name: attempt_sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_attemptDeleteAttemptReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Delete attempt
      tags:
        - Attempt
    get:
      description: Use this endpoint to get an attempt
      operationId: Attempt_GetAttempt
      parameters:
        - description: Campaign ID.
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - description: Attempt ID.
          in: path
          name: attempt_sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_attemptAttemptReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get attempt
      tags:
        - Attempt
    put:
      description: Use this endpoint to update an attempt
      operationId: Attempt_UpdateAttempt
      parameters:
        - description: Campaign ID.
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - description: Attempt ID to update
          in: path
          name: attempt_sid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttemptUpdateAttemptBody'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_attemptAttemptReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Update attempt
      tags:
        - Attempt
  /v1/campaign/{campaign_sid}/attempt/{attempt_sid}/cancel:
    post:
      description: Use this endpoint to cancel an attempt
      operationId: Attempt_CancelAttempt
      parameters:
        - description: Campaign ID.
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - description: Attempt ID.
          in: path
          name: attempt_sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_attemptAttemptReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Cancel attempt
      tags:
        - Attempt
  /v1/campaign/{campaign_sid}/attempt/{attempt_sid}/stat:
    get:
      description: Use this endpoint to get attempt statistics
      operationId: Attempt_GetAttemptStat
      parameters:
        - description: Campaign ID.
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - description: Attempt ID.
          in: path
          name: attempt_sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_attemptGetAttemptStatReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get attempt statistics
      tags:
        - Attempt
  /v1/campaign/{campaign_sid}/contact:
    delete:
      description: Use this endpoint to delete batch of contacts.
      operationId: Contact_DeleteBatchContacts
      parameters:
        - in: path
          name: campaign_sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Delete batch contacts
      tags:
        - Contact
    get:
      description: Use this endpoint to list contacts.
      operationId: Contact_ListContacts
      parameters:
        - in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - in: query
          name: options.limit
          required: false
          schema:
            format: int64
            type: string
        - in: query
          name: options.order_by
          required: false
          schema:
            format: int64
            type: string
        - description: per page items
          in: query
          name: limit
          required: false
          schema:
            type: string
        - description: items sort
          in: query
          name: order_by
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/proto_contactGetContactReply'
                type: array
          description: ""
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: List contacts
      tags:
        - Contact
    post:
      description: Use this endpoint to create a contact.
      operationId: Contact_CreateContact
      parameters:
        - description: Campaign ID
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactCreateContactBody'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_contactCreateContactReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Create contact
      tags:
        - Contact
  /v1/campaign/{campaign_sid}/contact/{contact_sid}:
    delete:
      description: Use this endpoint to delete a contact.
      operationId: Contact_DeleteContact
      parameters:
        - in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - in: path
          name: contact_sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Delete contact
      tags:
        - Contact
    get:
      description: Use this endpoint to get contact.
      operationId: Contact_GetContact
      parameters:
        - in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - in: path
          name: contact_sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_contactGetContactReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get contact
      tags:
        - Contact
    put:
      description: Use this endpoint to update a contact.
      operationId: Contact_UpdateContact
      parameters:
        - in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - in: path
          name: contact_sid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactUpdateContactBody'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_contactUpdateContactReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Update contact
      tags:
        - Contact
  /v1/campaign/{campaign_sid}/contact/batch:
    post:
      description: Use this endpoint to create a batch of contacts.
      operationId: Contact_CreateBatchContacts
      parameters:
        - in: path
          name: campaign_sid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/proto_contactContactBatch'
              type: array
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_contactCreateBatchContactsReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Create contact batch
      tags:
        - Contact
  /v1/campaign/{campaign_sid}/contact/stat:
    get:
      description: Use this endpoint to get contact stat.
      operationId: Contact_GetContactStat
      parameters:
        - in: path
          name: campaign_sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_contactGetContactStatReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get contact stat
      tags:
        - Contact
  /v1/campaign/{campaign_sid}/stat:
    get:
      description: |
        Use this endpoint to get a campaign statistics.
      operationId: Campaign_GetCampaignStat
      parameters:
        - description: Campaign ID.
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_campaignGetCampaignStatReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get campaign statistics
      tags:
        - Campaign
  /v1/communication/{id}:
    get:
      description: Use this endpoint to get communication
      operationId: CommunicationService_GetCommunication
      parameters:
        - description: Communication ID
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_communicationGetCommunicationReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get communication
      tags:
        - Communication
  /v1/communication/{id}/recording:
    get:
      description: Returns a time-limited signed URL for the call recording associated with the communication.
      operationId: CommunicationService_GetCommunicationRecording
      parameters:
        - description: Communication ID
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_communicationGetCommunicationRecordingReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get signed URL for the communication recording
      tags:
        - Communication
  /v1/public/data/language:
    get:
      description: Returns a list of all available languages for STT.
      operationId: STT_GetLanguages
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_sttGetLanguagesResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: Get all available languages
      tags:
        - STT Public
  /v1/public/data/stt:
    get:
      description: |
        Returns a flat list of all available STT engine-model-language combinations.

        #### Supported Engines
        * gsr - Google Speech Recognition V1
        * gsr@v2 - Google Speech Recognition V2 (Chirp models)
        * azuresr - Azure Speech Recognition
        * experimental - Yandex SpeechKit V3
        * mohir - Mohir Speech Recognition

        #### Response Fields
        * `language` - Language code (e.g., en-US, pl-PL, lv-LV)
        * `language_name` - English name (e.g., 'English (United States)', 'Polish (Poland)')
        * `language_local_name` - Native name (e.g., 'English (United States)', 'polski (Polska)', 'latviešu (Latvija)')
        * `model` - Model identifier
        * `model_name` - Human-readable model name (optional)
        * `engine` - Engine name
        * `is_default_model` - Shows whether it's default model or not

        #### Filtering
        All filters are optional:
        * `language` - Filter by language code
        * `engine` - Filter by engine name
        * `model` - Filter by model name
        * `limit` - Max items (default: 500, max: 1000)
        * `offset` - Pagination offset
      operationId: STT_GetRecognitionModelOptions
      parameters:
        - description: Filter by language code
          in: query
          name: language
          required: false
          schema:
            type: string
        - description: Filter by model name
          in: query
          name: model
          required: false
          schema:
            type: string
        - description: Filter by engine name
          in: query
          name: engine
          required: false
          schema:
            type: string
        - description: 'Maximum number of items to return (default: 500, max: 1000)'
          in: query
          name: limit
          required: false
          schema:
            format: int32
            type: integer
        - description: 'Pagination offset (default: 0)'
          in: query
          name: offset
          required: false
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_sttGetRecognitionModelOptionsResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: Get STT recognition model options
      tags:
        - STT Public
  /v1/report:
    get:
      description: Use this endpoint to get communications report by account
      operationId: ReportCommunicationService_GetReportCommunication
      parameters:
        - in: query
          name: campaign_sid
          required: false
          schema:
            type: string
        - in: query
          name: attempt_sid
          required: false
          schema:
            type: string
        - in: query
          name: from
          required: false
          schema:
            type: string
        - in: query
          name: to
          required: false
          schema:
            type: string
        - in: query
          name: contact_sid
          required: false
          schema:
            type: string
        - in: query
          name: group
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_report_contactReportCommunication'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get communication report by account
      tags:
        - ReportCommunication
  /v1/report/campaign/{campaign_sid}/contact/generate:
    get:
      description: Use this endpoint to get contact
      operationId: ReportContactService_GetReportContact
      parameters:
        - in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - in: query
          name: attempt_sid
          required: false
          schema:
            type: string
        - in: query
          name: from
          required: false
          schema:
            type: string
        - in: query
          name: to
          required: false
          schema:
            type: string
        - in: query
          name: account_sid
          required: false
          schema:
            type: string
        - in: query
          name: contact_sid
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_report_contactReportContact'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get contact report
      tags:
        - ReportContact
  /v1/report/campaign/{campaign_sid}/generate:
    get:
      description: Use this endpoint to get communications report by campaign
      operationId: ReportCommunicationService_GetReportCommunicationByCampaign
      parameters:
        - in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - in: query
          name: attempt_sid
          required: false
          schema:
            type: string
        - in: query
          name: from
          required: false
          schema:
            type: string
        - in: query
          name: to
          required: false
          schema:
            type: string
        - in: query
          name: contact_sid
          required: false
          schema:
            type: string
        - in: query
          name: group
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_report_contactReportCommunication'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get communication report by campaign
      tags:
        - ReportCommunication
  /v1/scenario:
    get:
      description: Use this endpoint to get scenario list
      operationId: Scenario_GetScenariosList
      parameters:
        - in: query
          name: filter.type
          required: false
          schema:
            type: string
        - in: query
          name: filter.account_sid
          required: false
          schema:
            type: string
        - in: query
          name: filter.name
          required: false
          schema:
            type: string
        - in: query
          name: filter.sid
          required: false
          schema:
            type: string
        - in: query
          name: options.limit
          required: false
          schema:
            format: int64
            type: string
        - in: query
          name: options.offset
          required: false
          schema:
            format: int64
            type: string
        - in: query
          name: options.order
          required: false
          schema:
            format: int64
            type: string
        - description: limit result
          in: query
          name: limit
          required: false
          schema:
            type: string
        - description: offset result
          in: query
          name: offset
          required: false
          schema:
            type: string
        - description: sort result
          in: query
          name: order_by
          required: false
          schema:
            type: string
        - description: Account ID
          in: query
          name: account_sid
          required: false
          schema:
            type: string
        - description: 'Type of scenario, support one of: survey, notify_input, notify_input_stt, notify_event, custom, survey_stt, survey_v3, constructor'
          in: query
          name: type
          required: false
          schema:
            type: string
        - description: Scenario ID
          in: query
          name: sid
          required: false
          schema:
            type: string
        - description: Scenario description
          in: query
          name: name
          required: false
          schema:
            type: string
        - description: Generic search's list of fields to search through
          in: query
          name: filter_or
          required: false
          schema:
            type: string
        - description: Generic search's querystring
          in: query
          name: filter_query
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Scenarios
                items:
                  allOf:
                    - $ref: '#/components/schemas/proto_scenarioScenarioReply'
                    - type: object
                type: array
          description: Scenarios
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get scenario list
      tags:
        - Scenario
    post:
      description: "Use this endpoint to create a scenario.\nThe new scenario will be assigned a unique ID (scenario_sid), which can be used to look it up, create a campaign later.\n#### Scenario type\nThere are several predefined scenario types:\n* ***notify_event*** - you can set messages to deliver when user answers a call or misses it\n* ***notify_input_stt*** - you can set actions to perform when user answers a question\n* ***survey_v3*** - you can create questionnaires and qualify respondents based on their answers\n* ***custom*** - you can create custom scenario directly through VFSM specification\n* ***constructor*** - NEW constructor schema with bricks, outputs and tree nodes that allow to build scenario from connecting blocks with it's own properties, see \"Constructor\" section below \n\n#### Constructor\nConstructor has number of different brick types supported, see detailed explanation below inside brick section.\nConstructor ***brick*** section has fields:\n* id - unique id of brick\n* description - description that can be used in reports\n* properties - unique object of the properties for brick type\n* outputs - list of declared outputs, every brick can have list of predefined (system) outputs and dynamic outputs (e.g. output for one of the answers in the question)\n\nConstructor ***forest*** section contains list of so called ***trees*** ('***scenarios***' in other words) that allows to build re-usable scenario sections.\nTree contains array of nodes that store information about related ***brick*** (with it's outputs) and ***links***.\n***Links*** are the references to nodes for every declared output of brick. This creates a flow between nodes and instructs what next action must be done by voicebot during the communication"
      operationId: Scenario_CreateScenario
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proto_scenarioCreateRequest'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioScenarioReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Create scenario
      tags:
        - Scenario
  /v1/scenario/{id}:
    delete:
      description: Use this endpoint to delete scenario
      operationId: Scenario_DeleteScenario
      parameters:
        - description: Scenario ID
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioDeleteReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Delete scenario
      tags:
        - Scenario
    get:
      description: Use this endpoint to get scenario
      operationId: Scenario_GetScenario
      parameters:
        - description: Scenario ID
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioScenarioReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get scenario
      tags:
        - Scenario
    put:
      description: Use this endpoint to update scenario
      operationId: Scenario_UpdateScenario
      parameters:
        - description: Scenario ID
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              example:
                constructor:
                  bricks:
                    assignment:
                      v1:
                        - description: assignment_1
                          id: assignment_1
                          outputs:
                            - description: Complete
                              type: complete
                          properties:
                            variables:
                              - value: my dear man
                                variable: name
                              - value: "0"
                                variable: q1_empty
                              - value: "0"
                                variable: q1_invalid
                        - description: assignment_2
                          id: assignment_2
                          outputs:
                            - description: Complete
                              type: complete
                          properties:
                            variables:
                              - value: "0"
                                variable: q2_empty
                              - value: "0"
                                variable: q2_invalid
                    audio:
                      v1:
                        - description: audio_1
                          id: audio_1
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: incomplete
                          properties:
                            mode: tts
                            tts_properties:
                              engine: google
                              language: en-US
                              text: Hello! This is demo of scenario constructor. Today we will test your geography and small talks knowledge
                              voice: en-US-Wavenet-B
                        - description: audio_2
                          id: audio_2
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: incomplete
                          properties:
                            mode: tts
                            tts_properties:
                              engine: google
                              language: en-US
                              text: Yes, you're right! But very soon we will create call transfer brick and we'll be able to connect you with manager. Lets get back to our question now?
                              voice: en-US-Wavenet-B
                        - description: audio_3
                          id: audio_3
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: incomplete
                          properties:
                            mode: tts
                            tts_properties:
                              engine: google
                              language: en-US
                              text: I will keep your answer and use it on occasion. Lets get back to our question now?
                              voice: en-US-Wavenet-B
                        - description: audio_4
                          id: audio_4
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: incomplete
                          properties:
                            mode: tts
                            tts_properties:
                              engine: google
                              language: en-US
                              text: Well, since you don't want to talk about tea, lets get back to our question?
                              voice: en-US-Wavenet-B
                        - description: audio_5
                          id: audio_5
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: incomplete
                          properties:
                            mode: tts
                            tts_properties:
                              engine: google
                              language: en-US
                              text: I didn't hear it. {{user_variable.name}}, can we try again?
                              voice: en-US-Wavenet-B
                        - description: audio_6
                          id: audio_6
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: incomplete
                          properties:
                            mode: tts
                            tts_properties:
                              engine: google
                              language: en-US
                              text: Your answer is wrong. Lets try again once you'll improve your knowledge of geography.
                              voice: en-US-Wavenet-B
                        - description: audio_7
                          id: audio_7
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: incomplete
                          properties:
                            mode: tts
                            tts_properties:
                              engine: google
                              language: en-US
                              text: 'Pretty good, probably you had "A" mark in the school. Hope you had time to test our voicebot functionality. Have a nice day. '
                              voice: en-US-Wavenet-B
                        - description: audio_8
                          id: audio_8
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: incomplete
                          properties:
                            mode: tts
                            tts_properties:
                              engine: google
                              language: en-US
                              text: Okay, first question
                              voice: en-US-Wavenet-B
                        - description: audio_9
                          id: audio_9
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: incomplete
                          properties:
                            mode: tts
                            tts_properties:
                              engine: google
                              language: en-US
                              text: Let's move on to the second question.
                              voice: en-US-Wavenet-B
                        - description: audio_10
                          id: audio_10
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: incomplete
                          properties:
                            mode: tts
                            tts_properties:
                              engine: google
                              language: en-US
                              text: Seems like you don't want to talk today. Lets try the next time. Have a nice day.
                              voice: en-US-Wavenet-B
                    audio_file:
                      v1:
                        - description: audio_file_1
                          id: audio_file_1
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: incomplete
                          properties:
                            url: https://storage.tenios.com/Weegree-IVR-RO-7-1648806041.wav
                    audio_tts:
                      v1:
                        - description: audio_tts_1
                          id: audio_tts_1
                          outputs:
                            - description: Complete
                              type: complete
                            - description: Incomplete
                              type: incomplete
                          properties:
                            engine: google
                            language: en-US
                            text: Hello
                            voice: en-US-Wavenet-B
                    condition_group:
                      v1:
                        - description: condition_group_q1
                          id: condition_group_q1
                          outputs:
                            - description: ""
                              type: question_1_exit
                            - description: ""
                              type: question_1_repeat
                          properties:
                            outputs:
                              - elements:
                                  - operator: '>'
                                    value: "2"
                                    variable: '{{user_variable.q1_empty}}'
                                  - operator: '>'
                                    value: "2"
                                    variable: '{{user_variable.q1_invalid}}'
                                groupOperator: OR
                                name: question_1_exit
                              - elements:
                                  - operator: <
                                    value: "3"
                                    variable: '{{user_variable.q1_empty}}'
                                  - operator: <
                                    value: "3"
                                    variable: '{{user_variable.q1_invalid}}'
                                groupOperator: AND
                                name: question_1_repeat
                              - groupOperator: AND
                                name: fail
                        - description: condition_group_q2
                          id: condition_group_q2
                          outputs:
                            - description: ""
                              type: question_2_exit
                            - description: ""
                              type: question_2_repeat
                          properties:
                            outputs:
                              - elements:
                                  - operator: '>'
                                    value: "2"
                                    variable: '{{user_variable.q2_empty}}'
                                  - operator: '>'
                                    value: "2"
                                    variable: '{{user_variable.q2_invalid}}'
                                groupOperator: OR
                                name: question_2_exit
                              - elements:
                                  - operator: <
                                    value: "3"
                                    variable: '{{user_variable.q2_empty}}'
                                  - operator: <
                                    value: "3"
                                    variable: '{{user_variable.q2_invalid}}'
                                groupOperator: AND
                                name: question_2_repeat
                              - groupOperator: AND
                                name: fail
                    end:
                      v1:
                        - description: end_tree_1
                          id: end_tree_1
                        - description: end_tree_disqualified
                          id: end_tree_disqualified
                        - description: end_tree_robot
                          id: end_tree_robot
                        - description: end_tree_tea
                          id: end_tree_tea
                    goal:
                      v1:
                        - description: goal_qualified
                          id: goal_qualified
                          outputs:
                            - description: ""
                              type: complete
                          properties:
                            goal: qualified
                            priority: 8
                        - description: goal_disqualified
                          id: goal_disqualified
                          outputs:
                            - description: ""
                              type: complete
                          properties:
                            goal: disqualified
                            priority: 8
                    inbound_call:
                      v1:
                        - description: inbound_call
                          id: inbound_call
                          outputs:
                            - description: Success
                              type: success
                            - description: Fail
                              type: fail
                          properties: {}
                    increment:
                      v1:
                        - description: increment_q1_empty
                          id: increment_q1_empty
                          outputs:
                            - description: Complete
                              type: complete
                          properties:
                            variables:
                              - variable: q1_empty
                        - description: increment_q1_invalid
                          id: increment_q1_invalid
                          outputs:
                            - description: Complete
                              type: complete
                          properties:
                            variables:
                              - variable: q1_invalid
                        - description: increment_q2_empty
                          id: increment_q2_empty
                          outputs:
                            - description: Complete
                              type: complete
                          properties:
                            variables:
                              - variable: q2_empty
                        - description: increment_q2_invalid
                          id: increment_q2_invalid
                          outputs:
                            - description: Complete
                              type: complete
                          properties:
                            variables:
                              - variable: q2_invalid
                    outbound_call:
                      v1:
                        - description: outbound_call
                          id: outbound_call
                          outputs:
                            - description: Success
                              type: success
                            - description: Fail
                              type: fail
                            - description: Voicemail
                              type: voicemail
                          properties:
                            is_voicemail: true
                    question:
                      v1:
                        - description: q1
                          id: q1
                          outputs:
                            - description: ""
                              type: valid
                            - description: ""
                              type: incomplete
                            - description: ""
                              type: empty
                          properties:
                            description: Question
                            dtmf_properties:
                              dtmf_timeout: 10
                              finish_on_key: '#'
                              max_symbols: 1
                              min_symbols: 1
                              no_input_timeout: 5
                            fallback_empty:
                              fallback_empty_item:
                                - is_interruptible: false
                                  is_repeat_statement: true
                            fallback_invalid:
                              fallback_invalid_item:
                                - is_interruptible: false
                                  is_repeat_statement: true
                            input_mode: dtmf
                            statement:
                              audio:
                                mode: tts
                                tts:
                                  text: Rate this quiz from 1 to 9 by pressing dial pad button
                              is_interruptible: true
                            stt_properties:
                              language: en-GB
                              no_input_timeout: 3.5
                              speech_timeout: 2
                            tts_properties:
                              engine: google
                              language: en-US
                              voice: en-US-Wavenet-E
                            type: open
                        - description: q2
                          id: q2
                          outputs:
                            - description: ""
                              type: valid
                            - description: ""
                              type: incomplete
                            - description: ""
                              type: empty
                          properties:
                            description: Question
                            dtmf_properties:
                              dtmf_timeout: 10
                              finish_on_key: '#'
                              max_symbols: 1
                              min_symbols: 1
                              no_input_timeout: 5
                            fallback_empty:
                              fallback_empty_item:
                                - is_interruptible: false
                                  is_repeat_statement: true
                            fallback_invalid:
                              fallback_invalid_item:
                                - is_interruptible: false
                                  is_repeat_statement: true
                            input_mode: speech
                            statement:
                              audio:
                                mode: tts
                                tts:
                                  text: Rate this quiz
                              is_interruptible: true
                            stt_properties:
                              language: en-GB
                              no_input_timeout: 3.5
                              recognition_shift:
                                direction: backward
                                duration: 5.5
                              speech_timeout: 2
                            tts_properties:
                              engine: google
                              language: en-US
                              voice: en-US-Wavenet-E
                            type: open
                    sms:
                      v1:
                        - description: sms_qualified
                          id: sms_qualified
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: error
                          properties:
                            from: '{{campaign.sms_number}}'
                            text: Qualified
                            to: '{{recipient.number}}'
                        - description: sms_disqualified
                          id: sms_disqualified
                          outputs:
                            - description: ""
                              type: complete
                            - description: ""
                              type: error
                          properties:
                            from: '{{campaign.sms_number}}'
                            text: Not qualified
                            to: '{{recipient.number}}'
                    start_call:
                      v1:
                        - description: start_call
                          id: start_call
                          outputs:
                            - description: Outbound
                              type: outbound
                            - description: Inbound
                              type: inbound
                          properties:
                            stt_general:
                              language: en-US
                            tts_general:
                              engine: google
                              language: en-US
                              voice: en-US-Wavenet-B
                  forest:
                    trees:
                      - description: tree number one
                        nodes:
                          - brick:
                              id: start_call
                              type: start_call
                              version: v1
                            id: 001_start
                            links:
                              - output_type: outbound
                                reference:
                                  node_id: 005_outbound
                                  tree_id: tree_1
                              - output_type: inbound
                                reference:
                                  node_id: 006_inbound
                                  tree_id: tree_1
                          - brick:
                              id: outbound_call
                              type: outbound_call
                              version: v1
                            id: 005_outbound
                            links:
                              - output_type: success
                                reference:
                                  node_id: 010_audio
                                  tree_id: tree_1
                              - output_type: fail
                                reference:
                                  node_id: 010_audio
                                  tree_id: tree_1
                              - output_type: voicemail
                                reference:
                                  node_id: 010_audio
                                  tree_id: tree_1
                          - brick:
                              id: inbound_call
                              type: inbound_call
                              version: v1
                            id: 006_inbound
                            links:
                              - output_type: success
                                reference:
                                  node_id: 010_audio
                                  tree_id: tree_1
                              - output_type: fail
                                reference:
                                  node_id: 010_audio
                                  tree_id: tree_1
                          - brick:
                              id: audio_file_1
                              type: audio_file
                              version: v1
                            id: 010_audio
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 170_audio
                                  tree_id: tree_1
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: q1
                              type: question
                              version: v1
                            id: 020_question
                            links:
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                              - output_type: valid
                                reference:
                                  node_id: 240_increment
                                  tree_id: tree_1
                              - output_type: empty
                                reference:
                                  node_id: 230_increment
                                  tree_id: tree_1
                          - brick:
                              id: goal_qualified
                              type: goal
                              version: v1
                            id: 030_goal_qualified
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 040_sms_qualified
                                  tree_id: tree_1
                          - brick:
                              id: sms_qualified
                              type: sms
                              version: v1
                            id: 040_sms_qualified
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 300_end
                                  tree_id: tree_1
                              - output_type: error
                                reference:
                                  node_id: 300_end
                                  tree_id: tree_1
                          - brick:
                              id: audio_5
                              type: audio
                              version: v1
                            id: 130_audio
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 020_question
                                  tree_id: tree_1
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: audio_6
                              type: audio
                              version: v1
                            id: 140_audio
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: audio_5
                              type: audio
                              version: v1
                            id: 150_audio
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 020_question
                                  tree_id: tree_1
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: audio_7
                              type: audio
                              version: v1
                            id: 160_audio
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 030_goal_qualified
                                  tree_id: tree_1
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: audio_8
                              type: audio
                              version: v1
                            id: 170_audio
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 190_assignment
                                  tree_id: tree_1
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: audio_9
                              type: audio
                              version: v1
                            id: 180_audio
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 270_assignment
                                  tree_id: tree_1
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: audio_10
                              type: audio
                              version: v1
                            id: 220_audio
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: assignment_1
                              type: assignment
                              version: v1
                            id: 190_assignment
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 020_question
                                  tree_id: tree_1
                          - brick:
                              id: assignment_2
                              type: assignment
                              version: v1
                            id: 270_assignment
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 020_question
                                  tree_id: tree_1
                          - brick:
                              id: increment_q1_empty
                              type: increment
                              version: v1
                            id: 230_increment
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 200_condition_group
                                  tree_id: tree_1
                          - brick:
                              id: increment_q1_invalid
                              type: increment
                              version: v1
                            id: 240_increment
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 200_condition_group
                                  tree_id: tree_1
                          - brick:
                              id: increment_q2_empty
                              type: increment
                              version: v1
                            id: 250_increment
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 210_condition_group
                                  tree_id: tree_1
                          - brick:
                              id: increment_q2_invalid
                              type: increment
                              version: v1
                            id: 260_increment
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 210_condition_group
                                  tree_id: tree_1
                          - brick:
                              id: condition_group_q1
                              type: condition_group
                              version: v1
                            id: 200_condition_group
                            links:
                              - output_type: question_1_exit
                                reference:
                                  node_id: 220_audio
                                  tree_id: tree_1
                              - output_type: question_1_repeat
                                reference:
                                  node_id: 130_audio
                                  tree_id: tree_1
                              - output_type: fail
                                reference:
                                  node_id: 130_audio
                                  tree_id: tree_1
                          - brick:
                              id: condition_group_q2
                              type: condition_group
                              version: v1
                            id: 210_condition_group
                            links:
                              - output_type: question_2_exit
                                reference:
                                  node_id: 220_audio
                                  tree_id: tree_1
                              - output_type: question_2_repeat
                                reference:
                                  node_id: 150_audio
                                  tree_id: tree_1
                              - output_type: fail
                                reference:
                                  node_id: 130_audio
                                  tree_id: tree_1
                          - brick:
                              id: end_tree_1
                              type: end
                              version: v1
                            id: 300_end
                            links: null
                        tree_id: tree_1
                      - description: tree number two
                        nodes:
                          - brick:
                              id: goal_disqualified
                              type: goal
                              version: v1
                            id: 050_goal_disqualified
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 060_sms_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: sms_disqualified
                              type: sms
                              version: v1
                            id: 060_sms_disqualified
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 310_end
                                  tree_id: tree_disqualified
                              - output_type: error
                                reference:
                                  node_id: 310_end
                                  tree_id: tree_disqualified
                          - brick:
                              id: end_tree_disqualified
                              type: end
                              version: v1
                            id: 310_end
                            links: null
                        tree_id: tree_disqualified
                      - description: tree number three
                        nodes:
                          - brick:
                              id: audio_2
                              type: audio
                              version: v1
                            id: 070_audio
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 320_end
                                  tree_id: tree_robot
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: end_tree_robot
                              type: end
                              version: v1
                            id: 320_end
                            links: null
                        tree_id: tree_robot
                      - description: tree number four
                        nodes:
                          - brick:
                              id: audio_3
                              type: audio
                              version: v1
                            id: 090_audio
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 320_end
                                  tree_id: tree_robot
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: audio_4
                              type: audio
                              version: v1
                            id: 100_audio
                            links:
                              - output_type: complete
                                reference:
                                  node_id: 320_end
                                  tree_id: tree_robot
                              - output_type: incomplete
                                reference:
                                  node_id: 050_goal_disqualified
                                  tree_id: tree_disqualified
                          - brick:
                              id: end_tree_tea
                              type: end
                              version: v1
                            id: 330_end
                            links: null
                        tree_id: tree_tea
                fix_communication_ttl: 1200
                is_shared_for_copy: true
                name: constructor
                type: constructor
              properties:
                constructor:
                  allOf:
                    - $ref: '#/components/schemas/proto_scenarioConstructor'
                    - description: Properties for constructor configuration
                custom:
                  allOf:
                    - $ref: '#/components/schemas/proto_scenarioCustomScenario'
                    - description: Properties for custom configuration
                fix_communication_ttl:
                  description: The TTL of the communication, after which it will be considered broken and will be fixed
                  example: 3600
                  format: int32
                  type: integer
                goal:
                  allOf:
                    - $ref: '#/components/schemas/proto_scenarioGoalConfiguration'
                    - description: You can specify the URL to which the result of communication with each contact will be sent. More information in Webhook section.
                is_shared_for_copy:
                  description: Is shared for copy permission
                  type: boolean
                name:
                  description: Scenario description
                  type: string
                notify_event:
                  allOf:
                    - $ref: '#/components/schemas/proto_scenarioNotifyEventScenario'
                    - description: Properties for notify_event configuration
                notify_input_stt:
                  allOf:
                    - $ref: '#/components/schemas/proto_scenarioNotifyScenarioSTT'
                    - description: Properties for notify_input_stt configuration
                stt_properties_default:
                  allOf:
                    - $ref: '#/components/schemas/proto_scenarioSTTProperties'
                    - description: global stt properties
                survey_v3:
                  allOf:
                    - $ref: '#/components/schemas/proto_scenarioSurveyV3'
                    - description: Properties for survey_v3 configuration
                template:
                  description: Template (deprecated)
                  example: Template name
                  type: string
                type:
                  description: 'Type of scenario, support one of: survey, notify_input, notify_input_stt, notify_event, custom, survey_stt, survey_v3, constructor'
                  type: string
              required:
                - type
                - name
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioScenarioReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Update scenario
      tags:
        - Scenario
  /v1/scenario/{id}/copy:
    post:
      description: Use this endpoint to copy scenario
      operationId: Scenario_CopyScenario
      parameters:
        - description: Scenario ID
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioScenarioReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Copy scenario
      tags:
        - Scenario
  /v1/scenario/{id}/goal:
    post:
      description: Use this endpoint to set scenario goal
      operationId: Scenario_SetGoal
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              example:
                goal:
                  send_goal:
                    url: www.test.com
                    validate: false
                id: 1ee53fcd-991b-45b7-9a45-7c4e00f384b6
              properties:
                goal:
                  $ref: '#/components/schemas/proto_scenarioGoalConfiguration'
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioSetGoalStruct'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Set scenario goal
      tags:
        - Scenario
  /v1/scenario/{id}/placeholders:
    get:
      description: Use this endpoint to get scenario placeholders
      operationId: Scenario_GetPlaceHoldersByScenarioSid
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioGetPlaceHoldersByScenarioSidReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get scenario placeholders
      tags:
        - Scenario
  /v1/scenario/{id}/tts/warm-up:
    post:
      description: Use this endpoint to warm up TTS
      operationId: Scenario_WarmUpTTS
      parameters:
        - description: Scenario ID
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioWarmUpTTSReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Warm up TTS
      tags:
        - Scenario
  /v1/scenario/{scenario.id}:
    patch:
      description: Use this endpoint to patch scenario
      operationId: Scenario_PatchScenario
      parameters:
        - description: Scenario ID
          in: path
          name: scenario.id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                fix_communication_ttl:
                  description: The TTL of the communication, after which it will be considered broken and will be fixed
                  example: 3600
                  format: int32
                  type: integer
                is_shared_for_copy:
                  description: Is shared for copy permission
                  type: boolean
                name:
                  description: Scenario description
                  type: string
                template:
                  description: Template (deprecated)
                  example: Template name
                  type: string
                type:
                  description: 'Type of scenario, support one of: survey, notify_input, notify_input_stt, notify_event, custom, survey_stt, survey_v3, constructor'
                  type: string
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioScenarioReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Patch scenario
      tags:
        - Scenario
  /v1/scenario/js/run:
    post:
      description: Use this endpoint to run js script
      operationId: Scenario_RunJS
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proto_scenarioRunJSRequest'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioRunJSReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Run JS
      tags:
        - Scenario
  /v1/scenario/system-variables:
    get:
      description: Use this endpoint to get system variables for scenario
      operationId: Scenario_GetSystemVariables
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioGetSystemVariablesReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get system variables for scenario
      tags:
        - Scenario
  /v1/scenario/webhook/run:
    post:
      description: Use this endpoint to run Webhook
      operationId: Scenario_RunWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proto_scenarioRunWebhookRequest'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_scenarioRunWebhookReply'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Run Webhook
      tags:
        - Scenario
  /v1/settings/accountLimits/{sid}:
    get:
      description: Use this endpoint to get accounts limits
      operationId: SettingsService_GetAccountLimits
      parameters:
        - description: Account Sid
          in: path
          name: sid
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_settingsAccountLimits'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get account limits
      tags:
        - Settings
    patch:
      description: Use this endpoint to update profile info
      operationId: SettingsService_UpdateAccountLimits
      parameters:
        - description: Account Sid
          in: path
          name: sid
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/proto_settingsAccountLimits'
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_settingsAccountLimits'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Update account limits
      tags:
        - Settings
  /v2/report/billing-consumption:
    get:
      description: Use this endpoint to get billing consumption
      operationId: Report2ServiceV2_GetReportBillingConsumption
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_report2GetReportBillingConsumptionResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get billing consumption report
      tags:
        - ReportBillingConsumption
  /v2/report/call-history/campaign/{campaign_sid}:
    get:
      description: Fetches call history data as JSON with pagination, instead of generating a downloadable report file.
      operationId: Report2ServiceV2_ListReportCallHistory
      parameters:
        - description: Campaign's identifier
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - description: Account's identifier
          in: query
          name: account_sid
          required: false
          schema:
            type: string
        - description: Return only last communication for contact phone number
          in: query
          name: is_last_contact
          required: false
          schema:
            type: boolean
        - description: Maximum number of records to return per page. Maximum 500; a larger value is rejected. Default 200.
          in: query
          name: limit
          required: false
          schema:
            format: int32
            type: integer
        - description: Page number to return, starting at 1. Default 1.
          in: query
          name: page
          required: false
          schema:
            format: int32
            type: integer
        - description: Include only communications at/after this time, inclusive (RFC3339 formatted).
          in: query
          name: date_from
          required: false
          schema:
            type: string
        - description: Include only communications up to this time, inclusive (RFC3339 formatted).
          in: query
          name: date_to
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_report2ListReportCallHistoryResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Retrieve a page of call history records
      tags:
        - ReportCallHistory
  /v2/report/call-history/campaign/{campaign_sid}/generate:
    post:
      description: Use this endpoint to get call history
      operationId: Report2ServiceV2_GetReportCallHistory
      parameters:
        - description: Campaign's identifier
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - description: Account's identifier
          in: query
          name: account_sid
          required: false
          schema:
            type: string
        - description: Return only last communication for contact phone number
          in: query
          name: is_last_contact
          required: false
          schema:
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_report2ReportCallHistoryResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Get call history report
      tags:
        - ReportCallHistory
  /v2/report/call-history/campaign/{campaign_sid}/generate-async:
    get:
      description: Poll async call history report job by job_id. Returns status and url when completed.
      operationId: Report2ServiceV2_GetReportCallHistoryAsync
      parameters:
        - description: Campaign's identifier
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - description: Async job identifier
          in: query
          name: job_id
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_report2GetReportCallHistoryAsyncResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Poll async call history report job
      tags:
        - ReportCallHistory
    post:
      description: Submit async generation of call history report. Returns job_id for polling.
      operationId: Report2ServiceV2_GenerateReportCallHistoryAsync
      parameters:
        - description: Campaign's identifier
          in: path
          name: campaign_sid
          required: true
          schema:
            type: string
        - description: Account's identifier
          in: query
          name: account_sid
          required: false
          schema:
            type: string
        - description: Return only last communication for contact phone number
          in: query
          name: is_last_contact
          required: false
          schema:
            type: boolean
        - description: Include only communications at/after this time, inclusive (RFC3339 formatted).
          in: query
          name: date_from
          required: false
          schema:
            type: string
        - description: Include only communications up to this time, inclusive (RFC3339 formatted).
          in: query
          name: date_to
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_report2GenerateReportCallHistoryAsyncResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Submit async call history report job
      tags:
        - ReportCallHistory
  /v2/report/communication:
    get:
      description: Fetches communication report data in JSON format with support for pagination, filtering, and sorting.
      operationId: Report2ServiceV2_ListReportCommunication
      parameters:
        - description: Maximum number of records to return per page.
          in: query
          name: limit
          required: false
          schema:
            type: string
        - description: Number of records to skip before starting to collect the result set.
          in: query
          name: offset
          required: false
          schema:
            type: string
        - description: Sort order for records based on creation time. Use 'asc' for ascending or 'desc' for descending.
          in: query
          name: order
          required: false
          schema:
            type: string
        - description: Comma-separated list of Call SIDs to filter the communication reports.
          in: query
          name: call_sids
          required: false
          schema:
            type: string
        - description: Date from to look up communication reports (RFC3339 formatted).
          in: query
          name: date_from
          required: false
          schema:
            type: string
        - description: Date to to look up communication reports (RFC3339 formatted).
          in: query
          name: date_to
          required: false
          schema:
            type: string
        - description: Campaign SID representing campaign for which get the report.
          in: query
          name: campaign_sid
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/proto_report2ListReportCommunicationResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
        - basicAuth: []
      summary: Retrieve a list of communication reports
      tags:
        - Report2CommunicationV2
components:
  requestBodies: {}
  schemas:
    AttemptCreateAttemptBody:
      example:
        end_time: "2024-11-29T14:51:23.065Z"
        start_time: "2023-11-29T14:51:23.065Z"
      properties:
        end_time:
          description: The time the attempt ends.
          format: date-time
          type: string
        start_time:
          description: The time the attempt starts from.
          format: date-time
          type: string
      type: object
    AttemptUpdateAttemptBody:
      example:
        end_time: "2024-11-29T14:51:23.065Z"
        start_time: "2023-11-29T14:51:23.065Z"
      properties:
        end_time:
          description: The time the attempt ends.
          format: date-time
          type: string
        start_time:
          description: The time the attempt starts from.
          format: date-time
          type: string
      type: object
    CampaignUpdateCampaignBody:
      example:
        active_period:
          end_time: "2021-01-02T15:04:05Z"
          start_time: "2006-01-02T15:04:05Z"
        admin_limits:
          cpl: 0
          cps: 0
        description: Postman autotest Prod after update
        inactive_message:
          mode: tts
          tts_properties:
            engine: google
            language: en-US
            text: campaign is over, we will call you back
            voice: en-US-Wavenet-C
        limits:
          cpl: 1
          cps: 1
        number: "381114220413"
        scenario_sid: ec559eb0-867b-4772-8279-ca1c578fecb5
        sms_number: DFED_APF
      properties:
        active_period:
          $ref: '#/components/schemas/proto_campaignActivePeriod'
        amd_enabled:
          description: |-
            This parameter enables voicemail detection.
            Setting it to 'true' will turn on voicemail detection.
            Setting it to 'false' will turn off voicemail detection.
          type: boolean
        attempts_limit:
          description: |-
            This parameter specifies the number of times the voicebot will attempt to call a contact.
            If the limit is reached, the voicebot will no longer make calls to that contact.
          format: int32
          type: integer
        cli:
          description: This parameter is a telecom feature that enables the replacement of the campaign number with the CLI (Caller Line Identification) number for outbound campaigns. It can be useful when a customer creates multiple campaigns and wants all of them to be called from one number, or when there is a need to separate inbound and outbound scenarios. Using the CLI number for outbound campaigns will result in calls being made from this number, while inbound calls will not be routed to the campaign as the campaign number will be different.
          type: string
        communication_result:
          $ref: '#/components/schemas/proto_campaignCommunicationResult'
        communication_schedule:
          $ref: '#/components/schemas/proto_campaignCommunicationSchedule'
        description:
          description: The name of the campaign. Often useful for displaying to users.
          type: string
        inactive_message:
          $ref: '#/components/schemas/proto_campaignPlayAudio'
        integration:
          description: |-
            This parameter means that this campaign uses for integration with another service.
            If this parameter is set, the campaign cannot be deleted or archived.
            At the moment, this parameter can only accept 'erecruiter', 'optimove', and '' (empty) as valid values.
          type: string
        limits:
          $ref: '#/components/schemas/proto_campaignLimits'
        scenario_sid:
          description: Unique scenario identifier.
          type: string
        sms_number:
          description: If your scenario involves sending SMS, you need to provide the alpha name by specifying it in this parameter.
          type: string
        timezone:
          description: Timezone
          type: string
      type: object
    CommunicationServiceCreateScheduledCommunicationBody:
      properties:
        group:
          description: Group, used during batch processing
          type: string
        recipient:
          description: Recipient number
          type: string
        recipient_data:
          additionalProperties:
            type: string
          description: Recipient data that can be used in scenario using variables
          type: object
        scheduled_time:
          description: Scheduled time
          format: date-time
          type: string
      type: object
    CommunicationServiceStartCommunicationBody:
      example:
        group: test
        recipient: "4420808918741111"
        recipient_data:
          recipient_name: test name
      properties:
        group:
          description: Group, used during batch processing
          type: string
        recipient:
          description: Recipient number
          type: string
        recipient_data:
          additionalProperties:
            type: string
          description: Recipient data that can be used in scenario using variables
          type: object
        use_contact:
          description: '''Use Contact'' flag is used to indicate whether to create contact entity in order to include communication into contact report'
          type: boolean
      type: object
    ContactCreateContactBody:
      example:
        recipient: "1234567890"
        recipient_data:
          city: London
          name: Alex
      properties:
        recipient:
          description: Contact's number
          type: string
        recipient_data:
          additionalProperties:
            type: string
          description: |-
            It is a list of custom placeholders and their meanings that can be used in text messages or SMS.
            You can use data as variables in scenario, for instance as text property of tts: 'Hello {{name}} from {{city}}'
          example:
            city: London
            name: Alex
          type: object
      type: object
    ContactUpdateContactBody:
      example:
        recipient: "7659808098667"
        recipient_data:
          name: sdf
      properties:
        recipient:
          type: string
        recipient_data:
          additionalProperties:
            type: string
          type: object
      type: object
    proto_accountAccount:
      example:
        creation_time: "2023-04-21T12:44:23.990Z"
        email: test@example.com
        sid: acce89e8156-7d86-3234-a25f-4a6d9c305927
        timezone: Europe/Berlin
        update_time: "2023-04-21T12:44:23.990Z"
      properties:
        creation_time:
          description: Creation time
          format: date-time
          type: string
        default_blocklist_sid:
          description: Blocklist sid
          type: string
        email:
          description: Email
          type: string
        limits:
          $ref: '#/components/schemas/proto_accountAccountLimits'
        sid:
          description: Account Sid
          type: string
        timezone:
          description: Timezone
          type: string
        update_time:
          description: Update time
          format: date-time
          type: string
      type: object
    proto_accountAccountLimits:
      properties:
        account:
          $ref: '#/components/schemas/proto_accountLimits'
        campaign:
          $ref: '#/components/schemas/proto_accountLimits'
        cpl_current:
          description: simultaneous call lines current
          format: int64
          type: integer
      type: object
    proto_accountLimits:
      properties:
        cpl:
          description: CPL - simultaneous call lines
          format: int64
          type: integer
        cps:
          description: CPS (CAPS) - call attempts per second
          format: int64
          type: integer
      type: object
    proto_attemptAttemptReply:
      example:
        creation_time: "2023-04-26T14:49:11Z"
        end_time: "0001-01-01T00:00:00Z"
        sid: d9d4c227-407b-44fe-9d0d-ae328f192450
        start_time: "2999-11-29T14:51:23Z"
        status: idle
        update_time: "0001-01-01T00:00:00Z"
      properties:
        creation_time:
          description: The time the attempt was created.
          format: date-time
          type: string
        end_time:
          description: The time the attempt ends.
          format: date-time
          type: string
        sid:
          description: Attempt ID.
          type: string
        start_time:
          description: The time the attempt starts from.
          format: date-time
          type: string
        status:
          description: Attempt status.
          type: string
        update_time:
          description: The time the attempt was updated.
          format: date-time
          type: string
      type: object
    proto_attemptDeleteAttemptReply:
      properties:
        error:
          description: This parameter indicates the existence of any errors, if applicable.
          type: string
      type: object
    proto_attemptGetAttemptStatReply:
      example:
        blocked: 0
        delivered: 0
        failed: 0
        finished: 0
        in_progress: 0
        queued: 0
        sid: d9d4c227-407b-44fe-9d0d-ae328f192450
        status: idle
        total: 0
        total_campaign: 3
        undelivered: 0
        voicemail: 0
      properties:
        blocked:
          description: Number of contacts for this attempt that are currently in the 'blocked' status.
          format: int32
          type: integer
        delivered:
          description: Number of contacts for this attempt that are currently in the 'delivered' status.
          format: int32
          type: integer
        failed:
          description: Number of contacts for this attempt that are currently in the 'failed' status.
          format: int32
          type: integer
        finished:
          description: Number of contacts for this attempt that are currently in the 'finished' status.
          format: int32
          type: integer
        in_progress:
          description: Number of contacts for this attempt that are currently in the 'in_progress' status.
          format: int32
          type: integer
        queued:
          description: Number of contacts for this attempt that are currently in the 'queued' status.
          format: int32
          type: integer
        sid:
          description: Attempt ID.
          type: string
        status:
          description: Attempt status.
          type: string
        total:
          description: Overall number of contacts for this attempt.
          format: int32
          type: integer
        total_campaign:
          description: Overall number of contacts for current campaign.
          format: int32
          type: integer
        undelivered:
          description: Number of contacts for this attempt that are currently in the 'undelivered' status.
          format: int32
          type: integer
        voicemail:
          description: Number of contacts for this attempt that are currently in the 'voicemail' status.
          format: int32
          type: integer
      type: object
    proto_attemptListAttemptsReply:
      example:
        - creation_time: "2023-04-26T14:49:11Z"
          end_time: "0001-01-01T00:00:00Z"
          sid: d9d4c227-407b-44fe-9d0d-ae328f192450
          start_time: "2999-11-29T14:51:23Z"
          status: idle
          update_time: "0001-01-01T00:00:00Z"
      properties:
        attempts:
          description: Array of attempts.
          items:
            $ref: '#/components/schemas/proto_attemptAttemptReply'
          type: array
      type: object
    proto_campaignActivePeriod:
      properties:
        end_time:
          description: Campaign number will work according to the specified scenario until this date.
          format: date-time
          type: string
        start_time:
          description: Campaign number will work according to the specified scenario starting from this date.
          format: date-time
          type: string
      type: object
    proto_campaignArchiveCampaignReply:
      properties:
        code:
          description: Code
          format: int32
          type: integer
        message:
          description: Message
          type: string
      type: object
    proto_campaignAttemptReply:
      properties:
        creation_time:
          description: The time when the attempt was created.
          format: date-time
          type: string
        end_time:
          description: The time the attempt ends.
          format: date-time
          type: string
        is_current:
          description: This field indicates whether the attempt is current or not ('true' or 'false').
          type: boolean
        sid:
          description: Attempt ID.
          type: string
        start_time:
          description: The time the attempt starts from.
          format: date-time
          type: string
        status:
          description: Attempt status.
          type: string
        update_time:
          description: The time when the attempt was updated.
          format: date-time
          type: string
      type: object
    proto_campaignAudioFile:
      properties:
        url:
          description: Link to the record.
          type: string
      type: object
    proto_campaignCampaignStat:
      properties:
        sid:
          description: Campaign ID.
          type: string
        status:
          description: Campaign status.
          type: string
      type: object
    proto_campaignCommunicationResult:
      properties:
        targets:
          description: List of targets with URLs where voicebot will send communication result
          items:
            $ref: '#/components/schemas/proto_campaignResultTarget'
          type: array
      type: object
    proto_campaignCommunicationSchedule:
      properties:
        args:
          description: Schedule args, format depends on strategy and will be validated
          type: object
        strategy:
          description: 'Schedule strategy, support one strategy at the moment: schedule'
          type: string
      type: object
    proto_campaignContactStat:
      properties:
        processed:
          description: Number of processed contacts.
          format: int32
          type: integer
        reached:
          description: Number of reached contacts.
          format: int32
          type: integer
        remaining:
          description: Number of remaining contacts.
          format: int32
          type: integer
        total:
          description: Overall number of contacts.
          format: int32
          type: integer
        unprocessed:
          description: Number of unprocessed contacts.
          format: int32
          type: integer
      type: object
    proto_campaignCreateCampaignReply:
      example:
        account_sid: accae6203f7-2885-3bae-b2c8-a08be06e892a
        active: false
        active_period:
          end_time: "2021-01-02T15:04:05Z"
          start_time: "2006-01-02T15:04:05Z"
        admin_limits:
          cpl: 0
          cps: 0
        amd_enabled: false
        attempts_limit: 0
        campaign_id: 0f0f852b-cb7b-4b6c-a1e8-aac74b6e2882
        creation_time: "2023-04-25T15:46:20.438087Z"
        description: ""
        duplicate_contact: false
        has_report: false
        inactive_message:
          file_properties: null
          mode: tts
          tts_properties:
            engine: google
            language: en-US
            text: campaign is over, we will call you back
            voice: en-US-Wavenet-C
        integration: ""
        limits:
          cpl: 1
          cps: 1
        number: "381114220413"
        pool_sid: ""
        scenario_sid: 769cbea4-d4e0-4453-8129-5fb0ee85f86e
        sms_number: DFED_APF
      properties:
        account_sid:
          description: Account ID from which campaign was created.
          type: string
        active:
          description: Active flag
          type: boolean
        active_period:
          $ref: '#/components/schemas/proto_campaignActivePeriod'
        admin_limits:
          $ref: '#/components/schemas/proto_campaignLimits'
        amd_enabled:
          description: |-
            This parameter enables voicemail detection.
            Setting it to 'true' will turn on voicemail detection.
            Setting it to 'false' will turn off voicemail detection.
          type: boolean
        attempts_limit:
          description: |-
            This parameter specifies the number of times the voicebot will attempt to call a contact.
            If the limit is reached, the voicebot will no longer make calls to that contact.
          format: int32
          type: integer
        campaign_id:
          description: Campaign ID
          type: string
        cli:
          description: This parameter is a telecom feature that enables the replacement of the campaign number with the CLI (Caller Line Identification) number for outbound campaigns. It can be useful when a customer creates multiple campaigns and wants all of them to be called from one number, or when there is a need to separate inbound and outbound scenarios. Using the CLI number for outbound campaigns will result in calls being made from this number, while inbound calls will not be routed to the campaign as the campaign number will be different.
          type: string
        communication_result:
          $ref: '#/components/schemas/proto_campaignCommunicationResult'
        communication_schedule:
          $ref: '#/components/schemas/proto_campaignCommunicationSchedule'
        creation_time:
          description: The time when campaign was created.
          format: date-time
          type: string
        description:
          description: The name of the campaign. Often useful for displaying to users.
          type: string
        duplicate_contact:
          description: |-
            This parameter enables or disables the ability to duplicate contacts for the campaign.
            Setting it to 'true' turns on this feature, while setting it to 'false' turns it off.
          type: boolean
        has_report:
          description: This parameter indicates whether the campaign has reports or not.
          type: boolean
        inactive_message:
          $ref: '#/components/schemas/proto_campaignPlayAudio'
        integration:
          description: |-
            This parameter means that this campaign uses for integration with another service.
            If this parameter is set, the campaign cannot be deleted or archived.
            At the moment, this parameter can only accept 'erecruiter', 'optimove', and '' (empty) as valid values.
          type: string
        limits:
          $ref: '#/components/schemas/proto_campaignLimits'
        number:
          description: The number campaign call to each contact (you can buy number here https://account.tenios.com/numbers/buy).
          type: string
        pool_sid:
          description: The random number used to make the call to each contact selects from the pool of numbers.
          type: string
        scenario_sid:
          description: Unique scenario identifier.
          type: string
        sms_number:
          description: If your scenario involves sending SMS, you need to provide the alpha name by specifying it in this parameter.
          type: string
        timezone:
          description: Timezone
          type: string
      type: object
    proto_campaignCreateCampaignRequest:
      example:
        Description: Postman autotest Prod
        active_period:
          end_time: "2021-01-02T18:04:05+03:00"
          start_time: "2006-01-02T18:04:05+03:00"
        admin_limits:
          cpl: 0
          cps: 0
        amd_enabled: false
        inactive_message:
          mode: tts
          tts_properties:
            engine: google
            language: en-US
            text: campaign is over, we will call you back
            voice: en-US-Wavenet-C
        limits:
          cpl: 1
          cps: 1
        number: "381114220413"
        scenario_sid: 769cbea4-d4e0-4453-8129-5fb0ee85f86e
        sms_number: DFED_APF
      properties:
        active_period:
          $ref: '#/components/schemas/proto_campaignActivePeriod'
        amd_enabled:
          description: |-
            This parameter enables voicemail detection.
            Setting it to 'true' will turn on voicemail detection.
            Setting it to 'false' will turn off voicemail detection.
          type: boolean
        attempts_limit:
          description: |-
            This parameter specifies the number of times the voicebot will attempt to call a contact.
            If the limit is reached, the voicebot will no longer make calls to that contact.
          format: int32
          type: integer
        cli:
          description: This parameter is a telecom feature that enables the replacement of the campaign number with the CLI (Caller Line Identification) number for outbound campaigns. It can be useful when a customer creates multiple campaigns and wants all of them to be called from one number, or when there is a need to separate inbound and outbound scenarios. Using the CLI number for outbound campaigns will result in calls being made from this number, while inbound calls will not be routed to the campaign as the campaign number will be different.
          type: string
        communication_result:
          $ref: '#/components/schemas/proto_campaignCommunicationResult'
        communication_schedule:
          $ref: '#/components/schemas/proto_campaignCommunicationSchedule'
        description:
          description: The name of the campaign. Often useful for displaying to users.
          type: string
        duplicate_contact:
          description: |-
            This parameter enables or disables the ability to duplicate contacts for the campaign.
            Setting it to 'true' turns on this feature, while setting it to 'false' turns it off.
          type: boolean
        inactive_message:
          $ref: '#/components/schemas/proto_campaignPlayAudio'
        integration:
          description: |-
            This parameter means that this campaign uses for integration with another service.
            If this parameter is set, the campaign cannot be deleted or archived.
            At the moment, this parameter can only accept 'erecruiter', 'optimove', and '' (empty) as valid values.
          type: string
        limits:
          $ref: '#/components/schemas/proto_campaignLimits'
        number:
          description: The number campaign call to each contact (you can buy number here https://account.tenios.com/numbers/buy).
          type: string
        pool_sid:
          description: The random number used to make the call to each contact selects from the pool of numbers.
          type: string
        scenario_sid:
          description: Unique scenario identifier.
          type: string
        sms_number:
          description: If your scenario involves sending SMS, you need to provide the alpha name by specifying it in this parameter.
          type: string
        timezone:
          description: Timezone
          type: string
      type: object
    proto_campaignDeleteCampaignReply:
      properties:
        code:
          description: Code
          format: int32
          type: integer
        message:
          description: Message
          type: string
      type: object
    proto_campaignFilter:
      properties:
        archived:
          description: Filter by archived flag
          type: string
        description:
          description: Filter by description
          type: string
        number:
          description: Filter by campaign number
          type: string
        scenario_sid:
          description: Filter by scenario sid
          type: string
        sid:
          description: Filter by campaign sid
          type: string
      type: object
    proto_campaignGetCampaignReply:
      example:
        account_sid: accae6203f7-2885-3bae-b2c8-a08be06e892a
        active: false
        active_period:
          end_time: "2021-01-02T15:04:05Z"
          start_time: "2006-01-02T15:04:05Z"
        admin_limits:
          cpl: 0
          cps: 0
        amd_enabled: false
        archive_time: null
        attempts_limit: 0
        campaign_id: 77c07520-d240-425f-8c0f-e8cd0b3425a7
        creation_time: "2023-04-25T15:58:06.129Z"
        description: ""
        duplicate_contact: false
        has_report: false
        inactive_message:
          file_properties: null
          mode: tts
          tts_properties:
            engine: google
            language: en-US
            text: campaign is over, we will call you back
            voice: en-US-Wavenet-C
        integration: ""
        limits:
          cpl: 1
          cps: 1
        mongo_id: 6447f890320baa9f3c2bf80c
        number: "381114220413"
        pool_sid: ""
        scenario_sid: 769cbea4-d4e0-4453-8129-5fb0ee85f86e
        sms_number: DFED_APF
        status: inactive
      properties:
        account_sid:
          description: Account ID from which campaign was created.
          type: string
        active:
          description: active flag
          type: boolean
        active_period:
          $ref: '#/components/schemas/proto_campaignActivePeriod'
        admin_limits:
          $ref: '#/components/schemas/proto_campaignLimits'
        amd_enabled:
          description: |-
            This parameter enables voicemail detection.
            Setting it to 'true' will turn on voicemail detection.
            Setting it to 'false' will turn off voicemail detection.
          type: boolean
        archive_time:
          description: The time when campaign was archived.
          format: date-time
          type: string
        attempts_limit:
          description: |-
            This parameter specifies the number of times the voicebot will attempt to call a contact.
            If the limit is reached, the voicebot will no longer make calls to that contact.
          format: int32
          type: integer
        campaign_id:
          description: Campaign ID
          type: string
        cli:
          description: This parameter is a telecom feature that enables the replacement of the campaign number with the CLI (Caller Line Identification) number for outbound campaigns. It can be useful when a customer creates multiple campaigns and wants all of them to be called from one number, or when there is a need to separate inbound and outbound scenarios. Using the CLI number for outbound campaigns will result in calls being made from this number, while inbound calls will not be routed to the campaign as the campaign number will be different.
          type: string
        communication_result:
          $ref: '#/components/schemas/proto_campaignCommunicationResult'
        communication_schedule:
          $ref: '#/components/schemas/proto_campaignCommunicationSchedule'
        creation_time:
          description: The time when campaign was created.
          format: date-time
          type: string
        description:
          description: The name of the campaign. Often useful for displaying to users.
          type: string
        duplicate_contact:
          description: |-
            This parameter enables or disables the ability to duplicate contacts for the campaign.
            Setting it to 'true' turns on this feature, while setting it to 'false' turns it off.
          type: boolean
        has_report:
          description: This parameter indicates whether the campaign has reports or not.
          type: boolean
        inactive_message:
          $ref: '#/components/schemas/proto_campaignPlayAudio'
        integration:
          description: |-
            This parameter means that this campaign uses for integration with another service.
            If this parameter is set, the campaign cannot be deleted or archived.
            At the moment, this parameter can only accept 'erecruiter', 'optimove', and '' (empty) as valid values.
          type: string
        limits:
          $ref: '#/components/schemas/proto_campaignLimits'
        mongo_id:
          description: mongodb id (deprecated)
          type: string
        number:
          description: The number campaign call to each contact (you can buy number here https://account.tenios.com/numbers/buy).
          type: string
        pool_sid:
          description: The random number used to make the call to each contact selects from the pool of numbers.
          type: string
        scenario_sid:
          description: Unique scenario identifier.
          type: string
        sms_number:
          description: If your scenario involves sending SMS, you need to provide the alpha name by specifying it in this parameter.
          type: string
        status:
          description: Campaign status.
          type: string
        timezone:
          description: Timezone
          type: string
      type: object
    proto_campaignGetCampaignStatReply:
      example:
        attempts: null
        campaign:
          sid: 005cfc80-de43-473b-8598-8b38433e0f4d
          status: initiated
        contacts:
          processed: 0
          reached: 0
          remaining: 5
          total: 5
          unprocessed: 5
      properties:
        attempts:
          description: Campaign attempts statistics.
          items:
            $ref: '#/components/schemas/proto_campaignAttemptReply'
          type: array
        campaign:
          $ref: '#/components/schemas/proto_campaignCampaignStat'
        contacts:
          $ref: '#/components/schemas/proto_campaignContactStat'
      type: object
    proto_campaignGetCampaignsCountResponse:
      example:
        count: 2
      properties:
        count:
          description: Campaigns count.
          format: int64
          type: string
      type: object
    proto_campaignLimits:
      properties:
        cpl:
          description: |-
            This is a maximum number of active lines for current campaign.
            If you activate more lines, your campaign will proceed faster.
            The value cannot exceed the account limit.
          format: int32
          type: integer
        cps:
          description: |-
            This is a maximum number of requests for current campaign.
            The value cannot exceed the account limit.
          format: int32
          type: integer
      type: object
    proto_campaignListCampaignsResponse:
      example:
        - account_sid: accae6203f7-2885-3bae-b2c8-a08be06e892a
          active: true
          active_period:
            end_time: "2031-01-02T18:04:05Z"
            start_time: "2006-01-02T18:04:05Z"
          admin_limits:
            cpl: 0
            cps: 0
          amd_enabled: false
          archive_time: null
          attempts_limit: 0
          campaign_id: 021ae561-941b-4abe-9241-295964af3b3a
          creation_time: "2023-02-14T11:51:30.883Z"
          description: Postman Custom AMD Prod
          duplicate_contact: true
          has_report: true
          inactive_message:
            file_properties:
              url: ""
            mode: tts
            tts_properties:
              engine: google
              language: en-US
              text: campaign is over, we will call you back
              voice: en-US-Wavenet-C
          integration: ""
          limits:
            cpl: 10
            cps: 1
          mongo_id: 63eb75c4a3d8a2460e0294f6
          number: "48221643471"
          pool_sid: ""
          scenario_sid: 5b644c97-98a2-40a9-98a9-d2190146b045
          sms_number: DFED_APF
          status: initiated
      properties:
        campaigns:
          description: Campaigns list.
          items:
            $ref: '#/components/schemas/proto_campaignGetCampaignReply'
          type: array
      type: object
    proto_campaignOptions:
      properties:
        limit:
          description: per page items
          format: int64
          type: string
        offset:
          description: items offset
          format: int64
          type: string
        order_by:
          description: items sort
          format: int64
          type: string
      type: object
    proto_campaignPlayAudio:
      properties:
        file_properties:
          $ref: '#/components/schemas/proto_campaignAudioFile'
        mode:
          description: Inactive message mode can be one of 'tts' or 'file'. 'tts' mode means that you use text to speech feature for playing this message. 'file' mode means that you use URL (uploaded audio file) for playing this message.
          type: string
        tts_properties:
          $ref: '#/components/schemas/proto_campaignTTS'
      type: object
    proto_campaignResultTarget:
      properties:
        url:
          description: This URL will be used to send the communication result.
          type: string
      type: object
    proto_campaignTTS:
      properties:
        engine:
          description: The engine is used to transfer text to speech.
          type: string
        language:
          description: |-
            Language code in which the text will be spoken.

            For information on available languages see https://cloud.google.com/text-to-speech/docs/voices
          type: string
        text:
          description: The text that the voicebot will say.
          type: string
        voice:
          description: |-
            The voice used to speak the message.

            For information on available voices see https://cloud.google.com/text-to-speech/docs/voices
          type: string
      type: object
    proto_campaignUpdateCampaignReply:
      example:
        account_sid: accae6203f7-2885-3bae-b2c8-a08be06e892a
        active: false
        active_period:
          end_time: "2021-01-02T15:04:05Z"
          start_time: "2006-01-02T15:04:05Z"
        admin_limits:
          cpl: 0
          cps: 0
        amd_enabled: false
        attempts_limit: 0
        campaign_id: 0f0f852b-cb7b-4b6c-a1e8-aac74b6e2882
        creation_time: "2023-04-25T15:46:20.438Z"
        description: Postman autotest Prod after update
        duplicate_contact: false
        has_report: false
        inactive_message:
          file_properties: null
          mode: tts
          tts_properties:
            engine: google
            language: en-US
            text: campaign is over, we will call you back
            voice: en-US-Wavenet-C
        integration: ""
        limits:
          cpl: 1
          cps: 1
        number: "381114220413"
        pool_sid: ""
        scenario_sid: ec559eb0-867b-4772-8279-ca1c578fecb5
        sms_number: DFED_APF
      properties:
        account_sid:
          description: Account ID from which campaign was created.
          type: string
        active:
          type: boolean
        active_period:
          $ref: '#/components/schemas/proto_campaignActivePeriod'
        admin_limits:
          $ref: '#/components/schemas/proto_campaignLimits'
        amd_enabled:
          description: |-
            This parameter enables voicemail detection.
            Setting it to 'true' will turn on voicemail detection.
            Setting it to 'false' will turn off voicemail detection.
          type: boolean
        attempts_limit:
          description: |-
            This parameter specifies the number of times the voicebot will attempt to call a contact.
            If the limit is reached, the voicebot will no longer make calls to that contact.
          format: int32
          type: integer
        campaign_id:
          description: Campaign ID
          type: string
        cli:
          description: This parameter is a telecom feature that enables the replacement of the campaign number with the CLI (Caller Line Identification) number for outbound campaigns. It can be useful when a customer creates multiple campaigns and wants all of them to be called from one number, or when there is a need to separate inbound and outbound scenarios. Using the CLI number for outbound campaigns will result in calls being made from this number, while inbound calls will not be routed to the campaign as the campaign number will be different.
          type: string
        communication_result:
          $ref: '#/components/schemas/proto_campaignCommunicationResult'
        communication_schedule:
          $ref: '#/components/schemas/proto_campaignCommunicationSchedule'
        creation_time:
          description: The time when campaign was created.
          format: date-time
          type: string
        description:
          description: The name of the campaign. Often useful for displaying to users.
          type: string
        duplicate_contact:
          description: |-
            This parameter enables or disables the ability to duplicate contacts for the campaign.
            Setting it to 'true' turns on this feature, while setting it to 'false' turns it off.
          type: boolean
        has_report:
          description: This parameter indicates whether the campaign has reports or not.
          type: boolean
        inactive_message:
          $ref: '#/components/schemas/proto_campaignPlayAudio'
        integration:
          description: |-
            This parameter means that this campaign uses for integration with another service.
            If this parameter is set, the campaign cannot be deleted or archived.
            At the moment, this parameter can only accept 'erecruiter', 'optimove', and '' (empty) as valid values.
          type: string
        limits:
          $ref: '#/components/schemas/proto_campaignLimits'
        number:
          description: The number campaign call to each contact (you can buy number here https://account.tenios.com/numbers/buy).
          type: string
        pool_sid:
          description: The random number used to make the call to each contact selects from the pool of numbers.
          type: string
        scenario_sid:
          description: Unique scenario identifier.
          type: string
        sms_number:
          description: If your scenario involves sending SMS, you need to provide the alpha name by specifying it in this parameter.
          type: string
        timezone:
          description: Timezone
          type: string
      type: object
    proto_communicationCommunicationData:
      properties:
        group:
          description: Group, used during batch processing
          type: string
        recipient:
          description: Recipient number
          type: string
        recipient_data:
          additionalProperties:
            type: string
          description: Recipient data that can be used in scenario using variables
          type: object
        request_id:
          description: Request ID
          type: string
      type: object
    proto_communicationCommunicationInfo:
      properties:
        account_sid:
          description: Account Sid
          type: string
        campaign_id:
          description: Campaign ID
          type: string
        communication_id:
          description: Communication ID
          type: string
        direction:
          description: Communication direction, currently created communication is always 'outbound'
          type: string
        error:
          description: Error message
          type: string
        group:
          description: Group, used during batch processing
          type: string
        recipient:
          description: Recipient number
          type: string
        request_id:
          description: Request ID
          type: string
        scenario_sid:
          description: Scenario Sid
          type: string
        status:
          description: Status
          type: string
      type: object
    proto_communicationCommunicationSchedule:
      properties:
        args:
          description: Schedule args, format depends on strategy and will be validated
          type: object
        strategy:
          description: 'Schedule strategy, support one strategy at the moment: schedule'
          type: string
      type: object
    proto_communicationCreateCommunicationReply:
      properties:
        account_sid:
          description: Account Sid
          type: string
        campaign_id:
          description: Campaign ID
          type: string
        communication_id:
          description: Communication ID
          type: string
        direction:
          description: Communication direction, currently created communication is always 'outbound'
          type: string
        group:
          description: Group, used during batch processing
          type: string
        recipient:
          description: Recipient number
          type: string
        scenario_sid:
          description: Scenario Sid
          type: string
        schedule:
          $ref: '#/components/schemas/proto_communicationCommunicationSchedule'
        scheduled_time:
          description: Scheduled time
          format: date-time
          type: string
        status:
          description: Status
          type: string
      type: object
    proto_communicationGetCommunicationRecordingReply:
      properties:
        expires_at:
          description: Signed URL expiration time
          format: date-time
          type: string
        signed_url:
          description: Signed URL to download the recording
          type: string
      type: object
    proto_communicationGetCommunicationReply:
      properties:
        account_sid:
          description: Account Sid
          type: string
        call_sid:
          description: Call SID
          type: string
        campaign_id:
          description: Campaign ID
          type: string
        communication_id:
          description: Communication ID
          type: string
        direction:
          description: Communication direction, currently created communication is always 'outbound'
          type: string
        group:
          description: Group, used during batch processing
          type: string
        has_recording:
          description: 'Tri-state. true: call recording stored; false: CallDetail row exists but no recording; null: no CallDetail row (legacy/unknown). Fetch via GET /v1/communication/{id}/recording.'
          type: boolean
        recipient:
          description: Recipient number
          type: string
        recipient_data:
          additionalProperties:
            type: string
          description: Recipient data that can be used in scenario using variables
          type: object
        scenario_sid:
          description: Scenario Sid
          type: string
        scenario_version:
          description: Scenario version
          format: int32
          type: integer
        schedule:
          $ref: '#/components/schemas/proto_communicationCommunicationSchedule'
        scheduled_time:
          description: Scheduled time
          format: date-time
          type: string
        status:
          description: Status
          type: string
      type: object
    proto_communicationStartBatchCommunicationsReply:
      example:
        communications_info:
          - account_sid: accae6203f7-2885-3bae-b2c8-a08be06e892a
            campaign_id: d88b61a9-b0d9-4f84-b36d-008b7a706361
            communication_id: 7bc4ba3b-f4f1-4949-aede-b65b1b031d19
            direction: Outbound
            error: ""
            group: test
            recipient: "4420808918741111"
            request_id: ""
            scenario_sid: e5d6061d-6cc5-445d-9d55-3719a3e16daa
            status: Created New
      properties:
        communications_info:
          description: Communication info
          items:
            $ref: '#/components/schemas/proto_communicationCommunicationInfo'
          type: array
      type: object
    proto_communicationStartCommunicationReply:
      example:
        account_sid: accae6203f7-2885-3bae-b2c8-a08be06e892a
        campaign_id: d88b61a9-b0d9-4f84-b36d-008b7a706361
        communication_id: 45b490f0-0530-4f21-a500-1110d04c8d43
        direction: Outbound
        group: test
        recipient: "4420808918741111"
        scenario_sid: e5d6061d-6cc5-445d-9d55-3719a3e16daa
        status: Created New
      properties:
        account_sid:
          description: Account Sid
          type: string
        campaign_id:
          description: Campaign ID
          type: string
        communication_id:
          description: Communication ID
          type: string
        direction:
          description: Communication direction, currently created communication is always 'outbound'
          type: string
        group:
          description: Group, used during batch processing
          type: string
        recipient:
          description: Recipient number
          type: string
        scenario_sid:
          description: Scenario Sid
          type: string
        status:
          description: Status
          type: string
      type: object
    proto_contactContactBatch:
      properties:
        recipient:
          type: string
        recipient_data:
          additionalProperties:
            type: string
          type: object
      type: object
    proto_contactContactStat:
      properties:
        reached:
          format: int32
          type: integer
        remaining:
          format: int32
          type: integer
        total:
          format: int32
          type: integer
      type: object
    proto_contactCreateBatchContactsReply:
      example:
        added: 2
        all_contacts: 2
        code: "201"
        doubles: null
        message: Batch contacts successfully added
        not_added: 0
      properties:
        added:
          format: int32
          type: integer
        all_contacts:
          format: int32
          type: integer
        code:
          type: string
        doubles:
          items:
            $ref: '#/components/schemas/proto_contactContactBatch'
          type: array
        message:
          type: string
        not_added:
          format: int32
          type: integer
      type: object
    proto_contactCreateContactReply:
      example:
        campaign_sid: f2c4dc13-8023-46b1-9e77-2f0faba4bf76
        contact_sid: 253787e2-3818-405c-b3f1-5fd55737a3c0
        recipient: "1234567890"
        recipient_data:
          city: London
          name: Alex
        status: undelivered
      properties:
        campaign_sid:
          type: string
        contact_sid:
          type: string
        recipient:
          type: string
        recipient_data:
          additionalProperties:
            type: string
          type: object
        status:
          type: string
      type: object
    proto_contactGetContactReply:
      example:
        campaign_sid: f2c4dc13-8023-46b1-9e77-2f0faba4bf76
        contact_sid: 253787e2-3818-405c-b3f1-5fd55737a3c0
        recipient: "6548797987556"
        recipient_data:
          name: sdf
        status: undelivered
      properties:
        campaign_sid:
          type: string
        contact_sid:
          type: string
        recipient:
          type: string
        recipient_data:
          additionalProperties:
            type: string
          type: object
        status:
          type: string
      type: object
    proto_contactGetContactStatReply:
      example:
        campaign_sid: d9514a21-8947-31c2-a354-000000000000
        contacts:
          reached: 4
          remaining: 1
          total: 5
      properties:
        campaign_sid:
          type: string
        contacts:
          $ref: '#/components/schemas/proto_contactContactStat'
      type: object
    proto_contactListContactsReply:
      example:
        - campaign_sid: f2c4dc13-8023-46b1-9e77-2f0faba4bf76
          contact_sid: 253787e2-3818-405c-b3f1-5fd55737a3c0
          recipient: "6548797987556"
          recipient_data:
            name: sdf
          status: undelivered
      properties:
        contacts:
          items:
            $ref: '#/components/schemas/proto_contactGetContactReply'
          type: array
      type: object
    proto_contactOptions:
      properties:
        limit:
          format: int64
          type: string
        order_by:
          format: int64
          type: string
      type: object
    proto_contactUpdateContactReply:
      example:
        campaign_sid: f2c4dc13-8023-46b1-9e77-2f0faba4bf76
        contact_sid: 253787e2-3818-405c-b3f1-5fd55737a3c0
        recipient: "7659808098667"
        recipient_data:
          name: sdf
        status: undelivered
      properties:
        campaign_sid:
          type: string
        contact_sid:
          type: string
        recipient:
          type: string
        recipient_data:
          additionalProperties:
            type: string
          type: object
        status:
          type: string
      type: object
    proto_profileProfile:
      example:
        creation_time: "2023-04-21T12:44:23.990Z"
        email: test@example.com
        id: acce89e8156-7d86-3234-a25f-4a6d9c305927
        timezone: Europe/Berlin
        update_time: "2023-04-21T12:44:23.990Z"
      properties:
        creation_time:
          description: Creation time
          format: date-time
          type: string
        email:
          description: Email
          type: string
        id:
          description: ID
          type: string
        timezone:
          description: Timezone
          type: string
        update_time:
          description: Update time
          format: date-time
          type: string
      type: object
    proto_report_contactReportCommunication:
      example:
        URL: https://files-report.s3.eu-central-1.amazonaws.com/communication_report_XXX_YYYY-MM-DD.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA524DKCZMHR57E4FQ%2F20230426%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20230426T145340Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=06939129c60aa0357f27a1f1f4af1e09d024a76187889a393d52101267e6eb08
        campaign_id: 77c07520-d240-425f-8c0f-e8cd0b3425a7
      properties:
        url:
          type: string
      type: object
    proto_report_contactReportContact:
      example:
        url: https://files-report.s3.eu-central-1.amazonaws.com/contacts_report_XXX_YYYY-MM-DD.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA524DKCZMHR57E4FQ%2F20230426%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20230426T145340Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=06939129c60aa0357f27a1f1f4af1e09d024a76187889a393d52101267e6eb08
      properties:
        url:
          type: string
      type: object
    proto_report2GenerateReportCallHistoryAsyncResponse:
      properties:
        job_id:
          description: Async job identifier
          type: string
        task_name:
          description: Human-readable task name
          type: string
      type: object
    proto_report2GetReportBillingConsumptionResponse:
      properties:
        billing_consumption:
          description: List of monthly billing consumption.
          items:
            $ref: '#/components/schemas/proto_report2MonthlyBillingConsumption'
          type: array
      type: object
    proto_report2GetReportCallHistoryAsyncResponse:
      properties:
        error:
          description: Error message (when status=failed)
          type: string
        job_id:
          type: string
        status:
          description: 'Job status: pending|completed|failed'
          type: string
        task_name:
          type: string
        url:
          description: Report download url (when status=completed)
          type: string
      type: object
    proto_report2LegReport:
      properties:
        leg_call_sid:
          description: Call SID associated with this communication leg.
          type: string
        leg_duration:
          description: Duration of this communication leg in seconds.
          format: int32
          type: integer
        leg_status:
          description: Current status of this communication leg (e.g., failed, completed).
          type: string
        leg_to:
          description: Identifier for the destination of this communication leg.
          type: string
        record_url:
          description: URL to access the recording of this communication leg.
          type: string
      type: object
    proto_report2ListReportCallHistoryResponse:
      properties:
        limit:
          description: Page size the page was collected with
          format: int32
          type: integer
        page:
          description: Page number that was returned
          format: int32
          type: integer
        records:
          description: Page of call history records
          items:
            $ref: '#/components/schemas/proto_report2ReportCallHistoryRecord'
          type: array
      type: object
    proto_report2ListReportCommunicationResponse:
      properties:
        report_communication:
          description: List of communication report entries.
          items:
            $ref: '#/components/schemas/proto_report2ReportCommunication'
          type: array
      type: object
    proto_report2MonthlyBillingConsumption:
      properties:
        calls_count:
          description: Number of calls.
          format: int64
          type: integer
        month:
          description: Month in ISO format (e.g. 2025-10-01T00:00:00Z means billing consumption in October 2025).
          type: string
        total_duration:
          description: Total duration of all calls made by this account in minutes.
          format: double
          type: number
        total_duration_excluding_forward:
          description: Total call duration excluding forwarded time; represents the actual minutes spent which will be represented as actual spend for account.
          format: double
          type: number
      type: object
    proto_report2ReportCallHistoryRecord:
      properties:
        call_duration:
          description: Duration of the call in seconds
          format: int32
          type: integer
        call_record:
          description: Signed URL to download the call recording. Empty when no recording exists.
          type: string
        call_sid:
          description: Unique identifier for the call session
          type: string
        campaign_phone_number:
          description: Phone number the campaign called from
          type: string
        campaign_sid:
          description: Campaign's identifier
          type: string
        communication_status:
          description: Status of the communication
          type: string
        datetime:
          description: Time the call took place
          format: date-time
          type: string
        final_variables:
          additionalProperties:
            type: string
          description: Variables the scenario ended with
          type: object
        initial_variables:
          additionalProperties:
            type: string
          description: Variables the scenario started with
          type: object
        recipient_phone_number:
          description: Phone number of the recipient
          type: string
        scenario_name:
          description: Name of the scenario under which the call was executed
          type: string
        status:
          description: Call status. This is the value the xlsx report shows under its "Communication Status" column.
          type: string
      type: object
    proto_report2ReportCallHistoryResponse:
      example:
        url: https://files-report.s3.eu-central-1.amazonaws.com/call_history_report_XXX_YYYY-MM-DD.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA524DKCZMHR57E4FQ%2F20230426%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20230426T145340Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=06939129c60aa0357f27a1f1f4af1e09d024a76187889a393d52101267e6eb08
      properties:
        url:
          description: Url to download the report
          type: string
      type: object
    proto_report2ReportCommunication:
      properties:
        account_sid:
          description: Account SID associated with the communication.
          type: string
        answers:
          description: List of answers provided during the communication.
          items:
            type: string
          type: array
        attempt_number:
          description: Number of attempts made for the contacts.
          format: int32
          type: integer
        attempt_sid:
          description: Attempt SID representing a specific communication attempt.
          type: string
        attempt_time:
          description: Timestamp when the communication attempt was made.
          format: date-time
          type: string
        call_sid:
          description: Unique identifier for the call session.
          type: string
        campaign_description:
          description: Description of the campaign associated with the communication.
          type: string
        campaign_sid:
          description: Campaign SID linked to the communication.
          type: string
        communication_group:
          description: Group identifier for related communications.
          type: string
        communication_sid:
          description: Unique identifier for the communication.
          type: string
        communication_time:
          description: Timestamp when the communication took place.
          format: date-time
          type: string
        completed_time:
          description: Timestamp when the communication was completed.
          format: date-time
          type: string
        created_at:
          description: Timestamp when the communication record was created.
          format: date-time
          type: string
        direction:
          description: Direction of the communication (e.g., inbound, outbound).
          type: string
        duration:
          description: Duration of the communication in seconds.
          type: string
        from:
          description: Identifier of the sender in the communication.
          type: string
        goal:
          description: Objective or goal associated with the communication.
          type: string
        leg_report:
          $ref: '#/components/schemas/proto_report2LegReport'
        questions:
          description: List of questions asked during the communication.
          items:
            type: string
          type: array
        recipient:
          description: Name or identifier of the recipient.
          type: string
        recipient_data:
          description: Additional data related to the recipient.
          type: string
        record_url:
          description: URL to access the recording of the communication.
          type: string
        scenario_name:
          description: Name of the scenario under which the communication was executed.
          type: string
        scenario_sid:
          description: Scenario SID associated with the communication.
          type: string
        scenario_version:
          description: Version number of the scenario.
          format: int32
          type: integer
        sms_report:
          description: List of SMS reports related to this communication.
          items:
            $ref: '#/components/schemas/proto_report2SMSReport'
          type: array
        status:
          description: Current status of the communication (e.g., completed, failed).
          type: string
        to:
          description: Identifier of the recipient in the communication.
          type: string
        updated_at:
          description: Timestamp when the communication record was last updated.
          format: date-time
          type: string
      type: object
    proto_report2SMSReport:
      properties:
        name:
          description: Name corresponding to the State ID.
          type: string
        value:
          description: Value indicating the current status of the SMS.
          type: string
      type: object
    proto_scenarioAction:
      properties:
        call_forward:
          $ref: '#/components/schemas/proto_scenarioCallForward'
        type:
          type: string
      type: object
    proto_scenarioActionHandler:
      properties:
        properties:
          additionalProperties:
            type: string
          description: Properties
          type: object
        type:
          description: Type
          type: string
      type: object
    proto_scenarioAnswerSTT:
      properties:
        call:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioCall'
            - description: Call forward setup
        description:
          description: Description
          type: string
        dtmf_input:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioDTMFInput'
            - description: DTMF Input properties
        goal_decision:
          description: Goal decision value
          type: string
        input_value:
          description: Input value
          type: string
        is_farewell_answer:
          description: Is farewell answer
          type: boolean
        speech_input:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSpeechInput'
            - description: Speech Input properties
      type: object
    proto_scenarioAnswerV3:
      properties:
        action:
          $ref: '#/components/schemas/proto_scenarioAction'
        description:
          type: string
        dtmf_input:
          $ref: '#/components/schemas/proto_scenarioDTMFInput'
        goal_decision:
          type: string
        input_value:
          type: string
        speech_input:
          $ref: '#/components/schemas/proto_scenarioSpeechInput'
      type: object
    proto_scenarioAudioFile:
      properties:
        url:
          description: file link
          type: string
      type: object
    proto_scenarioBrick:
      properties:
        id:
          description: ID
          type: string
        type:
          description: Type
          type: string
        version:
          description: Brick version
          type: string
      type: object
    proto_scenarioCall:
      properties:
        delay_before:
          format: int64
          type: integer
        from:
          type: string
        timeout:
          format: int64
          type: integer
        to:
          type: string
        whisper_a:
          $ref: '#/components/schemas/proto_scenarioPlayAudio'
        whisper_b:
          $ref: '#/components/schemas/proto_scenarioPlayAudio'
      type: object
    proto_scenarioCallForward:
      properties:
        call:
          $ref: '#/components/schemas/proto_scenarioCall'
        message_before:
          $ref: '#/components/schemas/proto_scenarioPlayAudio'
      type: object
    proto_scenarioCondition:
      properties:
        lhs_value:
          description: Left value
          type: string
        operator:
          description: Operator
          type: string
        rhs_value:
          description: Right value
          type: string
      type: object
    proto_scenarioConditionGroup:
      properties:
        condition_list:
          description: Condition list
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioCondition'
              - type: object
          type: array
        condition_list_operator:
          description: 'Condition list operator: ''OR'' or ''AND'''
          type: string
      type: object
    proto_scenarioConstructionQuestionV1Intent:
      properties:
        id:
          description: Intent id
          type: string
      type: object
    proto_scenarioConstructor:
      properties:
        bricks:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorBricks'
            - description: Bricks grouped by brick type and version
        forest:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorForest'
            - description: Node tree that declares how user will transition from brick to brick using output links
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorProperties'
            - description: Properties is a global properties of constructor scenario type
      type: object
    proto_scenarioConstructorAIAgent:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorAIAgentV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorAIAgentV1Configuration:
      properties:
        dialog:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1ConfigurationDialog'
            - description: Dialog context configuration
        llm:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1ConfigurationLLM'
            - description: LLM configuration
        stt:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTProperties'
            - description: STT configuration
        tts:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1TTSProperties'
            - description: TTS configuration
      type: object
    proto_scenarioConstructorAIAgentV1ConfigurationDialog:
      properties:
        context_mode:
          description: 'Dialog context mode: ai_agent_only (default) or full_scenario_dialogue'
          type: string
        max_turns:
          description: Number of turns to include (0 = full dialogue history). Only used when context_mode is full_scenario_dialogue
          format: int32
          type: integer
      type: object
    proto_scenarioConstructorAIAgentV1ConfigurationLLM:
      properties:
        engine:
          description: Engine (open_ai or azure)
          type: string
        gdpr_required:
          description: GDPR required flag
          type: boolean
        max_tokens:
          description: Maximum number of tokens to generate
          format: int32
          type: integer
        model:
          description: Model name
          type: string
        provider:
          description: LLM provider (claude, openai, gemini, mistral)
          type: string
        temperature:
          description: Temperature for generation
          format: float
          type: number
      type: object
    proto_scenarioConstructorAIAgentV1Fallbacks:
      properties:
        empty:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1FallbacksEmpty'
            - description: Empty fallback configuration
        error:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1FallbacksError'
            - description: Error fallback configuration
      type: object
    proto_scenarioConstructorAIAgentV1FallbacksEmpty:
      properties:
        counter:
          description: Empty counter
          format: int32
          type: integer
      type: object
    proto_scenarioConstructorAIAgentV1FallbacksError:
      properties:
        counter:
          description: Error counter
          format: int32
          type: integer
      type: object
    proto_scenarioConstructorAIAgentV1KnowledgeBase:
      properties:
        prompt:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1KnowledgeBasePrompt'
            - description: Prompt knowledge base configuration
        rag:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1KnowledgeBaseRAG'
            - description: RAG knowledge base configuration
        type:
          description: Type of the knowledge base (prompt or rag)
          type: string
      type: object
    proto_scenarioConstructorAIAgentV1KnowledgeBasePrompt:
      properties:
        content:
          description: Content of the prompt
          type: string
      type: object
    proto_scenarioConstructorAIAgentV1KnowledgeBaseRAG:
      properties:
        document:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1KnowledgeBaseRAGDocument'
            - description: Document configuration
      type: object
    proto_scenarioConstructorAIAgentV1KnowledgeBaseRAGDocument:
      properties:
        ids:
          description: IDs of the documents
          items:
            type: string
          type: array
        number:
          description: Number of documents to retrieve
          format: int32
          type: integer
        threshold:
          description: Threshold for document retrieval
          format: float
          type: number
      type: object
    proto_scenarioConstructorAIAgentV1Prompts:
      properties:
        initial_phrase:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1PromptsInitialPhrase'
            - description: Initial phrase prompt
        restrictions:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1PromptsRestrictions'
            - description: Restrictions prompt
        role:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1PromptsRole'
            - description: Role prompt
      type: object
    proto_scenarioConstructorAIAgentV1PromptsInitialPhrase:
      properties:
        content:
          description: Content of the initial phrase
          type: string
        is_interruptible:
          description: Whether the initial phrase can be interrupted
          type: boolean
      type: object
    proto_scenarioConstructorAIAgentV1PromptsRestrictions:
      properties:
        content:
          description: Content of the restrictions prompt
          type: string
      type: object
    proto_scenarioConstructorAIAgentV1PromptsRole:
      properties:
        content:
          description: Content of the role prompt
          type: string
      type: object
    proto_scenarioConstructorAIAgentV1Properties:
      properties:
        configuration:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1Configuration'
            - description: Agent configuration
        fallbacks:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1Fallbacks'
            - description: Fallbacks configuration
        knowledge_base:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1KnowledgeBase'
            - description: Knowledge base configuration
        prompts:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1Prompts'
            - description: Prompts configuration
        skill:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1Skill'
            - description: Skills configuration
      type: object
    proto_scenarioConstructorAIAgentV1Skill:
      properties:
        skills:
          description: List of skills
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1SkillItem'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorAIAgentV1SkillItem:
      properties:
        description:
          description: Description of the skill
          type: string
        function_name:
          description: Function name of the skill
          type: string
        id:
          description: ID of the skill
          type: string
        name:
          description: Name of the skill
          type: string
        parameters:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1SkillParameters'
            - description: Parameters of the skill
      type: object
    proto_scenarioConstructorAIAgentV1SkillParameters:
      properties:
        additional_properties:
          description: Whether additional properties are allowed
          type: boolean
        properties:
          additionalProperties:
            $ref: '#/components/schemas/proto_scenarioConstructorAIAgentV1SkillProperty'
          description: Properties of the parameters
          type: object
        required:
          description: List of required properties
          items:
            type: string
          type: array
        type:
          description: Type of the parameters (object)
          type: string
      type: object
    proto_scenarioConstructorAIAgentV1SkillProperty:
      properties:
        default:
          description: Default value of the property
          type: string
        description:
          description: Description of the property
          type: string
        enum:
          description: Enum values of the property
          items:
            type: string
          type: array
        type:
          description: Type of the property (string, number, boolean, array, object)
          type: string
        variable_name:
          description: Variable name of the property
          type: string
      type: object
    proto_scenarioConstructorAssignment:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorAssignmentV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorAssignmentProperties:
      properties:
        variables:
          description: Variable list
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorAssignmentVariables'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorAssignmentV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAssignmentProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorAssignmentVariables:
      properties:
        name:
          description: Name
          type: string
        value:
          description: Value
          type: string
      type: object
    proto_scenarioConstructorAudio:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorAudioV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorAudioFile:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorAudioFileV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorAudioFileProperties:
      properties:
        url:
          description: URL of file
          type: string
      type: object
    proto_scenarioConstructorAudioFileV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAudioFileProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorAudioProperties:
      properties:
        audios:
          description: Audios list
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorAudioV1Audio'
              - type: object
          type: array
        play_mode:
          description: Mode of audio list play (all, one_next or one_random)
          type: string
        tts_general:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorTTSDefault'
            - description: TTS General props. Applied for all tts audios in audio brick
      type: object
    proto_scenarioConstructorAudioPropertiesTTS:
      properties:
        text:
          description: Text
          type: string
      type: object
    proto_scenarioConstructorAudioTTS:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorAudioTTSV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorAudioTTSProperties:
      properties:
        engine:
          description: Engine
          type: string
        language:
          description: Language
          type: string
        model:
          description: Model
          type: string
        text:
          description: Text
          type: string
        voice:
          description: Voice
          type: string
      type: object
    proto_scenarioConstructorAudioTTSV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAudioTTSProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorAudioV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAudioProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorAudioV1Audio:
      properties:
        file_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioAudioFile'
            - description: file properties
        mode:
          description: Mode of audio (tts or file)
          type: string
        tts_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAudioPropertiesTTS'
            - description: tts properties
      type: object
    proto_scenarioConstructorBackgroundAudio:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBackgroundAudioV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorBackgroundAudioV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorBackgroundAudioV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorBackgroundAudioV1Audio:
      properties:
        audios:
          description: Audios list
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBackgroundAudioV1AudioItem'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorBackgroundAudioV1AudioItem:
      properties:
        file_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioAudioFile'
            - description: file properties
        mode:
          description: Mode of audio (tts or file)
          type: string
        volume:
          description: 'audio volume (min: 1, max: 200)'
          format: int64
          type: integer
      type: object
    proto_scenarioConstructorBackgroundAudioV1Properties:
      properties:
        audio:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorBackgroundAudioV1Audio'
            - description: Audio params
      type: object
    proto_scenarioConstructorBrickOutput:
      properties:
        description:
          description: Brick output description
          type: string
        type:
          description: Type
          type: string
      type: object
    proto_scenarioConstructorBricks:
      properties:
        ai_agent:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAIAgent'
            - description: AI Agent brick that provides conversational AI capabilities with skills and knowledge base
        assignment:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAssignment'
            - description: Assignment sets variables
        audio:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAudio'
            - description: Audio brick, plays audio using Text-To-Speech (TTS) or Audio File
        audio_file:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAudioFile'
            - description: AudioFile brick plays audio to the user from the file
        audio_tts:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorAudioTTS'
            - description: AudioTTS brick plays audio to the user from the text-to-speech
        background_audio:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorBackgroundAudio'
            - description: BackgroundAudio is a brick on scenario that sets on unsets background audio sound when platform engine version v2 is used
        business_metric:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorBusinessMetric'
            - description: Business metric brick that allows to set business metrics for tracking
        call_transfer:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorCallTransfer'
            - description: CallTransfer brick connects recipient with other leg (e.g. forward call to operator)
        condition_group:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorConditionGroup'
            - description: Condition group allows to compare variable with basic condition operators
        data_mapping:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorDataMapping'
            - description: ConstructorDataMapping is a brick that receives JSON input from text field (or variable) and maps response to variables
        end:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorEnd'
            - description: End brick declares exit from tree (scenario). Main tree scenario end also finishes the call.
        end_call:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorEndCall'
            - description: End call brick used to finish 'call' with user
        end_tree:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorEndTree'
            - description: EndTree is a brick on scenario that contains setup for 1 of outputs in parent scenario and directs flow to exit into that output from child scenario
        goal:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorGoal'
            - description: Goal brick sets goal for communication
        inbound_call:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorInboundCall'
            - description: InboundCall brick declares start of inbound call scenario
        increment:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorIncrement'
            - description: Increments changes digit value of variable by incrementing/decrementing
        javascript:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorJavaScript'
            - description: JavaScript
        openai_chat_history_record:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatHistoryRecord'
            - description: OpenAIChatHistoryRecord is a brick that add messages to dialog context
        openai_chat_stream_question:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamQuestion'
            - description: OpenAIChatStreamQuestion is a brick that speak streaming response from open ai
        openai_chat_stream_run:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRun'
            - description: OpenAIChatStreamRun is a brick that initialises open ai streaming request
        outbound_call:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOutboundCall'
            - description: OutboundCall brick declares start of outbound call scenario
        question:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestion'
            - description: 'Question brick is a combination of play audio file/tts and input from the user. Supports 4 types of question: Open Speech, Closed Speech, Open DTMF, Closed DTMF'
        recording_setup:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorRecordingSetup'
            - description: RecordingSetup brick enables personal data content persistence mid-call for GDPR consent-based recording control
        send_dtmf:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorSendDTMF'
            - description: Send DTMF brick that sends DTMF tones during a call
        sms:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorSms'
            - description: SMS brick sends sms
        start_call:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorStartCall'
            - description: StartCall is the first brick that starts the flow. Also holds global properties
        start_tree:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorStartTree'
            - description: Start brick is used to start nested scenarios in the child trees (sub-scenario)
        transcription:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorTranscription'
            - description: Transcription brick allows to execute transcription using whisper model to latest recorded speech of user
        tree:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorRunTree'
            - description: Tree is a brick on scenario that runs sub-scenario flow by tree_id link
        warm_up_tts:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWarmUpTTS'
            - description: Warm up TTSs with variables by references to bricks with TTS (audio, audio_tts, question, call_transfer)
        webhook:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhook'
            - description: Webhook is a brick that trigger external request. Supports only HTTP requests
      type: object
    proto_scenarioConstructorBusinessMetric:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBusinessMetricV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorBusinessMetricProperties:
      properties:
        key:
          description: Key of the business metric
          type: string
        value:
          description: Value of the business metric
          type: string
      type: object
    proto_scenarioConstructorBusinessMetricV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorBusinessMetricProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorCallTransfer:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorCallTransferV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorCallTransferProperties:
      properties:
        from:
          description: From
          type: string
        message_to_client:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWhisperProperties'
            - description: Message to client (audio or tts)
        message_to_manager:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWhisperProperties'
            - description: Message to manager (audio or tts)
        number:
          description: Number
          type: string
        sip_header:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorCallTransferSIPHeaderProperties'
            - description: SIP header
        timeout:
          description: Timeout in seconds
          format: int64
          type: integer
        transfer_mode:
          description: 'Transfer mode: bridge (default, platform keeps control) or refer (SIP REFER hand-off)'
          type: string
        tts_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorTTSProperties'
            - description: TTS properties
      type: object
    proto_scenarioConstructorCallTransferSIPHeader:
      properties:
        name:
          description: Name
          type: string
        value:
          description: Value
          type: string
      type: object
    proto_scenarioConstructorCallTransferSIPHeaderProperties:
      properties:
        sip_headers:
          description: SIP headers
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorCallTransferSIPHeader'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorCallTransferV1:
      properties:
        description:
          description: Description
          type: string
        id:
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorCallTransferProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorConditionGroup:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorConditionGroupV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorConditionGroupProperties:
      properties:
        condition:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorConditionGroupPropertiesCondition'
            - description: Condition Group container for conditions
      type: object
    proto_scenarioConstructorConditionGroupPropertiesCondition:
      properties:
        conditions:
          description: Condition Group conditions
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorConditionGroupPropertiesConditionConditions'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorConditionGroupPropertiesConditionConditions:
      properties:
        condition_id:
          description: Id
          type: string
        condition_operator:
          description: Group operator AND/OR
          type: string
        description:
          description: Description
          type: string
        elements:
          description: Conditions
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioScenarioConstructorConditionElement'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorConditionGroupV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorConditionGroupProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorDataMapping:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorDataMappingV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorDataMappingV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorDataMappingV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorDataMappingV1Properties:
      properties:
        input:
          type: string
        variables:
          description: List of variables to map
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorDataMappingkV1ResponseMappingVariable'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorDataMappingkV1ResponseMappingVariable:
      properties:
        name:
          description: Name of variable with curly brackets
          type: string
        path:
          description: Path in JSON body
          type: string
        set_if_not_found:
          description: Set value if field was not found by it's path
          type: string
      type: object
    proto_scenarioConstructorEnd:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorEndV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorEndCall:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorEndCallV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorEndCallProperties:
      properties:
        signal:
          description: Termination signal
          type: string
      type: object
    proto_scenarioConstructorEndCallV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorEndCallProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorEndProperties:
      type: object
    proto_scenarioConstructorEndTree:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorEndTreeV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorEndTreeV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorEndTreeV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorEndTreeV1Properties:
      properties:
        output:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorEndTreeV1PropertiesOutput'
            - description: Output details
      type: object
    proto_scenarioConstructorEndTreeV1PropertiesOutput:
      properties:
        description:
          description: Output description
          type: string
        type:
          description: Output type
          type: string
      type: object
    proto_scenarioConstructorEndV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorEndProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorForest:
      properties:
        trees:
          description: Tree list
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorTree'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorGoal:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorGoalV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorGoalProperties:
      properties:
        goal:
          description: ID
          type: string
      type: object
    proto_scenarioConstructorGoalV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorGoalProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorInboundCall:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorInboundCallV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorInboundCallProperties:
      type: object
    proto_scenarioConstructorInboundCallV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorInboundCallProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorIncrement:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorIncrementV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorIncrementProperties:
      properties:
        variables:
          description: Variable list
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorIncrementVariables'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorIncrementV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorIncrementProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorIncrementVariables:
      properties:
        variable:
          description: Name
          type: string
      type: object
    proto_scenarioConstructorJavaScript:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorJavaScriptV1'
              - type: object
          type: array
        v2:
          description: Brick version v2
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorJavaScriptV2'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorJavaScriptV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorJavaScriptV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorJavaScriptV1Properties:
      properties:
        source:
          description: Source code
          type: string
      type: object
    proto_scenarioConstructorJavaScriptV2:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorJavaScriptV2Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorJavaScriptV2Properties:
      properties:
        input_variables:
          description: List of variable names whose values should be captured as input when the brick executes (without brackets, e.g. 'var1', not '{{var1}}')
          items:
            type: string
          type: array
        url:
          description: URL to JavaScript resource
          type: string
      type: object
    proto_scenarioConstructorOpenAIChatHistoryRecord:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatHistoryRecordV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorOpenAIChatHistoryRecordV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatHistoryRecordV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorOpenAIChatHistoryRecordV1Properties:
      properties:
        messages:
          description: Messages
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1Message'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorOpenAIChatStreamQuestion:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamQuestionV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorOpenAIChatStreamQuestionV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamQuestionV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorOpenAIChatStreamQuestionV1Audio:
      properties:
        wait_content:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWaitAudioContainer'
            - description: Wait Audios
        wait_content_after_limit:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWaitAudioContainer'
            - description: Wait Audios after play limit has been reached
        wait_function_arguments:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWaitAudioContainer'
            - description: Wait Audios for function arguments
      type: object
    proto_scenarioConstructorOpenAIChatStreamQuestionV1Properties:
      properties:
        audio:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamQuestionV1Audio'
            - description: Audios playing while receiving stream
        engine:
          description: 'Stream engine: open_ai or azure'
          type: string
        error_key:
          description: Error key
          type: string
        run:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1Properties'
            - description: Run`s properties, which started on valid and empty for the next question iteration
        stream_id:
          description: Stream ID
          type: string
        stt_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIQuestionSTTProperties'
            - description: STT Properties
        tts_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1TTSProperties'
            - description: TTS Properties
      type: object
    proto_scenarioConstructorOpenAIChatStreamRun:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorOpenAIChatStreamRunV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorOpenAIChatStreamRunV1Function:
      properties:
        description:
          description: Function description
          type: string
        name:
          description: Function name
          type: string
        parameters:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1FunctionParameters'
            - description: Function parameters
      type: object
    proto_scenarioConstructorOpenAIChatStreamRunV1FunctionParameters:
      properties:
        properties:
          additionalProperties:
            $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1FunctionProperties'
          description: Properties
          type: object
        required:
          description: Required
          items:
            type: string
          type: array
        type:
          description: Type
          type: string
      type: object
    proto_scenarioConstructorOpenAIChatStreamRunV1FunctionProperties:
      properties:
        description:
          description: Description
          type: string
        enum:
          description: Enum
          items:
            type: string
          type: array
        items:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1FunctionProperties'
            - description: Items properties
        properties:
          additionalProperties:
            $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1FunctionProperties'
          description: Properties
          type: object
        type:
          description: Type
          type: string
      type: object
    proto_scenarioConstructorOpenAIChatStreamRunV1Message:
      properties:
        content:
          description: Content
          type: string
        name:
          description: The `name` of function for which the result is returned, in `role` field must be `function`, in the `content` the result parameters in json format
          type: string
        role:
          description: Role
          type: string
      type: object
    proto_scenarioConstructorOpenAIChatStreamRunV1Properties:
      properties:
        engine:
          description: 'Stream engine: open_ai or azure'
          type: string
        error_key:
          description: Stream init error key
          type: string
        functions:
          description: Functions
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1Function'
              - type: object
          type: array
        messages:
          description: Messages
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1Message'
              - type: object
          type: array
        model:
          description: OpenAI model
          type: string
        rag:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1RAG'
            - description: RAG properties
        stream_id_key:
          description: Stream identifier key
          type: string
      type: object
    proto_scenarioConstructorOpenAIChatStreamRunV1RAG:
      properties:
        document:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1RAGDocument'
            - description: RAG document properties
        is_limit_with_documents:
          description: Limit with documents flag
          type: boolean
      type: object
    proto_scenarioConstructorOpenAIChatStreamRunV1RAGDocument:
      properties:
        ids:
          description: Document IDs
          items:
            type: string
          type: array
        number:
          description: Number of documents
          format: int32
          type: integer
        threshold:
          description: Threshold value
          format: float
          type: number
      type: object
    proto_scenarioConstructorOpenAIQuestionSTTInterruption:
      properties:
        last_part_shift:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIQuestionSTTInterruptionLastPartShift'
            - description: Shift settings of last part if mode is 'last_part_only'
        mode:
          description: Interruption mode can be 'all', 'none' or 'last_part_only'
          type: string
      type: object
    proto_scenarioConstructorOpenAIQuestionSTTInterruptionLastPartShift:
      properties:
        direction:
          description: Shift direction
          type: string
        duration:
          description: Shift duration
          format: float
          type: number
      type: object
    proto_scenarioConstructorOpenAIQuestionSTTProperties:
      properties:
        class_token:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTClassToken'
            - description: Class tokens instruct engine how to recognize type of data
        enable_voice_activity_detection:
          description: Enable voice activity detection
          type: boolean
        engine:
          description: Engine
          type: string
        fallback_languages:
          description: List of available fallback languages in case of `language` field is 'auto'
          items:
            type: string
          type: array
        filter:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTFilter'
            - description: Filters are applied to user input and retrieve structured information, e.g. Numeric filter returns number filtered from input
        grammar_parameter:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTGrammarParameter'
            - description: Grammar parameters are used to extend the functionality of grammar files
        interruption:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIQuestionSTTInterruption'
            - description: Interruption settings
        language:
          description: Language
          type: string
        model:
          description: Engine model
          type: string
        no_input_timeout:
          description: No input timeout
          format: float
          type: number
        primary_language:
          description: Primary language if `language` field is 'auto'
          type: string
        speech_timeout:
          description: Speech timeout
          format: float
          type: number
        tokens:
          description: Tokens are preference recognition words for open speech question
          items:
            type: string
          type: array
      type: object
    proto_scenarioConstructorOutboundCall:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorOutboundCallV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorOutboundCallProperties:
      properties:
        is_voicemail:
          description: Is Voicemail detection enabled
          type: boolean
      type: object
    proto_scenarioConstructorOutboundCallV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorOutboundCallProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorProperties:
      properties:
        engine_version:
          description: 'Engine version is field that instructs which version of platform to use: v1 or v2'
          type: string
      type: object
    proto_scenarioConstructorQuestion:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorQuestionV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorQuestionV1Answer:
      properties:
        answers:
          description: Answers
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1AnswerItem'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorQuestionV1AnswerItem:
      properties:
        answer_id:
          description: ID
          type: string
        description:
          description: Description
          type: string
        dtmf_input:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1DTMFInput'
            - description: DMTF input settings
        speech_input:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1SpeechInput'
            - description: Speech input settings
        tag:
          description: tag
          type: string
      type: object
    proto_scenarioConstructorQuestionV1Audio:
      properties:
        file:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1AudioFile'
            - description: file properties
        mode:
          description: Mode of audio (tts or file)
          type: string
        tts:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1TTS'
            - description: tts properties
      type: object
    proto_scenarioConstructorQuestionV1AudioFile:
      properties:
        url:
          description: URL
          type: string
      type: object
    proto_scenarioConstructorQuestionV1DTMFInput:
      properties:
        value:
          description: DTFM input value
          type: string
      type: object
    proto_scenarioConstructorQuestionV1DTMFProperties:
      properties:
        dtmf_timeout:
          description: Timeout during input
          format: float
          type: number
        finish_on_key:
          description: 'DTMF input completion character, e.g. #'
          type: string
        max_symbols:
          description: If the maximum amount of symbols is reached, the input will be completed. In close question will calculate automatically based on length of answers.
          format: int64
          type: integer
        min_symbols:
          description: Min amount of symbols. In close question will calculate automatically based on length of answers.
          format: int64
          type: integer
        no_input_timeout:
          description: Timeout if no input
          format: float
          type: number
      type: object
    proto_scenarioConstructorQuestionV1Entity:
      properties:
        type:
          description: Entity type
          type: string
        variable:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1EntityVariable'
            - description: Entity variable
      type: object
    proto_scenarioConstructorQuestionV1EntityProperties:
      properties:
        entities:
          description: Entities
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1Entity'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorQuestionV1EntityVariable:
      properties:
        name:
          description: Variable name
          type: string
      type: object
    proto_scenarioConstructorQuestionV1FallbackEmpty:
      properties:
        fallbacks:
          description: Fallbacks
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1FallbackItem'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorQuestionV1FallbackInvalid:
      properties:
        entity:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1EntityProperties'
            - description: Entity properties for invalid
        fallbacks:
          description: Fallbacks
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1FallbackItem'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorQuestionV1FallbackItem:
      properties:
        audio:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1Audio'
            - description: Audio TTS or File properties
        is_interruptible:
          description: Is interruptible
          type: boolean
        is_repeat_statement:
          description: Repeat statement flag
          type: boolean
        llm_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1LLMProperties'
            - description: LLM properties
        type:
          description: 'Type: initial | custom | llm'
          type: string
      type: object
    proto_scenarioConstructorQuestionV1IntentProperties:
      properties:
        classifier_id:
          description: Classifier ID
          type: string
        llm_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1LLMProperties'
            - description: LLM properties
        threshold:
          description: Threshold
          format: float
          type: number
      type: object
    proto_scenarioConstructorQuestionV1LLMProperties:
      properties:
        engine:
          description: Engine
          type: string
        gdpr_required:
          description: GDPR required flag
          type: boolean
        messages:
          description: Messages
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorOpenAIChatStreamRunV1Message'
              - type: object
          type: array
        model:
          description: Model
          type: string
        provider:
          description: LLM provider (claude, openai, gemini, mistral)
          type: string
        temperature:
          description: Temperature
          format: float
          type: number
      type: object
    proto_scenarioConstructorQuestionV1Properties:
      properties:
        answer:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1Answer'
            - description: List of possible answers for closed questions
        dtmf_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1DTMFProperties'
            - description: DTMF Properties
        entity:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1EntityProperties'
            - description: Entity properties
        fallback_empty:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1FallbackEmpty'
            - description: Fallbacks for handling empty input
        fallback_invalid:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1FallbackInvalid'
            - description: Fallbacks for handling invalid input in closed questions
        input_mode:
          description: Input mode (dtmf or speech)
          type: string
        statement:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1Statement'
            - description: Audio file or TTS that can be interrupted
        stt_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTProperties'
            - description: STT Properties
        tts_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1TTSProperties'
            - description: TTS Properties
        type:
          description: Type (closed or open)
          type: string
      type: object
    proto_scenarioConstructorQuestionV1STTClassToken:
      properties:
        tokens:
          description: list of class tokens
          items:
            type: string
          type: array
      type: object
    proto_scenarioConstructorQuestionV1STTEndpointDetection:
      properties:
        enabled:
          description: Enable endpoint detection
          type: boolean
        latency_adjustment_level:
          description: Endpoint latency adjustment level (0, 1, 2 or 3)
          format: int64
          type: integer
        max_delay_ms:
          description: Maximum endpoint delay in milliseconds, from 500 to 3000
          format: int64
          type: integer
        sensitivity:
          description: Endpoint sensitivity, from -1.0 to 1.0
          format: float
          type: number
      type: object
    proto_scenarioConstructorQuestionV1STTFilter:
      properties:
        filters:
          description: list of filters
          items:
            type: string
          type: array
      type: object
    proto_scenarioConstructorQuestionV1STTGrammarParam:
      properties:
        key:
          description: key  of grammar param
          type: string
        value:
          description: value of grammar param
          type: string
      type: object
    proto_scenarioConstructorQuestionV1STTGrammarParameter:
      properties:
        parameters:
          description: grammar parameters
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTGrammarParam'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorQuestionV1STTProperties:
      properties:
        class_token:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTClassToken'
            - description: Class tokens instruct engine how to recognize type of data
        enable_voice_activity_detection:
          description: Enable voice activity detection
          type: boolean
        endpoint_detection:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTEndpointDetection'
            - description: Soniox endpoint detection settings
        engine:
          type: string
        fallback_languages:
          description: List of available fallback languages in case of `language` field is 'auto'
          items:
            type: string
          type: array
        filter:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTFilter'
            - description: Filters are applied to user input and retrieve structured information, e.g. Numeric filter returns number filtered from input
        grammar_parameter:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTGrammarParameter'
            - description: Grammar parameters are used to extend the functionality of grammar files
        intent_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1IntentProperties'
            - description: Intent properties specifying which classifier to use
        interruptible_dialog:
          description: Enable interruptible dialog during speech recognition
          type: boolean
        interruption_shift:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTShift'
            - description: Interruption shift configuration for STT
        language:
          type: string
        model:
          description: Model of STT engine
          type: string
        no_input_timeout:
          format: float
          type: number
        primary_language:
          description: Primary language if `language` field is 'auto'
          type: string
        recognition_mode:
          description: 'Recognition mode for v2: constant | interim'
          type: string
        recognition_shift:
          $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTShift'
        speech_timeout:
          format: float
          type: number
        timezone:
          description: Time zone
          type: string
        tokens:
          description: Tokens are preference recognition words for open speech question
          items:
            type: string
          type: array
      type: object
    proto_scenarioConstructorQuestionV1STTShift:
      properties:
        direction:
          description: Shift direction
          type: string
        duration:
          description: Shift duration
          format: float
          type: number
      type: object
    proto_scenarioConstructorQuestionV1SpeechInput:
      properties:
        entity:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1EntityProperties'
            - description: Entity recognition
        intent:
          $ref: '#/components/schemas/proto_scenarioConstructionQuestionV1Intent'
        mode:
          description: 'mode of speech input: "intent-based" or "token-based"'
          type: string
        tokens:
          description: Array of input tokens
          items:
            type: string
          type: array
      type: object
    proto_scenarioConstructorQuestionV1Statement:
      properties:
        audio:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1Audio'
            - description: Audio TTS or File properties
        is_interruptible:
          description: Is interruptible
          type: boolean
      type: object
    proto_scenarioConstructorQuestionV1TTS:
      properties:
        text:
          description: Text
          type: string
      type: object
    proto_scenarioConstructorQuestionV1TTSProperties:
      properties:
        engine:
          description: Engine
          type: string
        language:
          description: Language
          type: string
        model:
          description: Model
          type: string
        speed:
          description: Speed
          format: float
          type: number
        voice:
          description: Voice
          type: string
      type: object
    proto_scenarioConstructorRecordingSetup:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorRecordingSetupV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorRecordingSetupProperties:
      type: object
    proto_scenarioConstructorRecordingSetupV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorRecordingSetupProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorRunTree:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorRunTreeV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorRunTreeV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorRunTreeV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorRunTreeV1Properties:
      properties:
        tree:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorRunTreeV1PropertiesTree'
            - description: Tree reference details
      type: object
    proto_scenarioConstructorRunTreeV1PropertiesTree:
      properties:
        id:
          description: Tree id reference
          type: string
      type: object
    proto_scenarioConstructorSTTDefault:
      properties:
        endpoint_detection:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorQuestionV1STTEndpointDetection'
            - description: Soniox endpoint detection settings
        engine:
          description: Speech to text engine
          type: string
        fallback_languages:
          description: List of available fallback languages in case of `language` field is 'auto'
          items:
            type: string
          type: array
        language:
          description: Recognition language
          type: string
        model:
          description: Speech to text model
          type: string
        primary_language:
          description: Primary language if `language` field is 'auto'
          type: string
      type: object
    proto_scenarioConstructorSendDTMF:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorSendDTMFV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorSendDTMFV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorSendDTMFV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorSendDTMFV1Properties:
      properties:
        digits:
          description: DTMF digits to send
          type: string
        duration:
          description: Duration of each digit in milliseconds
          format: int64
          type: integer
        interval:
          description: Interval between digits in milliseconds
          format: int64
          type: integer
      type: object
    proto_scenarioConstructorSms:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorSmsV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorSmsV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSMS'
            - description: Properties
      type: object
    proto_scenarioConstructorStartCall:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorStartCallV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorStartCallProperties:
      properties:
        stt_general:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorSTTDefault'
            - description: STT General props. Applied when not set in Question
        tts_general:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorTTSDefault'
            - description: 'TTS General props. Applied when not set in one of following bricks: Question, AudioFile, AudioTTS, Audio'
      type: object
    proto_scenarioConstructorStartCallV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorStartCallProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorStartTree:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorStartTreeV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorStartTreeV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorStartTreeV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorStartTreeV1Properties:
      type: object
    proto_scenarioConstructorTTSDefault:
      properties:
        engine:
          description: Engine
          type: string
        language:
          description: Locale
          example: en-US
          type: string
        model:
          description: Model
          type: string
        speed:
          description: Speed
          format: float
          type: number
        voice:
          description: Voice ID (engine-specific)
          type: string
      type: object
    proto_scenarioConstructorTTSProperties:
      properties:
        engine:
          description: Engine
          type: string
        language:
          description: Language
          type: string
        model:
          description: Model
          type: string
        voice:
          description: Voice
          type: string
      type: object
    proto_scenarioConstructorTranscription:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorTranscriptionV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorTranscriptionProperties:
      properties:
        request:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorTranscriptionRequest'
            - description: Transcription request
      type: object
    proto_scenarioConstructorTranscriptionRequest:
      properties:
        requests:
          description: Transcription requests
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorTranscriptionRequestItem'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorTranscriptionRequestItem:
      properties:
        engine:
          description: 'engine (only: whisper)'
          type: string
        model:
          description: model ('gpt-4o-transcribe' or 'gpt-4o-transcribe-mini')
          type: string
        prompt:
          description: prompt (optional for prompting whisper)
          type: string
        source:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorTranscriptionSource'
            - description: Source configuration
      type: object
    proto_scenarioConstructorTranscriptionSource:
      properties:
        type:
          description: Source type (last_recording or url)
          type: string
        url:
          description: URL for audio file (required when type is url)
          type: string
      type: object
    proto_scenarioConstructorTranscriptionV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorTranscriptionProperties'
            - description: Properties
      type: object
    proto_scenarioConstructorTree:
      properties:
        description:
          description: Tree description
          type: string
        nodes:
          description: Tree nodes
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorTreeNode'
              - type: object
          type: array
        tree_id:
          description: Tree ID
          type: string
      type: object
    proto_scenarioConstructorTreeNode:
      properties:
        brick:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioBrick'
            - description: Brick
        id:
          description: ID
          type: string
        links:
          description: Links
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorTreeNodeLink'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorTreeNodeLink:
      properties:
        output_type:
          description: Output type
          type: string
        reference:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorTreeNodeLinkReference'
            - description: Reference
        return:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorTreeNodeLinkReference'
            - description: Return reference
      type: object
    proto_scenarioConstructorTreeNodeLinkReference:
      properties:
        node_id:
          description: Node ID
          type: string
        tree_id:
          description: Tree ID
          type: string
      type: object
    proto_scenarioConstructorWaitAudioContainer:
      properties:
        audios:
          description: Audios
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorAudioV1Audio'
              - type: object
          type: array
        play_limit:
          description: Play limit. 0 means no limit
          format: int64
          type: integer
        play_mode:
          description: Play mode
          type: string
      type: object
    proto_scenarioConstructorWarmUpTTS:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorWarmUpTTSV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorWarmUpTTSV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWarmUpTTSV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorWarmUpTTSV1Properties:
      properties:
        brick:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWarmUpTTSV1PropertiesBrick'
            - description: Brick properties
      type: object
    proto_scenarioConstructorWarmUpTTSV1PropertiesBrick:
      properties:
        bricks:
          description: Bricks references
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorWarmUpTTSV1PropertiesBrickItem'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorWarmUpTTSV1PropertiesBrickItem:
      properties:
        id:
          description: Brick id
          type: string
        type:
          description: Brick type
          type: string
      type: object
    proto_scenarioConstructorWebhook:
      properties:
        v1:
          description: Brick version v1
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorWebhookV1:
      properties:
        description:
          description: Description
          type: string
        id:
          description: ID
          type: string
        outputs:
          description: Outputs declaration
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorBrickOutput'
              - type: object
          type: array
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1Properties'
            - description: Properties
      type: object
    proto_scenarioConstructorWebhookV1Options:
      properties:
        async:
          description: Async request flag. If async is true request will be fired and scenario will exit through success output immediately
          type: boolean
        timeout:
          description: Timeout in seconds, request will be cancelled after exceeding timeout
          format: float
          type: number
      type: object
    proto_scenarioConstructorWebhookV1Properties:
      properties:
        options:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1Options'
            - description: Request behavior options
        request:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1Request'
            - description: HTTP request
        response_mapping:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1ResponseMapping'
            - description: Response data mapping
      type: object
    proto_scenarioConstructorWebhookV1Request:
      properties:
        attach_call_metadata:
          description: Attach call metadata to request headers
          type: boolean
        authentication:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1RequestAuthentication'
            - description: Authentication mechanism
        body:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1RequestBody'
            - description: Body payload object
        header:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1RequestHeader'
            - description: HTTP headers object
        insecure_skip_verify:
          description: Insecure skip verify flag for SSL/TLS
          type: boolean
        method:
          description: HTTP Method
          type: string
        proxy:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1RequestProxy'
            - description: Proxy
        timeout:
          description: Request timeout in seconds. If not set, defaults to 10 seconds
          format: float
          type: number
        url:
          description: URL destination
          type: string
      type: object
    proto_scenarioConstructorWebhookV1RequestAuthentication:
      properties:
        basic:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1RequestAuthenticationBasic'
            - description: Details of basic auth
        bearer:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1RequestAuthenticationBearer'
            - description: Details of bearer auth
        type:
          description: Auth type, supports "basic" or "bearer" auth
          type: string
      type: object
    proto_scenarioConstructorWebhookV1RequestAuthenticationBasic:
      properties:
        password:
          description: Basic password
          type: string
        username:
          description: Basic username
          type: string
      type: object
    proto_scenarioConstructorWebhookV1RequestAuthenticationBearer:
      properties:
        token:
          description: Bearer token
          type: string
      type: object
    proto_scenarioConstructorWebhookV1RequestBody:
      properties:
        data:
          description: Body payload when HTTP method supports it
          type: string
        form_values:
          description: Form fields for "form" body type
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1RequestBodyFormValue'
              - type: object
          type: array
        type:
          description: Body type, supports "json","text" and "form" types
          type: string
      type: object
    proto_scenarioConstructorWebhookV1RequestBodyFormValue:
      properties:
        name:
          description: Name
          type: string
        value:
          description: Value
          type: string
      type: object
    proto_scenarioConstructorWebhookV1RequestHeader:
      properties:
        headers:
          description: Headers list
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1RequestHeaderItem'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorWebhookV1RequestHeaderItem:
      properties:
        name:
          description: Header name
          type: string
        value:
          description: Header value
          type: string
      type: object
    proto_scenarioConstructorWebhookV1RequestProxy:
      properties:
        url:
          description: URL of proxy
          type: string
      type: object
    proto_scenarioConstructorWebhookV1ResponseMapping:
      properties:
        variables:
          description: List of variables to map
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1ResponseMappingVariable'
              - type: object
          type: array
      type: object
    proto_scenarioConstructorWebhookV1ResponseMappingVariable:
      properties:
        name:
          description: Name of variable with curly brackets
          type: string
        path:
          description: Path for JSON body, name of header or name of field for general (e.g. http_status_code)
          type: string
        set_if_not_found:
          description: Set value if field was not found by it's path
          type: string
        source:
          description: Source of data, choose "general", "body" or "header"
          type: string
      type: object
    proto_scenarioConstructorWhisperFile:
      properties:
        url:
          description: URL
          type: string
      type: object
    proto_scenarioConstructorWhisperProperties:
      properties:
        file:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWhisperFile'
            - description: file properties
        mode:
          description: Mode of audio (tts or file)
          type: string
        tts:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWhisperTTS'
            - description: tts properties
      type: object
    proto_scenarioConstructorWhisperTTS:
      properties:
        text:
          description: Text
          type: string
      type: object
    proto_scenarioCreateRequest:
      example:
        constructor:
          bricks:
            assignment:
              v1:
                - description: assignment_1
                  id: assignment_1
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - name: '{{name}}'
                        value: my dear man
                      - name: '{{q1_empty}}'
                        value: "0"
                      - name: '{{q1_invalid}}'
                        value: "0"
                - description: assignment_2
                  id: assignment_2
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - name: '{{q2_empty}}'
                        value: "0"
                      - name: '{{q2_invalid}}'
                        value: "0"
            audio:
              v1:
                - description: audio_1
                  id: audio_1
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Hello! This is demo of scenario constructor. Today we will test your geography and small talks knowledge
                      voice: en-US-Wavenet-B
                - description: audio_2
                  id: audio_2
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Yes, you're right! But very soon we will create call transfer brick and we'll be able to connect you with manager. Lets get back to our question now?
                      voice: en-US-Wavenet-B
                - description: audio_3
                  id: audio_3
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: I will keep your answer and use it on occasion. Lets get back to our question now?
                      voice: en-US-Wavenet-B
                - description: audio_4
                  id: audio_4
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Well, since you don't want to talk about tea, lets get back to our question?
                      voice: en-US-Wavenet-B
                - description: audio_5
                  id: audio_5
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: I didn't hear it. {{user_variable.name}}, can we try again?
                      voice: en-US-Wavenet-B
                - description: audio_6
                  id: audio_6
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Your answer is wrong. Lets try again once you'll improve your knowledge of geography.
                      voice: en-US-Wavenet-B
                - description: audio_7
                  id: audio_7
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: 'Pretty good, probably you had "A" mark in the school. Hope you had time to test our voicebot functionality. Have a nice day. '
                      voice: en-US-Wavenet-B
                - description: audio_8
                  id: audio_8
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Okay, first question
                      voice: en-US-Wavenet-B
                - description: audio_9
                  id: audio_9
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Let's move on to the second question.
                      voice: en-US-Wavenet-B
                - description: audio_10
                  id: audio_10
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Seems like you don't want to talk today. Lets try the next time. Have a nice day.
                      voice: en-US-Wavenet-B
            audio_file:
              v1:
                - description: audio_file_1
                  id: audio_file_1
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    url: https://storage.tenios.com/Weegree-IVR-RO-7-1648806041.wav
            audio_tts:
              v1:
                - description: audio_tts_1
                  id: audio_tts_1
                  outputs:
                    - description: Complete
                      type: complete
                    - description: Incomplete
                      type: incomplete
                  properties:
                    engine: google
                    language: en-US
                    text: Hello
                    voice: en-US-Wavenet-B
            condition_group:
              v1:
                - description: condition_group_q1
                  id: condition_group_q1
                  outputs:
                    - description: ""
                      type: question_1_exit
                    - description: ""
                      type: question_1_repeat
                    - description: ""
                      type: condition_group_condition_otherwise
                  properties:
                    condition:
                      conditions:
                        - condition_id: question_1_exit
                          condition_operator: or
                          elements:
                            - element_operator: greater_than
                              value: "2"
                              variable: '{{q1_empty}}'
                            - element_operator: greater_than
                              value: "2"
                              variable: '{{q1_invalid}}'
                        - condition_id: question_1_repeat
                          condition_operator: and
                          elements:
                            - element_operator: less_than
                              value: "3"
                              variable: '{{q1_empty}}'
                            - element_operator: less_than
                              value: "3"
                              variable: '{{event.input}}'
                - description: condition_group_q2
                  id: condition_group_q2
                  outputs:
                    - description: ""
                      type: question_2_exit
                    - description: ""
                      type: question_2_repeat
                    - description: ""
                      type: condition_group_condition_otherwise
                  properties:
                    condition:
                      conditions:
                        - condition_id: question_2_exit
                          condition_operator: or
                          elements:
                            - element_operator: greater_than
                              value: "2"
                              variable: '{{q2_empty}}'
                            - element_operator: greater_than
                              value: "2"
                              variable: '{{q2_invalid}}'
                        - condition_id: question_2_repeat
                          condition_operator: and
                          elements:
                            - element_operator: less_than
                              value: "3"
                              variable: '{{q2_empty}}'
                            - element_operator: less_than
                              value: "3"
                              variable: '{{q2_invalid}}'
            end:
              v1:
                - description: end_tree_1
                  id: end_tree_1
                - description: end_tree_disqualified
                  id: end_tree_disqualified
                - description: end_tree_robot
                  id: end_tree_robot
                - description: end_tree_tea
                  id: end_tree_tea
            goal:
              v1:
                - description: goal_qualified
                  id: goal_qualified
                  outputs:
                    - description: ""
                      type: complete
                  properties:
                    goal: qualified
                    priority: 8
                - description: goal_disqualified
                  id: goal_disqualified
                  outputs:
                    - description: ""
                      type: complete
                  properties:
                    goal: disqualified
                    priority: 8
            inbound_call:
              v1:
                - description: inbound_call
                  id: inbound_call
                  outputs:
                    - description: Success
                      type: success
                    - description: Fail
                      type: fail
                  properties: {}
            increment:
              v1:
                - description: increment_q1_empty
                  id: increment_q1_empty
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - variable: q1_empty
                - description: increment_q1_invalid
                  id: increment_q1_invalid
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - variable: q1_invalid
                - description: increment_q2_empty
                  id: increment_q2_empty
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - variable: q2_empty
                - description: increment_q2_invalid
                  id: increment_q2_invalid
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - variable: q2_invalid
            outbound_call:
              v1:
                - description: outbound_call
                  id: outbound_call
                  outputs:
                    - description: Success
                      type: success
                    - description: Fail
                      type: fail
                    - description: Voicemail
                      type: voicemail
                  properties:
                    is_voicemail: true
            question:
              v1:
                - description: q1
                  id: q1
                  outputs:
                    - description: ""
                      type: valid
                    - description: ""
                      type: incomplete
                    - description: ""
                      type: empty
                  properties:
                    description: Question
                    dtmf_properties:
                      dtmf_timeout: 10
                      finish_on_key: '#'
                      max_symbols: 1
                      min_symbols: 1
                      no_input_timeout: 5
                    fallback_empty:
                      fallback_empty_item:
                        - is_interruptible: false
                          is_repeat_statement: true
                    fallback_invalid:
                      fallback_invalid_item:
                        - is_interruptible: false
                          is_repeat_statement: true
                    input_mode: dtmf
                    statement:
                      audio:
                        mode: tts
                        tts:
                          text: Rate this quiz from 1 to 9 by pressing dial pad button
                      is_interruptible: true
                    stt_properties:
                      language: en-GB
                      no_input_timeout: 3.5
                      speech_timeout: 2
                    tts_properties:
                      engine: google
                      language: en-US
                      voice: en-US-Wavenet-E
                    type: open
                - description: q2
                  id: q2
                  outputs:
                    - description: ""
                      type: valid
                    - description: ""
                      type: incomplete
                    - description: ""
                      type: empty
                  properties:
                    description: Question
                    dtmf_properties:
                      dtmf_timeout: 10
                      finish_on_key: '#'
                      max_symbols: 1
                      min_symbols: 1
                      no_input_timeout: 5
                    fallback_empty:
                      fallback_empty_item:
                        - is_interruptible: false
                          is_repeat_statement: true
                    fallback_invalid:
                      fallback_invalid_item:
                        - is_interruptible: false
                          is_repeat_statement: true
                    input_mode: speech
                    statement:
                      audio:
                        mode: tts
                        tts:
                          text: Rate this quiz
                      is_interruptible: true
                    stt_properties:
                      language: en-GB
                      no_input_timeout: 3.5
                      recognition_shift:
                        direction: backward
                        duration: 5.5
                      speech_timeout: 2
                    tts_properties:
                      engine: google
                      language: en-US
                      voice: en-US-Wavenet-E
                    type: open
            sms:
              v1:
                - description: sms_qualified
                  id: sms_qualified
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: error
                  properties:
                    from: '{{campaign.sms_number}}'
                    text: Qualified
                    to: '{{recipient.number}}'
                - description: sms_disqualified
                  id: sms_disqualified
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: error
                  properties:
                    from: '{{campaign.sms_number}}'
                    text: Not qualified
                    to: '{{recipient.number}}'
            start_call:
              v1:
                - description: start_call
                  id: start_call
                  outputs:
                    - description: Outbound
                      type: outbound
                    - description: Inbound
                      type: inbound
                  properties:
                    stt_general:
                      language: en-US
                    tts_general:
                      engine: google
                      language: en-US
                      voice: en-US-Wavenet-B
            webhook:
              v1:
                - description: webhook_1
                  id: webhook_1
                  outputs:
                    - description: Processed
                      type: processed
                    - description: Fail
                      type: fail
                  properties:
                    request:
                      header:
                        headers:
                          - name: Content-Type
                            value: application/json
                      method: GET
                      url: https://timeapi.io/api/Time/current/zone?timeZone=Europe/Belgrade
                    response_mapping:
                      variables:
                        - name: '{{date}}'
                          path: $.date
                          set_if_not_found: ""
                          source: body
                        - name: '{{time}}'
                          path: $.time
                          set_if_not_found: ""
                          source: body
          forest:
            trees:
              - description: tree number one
                nodes:
                  - brick:
                      id: start_call
                      type: start_call
                      version: v1
                    id: 001_start
                    links:
                      - output_type: outbound
                        reference:
                          node_id: 005_outbound
                          tree_id: tree_1
                      - output_type: inbound
                        reference:
                          node_id: 006_inbound
                          tree_id: tree_1
                  - brick:
                      id: outbound_call
                      type: outbound_call
                      version: v1
                    id: 005_outbound
                    links:
                      - output_type: success
                        reference:
                          node_id: 010_audio
                          tree_id: tree_1
                      - output_type: fail
                        reference:
                          node_id: 010_audio
                          tree_id: tree_1
                      - output_type: voicemail
                        reference:
                          node_id: 010_audio
                          tree_id: tree_1
                  - brick:
                      id: inbound_call
                      type: inbound_call
                      version: v1
                    id: 006_inbound
                    links:
                      - output_type: success
                        reference:
                          node_id: 010_audio
                          tree_id: tree_1
                      - output_type: fail
                        reference:
                          node_id: 010_audio
                          tree_id: tree_1
                  - brick:
                      id: audio_file_1
                      type: audio_file
                      version: v1
                    id: 010_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 170_audio
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: q1
                      type: question
                      version: v1
                    id: 020_question
                    links:
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                      - output_type: valid
                        reference:
                          node_id: 240_increment
                          tree_id: tree_1
                      - output_type: empty
                        reference:
                          node_id: 230_increment
                          tree_id: tree_1
                  - brick:
                      id: goal_qualified
                      type: goal
                      version: v1
                    id: 030_goal_qualified
                    links:
                      - output_type: complete
                        reference:
                          node_id: 040_sms_qualified
                          tree_id: tree_1
                  - brick:
                      id: sms_qualified
                      type: sms
                      version: v1
                    id: 040_sms_qualified
                    links:
                      - output_type: complete
                        reference:
                          node_id: 300_end
                          tree_id: tree_1
                      - output_type: error
                        reference:
                          node_id: 300_end
                          tree_id: tree_1
                  - brick:
                      id: audio_5
                      type: audio
                      version: v1
                    id: 130_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 020_question
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_6
                      type: audio
                      version: v1
                    id: 140_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_5
                      type: audio
                      version: v1
                    id: 150_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 020_question
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_7
                      type: audio
                      version: v1
                    id: 160_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 030_goal_qualified
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_8
                      type: audio
                      version: v1
                    id: 170_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 190_assignment
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_9
                      type: audio
                      version: v1
                    id: 180_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 270_assignment
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_10
                      type: audio
                      version: v1
                    id: 220_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: assignment_1
                      type: assignment
                      version: v1
                    id: 190_assignment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 020_question
                          tree_id: tree_1
                  - brick:
                      id: assignment_2
                      type: assignment
                      version: v1
                    id: 270_assignment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 020_question
                          tree_id: tree_1
                  - brick:
                      id: increment_q1_empty
                      type: increment
                      version: v1
                    id: 230_increment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 200_condition_group
                          tree_id: tree_1
                  - brick:
                      id: increment_q1_invalid
                      type: increment
                      version: v1
                    id: 240_increment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 200_condition_group
                          tree_id: tree_1
                  - brick:
                      id: increment_q2_empty
                      type: increment
                      version: v1
                    id: 250_increment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 210_condition_group
                          tree_id: tree_1
                  - brick:
                      id: increment_q2_invalid
                      type: increment
                      version: v1
                    id: 260_increment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 210_condition_group
                          tree_id: tree_1
                  - brick:
                      id: condition_group_q1
                      type: condition_group
                      version: v1
                    id: 200_condition_group
                    links:
                      - output_type: question_1_exit
                        reference:
                          node_id: 220_audio
                          tree_id: tree_1
                      - output_type: question_1_repeat
                        reference:
                          node_id: 130_audio
                          tree_id: tree_1
                      - output_type: condition_group_condition_otherwise
                        reference:
                          node_id: 130_audio
                          tree_id: tree_1
                  - brick:
                      id: condition_group_q2
                      type: condition_group
                      version: v1
                    id: 210_condition_group
                    links:
                      - output_type: question_2_exit
                        reference:
                          node_id: 220_audio
                          tree_id: tree_1
                      - output_type: question_2_repeat
                        reference:
                          node_id: 150_audio
                          tree_id: tree_1
                      - output_type: condition_group_condition_otherwise
                        reference:
                          node_id: 130_audio
                          tree_id: tree_1
                  - brick:
                      id: end_tree_1
                      type: end
                      version: v1
                    id: 300_end
                    links: null
                tree_id: tree_1
              - description: tree number two
                nodes:
                  - brick:
                      id: goal_disqualified
                      type: goal
                      version: v1
                    id: 050_goal_disqualified
                    links:
                      - output_type: complete
                        reference:
                          node_id: 060_sms_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: sms_disqualified
                      type: sms
                      version: v1
                    id: 060_sms_disqualified
                    links:
                      - output_type: complete
                        reference:
                          node_id: 310_end
                          tree_id: tree_disqualified
                      - output_type: error
                        reference:
                          node_id: 310_end
                          tree_id: tree_disqualified
                  - brick:
                      id: end_tree_disqualified
                      type: end
                      version: v1
                    id: 310_end
                    links: null
                tree_id: tree_disqualified
              - description: tree number three
                nodes:
                  - brick:
                      id: audio_2
                      type: audio
                      version: v1
                    id: 070_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 320_end
                          tree_id: tree_robot
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: end_tree_robot
                      type: end
                      version: v1
                    id: 320_end
                    links: null
                tree_id: tree_robot
              - description: tree number four
                nodes:
                  - brick:
                      id: audio_3
                      type: audio
                      version: v1
                    id: 090_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 320_end
                          tree_id: tree_robot
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_4
                      type: audio
                      version: v1
                    id: 100_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 320_end
                          tree_id: tree_robot
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: end_tree_tea
                      type: end
                      version: v1
                    id: 330_end
                    links: null
                tree_id: tree_tea
        fix_communication_ttl: 1200
        is_shared_for_copy: true
        name: constructor
        type: constructor
      properties:
        constructor:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructor'
            - description: Properties for constructor configuration
        custom:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioCustomScenario'
            - description: Properties for custom configuration
        fix_communication_ttl:
          description: The TTL of the communication, after which it will be considered broken and will be fixed
          example: 3600
          format: int32
          type: integer
        goal:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioGoalConfiguration'
            - description: You can specify the URL to which the result of communication with each contact will be sent. More information in Webhook section.
        is_shared_for_copy:
          description: Is shared for copy permission
          type: boolean
        name:
          description: Scenario description
          type: string
        notify_event:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioNotifyEventScenario'
            - description: Properties for notify_event configuration
        notify_input_stt:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioNotifyScenarioSTT'
            - description: Properties for notify_input_stt configuration
        stt_properties_default:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSTTProperties'
            - description: global stt properties
        survey_v3:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSurveyV3'
            - description: Properties for survey_v3 configuration
        template:
          description: Template (deprecated)
          example: Template name
          type: string
        type:
          description: 'Type of scenario, support one of: survey, notify_input, notify_input_stt, notify_event, custom, survey_stt, survey_v3, constructor'
          type: string
      required:
        - type
        - name
      type: object
    proto_scenarioCustomScenario:
      properties:
        communication_id:
          description: Communication ID
          type: string
        current_state:
          description: current state ID
          type: string
        description:
          description: Description
          type: string
        states:
          description: States
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioState'
              - type: object
          type: array
        storage:
          additionalProperties:
            type: string
          description: Storage map
          type: object
      type: object
    proto_scenarioDTMFInput:
      properties:
        value:
          type: string
      type: object
    proto_scenarioDeleteReply:
      properties:
        code:
          description: Code
          type: string
        reason:
          description: Reason
          type: string
      type: object
    proto_scenarioEntryAction:
      properties:
        action:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioActionHandler'
            - description: Action
      type: object
    proto_scenarioExitAction:
      properties:
        action:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioActionHandler'
            - description: Action
        conditions:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConditionGroup'
            - description: Conditions
      type: object
    proto_scenarioFallbackAction:
      properties:
        message:
          $ref: '#/components/schemas/proto_scenarioPlayAudio'
      type: object
    proto_scenarioFallbackActionMany:
      properties:
        action:
          $ref: '#/components/schemas/proto_scenarioAction'
        goal_decision:
          type: string
        messages:
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioPlayAudio'
              - type: object
          type: array
      type: object
    proto_scenarioFarewellActions:
      properties:
        call:
          $ref: '#/components/schemas/proto_scenarioCall'
        message:
          $ref: '#/components/schemas/proto_scenarioPlayAudio'
        sms:
          $ref: '#/components/schemas/proto_scenarioSMS'
      type: object
    proto_scenarioFilter:
      properties:
        account_sid:
          type: string
        name:
          type: string
        sid:
          type: string
        type:
          type: string
      type: object
    proto_scenarioGetListReply:
      example:
        - account_sid: accae6203f7-2885-3bae-b2c8-a08be06e892a
          constructor:
            bricks:
              assignment:
                v1:
                  - description: assignment_1
                    id: assignment_1
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - value: дорогой мой человек
                          variable: name
                        - value: "0"
                          variable: q1_empty
                        - value: "0"
                          variable: q1_invalid
                  - description: assignment_2
                    id: assignment_2
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - value: "0"
                          variable: q2_empty
                        - value: "0"
                          variable: q2_invalid
              audio:
                v1:
                  - description: audio_1
                    id: audio_1
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Добрый день! Это демонстрация возможностей конструктора сценариев. И сегодня мы тестируем small talks и ваши знания по географии
                        voice: ru-RU-Wavenet-D
                  - description: audio_2
                    id: audio_2
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Да, вы угадали! Но скоро наши программисты сделают кубик звонка в конструкторе сценария и мы сможем соединить вас с менеджером, а сейчас давайте вернёмся к нашему вопросу?
                        voice: ru-RU-Wavenet-D
                  - description: audio_3
                    id: audio_3
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Я запомню ваш ответ и обязательно воспользуюсь при случае. А теперь давайте вернёмся к нашему вопросу?
                        voice: ru-RU-Wavenet-D
                  - description: audio_4
                    id: audio_4
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Ну раз вы не хотите говорить про чай, то давайте вернёмся к нашему вопросу?
                        voice: ru-RU-Wavenet-D
                  - description: audio_5
                    id: audio_5
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Что-то я не расслышал. {{user_variable.name}} давай попробуем еще раз?
                        voice: ru-RU-Wavenet-D
                  - description: audio_6
                    id: audio_6
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Ответ неверный, подтяните знания по географии и возвращайтесь
                        voice: ru-RU-Wavenet-D
                  - description: audio_7
                    id: audio_7
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Весьма неплохо, наверное в школе по географии у вас была пятёрка. Надеемся, вы успели протестировать новый функционал нашего войсбота. Всего доброго
                        voice: ru-RU-Wavenet-D
                  - description: audio_8
                    id: audio_8
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Итак, Первый вопрос
                        voice: ru-RU-Wavenet-D
                  - description: audio_9
                    id: audio_9
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Переходим ко второму вопросу
                        voice: ru-RU-Wavenet-D
                  - description: audio_10
                    id: audio_10
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Кажется, сегодня вы не настроены общаться, что ж, попробуем в другой раз. Всего доброго.
                        voice: ru-RU-Wavenet-D
              audio_file:
                v1:
                  - description: audio_file_1
                    id: audio_file_1
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      url: https://storage.tenios.com/Weegree-IVR-RO-7-1648806041.wav
              audio_tts:
                v1:
                  - description: audio_tts_1
                    id: audio_tts_1
                    outputs:
                      - description: Complete
                        type: complete
                      - description: Incomplete
                        type: incomplete
                    properties:
                      engine: google
                      language: en-US
                      text: Hello
                      voice: en-US-Wavenet-B
              call_transfer:
                v1: null
              condition_group:
                v1:
                  - description: condition_group_q1
                    id: condition_group_q1
                    outputs:
                      - description: ""
                        type: question_1_exit
                      - description: ""
                        type: question_1_repeat
                    properties:
                      outputs:
                        - elements:
                            - operator: '>'
                              value: "2"
                              variable: '{{user_variable.q1_empty}}'
                            - operator: '>'
                              value: "2"
                              variable: '{{user_variable.q1_invalid}}'
                          groupOperator: OR
                          name: question_1_exit
                        - elements:
                            - operator: <
                              value: "3"
                              variable: '{{user_variable.q1_empty}}'
                            - operator: <
                              value: "3"
                              variable: '{{user_variable.q1_invalid}}'
                          groupOperator: AND
                          name: question_1_repeat
                        - elements: null
                          groupOperator: AND
                          name: fail
                  - description: condition_group_q2
                    id: condition_group_q2
                    outputs:
                      - description: ""
                        type: question_2_exit
                      - description: ""
                        type: question_2_repeat
                    properties:
                      outputs:
                        - elements:
                            - operator: '>'
                              value: "2"
                              variable: '{{user_variable.q2_empty}}'
                            - operator: '>'
                              value: "2"
                              variable: '{{user_variable.q2_invalid}}'
                          groupOperator: OR
                          name: question_2_exit
                        - elements:
                            - operator: <
                              value: "3"
                              variable: '{{user_variable.q2_empty}}'
                            - operator: <
                              value: "3"
                              variable: '{{user_variable.q2_invalid}}'
                          groupOperator: AND
                          name: question_2_repeat
                        - elements: null
                          groupOperator: AND
                          name: fail
              end:
                v1:
                  - description: end_tree_1
                    id: end_tree_1
                    outputs: null
                    properties: {}
                  - description: end_tree_disqualified
                    id: end_tree_disqualified
                    outputs: null
                    properties: {}
                  - description: end_tree_robot
                    id: end_tree_robot
                    outputs: null
                    properties: {}
                  - description: end_tree_tea
                    id: end_tree_tea
                    outputs: null
                    properties: {}
              end_call:
                v1: null
              goal:
                v1:
                  - description: goal_qualified
                    id: goal_qualified
                    outputs:
                      - description: ""
                        type: complete
                    properties:
                      goal: qualified
                      priority: 8
                  - description: goal_disqualified
                    id: goal_disqualified
                    outputs:
                      - description: ""
                        type: complete
                    properties:
                      goal: disqualified
                      priority: 8
              inbound_call:
                v1:
                  - description: inbound_call
                    id: inbound_call
                    outputs:
                      - description: Success
                        type: success
                      - description: Fail
                        type: fail
                    properties: {}
              increment:
                v1:
                  - description: increment_q1_empty
                    id: increment_q1_empty
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - variable: q1_empty
                  - description: increment_q1_invalid
                    id: increment_q1_invalid
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - variable: q1_invalid
                  - description: increment_q2_empty
                    id: increment_q2_empty
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - variable: q2_empty
                  - description: increment_q2_invalid
                    id: increment_q2_invalid
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - variable: q2_invalid
              outbound_call:
                v1:
                  - description: outbound_call
                    id: outbound_call
                    outputs:
                      - description: Success
                        type: success
                      - description: Fail
                        type: fail
                      - description: Voicemail
                        type: voicemail
                    properties:
                      is_voicemail: true
              question:
                v1:
                  - description: q1
                    id: q1
                    outputs:
                      - description: ""
                        type: valid
                      - description: ""
                        type: incomplete
                      - description: ""
                        type: empty
                    properties:
                      answer: null
                      dtmf_properties:
                        dtmf_timeout: 10
                        finish_on_key: '#'
                        max_symbols: 1
                        min_symbols: 1
                        no_input_timeout: 5
                      fallback_empty: null
                      fallback_invalid: null
                      input_mode: dtmf
                      statement:
                        audio:
                          file:
                            url: ""
                          mode: tts
                          tts:
                            text: Rate this quiz from 1 to 9 by pressing dial pad button
                        is_interruptible: true
                      stt_properties:
                        language: en-GB
                        no_input_timeout: 3.5
                        speech_timeout: 2
                      tts_properties:
                        engine: google
                        language: en-US
                        voice: en-US-Wavenet-E
                      type: open
              sms:
                v1:
                  - description: sms_qualified
                    id: sms_qualified
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: error
                    properties:
                      from: '{{campaign.sms_number}}'
                      text: Qualified
                      to: '{{recipient.number}}'
                  - description: sms_disqualified
                    id: sms_disqualified
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: error
                    properties:
                      from: '{{campaign.sms_number}}'
                      text: Not qualified
                      to: '{{recipient.number}}'
              start: null
              start_call:
                v1:
                  - description: start_call
                    id: start_call
                    outputs:
                      - description: Outbound
                        type: outbound
                      - description: Inbound
                        type: inbound
                    properties:
                      stt_general:
                        language: en-US
                      tts_general:
                        engine: google
                        language: en-US
                        voice: en-US-Wavenet-B
            forest:
              trees:
                - description: tree number one
                  nodes:
                    - brick:
                        id: start_call
                        type: start_call
                        version: v1
                      id: 001_start
                      links:
                        - output_type: outbound
                          reference:
                            node_id: 005_outbound
                            tree_id: tree_1
                        - output_type: inbound
                          reference:
                            node_id: 006_inbound
                            tree_id: tree_1
                    - brick:
                        id: outbound_call
                        type: outbound_call
                        version: v1
                      id: 005_outbound
                      links:
                        - output_type: success
                          reference:
                            node_id: 010_audio
                            tree_id: tree_1
                        - output_type: fail
                          reference:
                            node_id: 010_audio
                            tree_id: tree_1
                        - output_type: voicemail
                          reference:
                            node_id: 010_audio
                            tree_id: tree_1
                    - brick:
                        id: inbound_call
                        type: inbound_call
                        version: v1
                      id: 006_inbound
                      links:
                        - output_type: success
                          reference:
                            node_id: 010_audio
                            tree_id: tree_1
                        - output_type: fail
                          reference:
                            node_id: 010_audio
                            tree_id: tree_1
                    - brick:
                        id: audio_file_1
                        type: audio_file
                        version: v1
                      id: 010_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 170_audio
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: q1
                        type: question
                        version: v1
                      id: 020_question
                      links:
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                        - output_type: valid
                          reference:
                            node_id: 240_increment
                            tree_id: tree_1
                        - output_type: empty
                          reference:
                            node_id: 230_increment
                            tree_id: tree_1
                    - brick:
                        id: goal_qualified
                        type: goal
                        version: v1
                      id: 030_goal_qualified
                      links:
                        - output_type: complete
                          reference:
                            node_id: 040_sms_qualified
                            tree_id: tree_1
                    - brick:
                        id: sms_qualified
                        type: sms
                        version: v1
                      id: 040_sms_qualified
                      links:
                        - output_type: complete
                          reference:
                            node_id: 300_end
                            tree_id: tree_1
                        - output_type: error
                          reference:
                            node_id: 300_end
                            tree_id: tree_1
                    - brick:
                        id: audio_5
                        type: audio
                        version: v1
                      id: 130_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 020_question
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_6
                        type: audio
                        version: v1
                      id: 140_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_5
                        type: audio
                        version: v1
                      id: 150_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 020_question
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_7
                        type: audio
                        version: v1
                      id: 160_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 030_goal_qualified
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_8
                        type: audio
                        version: v1
                      id: 170_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 190_assignment
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_9
                        type: audio
                        version: v1
                      id: 180_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 270_assignment
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_10
                        type: audio
                        version: v1
                      id: 220_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: assignment_1
                        type: assignment
                        version: v1
                      id: 190_assignment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 020_question
                            tree_id: tree_1
                    - brick:
                        id: assignment_2
                        type: assignment
                        version: v1
                      id: 270_assignment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 020_question
                            tree_id: tree_1
                    - brick:
                        id: increment_q1_empty
                        type: increment
                        version: v1
                      id: 230_increment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 200_condition_group
                            tree_id: tree_1
                    - brick:
                        id: increment_q1_invalid
                        type: increment
                        version: v1
                      id: 240_increment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 200_condition_group
                            tree_id: tree_1
                    - brick:
                        id: increment_q2_empty
                        type: increment
                        version: v1
                      id: 250_increment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 210_condition_group
                            tree_id: tree_1
                    - brick:
                        id: increment_q2_invalid
                        type: increment
                        version: v1
                      id: 260_increment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 210_condition_group
                            tree_id: tree_1
                    - brick:
                        id: condition_group_q1
                        type: condition_group
                        version: v1
                      id: 200_condition_group
                      links:
                        - output_type: question_1_exit
                          reference:
                            node_id: 220_audio
                            tree_id: tree_1
                        - output_type: question_1_repeat
                          reference:
                            node_id: 130_audio
                            tree_id: tree_1
                        - output_type: fail
                          reference:
                            node_id: 130_audio
                            tree_id: tree_1
                    - brick:
                        id: condition_group_q2
                        type: condition_group
                        version: v1
                      id: 210_condition_group
                      links:
                        - output_type: question_2_exit
                          reference:
                            node_id: 220_audio
                            tree_id: tree_1
                        - output_type: question_2_repeat
                          reference:
                            node_id: 150_audio
                            tree_id: tree_1
                        - output_type: fail
                          reference:
                            node_id: 130_audio
                            tree_id: tree_1
                    - brick:
                        id: end_tree_1
                        type: end
                        version: v1
                      id: 300_end
                      links: null
                  tree_id: tree_1
                - description: tree number two
                  nodes:
                    - brick:
                        id: goal_disqualified
                        type: goal
                        version: v1
                      id: 050_goal_disqualified
                      links:
                        - output_type: complete
                          reference:
                            node_id: 060_sms_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: sms_disqualified
                        type: sms
                        version: v1
                      id: 060_sms_disqualified
                      links:
                        - output_type: complete
                          reference:
                            node_id: 310_end
                            tree_id: tree_disqualified
                        - output_type: error
                          reference:
                            node_id: 310_end
                            tree_id: tree_disqualified
                    - brick:
                        id: end_tree_disqualified
                        type: end
                        version: v1
                      id: 310_end
                      links: null
                  tree_id: tree_disqualified
                - description: tree number three
                  nodes:
                    - brick:
                        id: audio_2
                        type: audio
                        version: v1
                      id: 070_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 320_end
                            tree_id: tree_robot
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: end_tree_robot
                        type: end
                        version: v1
                      id: 320_end
                      links: null
                  tree_id: tree_robot
                - description: tree number four
                  nodes:
                    - brick:
                        id: audio_3
                        type: audio
                        version: v1
                      id: 090_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 320_end
                            tree_id: tree_robot
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_4
                        type: audio
                        version: v1
                      id: 100_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 320_end
                            tree_id: tree_robot
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: end_tree_tea
                        type: end
                        version: v1
                      id: 330_end
                      links: null
                  tree_id: tree_tea
          fix_communication_ttl: 1200
          id: 3fb7882c-b7f1-4818-a4b5-2ee60d0866a6
          is_shared_for_copy: true
          name: constructor
          template: ""
          type: constructor
        - account_sid: accae6203f7-2885-3bae-b2c8-a08be06e892a
          constructor:
            bricks:
              assignment:
                v1:
                  - description: assignment_1
                    id: assignment_1
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - value: дорогой мой человек
                          variable: name
                        - value: "0"
                          variable: q1_empty
                        - value: "0"
                          variable: q1_invalid
                  - description: assignment_2
                    id: assignment_2
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - value: "0"
                          variable: q2_empty
                        - value: "0"
                          variable: q2_invalid
              audio:
                v1:
                  - description: audio_1
                    id: audio_1
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Добрый день! Это демонстрация возможностей конструктора сценариев. И сегодня мы тестируем small talks и ваши знания по географии
                        voice: ru-RU-Wavenet-D
                  - description: audio_2
                    id: audio_2
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Да, вы угадали! Но скоро наши программисты сделают кубик звонка в конструкторе сценария и мы сможем соединить вас с менеджером, а сейчас давайте вернёмся к нашему вопросу?
                        voice: ru-RU-Wavenet-D
                  - description: audio_3
                    id: audio_3
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Я запомню ваш ответ и обязательно воспользуюсь при случае. А теперь давайте вернёмся к нашему вопросу?
                        voice: ru-RU-Wavenet-D
                  - description: audio_4
                    id: audio_4
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Ну раз вы не хотите говорить про чай, то давайте вернёмся к нашему вопросу?
                        voice: ru-RU-Wavenet-D
                  - description: audio_5
                    id: audio_5
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Что-то я не расслышал. {{user_variable.name}} давай попробуем еще раз?
                        voice: ru-RU-Wavenet-D
                  - description: audio_6
                    id: audio_6
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Ответ неверный, подтяните знания по географии и возвращайтесь
                        voice: ru-RU-Wavenet-D
                  - description: audio_7
                    id: audio_7
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Весьма неплохо, наверное в школе по географии у вас была пятёрка. Надеемся, вы успели протестировать новый функционал нашего войсбота. Всего доброго
                        voice: ru-RU-Wavenet-D
                  - description: audio_8
                    id: audio_8
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Итак, Первый вопрос
                        voice: ru-RU-Wavenet-D
                  - description: audio_9
                    id: audio_9
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Переходим ко второму вопросу
                        voice: ru-RU-Wavenet-D
                  - description: audio_10
                    id: audio_10
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      mode: tts
                      tts_properties:
                        engine: google
                        language: ru-RU
                        text: Кажется, сегодня вы не настроены общаться, что ж, попробуем в другой раз. Всего доброго.
                        voice: ru-RU-Wavenet-D
              audio_file:
                v1:
                  - description: audio_file_1
                    id: audio_file_1
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: incomplete
                    properties:
                      url: https://storage.tenios.com/Weegree-IVR-RO-7-1648806041.wav
              audio_tts:
                v1:
                  - description: audio_tts_1
                    id: audio_tts_1
                    outputs:
                      - description: Complete
                        type: complete
                      - description: Incomplete
                        type: incomplete
                    properties:
                      engine: google
                      language: en-US
                      text: Hello
                      voice: en-US-Wavenet-B
              call_transfer:
                v1: null
              condition_group:
                v1:
                  - description: condition_group_q1
                    id: condition_group_q1
                    outputs:
                      - description: ""
                        type: question_1_exit
                      - description: ""
                        type: question_1_repeat
                    properties:
                      outputs:
                        - elements:
                            - operator: '>'
                              value: "2"
                              variable: '{{user_variable.q1_empty}}'
                            - operator: '>'
                              value: "2"
                              variable: '{{user_variable.q1_invalid}}'
                          groupOperator: OR
                          name: question_1_exit
                        - elements:
                            - operator: <
                              value: "3"
                              variable: '{{user_variable.q1_empty}}'
                            - operator: <
                              value: "3"
                              variable: '{{user_variable.q1_invalid}}'
                          groupOperator: AND
                          name: question_1_repeat
                        - elements: null
                          groupOperator: AND
                          name: fail
                  - description: condition_group_q2
                    id: condition_group_q2
                    outputs:
                      - description: ""
                        type: question_2_exit
                      - description: ""
                        type: question_2_repeat
                    properties:
                      outputs:
                        - elements:
                            - operator: '>'
                              value: "2"
                              variable: '{{user_variable.q2_empty}}'
                            - operator: '>'
                              value: "2"
                              variable: '{{user_variable.q2_invalid}}'
                          groupOperator: OR
                          name: question_2_exit
                        - elements:
                            - operator: <
                              value: "3"
                              variable: '{{user_variable.q2_empty}}'
                            - operator: <
                              value: "3"
                              variable: '{{user_variable.q2_invalid}}'
                          groupOperator: AND
                          name: question_2_repeat
                        - elements: null
                          groupOperator: AND
                          name: fail
              end:
                v1:
                  - description: end_tree_1
                    id: end_tree_1
                    outputs: null
                    properties: {}
                  - description: end_tree_disqualified
                    id: end_tree_disqualified
                    outputs: null
                    properties: {}
                  - description: end_tree_robot
                    id: end_tree_robot
                    outputs: null
                    properties: {}
                  - description: end_tree_tea
                    id: end_tree_tea
                    outputs: null
                    properties: {}
              end_call:
                v1: null
              goal:
                v1:
                  - description: goal_qualified
                    id: goal_qualified
                    outputs:
                      - description: ""
                        type: complete
                    properties:
                      goal: qualified
                      priority: 8
                  - description: goal_disqualified
                    id: goal_disqualified
                    outputs:
                      - description: ""
                        type: complete
                    properties:
                      goal: disqualified
                      priority: 8
              inbound_call:
                v1:
                  - description: inbound_call
                    id: inbound_call
                    outputs:
                      - description: Success
                        type: success
                      - description: Fail
                        type: fail
                    properties: {}
              increment:
                v1:
                  - description: increment_q1_empty
                    id: increment_q1_empty
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - variable: q1_empty
                  - description: increment_q1_invalid
                    id: increment_q1_invalid
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - variable: q1_invalid
                  - description: increment_q2_empty
                    id: increment_q2_empty
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - variable: q2_empty
                  - description: increment_q2_invalid
                    id: increment_q2_invalid
                    outputs:
                      - description: Complete
                        type: complete
                    properties:
                      variables:
                        - variable: q2_invalid
              outbound_call:
                v1:
                  - description: outbound_call
                    id: outbound_call
                    outputs:
                      - description: Success
                        type: success
                      - description: Fail
                        type: fail
                      - description: Voicemail
                        type: voicemail
                    properties:
                      is_voicemail: true
              question:
                v1:
                  - description: q1
                    id: q1
                    outputs:
                      - description: ""
                        type: valid
                      - description: ""
                        type: incomplete
                      - description: ""
                        type: empty
                    properties:
                      answer: null
                      dtmf_properties:
                        dtmf_timeout: 10
                        finish_on_key: '#'
                        max_symbols: 1
                        min_symbols: 1
                        no_input_timeout: 5
                      fallback_empty: null
                      fallback_invalid: null
                      input_mode: dtmf
                      statement:
                        audio:
                          file:
                            url: ""
                          mode: tts
                          tts:
                            text: Rate this quiz from 1 to 9 by pressing dial pad button
                        is_interruptible: true
                      stt_properties:
                        language: en-GB
                        no_input_timeout: 3.5
                        speech_timeout: 2
                      tts_properties:
                        engine: google
                        language: en-US
                        voice: en-US-Wavenet-E
                      type: open
              sms:
                v1:
                  - description: sms_qualified
                    id: sms_qualified
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: error
                    properties:
                      from: '{{campaign.sms_number}}'
                      text: Qualified
                      to: '{{recipient.number}}'
                  - description: sms_disqualified
                    id: sms_disqualified
                    outputs:
                      - description: ""
                        type: complete
                      - description: ""
                        type: error
                    properties:
                      from: '{{campaign.sms_number}}'
                      text: Not qualified
                      to: '{{recipient.number}}'
              start: null
              start_call:
                v1:
                  - description: start_call
                    id: start_call
                    outputs:
                      - description: Outbound
                        type: outbound
                      - description: Inbound
                        type: inbound
                    properties:
                      stt_general: null
                      tts_general: null
            forest:
              trees:
                - description: tree number one
                  nodes:
                    - brick:
                        id: start_call
                        type: start_call
                        version: v1
                      id: 001_start
                      links:
                        - output_type: outbound
                          reference:
                            node_id: 005_outbound
                            tree_id: tree_1
                        - output_type: inbound
                          reference:
                            node_id: 006_inbound
                            tree_id: tree_1
                    - brick:
                        id: outbound_call
                        type: outbound_call
                        version: v1
                      id: 005_outbound
                      links:
                        - output_type: success
                          reference:
                            node_id: 010_audio
                            tree_id: tree_1
                        - output_type: fail
                          reference:
                            node_id: 010_audio
                            tree_id: tree_1
                        - output_type: voicemail
                          reference:
                            node_id: 010_audio
                            tree_id: tree_1
                    - brick:
                        id: inbound_call
                        type: inbound_call
                        version: v1
                      id: 006_inbound
                      links:
                        - output_type: success
                          reference:
                            node_id: 010_audio
                            tree_id: tree_1
                        - output_type: fail
                          reference:
                            node_id: 010_audio
                            tree_id: tree_1
                    - brick:
                        id: audio_file_1
                        type: audio_file
                        version: v1
                      id: 010_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 170_audio
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: q1
                        type: question
                        version: v1
                      id: 020_question
                      links:
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                        - output_type: valid
                          reference:
                            node_id: 240_increment
                            tree_id: tree_1
                        - output_type: empty
                          reference:
                            node_id: 230_increment
                            tree_id: tree_1
                    - brick:
                        id: goal_qualified
                        type: goal
                        version: v1
                      id: 030_goal_qualified
                      links:
                        - output_type: complete
                          reference:
                            node_id: 040_sms_qualified
                            tree_id: tree_1
                    - brick:
                        id: sms_qualified
                        type: sms
                        version: v1
                      id: 040_sms_qualified
                      links:
                        - output_type: complete
                          reference:
                            node_id: 300_end
                            tree_id: tree_1
                        - output_type: error
                          reference:
                            node_id: 300_end
                            tree_id: tree_1
                    - brick:
                        id: audio_5
                        type: audio
                        version: v1
                      id: 130_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 020_question
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_6
                        type: audio
                        version: v1
                      id: 140_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_5
                        type: audio
                        version: v1
                      id: 150_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 020_question
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_7
                        type: audio
                        version: v1
                      id: 160_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 030_goal_qualified
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_8
                        type: audio
                        version: v1
                      id: 170_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 190_assignment
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_9
                        type: audio
                        version: v1
                      id: 180_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 270_assignment
                            tree_id: tree_1
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_10
                        type: audio
                        version: v1
                      id: 220_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: assignment_1
                        type: assignment
                        version: v1
                      id: 190_assignment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 020_question
                            tree_id: tree_1
                    - brick:
                        id: assignment_2
                        type: assignment
                        version: v1
                      id: 270_assignment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 020_question
                            tree_id: tree_1
                    - brick:
                        id: increment_q1_empty
                        type: increment
                        version: v1
                      id: 230_increment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 200_condition_group
                            tree_id: tree_1
                    - brick:
                        id: increment_q1_invalid
                        type: increment
                        version: v1
                      id: 240_increment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 200_condition_group
                            tree_id: tree_1
                    - brick:
                        id: increment_q2_empty
                        type: increment
                        version: v1
                      id: 250_increment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 210_condition_group
                            tree_id: tree_1
                    - brick:
                        id: increment_q2_invalid
                        type: increment
                        version: v1
                      id: 260_increment
                      links:
                        - output_type: complete
                          reference:
                            node_id: 210_condition_group
                            tree_id: tree_1
                    - brick:
                        id: condition_group_q1
                        type: condition_group
                        version: v1
                      id: 200_condition_group
                      links:
                        - output_type: question_1_exit
                          reference:
                            node_id: 220_audio
                            tree_id: tree_1
                        - output_type: question_1_repeat
                          reference:
                            node_id: 130_audio
                            tree_id: tree_1
                        - output_type: fail
                          reference:
                            node_id: 130_audio
                            tree_id: tree_1
                    - brick:
                        id: condition_group_q2
                        type: condition_group
                        version: v1
                      id: 210_condition_group
                      links:
                        - output_type: question_2_exit
                          reference:
                            node_id: 220_audio
                            tree_id: tree_1
                        - output_type: question_2_repeat
                          reference:
                            node_id: 150_audio
                            tree_id: tree_1
                        - output_type: fail
                          reference:
                            node_id: 130_audio
                            tree_id: tree_1
                    - brick:
                        id: end_tree_1
                        type: end
                        version: v1
                      id: 300_end
                      links: null
                  tree_id: tree_1
                - description: tree number two
                  nodes:
                    - brick:
                        id: goal_disqualified
                        type: goal
                        version: v1
                      id: 050_goal_disqualified
                      links:
                        - output_type: complete
                          reference:
                            node_id: 060_sms_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: sms_disqualified
                        type: sms
                        version: v1
                      id: 060_sms_disqualified
                      links:
                        - output_type: complete
                          reference:
                            node_id: 310_end
                            tree_id: tree_disqualified
                        - output_type: error
                          reference:
                            node_id: 310_end
                            tree_id: tree_disqualified
                    - brick:
                        id: end_tree_disqualified
                        type: end
                        version: v1
                      id: 310_end
                      links: null
                  tree_id: tree_disqualified
                - description: tree number three
                  nodes:
                    - brick:
                        id: audio_2
                        type: audio
                        version: v1
                      id: 070_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 320_end
                            tree_id: tree_robot
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: end_tree_robot
                        type: end
                        version: v1
                      id: 320_end
                      links: null
                  tree_id: tree_robot
                - description: tree number four
                  nodes:
                    - brick:
                        id: audio_3
                        type: audio
                        version: v1
                      id: 090_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 320_end
                            tree_id: tree_robot
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: audio_4
                        type: audio
                        version: v1
                      id: 100_audio
                      links:
                        - output_type: complete
                          reference:
                            node_id: 320_end
                            tree_id: tree_robot
                        - output_type: incomplete
                          reference:
                            node_id: 050_goal_disqualified
                            tree_id: tree_disqualified
                    - brick:
                        id: end_tree_tea
                        type: end
                        version: v1
                      id: 330_end
                      links: null
                  tree_id: tree_tea
          fix_communication_ttl: 1200
          id: a8521eb4-7f01-4168-9865-398d8196d693
          is_shared_for_copy: true
          name: constructor
          template: ""
          type: constructor
      properties:
        scenarioList:
          description: Scenarios
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioScenarioReply'
              - type: object
          type: array
      type: object
    proto_scenarioGetPlaceHoldersByScenarioSidReply:
      example:
        placeholders:
          - recipient_name
      properties:
        placeholders:
          items:
            type: string
          type: array
      type: object
    proto_scenarioGetSystemVariablesReply:
      example:
        systemVariables:
          - system_variable1
          - system_variable2
      properties:
        system_variables:
          description: system variables
          items:
            type: string
          type: array
      type: object
    proto_scenarioGoalConfiguration:
      properties:
        send_goal:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSendGoal'
            - description: send_goal configuration
      type: object
    proto_scenarioInputAction:
      properties:
        action:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioActionHandler'
            - description: Action
        conditions:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConditionGroup'
            - description: Conditions
      type: object
    proto_scenarioNotifyEventScenario:
      properties:
        pass_goal_duration:
          description: Mark goal success after duration passed
          format: int32
          type: integer
        play_audio:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioPlayAudio'
            - description: Play audio
        sms_answered:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSMS'
            - description: SMS when answered
        sms_no_answered:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSMS'
            - description: SMS when no answered
      type: object
    proto_scenarioNotifyQuestionSTT:
      properties:
        description:
          description: Description
          type: string
        input_mode:
          description: Input mode
          type: string
        is_interruptible:
          description: Is question interruptible
          type: boolean
        message:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioPlayAudio'
            - description: Audio message
        stt_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSTTProperties'
            - description: Speech-to-Text properties
        type:
          description: Type
          type: string
      type: object
    proto_scenarioNotifyScenarioSTT:
      properties:
        farewell_play_audio_failed:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioPlayAudio'
            - description: Farewell message after input failed
        farewell_play_audio_passed:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioPlayAudio'
            - description: Farewell message after input passed
        input_failed:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioAnswerSTT'
            - description: Parameters when input is unsuccessful
        input_passed:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioAnswerSTT'
            - description: Parameters when input is successful
        question:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioNotifyQuestionSTT'
            - description: Question
        sms_failed:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSMS'
            - description: SMS after input failed
        sms_passed:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSMS'
            - description: SMS after input passed
      type: object
    proto_scenarioOptions:
      properties:
        limit:
          format: int64
          type: string
        offset:
          format: int64
          type: string
        order:
          format: int64
          type: string
      type: object
    proto_scenarioPatchRequest:
      properties:
        fix_communication_ttl:
          description: The TTL of the communication, after which it will be considered broken and will be fixed
          example: 3600
          format: int32
          type: integer
        id:
          description: Scenario ID
          type: string
        is_shared_for_copy:
          description: Is shared for copy permission
          type: boolean
        name:
          description: Scenario description
          type: string
        template:
          description: Template (deprecated)
          example: Template name
          type: string
        type:
          description: 'Type of scenario, support one of: survey, notify_input, notify_input_stt, notify_event, custom, survey_stt, survey_v3, constructor'
          type: string
      type: object
    proto_scenarioPlayAudio:
      properties:
        file_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioAudioFile'
            - description: file properties
        mode:
          description: Mode of audio (tts or file)
          type: string
        tts_properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioTTS'
            - description: tts properties
      type: object
    proto_scenarioQuestionV3:
      properties:
        answers:
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioAnswerV3'
              - type: object
          type: array
        description:
          type: string
        input_action_empty:
          $ref: '#/components/schemas/proto_scenarioFallbackActionMany'
        input_action_invalid:
          $ref: '#/components/schemas/proto_scenarioFallbackActionMany'
        input_action_valid:
          $ref: '#/components/schemas/proto_scenarioFallbackAction'
        input_mode:
          type: string
        is_interruptible:
          type: boolean
        message:
          $ref: '#/components/schemas/proto_scenarioPlayAudio'
        stt_properties:
          $ref: '#/components/schemas/proto_scenarioSTTProperties'
        type:
          type: string
      type: object
    proto_scenarioRunJSReply:
      properties:
        console_logs:
          description: console_logs
          items:
            type: string
          type: array
        error:
          description: error
          type: string
        results:
          additionalProperties:
            type: string
          description: results
          type: object
      type: object
    proto_scenarioRunJSRequest:
      properties:
        source:
          description: Source code
          type: string
        storage:
          additionalProperties:
            type: string
          description: storage
          type: object
      type: object
    proto_scenarioRunWebhookReply:
      properties:
        curl:
          description: A curl command that can be used to test the webhook.
          type: string
        error:
          description: The error message if the webhook failed.
          type: string
        redirects:
          description: A list of redirects that were followed by the webhook.
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioRunWebhookReplyRedirect'
              - type: object
          type: array
        response:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioRunWebhookResponse'
            - description: The response from the webhook.
        status:
          description: The status of the webhook.
          type: string
        variables:
          additionalProperties:
            type: string
          description: A map of variables that can be used to store data for the webhook.
          type: object
      type: object
    proto_scenarioRunWebhookReplyRedirect:
      properties:
        code:
          description: The HTTP status code of the redirect.
          format: int64
          type: integer
        method:
          description: The HTTP Method
          type: string
        url:
          description: The URL to redirect to.
          type: string
      type: object
    proto_scenarioRunWebhookRequest:
      properties:
        properties:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructorWebhookV1Properties'
            - description: A set of properties that can be used to configure the webhook.
        storage:
          additionalProperties:
            type: string
          description: A map of storage values that can be used to store data for the webhook.
          type: object
      type: object
    proto_scenarioRunWebhookResponse:
      properties:
        body:
          description: The body of the response.
          type: string
        duration:
          description: The duration of the request in milliseconds.
          format: int64
          type: integer
        headers:
          additionalProperties:
            items:
              type: object
            type: array
          description: The headers of the response.
          type: object
        http_status_code:
          description: The HTTP status code of the response.
          format: int64
          type: integer
        http_status_text:
          description: The HTTP status text of the response.
          type: string
      type: object
    proto_scenarioSMS:
      properties:
        from:
          description: From
          type: string
        text:
          description: SMS text
          type: string
        to:
          description: To
          type: string
      type: object
    proto_scenarioSTTProperties:
      properties:
        confidence:
          format: float
          type: number
        filters:
          items:
            type: string
          type: array
        grammar_parameters:
          type: string
        language:
          type: string
        no_input_timeout:
          format: float
          type: number
        speech_timeout:
          format: float
          type: number
      type: object
    proto_scenarioScenarioConstructorConditionElement:
      properties:
        element_operator:
          description: Comparison operator
          type: string
        value:
          description: Value
          type: string
        variable:
          description: Variable
          type: string
      type: object
    proto_scenarioScenarioReply:
      example:
        constructor:
          bricks:
            assignment:
              v1:
                - description: assignment_1
                  id: assignment_1
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - value: my dear man
                        variable: name
                      - value: "0"
                        variable: q1_empty
                      - value: "0"
                        variable: q1_invalid
                - description: assignment_2
                  id: assignment_2
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - value: "0"
                        variable: q2_empty
                      - value: "0"
                        variable: q2_invalid
            audio:
              v1:
                - description: audio_1
                  id: audio_1
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Hello! This is demo of scenario constructor. Today we will test your geography and small talks knowledge
                      voice: en-US-Wavenet-B
                - description: audio_2
                  id: audio_2
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Yes, you're right! But very soon we will create call transfer brick and we'll be able to connect you with manager. Lets get back to our question now?
                      voice: en-US-Wavenet-B
                - description: audio_3
                  id: audio_3
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: I will keep your answer and use it on occasion. Lets get back to our question now?
                      voice: en-US-Wavenet-B
                - description: audio_4
                  id: audio_4
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Well, since you don't want to talk about tea, lets get back to our question?
                      voice: en-US-Wavenet-B
                - description: audio_5
                  id: audio_5
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: I didn't hear it. {{user_variable.name}}, can we try again?
                      voice: en-US-Wavenet-B
                - description: audio_6
                  id: audio_6
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Your answer is wrong. Lets try again once you'll improve your knowledge of geography.
                      voice: en-US-Wavenet-B
                - description: audio_7
                  id: audio_7
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: 'Pretty good, probably you had "A" mark in the school. Hope you had time to test our voicebot functionality. Have a nice day. '
                      voice: en-US-Wavenet-B
                - description: audio_8
                  id: audio_8
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Okay, first question
                      voice: en-US-Wavenet-B
                - description: audio_9
                  id: audio_9
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Let's move on to the second question.
                      voice: en-US-Wavenet-B
                - description: audio_10
                  id: audio_10
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    mode: tts
                    tts_properties:
                      engine: google
                      language: en-US
                      text: Seems like you don't want to talk today. Lets try the next time. Have a nice day.
                      voice: en-US-Wavenet-B
            audio_file:
              v1:
                - description: audio_file_1
                  id: audio_file_1
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: incomplete
                  properties:
                    url: https://storage.tenios.com/Weegree-IVR-RO-7-1648806041.wav
            audio_tts:
              v1:
                - description: audio_tts_1
                  id: audio_tts_1
                  outputs:
                    - description: Complete
                      type: complete
                    - description: Incomplete
                      type: incomplete
                  properties:
                    engine: google
                    language: en-US
                    text: Hello
                    voice: en-US-Wavenet-B
            condition_group:
              v1:
                - description: condition_group_q1
                  id: condition_group_q1
                  outputs:
                    - description: ""
                      type: question_1_exit
                    - description: ""
                      type: question_1_repeat
                  properties:
                    outputs:
                      - elements:
                          - operator: '>'
                            value: "2"
                            variable: '{{user_variable.q1_empty}}'
                          - operator: '>'
                            value: "2"
                            variable: '{{user_variable.q1_invalid}}'
                        groupOperator: OR
                        name: question_1_exit
                      - elements:
                          - operator: <
                            value: "3"
                            variable: '{{user_variable.q1_empty}}'
                          - operator: <
                            value: "3"
                            variable: '{{user_variable.q1_invalid}}'
                        groupOperator: AND
                        name: question_1_repeat
                      - groupOperator: AND
                        name: fail
                - description: condition_group_q2
                  id: condition_group_q2
                  outputs:
                    - description: ""
                      type: question_2_exit
                    - description: ""
                      type: question_2_repeat
                  properties:
                    outputs:
                      - elements:
                          - operator: '>'
                            value: "2"
                            variable: '{{user_variable.q2_empty}}'
                          - operator: '>'
                            value: "2"
                            variable: '{{user_variable.q2_invalid}}'
                        groupOperator: OR
                        name: question_2_exit
                      - elements:
                          - operator: <
                            value: "3"
                            variable: '{{user_variable.q2_empty}}'
                          - operator: <
                            value: "3"
                            variable: '{{user_variable.q2_invalid}}'
                        groupOperator: AND
                        name: question_2_repeat
                      - groupOperator: AND
                        name: fail
            end:
              v1:
                - description: end_tree_1
                  id: end_tree_1
                - description: end_tree_disqualified
                  id: end_tree_disqualified
                - description: end_tree_robot
                  id: end_tree_robot
                - description: end_tree_tea
                  id: end_tree_tea
            goal:
              v1:
                - description: goal_qualified
                  id: goal_qualified
                  outputs:
                    - description: ""
                      type: complete
                  properties:
                    goal: qualified
                    priority: 8
                - description: goal_disqualified
                  id: goal_disqualified
                  outputs:
                    - description: ""
                      type: complete
                  properties:
                    goal: disqualified
                    priority: 8
            inbound_call:
              v1:
                - description: inbound_call
                  id: inbound_call
                  outputs:
                    - description: Success
                      type: success
                    - description: Fail
                      type: fail
                  properties: {}
            increment:
              v1:
                - description: increment_q1_empty
                  id: increment_q1_empty
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - variable: q1_empty
                - description: increment_q1_invalid
                  id: increment_q1_invalid
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - variable: q1_invalid
                - description: increment_q2_empty
                  id: increment_q2_empty
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - variable: q2_empty
                - description: increment_q2_invalid
                  id: increment_q2_invalid
                  outputs:
                    - description: Complete
                      type: complete
                  properties:
                    variables:
                      - variable: q2_invalid
            outbound_call:
              v1:
                - description: outbound_call
                  id: outbound_call
                  outputs:
                    - description: Success
                      type: success
                    - description: Fail
                      type: fail
                    - description: Voicemail
                      type: voicemail
                  properties:
                    is_voicemail: true
            question:
              v1:
                - description: q1
                  id: q1
                  outputs:
                    - description: ""
                      type: valid
                    - description: ""
                      type: incomplete
                    - description: ""
                      type: empty
                  properties:
                    description: Question
                    dtmf_properties:
                      dtmf_timeout: 10
                      finish_on_key: '#'
                      max_symbols: 1
                      min_symbols: 1
                      no_input_timeout: 5
                    fallback_empty:
                      fallback_empty_item:
                        - is_interruptible: false
                          is_repeat_statement: true
                    fallback_invalid:
                      fallback_invalid_item:
                        - is_interruptible: false
                          is_repeat_statement: true
                    input_mode: dtmf
                    statement:
                      audio:
                        mode: tts
                        tts:
                          text: Rate this quiz from 1 to 9 by pressing dial pad button
                      is_interruptible: true
                    stt_properties:
                      language: en-GB
                      no_input_timeout: 3.5
                      speech_timeout: 2
                    tts_properties:
                      engine: google
                      language: en-US
                      voice: en-US-Wavenet-E
                    type: open
                - description: q2
                  id: q2
                  outputs:
                    - description: ""
                      type: valid
                    - description: ""
                      type: incomplete
                    - description: ""
                      type: empty
                  properties:
                    description: Question
                    dtmf_properties:
                      dtmf_timeout: 10
                      finish_on_key: '#'
                      max_symbols: 1
                      min_symbols: 1
                      no_input_timeout: 5
                    fallback_empty:
                      fallback_empty_item:
                        - is_interruptible: false
                          is_repeat_statement: true
                    fallback_invalid:
                      fallback_invalid_item:
                        - is_interruptible: false
                          is_repeat_statement: true
                    input_mode: speech
                    statement:
                      audio:
                        mode: tts
                        tts:
                          text: Rate this quiz
                      is_interruptible: true
                    stt_properties:
                      language: en-GB
                      no_input_timeout: 3.5
                      recognition_shift:
                        direction: backward
                        duration: 5.5
                      speech_timeout: 2
                    tts_properties:
                      engine: google
                      language: en-US
                      voice: en-US-Wavenet-E
                    type: open
            sms:
              v1:
                - description: sms_qualified
                  id: sms_qualified
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: error
                  properties:
                    from: '{{campaign.sms_number}}'
                    text: Qualified
                    to: '{{recipient.number}}'
                - description: sms_disqualified
                  id: sms_disqualified
                  outputs:
                    - description: ""
                      type: complete
                    - description: ""
                      type: error
                  properties:
                    from: '{{campaign.sms_number}}'
                    text: Not qualified
                    to: '{{recipient.number}}'
            start_call:
              v1:
                - description: start_call
                  id: start_call
                  outputs:
                    - description: Outbound
                      type: outbound
                    - description: Inbound
                      type: inbound
                  properties:
                    stt_general:
                      language: en-US
                    tts_general:
                      engine: google
                      language: en-US
                      voice: en-US-Wavenet-B
          forest:
            trees:
              - description: tree number one
                nodes:
                  - brick:
                      id: start_call
                      type: start_call
                      version: v1
                    id: 001_start
                    links:
                      - output_type: outbound
                        reference:
                          node_id: 005_outbound
                          tree_id: tree_1
                      - output_type: inbound
                        reference:
                          node_id: 006_inbound
                          tree_id: tree_1
                  - brick:
                      id: outbound_call
                      type: outbound_call
                      version: v1
                    id: 005_outbound
                    links:
                      - output_type: success
                        reference:
                          node_id: 010_audio
                          tree_id: tree_1
                      - output_type: fail
                        reference:
                          node_id: 010_audio
                          tree_id: tree_1
                      - output_type: voicemail
                        reference:
                          node_id: 010_audio
                          tree_id: tree_1
                  - brick:
                      id: inbound_call
                      type: inbound_call
                      version: v1
                    id: 006_inbound
                    links:
                      - output_type: success
                        reference:
                          node_id: 010_audio
                          tree_id: tree_1
                      - output_type: fail
                        reference:
                          node_id: 010_audio
                          tree_id: tree_1
                  - brick:
                      id: audio_file_1
                      type: audio_file
                      version: v1
                    id: 010_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 170_audio
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: q1
                      type: question
                      version: v1
                    id: 020_question
                    links:
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                      - output_type: valid
                        reference:
                          node_id: 240_increment
                          tree_id: tree_1
                      - output_type: empty
                        reference:
                          node_id: 230_increment
                          tree_id: tree_1
                  - brick:
                      id: goal_qualified
                      type: goal
                      version: v1
                    id: 030_goal_qualified
                    links:
                      - output_type: complete
                        reference:
                          node_id: 040_sms_qualified
                          tree_id: tree_1
                  - brick:
                      id: sms_qualified
                      type: sms
                      version: v1
                    id: 040_sms_qualified
                    links:
                      - output_type: complete
                        reference:
                          node_id: 300_end
                          tree_id: tree_1
                      - output_type: error
                        reference:
                          node_id: 300_end
                          tree_id: tree_1
                  - brick:
                      id: audio_5
                      type: audio
                      version: v1
                    id: 130_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 020_question
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_6
                      type: audio
                      version: v1
                    id: 140_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_5
                      type: audio
                      version: v1
                    id: 150_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 020_question
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_7
                      type: audio
                      version: v1
                    id: 160_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 030_goal_qualified
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_8
                      type: audio
                      version: v1
                    id: 170_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 190_assignment
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_9
                      type: audio
                      version: v1
                    id: 180_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 270_assignment
                          tree_id: tree_1
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_10
                      type: audio
                      version: v1
                    id: 220_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: assignment_1
                      type: assignment
                      version: v1
                    id: 190_assignment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 020_question
                          tree_id: tree_1
                  - brick:
                      id: assignment_2
                      type: assignment
                      version: v1
                    id: 270_assignment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 020_question
                          tree_id: tree_1
                  - brick:
                      id: increment_q1_empty
                      type: increment
                      version: v1
                    id: 230_increment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 200_condition_group
                          tree_id: tree_1
                  - brick:
                      id: increment_q1_invalid
                      type: increment
                      version: v1
                    id: 240_increment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 200_condition_group
                          tree_id: tree_1
                  - brick:
                      id: increment_q2_empty
                      type: increment
                      version: v1
                    id: 250_increment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 210_condition_group
                          tree_id: tree_1
                  - brick:
                      id: increment_q2_invalid
                      type: increment
                      version: v1
                    id: 260_increment
                    links:
                      - output_type: complete
                        reference:
                          node_id: 210_condition_group
                          tree_id: tree_1
                  - brick:
                      id: condition_group_q1
                      type: condition_group
                      version: v1
                    id: 200_condition_group
                    links:
                      - output_type: question_1_exit
                        reference:
                          node_id: 220_audio
                          tree_id: tree_1
                      - output_type: question_1_repeat
                        reference:
                          node_id: 130_audio
                          tree_id: tree_1
                      - output_type: fail
                        reference:
                          node_id: 130_audio
                          tree_id: tree_1
                  - brick:
                      id: condition_group_q2
                      type: condition_group
                      version: v1
                    id: 210_condition_group
                    links:
                      - output_type: question_2_exit
                        reference:
                          node_id: 220_audio
                          tree_id: tree_1
                      - output_type: question_2_repeat
                        reference:
                          node_id: 150_audio
                          tree_id: tree_1
                      - output_type: fail
                        reference:
                          node_id: 130_audio
                          tree_id: tree_1
                  - brick:
                      id: end_tree_1
                      type: end
                      version: v1
                    id: 300_end
                    links: null
                tree_id: tree_1
              - description: tree number two
                nodes:
                  - brick:
                      id: goal_disqualified
                      type: goal
                      version: v1
                    id: 050_goal_disqualified
                    links:
                      - output_type: complete
                        reference:
                          node_id: 060_sms_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: sms_disqualified
                      type: sms
                      version: v1
                    id: 060_sms_disqualified
                    links:
                      - output_type: complete
                        reference:
                          node_id: 310_end
                          tree_id: tree_disqualified
                      - output_type: error
                        reference:
                          node_id: 310_end
                          tree_id: tree_disqualified
                  - brick:
                      id: end_tree_disqualified
                      type: end
                      version: v1
                    id: 310_end
                    links: null
                tree_id: tree_disqualified
              - description: tree number three
                nodes:
                  - brick:
                      id: audio_2
                      type: audio
                      version: v1
                    id: 070_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 320_end
                          tree_id: tree_robot
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: end_tree_robot
                      type: end
                      version: v1
                    id: 320_end
                    links: null
                tree_id: tree_robot
              - description: tree number four
                nodes:
                  - brick:
                      id: audio_3
                      type: audio
                      version: v1
                    id: 090_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 320_end
                          tree_id: tree_robot
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: audio_4
                      type: audio
                      version: v1
                    id: 100_audio
                    links:
                      - output_type: complete
                        reference:
                          node_id: 320_end
                          tree_id: tree_robot
                      - output_type: incomplete
                        reference:
                          node_id: 050_goal_disqualified
                          tree_id: tree_disqualified
                  - brick:
                      id: end_tree_tea
                      type: end
                      version: v1
                    id: 330_end
                    links: null
                tree_id: tree_tea
        fix_communication_ttl: 1200
        id: 1ee53fcd-991b-45b7-9a45-7c4e00f384b6
        is_shared_for_copy: true
        name: constructor
        type: constructor
      properties:
        account_sid:
          description: Account ID
          type: string
        constructor:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConstructor'
            - description: Properties for constructor configuration
        custom:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioCustomScenario'
            - description: Properties for custom configuration
        fix_communication_ttl:
          description: The TTL of the communication, after which it will be considered broken and will be fixed
          example: 3600
          format: int32
          type: integer
        goal:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioGoalConfiguration'
            - description: You can specify the URL to which the result of communication with each contact will be sent. More information in Webhook section.
        id:
          description: Scenario ID
          type: string
        is_shared_for_copy:
          description: Is shared for copy permission
          type: boolean
        name:
          description: Scenario description
          type: string
        notify_event:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioNotifyEventScenario'
            - description: Properties for notify_event configuration
        notify_input_stt:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioNotifyScenarioSTT'
            - description: Properties for notify_input_stt configuration
        stt_properties_default:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSTTProperties'
            - description: global stt properties
        survey_v3:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSurveyV3'
            - description: Properties for survey_v3 configuration
        template:
          description: Template (deprecated)
          example: Template name
          type: string
        type:
          description: 'Type of scenario, support one of: survey, notify_input, notify_input_stt, notify_event, custom, survey_stt, survey_v3, constructor'
          type: string
        version:
          description: Version
          format: int32
          type: integer
      type: object
    proto_scenarioSendGoal:
      properties:
        url:
          description: URL for goal send
          type: string
        validate:
          description: Is validate flag
          type: boolean
      type: object
    proto_scenarioSetGoalStruct:
      example:
        goal:
          send_goal:
            url: www.test.com
            validate: false
        id: 1ee53fcd-991b-45b7-9a45-7c4e00f384b6
      properties:
        goal:
          $ref: '#/components/schemas/proto_scenarioGoalConfiguration'
        id:
          type: string
      type: object
    proto_scenarioSpeechInput:
      properties:
        tokens:
          items:
            type: string
          type: array
      type: object
    proto_scenarioState:
      properties:
        description:
          description: Description
          type: string
        entry_actions:
          description: List of actions executed when transitioned to state
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioEntryAction'
              - type: object
          type: array
        exit_actions:
          description: List of actions executed before transition to next state
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioExitAction'
              - type: object
          type: array
        id:
          description: State ID
          type: string
        input_actions:
          description: List of actions executed after input received during state
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioInputAction'
              - type: object
          type: array
        transitions:
          description: List of transitions
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioTransition'
              - type: object
          type: array
      type: object
    proto_scenarioSurveyV3:
      properties:
        call_disqualified:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioCall'
            - description: Call forward on goal disqualified
        call_qualified:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioCall'
            - description: Call forward on goal qualified
        farewell_disqualified_message:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioPlayAudio'
            - description: Farewell message on goal disqualified
        farewell_goals_actions:
          additionalProperties:
            $ref: '#/components/schemas/proto_scenarioFarewellActions'
          description: Farewell actions per goal mapping
          type: object
        farewell_qualified_message:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioPlayAudio'
            - description: Farewell message on goal qualified
        input_action_empty:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioFallbackActionMany'
            - description: Fallback message on empty input
        input_action_invalid:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioFallbackActionMany'
            - description: Fallback messages on invalid input
        input_action_valid:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioFallbackAction'
            - description: Message on valid input
        personal_greeting:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioPlayAudio'
            - description: Personal greeting in the beginning of the call
        questions:
          description: Questions
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioQuestionV3'
              - type: object
          type: array
        sms_disqualified:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSMS'
            - description: SMS on goal disqualified
        sms_qualified:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioSMS'
            - description: SMS on goal qualified
      type: object
    proto_scenarioTTS:
      properties:
        engine:
          description: Engine
          type: string
        language:
          description: Language
          type: string
        model:
          description: Model
          type: string
        text:
          description: Text
          type: string
        voice:
          description: Voice
          type: string
      type: object
    proto_scenarioTransition:
      properties:
        conditions:
          allOf:
            - $ref: '#/components/schemas/proto_scenarioConditionGroup'
            - description: Conditions
        description:
          description: Description
          type: string
        next_state:
          description: Next state id
          type: string
      type: object
    proto_scenarioWarmUpTTSReply:
      properties:
        error_count:
          description: The number of times the TTS engine encountered an error during request.
          format: int32
          type: integer
        hit_count:
          description: The number of times the TTS cache was hit during request.
          format: int32
          type: integer
        processed_count:
          description: The number of times the TTS successfully processed during the request.
          format: int32
          type: integer
        result:
          description: A list of TTS warm-up results.
          items:
            allOf:
              - $ref: '#/components/schemas/proto_scenarioWarmUpTTSResult'
              - type: object
          type: array
      type: object
    proto_scenarioWarmUpTTSResult:
      properties:
        code:
          description: The HTTP status code of the TTS request.
          format: int32
          type: integer
        error:
          description: The error message of the TTS request, if any.
          type: string
        text:
          description: The text of the TTS.
          type: string
        url:
          description: The URL of the TTS request.
          type: string
      type: object
    proto_settingsAccountLimits:
      example:
        account:
          cpl: 20
          cps: 2
        campaign:
          cpl: 10
          cps: 2
      properties:
        account:
          $ref: '#/components/schemas/proto_settingsLimits'
        campaign:
          $ref: '#/components/schemas/proto_settingsLimits'
      type: object
    proto_settingsLimits:
      properties:
        cpl:
          description: CPL - simultaneous call lines
          format: int64
          type: integer
        cps:
          description: CPS (CAPS) - call attempts per second
          format: int64
          type: integer
      type: object
    proto_sttGetLanguagesResponse:
      example:
        languages:
          - code: af-ZA
            name: Afrikaans (South Africa)
          - code: ar-AE
            name: Arabic (United Arab Emirates)
      properties:
        languages:
          description: List of available languages
          items:
            $ref: '#/components/schemas/proto_sttLanguage'
          type: array
      type: object
    proto_sttGetRecognitionModelOptionsResponse:
      example:
        items:
          - engine: gsr@v2
            is_default_model: true
            language: en-US
            language_local_name: English (United States)
            language_name: English (United States)
            metadata:
              automatic_punctuation: "true"
              diarization: "true"
            model: chirp_2
          - engine: gsr@v2
            language: pl-PL
            language_local_name: polski (Polska)
            language_name: Polish (Poland)
            metadata: {}
            model: chirp_2
          - engine: gsr@v2
            language: lv-LV
            language_local_name: latviešu (Latvija)
            language_name: Latvian (Latvia)
            metadata: {}
            model: chirp_2
        limit: 500
        offset: 0
        total: 150
      properties:
        items:
          description: List of available STT recognition model options
          items:
            $ref: '#/components/schemas/proto_sttRecognitionModelOption'
          type: array
        limit:
          description: Limit applied to this request
          format: int32
          type: integer
        offset:
          description: Offset applied to this request
          format: int32
          type: integer
        total:
          description: Total number of items matching the filter criteria
          format: int32
          type: integer
      type: object
    proto_sttLanguage:
      properties:
        code:
          description: The language code, e.g. "en-US", "ar-DZ"
          type: string
        name:
          description: The human-readable language name, e.g. "English (United States)"
          type: string
      type: object
    proto_sttRecognitionModelOption:
      properties:
        engine:
          description: Engine name
          type: string
        is_default_model:
          description: Is default model
          type: boolean
        language:
          description: Language code
          type: string
        language_local_name:
          description: Language name in its own script
          type: string
        language_name:
          description: English language name
          type: string
        metadata:
          additionalProperties:
            type: string
          description: |-
            Additional metadata for this language-model combination. Common keys:
            * `launch_readiness` - Availability status (e.g., 'GA', 'Preview', 'Beta')
            * `automatic_punctuation` - Feature support ('true'/'false')
            * `diarization` - Speaker diarization support ('true'/'false')
            * `model_adaptation` - Custom model adaptation support ('true'/'false')
            * `word_level_confidence` - Word-level confidence scores ('true'/'false')
            * `profanity_filter` - Profanity filtering support ('true'/'false')
            * `spoken_punctuation` - Spoken punctuation detection ('true'/'false')
            * `spoken_emojis` - Spoken emoji detection ('true'/'false')
          type: object
        model:
          description: Model identifier
          type: string
        model_name:
          description: Human-readable model name
          type: string
      type: object
    protobufAny:
      additionalProperties: {}
      properties:
        '@type':
          type: string
      type: object
    protobufNullValue:
      default: NULL_VALUE
      enum:
        - NULL_VALUE
      type: string
    rpcStatus:
      properties:
        code:
          format: int32
          type: integer
        details:
          items:
            $ref: '#/components/schemas/protobufAny'
          type: array
        message:
          type: string
      type: object
  securitySchemes:
    basicAuth:
      description: |
        * `Username` - equal to your `account_sid` (e.g., acc89ddf772-5df2-41d7-b257-000000000000)
        * `Password` - equal to your `token` (e.g., auta42e0580-8138-308a-a354-000000000000)
      scheme: basic
      type: http
