openapi: 3.2.0
info:
title: Wazo Users API
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
version: '1.0'
description: 'Operations tagged users across 6 of this provider''s published API definitions: wazo-agentd-api-openapi.yml, wazo-auth-api-openapi.yml, wazo-call-logd-api-openapi.yml, wazo-calld-api-openapi.yml, wazo-confd-api-openapi.yml, wazo-webhookd-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: /1.0
- url: /0.1
- url: /1.1
tags:
- name: users
paths:
/users/me/agents:
get:
summary: Get agent status of the user holding the authentication token.
description: '**Required ACL:** `agentd.users.me.agents.read`'
operationId: get_user_agent
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
responses:
'200':
description: The agent status
content:
application/json:
schema:
$ref: '#/components/schemas/AgentStatus'
'404':
description: Agent does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/agents/login:
post:
summary: Log the agent of the user holding the authentication token
description: '**Required ACL:** `agentd.users.me.agents.login.create`'
operationId: login_user_agent
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
responses:
'204':
description: The operation was performed successfully
'400':
description: The user does not own the line; or the token has no user; or wrong tenant; or the user has no agent
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Agent is already logged or another agent is already logged on this line
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserAgentLoginInfo'
description: The line on which to log the agent
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/agents/logoff:
post:
summary: Logoff the agent of the user holding the authentication token
description: '**Required ACL:** `agentd.users.me.agents.logoff.create`'
operationId: logoff_user_agent
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
responses:
'204':
description: The operation was performed successfully
'400':
description: The token has no user; or wrong tenant; or the user has no agent
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Agent is already logged or another agent is already logged on this line
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/agents/pause:
post:
summary: Pause the agent of the user holding the authentication token
description: '**Required ACL:** `agentd.users.me.agents.pause.create`'
operationId: pause_user_agent
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
responses:
'204':
description: The operation was performed successfully
'400':
description: The token has no user; or wrong tenant; or the user has no agent
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Agent is already logged or another agent is already logged on this line
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AgentPauseReason'
description: The reason for pausing the agent
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/agents/unpause:
post:
summary: Unpause the agent of the user holding the authentication token
description: '**Required ACL:** `agentd.users.me.agents.unpause.create`'
operationId: unpause_user_agent
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
responses:
'204':
description: The operation was performed successfully
'400':
description: The token has no user; or wrong tenant; or the user has no agent
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Agent is already logged or another agent is already logged on this line
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/agents/queues/{queue_id}/login:
put:
summary: Login user agent to queue
description: '**Required ACL:** `agentd.users.me.agents.queues.{queue_id}.login.update`'
operationId: user_agent_login_to_queue
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/QueueID'
responses:
'204':
description: The operation was performed successfully
'400':
description: The token has no user; or wrong tenant; or the user has no agent
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Agent or queue does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Agent is not logged
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/agents/queues/{queue_id}/logoff:
put:
summary: Logoff user agent from queue
description: '**Required ACL:** `agentd.users.me.agents.queues.{queue_id}.logoff.update`'
operationId: user_agent_logoff_from_queue
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/QueueID'
responses:
'204':
description: The operation was performed successfully
'400':
description: The token has no user; or wrong tenant; or the user has no agent
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Agent or queue does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Agent is not logged
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/{user_uuid}/external/google:
get:
summary: Get a Google token
description: '**Required ACL**: `auth.users.{user_uuid}.external.google.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'200':
description: The auth data
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleGetResult'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
post:
summary: Ask for a verification URL and store code to get token
description: '**Required ACL**: `auth.users.{user_uuid}.external.google.create`.
More info on Google permissions: https://developers.google.com/identity/protocols/googlescopes"
'
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'201':
description: Authentication url
content:
application/json:
schema:
$ref: '#/components/schemas/GooglePostResult'
'400':
description: Invalid body
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GooglePost'
delete:
summary: Delete a Google token
description: '**Required ACL**: `auth.users.{user_uuid}.external.google.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'204':
description: External authentication deleted
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
servers:
- url: /0.1
/users/{user_uuid}/external/microsoft:
get:
summary: Get a Microsoft token
description: '**Required ACL**: `auth.users.{user_uuid}.external.microsoft.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'200':
description: The auth data
content:
application/json:
schema:
$ref: '#/components/schemas/MicrosoftGetResult'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
post:
summary: Ask for a verification URL and store code to get token
description: "**Required ACL**: `auth.users.{user_uuid}.external.microsoft.create`.\n\n More info on Microsoft permissions: https://docs.microsoft.com/en-us/graph/permissions-reference"
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'201':
description: Authentication url
content:
application/json:
schema:
$ref: '#/components/schemas/MicrosoftPostResult'
'400':
description: Invalid body
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MicrosoftPost'
delete:
summary: Delete a Microsoft token
description: '**Required ACL**: `auth.users.{user_uuid}.external.microsoft.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'204':
description: No content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
servers:
- url: /0.1
/users/{user_uuid}/external/mobile:
get:
summary: Get device tokens for push notifications
description: '**Required ACL**: `auth.users.{user_uuid}.external.mobile.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'200':
description: The auth data
content:
application/json:
schema:
$ref: '#/components/schemas/MobileData'
'400':
description: Invalid body
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
post:
summary: Configure device tokens for push notifications
description: '**Required ACL**: `auth.users.{user_uuid}.external.mobile.create`'
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'200':
description: The auth data
content:
application/json:
schema:
$ref: '#/components/schemas/MobileData'
'400':
description: Invalid body
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MobileData'
required: true
put:
summary: Update device tokens for push notifications
description: '**Required ACL**: `auth.users.{user_uuid}.external.mobile.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'200':
description: The updated mobile auth data
content:
application/json:
schema:
$ref: '#/components/schemas/MobileData'
'400':
description: Invalid body
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MobileData'
required: true
delete:
summary: Delete device tokens for push notifications
description: '**Required ACL**: `auth.users.{user_uuid}.external.mobile.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'204':
description: the mobile auth data was successfully deleted
servers:
- url: /0.1
/users/{user_uuid}/external/mobile/sender_id:
get:
summary: Get your Mobile sender_id
description: '**Required ACL**: `auth.users.{user_uuid}.external.mobile.sender_id.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'200':
description: The sender id
content:
application/json:
schema:
type: object
properties:
sender_id:
type:
- string
- 'null'
description: The sender id
'400':
description: Invalid body
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
servers:
- url: /0.1
/users/{user_uuid}/external:
get:
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.users.{user_uuid}.external.read`
This list should not contain any sensible information
'
summary: Retrieves the list of the users external auth data
parameters:
- $ref: '#/components/parameters/user_uuid'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/direction'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/search'
responses:
'200':
description: The list of external auth data
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalAuthList'
servers:
- url: /0.1
/idp/{idp_type}/users/{user_uuid}:
put:
tags:
- users
security:
- wazo_auth_token: []
operationId: addUserIDP
description: '**Required ACL:** `auth.idp.{idp_type}.users.{user_uuid}.create`'
summary: Associate user to a IDP
parameters:
- $ref: '#/components/parameters/idp_type'
- $ref: '#/components/parameters/user_uuid'
responses:
'204':
description: The user has been assigned
'404':
description: User or IDP not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
delete:
tags:
- users
security:
- wazo_auth_token: []
operationId: removeIDPUser
description: '**Required ACL:** `auth.idp.{idp_type}.users.{user_uuid}.delete`'
summary: Dissocuate a user from an IDP
parameters:
- $ref: '#/components/parameters/idp_type'
- $ref: '#/components/parameters/user_uuid'
responses:
'204':
description: The user has been unassigned
'404':
description: User or IDP not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
servers:
- url: /0.1
/users/password/reset:
get:
summary: Reset the user password
description: 'This action will send an email containing instructions to set a new password.
The login or username or email address should be supplied as query string to find the user
'
operationId: reset_password
tags:
- users
parameters:
- name: username
in: query
description: The user's username
schema:
type: string
- name: email
in: query
description: The user's email address
schema:
type: string
- name: login
in: query
description: The user's login (username or email)
schema:
type: string
responses:
'204':
description: A mail will be sent if the username or email were found
'405':
description: Unable to reset the password, e.g. because the authentication is handled externally.
post:
security:
- wazo_auth_token: []
summary: Set the user password
description: '**Required ACL**: `auth.users.password.reset.{user_uuid}.create`
Set a new password for the user after the user used the GET on the reset URL.
All active sessions (i.e. tokens) will be immediately revoked and can no longer be used.
Existing refresh tokens are not affected and remain valid.
'
operationId: reset_password_change
tags:
- users
parameters:
- name: user_uuid
in: query
description: The user's UUID
required: true
schema:
type: string
responses:
'204':
description: Password changed
'405':
description: Unable to reset the password, e.g. because the authentication is handled externally.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PostPasswordReset'
description: The password change parameters
required: true
servers:
- url: /0.1
/users/{user_uuid_or_me}/tokens:
get:
operationId: listUserRefreshTokens
summary: Retrieve a user's refresh token list
description: '**Required ACL**: `auth.users.{user_uuid}.tokens.read`
Finds all of a user''s refresh token and return the list. Access tokens are not included in the result.
Doing a query with the `user_uuid` `me` will result in the current user''s token being used.
'
tags:
- users
security:
- wazo_auth_token: []
parameters:
- $ref: '#/components/parameters/user_uuid_or_me'
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/direction'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/search'
responses:
'200':
description: A refresh token list
content:
application/json:
schema:
$ref: '#/components/schemas/RefreshTokenList'
'400':
description: Invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
'500':
description: System related token error
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
servers:
- url: /0.1
/users/{user_uuid_or_me}/tokens/{client_id}:
delete:
operationId: deleteRefreshTokens
summary: Delete a user's refresh token
description: '**Required ACL**: `auth.users.{user_uuid}.tokens.{client_id}.delete`
Remove a given refresh token. This only prevent this refresh token from creating new
access tokens. Any tokens that are currently issued are still usable and should be
revoked if needed.
'
tags:
- users
security:
- wazo_auth_token: []
parameters:
- $ref: '#/components/parameters/user_uuid_or_me'
- $ref: '#/components/parameters/client_id'
responses:
'204':
description: The refresh token has been deleted
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
'404':
description: User or refresh token not found
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
'500':
description: System related token error
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
servers:
- url: /0.1
/admin/users/{user_uuid}/emails:
put:
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.admin.users.{user_uuid}.emails.update`
Update all of the users email address at the same time.
If an existing address is missing from the list, it will be removed. An empty list will remove all addresses. If addresses are defined, one and only one address should be main. If the confirmed field is set to none or ommited the existing value will be reused if it exists, otherwise the address will not be confirmed. '
summary: Update email addresses
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'200':
description: The updated email list
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUserEmailList'
description: EmailAddressList
required: true
servers:
- url: /0.1
/users/{user_uuid}/emails:
put:
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.users.{user_uuid}.emails.update`
Update all of the users email address at the same time.
If an existing address is missing from the list, it will be removed. An empty list will remove all addresses. If addresses are defined, one and only one address should be main. All new address are created unconfirmed. '
summary: Update email addresses
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'200':
description: The updated email list
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserEmailList'
description: EmailAddressList
required: true
servers:
- url: /0.1
/users/{user_uuid}/emails/{email_uuid}/confirm:
get:
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.users.{user_uuid}.emails.{email_uuid}.confirm.read`'
summary: Ask a new confirmation email
parameters:
- $ref: '#/components/parameters/user_uuid'
- $ref: '#/components/parameters/email_uuid'
responses:
'204':
description: The new email confirmation email has been sent
'404':
description: User or Email not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'409':
description: Already confirmed
servers:
- url: /0.1
/groups/{group_uuid}/users/{user_uuid}:
put:
tags:
- users
security:
- wazo_auth_token: []
operationId: addUserGroup
description: '**Required ACL:** `auth.groups.{group_uuid}.users.{user_uuid}.create`'
summary: Associate a group to a user
parameters:
- $ref: '#/components/parameters/group_uuid'
- $ref: '#/components/parameters/user_uuid'
responses:
'204':
description: The user has been assigned
'404':
description: User or Group not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
delete:
tags:
- users
security:
- wazo_auth_token: []
operationId: removeUserGroup
description: '**Required ACL:** `auth.groups.{group_uuid}.users.{user_uuid}.delete`'
summary: Dissociate a user from a group
parameters:
- $ref: '#/components/parameters/group_uuid'
- $ref: '#/components/parameters/user_uuid'
responses:
'204':
description: The user has been unassigned
'404':
description: User or Group not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
servers:
- url: /0.1
/users/{user_uuid}/groups:
get:
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.users.{user_uuid}.groups.read`'
parameters:
- $ref: '#/components/parameters/user_uuid'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/direction'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/search'
summary: Retrieves the list of groups associated to a user
responses:
'200':
description: The groups of the user
content:
application/json:
schema:
$ref: '#/components/schemas/GetGroupsResult'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'500':
description: System related error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
servers:
- url: /0.1
/users/{user_uuid}/policies:
get:
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.users.{user_uuid}.policies.read`'
parameters:
- $ref: '#/components/parameters/user_uuid'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/direction'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/search'
summary: Retrieves the list of policies associated to a user
responses:
'200':
description: The user's policies
content:
application/json:
schema:
$ref: '#/components/schemas/GetPoliciesResult'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'500':
description: System related error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
servers:
- url: /0.1
/users/{user_uuid}/policies/{policy_uuid}:
put:
tags:
- users
security:
- wazo_auth_token: []
operationId: addUserPolicy
description: '**Required ACL:** `auth.users.{user_uuid}.policies.{policy_uuid}.create`'
summary: Associate a policy to a user
parameters:
- $ref: '#/components/parameters/policy_uuid'
- $ref: '#/components/parameters/user_uuid'
responses:
'204':
description: The policy has been assigned
'404':
description: User or Policy not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
delete:
tags:
- users
security:
- wazo_auth_token: []
operationId: removeUserPolicy
description: '**Required ACL:** `auth.users.{user_uuid}.policies.{policy_uuid}.delete`'
summary: Dissociate a policy from a user
parameters:
- $ref: '#/components/parameters/policy_uuid'
- $ref: '#/components/parameters/user_uuid'
responses:
'204':
description: The policy has been unassigned
'404':
description: User or Policy not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
servers:
- url: /0.1
/users/register:
post:
summary: Create a user
description: Creates a new user that can be used to retrieve a token.
operationId: registerUser
tags:
- users
responses:
'200':
description: The new user data without the password
content:
application/json:
schema:
$ref: '#/components/schemas/UserPostResponse'
'400':
description: Invalid body
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserRegister'
description: The user creation parameters
required: true
servers:
- url: /0.1
/users/{user_uuid}/sessions:
get:
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.users.{user_uuid}.sessions.read`'
parameters:
- $ref: '#/components/parameters/user_uuid'
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
summary: Retrieves the list of sessions associated to a user
responses:
'200':
description: The sessions of the user
content:
application/json:
schema:
$ref: '#/components/schemas/GetSessionsResult'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'500':
description: System related error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
servers:
- url: /0.1
/users/{user_uuid}/sessions/{session_uuid}:
delete:
operationId: user_delete_session
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.users.{user_uuid}.sessions.{session_uuid}.delete`'
parameters:
- $ref: '#/components/parameters/user_uuid'
- $ref: '#/components/parameters/session_uuid'
summary: Delete a session
responses:
'204':
description: The session has been removed
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
servers:
- url: /0.1
/users:
get:
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.users.read`'
summary: Retrieves the list of users
parameters:
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/direction'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/recurse'
- $ref: '#/components/parameters/has_policy_slug'
- $ref: '#/components/parameters/has_policy_uuid'
- $ref: '#/components/parameters/search_policy_slug'
- $ref: '#/components/parameters/search_policy_uuid'
responses:
'200':
description: The list of user
content:
application/json:
schema:
$ref: '#/components/schemas/UserList'
post:
summary: Create a user
description: '**Required ACL**: `auth.users.create`
Creates a new user that can be used to retrieve a token. The UUID can be used to link this user the a
wazo-confd user by using the same UUID
'
operationId: createUser
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
responses:
'200':
description: The new user data without the password
content:
application/json:
schema:
$ref: '#/components/schemas/UserPostResponse'
'400':
description: Invalid body
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserCreate'
description: The user creation parameters
servers:
- url: /0.1
/users/{user_uuid}:
get:
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.users.{user_uuid}.read`'
parameters:
- $ref: '#/components/parameters/user_uuid'
summary: Retrieves the details of a user
responses:
'200':
description: The user's data
content:
application/json:
schema:
$ref: '#/components/schemas/UserResult'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'500':
description: System related error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
delete:
operationId: delete_user
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.users.{user_uuid}.delete`'
parameters:
- $ref: '#/components/parameters/user_uuid'
summary: Delete a user
responses:
'204':
description: The user has been removed
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'404':
description: not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'500':
description: System related error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
put:
summary: Update an existing user
description: '**Required ACL**: `auth.users.{user_uuid}.update`
When disabling a user (`enabled: false`), all active sessions (i.e.
tokens) will be immediately revoked and can no longer be used.
'
operationId: updateUser
tags:
- users
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'200':
description: The new user data without the password
content:
application/json:
schema:
$ref: '#/components/schemas/UserPostResponse'
'400':
description: Invalid body
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
'404':
description: not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserEdit'
description: The user parameters
required: true
servers:
- url: /0.1
/users/{user_uuid}/password:
put:
tags:
- users
security:
- wazo_auth_token: []
description: '**Required ACL**: `auth.users.{user_uuid}.password.update`
All active sessions (i.e. tokens) will be immediately revoked and can no longer be used.
Existing refresh tokens are not affected and remain valid.
'
summary: Change the user's password
parameters:
- $ref: '#/components/parameters/user_uuid'
responses:
'204':
description: Password changed
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'405':
description: Not allowed, for example unable to update password for user with SAML authentication.
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'500':
description: System related error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PasswordChange'
description: The user creation parameters
required: true
servers:
- url: /0.1
/users/{user_uuid}/cdr:
get:
summary: List CDR of the given user
description: '**Required ACL:** `call-logd.users.{user_uuid}.cdr.read`
This endpoint allow to use `?token={token_uuid}` and `?tenant={tenant_uuid}` query string to bypass headers
'
tags:
- users
parameters:
- name: user_uuid
description: UUID of the given user
required: true
in: path
schema:
type: string
- $ref: '#/components/parameters/from'
- $ref: '#/components/parameters/until'
- $ref: '#/components/parameters/limit_2'
- $ref: '#/components/parameters/offset_2'
- $ref: '#/components/parameters/order_2'
- $ref: '#/components/parameters/direction'
- $ref: '#/components/parameters/search_2'
- $ref: '#/components/parameters/call_direction'
- $ref: '#/components/parameters/number'
- $ref: '#/components/parameters/from_id'
- $ref: '#/components/parameters/distinct'
- $ref: '#/components/parameters/recorded'
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/conversation_id'
- $ref: '#/components/parameters/call_status'
- $ref: '#/components/parameters/requested_internal_extension'
- $ref: '#/components/parameters/requested_internal_context'
responses:
'200':
description: List CDR
content:
application/json:
schema:
$ref: '#/components/schemas/CDRList'
text/csv; charset=utf-8:
schema:
$ref: '#/components/schemas/CDRList'
'400':
$ref: '#/components/responses/InvalidRequest'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/cdr:
get:
summary: List CDR of the authenticated user
description: '**Required ACL:** `call-logd.users.me.cdr.read`
This endpoint allow to use `?token={token_uuid}` and `?tenant={tenant_uuid}` query string to bypass headers
'
tags:
- users
parameters:
- $ref: '#/components/parameters/from'
- $ref: '#/components/parameters/until'
- $ref: '#/components/parameters/limit_2'
- $ref: '#/components/parameters/offset_2'
- $ref: '#/components/parameters/order_2'
- $ref: '#/components/parameters/direction'
- $ref: '#/components/parameters/search_2'
- $ref: '#/components/parameters/call_direction'
- $ref: '#/components/parameters/number'
- $ref: '#/components/parameters/from_id'
- $ref: '#/components/parameters/user_uuid_2'
- $ref: '#/components/parameters/distinct'
- $ref: '#/components/parameters/recorded'
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/conversation_id'
- $ref: '#/components/parameters/call_status'
- $ref: '#/components/parameters/requested_internal_extension'
- $ref: '#/components/parameters/requested_internal_context'
responses:
'200':
description: List CDR
content:
application/json:
schema:
$ref: '#/components/schemas/CDRList'
text/csv; charset=utf-8:
schema:
$ref: '#/components/schemas/CDRList'
'400':
$ref: '#/components/responses/InvalidRequest'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls:
get:
summary: List calls of a user
description: '**Required ACL:** `calld.users.me.calls.read`'
parameters:
- name: application
description: Filter calls by Stasis application, e.g. switchboard.
in: query
schema:
type: string
- name: application_instance
description: Filter calls by Stasis application instance, e.g. switchboard-sales,green. Args must be separated by commas (,).
in: query
schema:
type: string
tags:
- users
responses:
'200':
description: List currently active calls of a user
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Call'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
post:
summary: Make a new call from a user
description: '**Required ACL:** `calld.users.me.calls.create`
The user originator of the call is determined from the authentication token.
'
tags:
- users
responses:
'201':
description: The new call ID
content:
application/json:
schema:
$ref: '#/components/schemas/Call'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserCallRequest'
description: Parameters of the call
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}:
delete:
summary: Hangup a call from a user
description: '**Required ACL:** `calld.users.me.calls.{call_id}.delete`
Only calls owned by the authenticated user may be hung up.'
parameters:
- $ref: '#/components/parameters/CallID'
tags:
- users
responses:
'204':
description: Call has been hung up
'403':
description: The authenticated user tried to hangup a call owned by someone else
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'404':
description: No such call
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}/mute/start:
put:
summary: Mute a call from user
description: '**Required ACL:** `calld.users.me.calls.{call_id}.mute.start.update`
Only calls owned by the authenticated user may be mute.'
parameters:
- $ref: '#/components/parameters/CallID'
tags:
- users
responses:
'204':
description: The call is now muted
'404':
description: No such call
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}/mute/stop:
put:
summary: Unmute a call from user
description: '**Required ACL:** `calld.users.me.calls.{call_id}.mute.stop.update`
Only calls owned by the authenticated user may be unmute.'
parameters:
- $ref: '#/components/parameters/CallID'
tags:
- users
responses:
'204':
description: The call is now unmuted
'404':
description: No such call
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}/hold/start:
put:
summary: Hold a call from user
description: '**Required ACL:** `calld.users.me.calls.{call_id}.hold.start.update`
Only calls owned by the authenticated user may be held.'
parameters:
- $ref: '#/components/parameters/CallID'
tags:
- users
responses:
'204':
description: The call is now held
'404':
description: No such call
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}/hold/stop:
put:
summary: Unhold a call from user
description: '**Required ACL:** `calld.users.me.calls.{call_id}.hold.stop.update`
Only calls owned by the authenticated user may be unheld.'
parameters:
- $ref: '#/components/parameters/CallID'
tags:
- users
responses:
'204':
description: The call is now unheld
'404':
description: No such call
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}/record/start:
put:
summary: Start recording a call
description: '**Required ACL:** `calld.calls.{call_id}.record.start.update`'
parameters:
- $ref: '#/components/parameters/CallID'
tags:
- users
responses:
'204':
description: Recording has started for the call
'403':
description: On demand call recording is not enabled
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'404':
description: No such call
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}/record/stop:
put:
summary: Stop recording a call
description: '**Required ACL:** `calld.calls.{call_id}.record.stop.update`'
parameters:
- $ref: '#/components/parameters/CallID'
tags:
- users
responses:
'204':
description: Recording has stopped for the call
'403':
description: On demand call recording is not enabled
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'404':
description: No such call
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}/record/pause:
put:
summary: Pause recording a call
description: '**Required ACL:** `calld.calls.{call_id}.record.pause.update`'
parameters:
- $ref: '#/components/parameters/CallID'
tags:
- users
responses:
'204':
description: Recording has paused for the call
'403':
description: On demand call recording is not enabled
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'404':
description: No such call
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}/record/resume:
put:
summary: Resume recording a call
description: '**Required ACL:** `calld.calls.{call_id}.record.resume.update`'
parameters:
- $ref: '#/components/parameters/CallID'
tags:
- users
responses:
'204':
description: Recording has resumed for the call
'403':
description: On demand call recording is not enabled
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'404':
description: No such call
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}/answer:
put:
summary: Answer a call from user
description: '**Required ACL:** `calld.users.me.calls.{call_id}.answer.update`
Only calls owned by the authenticated user may be answered.'
parameters:
- $ref: '#/components/parameters/CallID'
tags:
- users
responses:
'204':
description: The call is now answered
'404':
description: No such call
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}/dtmf:
put:
summary: Simulate a user pressing DTMF keys
description: '**Required ACL:** `calld.users.me.calls.{call_id}.dtmf.update'
parameters:
- $ref: '#/components/parameters/CallID'
- $ref: '#/components/parameters/DTMFDigits'
tags:
- users
responses:
'204':
description: The digits have been sent
'404':
description: No such call
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/conferences/{conference_id}/participants:
get:
summary: List participants of a conference as a user
description: '**Required ACL:** `calld.users.me.conferences.{conference_id}.participants.read`'
parameters:
- $ref: '#/components/parameters/ConferenceID'
tags:
- users
responses:
'200':
description: The list of participant is returned
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantList'
'404':
$ref: '#/components/responses/NoSuchConference'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/meetings/{meeting_uuid}/participants:
get:
summary: List participants of a meeting as a user
description: '**Required ACL:** `calld.users.me.meetings.{meeting_uuid}.participants.read`'
parameters:
- $ref: '#/components/parameters/MeetingUUID'
tags:
- users
responses:
'200':
description: The list of participant is returned
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantList'
'404':
$ref: '#/components/responses/NoSuchMeeting'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/meetings/{meeting_uuid}/participants/{participant_id}:
delete:
summary: Kick a participant from a meeting as a user
description: '**Required ACL:** `calld.users.me.meetings.participants.delete`'
parameters:
- $ref: '#/components/parameters/MeetingUUID'
- $ref: '#/components/parameters/ParticipantID'
tags:
- users
responses:
'204':
description: The participant was kicked
'404':
$ref: '#/components/responses/NoSuchMeetingOrParticipant'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/calls/{call_id}/park:
put:
summary: Park the user's connected (talking to) call
description: '**Required ACL:** `calld.users.me.calls.{call_id}.park.update` Use the `POST /users/me/calls` API to unpark the call.'
parameters:
- $ref: '#/components/parameters/TenantUUID'
- $ref: '#/components/parameters/CallID'
- $ref: '#/components/parameters/ParkCall'
tags:
- users
responses:
'200':
description: Parked call
content:
application/json:
schema:
$ref: '#/components/schemas/ParkedCallInfo'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/FullOrServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/relocates:
get:
summary: Get the relocates of the authenticated user
description: '**Required ACL:** `calld.users.me.relocates.read`'
tags:
- users
responses:
'200':
description: The list of relocates
content:
application/json:
schema:
$ref: '#/components/schemas/RelocateList'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
post:
summary: Initiate a relocate from the authenticated user
description: '**Required ACL:** `calld.users.me.relocates.create`'
tags:
- users
responses:
'201':
description: The relocate being created
content:
application/json:
schema:
$ref: '#/components/schemas/Relocate'
'400':
$ref: '#/components/responses/InvalidRequest_2'
'403':
description: The authenticated user tried to relocate a call owned by someone else
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'409':
description: The server could not determine which Call to use as relocated or initiator, usually because too many Calls are eligible
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserRelocateRequest'
description: Parameters of the relocate
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/relocates/{relocate_uuid}/cancel:
put:
summary: Cancel a relocate
description: '**Required ACL:** `calld.users.me.relocates.{relocate_uuid}.cancel.update`'
parameters:
- $ref: '#/components/parameters/RelocateUUID'
tags:
- users
responses:
'204':
description: The relocate was cancelled
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NoSuchRelocate'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/relocates/{relocate_uuid}/complete:
put:
summary: Complete a relocate
description: '**Required ACL:** `calld.users.me.relocates.{relocate_uuid}.complete.update`'
parameters:
- $ref: '#/components/parameters/RelocateUUID'
tags:
- users
responses:
'204':
description: The relocate was completed
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NoSuchRelocate'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/transfers:
get:
summary: Get the transfers of the authenticated user
description: '**Required ACL:** `calld.users.me.transfers.read`'
tags:
- users
responses:
'200':
description: The list of transfers
content:
application/json:
schema:
$ref: '#/components/schemas/TransferList'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
post:
summary: Initiate a transfer from the authenticated user
description: '**Required ACL:** `calld.users.me.transfers.create`'
tags:
- users
responses:
'201':
description: The transfer being created
content:
application/json:
schema:
$ref: '#/components/schemas/Transfer'
'400':
$ref: '#/components/responses/InvalidRequest_2'
'403':
description: The authenticated user tried to transfer a call owned by someone else
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'409':
description: The server could not determine which Call to use as transferred or initiator, usually because too many Calls are eligible
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserTransferRequest'
description: Parameters of the transfer
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/transfers/{transfer_id}:
delete:
summary: Cancel a transfer
description: '**Required ACL:** `calld.users.me.transfers.{transfer_id}.delete`'
parameters:
- $ref: '#/components/parameters/TransferID'
tags:
- users
responses:
'204':
description: Transfer cancelled
'403':
description: The authenticated user tried to cancel a transfer owned by someone else
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'404':
$ref: '#/components/responses/NoSuchTransfer'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/transfers/{transfer_id}/complete:
put:
summary: Complete a transfer
description: '**Required ACL:** `calld.users.me.transfers.{transfer_id}.complete.update`'
parameters:
- $ref: '#/components/parameters/TransferID'
tags:
- users
responses:
'204':
description: The transfer was completed
'403':
description: The authenticated user tried to complete a transfer owned by someone else
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
'404':
$ref: '#/components/responses/NoSuchTransfer'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/voicemails:
get:
summary: Get details of the voicemail of the authenticated user
description: '**Required ACL:** `calld.users.me.voicemails.read`'
tags:
- users
responses:
'200':
description: The details of the voicemail
content:
application/json:
schema:
$ref: '#/components/schemas/Voicemail'
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/voicemails/folders/{folder_id}:
get:
summary: Get details of a folder
description: '**Required ACL:** `calld.users.me.voicemails.folders.{folder_id}.read`'
parameters:
- $ref: '#/components/parameters/VoicemailFolderID'
tags:
- users
responses:
'200':
description: The details of the folder
content:
application/json:
schema:
$ref: '#/components/schemas/VoicemailFolder'
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/voicemails/messages:
get:
summary: Get all user's messages
description: '**Required ACL:** `calld.users.me.voicemails.messages.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/direction'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/limit_3'
- $ref: '#/components/parameters/offset_3'
- name: voicemail_type
in: query
description: include or exclude messages from global mailboxes
required: false
schema:
type: string
enum:
- all
- personal
- global
default: all
responses:
'200':
description: The voicemail messages available to the user
content:
application/json:
schema:
$ref: '#/components/schemas/VoicemailMessages'
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/voicemails/messages/{message_id}:
get:
summary: Get a message
description: '**Required ACL:** `calld.users.me.voicemails.messages.{message_id}.read`'
parameters:
- $ref: '#/components/parameters/VoicemailMessageID'
tags:
- users
responses:
'200':
description: The message
content:
application/json:
schema:
$ref: '#/components/schemas/VoicemailMessage'
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
put:
summary: Update a message
description: '**Required ACL:** `calld.users.me.voicemails.messages.{message_id}.update`'
parameters:
- $ref: '#/components/parameters/VoicemailMessageID'
tags:
- users
responses:
'204':
description: Message was updated successfully
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VoicemailMessageUpdate'
description: Message
required: true
security:
- wazo_auth_token: []
delete:
summary: Delete a mesage
description: '**Required ACL:** `calld.users.me.voicemails.messages.{message_id}.delete`'
parameters:
- $ref: '#/components/parameters/VoicemailMessageID'
tags:
- users
responses:
'204':
description: Message was deleted successfully
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/voicemails/messages/{message_id}/recording:
get:
summary: Get a message's recording
description: '**Required ACL:** `calld.users.me.voicemails.messages.{message_id}.recording.read`'
parameters:
- $ref: '#/components/parameters/VoicemailMessageID'
- $ref: '#/components/parameters/TokenID'
- $ref: '#/components/parameters/ForceDownload'
tags:
- users
responses:
'200':
description: The recording
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/voicemails/greetings/{greeting}:
post:
summary: Create a custom greeting
description: '**Required ACL:** `calld.users.me.voicemails.greetings.{greeting}.create`'
parameters:
- $ref: '#/components/parameters/VoicemailGreeting'
tags:
- users
responses:
'204':
description: The greeting was created successfully
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
requestBody:
content:
audio/wav:
schema:
format: binary
required: true
security:
- wazo_auth_token: []
head:
summary: Check if greeting exists
description: '**Required ACL:** `calld.users.me.voicemails.greetings.{greeting}.read`'
parameters:
- $ref: '#/components/parameters/VoicemailGreeting'
tags:
- users
responses:
'200':
description: Greeting exists
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
get:
summary: Get a custom greeting
description: '**Required ACL:** `calld.users.me.voicemails.greetings.{greeting}.read`'
parameters:
- $ref: '#/components/parameters/VoicemailGreeting'
tags:
- users
responses:
'200':
description: The greeting's recording
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
put:
summary: Update a custom greeting
description: '**Required ACL:** `calld.users.me.voicemails.greetings.{greeting}.update`'
parameters:
- $ref: '#/components/parameters/VoicemailGreeting'
tags:
- users
responses:
'204':
description: The greeting was updated successfully
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
requestBody:
content:
audio/wav:
schema:
format: binary
required: true
security:
- wazo_auth_token: []
delete:
summary: Delete a custom greeting
description: '**Required ACL:** `calld.users.me.voicemails.greetings.{greeting}.delete`'
parameters:
- $ref: '#/components/parameters/VoicemailGreeting'
tags:
- users
responses:
'204':
description: The greeting was deleted successfully
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/voicemails/greetings/{greeting}/copy:
post:
summary: Copy a custom greeting
description: '**Required ACL:** `calld.users.me.voicemails.greetings.{greeting}.copy.create`'
parameters:
- $ref: '#/components/parameters/VoicemailGreeting'
tags:
- users
responses:
'204':
description: The greeting was copied successfully
'400':
$ref: '#/components/responses/InvalidRequest_2'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GreetingCopy'
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.0
/callfilters/{callfilter_id}/recipients/users:
put:
operationId: update_call_filter_caller_users
summary: Update call filter and recipients
description: '**Required ACL:** `confd.callfilters.{callfilter_id}.recipients.users.update`
**WARNING**
This endpoint remove all recipients which are not defined.
'
tags:
- users
parameters:
- $ref: '#/components/parameters/callfilterid'
responses:
'204':
description: Call Filter and Users associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CallFilterRecipientUsersUuid'
description: Users to associated
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/callfilters/{callfilter_id}/surrogates/users:
put:
operationId: update_call_filter_member_users
summary: Update call filter and surrogates
description: '**Required ACL:** `confd.callfilters.{callfilter_id}.surrogates.users.update`
**WARNING**
This endpoint remove all surrogates which are not defined.
'
tags:
- users
parameters:
- $ref: '#/components/parameters/callfilterid'
responses:
'204':
description: Call Filter and Users associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UsersUuid'
description: Users to associated
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/callpickups/{callpickup_id}/interceptors/users:
put:
operationId: update_call_pickup_interceptor_users
summary: Update call pickup and interceptors
description: '**Required ACL:** `confd.callpickups.{callpickup_id}.interceptors.users.update`
**WARNING**
This endpoint remove all interceptors which are not defined.
'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/callpickupid'
responses:
'204':
description: Call Pickup and Users associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UsersUuid'
description: Users to associated
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/callpickups/{callpickup_id}/targets/users:
put:
operationId: update_call_pickup_target_users
summary: Update call pickup and targets
description: '**Required ACL:** `confd.callpickups.{callpickup_id}.targets.users.update`
**WARNING**
This endpoint remove all targets which are not defined.
'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/callpickupid'
responses:
'204':
description: Call Pickup and Users associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UsersUuid'
description: Users to associated
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/funckeys/templates/{template_id}/users:
get:
operationId: list_func_key_template_user_associations
summary: List users associated to template
description: '**Required ACL:** `confd.funckeys.templates.{template_id}.users.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/templateid'
responses:
'200':
description: User-FuncKeyTemplate associations
content:
application/json:
schema:
$ref: '#/components/schemas/UserFuncKeyTemplate'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/funckeys:
get:
operationId: list_user_func_keys
summary: List func keys for a user
description: '**Required ACL:** `confd.users.{user_id}.funckeys.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
responses:
'200':
description: Func keys for user
content:
application/json:
schema:
$ref: '#/components/schemas/FuncKeyTemplate'
security:
- wazo_auth_token: []
put:
operationId: update_user_func_keys
summary: Update func keys for a user
description: '**Required ACL:** `confd.users.{user_id}.funckeys.update`
**WARNING** This endpoint restore to default value or delete all fields that are not defined.'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
responses:
'204':
$ref: '#/components/responses/ResourceUpdated'
'400':
$ref: '#/components/responses/UpdateError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FuncKeyTemplate'
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/funckeys/{position}:
get:
operationId: get_user_func_key
summary: Get a func key for a user
description: '**Required ACL:** `confd.users.{user_id}.funckeys.{position}.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/funckeyposition'
responses:
'200':
description: Func key
content:
application/json:
schema:
$ref: '#/components/schemas/FuncKey'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
put:
operationId: update_user_func_key
summary: Add/Replace a func key for a user
description: '**Required ACL:** `confd.users.{user_id}.funckeys.{position}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/funckeyposition'
responses:
'204':
$ref: '#/components/responses/ResourceUpdated'
'400':
$ref: '#/components/responses/UpdateError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FuncKey'
required: true
security:
- wazo_auth_token: []
delete:
operationId: delete_user_func_key
summary: Remove func key for user
description: '**Required ACL:** `confd.users.{user_id}.funckeys.{position}.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/funckeyposition'
responses:
'204':
$ref: '#/components/responses/ResourceDeleted'
'400':
$ref: '#/components/responses/DeleteError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/funckeys/templates:
get:
operationId: list_user_func_key_template_associations
summary: List funckey templates associated to user
description: '**Required ACL:** `confd.users.{user_id}.funckeys.templates.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
responses:
'200':
description: User-FuncKeyTemplate associations
content:
application/json:
schema:
$ref: '#/components/schemas/UserFuncKeyTemplate'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/funckeys/templates/{template_id}:
put:
operationId: associate_user_func_key_template
summary: Associate a func key template to a user
description: '**Required ACL:** `confd.users.{user_id}.funckeys.templates.{template_id}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/templateid'
responses:
'204':
description: User and template associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
delete:
operationId: dissociate_user_func_key_template
summary: Dissociate a func key template to a user
description: '**Required ACL:** `confd.users.{user_id}.funckeys.templates.{template_id}.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/templateid'
responses:
'204':
description: User and template dissociated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/groups/{group_uuid}/members/users:
put:
operationId: update_group_member_users
summary: Update group's user members
description: '**Required ACL:** `confd.groups.{group_uuid}.members.users.update`
user members are called by ringing all of the user''s configured lines simultaneously;
user redirections are not used;
**WARNING**
This endpoint remove all members which are not defined.
'
tags:
- users
parameters:
- $ref: '#/components/parameters/groupuuid'
responses:
'204':
description: Group and Users associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GroupMemberUsers'
description: Users to associated
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/me/meetings:
get:
operationId: list_user_meetings
summary: List user meetings
description: '**Required ACL:** `confd.users.me.meetings.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/recurse'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/direction'
- $ref: '#/components/parameters/limit_4'
- $ref: '#/components/parameters/offset_4'
- $ref: '#/components/parameters/search'
responses:
'200':
description: Meetings list
content:
application/json:
schema:
$ref: '#/components/schemas/MeetingItems'
security:
- wazo_auth_token: []
post:
operationId: create_user_meeting
summary: Create user meeting
description: '**Required ACL:** `confd.users.me.meetings.create`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
responses:
'201':
description: Meeting created
content:
application/json:
schema:
$ref: '#/components/schemas/Meeting'
'400':
$ref: '#/components/responses/CreateError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MeetingUserRequest'
description: Meeting to create
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/me/meetings/{meeting_uuid}:
get:
operationId: get_user_meeting
summary: Get one of the meetings of the current user
description: '**Required ACL:** `confd.users.me.meetings.{meeting_uuid}.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/meeting_uuid'
responses:
'200':
description: Meeting
content:
application/json:
schema:
$ref: '#/components/schemas/Meeting'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
put:
operationId: update_user_meeting
summary: Update one of the meetings of the current user
description: '**Required ACL:** `confd.users.me.meetings.{meeting_uuid}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/meeting_uuid'
responses:
'204':
$ref: '#/components/responses/ResourceUpdated'
'400':
$ref: '#/components/responses/UpdateError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MeetingRequest'
required: true
security:
- wazo_auth_token: []
delete:
operationId: delete_user_meeting
summary: Delete one of the meetings of the current user
description: '**Required ACL:** `confd.users.me.meetings.{meeting_uuid}.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/meeting_uuid'
responses:
'204':
$ref: '#/components/responses/ResourceDeleted'
'400':
$ref: '#/components/responses/DeleteError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/user/me/meetings/{meeting_uuid}/authorizations:
get:
operationId: list_user_meeting_authorizations
summary: List all guest authorization requests of a meeting
description: '**Required ACL:** confd.users.me.meetings.{meeting_uuid}.authorizations.read'
tags:
- users
parameters:
- $ref: '#/components/parameters/meeting_uuid'
responses:
'200':
description: Authorizations list
content:
application/json:
schema:
$ref: '#/components/schemas/MeetingAuthorizationItems'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/user/me/meetings/{meeting_uuid}/authorizations/{authorization_uuid}/accept:
put:
operationId: put_user_meeting_authorization_accept
summary: Accept a guest authorization request
description: '**Required ACL:** confd.users.me.meetings.{meeting_uuid}.authorizations.{authorization_uuid}.accept.update'
tags:
- users
parameters:
- $ref: '#/components/parameters/meeting_uuid'
- $ref: '#/components/parameters/authorization_uuid'
responses:
'200':
description: Authorization details
content:
application/json:
schema:
$ref: '#/components/schemas/MeetingAuthorization'
'400':
$ref: '#/components/responses/CreateError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/user/me/meetings/{meeting_uuid}/authorizations/{authorization_uuid}/reject:
put:
operationId: put_user_meeting_authorization_reject
summary: Reject a guest authorization request
description: '**Required ACL:** confd.users.me.meetings.{meeting_uuid}.authorizations.{authorization_uuid}.reject.update'
tags:
- users
parameters:
- $ref: '#/components/parameters/meeting_uuid'
- $ref: '#/components/parameters/authorization_uuid'
responses:
'200':
description: Authorization details
content:
application/json:
schema:
$ref: '#/components/schemas/MeetingAuthorization'
'400':
$ref: '#/components/responses/CreateError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/pagings/{paging_id}/callers/users:
put:
operationId: update_paging_caller_users
summary: Update paging and callers
description: '**Required ACL:** `confd.pagings.{paging_id}.callers.users.update`
**WARNING**
This endpoint remove all callers which are not defined.
'
tags:
- users
parameters:
- $ref: '#/components/parameters/pagingid'
responses:
'204':
description: Paging and Users associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UsersUuid'
description: Users to associated
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/pagings/{paging_id}/members/users:
put:
operationId: update_paging_member_users
summary: Update paging and members
description: '**Required ACL:** `confd.pagings.{paging_id}.members.users.update`
**WARNING**
This endpoint remove all members which are not defined.
'
tags:
- users
parameters:
- $ref: '#/components/parameters/pagingid'
responses:
'204':
description: Paging and Users associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UsersUuid'
description: Users to associated
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/queues/{queue_id}/members/users/{user_id}:
put:
operationId: update_user_queue_association
summary: Update User-Queue association
description: '**Required ACL:** `confd.queues.{queue_id}.members.users.{user_id}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/queueid'
- $ref: '#/components/parameters/useriduuid'
responses:
'204':
description: Association updated
'400':
$ref: '#/components/responses/UpdateError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/QueueMemberUser'
security:
- wazo_auth_token: []
delete:
operationId: dissociate_user_queue
summary: Dissociate user and queue
description: '**Required ACL:** `confd.queues.{queue_id}.members.users.{user_id}.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/queueid'
- $ref: '#/components/parameters/useriduuid'
responses:
'204':
description: User and Queue dissociated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/switchboards/{switchboard_uuid}/members/users:
put:
operationId: update_switchboard_member_users
summary: Update switchboard and members
description: '**Required ACL:** `confd.switchboards.{switchboard_uuid}.members.users.update`
**WARNING**
This endpoint removes all members which are not defined.
'
tags:
- users
parameters:
- $ref: '#/components/parameters/switchboard_uuid'
responses:
'204':
description: Switchboard and users have been associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UsersUuid'
description: Users to associate with the switchboard
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}:
head:
operationId: head_user
summary: Check if user exists
description: '**Required ACL:** `confd.users.{user_id}.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
responses:
'200':
description: User exists
'404':
description: User does not exist
security:
- wazo_auth_token: []
get:
operationId: get_user
summary: Get user
description: '**Required ACL:** `confd.users.{user_id}.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
put:
operationId: update_user
summary: Update user
description: '**Required ACL:** `confd.users.{user_id}.update`
If the firstname or the lastname is modified, the name of associated voicemail is also updated.'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
responses:
'204':
$ref: '#/components/responses/ResourceUpdated'
'400':
$ref: '#/components/responses/UpdateError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- wazo_auth_token: []
delete:
operationId: delete_user
summary: Delete user
description: '**Required ACL:** `confd.users.{user_id}.delete`
A user can not be deleted if he is associated to a line or a voicemail. Any line or voicemail attached to the user must be dissociated first. The user will also be removed from all queues, groups or other Wazo entities whom he is member.
**Disclaimer**: if `recursive=true`, the user is deleted, all their associations with any related resources are removed, and some resources (lines, extensions, incalls and auth user) are deleted too.'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
- required: false
name: recursive
in: query
description: Indicates if the resources related to the user must be deleted too.
schema:
type: boolean
responses:
'204':
$ref: '#/components/responses/ResourceDeleted'
'400':
$ref: '#/components/responses/DeleteError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/forwards:
get:
operationId: list_user_forwards
summary: List forwards for a user
description: '**Required ACL:** `confd.users.{user_id}.forwards.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
responses:
'200':
description: User-Forwards
content:
application/json:
schema:
$ref: '#/components/schemas/UserForwards'
security:
- wazo_auth_token: []
put:
operationId: update_user_forwards
summary: Update all forwards for a user
description: '**Required ACL:** `confd.users.{user_id}.forwards.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
responses:
'204':
$ref: '#/components/responses/ResourceUpdated'
'400':
$ref: '#/components/responses/UpdateError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserForwards'
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/forwards/{forward_name}:
get:
operationId: get_user_forward
summary: Get forward for a user
description: '**Required ACL:** `confd.users.{user_id}.forwards.{forward_name}.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/forward'
responses:
'200':
description: User-Forward
content:
application/json:
schema:
$ref: '#/components/schemas/UserForward'
security:
- wazo_auth_token: []
put:
operationId: update_user_forward
summary: Update a forward for a user
description: '**Required ACL:** `confd.users.{user_id}.forwards.{forward_name}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/forward'
responses:
'204':
$ref: '#/components/responses/ResourceUpdated'
'400':
$ref: '#/components/responses/UpdateError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserForward'
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/services:
get:
operationId: get_user_services
summary: Get status of all user's services
description: '**Required ACL:** `confd.users.{user_id}.services.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
responses:
'200':
description: User-Services
content:
application/json:
schema:
$ref: '#/components/schemas/UserServices'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
put:
operationId: update_user_services
summary: Update all services for a user
description: '**Required ACL:** `confd.users.{user_id}.services.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
responses:
'204':
$ref: '#/components/responses/ResourceUpdated'
'400':
$ref: '#/components/responses/UpdateError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserServices'
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/services/{service_name}:
get:
operationId: get_user_service
summary: Get status of service
description: '**Required ACL:** `confd.users.{user_id}.services.{service}.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/service'
responses:
'200':
description: User-Service
content:
application/json:
schema:
$ref: '#/components/schemas/UserService'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
put:
operationId: update_user_service
summary: Enable/Disable service for a user
description: '**Required ACL:** `confd.users.{user_id}.services.{service}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/service'
responses:
'204':
$ref: '#/components/responses/ResourceUpdated'
'400':
$ref: '#/components/responses/UpdateError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserService'
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/agents:
delete:
operationId: dissociate_user_agent
summary: Dissociate user and agent
description: '**Required ACL:** `confd.users.{user_id}.agents.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
responses:
'204':
description: The user and agent have been dissociated.
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/agents/{agent_id}:
put:
operationId: associate_user_agent
summary: Associate user and agent
description: '**Required ACL:** `confd.users.{user_id}.agents.{agent_id}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/agentid'
responses:
'204':
description: The user and agent have been associated.
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/callpermissions/{callpermission_id}:
put:
operationId: associate_user_callpermission
summary: Associate user and call permission
description: '**Required ACL:** `confd.users.{user_id}.callpermissions.{call_permission_id}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/callpermissionid'
responses:
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
delete:
operationId: dissociate_user_callpermission
summary: Dissociate user and call permission
description: '**Required ACL:** `confd.users.{user_id}.callpermissions.{call_permission_id}.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/callpermissionid'
responses:
'204':
description: User and Call Permission dissociated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/callerids/outgoing:
get:
operationId: list_user_callerid_outgoing
summary: List user's outgoing callerids
description: '**Required ACL:** `confd.users.{user_id}.callerids.outgoing.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
responses:
'200':
description: User Outgoing Caller ID list
content:
application/json:
schema:
$ref: '#/components/schemas/UserCallerIDItems'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_uuid}/external/apps:
get:
operationId: list_user_external_apps
summary: List user external apps
description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useruuid'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/direction'
- $ref: '#/components/parameters/limit_4'
- $ref: '#/components/parameters/offset_4'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/user_external_app_view'
responses:
'200':
description: User external apps list
content:
application/json:
schema:
$ref: '#/components/schemas/UserExternalAppItems'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_uuid}/external/apps/{app_name}:
post:
operationId: create_user_external_app
summary: Create user external app
description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.{app_name}.create`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useruuid'
- $ref: '#/components/parameters/externalappname'
responses:
'201':
description: External app created
content:
application/json:
schema:
$ref: '#/components/schemas/UserExternalApp'
'400':
$ref: '#/components/responses/CreateError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserExternalApp'
description: External app to create
required: true
security:
- wazo_auth_token: []
get:
operationId: get_user_external_app
summary: Get user external app
description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.{app_name}.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useruuid'
- $ref: '#/components/parameters/externalappname'
- $ref: '#/components/parameters/user_external_app_view'
responses:
'200':
description: External App
content:
application/json:
schema:
$ref: '#/components/schemas/UserExternalApp'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
put:
operationId: update_user_external_app
summary: Update user external app
description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.{app_name}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useruuid'
- $ref: '#/components/parameters/externalappname'
responses:
'204':
$ref: '#/components/responses/ResourceUpdated'
'400':
$ref: '#/components/responses/UpdateError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserExternalApp'
required: true
security:
- wazo_auth_token: []
delete:
operationId: delete_user_external_app
summary: Delete user external app
description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.{app_name}.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useruuid'
- $ref: '#/components/parameters/externalappname'
responses:
'204':
$ref: '#/components/responses/ResourceDeleted'
'400':
$ref: '#/components/responses/DeleteError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/fallbacks:
get:
operationId: get_user_fallback
summary: List all fallbacks for user
description: '**Required ACL:** `confd.users.{user_id}.fallbacks.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
responses:
'200':
description: Fallbacks for user
content:
application/json:
schema:
$ref: '#/components/schemas/UserFallbacks'
security:
- wazo_auth_token: []
put:
operationId: update_user_fallback
summary: Update user's fallbacks
description: '**Required ACL:** `confd.users.{user_id}.fallbacks.update`
**WARNING** This endpoint delete all fields that are not defined.'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
responses:
'204':
description: User's fallbacks updated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserFallbacks'
description: Fallbacks for user
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/groups:
put:
operationId: update_user_groups
summary: Update user and groups
description: '**Required ACL:** `confd.users.{user_id}.groups`
**WARNING** This endpoint remove all groups which are not defined.'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
responses:
'204':
description: Group and Users associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserGroupsID'
description: Users to associated
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/export:
get:
operationId: export_users_csv
summary: Mass export users and associated resources
description: '**Required ACL:** `confd.users.export.read`
CSV field list available at https://wazo-platform.org/uc-doc/administration/users/csv_import'
externalDocs:
description: Complete documentation on the CSV data format and fields
url: https://wazo-platform.org/uc-doc/administration/users/csv_import
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
responses:
'200':
description: Users exported successfully
content:
text/csv; charset=utf-8:
schema:
$ref: '#/components/schemas/UserExport'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/import:
post:
operationId: import_users_csv
summary: Mass import users and associated resources
description: '**Required ACL:** `confd.users.import.create`
CSV field list available at https://wazo-platform.org/uc-doc/administration/users/csv_import'
externalDocs:
description: Complete documentation on the CSV data format and fields
url: https://wazo-platform.org/uc-doc/administration/users/csv_import
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/csvbody'
responses:
'201':
description: Users imported successfully
content:
application/json:
schema:
$ref: '#/components/schemas/UserImport'
'400':
description: Errors occurred during import
content:
application/json:
schema:
$ref: '#/components/schemas/UserImportError'
security:
- wazo_auth_token: []
put:
operationId: update_users_csv
summary: '**Disabled!** Mass import users and associated resources'
description: '** This endpoint is disabled.**
**Required ACL:** `confd.users.import.update`
CSV field list available at https://wazo-platform.org/uc-doc/administration/users/csv_import
This resource has been disabled since it creates invalid configurations'
externalDocs:
description: Complete documentation on the CSV data format and fields
url: https://wazo-platform.org/uc-doc/administration/users/csv_import
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/csvbody'
responses:
'200':
description: Users updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/UserUpdate'
'400':
description: Errors occurred during update
content:
application/json:
schema:
$ref: '#/components/schemas/UserImportError'
'405':
description: This method is not supported for this resource
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/lines/{line_id}:
delete:
operationId: dissociate_user_line
summary: Dissociate user and line
description: '**Required ACL:** `confd.users.{user_id}.lines.{line_id}.delete`
Any devices that are attached the line must be removed before dissociating a user from its line. A device can be dissociated be resetting it to autoprov mode.'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/lineid'
responses:
'204':
description: User and Line dissociated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
put:
operationId: associate_user_line
summary: Associate user and line
description: '**Required ACL:** `confd.users.{user_id}.lines.{line_id}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/lineid'
responses:
'204':
description: User and Line associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/lines:
put:
operationId: associate_user_lines
summary: Associate user and lines
description: '**Required ACL:** `confd.users.{user_id}.lines.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
responses:
'204':
description: User and Lines associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LinesID'
required: true
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_uuid}/lines/{line_id}/associated/endpoints/sip:
get:
operationId: get_user_line_associated_endpoints_sip
summary: Get SIP endpoint of a line for a user
description: '**Required ACL:** `confd.users.{user_uuid}.lines.{line_id}.associated.endpoints.sip.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useruuid'
- $ref: '#/components/parameters/lineid'
- $ref: '#/components/parameters/endpoint_sip_view'
responses:
'200':
description: SIP endpoint of a line for a user
content:
application/json:
schema:
$ref: '#/components/schemas/EndpointSIP'
'400':
description: Invalid `view`
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_uuid}/lines/main/associated/endpoints/sip:
get:
operationId: get_user_line_main_associated_endpoints_sip
summary: Get SIP endpoint of main line for a user
description: '**Required ACL:** `confd.users.{user_uuid}.lines.main.associated.endpoints.sip.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useruuid'
- $ref: '#/components/parameters/endpoint_sip_view'
responses:
'200':
description: SIP endpoint of main line for a user
content:
application/json:
schema:
$ref: '#/components/schemas/EndpointSIP'
'400':
description: Invalid `view`
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/schedules/{schedule_id}:
put:
operationId: associate_user_schedule
summary: Associate user and schedule
description: '**Required ACL:** `confd.users.{user_id}.schedules.{schedule_id}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/scheduleid'
responses:
'204':
description: User and Schedule associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
delete:
operationId: dissociate_user_schedule
summary: Dissociate user and schedule
description: '**Required ACL:** `confd.users.{user_id}.schedules.{schedule_id}.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/scheduleid'
responses:
'204':
description: User and Schedule dissociated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/subscriptions:
get:
operationId: get_users_subscriptions
summary: Get user subscription
description: '**Required ACL:** `confd.users.subscriptions.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
responses:
'200':
description: User subscription
content:
application/json:
schema:
$ref: '#/components/schemas/UserSubscriptionItems'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/voicemails:
post:
operationId: create_user_voicemail
summary: Create user voicemail
description: '**Required ACL:** `confd.users.{user_id}.voicemails.create`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
responses:
'201':
description: Voicemail created
content:
application/json:
schema:
$ref: '#/components/schemas/Voicemail_2'
'400':
$ref: '#/components/responses/CreateError'
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/responses/NotFoundError_2'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Voicemail_2'
description: Voicemail to create
required: true
security:
- wazo_auth_token: []
get:
operationId: get_user_voicemail
summary: Get user voicemails
description: '**Required ACL:** `confd.users.{user_id}.voicemails.read`'
tags:
- users
parameters:
- $ref: '#/components/parameters/tenantuuid'
- $ref: '#/components/parameters/useriduuid'
responses:
'200':
description: User's voicemail list
content:
application/json:
schema:
$ref: '#/components/schemas/VoicemailItems'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
delete:
operationId: dissociate_user_voicemail
summary: Dissociate user and voicemail
description: '**Required ACL:** `confd.users.{user_id}.voicemails.delete`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
responses:
'204':
description: User and Voicemail dissociated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/{user_id}/voicemails/{voicemail_id}:
put:
operationId: associate_user_voicemail
summary: Associate user and voicemail
description: '**Required ACL:** `confd.users.{user_id}.voicemails.{voicemail_id}.update`'
tags:
- users
parameters:
- $ref: '#/components/parameters/useriduuid'
- $ref: '#/components/parameters/voicemailid'
responses:
'204':
description: User and voicemail associated
'400':
$ref: '#/components/responses/GenericError'
'404':
$ref: '#/components/responses/NotFoundError_2'
security:
- wazo_auth_token: []
servers:
- url: /1.1
/users/me/subscriptions:
get:
summary: List subscriptions of a user to HTTP callbacks
description: '**Required ACL:** `webhookd.users.me.subscriptions.read`'
operationId: list_user_subscriptions
parameters:
- $ref: '#/components/parameters/SearchMetadata'
tags:
- users
responses:
'200':
description: List of the subscriptions of the user
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionList'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable_2'
security:
- wazo_auth_token: []
post:
summary: Subscribe to a HTTP callback (webhook) as a user
description: '**Required ACL:** `webhookd.users.me.subscriptions.create`
For more information: https://wazo-platform.org/documentation/api/webhook.html'
operationId: create_user_subscription
parameters:
- $ref: '#/components/parameters/UserSubscriptionBody'
tags:
- users
responses:
'201':
description: The subscription has been completed
'400':
$ref: '#/components/responses/InvalidRequest_3'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable_2'
security:
- wazo_auth_token: []
servers:
- url: /1.0
/users/me/subscriptions/{subscription_uuid}:
get:
summary: Get a user subscription
description: '**Required ACL:** `webhookd.users.me.subscriptions.{subscription_uuid}.read`'
operationId: get_user_subscription
parameters:
- $ref: '#/components/parameters/SubscriptionUUID'
tags:
- users
responses:
'200':
description: Details of the requested subscription
content:
application/json:
schema:
$ref: '#/components/schemas/Subscription'
'404':
$ref: '#/components/responses/NotFoundError_3'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable_2'
security:
- wazo_auth_token: []
put:
summary: Update a user subscription
description: '**Required ACL:** `webhookd.users.me.subscriptions.{subscription_uuid}.update`'
operationId: update_user_subscription
parameters:
- $ref: '#/components/parameters/SubscriptionUUID'
- $ref: '#/components/parameters/SubscriptionBody'
tags:
- users
responses:
'200':
description: Details of the updated subscription
content:
application/json:
schema:
$ref: '#/components/schemas/Subscription'
'404':
$ref: '#/components/responses/NotFoundError_3'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable_2'
security:
- wazo_auth_token: []
delete:
summary: Delete a user subscription
description: '**Required ACL:** `webhookd.users.me.subscriptions.{subscription_uuid}.delete`'
operationId: delete_user_subscription
parameters:
- $ref: '#/components/parameters/SubscriptionUUID'
tags:
- users
responses:
'204':
description: The requested subscription was deleted
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFoundError_3'
'503':
$ref: '#/components/responses/AnotherServiceUnavailable_2'
security:
- wazo_auth_token: []
servers:
- url: /1.0
components:
schemas:
AgentPauseReason:
title: Pause reason information
properties:
reason:
type: string
description: Pause Reason
AgentStatus:
title: Agent status
properties:
id:
type: integer
format: int32
description: Agent's ID
tenant_uuid:
type: string
format: uuid
description: Tenant's UUID
origin_uuid:
type: string
format: uuid
description: Wazo's UUID
number:
type: string
description: Agent's number
logged:
type: boolean
description: True if the agent is logged, else false
paused:
type: boolean
description: True if the agent is paused, else false
paused_reason:
type: string
description: The reason of the agent pause
extension:
type: string
description: The extension on which the agent is logged, or null if the agent is not logged
context:
type: string
description: The context on which the agent is logged, or null if the agent is not logged
state_interface:
type: string
description: The interface (e.g. SIP/alice) to determine if the agent is in use or not
queues:
type: array
description: The agent status for each queue
items:
$ref: '#/components/schemas/AgentQueueStatus'
UserAgentLoginInfo:
title: Login information
properties:
line_id:
type: integer
description: ID of the line where the agent should be logged
AgentQueueStatus:
properties:
id:
type: integer
description: Queue's ID
name:
type: string
description: Queue's name
display_name:
type: string
description: Queue's display name
logged:
type: boolean
description: True if the agent is logged on this queue, else false
paused:
type: boolean
description: True if the agent is paused on this queue, else false
paused_reason:
type: string
description: The reason of the agent pause
Error:
title: Error
properties:
error:
type: string
description: Error identifier
UserEmailList:
type: object
properties:
emails:
type: array
items:
type: object
properties:
address:
type: string
main:
type: boolean
required:
- addresses
- main
APIError:
type: object
properties:
timestamp:
type: number
message:
type: string
resource:
type: string
details:
type: object
GoogleGetResult:
type: object
properties:
access_token:
type: string
description: Google token
scope:
type: string
description: Scope permissions given to the `access token`
token_expiration:
type: integer
description: Token expiration
required:
- access_token
- scope
- token_expiration
UserRegister:
type: object
properties:
username:
type: string
description: The username that will identify that new username
password:
type: string
description: The password of the newly created username
firstname:
type: string
description: The user's firstname
lastname:
type: string
description: The user's lastname
email_address:
type: string
description: The main email address of the new username
required:
- username
- password
- email_address
ExternalAuth:
type: object
properties:
type:
type: string
description: The external auth type name
enabled:
type: boolean
data:
type: object
plugin_info:
type: object
MicrosoftPost:
type: object
properties:
scope:
description: Scope permissions requested
type: array
items:
type: string
default:
- offline_access
- Contacts.Read
SessionResult:
type: object
properties:
uuid:
type: string
user_uuid:
type: string
tenant_uuid:
type: string
mobile:
type: boolean
ExternalAuthList:
type: object
properties:
total:
type: integer
description: The number of external auth.
filtered:
type: integer
description: The number of external auth matching the searched term.
items:
type: array
items:
$ref: '#/components/schemas/ExternalAuth'
description: A paginated list of external auth
required:
- filtered
- total
- items
UserEmail:
type: object
properties:
address:
type: string
main:
type: boolean
confirmed:
type: boolean
UserBase:
type: object
properties:
username:
type: string
description: The username that will identify that new username
firstname:
type: string
description: The user's firstname
lastname:
type: string
description: The user's lastname
enabled:
type: boolean
purpose:
type: string
default: user
enum:
- user
- internal
- external_api
authentication_method:
type: string
default: default
description: The authentication method allowed for this user. Using "default" will use the tenant's default_authentication_method value for this user.
enum:
- default
- native
- ldap
- saml
GetSessionsResult:
type: object
properties:
total:
type: integer
description: The number of sessions.
filtered:
type: integer
description: The number of sessions matching the searched term.
items:
type: array
items:
$ref: '#/components/schemas/SessionResult'
description: A paginated list of sessions
required:
- filtered
- total
- items
RefreshToken:
type: object
properties:
client_id:
type: string
description: The `client_id` that was used to create this refresh token
created_at:
type: string
description: The time at which this token was created
mobile:
type: boolean
description: Indicate if that refresh token was created with a mobile session type
user_uuid:
type: string
description: The UUID of the user which created this refresh token
tenant_uuid:
type: string
description: The tenant UUID of the user which created this refresh token
metadata:
type: object
description: the persistent metadata tied to this refresh token
UserList:
type: object
properties:
total:
type: integer
description: The number of users
filtered:
type: integer
description: The number of users matching the searched term
items:
type: array
items:
$ref: '#/components/schemas/UserResult'
description: A paginated list of users
UserCreate:
allOf:
- $ref: '#/components/schemas/UserBase'
- type: object
properties:
uuid:
type: string
description: The user's UUID
password:
type: string
description: The password of the newly created username
email_address:
type: string
description: The main email address of the new username
MobileData:
type: object
properties:
token:
type: string
description: FCM token
apns_token:
type: string
description: APNs VoIP device token. This field is deprecated and will be removed in a later version.
apns_notification_token:
type: string
description: APNs text alert notification device token.
apns_voip_token:
type: string
description: APNs VoIP device token.
apns_call_topic:
type: string
description: APNs topic for VoIP call notifications (e.g. com.example.app.voip). When set, overrides the server-wide mobile_apns_call_topic configuration.
apns_default_topic:
type: string
description: APNs topic for non-call notifications such as messages, voicemails, and missed calls (e.g. com.example.app). When set, overrides the server-wide mobile_apns_default_topic configuration.
UserEdit:
allOf:
- $ref: '#/components/schemas/UserBase'
MicrosoftPostResult:
type: object
required:
- verification_url
properties:
verification_url:
type: string
description: The URL to confirm the authorization
UserPostResponse:
type: object
properties:
username:
type: string
emails:
type: array
items:
$ref: '#/components/schemas/UserEmail'
uuid:
type: string
purpose:
type: string
enum:
- user
- internal
- external_api
authentication_method:
type: string
default: default
description: The authentication method allowed for this user. Using "default" will use the tenant's default_authentication_method value for this user.
enum:
- default
- native
- ldap
- saml
GooglePostResult:
type: object
required:
- verification_url
properties:
verification_url:
type: string
description: The URL to confirm the authorization
AdminUserEmailList:
type: object
properties:
emails:
type: array
items:
type: object
properties:
address:
type: string
main:
type: boolean
confirmed:
type: boolean
required:
- addresses
- main
GetGroupsResult:
type: object
properties:
total:
type: integer
description: The number of groups.
filtered:
type: integer
description: The number of groups matching the searched term.
items:
type: array
items:
$ref: '#/components/schemas/GroupResult'
description: A paginated list of groups
required:
- filtered
- total
- items
UserResult:
type: object
properties:
uuid:
type: string
username:
type: string
firstname:
type: string
lastname:
type: string
purpose:
type: string
enum:
- user
- internal
- external_api
tenant_uuid:
type: string
emails:
type: array
items:
$ref: '#/components/schemas/UserEmail'
enabled:
type: boolean
GooglePost:
type: object
properties:
scope:
description: Scope permissions requested
type: array
items:
type: string
default:
- https://www.googleapis.com/auth/userinfo.profile
- https://www.googleapis.com/auth/contacts
Policy:
type: object
properties:
name:
type: string
slug:
type: string
description: A unique, human readable identifier for this policy
description:
type: string
acl:
type: array
items:
type: string
shared:
type: boolean
description: 'Should be shared to sub-tenants or not. Cannot be changed after creation
When shared is `true`, then all tenants below this policy''s tenant
will see it as their own policy with the attribute `read_only: true`.
Using `shared` attribute will add uniqueness constraints for the slug
among all policies'' sub-tenants.
'
required:
- name
GetPoliciesResult:
type: object
properties:
total:
type: integer
description: The number of policies matching the searched term
items:
type: array
items:
$ref: '#/components/schemas/PolicyResult'
description: A paginated list of policies
required:
- total
- items
GroupResult:
type: object
properties:
uuid:
type: string
name:
type: string
slug:
type: string
tenant_uuid:
type: string
system_managed:
type: boolean
description: '*Deprecated* Please use `read_only`'
read_only:
type: boolean
MicrosoftGetResult:
type: object
properties:
access_token:
type: string
description: Microsoft token
scope:
type: string
description: Scope permissions given to the `access token`
token_expiration:
type: integer
description: Token expiration
required:
- access_token
- scope
- token_expiration
PolicyResult:
type: object
allOf:
- $ref: '#/components/schemas/Policy'
- properties:
uuid:
type: string
read_only:
type: boolean
PostPasswordReset:
type: object
properties:
password:
type: string
description: The desired password
required:
- password
PasswordChange:
type: object
properties:
old_password:
type: string
description: The old password
new_password:
type: string
description: The desired password
required:
- old_password
- new_password
Error_2:
type: object
properties:
reason:
type: array
items:
type: string
timestamp:
type: array
items:
type: string
status_code:
type: integer
RefreshTokenList:
type: object
properties:
total:
type: integer
description: The number of refresh tokens for that user
filtered:
type: integer
description: The number of refresh token matching the searched terms
items:
type: array
items:
$ref: '#/components/schemas/RefreshToken'
description: A paginated list of refresh tokens
Recording:
type: object
properties:
uuid:
type: string
start_time:
type: string
format: date-time
end_time:
type: string
format: date-time
deleted:
type: boolean
filename:
type: string
CDRList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CDR'
total:
type: integer
filtered:
type: integer
call_status:
type: string
enum:
- answered
- blocked
- voicemail
- unknown
CDR:
type: object
properties:
id:
type: integer
start:
type: string
format: date-time
answer:
type: string
format: date-time
end:
type: string
format: date-time
source_name:
type: string
source_extension:
type: string
source_internal_extension:
type: string
description: the internal extension of the line that placed the call
source_internal_context:
type: string
source_internal_name:
type: string
source_internal_tenant_uuid:
type: string
source_user_uuid:
type: string
source_tenant_uuid:
type: string
source_line_id:
type: integer
requested_name:
type: string
description: name of the intended recipient as dialed
requested_extension:
type: string
description: extension dialed by the caller
requested_context:
type: string
description: dialplan context of the dialed extension
requested_tenant_uuid:
type: string
requested_internal_extension:
type: string
description: internal extension of the first line to ring
requested_internal_context:
type: string
description: internal context of the first line to ring
requested_internal_tenant_uuid:
type: string
requested_user_uuid:
type: string
destination_details:
type: object
description: Contains the `type` of the called destination; which can be either `user`, `conference`, `meeting`, `group`, `voicemail` or `unknown` by default. Also contains useful information about the destination (`id` and `name`). A call that was redirected to a voicemail and not answered reports `type` `voicemail`, even when the call was originally placed to a user; the user remains available in `destination_user_uuid`.
destination_name:
type: string
description: name of the party that answered the call
destination_extension:
type: string
description: extension of the party that answered the call
destination_internal_extension:
type: string
description: internal extension of the line that answered the call, or the first line to ring if unanswered
destination_internal_context:
type: string
description: internal context of the line that answered the call, or the first line to ring if unanswered
destination_internal_tenant_uuid:
type: string
destination_user_uuid:
type: string
destination_tenant_uuid:
type: string
destination_line_id:
type: integer
duration:
type: integer
description: Duration of the call, in seconds.
answered:
type: boolean
call_direction:
type: string
enum:
- inbound
- internal
- outbound
conversation_id:
type: string
tags:
type: array
items:
type: string
recordings:
type: array
items:
$ref: '#/components/schemas/Recording'
call_status:
$ref: '#/components/schemas/call_status'
Error_3:
title: Error
description: Error message for the client
properties:
message:
description: Human readable explanation of the error
type: string
error_id:
description: Identifier of the type of error. It is more precise than the HTTP status code.
type: string
details:
description: Additional information about the error. The keys are specific to each error.
type: object
timestamp:
description: Time when the error occured
type: number
format: timestamp
Timeout:
description: Number of seconds to wait for the recipient to answer
type: integer
Transfer:
type: object
properties:
id:
description: Unique identifier of the transfer
type: string
initiator_uuid:
description: UUID of the user who initiated the transfer
type: string
initiator_tenant_uuid:
description: Tenant UUID of the user who initiated the transfer
type: string
transferred_call:
description: Call ID of the call being transferred to someone else
type: string
initiator_call:
description: Call ID of the transfer initiator
type: string
recipient_call:
description: Call ID of the recipient of the transfer. May be null when the transfer is 'starting'.
type: string
status:
description: The current step of the transfer
type: string
enum:
- abandoned
- answered
- blind_transferred
- ready
- ringback
- starting
flow:
description: The behavior of the transfer
type: string
default: attended
enum:
- attended
- blind
UserRelocateRequest:
type: object
properties:
initiator_call:
description: Call ID of the relocate initiator. This call must be owned by the authenticated user.
type: string
destination:
type: string
description: What kind of destination the relocated call should be connected
enum:
- line
- mobile
location:
description: "Describes where exactly the relocated call should be connected. Attributes depend on the `destination` value. Example\n```\n{\n ...\n destination: line\n location: {line_id: 14}\n}\n```\n"
type: object
$ref: '#/components/schemas/UserRelocateLocation'
completions:
$ref: '#/components/schemas/RelocateCompletions'
timeout:
$ref: '#/components/schemas/Timeout'
auto_answer:
type: boolean
description: 'Inform the destination phone that it should answer automatically. Limitation: this does not work on SCCP phones.'
example:
initiator_call: '123456.789'
destination: line
location:
line_id: 14
contact: 5f3ff5ga
completions:
- answer
auto_answer: false
required:
- initiator_call
- destination
UserRelocateLocation:
properties:
line:
$ref: '#/components/schemas/LocationLine'
VoicemailFolderBase:
type: object
properties:
id:
type: integer
description: The folder's ID
name:
type: string
description: The folder's name
type:
type: string
enum:
- new
- old
- urgent
- other
description: The folder's type. When a message if left on a voicemail, it is stored in the folder of type "new", unless if it is an urgent message, in which case it is left in the folder of type "urgent". When that messages is read, it is moved into the folder of type "old". All other folders used the type "other".
GreetingCopy:
type: object
properties:
dest_greeting:
type: string
description: The destination name of the greeting
required:
- dest_greeting
TransferFlow:
description: Behavior of the transfer. `attended` allows the initiator to talk to the recipient. `blind` does not.
type: string
default: attended
enum:
- attended
- blind
UserTransferRequest:
type: object
properties:
initiator_call:
description: Call ID of the transfer initiator. This call must be owned by the authenticated user.
type: string
exten:
description: Extension of the recipient of the transfer
type: string
flow:
$ref: '#/components/schemas/TransferFlow'
timeout:
$ref: '#/components/schemas/TransferTimeout'
required:
- initiator_call
- exten
VoicemailMessageVoicemail:
type: object
properties:
id:
type: integer
description: The containing voicemail's ID
readOnly: true
name:
type: string
description: The containing voicemail's name
readOnly: true
accesstype:
type: string
description: The containing voicemail's type (either global or personal)
enum:
- global
- personal
readOnly: true
Relocate:
type: object
properties:
uuid:
description: Unique identifier of the relocate
type: string
relocated_call:
description: Call ID of the call being relocated to someone else
type: string
initiator_call:
description: Call ID of the relocate initiator
type: string
recipient_call:
description: Call ID of the recipient of the relocate.
type: string
completions:
description: How the relocate will behave. "answer" will complete the relocate as soon as the destination answers. "api" will wait for a call to API `/complete`. "answer" overrides all other values.
$ref: '#/components/schemas/RelocateCompletions'
initiator:
description: The user UUID of the relocate initiator
type: string
RelocateCompletions:
type: array
items:
$ref: '#/components/schemas/RelocateCompletion'
TransferList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Transfer'
Call:
type: object
properties:
call_id:
type: string
conversation_id:
type: string
user_uuid:
type: string
status:
type: string
talking_to:
$ref: '#/components/schemas/TalkingTo'
bridges:
type: array
items:
type: string
creation_time:
type: string
format: date-time
direction:
type: string
enum:
- internal
- outbound
- inbound
- unknown
answer_time:
type: string
format: date-time
hangup_time:
type: string
format: date-time
caller_id_name:
type: string
caller_id_number:
type: string
peer_caller_id_name:
type: string
peer_caller_id_number:
type: string
on_hold:
type: boolean
muted:
type: boolean
is_caller:
type: boolean
description: This value is only correct when the destination of the call is a user or outgoing call. In other cases, it is always False.
parked:
type: boolean
description: If this call is currently parked
is_video:
type: boolean
description: If this call has a video track
dialed_extension:
type: string
sip_call_id:
type: string
description: Matches the `Call-ID` SIP header of the call. This value can be `null` when not using SIP
readOnly: true
line_id:
type: integer
description: Line ID of the endpoint making the call
readOnly: true
record_state:
type: string
enum:
- active
- inactive
LocationLine:
type: object
properties:
line_id:
type: integer
description: the ID of the line where the relocated call should be connected
contact:
type: string
description: the SIP contact to use when multiple registers are used
required:
- line_id
TalkingTo:
type: object
properties:
'{channel_id}':
type: string
VoicemailFolder:
type: object
allOf:
- $ref: '#/components/schemas/VoicemailFolderBase'
- properties:
messages:
type: array
description: The folder's messages
items:
$ref: '#/components/schemas/VoicemailMessageBase'
Participant:
type: object
properties:
id:
description: The participant's ID
type: string
caller_id_name:
description: The participant's name
type: string
caller_id_num:
description: The participant's number
type: string
muted:
description: Is the participant muted?
type: boolean
join_time:
description: Elapsed seconds since the participant joined the conference
type: integer
admin:
description: Is the participant an admin of the conference?
type: boolean
language:
description: The participant's language
type: string
call_id:
description: The ID of the participant's call
type: string
user_uuid:
description: The UUID of the participant's user. `null` when there is no user.
type: string
VoicemailMessageBase:
type: object
properties:
id:
type: string
description: The message's ID
readOnly: true
caller_id_name:
type: string
description: The caller's name (or null if no caller ID name)
readOnly: true
caller_id_num:
type: string
description: The caller's number (or null if no caller ID number)
readOnly: true
duration:
type: integer
description: The message's duration in seconds
readOnly: true
empty:
type: boolean
description: True if the message is empty (duration is 0)
readOnly: true
timestamp:
type: integer
description: The time the message was left as a Unix time value
readOnly: true
VoicemailMessages:
type: object
properties:
items:
description: List of voicemail messages
type: array
items:
allOf:
- $ref: '#/components/schemas/VoicemailMessage'
- type: object
properties:
voicemail:
$ref: '#/components/schemas/VoicemailMessageVoicemail'
readOnly: true
total:
type: integer
readOnly: true
ParkCallBody:
title: Information needed to park the call
required:
- parking_id
type: object
properties:
parking_id:
description: Parking lot ID in which to park the call
type: integer
minimum: 1
example: 2
preferred_slot:
description: 'Preferred slot in which to park the call. If slots is already
occupied, another slot will be automatically chosen
'
type: string
example: '501'
timeout:
description: 'A timeout specified in seconds after which the call will redial the
parker. If unspecified, it will defaults to the parking''s timeout value.
(A value of 0 disables the timeout feature)
'
type: integer
minimum: 0
example: 30
VoicemailTranscriptedMessageBase:
type: object
allOf:
- $ref: '#/components/schemas/VoicemailMessageBase'
- properties:
transcription:
$ref: '#/components/schemas/VoicemailTranscription'
readOnly: true
RelocateCompletion:
type: string
default: answer
enum:
- answer
- api
VoicemailTranscription:
type: object
properties:
text:
type: string
description: The transcription text
readOnly: true
VoicemailMessageUpdate:
type: object
properties:
folder_id:
type: integer
description: The folder's ID
required:
- folder_id
Voicemail:
type: object
properties:
id:
type: integer
description: The voicemail's ID
number:
type: string
description: The voicemail's number
name:
type: string
description: The voicemail's name
accesstype:
type: string
description: The voicemail's access type (either personal or global)
enum:
- personal
- global
folders:
type: array
description: The voicemail's folders
items:
$ref: '#/components/schemas/VoicemailFolder'
ParticipantList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Participant'
RelocateList:
type: object
properties:
items:
$ref: '#/components/schemas/Relocate'
Error_4:
title: Error
description: Error message for the client
properties:
message:
description: Human readable explanation of the error
type: string
error_id:
description: Identifier of the type of error. It is more precise than the HTTP status code.
type: string
details:
description: Additional information about the error. The keys are specific to each error.
type: object
timestamp:
description: Time when the error occured
type: number
format: timestamp
VoicemailMessage:
type: object
allOf:
- $ref: '#/components/schemas/VoicemailTranscriptedMessageBase'
- properties:
folder:
$ref: '#/components/schemas/VoicemailFolderBase'
readOnly: true
UserCallRequest:
type: object
properties:
extension:
description: Extension to call
type: string
variables:
description: Channel variables to set
type: object
line_id:
type: integer
description: ID of the line of the user used to make the call. Default is the main line of the user.
from_mobile:
type: boolean
description: 'Start the call from the user''s mobile phone. Default is False. Limitation: this feature may return a wrong call_id if the outgoing call used to dial the mobile number has more than one associated trunk.'
all_lines:
type: boolean
description: Use all of the lines of the user to make the call (ignored when `line_id` is specified).
auto_answer_caller:
type: boolean
description: 'Inform the caller phone that it should answer automatically. Limitation: this does not work if `all_lines` is true, if `from_mobile` is true or if the phone is SCCP.'
required:
- extension
ParkedCallInfo:
description: Information returned when a call has been parked
properties:
slot:
description: Parking slot where this call has been parked
type: string
example: 501
timeout_at:
description: Timestamp when the call will timeout
type: string
format: date-time
TransferTimeout:
description: Maximum ringing time before cancelling the transfer (in seconds). Default (or null) is an unlimited ring time.
type: integer
LineEndpointSIP:
title: LineEndpointSIP
properties:
endpoint_sip:
$ref: '#/components/schemas/EndpointSIP'
SIPAuthSectionOptions:
title: PJSIP Auth Section Options
$ref: '#/components/schemas/KeyValueOption'
UserImportError:
title: UserImportError
description: List of errors that occurred during import
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
description: Error message
timestamp:
type: integer
description: Time at which the error occurred
details:
type: object
properties:
row_number:
type: integer
description: Line number corresponding to the CSV data
row:
type: object
description: Original data that caused the error
BaseVoicemail:
title: Voicemail
properties:
number:
type: string
description: Mailbox number, for example `0001`
context:
type: string
description: Voicemail context
password:
type: string
description: Numeric password used to access the voicemail
email:
type: string
description: Email address. Notifications and audio attachments will be sent to this address
pager:
type: string
description: Email address. Summarized notifications will be sent to this address
language:
type: string
enum:
- de_DE
- en_US
- es_ES
- fr_FR
- fr_CA
- it_IT
- nl_NL
description: Language used for the voicemail menu prompt
timezone:
type: string
default: The system default timezone
description: Timezone used for announcing at what time a message was recorded
max_messages:
type: integer
description: Maximum number of messages to store
attach_audio:
type: boolean
description: Attach an audio file of the recorded message when sending an email
delete_messages:
type: boolean
description: "Delete messages after reception. \nThis can only be set along with 'email' and 'attach_audio' configured.\n"
default: false
ask_password:
type: boolean
description: Ask for password when accessing the voicemail menu
default: true
enabled:
type: boolean
description: Voicemail can be used when it is enabled
default: true
tenant_uuid:
type: string
description: The UUID of the tenant
readOnly: true
accesstype:
type: string
enum:
- personal
- global
description: Access type of the voicemail. 'personal' means the voicemail is associated with specific users, 'global' means it is shared across the context. Only one global voicemail can exist per context.
default: personal
options:
description: "Advanced configuration options. Options are appended at the end of a \nvoicemail line in the file 'voicemail.conf' used by asterisk.\nPlease consult the asterisk documentation for further details on available\nparameters. Options must have the following the form:\n\n```\n{\n \"options\": [\n [\"name1\", \"value1\"],\n [\"name2\", \"value2\"]\n ]\n}\n```\n\nThe resulting configuration in voicemail.conf will have the following form:\n\n```\n1000 => ,Firstname Lastname,,,name1=value1|name2=value2\n```\n"
type: array
items:
$ref: '#/components/schemas/KeyValueOption'
required:
- name
- number
- 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
MeetingItems:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Meeting'
BaseUser:
title: User
allOf:
- $ref: '#/components/schemas/UserRelationBase'
- properties:
id:
type: integer
description: User ID
readOnly: true
email:
type: string
description: User's email. Used for directories (i.e. by wazo-dird)
timezone:
type: string
description: User timezone
language:
type: string
enum:
- de_DE
- en_US
- es_ES
- fr_FR
- fr_CA
- it_IT
- nl_NL
description: User language (e.g. "en_US")
country:
type: string
description: User country, for localization purposes
readOnly: true
description:
type: string
description: Additional information about the user
call_transfer_enabled:
type: boolean
default: false
description: Authorize call transfers
dtmf_hangup_enabled:
type: boolean
default: false
description: Authorize to hangup with DTMF
call_record_enabled:
type: boolean
default: false
description: Record all calls made by this user (deprecated). If set, all `call_record_*_enabled` will be affected
call_record_outgoing_external_enabled:
type: boolean
default: false
description: Record all external calls made by this user
call_record_incoming_external_enabled:
type: boolean
default: false
description: Record all external calls received by this user.
call_record_outgoing_internal_enabled:
type: boolean
default: false
description: Record all internal calls received by this user
call_record_incoming_internal_enabled:
type: boolean
default: false
description: Record all internal calls received by this user.
online_call_record_enabled:
type: boolean
default: false
description: Allow user to record a call by pressing *3
caller_id:
type: string
description: Name that appears on the phone when calling. Formatted as "Firstname Lastname" < number >
outgoing_caller_id:
type: string
enum:
- default
- anonymous
- '"Firstname Lastname" < number >'
description: Name that appears on the phone when calling
mobile_phone_number:
type: string
description: Phone number for the user’s mobile device
mobile_fallback_enabled:
type: boolean
default: false
description: Enable PSTN fallback when push notification is not answered in time
username:
type: string
description: Username for connecting to the CTI (deprecated)
password:
type: string
minLength: 4
description: Password for connecting to the CTI (deprecated)
music_on_hold:
type: string
description: Name of the MOH category to use for music on hold
ring_seconds:
type: integer
default: 30
description: Number of seconds a user's phone will ring before falling back
simultaneous_calls:
type: integer
default: 5
description: Number of allowed simultaneous calls on a user's phone
subscription_type:
type: integer
description: The subscription type of the user (0-10)
minimum: 0
maximum: 10
supervision_enabled:
type: boolean
default: true
description: Activate presence sharing in the xivo client
preprocess_subroutine:
type: string
description: Name of the subroutine to execute in asterisk before receiving a call
userfield:
type: string
description: A custom field which purpose is left to the client. If the user has no userfield, then this field is an empty string.
call_permission_password:
type: string
description: Overwrite all passwords set in call permissions associated to the user
enabled:
type: boolean
default: true
description: Enable/Disable the user
tenant_uuid:
type: string
description: The UUID of the tenant
readOnly: true
is_webrtc:
type: boolean
description: (Summary view only) Whether the user's main line is a WebRTC line
readOnly: true
UserUuid:
properties:
uuid:
type: string
DestinationCustom:
title: DestinationCustom
properties:
type:
type: string
description: MUST be 'custom'
command:
type: string
description: The command to execute
required:
- type
- command
UserRelationIncalls:
properties:
incalls:
type: array
readOnly: true
items:
$ref: '#/components/schemas/UserRelationIncall'
UserFuncKeyTemplate:
title: UserFuncKeyTemplate
description: Association between a User and a FuncKey Template
properties:
user_id:
type: integer
format: int32
description: User's ID
template_id:
type: integer
format: int32
description: FuncKey Template's ID
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
LineEndpointCustom:
title: LineEndpointCustom
properties:
endpoint_custom:
$ref: '#/components/schemas/EndpointCustom'
DestinationApplicationApplication:
title: DestinationApplicationApplication
properties:
callback_disa:
$ref: '#/components/schemas/DestinationApplicationCallbackDISA'
custom:
$ref: '#/components/schemas/DestinationApplicationCustom'
directory:
$ref: '#/components/schemas/DestinationApplicationDirectory'
disa:
$ref: '#/components/schemas/DestinationApplicationDISA'
fax_to_mail:
$ref: '#/components/schemas/DestinationApplicationFaxToMail'
voicemail:
$ref: '#/components/schemas/DestinationApplicationVoicemail'
UserSubscription:
title: UserSubscription
properties:
id:
type: integer
count:
type: integer
description: Total of assigned subscription
EndpointSccp:
title: SCCP Endpoint
allOf:
- $ref: '#/components/schemas/EndpointSccpRelationBase'
- properties:
tenant_uuid:
type: string
description: The UUID of the tenant
readOnly: true
options:
description: "Advanced configuration options. Options are appended at the end of a \nSCCP account in the file 'sccp.conf' used by asterisk.\nPlease consult the asterisk documentation for further details on available\nparameters. Because of database limitations, only the following options are allowed:\n\n * cid_name\n * cid_num\n * allow\n * disallow\n \nOptions must have the following the form:\n\n```\n{\n \"options\": [\n [\"name1\", \"value1\"],\n [\"name2\", \"value2\"]\n ]\n}\n```\n\nThe resulting configuration in sip.conf will have the following form:\n\n```\n[1000]\nname1=value1\nname2=value2\n```\n"
type: array
items:
$ref: '#/components/schemas/KeyValueOption'
- $ref: '#/components/schemas/EndpointRelationTrunk'
- $ref: '#/components/schemas/EndpointRelationLine'
GroupRelationBase:
properties:
name:
type: string
description: The name of the group
readOnly: true
id:
type: integer
readOnly: true
description: The id of the group
uuid:
type: string
description: Group UUID. This ID is globally unique across multiple Wazo instances
readOnly: true
UserGroupsID:
properties:
groups:
items:
$ref: '#/components/schemas/UserGroupID'
type: array
EndpointRelationTrunk:
properties:
trunk:
$ref: '#/components/schemas/TrunkRelationBase'
readOnly: true
UserRelationBase:
properties:
uuid:
type: string
description: User UUID. This ID is globally unique across multiple Wazo instances
readOnly: true
firstname:
type: string
description: User firstname
lastname:
type: string
description: User lastname
UserRelationVoicemail:
properties:
voicemail:
readOnly: true
$ref: '#/components/schemas/VoicemailRelationBase'
LineRelationBase:
properties:
id:
type: integer
description: Line ID
readOnly: true
name:
type: string
description: The name of the line
readOnly: true
SIPIdentifySectionOptions:
title: PJSIP Identify Section Options
$ref: '#/components/schemas/KeyValueOption'
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
SIPTransportRelation:
properties:
uuid:
type: string
required:
- uuid
EndpointSIP:
title: SIP Endpoint
properties:
uuid:
type: string
description: The UUID of this resource
readOnly: true
name:
type: string
description: The name of the PJSIP entity, auto-generated if missing
label:
type: string
description: The human readable name for this configuration
aor_section_options:
type: array
items:
$ref: '#/components/schemas/SIPAORSectionOptions'
description: A list of PJSIP AOR section options for this endpoint
auth_section_options:
type: array
items:
$ref: '#/components/schemas/SIPAuthSectionOptions'
description: A list of PJSIP auth section options for this endpoint
endpoint_section_options:
type: array
items:
$ref: '#/components/schemas/SIPEndpointSectionOptions'
description: A list of PJSIP endpoint section options for this endpoint
identify_section_options:
type: array
items:
$ref: '#/components/schemas/SIPIdentifySectionOptions'
description: A list of PJSIP identify section options for this endpoint
registration_section_options:
type: array
items:
$ref: '#/components/schemas/SIPRegistrationSectionOptions'
description: A list of PJSIP registration section options for this endpoint
registration_outbound_auth_section_options:
type: array
items:
$ref: '#/components/schemas/SIPAuthSectionOptions'
description: A list of PJSIP auth section options for this endpoint
outbound_auth_section_options:
type: array
items:
$ref: '#/components/schemas/SIPAuthSectionOptions'
description: A list of PJSIP auth section options for this endpoint
transport:
description: The transport used by this endpoint
$ref: '#/components/schemas/SIPTransportRelation'
templates:
type: array
items:
$ref: '#/components/schemas/EndpointSIPTemplatesRelation'
description: 'A list of templates this configuration will inherit from.
The inheritance only applies to option sections. Not to the name, label and other fields.
For a given list of templates [A, B, C] A will be applied over B. C will be applied over (A,B) etc.
'
tenant_uuid:
type: string
description: The UUID of the tenant
readOnly: true
asterisk_id:
type: string
description: The ID of the Asterisk onto which this configuration applies.
UserCallerID:
title: UserCallerID
properties:
number:
type: string
description: Caller ID number. Only valid for `main` `associated` and `shared` types
caller_id_name:
type: string
description: Caller ID name. Only valid for `main` and `shared` types
type:
type: string
description: 'Caller ID type.
- `main`: The phone number(`/1.1/phone-numbers`) currently flagged as `main`, which should correspond to the organisation number.
- `associated`: An incall associated to the user
- `anonymous`: Anonymous caller ID
- `shared`: A phone number(`/1.1/phone-numbers`) flagged as `shared`
'
enum:
- main
- associated
- anonymous
- shared
UserPost:
title: User
properties:
id:
type: integer
description: User ID
readOnly: true
uuid:
type: string
description: User UUID. This ID is globally unique across multiple Wazo instances
readOnly: true
firstname:
type: string
description: User firstname
lastname:
type: string
description: User lastname
email:
type: string
description: User's email. Used for directories (i.e. by wazo-dird)
timezone:
type: string
description: User timezone
language:
type: string
enum:
- de_DE
- en_US
- es_ES
- fr_FR
- fr_CA
- it_IT
- nl_NL
description: User language (e.g. "en_US")
description:
type: string
description: Additional information about the user
call_transfer_enabled:
type: boolean
default: false
description: Authorize call transfers
dtmf_hangup_enabled:
type: boolean
default: false
description: Authorize to hangup with DTMF
call_record_enabled:
type: boolean
default: false
description: Record all calls made by this user (deprecated). If set, all `call_record_*_enabled` will be affected
call_record_outgoing_external_enabled:
type: boolean
default: false
description: Record all external calls made by this user
call_record_incoming_external_enabled:
type: boolean
default: false
description: Record all external calls received by this user.
call_record_outgoing_internal_enabled:
type: boolean
default: false
description: Record all internal calls received by this user
call_record_incoming_internal_enabled:
type: boolean
default: false
description: Record all internal calls received by this user.
online_call_record_enabled:
type: boolean
default: false
description: Allow user to record a call by pressing *3
caller_id:
type: string
description: Name that appears on the phone when calling. Formatted as "Firstname Lastname" < number >
outgoing_caller_id:
type: string
enum:
- default
- anonymous
- '"Firstname Lastname" < number >'
description: Name that appears on the phone when calling
mobile_phone_number:
type: string
description: Phone number for the user’s mobile device
mobile_fallback_enabled:
type: boolean
default: false
description: Enable PSTN fallback when push notification is not answered in time
username:
type: string
description: Username for connecting to the CTI (deprecated)
password:
type: string
minLength: 4
description: Password for connecting to the CTI (deprecated)
music_on_hold:
type: string
description: Name of the MOH category to use for music on hold
ring_seconds:
type: integer
default: 30
description: Number of seconds a user's phone will ring before falling back
simultaneous_calls:
type: integer
default: 5
description: Number of allowed simultaneous calls on a user's phone
subscription_type:
type: integer
description: The subscription type of the user (0-10)
minimum: 0
maximum: 10
supervision_enabled:
type: boolean
default: true
description: Activate presence sharing in the xivo client
preprocess_subroutine:
type: string
description: Name of the subroutine to execute in asterisk before receiving a call
userfield:
type: string
description: A custom field which purpose is left to the client. If the user has no userfield, then this field is an empty string.
call_permission_password:
type: string
description: Overwrite all passwords set in call permissions associated to the user
enabled:
type: boolean
default: true
description: Enable/Disable the user
tenant_uuid:
type: string
description: The UUID of the tenant
readOnly: true
lines:
type: array
items:
$ref: '#/components/schemas/UserPostRelationLine'
groups:
type: array
items:
type: object
description: One identifier(id or uuid) must be provided
properties:
uuid:
type: string
id:
type: integer
switchboards:
type: array
items:
type: object
properties:
uuid:
type: string
voicemail:
$ref: '#/components/schemas/Voicemail_2'
description: The body of a new voicemail or a body containing an existing voicemail ID that should be associated to the user.
auth:
type: object
properties:
uuid:
type: string
description: The user's UUID
readOnly: true
username:
type: string
description: The username that will identify that new username
password:
type: string
description: The password of the newly created username
firstname:
type: string
description: The user's firstname
lastname:
type: string
description: The user's lastname
enabled:
type: boolean
email_address:
type: string
description: The main email address of the new username
purpose:
type: string
default: user
enum:
- user
- internal
- external_api
forwards:
$ref: '#/components/schemas/UserForwards'
description: The forwards related to the user
fallbacks:
$ref: '#/components/schemas/UserFallbacks'
description: The fallbacks related to the user
agent:
description: The agent related to the user
$ref: '#/components/schemas/UserRelationAgent'
allOf:
- $ref: '#/components/schemas/UserPostRelationIncalls'
UserRelationQueues:
properties:
queues:
type: array
readOnly: true
items:
$ref: '#/components/schemas/QueueRelationBase'
VoicemailItems:
title: VoicemailItems
properties:
items:
items:
$ref: '#/components/schemas/Voicemail_2'
type: array
total:
type: integer
UserRelationIncall:
allOf:
- $ref: '#/components/schemas/IncallRelationBase'
- $ref: '#/components/schemas/IncallRelationExtensions'
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
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
DestinationHangupNormal:
title: DestinationHangupNormal
allOf:
- $ref: '#/components/schemas/DestinationHangup'
- properties:
cause:
type: string
description: MUST be 'normal'
required:
- cause
UserRelationCallPickupTargets:
title: UserRelationCallPickupTargets
properties:
call_pickup_target_users:
type: array
items:
$ref: '#/components/schemas/UserRelationBase'
UserItems:
title: UserItems
properties:
items:
type: array
items:
$ref: '#/components/schemas/User'
total:
type: integer
required:
- total
UserImport:
title: UserImport
description: List of users successfully imported
properties:
created:
type: array
items:
title: UserImportIDs
type: object
properties:
extension_id:
type: integer
description: Extension ID
user_id:
type: integer
description: User ID
line_id:
type: integer
description: Line ID
sip_uuid:
type: string
description: SIP UUID
voicemail_id:
type: integer
description: Voicemail ID
incall_extension_id:
type: integer
description: ID of the Extension used for incoming calls
row_number:
type: integer
description: Line number corresponding to the CSV data
UserSubscriptionItems:
title: UserSubscriptionItems
properties:
items:
type: array
items:
$ref: '#/components/schemas/UserSubscription'
total:
type: integer
required:
- total
DestinationApplication:
title: DestinationApplication
properties:
type:
type: string
description: MUST be 'application'
required:
- type
UserRelationFallbacks:
properties:
fallbacks:
readOnly: true
$ref: '#/components/schemas/UserFallbacks'
UserPostResponse_2:
title: UserCreateResponse
allOf:
- $ref: '#/components/schemas/UserPost'
- $ref: '#/components/schemas/AuthUserPost'
- $ref: '#/components/schemas/UserPostRelationIncalls'
EndpointSipRelationBase:
properties:
uuid:
type: string
description: The UUID of this resource
readOnly: true
name:
type: string
description: The name of the PJSIP entity, auto-generated if missing
label:
type: string
description: The human readable name for this configuration
auth_section_options:
type: array
items:
$ref: '#/components/schemas/SIPAuthSectionOptions'
description: A list of PJSIP auth section options for this endpoint. Only `username` is supported
Meeting:
type: object
properties:
uuid:
type: string
owner_uuids:
type: array
items:
type: string
name:
type: string
ingress_http_uri:
type: string
description: URI to reach this stack (configured by the Ingress HTTP resource)
guest_sip_authorization:
type: string
readOnly: true
description: 'Format: base64(username:password), same as HTTP Basic Auth.'
persistent:
type: boolean
description: Persistent meetings will not get deleted automatically
creation_time:
type: string
format: date-time
readOnly: true
exten:
type: string
description: the external extension to dial to reach this meeting
readOnly: true
require_authorization:
type: boolean
description: when `true`, the `guest_sip_authorization` is always `null`. Instead, clients must request an authorization to access the meeting.
DestinationHangupCongestion:
title: DestinationHangupCongestion
allOf:
- $ref: '#/components/schemas/DestinationHangup'
- properties:
cause:
type: string
description: MUST be 'congestion'
timeout:
type: integer
description: The timeout of the hangup
required:
- cause
DestinationApplicationCustom:
title: DestinationApplicationCustom
allOf:
- $ref: '#/components/schemas/DestinationApplication'
- properties:
application:
type: string
description: MUST be 'custom'
application_uuid:
type: string
description: The UUID of the application.
required:
- application
- application_uuid
SIPAORSectionOptions:
title: PJSIP AOR Section Options
$ref: '#/components/schemas/KeyValueOption'
EndpointCustom:
title: Custom Endpoint
allOf:
- $ref: '#/components/schemas/EndpointCustomRelationBase'
- properties:
tenant_uuid:
type: string
description: The UUID of the tenant
readOnly: true
enabled:
type: boolean
description: Endpoint can be used when it is enabled
default: true
- $ref: '#/components/schemas/EndpointRelationTrunk'
- $ref: '#/components/schemas/EndpointRelationLine'
- required:
- interface
CallFilterRecipientUsersUuid:
properties:
users:
items:
$ref: '#/components/schemas/CallFilterRecipientUserUuid'
type: array
UserRelationAgent:
properties:
agent:
readOnly: true
$ref: '#/components/schemas/AgentRelationBase'
DestinationApplicationCallbackDISA:
title: DestinationApplicationCallbackDISA
allOf:
- $ref: '#/components/schemas/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
DestinationApplicationFaxToMail:
title: DestinationApplicationFaxToMail
allOf:
- $ref: '#/components/schemas/DestinationApplication'
- properties:
application:
type: string
description: MUST be 'fax_to_mail'
email:
type: string
description: The email of the application
required:
- application
- email
UserRelationLines:
properties:
lines:
type: array
readOnly: true
items:
$ref: '#/components/schemas/UserRelationLine'
IncallRelationBase:
title: IncallRelation
properties:
id:
type: integer
readOnly: true
description: The id of the incoming call
DestinationNone:
title: DestinationNone
properties:
type:
type: string
description: MUST be 'none'
required:
- type
MeetingAuthorization:
type: object
properties:
uuid:
type: string
format: uuid
guest_name:
type: string
creation_time:
type: string
format: date-time
status:
type: string
description: The status of the authorization. If the meeting does not require an authorization, the authorization will always be `accepted`.
enum:
- pending
- accepted
- rejected
sip_authorization:
type: string
MeetingRequest:
type: object
allOf:
- $ref: '#/components/schemas/MeetingUserRequest'
- properties:
owner_uuids:
type: array
items:
type: string
UserFallbacks:
properties:
noanswer_destination:
description: The destination to redirect the caller to when there are no answer
$ref: '#/components/schemas/DestinationType'
busy_destination:
description: The destination to redirect the caller to when there are busy
$ref: '#/components/schemas/DestinationType'
congestion_destination:
description: The destination to redirect the caller to when there are congestion
$ref: '#/components/schemas/DestinationType'
fail_destination:
description: The destination to redirect the caller to when the call fail
$ref: '#/components/schemas/DestinationType'
example:
noanswer_destination:
type: user
user_id: 1
busy_destination:
type: group
group_id: 2
congestion_destination:
type: ivr
ivr_id: 3
fail_destination:
type: voicemail
voicemail_id: 4
LineRelationEndpoints:
properties:
endpoint_sip:
readOnly: true
$ref: '#/components/schemas/EndpointSipRelationBase'
endpoint_sccp:
readOnly: true
$ref: '#/components/schemas/EndpointSccpRelationBase'
endpoint_custom:
readOnly: true
$ref: '#/components/schemas/EndpointCustomRelationBase'
EndpointRelationLine:
properties:
line:
type: array
readOnly: true
items:
$ref: '#/components/schemas/LineRelationBase'
GroupMemberUsers:
properties:
users:
items:
$ref: '#/components/schemas/GroupMemberUser'
type: array
required:
- users
QueueMemberUserRelationBase:
properties:
priority:
type: integer
minimum: 0
description: Priority of user in the queue. Only used for linear ring strategy
UserForwards:
title: UserForwards
properties:
busy:
$ref: '#/components/schemas/UserForward'
noanswer:
$ref: '#/components/schemas/UserForward'
unconditional:
$ref: '#/components/schemas/UserForward'
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
UserPostRelationIncalls:
properties:
incalls:
type: array
items:
type: object
properties:
id:
type: integer
readOnly: true
description: The id of the incoming call
preprocess_subroutine:
type: string
description: Name of the subroutine to execute in asterisk before receiving a call
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 when calling
greeting_sound:
type: string
description: The name of the sound file to be played before redirecting the caller to the destination
extensions:
type: array
items:
type: object
properties:
id:
type: integer
description: Extension ID
readOnly: true
context:
type: string
exten:
type: string
DestinationHangup:
title: DestinationHangup
properties:
type:
type: string
description: MUST be 'hangup'
required:
- type
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
UserRelationForwards:
properties:
forwards:
readOnly: true
$ref: '#/components/schemas/UserForwards'
FuncKeyTemplate:
title: FuncKeyTemplate
description: Further documentation at https://wazo-platform.org/uc-doc/administration/users/csv_import
properties:
id:
type: integer
description: The ID of the funckey template
readOnly: true
tenant_uuid:
type: string
description: The UUID of the tenant
readOnly: true
name:
type: string
keys:
type: object
EndpointSccpRelationBase:
properties:
id:
type: integer
description: SCCP Endpoint ID
readOnly: true
UserService:
title: UserService
properties:
enabled:
type: boolean
required:
- enabled
LineID:
properties:
id:
type: integer
DestinationHangupBusy:
title: DestinationHangupBusy
allOf:
- $ref: '#/components/schemas/DestinationHangup'
- properties:
cause:
type: string
description: MUST be 'busy'
timeout:
type: integer
description: The timeout of the hangup
required:
- cause
DestinationHangupCause:
title: DestinationHangupCause
properties:
busy:
$ref: '#/components/schemas/DestinationHangupBusy'
congestion:
$ref: '#/components/schemas/DestinationHangupCongestion'
normal:
$ref: '#/components/schemas/DestinationHangupNormal'
IncallRelationExtensions:
properties:
extensions:
type: array
readOnly: true
items:
$ref: '#/components/schemas/ExtensionRelationBase'
FuncKey:
title: FuncKey
description: Further documentation at https://wazo-platform.org/uc-doc/api_sdk/rest_api/confd/func_keys
properties:
blf:
type: boolean
label:
type: string
destination:
type: object
EndpointSIPTemplatesRelation:
properties:
uuid:
type: string
description: The UUID of this resource
label:
type: string
description: The label of this resource
readOnly: true
required:
- uuid
SwitchboardRelationBase:
properties:
uuid:
type: string
description: Switchboard UUID
readOnly: true
name:
type: string
description: Switchboard name
UserForward:
title: UserForward
properties:
enabled:
type: boolean
destination:
type: string
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
TrunkRelationBase:
properties:
id:
type: integer
readOnly: true
description: The id of the trunk
tenant_uuid:
type: string
description: The UUID of the tenant
readOnly: true
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
SIPEndpointSectionOptions:
title: SIP Endpoint Section Options
$ref: '#/components/schemas/KeyValueOption'
LinesID:
properties:
lines:
items:
$ref: '#/components/schemas/LineID'
type: array
Voicemail_2:
allOf:
- $ref: '#/components/schemas/BaseVoicemail'
- $ref: '#/components/schemas/VoicemailRelationBase'
- $ref: '#/components/schemas/VoicemailRelationUsers'
MeetingAuthorizationItems:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/MeetingAuthorization'
total:
type: integer
Error_5:
type: array
items:
type: string
AuthUserPost:
properties:
auth:
type: object
properties:
username:
type: string
emails:
type: array
items:
type: object
properties:
address:
type: string
main:
type: boolean
confirmed:
type: boolean
uuid:
type: string
purpose:
type: string
enum:
- user
- internal
- external_api
QueueMemberUser:
title: QueueMemberUser
description: An association between a user and a queue.
allOf:
- $ref: '#/components/schemas/QueueMemberUserRelationBase'
DestinationApplicationDISA:
title: DestinationApplicationDISA
allOf:
- $ref: '#/components/schemas/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
DestinationApplicationDirectory:
title: DestinationApplicationDirectory
allOf:
- $ref: '#/components/schemas/DestinationApplication'
- properties:
application:
type: string
description: MUST be 'directory'
context:
type: integer
description: The context of the application
required:
- application
- context
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
UserCallerIDItems:
title: UserCallerIDItems
properties:
items:
type: array
items:
$ref: '#/components/schemas/UserCallerID'
total:
type: integer
required:
- total
LineRelationExtensions:
properties:
extensions:
type: array
readOnly: true
items:
$ref: '#/components/schemas/ExtensionRelationBase'
UserRelationSwitchboards:
properties:
switchboards:
type: array
readOnly: true
items:
$ref: '#/components/schemas/SwitchboardRelationBase'
DestinationApplicationVoicemail:
title: DestinationApplicationVoicemail
allOf:
- $ref: '#/components/schemas/DestinationApplication'
- properties:
application:
type: string
description: MUST be 'voicemail'
context:
type: integer
description: The context of the application
required:
- application
- context
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
UserExport:
title: UserExport
type: string
LineEndpointSCCP:
title: LineEndpointSCCP
properties:
endpoint_sccp:
$ref: '#/components/schemas/EndpointSccp'
UserUpdate:
title: UserUpdate
description: List of users successfully updated
properties:
updated:
type: array
items:
title: UserUpdateIDs
type: object
properties:
extension_id:
type: integer
description: Extension ID
user_id:
type: integer
description: User ID
line_id:
type: integer
description: Line ID
sip_uuid:
type: string
description: SIP UUID
voicemail_id:
type: integer
description: Voicemail ID
incall_extension_id:
type: integer
description: ID of the Extension used for incoming calls
row_number:
type: integer
description: Line number corresponding to the CSV data
GroupMemberUser:
properties:
uuid:
type: string
priority:
type: integer
description: priority of user in the group. Only used for linear ring strategy
required:
- uuid
DestinationType:
title: DestinationType
properties:
application:
$ref: '#/components/schemas/DestinationApplicationApplication'
conference:
$ref: '#/components/schemas/DestinationConference'
custom:
$ref: '#/components/schemas/DestinationCustom'
extension:
$ref: '#/components/schemas/DestinationExtension'
group:
$ref: '#/components/schemas/DestinationGroup'
hangup:
$ref: '#/components/schemas/DestinationHangupCause'
ivr:
$ref: '#/components/schemas/DestinationIVR'
none:
$ref: '#/components/schemas/DestinationNone'
outcall:
$ref: '#/components/schemas/DestinationOutcall'
queue:
$ref: '#/components/schemas/DestinationQueue'
sound:
$ref: '#/components/schemas/DestinationSound'
switchboard:
$ref: '#/components/schemas/DestinationSwitchboard'
user:
$ref: '#/components/schemas/DestinationUser'
voicemail:
$ref: '#/components/schemas/DestinationVoicemail'
UserRelationServices:
properties:
services:
readOnly: true
$ref: '#/components/schemas/UserServices'
UserGroupID:
properties:
id:
type: integer
uuid:
type: string
UserRelationLine:
allOf:
- $ref: '#/components/schemas/LineRelationBase'
- $ref: '#/components/schemas/LineRelationEndpoints'
- $ref: '#/components/schemas/LineRelationExtensions'
UserPostRelationLine:
properties:
device_id:
type: string
description: ID of the device associated to the line
allOf:
- $ref: '#/components/schemas/Line'
- $ref: '#/components/schemas/LineExtensions'
- $ref: '#/components/schemas/LineEndpointSIP'
- $ref: '#/components/schemas/LineEndpointSCCP'
- $ref: '#/components/schemas/LineEndpointCustom'
QueueRelationBase:
properties:
id:
type: integer
readOnly: true
description: The id of the queue
name:
type: string
description: The name of the queue. Cannot be modified
label:
type: string
description: The label of the queue
CallFilterRecipientUserUuid:
allOf:
- properties:
timeout:
type: integer
- $ref: '#/components/schemas/UserUuid'
EndpointCustomRelationBase:
properties:
id:
type: integer
description: Custom Endpoint ID
readOnly: true
interface:
type: string
description: Asterisk interface to use. (e.g. 'dahdi/i1')
Line:
title: Line
properties:
id:
type: integer
description: Line ID
readOnly: true
context:
type: string
description: The name of an internal context
position:
type: integer
description: Line's position on the device
caller_id_name:
type: string
description: Name to display when calling
caller_id_num:
type: string
description: Number to display when calling
provisioning_code:
type: string
description: Code used to provision a device
registrar:
type: string
description: Name of the template line used by the device
required:
- context
ExtensionRelationBase:
properties:
id:
type: integer
description: Extension ID
readOnly: true
context:
type: string
exten:
type: string
UserRelationGroups:
properties:
groups:
type: array
readOnly: true
items:
$ref: '#/components/schemas/GroupRelationBase'
UsersUuid:
properties:
users:
items:
$ref: '#/components/schemas/UserUuid'
type: array
LineExtensions:
title: LineExtensions
properties:
extensions:
type: array
items:
$ref: '#/components/schemas/ExtensionRelationBase'
VoicemailRelationUsers:
properties:
users:
type: array
readOnly: true
items:
$ref: '#/components/schemas/UserRelationBase'
UserExternalApp:
title: UserExternalApp
properties:
name:
type: string
description: The name to identify the external app
readOnly: true
label:
type: string
description: The label of the external app
configuration:
type: object
description: Arbitrary settings needed by an external app
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
SIPRegistrationSectionOptions:
title: PJSIP Registration Section Options
$ref: '#/components/schemas/KeyValueOption'
UserExternalAppItems:
title: UserExternalAppItems
properties:
items:
type: array
items:
$ref: '#/components/schemas/UserExternalApp'
total:
type: integer
required:
- total
User:
title: User
allOf:
- $ref: '#/components/schemas/BaseUser'
- $ref: '#/components/schemas/UserRelationAgent'
- $ref: '#/components/schemas/UserRelationFallbacks'
- $ref: '#/components/schemas/UserRelationForwards'
- $ref: '#/components/schemas/UserRelationGroups'
- $ref: '#/components/schemas/UserRelationIncalls'
- $ref: '#/components/schemas/UserRelationLines'
- $ref: '#/components/schemas/UserRelationServices'
- $ref: '#/components/schemas/UserRelationSwitchboards'
- $ref: '#/components/schemas/UserRelationVoicemail'
- $ref: '#/components/schemas/UserRelationQueues'
- $ref: '#/components/schemas/UserRelationCallPickupTargets'
- required:
- firstname
VoicemailRelationBase:
properties:
id:
type: integer
description: Voicemail ID
readOnly: true
name:
type: string
description: Voicemail name
UserServices:
title: UserServices
properties:
dnd:
$ref: '#/components/schemas/UserService'
incallfilter:
$ref: '#/components/schemas/UserService'
MeetingUserRequest:
type: object
properties:
name:
type: string
persistent:
type: boolean
description: Persistent meetings will not get deleted automatically
ServiceConfig:
type: object
additionalProperties:
type: string
HTTPServiceConfig:
type: object
properties:
url:
type: string
description: Jinja2 template, where variables come from the event triggering the webhook. For more details, see https://wazo-platform.org/uc-doc/api_sdk/rest_api/webhookd/templates
method:
type: string
enum:
- head
- get
- post
- put
- delete
body:
type: string
description: Jinja2 template, where variables come from the event triggering the webhook. For more details, see https://wazo-platform.org/uc-doc/api_sdk/rest_api/webhookd/templates. **Default:** the complete event data, JSON-encoded.
verify_certificate:
description: May be `true`, `false` or a path to the certificate bundle
type: string
default: 'true'
content_type:
description: Content-Type of the body
type: string
required:
- url
- method
SubscriptionList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Subscription'
readOnly: true
total:
type: integer
readOnly: true
UserSubscriptionRequest:
type: object
properties:
name:
type: string
service:
type: string
description: 'Known services: http. The service may be arbitrary, but it must be bound to an installed plugin in order to be effective.
'
config:
$ref: '#/components/schemas/HTTPServiceConfig'
events:
type: array
items:
type: string
tags:
$ref: '#/components/schemas/SubscriptionMetadata'
required:
- name
- service
- config
- events
SubscriptionRequest:
type: object
properties:
name:
type: string
service:
type: string
description: 'Known services: http. The service may be arbitrary, but it must be bound to an installed plugin in order to be effective.
'
config:
$ref: '#/components/schemas/HTTPServiceConfig'
events:
type: array
items:
type: string
events_user_uuid:
type: string
description: 'Only trigger webhook when an event occurs related to this user. Not compatible with all events. For more details, see: https://wazo-platform.org/uc-doc/api_sdk/rest_api/webhookd/user_filter.'
events_wazo_uuid:
type: string
description: Only trigger webhook when an event occurs on this Wazo.
tags:
type: object
required:
- name
- service
- config
- events
SubscriptionMetadata:
type: object
description: Arbitrary key-value storage for this subscription. May be used to tag subscriptions. PUT replaces all metadata.
Error_6:
title: Error
description: Error message for the client
properties:
message:
description: Human readable explanation of the error
type: string
error_id:
description: Identifier of the type of error. It is more precise than the HTTP status code.
type: string
details:
description: Additional information about the error. The keys are specific to each error.
type: object
timestamp:
description: Time when the error occured
type: number
format: timestamp
Subscription:
type: object
properties:
uuid:
type: string
readOnly: true
name:
type: string
service:
type: string
config:
$ref: '#/components/schemas/ServiceConfig'
events:
type: array
items:
type: string
events_user_uuid:
type: string
description: 'Only trigger webhook when an event occurs related to this user. Not compatible with all events. For more details, see: https://wazo-platform.org/uc-doc/api_sdk/rest_api/webhookd/user_filter'
owner_user_uuid:
type: string
readOnly: true
description: The user who owns this subscription. Admin-created subscriptions are not owned.
required:
- name
- service
- config
- events
parameters:
tenantuuid:
name: Wazo-Tenant
in: header
description: The tenant's UUID, defining the ownership of a given resource.
required: false
schema:
type: string
QueueID:
name: queue_id
in: path
required: true
description: Queue's ID
schema:
type: integer
user_uuid_or_me:
name: user_uuid_or_me
in: path
description: The UUID of the user or `me` to refer to the user doing the query
required: true
schema:
type: string
has_policy_slug:
name: has_policy_slug
in: query
description: The slug of the policy that the user must have. This includes indirect associations (user in group has policy).
schema:
type: string
has_policy_uuid:
name: has_policy_uuid
in: query
description: The UUID of the policy that the user must have. This includes indirect associations (user in group has policy).
schema:
type: string
client_id:
name: client_id
in: path
description: The client_id of the refresh token to revoke
required: true
schema:
type: string
session_uuid:
name: session_uuid
in: path
description: The UUID of the session
required: true
schema:
type: string
offset:
name: offset
in: query
description: The offset defines the offsets the start by the number specified
required: false
schema:
type: integer
default: 0
group_uuid:
name: group_uuid
in: path
description: The UUID of the group
required: true
schema:
type: string
order:
required: false
name: order
in: query
description: Name of the field to use for sorting the list of items returned.
schema:
type: string
search_policy_uuid:
name: policy_uuid
in: query
description: The UUID of the policy that the group must have.
schema:
type: string
idp_type:
name: idp_type
in: path
description: The type of IDP
required: true
schema:
type: string
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
user_uuid:
name: user_uuid
in: path
description: The UUID of the user
required: true
schema:
type: string
recurse:
name: recurse
in: query
description: Should the query include sub-tenants
required: false
schema:
type: boolean
default: false
policy_uuid:
name: policy_uuid
in: path
description: The UUID or slug of the policy. The slug is unique within a tenant, hence the tenant must be specified.
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
search_policy_slug:
name: policy_slug
in: query
description: The slug of the policy that the group must have.
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
email_uuid:
name: email_uuid
in: path
description: The UUID of the email
required: true
schema:
type: string
call_status:
name: call_status
description: Filter by call statuses (comma-separated status strings). Defaults to non-blocked calls.
required: false
in: query
schema:
type: string
enum:
- answered
- blocked
- voicemail
- unknown
conversation_id:
name: conversation_id
description: Filter by conversation identifier
required: false
in: query
schema:
type: string
requested_internal_extension:
name: requested_internal_extension
description: Filter by requested_internal_extension
required: false
in: query
schema:
type: string
until:
name: until
description: Ignore CDR starting at or after the given date. Format is ISO-8601.
in: query
required: false
schema:
type: string
format: date-time
offset_2:
required: false
name: offset
in: query
description: Number of items to skip over in the list. Useful for pagination.
schema:
type: integer
order_2:
required: false
name: order
in: query
description: 'Name of the field to use for sorting the list of items returned. Unsupported values: ``end``.'
schema:
type: string
enum:
- created_at
- message_id
from_id:
name: from_id
description: Ignore CDR created before the given CDR ID.
in: query
required: false
schema:
type: integer
requested_internal_context:
name: requested_internal_context
description: Filter by requested_internal_context
required: false
in: query
schema:
type: string
recorded:
name: recorded
description: Filter by recorded status.
required: false
in: query
schema:
type: boolean
user_uuid_2:
required: false
name: user_uuid
in: query
description: Filter by user_uuid. Many uuid can be specified. Each uuid MUST be separated by a comma (,). Many uuid will perform a logical OR.
schema:
type: array
items:
type: string
from:
name: from
description: Ignore CDR starting before the given date. Format is ISO-8601.
in: query
required: false
schema:
type: string
format: date-time
search_2:
required: false
name: search
in: query
description: Filter list of items
schema:
type: string
number:
required: false
name: number
in: query
description: Filter by source_extension and destination_extension. A wildcard (underscore) can be used at the start and/or the end of the number.
schema:
type: string
distinct:
required: false
name: distinct
in: query
description: Will only return one result for the selected field
schema:
type: string
enum:
- peer_exten
format:
name: format
description: Overrides the Content-Type header. This is used to be able to have a downloadable link. Allowed values are "csv" and "json"
in: query
required: false
schema:
type: string
enum:
- csv
- json
limit_2:
required: false
name: limit
in: query
description: Maximum number of items to return in the list. Default to 1000 if not specified.
schema:
type: integer
call_direction:
required: false
name: call_direction
in: query
description: Filter list of items
schema:
type: string
enum:
- internal
- inbound
- outbound
TenantUUID:
name: Wazo-Tenant
in: header
description: The tenant's UUID, defining the ownership of a given resource.
required: false
schema:
type: string
MeetingUUID:
name: meeting_uuid
in: path
description: Unique identifier of the meeting
required: true
schema:
type: string
VoicemailMessageID:
name: message_id
in: path
description: The message's ID
required: true
schema:
type: string
DTMFDigits:
name: digits
in: query
description: Digits to send via DTMF. Must contain only `0-9*#ABCD` (letters are case insensitive).
required: true
schema:
type: string
CallID:
name: call_id
in: path
description: ID of the call
required: true
schema:
type: string
ForceDownload:
name: download
in: query
description: Set to 1 to force download by browser
schema:
type: string
offset_3:
required: false
name: offset
in: query
description: Number of items to skip over in the list. Useful for pagination.
schema:
type: integer
TokenID:
name: token
in: query
description: The token's ID
schema:
type: string
VoicemailGreeting:
name: greeting
in: path
description: The greeting
required: true
schema:
type: string
enum:
- unavailable
- busy
- name
ParkCall:
name: park_call
in: body
description: Payload required to park a call
required: true
schema:
$ref: '#/components/schemas/ParkCallBody'
ConferenceID:
name: conference_id
in: path
description: Unique identifier of the conference
required: true
schema:
type: string
VoicemailFolderID:
name: folder_id
in: path
description: The folder's ID
required: true
schema:
type: integer
RelocateUUID:
name: relocate_uuid
in: path
description: Unique identifier of the relocate
required: true
schema:
type: string
ParticipantID:
name: participant_id
in: path
description: Unique identifier of the participant
required: true
schema:
type: string
TransferID:
name: transfer_id
in: path
description: Unique identifier of the transfer
required: true
schema:
type: string
limit_3:
required: false
name: limit
in: query
description: Maximum number of items to return in the list
schema:
type: integer
agentid:
required: true
name: agent_id
in: path
description: Agent’s ID
schema:
type: integer
lineid:
required: true
name: line_id
in: path
schema:
type: integer
groupuuid:
required: true
name: group_uuid
in: path
description: the group's UUID
schema:
type: string
user_external_app_view:
required: false
name: view
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
'
schema:
type: string
enum:
- fallback
voicemailid:
required: true
name: voicemail_id
in: path
schema:
type: integer
funckeyposition:
required: true
name: position
in: path
description: position of the funckey
schema:
type: integer
switchboard_uuid:
name: switchboard_uuid
in: path
required: true
schema:
type: string
useriduuid:
required: true
name: user_id
in: path
description: the user's ID or UUID
schema:
type: string
externalappname:
required: true
name: app_name
in: path
description: External App's name
schema:
type: string
callfilterid:
required: true
name: callfilter_id
in: path
description: Call Filter's ID
schema:
type: integer
view:
required: false
name: view
in: query
description: Different view of the list of users.
schema:
type: string
enum:
- directory
- summary
- line_presence
query_string_uuid_filter:
in: query
name: uuid
required: false
description: Search filter for resource UUID, can be used to search multiple elements. Using a comma separated list of UUID
style: form
explode: false
schema:
type: array
items:
type: string
format: uuid
maxItems: 20
minItems: 1
uniqueItems: true
forward:
required: true
name: forward_name
in: path
description: the forward name
schema:
type: string
enum:
- busy
- noanswer
- unconditional
queueid:
required: true
name: queue_id
in: path
description: Queue’s ID
schema:
type: integer
callpickupid:
required: true
name: callpickup_id
in: path
description: Call Pickup's ID
schema:
type: integer
scheduleid:
required: true
name: schedule_id
in: path
description: Schedule's ID
schema:
type: integer
pagingid:
required: true
name: paging_id
in: path
description: Paging's ID
schema:
type: integer
service:
required: true
name: service_name
in: path
description: the service name
schema:
type: string
enum:
- dnd
- incallfilter
callpermissionid:
required: true
name: callpermission_id
in: path
description: Call Permission's ID
schema:
type: integer
endpoint_sip_view:
required: false
name: view
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.
'
schema:
type: string
enum:
- merged
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
useruuid:
required: true
name: user_uuid
in: path
description: the user's UUID
schema:
type: string
format: uuid
templateid:
required: true
name: template_id
in: path
schema:
type: integer
offset_4:
required: false
name: offset
in: query
description: Number of items to skip over in the list. Useful for pagination.
schema:
type: integer
authorization_uuid:
required: true
name: authorization_uuid
in: path
description: Authorization UUID
schema:
type: string
meeting_uuid:
required: true
name: meeting_uuid
in: path
description: Meeting UUID
schema:
type: string
limit_4:
required: false
name: limit
in: query
description: Maximum number of items to return in the list
schema:
type: integer
SearchMetadata:
name: search_metadata
in: query
description: A search term formatted like "key:value" that will only match subscriptions having a metadata entry "key=value". May be given multiple times to filter more precisely on different metadata keys.
schema:
type: string
SubscriptionUUID:
name: subscription_uuid
description: The UUID of the subscription
in: path
required: true
schema:
type: string
SubscriptionBody:
name: body
in: body
required: true
schema:
$ref: '#/components/schemas/SubscriptionRequest'
UserSubscriptionBody:
name: body
in: body
required: true
schema:
$ref: '#/components/schemas/UserSubscriptionRequest'
responses:
InvalidRequest:
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error_3'
NoSuchTransfer:
description: The specified transfer does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
NoSuchMeetingOrParticipant:
description: The specified meeting or participant does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
NotFoundError:
description: The resource requested was not found on the server
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
NoSuchMeeting:
description: The specified meeting does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
AnotherServiceUnavailable:
description: Another service is unavailable (e.g. wazo-auth, wazo-confd, Asterisk, ...)
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
NoSuchRelocate:
description: The specified relocate does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
FullOrServiceUnavailable:
description: Parking is full or another service is unavailable (e.g. wazo-auth, wazo-confd, Asterisk, ...)
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
NoSuchConference:
description: The specified conference does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
InvalidRequest_2:
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error_4'
ResourceUpdated:
description: Resource was updated successfully
ResourceDeleted:
description: Resource was deleted successfully
CreateError:
description: An error occurred when creating the resource
content:
application/json:
schema:
$ref: '#/components/schemas/Error_5'
UpdateError:
description: An error occurred when updating the resource
content:
application/json:
schema:
$ref: '#/components/schemas/Error_5'
NotFoundError_2:
description: The resource requested was not found on the server
content:
application/json:
schema:
$ref: '#/components/schemas/Error_5'
GenericError:
description: An error occurred during the operation
content:
application/json:
schema:
$ref: '#/components/schemas/Error_5'
DeleteError:
description: An error occurred when deleting the resource
content:
application/json:
schema:
$ref: '#/components/schemas/Error_5'
NotFoundError_3:
description: The resource requested was not found on the server
content:
application/json:
schema:
$ref: '#/components/schemas/Error_6'
AnotherServiceUnavailable_2:
description: Another service is unavailable (e.g. wazo-auth, wazo-confd, Asterisk, ...)
content:
application/json:
schema:
$ref: '#/components/schemas/Error_6'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error_6'
InvalidRequest_3:
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error_6'
securitySchemes:
wazo_auth_token:
type: apiKey
name: X-Auth-Token
in: header
wazo_auth_basic:
type: http
scheme: basic
x-refined-from:
- wazo-agentd-api-openapi.yml
- wazo-auth-api-openapi.yml
- wazo-call-logd-api-openapi.yml
- wazo-calld-api-openapi.yml
- wazo-confd-api-openapi.yml
- wazo-webhookd-api-openapi.yml
x-xivo-name: agentd
x-xivo-port: 9493
x-apievangelist-source:
harvested_from: https://github.com/wazo-platform/wazo-agentd
assembly: base plugin api.yml deep-merged with all plugin api.yml fragments, reproducing what the running service serves at /api/agentd/1.0/api/api.yml (see wazo_agentd/plugins/api/http.py — xivo.chain_map.ChainMap)
spec_version: Swagger 2.0 (as published by Wazo)
harvested: '2026-08-17'