Wazo Configuration API (wazo-confd)

The configuration API for a Wazo stack and the largest of its microservice contracts. Manages users, lines, extensions, SIP/IAX/SCCP/custom endpoints, devices, contexts, groups, queues, agents, IVRs, conferences, meetings, schedules, call permissions, call filters, function keys, voicemails, trunks, outgoing/incoming calls, parking lots, sound files, switchboards, WebRTC settings and the whole PBX object graph.

OpenAPI Specification

wazo-confd-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: wazo-confd
  description: "Confd exposes an API for managing core resources on a Wazo server such as users, extensions, devices, voicemails,\
    \ queues, etc. Resources can be associated together to provide additional functionality. For example: By associating a\
    \ voicemail with a user, calls will automatically fallback on to the voicemail when the user cannot answer.\n\nImplementation\
    \ notes\n====================\n\nErrors\n------\n\nResponses containing errors will have a status code in the 400 or 500\
    \ class. A list of error messages will be returned in the body of the response as a JSON-encoded array:\n\n~~~\n[\n  \
    \  \"Input error - User not found\",\n    \"Resource error - User not associated to a line\"\n]\n~~~\n\n\nUpdating resources\
    \ via PUT\n--------------------------\n\nWhen updating a resource, all fields become optional. In other words, only values\
    \ that have been changed need to be sent to the server. Please note that this behavior may change in future versions of\
    \ the API."
  version: '1.1'
  license:
    name: GPL v3
    url: http://www.gnu.org/licenses/gpl.txt
  contact:
    name: Wazo Dev Team
    url: https://wazo-platform.org/
    email: dev@wazo.community
  x-logo:
    url: https://wazo-platform.org/images/logo-black.svg
    backgroundColor: '#FAFAFA'
    altText: Wazo Logo
schemes:
- http
basePath: /1.1
consumes:
- application/json
produces:
- application/json
x-xivo-port: 9486
x-xivo-name: confd
tags:
- name: funckeys
  externalDocs:
    url: https://wazo-platform.org/uc-doc/api_sdk/rest_api/confd/func_keys
    description: Documentation on function key models
securityDefinitions:
  wazo_auth_token:
    type: apiKey
    name: X-Auth-Token
    in: header
