openapi: 3.2.0 info: title: wazo-dird Conference API description: "Contacts and directories in Wazo are managed by the wazo-dird daemon. This service provides a public API that can be used to query the directories that are configured on a Wazo. \n\n\nA contact can contain various information such as a person's phone number, number, office number, department, office number, etc. The information displayed is selected via a profile. Directories can be aggregated using multiple data sources such as an LDAP server, a CSV file, another Wazo server, etc.\n\n\nPlease refer to [the documentation](https://wazo-platform.org/uc-doc) for further details.\n\n\nNote: The 0.1 API is currently in development. Major changes could still happen and new resources will be added over time." version: '0.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 servers: - url: /0.1 security: - wazo_auth_token: [] tags: - name: conference paths: /backends/conference/sources: get: operationId: list_conference_sources summary: Get all `conference` source configurations description: '**Required ACL:** `dird.backends.conference.sources.read`' tags: - conference parameters: - $ref: '#/components/parameters/tenantuuid' - $ref: '#/components/parameters/recurse' - $ref: '#/components/parameters/order' - $ref: '#/components/parameters/direction' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' responses: '200': description: A list of configured `conference` sources content: application/json: schema: $ref: '#/components/schemas/ConferenceSourceItems' post: operationId: create_conference_source summary: Configure a source for the `conference` backend description: '**Required ACL:** `dird.backends.conference.sources.create`' tags: - conference parameters: - $ref: '#/components/parameters/tenantuuid' responses: '201': description: The created source content: application/json: schema: $ref: '#/components/schemas/ConferenceSource' example: name: conferences searched_columns: - number - name format_columns: displayname: '{name}' auth: key_file: /usr/share/wazo-dird/my-auth-key.yml '400': $ref: '#/components/responses/CreateError' '409': description: Duplicate Source content: application/json: schema: $ref: '#/components/schemas/LegacyError' requestBody: content: application/json: schema: $ref: '#/components/schemas/ConferenceSource' description: The display configuration body required: true /backends/conference/sources/{source_uuid}: get: operationId: get_a_conference_source summary: Get a `conference` source configuration description: '**Required ACL:** `dird.backends.conference.sources.{source_uuid}.read`' tags: - conference parameters: - $ref: '#/components/parameters/tenantuuid' - $ref: '#/components/parameters/sourceuuid' responses: '200': description: The `conference` source content: application/json: schema: $ref: '#/components/schemas/ConferenceSource' '404': $ref: '#/components/responses/NotFoundError' put: operationId: update_conference_source summary: Update a `conference` source configuration description: '**Required ACL:** `dird.backends.conference.sources.{source_uuid}.update`' tags: - conference parameters: - $ref: '#/components/parameters/tenantuuid' - $ref: '#/components/parameters/sourceuuid' responses: '204': $ref: '#/components/responses/ResourceUpdated' '400': $ref: '#/components/responses/UpdateError' '404': $ref: '#/components/responses/NotFoundError' '409': description: Duplicate Source content: application/json: schema: $ref: '#/components/schemas/LegacyError' requestBody: content: application/json: schema: $ref: '#/components/schemas/ConferenceSource' description: The source configuration body required: true delete: operationId: delete_conference_source summary: Delete a `conference` source configuration description: '**Required ACL:** `dird.backends.conference.sources.{source_uuid}.delete`' tags: - conference parameters: - $ref: '#/components/parameters/tenantuuid' - $ref: '#/components/parameters/sourceuuid' responses: '204': $ref: '#/components/responses/ResourceDeleted' '404': $ref: '#/components/responses/NotFoundError' /backends/conference/sources/{source_uuid}/contacts: get: description: '**Required ACL:** `dird.backends.conference.sources.{source_uuid}.contacts.read`' operationId: list_conference_contacts_from_source parameters: - $ref: '#/components/parameters/tenantuuid' - in: path name: source_uuid required: true description: Source uuid schema: type: string - $ref: '#/components/parameters/order' - $ref: '#/components/parameters/direction' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/search' summary: Retrieve all contacts from a conference source tags: - conference responses: '200': description: Contacts as fetched from the Wazo engine. content: application/json: schema: $ref: '#/components/schemas/ConferenceContactList' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/LegacyError' '404': description: No such source content: application/json: schema: $ref: '#/components/schemas/LegacyError' '503': description: Another service is unavailable (e.g. wazo-auth, wazo-confd, ...) content: application/json: schema: $ref: '#/components/schemas/LegacyError' components: schemas: LegacyError: title: LegacyError description: Error message for the client properties: timestamp: description: Time at which the error occured type: array items: type: number format: timestamp reason: description: Human readable explanation of the error type: array items: type: string status_code: description: HTTP status code type: integer APIError: type: object properties: timestamp: type: number message: type: string resource: type: string details: type: object SourceItems: properties: total: type: integer description: The number of configured sources for this backend readOnly: true filtered: type: integer description: The number of configured sources matching the searched terms for this backend readOnly: true WazoAuthConfigNoAuth: title: Auth allOf: - $ref: '#/components/schemas/ExternalServiceConfig' - properties: port: type: integer default: 80 version: type: string default: '0.1' ConferenceContact: properties: uuid: type: string description: The UUID of the contact name: type: string description: The lastname of the contact extensions: type: array items: type: string description: The internal number of that contact incalls: type: array items: type: string description: The external number of that contact ConferenceSource: title: ConferenceSource allOf: - $ref: '#/components/schemas/Source' - properties: auth: $ref: '#/components/schemas/WazoAuthConfig' confd: $ref: '#/components/schemas/ConfdConfig' - required: - name - auth - confd ConferenceSourceItems: title: ConferenceSourceItems allOf: - $ref: '#/components/schemas/SourceItems' - properties: items: type: array items: $ref: '#/components/schemas/ConferenceSource' readOnly: true - required: - items - total - filtered WazoAuthConfig: title: Auth allOf: - $ref: '#/components/schemas/ExternalServiceConfig' - $ref: '#/components/schemas/WazoAuthConfigNoAuth' - properties: key_file: type: string description: The path the the file containing the credentials username: type: string description: The username to use when not using a key_file password: type: string description: The password to use when not using a key_file ExternalServiceConfig: properties: host: type: string default: localhost verify_certificate: type: string description: If the HTTPs certificates should be verified and the path of the certificate if a custom certificate is used. default: 'true' timeout: type: number ConfdConfig: title: Confd allOf: - $ref: '#/components/schemas/ExternalServiceConfig' - properties: port: type: integer default: 9486 https: type: boolean default: true version: type: string default: '1.1' Source: properties: uuid: type: string description: The source's UUID readOnly: true name: type: string description: The source's name searched_columns: type: array items: type: string description: A list of columns which should be searched when doing a look up first_matched_columns: type: array items: type: string description: A list of columns which should be searched when doing a reverse look up format_columns: type: object description: A mapping of new fields and a python format string to generate the new columns value ConferenceContactList: properties: total: type: integer description: The number of contacts in this source readOnly: true filtered: type: integer description: The number of contacts in this source (filtered is not implemented) readOnly: true items: type: array items: $ref: '#/components/schemas/ConferenceContact' required: - items - total - filtered responses: NotFoundError: description: The resource requested was not found on the server content: application/json: schema: $ref: '#/components/schemas/APIError' ResourceDeleted: description: Resource was deleted successfully CreateError: description: An error occurred when creating the resource content: application/json: schema: $ref: '#/components/schemas/APIError' ResourceUpdated: description: Resource was updated successfully UpdateError: description: An error occurred when updating the resource content: application/json: schema: $ref: '#/components/schemas/APIError' parameters: tenantuuid: name: Wazo-Tenant in: header description: The tenant's UUID, defining the ownership of a given resource. required: false schema: type: string Offset: name: offset in: query description: The offset defines the number of items of the collection to skip required: false schema: type: integer default: 0 offset: name: offset in: query description: The offset defines the offsets the start by the number specified required: false schema: type: integer default: 0 order: required: false name: order in: query description: Name of the field to use for sorting the list of items returned. schema: type: string Limit: name: limit in: query description: The limit defines the number of individual objects that are returned required: false schema: type: integer direction: required: false name: direction in: query description: Sort list of items in 'asc' (ascending) or 'desc' (descending) order schema: type: string enum: - asc - desc recurse: name: recurse in: query description: Should the query include sub-tenants required: false schema: type: boolean default: false sourceuuid: name: source_uuid in: path description: The source's UUID required: true schema: type: string search: required: false name: search in: query description: Search term for filtering a list of items. Only items with a field containing the search term will be returned. schema: type: string limit: name: limit in: query description: The limit defines the number of individual objects that are returned required: false schema: type: integer securitySchemes: wazo_auth_token: type: apiKey name: X-Auth-Token in: header x-xivo-port: 9489 x-xivo-name: dird x-apievangelist-source: harvested_from: https://github.com/wazo-platform/wazo-dird assembly: base plugin api.yml deep-merged with all plugin api.yml fragments, reproducing what the running service serves at /api/dird/0.1/api/api.yml (see wazo_dird/plugins/api/http.py — xivo.chain_map.ChainMap) spec_version: Swagger 2.0 (as published by Wazo) harvested: '2026-08-17'