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'