security:
- wazo_auth_token: []
parameters:
  agentid:
    required: true
    type: integer
    name: agent_id
    in: path
    description: Agent’s ID
  userid:
    required: false
    type: integer
    name: user_id
    in: query
    description: the user's ID
  useruuid:
    required: true
    type: string
    format: uuid
    name: user_uuid
    in: path
    description: the user's UUID
  direction:
    required: false
    name: direction
    in: query
    type: string
    enum:
    - asc
    - desc
    description: Sort list of items in 'asc' (ascending) or 'desc' (descending) order
  enddate:
    name: end_date
    description: filter before end date. Format YYYY-MM-DDTHH:MM:SS. Empty means 'until the current time'.
    in: query
    type: string
    format: date-time
    required: false
  limit:
    required: false
    name: limit
    in: query
    type: integer
    description: Maximum number of items to return in the list
  offset:
    required: false
    name: offset
    in: query
    type: integer
    description: Number of items to skip over in the list. Useful for pagination.
  order:
    required: false
    name: order
    in: query
    type: string
    description: Name of the field to use for sorting the list of items returned.
  queueid:
    required: true
    name: queue_id
    type: integer
    in: path
    description: Queue’s ID
  recurse:
    name: recurse
    in: query
    type: boolean
    description: Should the query include sub-tenants
    default: false
    required: false
  search:
    required: false
    name: search
    in: query
    type: string
    description: Search term for filtering a list of items. Only items with a field containing the search term will be returned.
  query_string_uuid_filter:
    in: query
    name: uuid
    required: false
    collectionFormat: csv
    type: array
    minItems: 1
    maxItems: 20
    uniqueItems: true
    items:
      type: string
      format: uuid
    description: Search filter for resource UUID, can be used to search multiple elements. Using a comma separated list of
      UUID
  startdate:
    name: start_date
    description: filter after start date. Format YYYY-MM-DDTHH:MM:SS. Empty means 'since the earliest'.
    in: query
    type: string
    format: date-time
    required: false
  tenantuuid:
    name: Wazo-Tenant
    type: string
    in: header
    description: The tenant's UUID, defining the ownership of a given resource.
    required: false
  view:
    required: false
    name: view
    in: query
    type: string
    enum:
    - directory
    - summary
    - line_presence
    description: Different view of the list of users.
  access_featureid:
    required: true
    type: integer
    name: access_feature_id
    in: path
    description: Access feature ID
  application_uuid:
    required: true
    type: integer
    name: application_uuid
    in: path
    description: Application's UUID
  callfilterid:
    required: true
    type: integer
    name: callfilter_id
    in: path
    description: Call Filter's ID
  callpermissionid:
    required: true
    type: integer
    name: callpermission_id
    in: path
    description: Call Permission's ID
  callpickupid:
    required: true
    type: integer
    name: callpickup_id
    in: path
    description: Call Pickup's ID
  conferenceid:
    required: true
    type: integer
    name: conference_id
    in: path
    description: Conference's ID
  contextid:
    required: true
    type: integer
    name: context_id
    in: path
    description: context's ID
  availability:
    required: false
    name: availability
    in: query
    type: string
    default: available
    enum:
    - available
    - all
    description: Determines if the ranges are going to be split to display only ranges with available extensions.
  rangetype:
    required: true
    type: string
    enum:
    - user
    - group
    - queue
    - conference
    - incall
    name: range_type
    in: path
    description: The extension range destination type
  deviceid:
    required: true
    type: string
    name: device_id
    in: path
    description: Device's ID
  customid:
    required: true
    type: integer
    name: custom_id
    in: path
  iaxid:
    required: true
    type: integer
    name: iax_id
    in: path
  sccpid:
    required: true
    type: integer
    name: sccp_id
    in: path
  sipuuid:
    required: true
    type: string
    name: sip_uuid
    in: path
  template_uuid:
    required: true
    type: string
    name: template_uuid
    in: path
  endpoint_sip_view:
    required: false
    type: string
    name: view
    enum:
    - merged
    in: query
    description: 'Different view of the SIP endpoint


      The `default` view, when the argument is omitted, is to include only options that

      are defined on the specified endpoint.


      The `merged` view includes all options from included templates.

      '
  extensionid:
    required: true
    type: integer
    name: extension_id
    in: path
  extensionuuid:
    required: true
    type: string
    name: extension_uuid
    in: path
  externalappname:
    required: true
    type: string
    name: app_name
    in: path
    description: External App's name
  funckeyposition:
    required: true
    type: integer
    name: position
    in: path
    description: position of the funckey
  templateid:
    required: true
    type: integer
    name: template_id
    in: path
  groupid:
    required: true
    type: integer
    name: group_id
    in: path
    description: the group's ID
  groupuuid:
    required: true
    type: string
    name: group_uuid
    in: path
    description: the group's UUID
  incallid:
    required: true
    type: integer
    name: incall_id
    in: path
    description: Incoming call's ID
  http_ingress_uuid:
    required: true
    type: string
    name: http_ingress_uuid
    in: path
  ingress_fallback_view:
    description: 'Allows to fallback on master tenant config if the current tenant has no ingress set.

      When the `view` is omitted or the `default`value is passed, only the ingress of the current tenant is returned. This
      is useful for configuration API.

      For `fallback` view the API fallbacks to the master tenant ingress value. '
    enum:
    - default
    - fallback
    in: query
    name: view
    required: false
    type: string
  ivrid:
    required: true
    type: integer
    name: ivr_id
    in: path
    description: IVR's ID
  lineid:
    required: true
    type: integer
    name: line_id
    in: path
  meeting_uuid:
    required: true
    name: meeting_uuid
    in: path
    type: string
    description: Meeting UUID
  guest_uuid:
    required: true
    name: guest_uuid
    in: path
    type: string
    description: Guest UUID. It must be generated by the guest.
  authorization_uuid:
    required: true
    name: authorization_uuid
    in: path
    type: string
    description: Authorization UUID
  moh_uuid:
    required: true
    type: string
    name: moh_uuid
    in: path
  moh_filename:
    required: true
    type: string
    name: moh_filename
    in: path
  outcallid:
    required: true
    type: integer
    name: outcall_id
    in: path
    description: Outgoing call's ID
  pagingid:
    required: true
    type: integer
    name: paging_id
    in: path
    description: Paging's ID
  parkinglotid:
    required: true
    type: integer
    name: parking_lot_id
    in: path
    description: Parking Lot's ID
  phone_number_uuid:
    name: phone_number_uuid
    in: path
    type: string
    description: UUID of the phone number
    required: true
  shared:
    in: query
    name: shared
    type: boolean
    description: Only include shared phone numbers
  main:
    in: query
    name: main
    type: boolean
    description: Only include the main phone number of the tenant
  fallback_transport:
    required: false
    name: fallback
    in: query
    type: string
    description: 'The UUID of the transport that should be associated to orphaned

      SIP configurations

      '
  transportuuid:
    required: true
    type: string
    name: transport_uuid
    in: path
    description: The UUID of the transport
  registeriaxid:
    description: Register IAX's ID
    name: register_iax_id
    in: path
    type: integer
    required: true
  registrar_id:
    required: true
    type: string
    name: registrar_id
    in: path
    description: Registrar ID
  scheduleid:
    required: true
    type: integer
    name: schedule_id
    in: path
    description: Schedule's ID
  skillid:
    required: true
    type: integer
    name: skill_id
    in: path
    description: Skill's ID
  skillruleid:
    required: true
    type: integer
    name: skillrule_id
    in: path
    description: Skill's ID
  sound_category:
    required: true
    type: string
    name: sound_category
    in: path
  sound_filename:
    required: true
    type: string
    name: sound_filename
    in: path
  sound_language:
    required: false
    name: language
    in: query
    type: string
    description: Language of the sound
  sound_format:
    required: false
    name: format
    in: query
    type: string
    description: Format of the sound
  switchboard_uuid:
    name: switchboard_uuid
    in: path
    required: true
    type: string
  urltenantuuid:
    description: Resource UUID
    name: tenant_uuid
    in: path
    type: string
    required: true
  trunkid:
    description: Trunk's ID
    name: trunk_id
    in: path
    type: integer
    required: true
  forward:
    required: true
    type: string
    enum:
    - busy
    - noanswer
    - unconditional
    name: forward_name
    in: path
    description: the forward name
  service:
    required: true
    type: string
    enum:
    - dnd
    - incallfilter
    name: service_name
    in: path
    description: the service name
  useriduuid:
    required: true
    type: string
    name: user_id
    in: path
    description: the user's ID or UUID
  blocklist_number_uuid:
    name: blocklist_number_uuid
    in: path
    type: string
    format: uuid
    description: UUID of the blocklisted number
    required: true
  user_external_app_view:
    required: false
    type: string
    name: view
    enum:
    - fallback
    in: query
    description: 'Different view of the external app endpoint


      The `default` view, when the argument is omitted, is to return the user value for this

      external app


      The `fallback` view return the user value for this external app, but if not found, will

      fallback to the tenant configured value


      **WARNING**: Using fallback view on list will disabled all pagination and search features

      '
  csvbody:
    name: body
    in: body
    required: true
    description: CSV field list available at https://wazo-platform.org/uc-doc/administration/users/csv_import
    schema:
      type: string
  voicemailid:
    required: true
    type: integer
    name: voicemail_id
    in: path
responses:
  AlreadyConfiguredError:
    description: The Wazo must not be configured
    schema:
      $ref: '#/definitions/Error'
  GenericError:
    description: An error occurred during the operation
    schema:
      $ref: '#/definitions/Error'
  CreateError:
    description: An error occurred when creating the resource
    schema:
      $ref: '#/definitions/Error'
  UpdateError:
    description: An error occurred when updating the resource
    schema:
      $ref: '#/definitions/Error'
  DeleteError:
    description: An error occurred when deleting the resource
    schema:
      $ref: '#/definitions/Error'
  NotFoundError:
    description: The resource requested was not found on the server
    schema:
      $ref: '#/definitions/Error'
  ResourceUpdated:
    description: Resource was updated successfully
  ResourceDeleted:
    description: Resource was deleted successfully
definitions:
  Link:
    title: Link
    description: a pointer to a linked resource related in some way to the current resource
    properties:
      href:
        type: string
        description: The URL of the link
      rel:
        type: string
        description: The relationship of the link relative to the current resource
  DestinationType:
    title: DestinationType
    properties:
      application:
        $ref: '#/definitions/DestinationApplicationApplication'
      conference:
        $ref: '#/definitions/DestinationConference'
      custom:
        $ref: '#/definitions/DestinationCustom'
      extension:
        $ref: '#/definitions/DestinationExtension'
      group:
        $ref: '#/definitions/DestinationGroup'
      hangup:
        $ref: '#/definitions/DestinationHangupCause'
      ivr:
        $ref: '#/definitions/DestinationIVR'
      none:
        $ref: '#/definitions/DestinationNone'
      outcall:
        $ref: '#/definitions/DestinationOutcall'
      queue:
        $ref: '#/definitions/DestinationQueue'
      sound:
        $ref: '#/definitions/DestinationSound'
      switchboard:
        $ref: '#/definitions/DestinationSwitchboard'
      user:
        $ref: '#/definitions/DestinationUser'
      voicemail:
        $ref: '#/definitions/DestinationVoicemail'
  DestinationApplicationApplication:
    title: DestinationApplicationApplication
    properties:
      callback_disa:
        $ref: '#/definitions/DestinationApplicationCallbackDISA'
      custom:
        $ref: '#/definitions/DestinationApplicationCustom'
      directory:
        $ref: '#/definitions/DestinationApplicationDirectory'
      disa:
        $ref: '#/definitions/DestinationApplicationDISA'
      fax_to_mail:
        $ref: '#/definitions/DestinationApplicationFaxToMail'
      voicemail:
        $ref: '#/definitions/DestinationApplicationVoicemail'
  DestinationApplication:
    title: DestinationApplication
    properties:
      type:
        type: string
        description: MUST be 'application'
    required:
    - type
  DestinationApplicationCallbackDISA:
    title: DestinationApplicationCallbackDISA
    allOf:
    - $ref: '#/definitions/DestinationApplication'
    - properties:
        application:
          type: string
          description: MUST be 'callback_disa'
        context:
          type: integer
          description: The context of the application
        pin:
          type: string
          description: the pin of the application
      required:
      - application
      - context
  DestinationApplicationCustom:
    title: DestinationApplicationCustom
    allOf:
    - $ref: '#/definitions/DestinationApplication'
    - properties:
        application:
          type: string
          description: MUST be 'custom'
        application_uuid:
          type: string
          description: The UUID of the application.
    required:
    - application
    - application_uuid
  DestinationApplicationDirectory:
    title: DestinationApplicationDirectory
    allOf:
    - $ref: '#/definitions/DestinationApplication'
    - properties:
        application:
          type: string
          description: MUST be 'directory'
        context:
          type: integer
          description: The context of the application
      required:
      - application
      - context
  DestinationApplicationDISA:
    title: DestinationApplicationDISA
    allOf:
    - $ref: '#/definitions/DestinationApplication'
    - properties:
        application:
          type: string
          description: MUST be 'disa'
        context:
          type: integer
          description: The context of the application
        pin:
          type: string
          description: the pin of the application
      required:
      - application
      - context
  DestinationApplicationFaxToMail:
    title: DestinationApplicationFaxToMail
    allOf:
    - $ref: '#/definitions/DestinationApplication'
    - properties:
        application:
          type: string
          description: MUST be 'fax_to_mail'
        email:
          type: string
          description: The email of the application
    required:
    - application
    - email
  DestinationApplicationVoicemail:
    title: DestinationApplicationVoicemail
    allOf:
    - $ref: '#/definitions/DestinationApplication'
    - properties:
        application:
          type: string
          description: MUST be 'voicemail'
        context:
          type: integer
          description: The context of the application
      required:
      - application
      - context
  DestinationConference:
    title: DestinationConference
    properties:
      type:
        type: string
        description: MUST be 'conference'
      conference_id:
        type: integer
        description: The id of the conference
    required:
    - type
    - conference_id
  DestinationCustom:
    title: DestinationCustom
    properties:
      type:
        type: string
        description: MUST be 'custom'
      command:
        type: string
        description: The command to execute
    required:
    - type
    - command
  DestinationExtension:
    title: DestinationExtension
    properties:
      type:
        type: string
        description: MUST be 'extension'
      exten:
        type: string
      context:
        type: string
        description: Context of the extension
    required:
    - type
    - exten
    - context
  DestinationGroup:
    title: DestinationGroup
    properties:
      type:
        type: string
        description: MUST be 'group'
      group_id:
        type: integer
        description: The id of the group
      ring_time:
        type: number
        format: float
    required:
    - type
    - group_id
  DestinationHangupCause:
    title: DestinationHangupCause
    properties:
      busy:
        $ref: '#/definitions/DestinationHangupBusy'
      congestion:
        $ref: '#/definitions/DestinationHangupCongestion'
      normal:
        $ref: '#/definitions/DestinationHangupNormal'
  DestinationHangup:
    title: DestinationHangup
    properties:
      type:
        type: string
        description: MUST be 'hangup'
    required:
    - type
  DestinationHangupBusy:
    title: DestinationHangupBusy
    allOf:
    - $ref: '#/definitions/DestinationHangup'
    - properties:
        cause:
          type: string
          description: MUST be 'busy'
        timeout:
          type: integer
          description: The timeout of the hangup
    required:
    - cause
  DestinationHangupCongestion:
    title: DestinationHangupCongestion
    allOf:
    - $ref: '#/definitions/DestinationHangup'
    - properties:
        cause:
          type: string
          description: MUST be 'congestion'
        timeout:
          type: integer
          description: The timeout of the hangup
    required:
    - cause
  DestinationHangupNormal:
    title: DestinationHangupNormal
    allOf:
    - $ref: '#/definitions/DestinationHangup'
    - properties:
        cause:
          type: string
          description: MUST be 'normal'
    required:
    - cause
  DestinationIVR:
    title: DestinationIVR
    properties:
      type:
        type: string
        description: MUST be 'ivr'
      ivr_id:
        type: integer
        description: The id of the IVR
    required:
    - type
    - ivr_id
  DestinationNone:
    title: DestinationNone
    properties:
      type:
        type: string
        description: MUST be 'none'
    required:
    - type
  DestinationOutcall:
    title: DestinationOutcall
    properties:
      type:
        type: string
        description: MUST be 'outcall'
      exten:
        type: string
      outcall_id:
        type: integer
        description: The id of the outcall
    required:
    - type
    - exten
    - outcall_id
  DestinationQueue:
    title: DestinationQueue
    properties:
      type:
        type: string
        description: MUST be 'queue'
      queue_id:
        type: integer
        description: The id of the queue
      ring_time:
        type: number
        format: float
      skill_rule_id:
        type: integer
        description: The id of the skill rule
      skill_rule_variables:
        type: object
        description: key-value where key represents the variable of the skill rule and value represents a value
    required:
    - type
    - queue_id
  DestinationSound:
    title: DestinationSound
    properties:
      type:
        type: string
        description: MUST be 'sound'
      filename:
        type: string
        description: The filename of the sound. The file MUST be imported by to webi in the playback directory. The extension
          of file SHOULD be not present.
      skip:
        type: boolean
        description: Do not play this sound if the call is not answered
      no_answer:
        type: boolean
        description: Play this sound without answering the call
    required:
    - type
    - filename
  DestinationSwitchboard:
    title: DestinationSwitchboard
    properties:
      type:
        type: string
        description: MUST be 'switchboard'
      switchboard_uuid:
        type: string
        description: The UUID of the switchboard.
    required:
    - type
    - switchboard_uuid
  DestinationUser:
    title: DestinationUser
    properties:
      type:
        type: string
        description: MUST be 'user'
      user_id:
        type: integer
        description: The id of the user
      ring_time:
        type: number
        format: float
      moh_uuid:
        type: string
        description: The UUID of the music on hold to use instead of a ringback tone.
    required:
    - type
    - user_id
  DestinationVoicemail:
    title: DestinationVoicemail
    properties:
      type:
        type: string
        description: MUST be 'voicemail'
      voicemail_id:
        type: integer
        description: The id of the voicemail
      skip_instructions:
        type: boolean
        description: Skip the playback of instructions for leaving a message
      greeting:
        type: string
        enum:
        - busy
        - unavailable
        description: Play the specified greeting
    required:
    - type
    - voicemail_id
  EndpointRelationTrunk:
    properties:
      trunk:
        $ref: '#/definitions/TrunkRelationBase'
        readOnly: true
  EndpointRelationLine:
    properties:
      line:
        type: array
        readOnly: true
        items:
          $ref: '#/definitions/LineRelationBase'
  Error:
    type: array
    items:
      type: string
  UsersUuid:
    properties:
      users:
        items:
          $ref: '#/definitions/UserUuid'
        type: array
  UserUuid:
    properties:
      uuid:
        type: string
  GroupID:
    properties:
      id:
        type: integer
  GroupsID:
    properties:
      groups:
        items:
          $ref: '#/definitions/GroupID'
        type: array
  KeyValueOption:
    description: "Options must have the following form:\n```\n{\n  \"options\": [\n      [\"option\", \"value\"],\n  ]\n}\n\
      ```\n"
    title: Key Value
    type: array
    items:
      type: string
    maxItems: 2
    minItems: 2
    example:
    - option
    - value
  AccessFeature:
    title: Access feature
    properties:
      id:
        type: integer
        description: The access_feature ID
      host:
        type: string
        description: The host or subnet string (e.g. 10.0.0.0/24)
      feature:
        type: string
        description: The feature to limit the access to
        enum:
        - phonebook
      enabled:
        type: boolean
    required:
    - host
    - feature
  AccessFeatureItems:
    title: AccessFeatureItems
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/AccessFeature'
      total:
        type: integer
    required:
    - total
  Agent:
    title: Agent
    allOf:
    - $ref: '#/definitions/AgentRelationBase'
    - properties:
        password:
          type: string
          description: Numeric password used to log agent.
        language:
          type: string
          description: Language used for the agent menu prompt
        preprocess_subroutine:
          type: string
          description: Name of the subroutine to execute in asterisk before receiving a call
        description:
          type: string
          description: Additional information about the agent
        tenant_uuid:
          type: string
          description: The UUID of the tenant
          readOnly: true
    - $ref: '#/definitions/AgentRelationQueues'
    - $ref: '#/definitions/AgentRelationUsers'
    - $ref: '#/definitions/AgentRelationSkills'
    - required:
      - number
  AgentRelationBase:
    properties:
      id:
        type: integer
        readOnly: true
        description: The id of the agent
      firstname:
        type: string
      lastname:
        type: string
      number:
        type: string
        description: Agent number. Cannot be modified after creation
  AgentRelationQueues:
    properties:
      queues:
        type: array
        readOnly: true
        items:
          $ref: '#/definitions/AgentRelationQueue'
  AgentRelationQueue:
    allOf:
    - $ref: '#/definitions/QueueRelationBase'
    - properties:
        penalty:
          type: integer
          description: Agent's penalty. A priority used for distributing calls.
  AgentRelationUsers:
    properties:
      users:
        type: array
        readOnly: true
        items:
          $ref: '#/definitions/AgentRelationUser'
  AgentRelationSkills:
    properties:
      skills:
        type: array
        readOnly: true
        items:
          $ref: '#/definitions/AgentRelationSkill'
  AgentRelationSkill:
    allOf:
    - $ref: '#/definitions/SkillRelationBase'
    - $ref: '#/definitions/AgentSkillRelationBase'
  AgentRelationUser:
    allOf:
    - $ref: '#/definitions/UserRelationBase'
  AgentItems:
    title: AgentItems
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/Agent'
      total:
        type: integer
    required:
    - total
  AgentSkill:
    title: AgentSkill
    allOf:
    - $ref: '#/definitions/AgentSkillRelationBase'
  AgentSkillRelationBase:
    properties:
      skill_weight:
        type: integer
        description: Skill's weight.
  Application:
    type: object
    allOf:
    - $ref: '#/definitions/ApplicationRelationBase'
    - properties:
        tenant_uuid:
          type: string
          description: The UUID of the tenant
          readOnly: true
        destination:
          type: string
          description: Destination where the call entering in the application will be sent
          enum:
          - node
        destination_options:
          $ref: '#/definitions/ApplicationDestinationNode'
    - $ref: '#/definitions/ApplicationRelationLines'
  ApplicationRelationBase:
    properties:
      uuid:
        type: string
        description: Application UUID
        readOnly: true
      name:
        type: string
        description: Application name
  ApplicationDestinationNode:
    type: object
    properties:
      music_on_hold:
        type: string
        description: Name of the MOH category to use for music on hold
      answer:
        type: boolean
        description: Automatically answer the call when the call enters the destination node
      type:
        type: string
        description: type of the default node
        enum:
        - holding
  ApplicationRelationLines:
    properties:
      lines:
        type: array
        readOnly: true
        items:
          $ref: '#/definitions/LineRelationBase'
  ApplicationItems:
    type: object
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/Application'
  CallFilter:
    title: CallFilter
    allOf:
    - properties:
        id:
          type: integer
          readOnly: true
          description: The id of the call filter
        tenant_uuid:
          type: string
          description: The UUID of the tenant
          readOnly: true
        name:
          type: string
          description: The name of the call filter
        source:
          type: string
          enum:
          - internal
          - external
          - all
          description: Call type to apply call filter
        strategy:
          type: string
          enum:
          - all-recipients-then-linear-surrogates
          - all-recipients-then-all-surrogates
          - all-surrogates-then-all-recipients
          - linear-surrogates-then-all-recipients
          - all
          description: Determine which will ring.
        surrogates_timeout:
          type: integer
          description: Number of seconds the filter's surrogates will ring before falling back
        caller_id_mode:
          type: string
          enum:
          - prepend
          - overwrite
          - append
          description: How the caller_id_name will be treated
        caller_id_name:
          type: string
          description: Name to display
        description:
          type: string
          description: Additional information about the call filter
        enabled:
          type: boolean
          default: true
          description: Disable or enable the call filter
      required:
      - name
      - source
      - strategy
    - $ref: '#/definitions/CallFilterRecipients'
    - $ref: '#/definitions/CallFilterSurrogates'
  CallFilterItems:
    title: CallFilterItems
    properties:
      items:
        type: array
        items:
          $ref: '#/definitions/CallFilter'
      total:
        type: integer
    required:
    - total
  CallFilterRecipients:
    properties:
      recipients:
        readOnly: true
        $ref: '#/definitions/CallFilterRecipientUsers'
  CallFilterSurrogates:
    properties:
      surrogates:
        readOnly: true
        $ref: '#/definitions/CallFilterSurrogateUsers'
  CallFilterRecipientUsers:
    properties:
      users:
        type: array
        readOnly: true
        items:
          $ref: '#/definitions/CallFilterRecipientUser'
  CallFilterSurrogateUsers:
    properties:
      users:
        type: array
        readOnly: true
        items:
          $ref: '#/definitions/CallFilterSurrogateUser'
  CallFilterRecipientUser:
    allOf:
    - properties:
        timeout:
          type: integer
    - $ref: '#/definitions/UserRelationBase'
  CallFilterSurrogateUser:
    allOf:
    - properties:
        member_id:
          type: integer
        exten:
          type: string
    - $ref: '#/definitions/UserRelationBase'
  CallFilterFallbacks:
    properties:
      noanswer_destination:
        description: The destination to redirect the caller to when there are no answer
        $ref: '#/definitions/DestinationType'
    example:
      noanswer_destination:
        type: user
        user_id: 1
  CallFilterRecipientUserUuid:
    allOf:
    - properties:
        timeout:
          type: integer
    - $ref: '#/definitions/UserUuid'
  CallFilterRecipientUsersUuid:
    properties:
      users:
        items:
          $ref: 

# --- truncated at 32 KB (402 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/openapi/wazo-confd-api-openapi.yml