swagger: '2.0' info: title: wazo-confd description: "Confd exposes an API for managing core resources on a Wazo server such as users, extensions, devices, voicemails,\ \ queues, etc. Resources can be associated together to provide additional functionality. For example: By associating a\ \ voicemail with a user, calls will automatically fallback on to the voicemail when the user cannot answer.\n\nImplementation\ \ notes\n====================\n\nErrors\n------\n\nResponses containing errors will have a status code in the 400 or 500\ \ class. A list of error messages will be returned in the body of the response as a JSON-encoded array:\n\n~~~\n[\n \ \ \"Input error - User not found\",\n \"Resource error - User not associated to a line\"\n]\n~~~\n\n\nUpdating resources\ \ via PUT\n--------------------------\n\nWhen updating a resource, all fields become optional. In other words, only values\ \ that have been changed need to be sent to the server. Please note that this behavior may change in future versions of\ \ the API." version: '1.1' license: name: GPL v3 url: http://www.gnu.org/licenses/gpl.txt contact: name: Wazo Dev Team url: https://wazo-platform.org/ email: dev@wazo.community x-logo: url: https://wazo-platform.org/images/logo-black.svg backgroundColor: '#FAFAFA' altText: Wazo Logo schemes: - http basePath: /1.1 consumes: - application/json produces: - application/json x-xivo-port: 9486 x-xivo-name: confd tags: - name: funckeys externalDocs: url: https://wazo-platform.org/uc-doc/api_sdk/rest_api/confd/func_keys description: Documentation on function key models securityDefinitions: wazo_auth_token: type: apiKey name: X-Auth-Token in: header security: - wazo_auth_token: [] parameters: agentid: required: true type: integer name: agent_id in: path description: Agent’s ID userid: required: false type: integer name: user_id in: query description: the user's ID useruuid: required: true type: string format: uuid name: user_uuid in: path description: the user's UUID direction: required: false name: direction in: query type: string enum: - asc - desc description: Sort list of items in 'asc' (ascending) or 'desc' (descending) order enddate: name: end_date description: filter before end date. Format YYYY-MM-DDTHH:MM:SS. Empty means 'until the current time'. in: query type: string format: date-time required: false limit: required: false name: limit in: query type: integer description: Maximum number of items to return in the list offset: required: false name: offset in: query type: integer description: Number of items to skip over in the list. Useful for pagination. order: required: false name: order in: query type: string description: Name of the field to use for sorting the list of items returned. queueid: required: true name: queue_id type: integer in: path description: Queue’s ID recurse: name: recurse in: query type: boolean description: Should the query include sub-tenants default: false required: false search: required: false name: search in: query type: string description: Search term for filtering a list of items. Only items with a field containing the search term will be returned. query_string_uuid_filter: in: query name: uuid required: false collectionFormat: csv type: array minItems: 1 maxItems: 20 uniqueItems: true items: type: string format: uuid description: Search filter for resource UUID, can be used to search multiple elements. Using a comma separated list of UUID startdate: name: start_date description: filter after start date. Format YYYY-MM-DDTHH:MM:SS. Empty means 'since the earliest'. in: query type: string format: date-time required: false tenantuuid: name: Wazo-Tenant type: string in: header description: The tenant's UUID, defining the ownership of a given resource. required: false view: required: false name: view in: query type: string enum: - directory - summary - line_presence description: Different view of the list of users. access_featureid: required: true type: integer name: access_feature_id in: path description: Access feature ID application_uuid: required: true type: integer name: application_uuid in: path description: Application's UUID callfilterid: required: true type: integer name: callfilter_id in: path description: Call Filter's ID callpermissionid: required: true type: integer name: callpermission_id in: path description: Call Permission's ID callpickupid: required: true type: integer name: callpickup_id in: path description: Call Pickup's ID conferenceid: required: true type: integer name: conference_id in: path description: Conference's ID contextid: required: true type: integer name: context_id in: path description: context's ID availability: required: false name: availability in: query type: string default: available enum: - available - all description: Determines if the ranges are going to be split to display only ranges with available extensions. rangetype: required: true type: string enum: - user - group - queue - conference - incall name: range_type in: path description: The extension range destination type deviceid: required: true type: string name: device_id in: path description: Device's ID customid: required: true type: integer name: custom_id in: path iaxid: required: true type: integer name: iax_id in: path sccpid: required: true type: integer name: sccp_id in: path sipuuid: required: true type: string name: sip_uuid in: path template_uuid: required: true type: string name: template_uuid in: path endpoint_sip_view: required: false type: string name: view enum: - merged in: query description: 'Different view of the SIP endpoint The `default` view, when the argument is omitted, is to include only options that are defined on the specified endpoint. The `merged` view includes all options from included templates. ' extensionid: required: true type: integer name: extension_id in: path extensionuuid: required: true type: string name: extension_uuid in: path externalappname: required: true type: string name: app_name in: path description: External App's name funckeyposition: required: true type: integer name: position in: path description: position of the funckey templateid: required: true type: integer name: template_id in: path groupid: required: true type: integer name: group_id in: path description: the group's ID groupuuid: required: true type: string name: group_uuid in: path description: the group's UUID incallid: required: true type: integer name: incall_id in: path description: Incoming call's ID http_ingress_uuid: required: true type: string name: http_ingress_uuid in: path ingress_fallback_view: description: 'Allows to fallback on master tenant config if the current tenant has no ingress set. When the `view` is omitted or the `default`value is passed, only the ingress of the current tenant is returned. This is useful for configuration API. For `fallback` view the API fallbacks to the master tenant ingress value. ' enum: - default - fallback in: query name: view required: false type: string ivrid: required: true type: integer name: ivr_id in: path description: IVR's ID lineid: required: true type: integer name: line_id in: path meeting_uuid: required: true name: meeting_uuid in: path type: string description: Meeting UUID guest_uuid: required: true name: guest_uuid in: path type: string description: Guest UUID. It must be generated by the guest. authorization_uuid: required: true name: authorization_uuid in: path type: string description: Authorization UUID moh_uuid: required: true type: string name: moh_uuid in: path moh_filename: required: true type: string name: moh_filename in: path outcallid: required: true type: integer name: outcall_id in: path description: Outgoing call's ID pagingid: required: true type: integer name: paging_id in: path description: Paging's ID parkinglotid: required: true type: integer name: parking_lot_id in: path description: Parking Lot's ID phone_number_uuid: name: phone_number_uuid in: path type: string description: UUID of the phone number required: true shared: in: query name: shared type: boolean description: Only include shared phone numbers main: in: query name: main type: boolean description: Only include the main phone number of the tenant fallback_transport: required: false name: fallback in: query type: string description: 'The UUID of the transport that should be associated to orphaned SIP configurations ' transportuuid: required: true type: string name: transport_uuid in: path description: The UUID of the transport registeriaxid: description: Register IAX's ID name: register_iax_id in: path type: integer required: true registrar_id: required: true type: string name: registrar_id in: path description: Registrar ID scheduleid: required: true type: integer name: schedule_id in: path description: Schedule's ID skillid: required: true type: integer name: skill_id in: path description: Skill's ID skillruleid: required: true type: integer name: skillrule_id in: path description: Skill's ID sound_category: required: true type: string name: sound_category in: path sound_filename: required: true type: string name: sound_filename in: path sound_language: required: false name: language in: query type: string description: Language of the sound sound_format: required: false name: format in: query type: string description: Format of the sound switchboard_uuid: name: switchboard_uuid in: path required: true type: string urltenantuuid: description: Resource UUID name: tenant_uuid in: path type: string required: true trunkid: description: Trunk's ID name: trunk_id in: path type: integer required: true forward: required: true type: string enum: - busy - noanswer - unconditional name: forward_name in: path description: the forward name service: required: true type: string enum: - dnd - incallfilter name: service_name in: path description: the service name useriduuid: required: true type: string name: user_id in: path description: the user's ID or UUID blocklist_number_uuid: name: blocklist_number_uuid in: path type: string format: uuid description: UUID of the blocklisted number required: true user_external_app_view: required: false type: string name: view enum: - fallback in: query description: 'Different view of the external app endpoint The `default` view, when the argument is omitted, is to return the user value for this external app The `fallback` view return the user value for this external app, but if not found, will fallback to the tenant configured value **WARNING**: Using fallback view on list will disabled all pagination and search features ' csvbody: name: body in: body required: true description: CSV field list available at https://wazo-platform.org/uc-doc/administration/users/csv_import schema: type: string voicemailid: required: true type: integer name: voicemail_id in: path responses: AlreadyConfiguredError: description: The Wazo must not be configured schema: $ref: '#/definitions/Error' GenericError: description: An error occurred during the operation schema: $ref: '#/definitions/Error' CreateError: description: An error occurred when creating the resource schema: $ref: '#/definitions/Error' UpdateError: description: An error occurred when updating the resource schema: $ref: '#/definitions/Error' DeleteError: description: An error occurred when deleting the resource schema: $ref: '#/definitions/Error' NotFoundError: description: The resource requested was not found on the server schema: $ref: '#/definitions/Error' ResourceUpdated: description: Resource was updated successfully ResourceDeleted: description: Resource was deleted successfully definitions: Link: title: Link description: a pointer to a linked resource related in some way to the current resource properties: href: type: string description: The URL of the link rel: type: string description: The relationship of the link relative to the current resource DestinationType: title: DestinationType properties: application: $ref: '#/definitions/DestinationApplicationApplication' conference: $ref: '#/definitions/DestinationConference' custom: $ref: '#/definitions/DestinationCustom' extension: $ref: '#/definitions/DestinationExtension' group: $ref: '#/definitions/DestinationGroup' hangup: $ref: '#/definitions/DestinationHangupCause' ivr: $ref: '#/definitions/DestinationIVR' none: $ref: '#/definitions/DestinationNone' outcall: $ref: '#/definitions/DestinationOutcall' queue: $ref: '#/definitions/DestinationQueue' sound: $ref: '#/definitions/DestinationSound' switchboard: $ref: '#/definitions/DestinationSwitchboard' user: $ref: '#/definitions/DestinationUser' voicemail: $ref: '#/definitions/DestinationVoicemail' DestinationApplicationApplication: title: DestinationApplicationApplication properties: callback_disa: $ref: '#/definitions/DestinationApplicationCallbackDISA' custom: $ref: '#/definitions/DestinationApplicationCustom' directory: $ref: '#/definitions/DestinationApplicationDirectory' disa: $ref: '#/definitions/DestinationApplicationDISA' fax_to_mail: $ref: '#/definitions/DestinationApplicationFaxToMail' voicemail: $ref: '#/definitions/DestinationApplicationVoicemail' DestinationApplication: title: DestinationApplication properties: type: type: string description: MUST be 'application' required: - type DestinationApplicationCallbackDISA: title: DestinationApplicationCallbackDISA allOf: - $ref: '#/definitions/DestinationApplication' - properties: application: type: string description: MUST be 'callback_disa' context: type: integer description: The context of the application pin: type: string description: the pin of the application required: - application - context DestinationApplicationCustom: title: DestinationApplicationCustom allOf: - $ref: '#/definitions/DestinationApplication' - properties: application: type: string description: MUST be 'custom' application_uuid: type: string description: The UUID of the application. required: - application - application_uuid DestinationApplicationDirectory: title: DestinationApplicationDirectory allOf: - $ref: '#/definitions/DestinationApplication' - properties: application: type: string description: MUST be 'directory' context: type: integer description: The context of the application required: - application - context DestinationApplicationDISA: title: DestinationApplicationDISA allOf: - $ref: '#/definitions/DestinationApplication' - properties: application: type: string description: MUST be 'disa' context: type: integer description: The context of the application pin: type: string description: the pin of the application required: - application - context DestinationApplicationFaxToMail: title: DestinationApplicationFaxToMail allOf: - $ref: '#/definitions/DestinationApplication' - properties: application: type: string description: MUST be 'fax_to_mail' email: type: string description: The email of the application required: - application - email DestinationApplicationVoicemail: title: DestinationApplicationVoicemail allOf: - $ref: '#/definitions/DestinationApplication' - properties: application: type: string description: MUST be 'voicemail' context: type: integer description: The context of the application required: - application - context DestinationConference: title: DestinationConference properties: type: type: string description: MUST be 'conference' conference_id: type: integer description: The id of the conference required: - type - conference_id DestinationCustom: title: DestinationCustom properties: type: type: string description: MUST be 'custom' command: type: string description: The command to execute required: - type - command DestinationExtension: title: DestinationExtension properties: type: type: string description: MUST be 'extension' exten: type: string context: type: string description: Context of the extension required: - type - exten - context DestinationGroup: title: DestinationGroup properties: type: type: string description: MUST be 'group' group_id: type: integer description: The id of the group ring_time: type: number format: float required: - type - group_id DestinationHangupCause: title: DestinationHangupCause properties: busy: $ref: '#/definitions/DestinationHangupBusy' congestion: $ref: '#/definitions/DestinationHangupCongestion' normal: $ref: '#/definitions/DestinationHangupNormal' DestinationHangup: title: DestinationHangup properties: type: type: string description: MUST be 'hangup' required: - type DestinationHangupBusy: title: DestinationHangupBusy allOf: - $ref: '#/definitions/DestinationHangup' - properties: cause: type: string description: MUST be 'busy' timeout: type: integer description: The timeout of the hangup required: - cause DestinationHangupCongestion: title: DestinationHangupCongestion allOf: - $ref: '#/definitions/DestinationHangup' - properties: cause: type: string description: MUST be 'congestion' timeout: type: integer description: The timeout of the hangup required: - cause DestinationHangupNormal: title: DestinationHangupNormal allOf: - $ref: '#/definitions/DestinationHangup' - properties: cause: type: string description: MUST be 'normal' required: - cause DestinationIVR: title: DestinationIVR properties: type: type: string description: MUST be 'ivr' ivr_id: type: integer description: The id of the IVR required: - type - ivr_id DestinationNone: title: DestinationNone properties: type: type: string description: MUST be 'none' required: - type DestinationOutcall: title: DestinationOutcall properties: type: type: string description: MUST be 'outcall' exten: type: string outcall_id: type: integer description: The id of the outcall required: - type - exten - outcall_id DestinationQueue: title: DestinationQueue properties: type: type: string description: MUST be 'queue' queue_id: type: integer description: The id of the queue ring_time: type: number format: float skill_rule_id: type: integer description: The id of the skill rule skill_rule_variables: type: object description: key-value where key represents the variable of the skill rule and value represents a value required: - type - queue_id DestinationSound: title: DestinationSound properties: type: type: string description: MUST be 'sound' filename: type: string description: The filename of the sound. The file MUST be imported by to webi in the playback directory. The extension of file SHOULD be not present. skip: type: boolean description: Do not play this sound if the call is not answered no_answer: type: boolean description: Play this sound without answering the call required: - type - filename DestinationSwitchboard: title: DestinationSwitchboard properties: type: type: string description: MUST be 'switchboard' switchboard_uuid: type: string description: The UUID of the switchboard. required: - type - switchboard_uuid DestinationUser: title: DestinationUser properties: type: type: string description: MUST be 'user' user_id: type: integer description: The id of the user ring_time: type: number format: float moh_uuid: type: string description: The UUID of the music on hold to use instead of a ringback tone. required: - type - user_id DestinationVoicemail: title: DestinationVoicemail properties: type: type: string description: MUST be 'voicemail' voicemail_id: type: integer description: The id of the voicemail skip_instructions: type: boolean description: Skip the playback of instructions for leaving a message greeting: type: string enum: - busy - unavailable description: Play the specified greeting required: - type - voicemail_id EndpointRelationTrunk: properties: trunk: $ref: '#/definitions/TrunkRelationBase' readOnly: true EndpointRelationLine: properties: line: type: array readOnly: true items: $ref: '#/definitions/LineRelationBase' Error: type: array items: type: string UsersUuid: properties: users: items: $ref: '#/definitions/UserUuid' type: array UserUuid: properties: uuid: type: string GroupID: properties: id: type: integer GroupsID: properties: groups: items: $ref: '#/definitions/GroupID' type: array KeyValueOption: description: "Options must have the following form:\n```\n{\n \"options\": [\n [\"option\", \"value\"],\n ]\n}\n\ ```\n" title: Key Value type: array items: type: string maxItems: 2 minItems: 2 example: - option - value AccessFeature: title: Access feature properties: id: type: integer description: The access_feature ID host: type: string description: The host or subnet string (e.g. 10.0.0.0/24) feature: type: string description: The feature to limit the access to enum: - phonebook enabled: type: boolean required: - host - feature AccessFeatureItems: title: AccessFeatureItems properties: items: type: array items: $ref: '#/definitions/AccessFeature' total: type: integer required: - total Agent: title: Agent allOf: - $ref: '#/definitions/AgentRelationBase' - properties: password: type: string description: Numeric password used to log agent. language: type: string description: Language used for the agent menu prompt preprocess_subroutine: type: string description: Name of the subroutine to execute in asterisk before receiving a call description: type: string description: Additional information about the agent tenant_uuid: type: string description: The UUID of the tenant readOnly: true - $ref: '#/definitions/AgentRelationQueues' - $ref: '#/definitions/AgentRelationUsers' - $ref: '#/definitions/AgentRelationSkills' - required: - number AgentRelationBase: properties: id: type: integer readOnly: true description: The id of the agent firstname: type: string lastname: type: string number: type: string description: Agent number. Cannot be modified after creation AgentRelationQueues: properties: queues: type: array readOnly: true items: $ref: '#/definitions/AgentRelationQueue' AgentRelationQueue: allOf: - $ref: '#/definitions/QueueRelationBase' - properties: penalty: type: integer description: Agent's penalty. A priority used for distributing calls. AgentRelationUsers: properties: users: type: array readOnly: true items: $ref: '#/definitions/AgentRelationUser' AgentRelationSkills: properties: skills: type: array readOnly: true items: $ref: '#/definitions/AgentRelationSkill' AgentRelationSkill: allOf: - $ref: '#/definitions/SkillRelationBase' - $ref: '#/definitions/AgentSkillRelationBase' AgentRelationUser: allOf: - $ref: '#/definitions/UserRelationBase' AgentItems: title: AgentItems properties: items: type: array items: $ref: '#/definitions/Agent' total: type: integer required: - total AgentSkill: title: AgentSkill allOf: - $ref: '#/definitions/AgentSkillRelationBase' AgentSkillRelationBase: properties: skill_weight: type: integer description: Skill's weight. Application: type: object allOf: - $ref: '#/definitions/ApplicationRelationBase' - properties: tenant_uuid: type: string description: The UUID of the tenant readOnly: true destination: type: string description: Destination where the call entering in the application will be sent enum: - node destination_options: $ref: '#/definitions/ApplicationDestinationNode' - $ref: '#/definitions/ApplicationRelationLines' ApplicationRelationBase: properties: uuid: type: string description: Application UUID readOnly: true name: type: string description: Application name ApplicationDestinationNode: type: object properties: music_on_hold: type: string description: Name of the MOH category to use for music on hold answer: type: boolean description: Automatically answer the call when the call enters the destination node type: type: string description: type of the default node enum: - holding ApplicationRelationLines: properties: lines: type: array readOnly: true items: $ref: '#/definitions/LineRelationBase' ApplicationItems: type: object properties: items: type: array items: $ref: '#/definitions/Application' CallFilter: title: CallFilter allOf: - properties: id: type: integer readOnly: true description: The id of the call filter tenant_uuid: type: string description: The UUID of the tenant readOnly: true name: type: string description: The name of the call filter source: type: string enum: - internal - external - all description: Call type to apply call filter strategy: type: string enum: - all-recipients-then-linear-surrogates - all-recipients-then-all-surrogates - all-surrogates-then-all-recipients - linear-surrogates-then-all-recipients - all description: Determine which will ring. surrogates_timeout: type: integer description: Number of seconds the filter's surrogates will ring before falling back caller_id_mode: type: string enum: - prepend - overwrite - append description: How the caller_id_name will be treated caller_id_name: type: string description: Name to display description: type: string description: Additional information about the call filter enabled: type: boolean default: true description: Disable or enable the call filter required: - name - source - strategy - $ref: '#/definitions/CallFilterRecipients' - $ref: '#/definitions/CallFilterSurrogates' CallFilterItems: title: CallFilterItems properties: items: type: array items: $ref: '#/definitions/CallFilter' total: type: integer required: - total CallFilterRecipients: properties: recipients: readOnly: true $ref: '#/definitions/CallFilterRecipientUsers' CallFilterSurrogates: properties: surrogates: readOnly: true $ref: '#/definitions/CallFilterSurrogateUsers' CallFilterRecipientUsers: properties: users: type: array readOnly: true items: $ref: '#/definitions/CallFilterRecipientUser' CallFilterSurrogateUsers: properties: users: type: array readOnly: true items: $ref: '#/definitions/CallFilterSurrogateUser' CallFilterRecipientUser: allOf: - properties: timeout: type: integer - $ref: '#/definitions/UserRelationBase' CallFilterSurrogateUser: allOf: - properties: member_id: type: integer exten: type: string - $ref: '#/definitions/UserRelationBase' CallFilterFallbacks: properties: noanswer_destination: description: The destination to redirect the caller to when there are no answer $ref: '#/definitions/DestinationType' example: noanswer_destination: type: user user_id: 1 CallFilterRecipientUserUuid: allOf: - properties: timeout: type: integer - $ref: '#/definitions/UserUuid' CallFilterRecipientUsersUuid: properties: users: items: $ref: '#/definitions/CallFilterRecipientUserUuid' type: array CallPermission: allOf: - $ref: '#/definitions/CallPermissionRelationBase' - title: CallPermission properties: password: type: string description: The password to be able to call extensions mode: type: string enum: - allow - deny default: deny description: Determine how the call permission are applied enabled: type: boolean default: true description: Disable or enable the call permission description: type: string description: Additional information about the call permission extensions: type: array items: type: string description: Extensions to apply the call permission CallPermissionRelationBase: properties: id: type: integer readOnly: true description: The id of the call permission tenant_uuid: type: string description: The UUID of the tenant readOnly: true name: type: string description: The name of the call permission required: - name CallPermissionItems: title: CallPermissionItems properties: items: type: array items: $ref: '#/definitions/CallPermission' total: type: integer required: - total CallPickup: title: CallPickup allOf: - properties: id: type: integer readOnly: true description: The id of the call pickup tenant_uuid: type: string description: The UUID of the tenant readOnly: true name: type: string description: The name of the call pickup description: type: string description: Additional information about the call pickup enabled: type: boolean default: true description: Disable or enable the call pickup required: - name - $ref: '#/definitions/CallPickupTargets' - $ref: '#/definitions/CallPickupInterceptors' CallPickupItems: title: CallPickupItems properties: items: type: array items: $ref: '#/definitions/CallPickup' total: type: integer required: - total CallPickupTargets: properties: recipients: readOnly: true $ref: '#/definitions/CallPickupTargetUsers' CallPickupInterceptors: properties: surrogates: readOnly: true $ref: '#/definitions/CallPickupInterceptorUsers' CallPickupTargetUsers: properties: users: type: array readOnly: true items: $ref: '#/definitions/CallPickupTargetUser' CallPickupInterceptorUsers: properties: users: type: array readOnly: true items: $ref: '#/definitions/UserRelationBase' CallPickupTargetUser: allOf: - properties: timeout: type: integer - $ref: '#/definitions/UserRelationBase' ConfBridgeConfiguration: title: ConfBridgeConfiguration description: 'This configuration will be in the file ''confbridge.conf'' used by asterisk. Please consult the asterisk documentation for further details on available parameters.' properties: options: description: "These options must be unique and unordered. Otherwise, use `ordered_options`. Option must have the following\ \ form:\n\n```\n{\n \"options\": {\n \"name1\": \"value1\",\n ...\n }\n}\n```\n\n" type: object Conference: title: Conference allOf: - $ref: '#/definitions/ConferenceRelationBase' - properties: preprocess_subroutine: type: string description: Name of the subroutine to execute in asterisk before entering the conference pin: type: string description: Pin to enter in the conference admin_pin: type: string description: Administrator pin to enter in the conference quiet_join_leave: type: boolean description: Play 'beep' notification when join/leave a conference default: false announce_join_leave: type: boolean description: Record name and announce join/leave default: false announce_user_count: type: boolean description: Announce the number of participants default: false announce_only_user: type: boolean description: Announce when a participant is alone in conference default: true music_on_hold: type: string description: Name of the MOH category to use for music on hold max_users: type: integer description: Maximum users allowed in the conference. This exclude admin. record: type: boolean description: Record the conference default: false tenant_uuid: type: string description: The UUID of the tenant readOnly: true - $ref: '#/definitions/ConferenceRelationExtensions' - $ref: '#/definitions/ConferenceRelationIncalls' ConferenceRelationIncalls: properties: incalls: type: array readOnly: true items: $ref: '#/definitions/ConferenceRelationIncall' ConferenceRelationIncall: allOf: - $ref: '#/definitions/IncallRelationBase' - $ref: '#/definitions/IncallRelationExtensions' ConferenceRelationBase: properties: id: type: integer readOnly: true name: type: string description: name to identify the conference ConferenceRelationExtensions: properties: extensions: type: array readOnly: true items: $ref: '#/definitions/ExtensionRelationBase' ConferenceItems: title: ConferenceItems properties: items: type: array items: $ref: '#/definitions/Conference' total: type: integer required: - total LiveReload: title: LiveReload properties: enabled: type: boolean Context: title: Context allOf: - $ref: '#/definitions/ContextRelationBase' - properties: label: type: string description: The label of the context type: type: string default: internal enum: - internal - incall - outcall - services - others user_ranges: type: array items: $ref: '#/definitions/ContextRange' group_ranges: type: array items: $ref: '#/definitions/ContextRange' queue_ranges: type: array items: $ref: '#/definitions/ContextRange' conference_room_ranges: type: array items: $ref: '#/definitions/ContextRange' incall_ranges: type: array items: $ref: '#/definitions/ContextIncallRange' description: type: string description: Additional information about the context enabled: type: boolean default: true tenant_uuid: type: string description: The UUID of the tenant readOnly: true - $ref: '#/definitions/ContextRelationContexts' - required: - label ContextRelationBase: properties: id: type: integer readOnly: true description: The id of the context uuid: type: string readOnly: true description: The UUID of the context name: type: string description: The name used by Asterisk readOnly: true ContextRange: title: ContextRange properties: start: type: string default: end: type: string default: required: - start ContextIncallRange: title: ContextIncallRange allOf: - $ref: '#/definitions/ContextRange' - properties: did_length: type: integer default: 0 description: The length of the did ContextItems: title: ContextItems properties: items: type: array items: $ref: '#/definitions/Context' total: type: integer required: - total ContextRelationContext: $ref: '#/definitions/ContextRelationBase' ContextRelationContexts: properties: contexts: type: array readOnly: true items: $ref: '#/definitions/ContextRelationContext' ContextRelation: properties: id: type: integer description: The ID of the context required: - id ContextsId: title: ContextsId properties: contexts: items: $ref: '#/definitions/ContextId' type: array ContextId: title: ContextId properties: id: type: integer ContextRangeItems: title: ContextRangeItems properties: items: type: array items: $ref: '#/definitions/ContextRange' total: type: integer required: - total example: total: 3 items: - start: 1006 end: 1006 - start: 1010 end: 1014 - start: 1025 end: 1999 Device: title: Device properties: id: type: string description: Device ID readOnly: true description: type: string ip: type: string description: IP address (10.0.0.0) mac: type: string description: MAC address (aa:bb:cc:dd:ee:ff) model: type: string description: Device model plugin: type: string description: Provisioning plugin to be used by device options: $ref: '#/definitions/DeviceOptions' sn: type: string description: Serial number status: type: string default: not_configured enum: - autoprov - configured - not_configured - corrupted description: 'Device status. - autoprov: Device can be provisionned using a provisioning code - configured: Device is configured and ready to be used - not_configured: Device has not been completely configured - corrupted: Device configuration is corrupted and need repair ' readOnly: true template_id: type: string description: ID of the device template. All device using a device template will have a certain number of common parameters preconfigured for the device vendor: type: string description: Vendor name version: type: string description: Firmware version tenant_uuid: type: string description: The UUID of the tenant readOnly: true is_new: type: boolean description: Indicates if the device is a new device, ie in the master tenant readOnly: true DeviceOptions: title: DeviceOptions description: List of standard keys properties: switchboard: type: boolean description: Indicate if this device is a switchboard DeviceItems: title: DeviceItems properties: items: items: $ref: '#/definitions/Device' type: array total: type: integer required: - total DHCP: title: DHCP type: object properties: active: type: boolean description: Is the DHCP service enabled? pool_start: type: string description: The first IP address that can be allocated by DHCP pool_end: type: string description: The last IP address that can be allocated by DHCP network_interfaces: type: array items: type: string description: A comma separated list of network interface that the DHCP server listens on RewritingRule: title: Rewriting rule properties: match: type: string description: The local address matching rule. Supports regular expressions example: '`/^.*@example.org/` or `user-name` or `user-name@example.org`' replacement: type: string description: The replacement for the matched rule example: '`no-reply@example.org`' EmailConfig: title: E-mail configuration properties: domain_name: type: string description: The domain name of the current mailing server, i.e. `example.com` from: type: string description: 'The e-mail address or domain name to use in the `From` header for local services ' address_rewriting_rules: description: Rules for local address to external address rewriting type: array items: $ref: '#/definitions/RewritingRule' smtp_host: description: 'E-mail relay server hostname or address. It is possible to specify the port, for example `domain.com:587` ' type: string fallback_smtp_host: description: 'Fallback relay server hostname or address. It is possible to specify the port, for example `domain.com:587` ' type: string EndpointCustom: title: Custom Endpoint allOf: - $ref: '#/definitions/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: '#/definitions/EndpointRelationTrunk' - $ref: '#/definitions/EndpointRelationLine' - required: - interface EndpointCustomRelationBase: properties: id: type: integer description: Custom Endpoint ID readOnly: true interface: type: string description: Asterisk interface to use. (e.g. 'dahdi/i1') EndpointCustomItems: title: Custom Endpoints properties: items: items: $ref: '#/definitions/EndpointCustom' type: array total: type: integer EndpointIAX: title: IAX Endpoint allOf: - $ref: '#/definitions/EndpointIAXRelationBase' - properties: tenant_uuid: type: string description: The UUID of the tenant readOnly: true type: type: string enum: - friend - peer - user default: friend description: Type of IAX account host: type: string description: Hosts that are allowed to use this IAX account default: dynamic options: description: "Advanced configuration: options. Options are appended at the end of a IAX account in the file 'iax.conf'\ \ used by asterisk. Please consult the asterisk documentation for further details on available parameters. Because\ \ of database limitations, the following options can only be configured once:\n\n* accountcode\n* adsi\n* allow\n\ * amaflags\n* auth\n* callerid\n* category\n* cid_number\n* codecpriority\n* commented\n* context\n* dbsecret\n\ * defaultip\n* deny\n* encryption\n* forceencryption\n* forcejitterbuffer\n* fullname\n* immediate\n* inkeys\n\ * jitterbuffer\n* keyrotate\n* language\n* mailbox\n* mask\n* maxauthreq\n* mohinterpret\n* mohsuggest\n* outkey\n\ * parkinglot\n* peercontext\n* permit\n* port\n* protocol\n* qualify\n* qualifyfreqnoto\n* qualifyfreqok\n* qualifysmoothing\n\ * regexten\n* requirecalltoken\n* secret\n* sendani\n* setvar\n* sourceaddress\n* timezone\n* transfer\n* trunk\n\ * username\n\nAny other options may be repeated as many times as needed. Options must have the following form:\n\ ```\n{\n \"options\": [\n [\"name1\", \"value1\"],\n [\"name2\", \"value2\"]\n ]\n}\n```\n\nThe resulting\ \ configuration in iax.conf will have the following form:\n```\n[iaxusername]\ncontext=default\nsecret=iaxsecret\n\ name1=value1\nname2=value2\n```\n" type: array items: $ref: '#/definitions/KeyValueOption' default: [] - $ref: '#/definitions/EndpointRelationTrunk' - $ref: '#/definitions/EndpointRelationLine' EndpointIAXRelationBase: properties: id: type: integer description: IAX Endpoint ID readOnly: true name: type: string description: IAX name default: autogenerated EndpointIAXItems: title: IAX Endpoints properties: items: items: $ref: '#/definitions/EndpointIAX' type: array total: type: integer EndpointSccp: title: SCCP Endpoint allOf: - $ref: '#/definitions/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: '#/definitions/KeyValueOption' - $ref: '#/definitions/EndpointRelationTrunk' - $ref: '#/definitions/EndpointRelationLine' EndpointSccpRelationBase: properties: id: type: integer description: SCCP Endpoint ID readOnly: true EndpointSccpItems: title: SCCP Endpoints properties: items: items: $ref: '#/definitions/EndpointSccp' type: array total: type: integer 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: '#/definitions/SIPAuthSectionOptions' description: A list of PJSIP auth section options for this endpoint. Only `username` is supported SIPAORSectionOptions: title: PJSIP AOR Section Options $ref: '#/definitions/KeyValueOption' SIPAuthSectionOptions: title: PJSIP Auth Section Options $ref: '#/definitions/KeyValueOption' SIPEndpointSectionOptions: title: SIP Endpoint Section Options $ref: '#/definitions/KeyValueOption' SIPIdentifySectionOptions: title: PJSIP Identify Section Options $ref: '#/definitions/KeyValueOption' SIPRegistrationSectionOptions: title: PJSIP Registration Section Options $ref: '#/definitions/KeyValueOption' EndpointSIPRelation: properties: uuid: type: string description: The UUID of this resource required: - uuid EndpointSIPTemplatesRelation: properties: uuid: type: string description: The UUID of this resource label: type: string description: The label of this resource readOnly: true 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: '#/definitions/SIPAORSectionOptions' description: A list of PJSIP AOR section options for this endpoint auth_section_options: type: array items: $ref: '#/definitions/SIPAuthSectionOptions' description: A list of PJSIP auth section options for this endpoint endpoint_section_options: type: array items: $ref: '#/definitions/SIPEndpointSectionOptions' description: A list of PJSIP endpoint section options for this endpoint identify_section_options: type: array items: $ref: '#/definitions/SIPIdentifySectionOptions' description: A list of PJSIP identify section options for this endpoint registration_section_options: type: array items: $ref: '#/definitions/SIPRegistrationSectionOptions' description: A list of PJSIP registration section options for this endpoint registration_outbound_auth_section_options: type: array items: $ref: '#/definitions/SIPAuthSectionOptions' description: A list of PJSIP auth section options for this endpoint outbound_auth_section_options: type: array items: $ref: '#/definitions/SIPAuthSectionOptions' description: A list of PJSIP auth section options for this endpoint transport: description: The transport used by this endpoint $ref: '#/definitions/SIPTransportRelation' templates: type: array items: $ref: '#/definitions/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. EndpointSIPItems: title: SIP Endpoints properties: items: items: $ref: '#/definitions/EndpointSIP' type: array total: type: integer ExtensionItems: title: ExtensionItems properties: items: items: $ref: '#/definitions/Extension' type: array total: type: integer required: - total Extension: title: Extension allOf: - $ref: '#/definitions/ExtensionRelationBase' - properties: commented: type: boolean description: If True the extension is disabled. Deprecated, use enabled instead enabled: type: boolean description: If False the extension is disabled. tenant_uuid: type: string description: The UUID of the tenant readOnly: true - $ref: '#/definitions/ExtensionRelationConference' - $ref: '#/definitions/ExtensionRelationGroup' - $ref: '#/definitions/ExtensionRelationIncall' - $ref: '#/definitions/ExtensionRelationLines' - $ref: '#/definitions/ExtensionRelationOutcall' - $ref: '#/definitions/ExtensionRelationParkingLot' - $ref: '#/definitions/ExtensionRelationQueue' - required: - context - exten ExtensionRelationBase: properties: id: type: integer description: Extension ID readOnly: true context: type: string exten: type: string ExtensionRelationConference: properties: conference: readOnly: true $ref: '#/definitions/ConferenceRelationBase' ExtensionRelationGroup: properties: group: readOnly: true $ref: '#/definitions/GroupRelationBase' ExtensionRelationIncall: properties: incall: readOnly: true $ref: '#/definitions/IncallRelationBase' ExtensionRelationOutcall: properties: outcall: readOnly: true $ref: '#/definitions/OutcallRelationBase' ExtensionRelationParkingLot: properties: parking_lot: readOnly: true $ref: '#/definitions/ParkingLotRelationBase' ExtensionRelationLines: properties: lines: type: array readOnly: true items: $ref: '#/definitions/LineRelationBase' ExtensionRelationQueue: properties: queue: readOnly: true $ref: '#/definitions/QueueRelationBase' ExtensionFeatureItems: title: ExtensionFeatureItems properties: items: items: $ref: '#/definitions/ExtensionFeature' type: array total: type: integer required: - total ExtensionFeature: title: ExtensionFeature properties: uuid: type: string description: Extension UUID readOnly: true context: type: string readOnly: true exten: type: string feature: type: string readOnly: true description: The feature of the extension enabled: type: boolean description: If False the extension feature is disabled required: - exten ExternalApp: title: ExternalApp properties: tenant_uuid: type: string description: The UUID of the tenant readOnly: true 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 ExternalAppItems: title: ExternalAppItems properties: items: type: array items: $ref: '#/definitions/ExternalApp' total: type: integer required: - total FeaturesConfiguration: title: FeaturesConfiguration description: 'This configuration will be in the file ''features.conf'' used by asterisk. Please consult the asterisk documentation for further details on available parameters.' properties: options: description: "These options must be unique and unordered. Otherwise, use `ordered_options`. Option must have the following\ \ form:\n\n```\n{\n \"options\": {\n \"name1\": \"value1\",\n ...\n }\n}\n```\n\n" type: object 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 FuncKeyDestination: title: FuncKeyDestination properties: type: type: string parameters: items: $ref: '#/definitions/FuncKeyDestinationParameter' type: array FuncKeyDestinationParameter: title: FuncKeyDestinationParameter properties: name: type: string description: Parameter name collection: type: string description: URL towards a collection of entities representing possible values as a destination values: description: Array of values to choose from for this parameter items: type: string type: array FuncKeyDestinationItems: title: FuncKeyDestinationItems description: Description of func key destinations and their parameters items: $ref: '#/definitions/FuncKeyDestination' type: array 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 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 Group: title: Group allOf: - $ref: '#/definitions/GroupRelationBase' - properties: label: type: string description: human-readable identifier for the group ring_strategy: type: string default: all description: "The strategy to use when ringing group members.\n- `all`: ring all members concurrently, first to\ \ answer wins\n- `least_recent`: ring the member which has handled a call the least recently\n- `linear`: ring\ \ each member one after the other based on a the priority ordering of all members\n- `fewest_calls`: ring the\ \ member with the fewest completed calls\n- `memorized_round_robin`: ring members in a round-robin fashion, starting\ \ with the member following\n the one who answered last\n- `random`: ring a random member\n- `weight_random`:\ \ ring a random member, weighed by a per-member penalty factor\n" enum: - all - random - least_recent - linear - fewest_calls - memorized_round_robin - weight_random preprocess_subroutine: type: string timeout: type: integer description: 'Number of seconds the group will ring before falling back; if not set, the group will ring indefinitely. ' user_timeout: type: integer default: 15 description: Number of seconds each member of the group will ring retry_delay: type: integer default: 5 description: Number of seconds after each `user_timeout` before the member of the group will ring again ring_in_use: type: boolean default: true description: Notify the member even if it already in communication music_on_hold: type: string description: Name of the MOH category to use for music on hold 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 mark_answered_elsewhere: type: boolean default: false description: Mark all calls as "answered elsewhere" when cancelled dtmf_record_toggle: type: boolean default: false description: Enable/Disable DTMF recording for members of this group receiving a call from this group enabled: type: boolean default: true description: Enable/Disable the group max_calls: type: integer default: 0 description: Number of maximum calls waiting in the group. 0 means unlimited. tenant_uuid: type: string description: The UUID of the tenant readOnly: true ignore_forward: type: boolean default: false description: 'Ignore forwarding from member endpoints; this only affects forwarding configured directly on member endpoint devices; this _does not_ affect the forwardings configured through user profiles, nor the fallback redirections configured on the group itself. When set to `true`, redirections from member endpoints are ignored and skipped, and other members are rung according to the ring strategy; when `false`, redirections from members'' endpoints are followed, which effectively answers the call to the group. ' - $ref: '#/definitions/GroupRelationExtensions' - $ref: '#/definitions/GroupRelationFallbacks' - $ref: '#/definitions/GroupRelationIncalls' - $ref: '#/definitions/GroupRelationMembers' - $ref: '#/definitions/GroupRelationSchedules' - $ref: '#/definitions/GroupRelationCallPermissions' - required: - label 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 GroupRelationExtensions: description: extensions configured for this group properties: extensions: type: array readOnly: true items: $ref: '#/definitions/ExtensionRelationBase' GroupRelationFallbacks: description: fallback options for calls to the group properties: fallbacks: readOnly: true $ref: '#/definitions/GroupFallbacks' GroupRelationIncalls: description: incalls configured for this group properties: incalls: type: array readOnly: true items: $ref: '#/definitions/GroupRelationIncall' GroupRelationIncall: description: an incall configured with this group as destination allOf: - $ref: '#/definitions/IncallRelationBase' - $ref: '#/definitions/IncallRelationExtensions' GroupRelationMembers: description: members configured in this group properties: members: type: object readOnly: true properties: users: description: users configured as members of this group type: array items: $ref: '#/definitions/GroupRelationMemberUser' extensions: description: extensions configured as members of this group type: array items: $ref: '#/definitions/GroupRelationMemberExtension' GroupRelationMemberUser: description: a user configured as a member of this group allOf: - $ref: '#/definitions/UserRelationBase' - properties: priority: type: integer description: 'The priority of the user member in the group. Only used for linear ring strategy. ' GroupRelationMemberExtension: description: an extension configured as a member of this group properties: priority: type: integer description: 'The priority of the extension member in the group. Only used for linear ring strategy. ' exten: type: string description: The extension number of the member context: type: string description: The context of the member GroupRelationSchedules: properties: schedules: type: array readOnly: true items: $ref: '#/definitions/ScheduleRelationBase' GroupRelationCallPermissions: description: call permissions configured for this group properties: call_permissions: type: array readOnly: true items: $ref: '#/definitions/CallPermissionRelationBase' GroupItems: title: GroupItems properties: items: type: array items: $ref: '#/definitions/Group' total: type: integer required: - total GroupFallbacks: properties: noanswer_destination: description: The destination to redirect the caller to when there are no answers $ref: '#/definitions/DestinationType' congestion_destination: description: The destination to redirect the caller to when the group has exceeded max_calls $ref: '#/definitions/DestinationType' example: noanswer_destination: type: user user_id: 1 congestion_destination: type: user user_id: 2 GroupMemberUsers: properties: users: items: $ref: '#/definitions/GroupMemberUser' type: array required: - users GroupMemberUser: properties: uuid: type: string priority: type: integer description: priority of user in the group. Only used for linear ring strategy required: - uuid GroupMemberExtensions: properties: extensions: items: $ref: '#/definitions/GroupMemberExtension' type: array required: - extensions GroupMemberExtension: properties: exten: type: string context: type: string priority: type: integer description: priority of extension in the group. Only used for linear ring strategy HA: title: HA type: object properties: node_type: type: string description: The role of this server in a HA cluster. enum: - disabled - master - slave remote_address: type: string description: The remote IP address of the other machine in the HA cluster. Must be an IP address, a hostname is invalid. required: - node_type HEPConfiguration: title: HEPConfiguration description: 'This configuration will be in the file ''hep.conf'' used by asterisk. Please consult the asterisk documentation for further details on available parameters.' properties: options: description: "These options must be unique and unordered. Otherwise, use `ordered_options`. Option must have the following\ \ form:\n\n```\n{\n \"options\": {\n \"name1\": \"value1\",\n ...\n }\n}\n```\n\n" type: object example: options: enabled: 'yes' IAXCallNumberLimitss: title: IAXCallNumberLimitss properties: items: description: 'IAX callnumberlimits configuration. This configuration will be in the file ''iax.conf'' used by asterisk. Please consult the asterisk documentation for further details on available parameters.' type: array items: $ref: '#/definitions/IAXCallNumberLimits' IAXCallNumberLimits: title: IAXCallNumberLimits properties: ip_address: type: string description: IPv4 address of the destination netmask: type: string description: Netmask of the IP address (e.g. 255.255.255.255) limit: type: string description: Maximum call for the ip_address destination required: - ip_address - netmask - limit IAXGeneral: title: IAXGeneral description: 'IAX general configuration. This configuration will be in the file ''iax.conf'' used by asterisk. Please consult the asterisk documentation for further details on available parameters.' properties: options: description: "General IAX options. These options must be unique and unordered. Otherwise, use `ordered_options`. Option\ \ must have the following form:\n\n```\n{\n \"options\": {\n \"name1\": \"value1\",\n ...\n }\n}\n```\n\n" type: object ordered_options: description: "Any options may be repeated as many times and ordered as needed. Ordered options must have the following\ \ form:\n\n```\n{\n \"ordered_options\": [\n [\"name1\", \"value1\"],\n [\"name2\", \"value2\"]\n ]\n}\n\ ```\n\nThe resulting configuration in iax.conf will have the following form:\n\n```\n[general]\nname1=value1\nname2=value2\n\ ```\n" type: array items: $ref: '#/definitions/KeyValueOption' Incall: title: Incall allOf: - $ref: '#/definitions/IncallRelationBase' - properties: tenant_uuid: type: string description: The UUID of the tenant readOnly: true preprocess_subroutine: type: string description: Name of the subroutine to execute in asterisk before receiving a call description: type: string description: Additional information about the incoming 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 destination: description: The destination where the incoming call will be redirected $ref: '#/definitions/DestinationType' greeting_sound: type: string description: The name of the sound file to be played before redirecting the caller to the destination - $ref: '#/definitions/IncallRelationExtensions' - $ref: '#/definitions/IncallRelationSchedules' - required: - destination example: id: 1 preprocess_subroutine: subroutine description: My incall caller_id_mode: prepend caller_id_name: incall_ destination: type: user user_id: 2 ring_time: 10.5 IncallRelationBase: title: IncallRelation properties: id: type: integer readOnly: true description: The id of the incoming call IncallRelationExtensions: properties: extensions: type: array readOnly: true items: $ref: '#/definitions/ExtensionRelationBase' IncallRelationSchedules: properties: schedules: type: array readOnly: true items: $ref: '#/definitions/ScheduleRelationBase' IncallItems: title: IncallItems properties: items: type: array items: $ref: '#/definitions/Incall' total: type: integer required: - total Info: title: Info properties: uuid: type: string description: UUID of the Wazo server wazo_version: type: string description: Version of the Wazo server HTTPIngressItems: type: object properties: items: type: array items: $ref: '#/definitions/HTTPIngress' HTTPIngress: type: object allOf: - $ref: '#/definitions/HTTPIngressRequest' - properties: uuid: type: string readOnly: true HTTPIngressRequest: type: object properties: uri: type: string description: The public URI to contact this stack HTTP API required: - uri Ivr: title: IVR allOf: - properties: id: type: integer readOnly: true description: The id of the IVR tenant_uuid: type: string description: The UUID of the tenant readOnly: true name: type: string description: The name of the IVR description: type: string description: Additional information about the IVR greeting_sound: type: string description: The sound played to greet the caller menu_sound: type: string description: The sound played to prompt the caller for input invalid_sound: type: string description: The sound played when the caller choose an invalid option. Not used if an invalid destination is set abort_sound: type: string description: The sound played when the caller reach the maximum number of tries. Not used if an abort destination is set timeout: type: integer default: 5 description: Number of seconds to wait after the menu sound is played before either replaying the menu, redirecting the call to the timeout destination (if set) or aborting the call (if the maximum number of tries has been reached) max_tries: type: integer default: 3 description: The maximum number of tries before aborting the call. Both a timeout and an invalid choice counts toward the number of tries invalid_destination: description: The destination to redirect the caller to when he choose an invalid option. If not set, the menu will be replayed $ref: '#/definitions/DestinationType' timeout_destination: description: The destination to redirect the caller to on timeout. If not set, the menu will be replayed $ref: '#/definitions/DestinationType' abort_destination: description: The destination to redirect the caller to when the maximum number of tries is reached. If not set, the call will be hanged up after playing the abort sound (if set) $ref: '#/definitions/DestinationType' choices: type: array description: The menu's choices items: $ref: '#/definitions/IvrChoice' - $ref: '#/definitions/IvrRelationIncalls' - required: - name - menu_sound example: name: ivr1 description: My IVR greeting_sound: /var/lib/wazo/sounds/playback/ivr1-greeting menu_sound: /var/lib/wazo/sounds/playback/ivr1-menu abort_destination: type: group group_id: 1 choices: - exten: '1' destination: type: user user_id: 2 - exten: '0' destination: type: group group_id: 1 IvrRelationIncalls: properties: incalls: type: array readOnly: true items: $ref: '#/definitions/IvrRelationIncall' IvrRelationIncall: allOf: - $ref: '#/definitions/IncallRelationBase' - $ref: '#/definitions/IncallRelationExtensions' IvrChoice: title: IvrChoice properties: destination: description: The destination to redirect the caller to when this choice is selected $ref: '#/definitions/DestinationType' exten: type: string description: 'The extension the caller has to dial to select this choice. Can be an asterisk extension pattern, digits (0-9), * or #' pattern: ^_[*#0-9_XxZzNn\[\].!-]{1,39}$|[*#0-9]{1,40}$ required: - destination - exten IvrItems: title: IvrItems properties: items: type: array items: $ref: '#/definitions/Ivr' total: type: integer required: - total LineItems: title: LineItems properties: items: items: $ref: '#/definitions/LineView' type: array total: type: integer required: - total LineView: title: Line allOf: - $ref: '#/definitions/LineRelationBase' - properties: tenant_uuid: type: string description: The UUID of the tenant readOnly: true context: type: string description: The name of an internal context caller_id_name: type: string description: Name to display when calling caller_id_num: type: string description: Number to display when calling device_id: type: string description: ID of the device associated to the line readOnly: true device_slot: type: integer description: '*Deprecated* Please use `position`' readOnly: true protocol: type: string enum: - sip description: Line's protocol readOnly: true provisioning_extension: type: string description: '*Deprecated* Please use `provisioning_code`' readOnly: true provisioning_code: type: string description: Code used to provision a device position: type: integer description: Line's position on the device registrar: type: string description: Name of the template line used by the device is_webrtc: type: boolean description: Whether the line is a WebRTC line readOnly: true required: - context - $ref: '#/definitions/LineRelationApplication' - $ref: '#/definitions/LineRelationEndpoints' - $ref: '#/definitions/LineRelationExtensions' - $ref: '#/definitions/LineRelationUsers' LineRelationBase: properties: id: type: integer description: Line ID readOnly: true name: type: string description: The name of the line readOnly: true LineRelationApplication: properties: application: $ref: '#/definitions/ApplicationRelationBase' LineRelationEndpoints: properties: endpoint_sip: readOnly: true $ref: '#/definitions/EndpointSipRelationBase' endpoint_sccp: readOnly: true $ref: '#/definitions/EndpointSccpRelationBase' endpoint_custom: readOnly: true $ref: '#/definitions/EndpointCustomRelationBase' LineRelationExtensions: properties: extensions: type: array readOnly: true items: $ref: '#/definitions/ExtensionRelationBase' LineRelationUsers: properties: users: type: array readOnly: true items: $ref: '#/definitions/UserRelationBase' 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 LineEndpointSIP: title: LineEndpointSIP properties: endpoint_sip: $ref: '#/definitions/EndpointSIP' LineEndpointSCCP: title: LineEndpointSCCP properties: endpoint_sccp: $ref: '#/definitions/EndpointSccp' LineEndpointCustom: title: LineEndpointCustom properties: endpoint_custom: $ref: '#/definitions/EndpointCustom' LineExtensions: title: LineExtensions properties: extensions: type: array items: $ref: '#/definitions/ExtensionRelationBase' LineCreate: title: LineCreate allOf: - $ref: '#/definitions/Line' - $ref: '#/definitions/LineExtensions' - $ref: '#/definitions/LineEndpointSIP' - $ref: '#/definitions/LineEndpointSCCP' - $ref: '#/definitions/LineEndpointCustom' LineDevice: title: LineDevice properties: line_id: type: integer description: Line's ID readOnly: true device_id: type: string description: Device's ID readOnly: true LineDeviceItems: title: LineDeviceItems properties: items: items: $ref: '#/definitions/LineDevice' type: array total: type: integer required: - total Localization: title: Localization type: object properties: country: type: string description: The default country for users, in ISO-3166 alpha-2 format, e.g. "CA" for Canada. tenant_uuid: type: string description: UUID of the tenant MeetingItems: type: object properties: items: type: array items: $ref: '#/definitions/Meeting' 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. MeetingUserRequest: type: object properties: name: type: string persistent: type: boolean description: Persistent meetings will not get deleted automatically MeetingRequest: type: object allOf: - $ref: '#/definitions/MeetingUserRequest' - properties: owner_uuids: type: array items: type: string MeetingAuthorizationRequest: type: object properties: guest_name: type: string MeetingAuthorizationItems: type: object properties: items: type: array items: $ref: '#/definitions/MeetingAuthorization' total: type: integer 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 Moh: allOf: - properties: uuid: type: string readOnly: true description: The UUID of the MOH class tenant_uuid: type: string description: The UUID of the tenant readOnly: true name: type: string description: The name used by Asterisk readOnly: true label: type: string description: The label of the MOH class mode: type: string description: 'The play mode of the MOH class. Notice: `mp3` is deprecated and should not be used' default: files enum: - custom - files - mp3 application: type: string description: The command to run (only used when mode is "custom") sort: type: string description: The order in which files are played (only used when mode is "files") enum: - alphabetical - random - random_start files: type: array readOnly: true description: The audio files items: $ref: '#/definitions/MohFile' - required: - label - mode MohFile: properties: name: type: string description: The name of the file MohItems: properties: items: type: array items: $ref: '#/definitions/Moh' total: type: integer required: - total Outcall: title: Outcall allOf: - $ref: '#/definitions/OutcallRelationBase' - properties: description: type: string description: Additional information about the outgoing call enabled: type: boolean default: true internal_caller_id: type: boolean default: false description: Use the internal caller id preprocess_subroutine: type: string description: Name of the subroutine to execute in asterisk before receiving a call ring_time: type: integer description: Ringing time before hangup tenant_uuid: type: string description: The UUID of the tenant readOnly: true - $ref: '#/definitions/OutcallRelationTrunks' - $ref: '#/definitions/OutcallRelationExtensions' - $ref: '#/definitions/OutcallRelationSchedules' - $ref: '#/definitions/OutcallRelationCallPermissions' - required: - name OutcallRelationBase: properties: id: type: integer readOnly: true description: The id of the outgoing call name: type: string description: The name of the outcall OutcallRelationTrunks: properties: trunks: type: array readOnly: true items: $ref: '#/definitions/OutcallRelationTrunk' OutcallRelationTrunk: allOf: - $ref: '#/definitions/TrunkRelationBase' - $ref: '#/definitions/TrunkRelationEndpoints' OutcallRelationExtensions: properties: extensions: type: array readOnly: true items: $ref: '#/definitions/OutcallRelationExtension' OutcallRelationExtension: allOf: - $ref: '#/definitions/ExtensionRelationBase' - properties: caller_id: type: string external_prefix: type: string description: The prefix added to the outgoing call when sent on the trunk prefix: type: string description: The prefix that the user need to dial before the extension strip_digits: type: integer description: The number of leading digits to strip OutcallRelationSchedules: properties: schedules: type: array readOnly: true items: $ref: '#/definitions/OutcallRelationSchedule' OutcallRelationSchedule: allOf: - $ref: '#/definitions/ScheduleRelationBase' OutcallRelationCallPermissions: properties: call_permissions: type: array readOnly: true items: $ref: '#/definitions/CallPermissionRelationBase' OutcallItems: title: OutcallItems properties: items: type: array items: $ref: '#/definitions/Outcall' total: type: integer required: - total OutcallExtension: title: OutcallExtension properties: external_prefix: type: string description: The prefix added to the outgoing call when sent on the trunk prefix: type: string description: The prefix that the user need to dial before the pattern strip_digits: type: integer description: The number of leading digits to strip caller_id: type: string TrunksId: title: TrunksId properties: trunks: items: $ref: '#/definitions/TrunkId' type: array TrunkId: title: TrunkId properties: id: type: integer Paging: title: Paging allOf: - properties: id: type: integer readOnly: true tenant_uuid: type: string description: The UUID of the tenant readOnly: true name: type: string description: The name to identify the paging number: type: string description: The number of the paging announce_caller: type: boolean description: Play the announce sound to the caller default: true announce_sound: type: string description: The sound played to everyone caller_notification: type: boolean description: Play a notification to caller default: true duplex: type: boolean description: Duplex audio default: false record: type: boolean description: Record the paging default: false ignore_forward: type: boolean description: Ignore attemps to forward the call default: false enabled: type: boolean default: true required: - number - $ref: '#/definitions/PagingRelationCallers' - $ref: '#/definitions/PagingRelationMembers' PagingItems: title: PagingItems properties: items: type: array items: $ref: '#/definitions/Paging' total: type: integer required: - total PagingRelationCallers: properties: callers: readOnly: true $ref: '#/definitions/PagingRelationMemberUsers' PagingRelationMembers: properties: members: readOnly: true $ref: '#/definitions/PagingRelationMemberUsers' PagingRelationMemberUsers: properties: users: type: array readOnly: true items: $ref: '#/definitions/UserRelationBase' ParkingLot: allOf: - $ref: '#/definitions/ParkingLotRelationBase' - properties: tenant_uuid: type: string description: The UUID of the tenant readOnly: true slots_start: type: string description: Starting extension to park calls slots_end: type: string description: Ending extension to park calls timeout: type: integer description: Maximum time on parking default: 45 music_on_hold: type: string description: Name of the MOH category to use for music on hold default: default - $ref: '#/definitions/GroupRelationExtensions' - required: - slots_start - slots_end ParkingLotRelationBase: properties: id: type: integer readOnly: true name: type: string description: name to identify the parking lot ParkingLotRelationExtensions: properties: extensions: type: array readOnly: true items: $ref: '#/definitions/ExtensionRelationBase' ParkingLotItems: properties: items: type: array items: $ref: '#/definitions/ParkingLot' total: type: integer required: - total PhoneNumber: type: object description: a phone number resource, usable for outgoing caller id or incall routing properties: uuid: type: string description: Number UUID readOnly: true number: type: string description: The phone number text (in e.164 representation if possible) caller_id_name: type: string description: The Caller ID name that should be used when calling with this number as a Caller ID tenant_uuid: type: string description: uuid of tenant readOnly: true shared: type: boolean description: Whether or not this number is meant to be shared by multiple people main: type: boolean description: "Whether or not this is the main / default phone number for this tenant. \nOnly one number can be the\ \ main number for a given tenant.\n" default: false readOnly: true required: - number - shared PhoneNumberRange: type: object description: a request to register a range of phone number resources properties: start_number: type: string description: 'the first phone number part of a contiguous range of numbers to be registered in the `/phone-numbers` resource; a e.164 phone number, otherwise a phone number string part of a numbering plan dialable on the trunk network ' end_number: type: string description: 'The last phone number part of the contiguous range to be registered in the `/phone-numbers` resource; a e.164 phone number, otherwise a phone number string part of a numbering plan dialable on the trunk network ' required: - start_number - end_number PhoneNumberItems: type: object properties: items: type: array items: $ref: '#/definitions/PhoneNumber' PhoneNumberRangeResponse: type: object properties: created: type: array items: type: object properties: uuid: type: string description: Phone Number UUID readOnly: true links: type: array description: 'links to related resources include URLs of any registered phone number that are part of this range ' items: $ref: '#/definitions/Link' PJSIPConfigurationOption: properties: name: type: string description: The name of the option synopsis: type: string description: A brief description of the option description: type: string description: A long description of the option default: type: string description: The default value for this option PJSIPConfigurationOptions: properties: aor: description: A list of all configuration options for this section items: $ref: '#/definitions/PJSIPConfigurationOption' type: array auth: description: A list of all configuration options for this section items: $ref: '#/definitions/PJSIPConfigurationOption' type: array contact: description: A list of all configuration options for this section items: $ref: '#/definitions/PJSIPConfigurationOption' type: array domain_alias: description: A list of all configuration options for this section items: $ref: '#/definitions/PJSIPConfigurationOption' type: array endpoint: description: A list of all configuration options for this section items: $ref: '#/definitions/PJSIPConfigurationOption' type: array global: description: A list of all configuration options for this section items: $ref: '#/definitions/PJSIPConfigurationOption' type: array registration: description: A list of all configuration options for this section items: $ref: '#/definitions/PJSIPConfigurationOption' type: array system: description: A list of all configuration options for this section items: $ref: '#/definitions/PJSIPConfigurationOption' type: array transport: description: A list of all configuration options for this section items: $ref: '#/definitions/PJSIPConfigurationOption' type: array PJSIPGlobal: description: 'PJSIP global configuration. This configuration will be in the file ''''pjsip.conf'''' used by asterisk. ' properties: options: type: object example: options: max_forwards: '5' keep_alive_interval: '30' user_agent: Wazo debug: false PJSIPSystem: description: 'PJSIP system configuration. This configuration will be in the file ''''pjsip.conf'''' used by asterisk. ' properties: options: type: object example: options: accept_multiple_sdp_answers: 'yes' compact_headers: 'yes' disable_tcp_switch: 'yes' follow_early_media_fork: 'no' SIPTransportRelation: properties: uuid: type: string required: - uuid SIPTransport: properties: uuid: type: string readOnly: true name: type: string options: type: array items: $ref: '#/definitions/KeyValueOption' required: - name - options example: name: transport-udp options: - - protocol - udp - - bind - 0.0.0.0:5060 SIPTransportItems: properties: items: type: array items: $ref: '#/definitions/SIPTransport' total: type: integer ProvisioningNetworking: title: Provisioning Networking type: object properties: provision_host: type: string description: The hostname or IP address used for HTTP and TFTP provisioning requests for DHCP integration. provision_http_port: type: integer description: The port used by the HTTP provisioning server. provision_http_base_url: type: string description: The base URL on which the provisioning server will be accessible from outside the network. Queue: title: Queue allOf: - $ref: '#/definitions/QueueRelationBase' - properties: data_quality: type: boolean default: false description: 'Asterisk definition: data-quality (modem) call (minimum delay)' dtmf_hangup_callee_enabled: type: boolean default: false description: Enable DTMF hangup by callee dtmf_hangup_caller_enabled: type: boolean default: false description: Enable DTMF hangup by caller dtmf_transfer_callee_enabled: type: boolean default: false description: Enable DTMF transfers by callee dtmf_transfer_caller_enabled: type: boolean default: false description: Enable DTMF transfers by caller dtmf_record_callee_enabled: type: boolean default: false description: Enable DTMF records by callee dtmf_record_caller_enabled: type: boolean default: false description: Enable DTMF records by caller dtmf_record_toggle: type: boolean default: false description: Enable/Disable DTMF recording for members of this queue receiving a call from this queue retry_on_timeout: type: boolean default: true description: Retry when time has elapsed ring_on_hold: type: boolean default: false description: Ring instead of On-Hold Music timeout: type: integer description: Number of seconds the queue will ring before falling back announce_hold_time_on_entry: type: boolean default: false description: Announce hold time on entry ignore_forward: type: boolean default: false description: Ignore call forward requests from members preprocess_subroutine: type: string music_on_hold: type: string description: Name of the MOH category to use for music on hold wait_time_threshold: type: integer description: Wait time threshold before fallback on 'wait_time_destination'. Set to 'null' to disable it. wait_time_destination: $ref: '#/definitions/DestinationType' description: Go to that destination when 'wait_time_threshold' is reached wait_ratio_threshold: type: integer description: Wait ratio (waiting calls per logged-in agent) threshold before fallback on 'wait_ratio_destination'. Set to 'null' to disable it. wait_ratio_destination: $ref: '#/definitions/DestinationType' description: Go to that destination when 'wait_ratio_threshold' is reached 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 mark_answered_elsewhere: type: boolean default: true description: Mark all calls as "answered elsewhere" when cancelled enabled: type: boolean default: true description: Enable/Disable the queue options: description: "Advanced configuration options. Options are appended at the end of\na queue account in the file 'queues.conf'\ \ used by asterisk. Please\nconsult the asterisk documentation for further details on available\nparameters. Because\ \ of database limitations, only the following\noptions can be configured:\n\n* announce\n* context\n* timeout\n\ * monitor-type\n* monitor-format\n* queue-youarenext\n* queue-thereare\n* queue-callswaiting\n* queue-holdtime\n\ * queue-minutes\n* queue-seconds\n* queue-thankyou\n* queue-reporthold\n* periodic-announce\n* announce-frequency\n\ * periodic-announce-frequency\n* announce-round-seconds\n* announce-holdtime\n* retry\n* wrapuptime\n* maxlen\n\ * servicelevel\n* strategy\n* joinempty\n* leavewhenempty\n* ringinuse\n* reportholdtime\n* memberdelay\n* weight\n\ * timeoutrestart\n* timeoutpriority\n* autofill\n* autopause\n* setinterfacevar\n* setqueueentryvar\n* setqueuevar\n\ * membermacro\n* min-announce-frequency\n* random-periodic-announce\n* announce-position\n* announce-position-limit\n\ * defaultrule\n\nOptions must have the following form:\n```\n{\n \"options\": [\n [\"name1\", \"value1\"\ ],\n [\"name2\", \"value2\"]\n ]\n}\n```\n\nThe resulting configuration in queues.conf will have the following\ \ form:\n```\n[queuename]\nname1=value1\nname2=value2\n```\n" type: array items: $ref: '#/definitions/KeyValueOption' default: [] tenant_uuid: type: string description: The UUID of the tenant readOnly: true - $ref: '#/definitions/QueueRelationSchedules' - $ref: '#/definitions/QueueRelationMembers' - required: - name 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 QueueRelationSchedules: properties: schedules: type: array readOnly: true items: $ref: '#/definitions/ScheduleRelationBase' QueueRelationMembers: properties: members: readOnly: true $ref: '#/definitions/QueueRelationMemberAgents' QueueRelationMemberAgents: properties: agents: type: array readOnly: true items: $ref: '#/definitions/QueueRelationMemberAgent' users: type: array readOnly: true items: $ref: '#/definitions/QueueRelationMemberUser' QueueRelationMemberAgent: allOf: - $ref: '#/definitions/AgentRelationBase' - $ref: '#/definitions/QueueMemberAgentRelationBase' QueueRelationMemberUser: allOf: - $ref: '#/definitions/UserRelationBase' - $ref: '#/definitions/QueueMemberUserRelationBase' QueueItems: title: QueueItems properties: items: type: array items: $ref: '#/definitions/Queue' total: type: integer required: - total QueueFallbacks: properties: noanswer_destination: description: The destination to redirect the caller to when there are no answer $ref: '#/definitions/DestinationType' busy_destination: description: The destination to redirect the caller to when there are busy $ref: '#/definitions/DestinationType' congestion_destination: description: The destination to redirect the caller to when there are congestion $ref: '#/definitions/DestinationType' fail_destination: description: The destination to redirect the caller to when the call fail $ref: '#/definitions/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 QueueGeneral: title: QueueGeneral description: 'Queue general configuration. This configuration will be in the file ''queue.conf'' used by asterisk. Please consult the asterisk documentation for further details on available parameters.' properties: options: description: "General Queue options. These options must be unique and unordered. Option must have the following form:\n\ \n```\n{\n \"options\": {\n \"name1\": \"value1\",\n ...\n }\n}\n```\n\n" type: object QueueMemberAgent: title: QueueMemberAgent description: An association between an agent and a queue. Agents associated to a Queue will receive calls when they are logged in. allOf: - $ref: '#/definitions/QueueMemberAgentRelationBase' QueueMemberUser: title: QueueMemberUser description: An association between a user and a queue. allOf: - $ref: '#/definitions/QueueMemberUserRelationBase' QueueMemberAgentRelationBase: properties: penalty: type: integer description: Agent's penalty. A priority used for distributing calls. priority: type: integer description: Priority of agent in the queue. Only used for linear ring strategy QueueMemberUserRelationBase: properties: priority: type: integer minimum: 0 description: Priority of user in the queue. Only used for linear ring strategy RecordingsAnnouncements: title: Recordings announcements type: object properties: recording_start: type: string description: The filename for the recording start announcement recording_stop: type: string description: The filename for the recording stop announcement RegisterIAX: title: Register IAX allOf: - $ref: '#/definitions/RegisterIAXRelationBase' - properties: auth_username: type: string description: The username used by the remote_host for the authentication auth_password: type: string description: The password to authenticate to the remote_host remote_host: type: string description: The register domain remote_port: type: integer description: The port of the remote_host callback_extension: type: string description: The callback extension to use for the register callback_context: type: string description: The callback context to use for the register required: - remote_host RegisterIAXRelationBase: properties: id: type: integer readOnly: true description: The id of the register IAX RegisterIAXItems: title: RegisterItems properties: items: type: array items: $ref: '#/definitions/RegisterIAX' total: type: integer Registrar: title: Registrar properties: id: type: string description: Registrar identifier deletable: type: boolean description: Define if the registrar can be deleted name: type: string description: Display name of the registrar main_host: type: string description: Registrar host main_port: type: integer description: Registrar port backup_host: type: string description: Backup registrar host backup_port: type: integer description: Backup registrar port proxy_main_host: type: string description: 'Proxy host. Using IPv4 is recommended to have a better integration with some provisioning plugins. (ex: Yealink DND integration)' proxy_main_port: type: integer description: Proxy port proxy_backup_host: type: string description: Backup proxy host proxy_backup_port: type: integer description: Backup proxy port outbound_proxy_host: type: string description: Outbound proxy host outbound_proxy_port: type: integer description: Outbound proxy port required: - main_host - proxy_main_host RegistrarItems: title: RegistrarItems properties: items: items: $ref: '#/definitions/Registrar' type: array total: type: integer RTPConfiguration: title: RTPConfiguration description: 'This configuration will be in the file ''rtp.conf'' used by asterisk. Please consult the asterisk documentation for further details on available parameters.' properties: options: description: "These options must be unique and unordered. Otherwise, use `ordered_options`. Option must have the following\ \ form:\n\n```\n{\n \"options\": {\n \"name1\": \"value1\",\n ...\n }\n}\n```\n\n" type: object SCCPGeneral: title: SCCPGeneral description: SCCP general configuration. This configuration will be in the file 'sccp.conf' used by asterisk. properties: options: description: "General SCCP options. These options must be unique and unordered. Option must have the following form:\n\ \n```\n{\n \"options\": {\n \"name1\": \"value1\",\n ...\n }\n}\n```\n\n" type: object Schedule: title: Schedule allOf: - $ref: '#/definitions/ScheduleRelationBase' - properties: timezone: type: string description: The number of the schedule closed_destination: description: The destination to redirect the caller to when the schedule is not opened $ref: '#/definitions/DestinationType' open_periods: type: array items: $ref: '#/definitions/ScheduleOpenPeriod' exceptional_periods: type: array items: $ref: '#/definitions/ScheduleExceptionalPeriod' enabled: type: boolean default: true required: - closed_destination - $ref: '#/definitions/ScheduleRelationIncalls' - $ref: '#/definitions/ScheduleRelationGroups' - $ref: '#/definitions/ScheduleRelationQueues' - $ref: '#/definitions/ScheduleRelationUsers' - $ref: '#/definitions/ScheduleRelationOutcalls' ScheduleRelationBase: properties: id: type: integer readOnly: true tenant_uuid: type: string description: The UUID of the tenant readOnly: true name: type: string description: The name to identify the schedule ScheduleOpenPeriod: properties: hours_start: type: string description: The start hour of the period. Format hours_end: type: string description: The end hour of the period. Format week_days: description: The week days of the period. Week day start with Monday(1) and end with Sunday(7) type: array items: type: integer month_days: description: The month days of the period. type: array items: type: integer months: description: The months of the period. Month start with January(1) and end with December(12) type: array items: type: integer ScheduleExceptionalPeriod: allOf: - $ref: '#/definitions/ScheduleOpenPeriod' - properties: destination: description: The destination to redirect the caller to when the given period is satisfied $ref: '#/definitions/DestinationType' ScheduleRelationIncalls: properties: incalls: type: array readOnly: true items: $ref: '#/definitions/IncallRelationBase' ScheduleRelationOutcalls: properties: incalls: type: array readOnly: true items: $ref: '#/definitions/OutcallRelationBase' ScheduleRelationGroups: properties: incalls: type: array readOnly: true items: $ref: '#/definitions/GroupRelationBase' ScheduleRelationUsers: properties: incalls: type: array readOnly: true items: $ref: '#/definitions/UserRelationBase' ScheduleRelationQueues: properties: incalls: type: array readOnly: true items: $ref: '#/definitions/QueueRelationBase' ScheduleItems: title: ScheduleItems properties: items: type: array items: $ref: '#/definitions/Schedule' total: type: integer required: - total Skill: title: Skill allOf: - $ref: '#/definitions/SkillRelationBase' - properties: description: type: string - $ref: '#/definitions/SkillRelationAgents' - required: - name SkillRelationBase: properties: id: type: integer readOnly: true tenant_uuid: type: string description: The UUID of the tenant readOnly: true name: type: string description: The name to identify the skill SkillRelationAgents: properties: agents: type: array readOnly: true items: $ref: '#/definitions/SkillRelationAgent' SkillRelationAgent: allOf: - $ref: '#/definitions/AgentRelationBase' - $ref: '#/definitions/AgentSkillRelationBase' SkillItems: title: SkillItems properties: items: type: array items: $ref: '#/definitions/Skill' total: type: integer required: - total SkillRule: title: SkillRule properties: id: type: integer readOnly: true tenant_uuid: type: string description: The UUID of the tenant readOnly: true name: type: string description: The name to identify the skill rule rules: type: array items: $ref: '#/definitions/SkillRuleRule' required: - name SkillRuleRule: title: SkillRuleRule properties: definition: type: string description: The rule definition SkillRuleItems: title: SkillRuleItems properties: items: type: array items: $ref: '#/definitions/SkillRule' total: type: integer required: - total Sound: properties: tenant_uuid: type: string description: The UUID of the tenant of the category name: type: string description: The name of the category (can only by set on create and must be unique) files: type: array readOnly: true description: The audio files items: $ref: '#/definitions/SoundFile' required: - name SoundFile: properties: tenant_uuid: type: string description: The UUID of the tenant of the file name: type: string description: The name of the file formats: type: array readOnly: true description: The audio file formats items: $ref: '#/definitions/SoundFormat' SoundFormat: properties: tenant_uuid: type: string description: The UUID of the tenant of the file format: type: string language: type: string text: type: string path: type: string SoundItems: properties: items: type: array items: $ref: '#/definitions/Sound' total: type: integer required: - total SoundLanguage: title: SoundLanguage properties: tag: type: string SoundLanguageItems: title: SoundLanguageItems properties: items: type: array items: $ref: '#/definitions/SoundLanguage' total: type: integer StatusSummary: type: object properties: bus_consumer: $ref: '#/definitions/ComponentWithStatus' master_tenant: $ref: '#/definitions/ComponentWithStatus' rest_api: $ref: '#/definitions/ComponentWithStatus' service_token: $ref: '#/definitions/ComponentWithStatus' ComponentWithStatus: type: object properties: status: $ref: '#/definitions/StatusValue' StatusValue: type: string enum: - fail - ok Switchboard: type: object allOf: - properties: uuid: type: string readOnly: true tenant_uuid: type: string description: The UUID of the tenant readOnly: true name: type: string timeout: type: integer description: Maximum time allowed for a call to be queued. When the timeout expires, the call is redirected to the no-answer fallback. queue_music_on_hold: type: string waiting_room_music_on_hold: type: string - $ref: '#/definitions/SwitchboardRelationIncalls' - $ref: '#/definitions/SwitchboardRelationMembers' - $ref: '#/definitions/SwitchboardRelationFallbacks' SwitchboardRelationBase: properties: uuid: type: string description: Switchboard UUID readOnly: true name: type: string description: Switchboard name SwitchboardRelationFallbacks: properties: fallbacks: readOnly: true $ref: '#/definitions/SwitchboardFallbacks' SwitchboardRelationIncalls: properties: incalls: type: array readOnly: true items: $ref: '#/definitions/SwitchboardRelationIncall' SwitchboardRelationIncall: allOf: - $ref: '#/definitions/IncallRelationBase' - $ref: '#/definitions/IncallRelationExtensions' SwitchboardRelationMembers: properties: members: readOnly: true $ref: '#/definitions/SwitchboardRelationMemberUsers' SwitchboardRelationMemberUsers: properties: users: type: array readOnly: true items: $ref: '#/definitions/UserRelationBase' SwitchboardFallbacks: properties: noanswer_destination: description: If a call has not been answered before the switchboard `timeout`, the call will be redirected to this destination. $ref: '#/definitions/DestinationType' example: noanswer_destination: type: user user_id: 1 Tenant: properties: uuid: type: string readOnly: true description: The UUID of the Tenant sip_templates_generated: type: boolean readOnly: true description: Wether or not the SIP templates have been generated global_sip_template_uuid: type: string readOnly: true webrtc_sip_template_uuid: type: string readOnly: true registration_trunk_sip_template_uuid: type: string readOnly: true TenantItems: title: TenantItems properties: items: type: array items: $ref: '#/definitions/Tenant' total: type: integer Timezone: title: Timezone properties: zone_name: type: string TimezoneItems: title: TimezoneItems properties: items: type: array items: $ref: '#/definitions/Timezone' total: type: integer Trunk: title: Trunk allOf: - $ref: '#/definitions/TrunkRelationBase' - properties: context: type: string description: The context of the trunk twilio_incoming: type: boolean description: Use this trunk's settings to handle incoming calls from Twilio outgoing_caller_id_format: type: string default: +E164 enum: - +E164 - E164 - national description: "The format to use for the caller ID of outgoing calls through this trunk, \nwhen the caller id is\ \ provided by an application through the `X-Wazo-Selected-Caller-ID` SIP header on an `INVITE`. \nIf the caller\ \ ID supplied by an application cannot be formatted, the requested caller ID will be ignored.\n" - $ref: '#/definitions/TrunkRelationEndpoints' - $ref: '#/definitions/TrunkRelationOutcalls' 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 TrunkRelationEndpoints: properties: endpoint_sip: readOnly: true $ref: '#/definitions/EndpointSipRelationBase' endpoint_iax: readOnly: true $ref: '#/definitions/EndpointIAXRelationBase' endpoint_custom: readOnly: true $ref: '#/definitions/EndpointCustomRelationBase' TrunkRelationOutcalls: properties: outcalls: type: array readOnly: true items: $ref: '#/definitions/OutcallRelationBase' TrunkItems: title: TrunkItems properties: items: type: array items: $ref: '#/definitions/Trunk' total: type: integer UserCreate: title: User Create allOf: - $ref: '#/definitions/BaseUser' - $ref: '#/definitions/UserRelationVoicemailCreate' - $ref: '#/definitions/UserRelationAgent' - $ref: '#/definitions/UserRelationFallbacks' - $ref: '#/definitions/UserRelationForwards' - $ref: '#/definitions/UserRelationGroups' - $ref: '#/definitions/UserRelationIncalls' - $ref: '#/definitions/UserRelationLines' - $ref: '#/definitions/UserRelationServices' - $ref: '#/definitions/UserRelationSwitchboards' - $ref: '#/definitions/UserRelationQueues' - $ref: '#/definitions/UserRelationCallPickupTargets' UserRelationVoicemailCreate: properties: voicemail: allOf: - $ref: '#/definitions/BaseVoicemail' - properties: id: type: integer description: The voicemail is associated if the ID is specified BaseUser: title: User allOf: - $ref: '#/definitions/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 User: title: User allOf: - $ref: '#/definitions/BaseUser' - $ref: '#/definitions/UserRelationAgent' - $ref: '#/definitions/UserRelationFallbacks' - $ref: '#/definitions/UserRelationForwards' - $ref: '#/definitions/UserRelationGroups' - $ref: '#/definitions/UserRelationIncalls' - $ref: '#/definitions/UserRelationLines' - $ref: '#/definitions/UserRelationServices' - $ref: '#/definitions/UserRelationSwitchboards' - $ref: '#/definitions/UserRelationVoicemail' - $ref: '#/definitions/UserRelationQueues' - $ref: '#/definitions/UserRelationCallPickupTargets' - required: - firstname 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 UserRelationGroups: properties: groups: type: array readOnly: true items: $ref: '#/definitions/GroupRelationBase' UserRelationIncalls: properties: incalls: type: array readOnly: true items: $ref: '#/definitions/UserRelationIncall' UserRelationIncall: allOf: - $ref: '#/definitions/IncallRelationBase' - $ref: '#/definitions/IncallRelationExtensions' UserRelationLines: properties: lines: type: array readOnly: true items: $ref: '#/definitions/UserRelationLine' UserRelationLine: allOf: - $ref: '#/definitions/LineRelationBase' - $ref: '#/definitions/LineRelationEndpoints' - $ref: '#/definitions/LineRelationExtensions' UserRelationFallbacks: properties: fallbacks: readOnly: true $ref: '#/definitions/UserFallbacks' UserRelationForwards: properties: forwards: readOnly: true $ref: '#/definitions/UserForwards' UserRelationServices: properties: services: readOnly: true $ref: '#/definitions/UserServices' UserRelationSwitchboards: properties: switchboards: type: array readOnly: true items: $ref: '#/definitions/SwitchboardRelationBase' UserRelationVoicemail: properties: voicemail: readOnly: true $ref: '#/definitions/VoicemailRelationBase' UserRelationQueues: properties: queues: type: array readOnly: true items: $ref: '#/definitions/QueueRelationBase' UserRelationAgent: properties: agent: readOnly: true $ref: '#/definitions/AgentRelationBase' UserRelationCallPickupTargets: title: UserRelationCallPickupTargets properties: call_pickup_target_users: type: array items: $ref: '#/definitions/UserRelationBase' UserService: title: UserService properties: enabled: type: boolean required: - enabled UserServices: title: UserServices properties: dnd: $ref: '#/definitions/UserService' incallfilter: $ref: '#/definitions/UserService' UserForward: title: UserForward properties: enabled: type: boolean destination: type: string UserForwards: title: UserForwards properties: busy: $ref: '#/definitions/UserForward' noanswer: $ref: '#/definitions/UserForward' unconditional: $ref: '#/definitions/UserForward' UserItems: title: UserItems properties: items: type: array items: $ref: '#/definitions/User' total: type: integer required: - total 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: '#/definitions/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: '#/definitions/Voicemail' 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: '#/definitions/UserForwards' description: The forwards related to the user fallbacks: $ref: '#/definitions/UserFallbacks' description: The fallbacks related to the user agent: description: The agent related to the user $ref: '#/definitions/UserRelationAgent' allOf: - $ref: '#/definitions/UserPostRelationIncalls' UserPostResponse: title: UserCreateResponse allOf: - $ref: '#/definitions/UserPost' - $ref: '#/definitions/AuthUserPost' - $ref: '#/definitions/UserPostRelationIncalls' 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 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 UserPostRelationLine: properties: device_id: type: string description: ID of the device associated to the line allOf: - $ref: '#/definitions/Line' - $ref: '#/definitions/LineExtensions' - $ref: '#/definitions/LineEndpointSIP' - $ref: '#/definitions/LineEndpointSCCP' - $ref: '#/definitions/LineEndpointCustom' UserBlocklistNumber: type: object description: a blocklisted number properties: uuid: type: string description: Blocklisted Number UUID readOnly: true number: type: string description: The phone number (in E.164 representation if possible) label: type: string description: The label of the blocklisted number required: - number UserBlocklistNumbersListResponse: type: object properties: items: type: array items: $ref: '#/definitions/UserBlocklistNumber' total: type: integer description: Total number of blocklisted numbers in the user's blocklist BlocklistNumber: allOf: - $ref: '#/definitions/UserBlocklistNumber' - type: object description: a blocklisted number properties: user_uuid: type: string format: uuid description: UUID of the user to whom the blocklisted number belongs readOnly: true user_firstname: type: string description: First name of the user to whom the blocklisted number belongs readOnly: true user_lastname: type: string description: Last name of the user to whom the blocklisted number belongs readOnly: true tenant_uuid: type: string format: uuid description: UUID of the tenant to which the blocklisted number belongs readOnly: true BlocklistNumbersListResponse: allOf: - $ref: '#/definitions/BlocklistNumbersListResponse' - type: object properties: items: type: array items: $ref: '#/definitions/BlocklistNumber' UserCallPermission: title: UserCallPermission properties: user_id: type: integer description: User's ID call_permission_id: type: integer description: Call Permission's ID required: - user_id - call_permission_id UserCallPermissionItems: title: UserCallPermissionItems properties: items: items: $ref: '#/definitions/UserCallPermission' type: array total: type: integer 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 UserCallerIDItems: title: UserCallerIDItems properties: items: type: array items: $ref: '#/definitions/UserCallerID' total: type: integer required: - total 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 UserExternalAppItems: title: UserExternalAppItems properties: items: type: array items: $ref: '#/definitions/UserExternalApp' total: type: integer required: - total UserFallbacks: properties: noanswer_destination: description: The destination to redirect the caller to when there are no answer $ref: '#/definitions/DestinationType' busy_destination: description: The destination to redirect the caller to when there are busy $ref: '#/definitions/DestinationType' congestion_destination: description: The destination to redirect the caller to when there are congestion $ref: '#/definitions/DestinationType' fail_destination: description: The destination to redirect the caller to when the call fail $ref: '#/definitions/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 UserGroupID: properties: id: type: integer uuid: type: string UserGroupsID: properties: groups: items: $ref: '#/definitions/UserGroupID' type: array UserExport: title: UserExport type: string 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 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 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 LineID: properties: id: type: integer LinesID: properties: lines: items: $ref: '#/definitions/LineID' type: array UserSubscription: title: UserSubscription properties: id: type: integer count: type: integer description: Total of assigned subscription UserSubscriptionItems: title: UserSubscriptionItems properties: items: type: array items: $ref: '#/definitions/UserSubscription' total: type: integer required: - total 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: '#/definitions/KeyValueOption' required: - name - number - context Voicemail: allOf: - $ref: '#/definitions/BaseVoicemail' - $ref: '#/definitions/VoicemailRelationBase' - $ref: '#/definitions/VoicemailRelationUsers' VoicemailRelationBase: properties: id: type: integer description: Voicemail ID readOnly: true name: type: string description: Voicemail name VoicemailRelationUsers: properties: users: type: array readOnly: true items: $ref: '#/definitions/UserRelationBase' VoicemailItems: title: VoicemailItems properties: items: items: $ref: '#/definitions/Voicemail' type: array total: type: integer VoicemailGeneral: title: VoicemailGeneral description: 'Voicemail general configuration. This configuration will be in the file ''voicemail.conf'' used by asterisk. Please consult the asterisk documentation for further details on available parameters.' properties: options: description: "General Voicemail options. These options must be unique and unordered. Option must have the following\ \ form:\n\n```\n{\n \"options\": {\n \"name1\": \"value1\",\n ...\n }\n}\n```\n\n" type: object VoicemailTranscriptionConfig: type: object properties: enabled: type: boolean description: Enable or disable automatic transcription of voicemails for this tenant. default: false example: true required: - enabled VoicemailZoneMessages: title: VoicemailZoneMessages properties: items: description: 'Voicemail zonemessages configuration. This configuration will be in the file ''voicemail.conf'' used by asterisk. Please consult the asterisk documentation for further details on available parameters.' type: array items: $ref: '#/definitions/VoicemailZoneMessage' VoicemailZoneMessage: title: VoicemailZoneMessage properties: name: type: string description: label on which each voicemail is mapped timezone: type: string description: Timezone as define in '/usr/share/zoneinfo/' message: type: string description: Message that each user hears. required: - name - timezone Wizard: title: Wizard properties: admin_password: type: string description: Wazo administrator ``root`` password license: type: boolean description: 'Accept/decline the GPLv3: http://www.gnu.org/licenses/gpl-3.0.en.html' timezone: type: string description: 'System timezone. Example: America/Montreal. For the complete list of supported timezones, see ``/usr/share/zoneinfo/``' language: type: string default: en_US enum: - de_DE - en_US - es_ES - fr_FR - fr_CA - it_IT - nl_NL description: The language in which the Wazo will play sounds network: $ref: '#/definitions/WizardNetwork' steps: $ref: '#/definitions/WizardSteps' required: - admin_password - license - timezone - network WizardConfigured: title: WizardConfigured properties: configured: type: boolean description: Whether Wazo has already been configured or not configurable: type: boolean description: Whether all services which the wizard depends on are started or not configurable_status: type: object description: A mapping of all dependencies and there statuses WizardDiscover: title: WizardDiscover properties: hostname: type: string description: System hostname domain: type: string description: System domain name timezone: type: string description: System timezone from file ``/etc/timezone`` nameservers: type: array maxItems: 3 items: type: string description: Nameservers from file ``/etc/resolv.conf`` interfaces: type: array items: $ref: '#/definitions/WizardDiscoverInterface' gateways: type: array items: $ref: '#/definitions/WizardDiscoverGateway' WizardDiscoverInterface: title: WizardDiscoverInterface properties: interface: type: string description: Interface name (e.g. eth0) ip_address: type: string description: IPv4 address of the interface netmask: type: string description: Netmask of the IP address WizardDiscoverGateway: title: WizardDiscoverGateway properties: interface: type: string description: Interface name (e.g. eth0) gateway: type: string description: Gateway IPv4 address WizardNetwork: title: WizardNetwork properties: hostname: type: string description: System hostname domain: type: string description: Domain name interface: type: string description: Interface name (e.g. eth0) ip_address: type: string description: IPv4 address of the VoIP interface (connected to phones) netmask: type: string description: Netmask of the IP address (e.g. 255.255.0.0) gateway: type: string description: Gateway IPv4 address nameservers: type: array items: type: string maxItems: 3 description: List of IPv4 addresses. Nameservers are used in resolv.conf. required: - hostname - domain - ip_address - interface - netmask - gateway - nameservers WizardSteps: title: WizardSteps properties: database: type: boolean default: true description: Initialize Wazo database? manage_services: type: boolean default: true description: Enable/start Wazo services? manage_hosts_file: type: boolean default: true description: Modify /etc/hosts? manage_resolv_file: type: boolean default: true description: Modify /etc/resolv.conf? commonconf: type: boolean default: true description: Generate /etc/xivo/common.conf provisioning: type: boolean default: true description: Initialize wazo-provd database? admin: type: boolean default: true description: Create admin in wazo-auth? paths: /access_features: get: operationId: list_access_features summary: List access features description: '**Required ACL:** `confd.access_features.read`' tags: - access_features parameters: - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: AccessFeatures list schema: $ref: '#/definitions/AccessFeatureItems' post: operationId: create_access_feature summary: Create access_feature description: '**Required ACL:** `confd.access_features.create`' tags: - access_features parameters: - name: body in: body description: Access feature to create required: true schema: $ref: '#/definitions/AccessFeature' responses: '201': description: AccessFeature created schema: $ref: '#/definitions/AccessFeature' '400': $ref: '#/responses/CreateError' /access_features/{access_feature_id}: get: operationId: get_access_feature summary: Get access_feature description: '**Required ACL:** `confd.access_features.{access_feature_id}.read`' tags: - access_features parameters: - $ref: '#/parameters/access_featureid' responses: '200': description: AccessFeature schema: $ref: '#/definitions/AccessFeature' '404': $ref: '#/responses/NotFoundError' put: operationId: update_access_feature summary: Update access_feature description: '**Required ACL:** `confd.access_features.{access_feature_id}.update`' tags: - access_features parameters: - $ref: '#/parameters/access_featureid' - name: body in: body required: true schema: $ref: '#/definitions/AccessFeature' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_access_feature summary: Delete access feature description: '**Required ACL:** `confd.access_features.{access_feature_id}.delete`' tags: - access_features parameters: - $ref: '#/parameters/access_featureid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /agents: get: operationId: list_agents summary: List agents description: '**Required ACL:** `confd.agents.read`' tags: - agents parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Agents list schema: $ref: '#/definitions/AgentItems' post: operationId: create_agent summary: Create agent description: '**Required ACL:** `confd.agents.create`' tags: - agents parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Agent to create required: true schema: $ref: '#/definitions/Agent' responses: '201': description: Agent created schema: $ref: '#/definitions/Agent' '400': $ref: '#/responses/CreateError' /agents/{agent_id}: get: operationId: get_agent summary: Get agent description: '**Required ACL:** `confd.agents.{agent_id}.read`' tags: - agents parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/agentid' responses: '200': description: Agent schema: $ref: '#/definitions/Agent' '404': $ref: '#/responses/NotFoundError' put: operationId: update_agent summary: Update agent description: '**Required ACL:** `confd.agents.{agent_id}.update`' tags: - agents parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/agentid' - name: body in: body required: true schema: $ref: '#/definitions/Agent' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_agent summary: Delete agent description: '**Required ACL:** `confd.agents.{agent_id}.delete`' tags: - agents parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/agentid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /agents/{agent_id}/skills/{skill_id}: put: operationId: associate_agent_skill summary: Associate agent and skill description: '**Required ACL:** `confd.agents.{agent_id}.skills.{skill_id}.update`' tags: - skills - agents parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/agentid' - $ref: '#/parameters/skillid' - name: body in: body schema: $ref: '#/definitions/AgentSkill' responses: '204': description: Association updated '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_agent_skill summary: Dissociate agent and skill description: '**Required ACL:** `confd.agents.{agent_id}.skills.{skill_id}.delete`' tags: - skills - agents parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/agentid' - $ref: '#/parameters/skillid' responses: '204': description: Skill and Agent dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /applications: get: operationId: list_applications summary: List application description: '**Required ACL:** `confd.applications.read`' tags: - applications parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Applications list schema: $ref: '#/definitions/ApplicationItems' post: operationId: create_application summary: Create application description: '**Required ACL:** `confd.applications.create`' tags: - applications parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Application parameters required: true schema: $ref: '#/definitions/Application' responses: '201': description: The Application has been created schema: $ref: '#/definitions/Application' '400': $ref: '#/responses/CreateError' /applications/{application_uuid}: get: operationId: get_application summary: Get application description: '**Required ACL:** `confd.applications.{application_uuid}.read`' tags: - applications parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/application_uuid' responses: '200': description: Application schema: $ref: '#/definitions/Application' '404': $ref: '#/responses/NotFoundError' put: operationId: update_application summary: Update application description: '**Required ACL:** `confd.applications.{application_uuid}.update`' tags: - applications parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/application_uuid' - name: body in: body required: true schema: $ref: '#/definitions/Application' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_application summary: Delete application description: '**Required ACL:** `confd.applications.{application_uuid}.delete`' tags: - applications parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/application_uuid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /callfilters: get: operationId: list_call_filters summary: List call filters description: '**Required ACL:** `confd.callfilters.read`' tags: - callfilters parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Call Filters list schema: $ref: '#/definitions/CallFilterItems' post: operationId: create_callfilter summary: Create call filter description: '**Required ACL:** `confd.callfilters.create`' tags: - callfilters parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Call Filter to create required: true schema: $ref: '#/definitions/CallFilter' responses: '201': description: Call Filter created schema: $ref: '#/definitions/CallFilter' '400': $ref: '#/responses/CreateError' /callfilters/{callfilter_id}: get: operationId: get_callfilter summary: Get call filter description: '**Required ACL:** `confd.callfilters.{callfilter_id}.read`' tags: - callfilters parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callfilterid' responses: '200': description: Call Filter schema: $ref: '#/definitions/CallFilter' '404': $ref: '#/responses/NotFoundError' put: operationId: update_callfilter summary: Update call filter description: '**Required ACL:** `confd.callfilters.{callfilter_id}.update`' tags: - callfilters parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callfilterid' - name: body in: body required: true schema: $ref: '#/definitions/CallFilter' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_callfilter summary: Delete call filter description: '**Required ACL:** `confd.callfilters.{callfilter_id}.delete` . The call filter will also be removed from all users, groups, incoming calls and outgoing calls.' tags: - callfilters parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callfilterid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /callfilters/{callfilter_id}/fallbacks: get: operationId: get_call_filter_fallback summary: List all fallbacks for call filter description: '**Required ACL:** `confd.callfilters.{callfilter_id}.fallbacks.read`' tags: - callfilters parameters: - $ref: '#/parameters/callfilterid' responses: '200': description: Fallbacks for call filter schema: $ref: '#/definitions/CallFilterFallbacks' put: operationId: update_call_filter_fallback summary: Update call filter's fallbacks description: '**Required ACL:** `confd.callfilters.{callfilter_id}.fallbacks.update` **WARNING** This endpoint delete all fields that are not defined.' tags: - callfilters parameters: - $ref: '#/parameters/callfilterid' - name: body in: body description: Fallbacks for call filter schema: $ref: '#/definitions/CallFilterFallbacks' responses: '204': description: CallFilter's fallbacks updated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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: - callfilters - users parameters: - $ref: '#/parameters/callfilterid' - name: body in: body description: Users to associated required: true schema: $ref: '#/definitions/CallFilterRecipientUsersUuid' responses: '204': description: Call Filter and Users associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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: - callfilters - users parameters: - $ref: '#/parameters/callfilterid' - name: body in: body description: Users to associated required: true schema: $ref: '#/definitions/UsersUuid' responses: '204': description: Call Filter and Users associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /callpermissions: get: operationId: list_callpermissions summary: List call permissions description: '**Required ACL:** `confd.callpermissions.read`' tags: - callpermissions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Call Permissions list schema: $ref: '#/definitions/CallPermissionItems' post: operationId: create_callpermission summary: Create call permission description: '**Required ACL:** `confd.callpermissions.create`' tags: - callpermissions parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Call Permission to create required: true schema: $ref: '#/definitions/CallPermission' responses: '201': description: Call Permission created schema: $ref: '#/definitions/CallPermission' '400': $ref: '#/responses/CreateError' /callpermissions/{callpermission_id}: get: operationId: get_callpermission summary: Get call permission description: '**Required ACL:** `confd.callpermissions.{callpermission_id}.read`' tags: - callpermissions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callpermissionid' responses: '200': description: Call Permission schema: $ref: '#/definitions/CallPermission' '404': $ref: '#/responses/NotFoundError' put: operationId: update_callpermission summary: Update call permission description: '**Required ACL:** `confd.callpermissions.{callpermission_id}.update`' tags: - callpermissions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callpermissionid' - name: body in: body required: true schema: $ref: '#/definitions/CallPermission' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_callpermission summary: Delete call permission description: '**Required ACL:** `confd.callpermissions.{callpermission_id}.delete` . The call permission will also be removed from all users, groups, incoming calls and outgoing calls.' tags: - callpermissions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callpermissionid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /callpickups: get: operationId: list_call_pickups summary: List call pickups description: '**Required ACL:** `confd.callpickups.read`' tags: - callpickups parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Call Pickups list schema: $ref: '#/definitions/CallPickupItems' post: operationId: create_callpickup summary: Create call pickup description: '**Required ACL:** `confd.callpickups.create`' tags: - callpickups parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Call Pickup to create required: true schema: $ref: '#/definitions/CallPickup' responses: '201': description: Call Pickup created schema: $ref: '#/definitions/CallPickup' '400': $ref: '#/responses/CreateError' /callpickups/{callpickup_id}: get: operationId: get_callpickup summary: Get call pickup description: '**Required ACL:** `confd.callpickups.{callpickup_id}.read`' tags: - callpickups parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callpickupid' responses: '200': description: Call Pickup schema: $ref: '#/definitions/CallPickup' '404': $ref: '#/responses/NotFoundError' put: operationId: update_callpickup summary: Update call pickup description: '**Required ACL:** `confd.callpickups.{callpickup_id}.update`' tags: - callpickups parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callpickupid' - name: body in: body required: true schema: $ref: '#/definitions/CallPickup' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_callpickup summary: Delete call pickup description: '**Required ACL:** `confd.callpickups.{callpickup_id}.delete`' tags: - callpickups parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callpickupid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /callpickups/{callpickup_id}/interceptors/groups: put: operationId: update_call_pickup_interceptor_groups summary: Update call pickup and interceptors description: '**Required ACL:** `confd.callpickups.{callpickup_id}.interceptors.groups.update` **WARNING** This endpoint remove all interceptors which are not defined. ' tags: - callpickups - groups parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callpickupid' - name: body in: body description: Groups to associated required: true schema: $ref: '#/definitions/GroupsID' responses: '204': description: Call Pickup and Groups associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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: - callpickups - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callpickupid' - name: body in: body description: Users to associated required: true schema: $ref: '#/definitions/UsersUuid' responses: '204': description: Call Pickup and Users associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /callpickups/{callpickup_id}/targets/groups: put: operationId: update_call_pickup_target_groups summary: Update call pickup and targets description: '**Required ACL:** `confd.callpickups.{callpickup_id}.targets.groups.update` **WARNING** This endpoint remove all targets which are not defined. ' tags: - callpickups - groups parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callpickupid' - name: body in: body description: Groups to associated required: true schema: $ref: '#/definitions/GroupsID' responses: '204': description: Call Pickup and Groups associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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: - callpickups - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/callpickupid' - name: body in: body description: Users to associated required: true schema: $ref: '#/definitions/UsersUuid' responses: '204': description: Call Pickup and Users associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /asterisk/confbridge/wazo_default_bridge: get: operationId: list_asterisk_confbridge_wazo_default_bridge summary: List ConfBridge wazo_default_bridge options description: '**Required ACL:** `confd.asterisk.confbridge.wazo_default_bridge.read`' tags: - asterisk - conferences responses: '200': description: ConfBridge wazo_default_bridge schema: $ref: '#/definitions/ConfBridgeConfiguration' put: operationId: update_asterisk_confbridge_wazo_default_bridge summary: Update ConfBridge wazo_default_bridge option description: '**Required ACL:** `confd.asterisk.confbridge.wazo_default_bridge.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined. All available configuration options are listed in the [sample](https://raw.githubusercontent.com/asterisk/asterisk/master/configs/samples/confbridge.conf.sample) Asterisk configuration file. ' tags: - asterisk - conferences parameters: - name: body in: body required: true schema: $ref: '#/definitions/ConfBridgeConfiguration' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /asterisk/confbridge/wazo_default_user: get: operationId: list_asterisk_confbridge_wazo_default_user summary: List ConfBridge wazo_default_user options description: '**Required ACL:** `confd.asterisk.confbridge.wazo_default_user.read`' tags: - asterisk - conferences responses: '200': description: ConfBridge wazo_default_user schema: $ref: '#/definitions/ConfBridgeConfiguration' put: operationId: update_asterisk_confbridge_wazo_default_user summary: Update ConfBridge wazo_default_user option description: '**Required ACL:** `confd.asterisk.confbridge.wazo_default_user.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined. All available configuration options are listed in the [sample](https://raw.githubusercontent.com/asterisk/asterisk/master/configs/samples/confbridge.conf.sample) Asterisk configuration file. ' tags: - asterisk - conferences parameters: - name: body in: body required: true schema: $ref: '#/definitions/ConfBridgeConfiguration' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /conferences: get: operationId: list_conferences summary: List conference description: '**Required ACL:** `confd.conferences.read`' tags: - conferences parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Conferences list schema: $ref: '#/definitions/ConferenceItems' post: operationId: create_conference summary: Create conference description: '**Required ACL:** `confd.conferences.create` All conferences have the same menu. Please consult the asterisk [documentation](https://raw.githubusercontent.com/asterisk/asterisk/master/configs/samples/confbridge.conf.sample) for definitions: ``` * = playback_and_continue 1 = toggle_mute 4 = decrease_listening_volume 5 = reset_listening_volume 6 = increase_listening_volume 7 = decrease_talking_volume 8 = reset_talking_volume 9 = increase_talking_volume ``` And the following options are added to the admin user: ``` 2 = admin_toggle_conference_lock 3 = admin_kick_last 0 = admin_toggle_mute_participants'' ``` ' tags: - conferences parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Conference to create required: false schema: $ref: '#/definitions/Conference' responses: '201': description: Conference created schema: $ref: '#/definitions/Conference' '400': $ref: '#/responses/CreateError' /conferences/{conference_id}: get: operationId: get_conference summary: Get conference description: '**Required ACL:** `confd.conferences.{conference_id}.read`' tags: - conferences parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/conferenceid' responses: '200': description: Conference schema: $ref: '#/definitions/Conference' '404': $ref: '#/responses/NotFoundError' put: operationId: update_conference summary: Update conference description: '**Required ACL:** `confd.conferences.{conference_id}.update`' tags: - conferences parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/conferenceid' - name: body in: body required: true schema: $ref: '#/definitions/Conference' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_conference summary: Delete conference description: '**Required ACL:** `confd.conferences.{conference_id}.delete`' tags: - conferences parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/conferenceid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /conferences/{conference_id}/extensions/{extension_id}: put: operationId: associate_conference_extension summary: Associate conference and extension description: '**Required ACL:** `confd.conferences.{conference_id}.extensions.{extension_id}.update`' tags: - conferences - extensions parameters: - $ref: '#/parameters/conferenceid' - $ref: '#/parameters/extensionid' responses: '204': description: Conference and Extension associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_conference_extension summary: Dissociate conference and extension description: '**Required ACL:** `confd.conferences.{conference_id}.extensions.{extension_id}.delete`' tags: - conferences - extensions parameters: - $ref: '#/parameters/conferenceid' - $ref: '#/parameters/extensionid' responses: '204': description: Conference and Extension dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /configuration/live_reload: get: operationId: get_configuration summary: Get live reload status description: '**Required ACL:** `confd.configuration.live_reload.read`' tags: - configuration responses: '200': description: Live reload status schema: $ref: '#/definitions/LiveReload' put: operationId: update_configuration summary: Update live reload status description: '**Required ACL:** `confd.configuration.live_reload.update`' tags: - configuration parameters: - name: body in: body required: true schema: $ref: '#/definitions/LiveReload' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' /contexts: get: operationId: list_contexts summary: List contexts description: '**Required ACL:** `confd.contexts.read`' tags: - contexts parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Contexts list schema: $ref: '#/definitions/ContextItems' post: operationId: create_context summary: Create context description: '**Required ACL:** `confd.contexts.create`' tags: - contexts parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Context to create required: true schema: $ref: '#/definitions/Context' responses: '201': description: Context created schema: $ref: '#/definitions/Context' '400': $ref: '#/responses/CreateError' /contexts/{context_id}: get: operationId: get_context summary: Get context description: '**Required ACL:** `confd.contexts.{context_id}.read`' tags: - contexts parameters: - $ref: '#/parameters/contextid' responses: '200': description: Context schema: $ref: '#/definitions/Context' '404': $ref: '#/responses/NotFoundError' put: operationId: update_context summary: Update context description: '**Required ACL:** `confd.contexts.{context_id}.update`' tags: - contexts parameters: - $ref: '#/parameters/contextid' - name: body in: body required: true schema: $ref: '#/definitions/Context' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_context summary: Delete context description: '**Required ACL:** `confd.contexts.{context_id}.delete`' tags: - contexts parameters: - $ref: '#/parameters/contextid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /contexts/{context_id}/contexts: put: operationId: associate_context_contexts summary: Include contexts inside context description: '**Required ACL:** `confd.contexts.{context_id}.contexts.update`' tags: - contexts parameters: - $ref: '#/parameters/contextid' - name: body in: body description: Contexts to associated required: true schema: $ref: '#/definitions/ContextsId' responses: '204': description: Context and Contexts associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /contexts/{context_id}/ranges/{range_type}: get: operationId: list_contexts_range summary: List contexts range description: '**Required ACL:** `confd.contexts.{context_id}.ranges.{range_type}.read` List the extension range for a given context and resource type. When filtering using the `availability=available` query string the range will be split into multiple sub-ranges to only contain extension numbers that are available. If a given extension exists but is not assigned to any resource it will still be considered to be unavailable and therefore will not be included in the list of available extension ' tags: - contexts parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' - $ref: '#/parameters/rangetype' - $ref: '#/parameters/availability' - $ref: '#/parameters/contextid' responses: '200': description: Contexts list of ranges for that destination type in that context schema: $ref: '#/definitions/ContextRangeItems' '404': $ref: '#/responses/NotFoundError' /devices: get: operationId: list_devices summary: List devices description: '**Required ACL:** `confd.devices.read`' tags: - devices parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Device list schema: $ref: '#/definitions/DeviceItems' '400': $ref: '#/responses/GenericError' post: operationId: create_device summary: Create device description: '**Required ACL:** `confd.devices.create`' tags: - devices parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Device to create required: false schema: $ref: '#/definitions/Device' responses: '201': description: Device created schema: $ref: '#/definitions/Device' '400': $ref: '#/responses/CreateError' /devices/{device_id}: get: operationId: get_device summary: Get device description: '**Required ACL:** `confd.devices.{device_id}.read`' tags: - devices parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/deviceid' responses: '200': description: Device schema: $ref: '#/definitions/Device' '404': $ref: '#/responses/NotFoundError' put: operationId: update_device summary: Update device description: '**Required ACL:** `confd.devices.{device_id}.update`' tags: - devices parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/deviceid' - name: body in: body required: true schema: $ref: '#/definitions/Device' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_device summary: Delete device description: '**Required ACL:** `confd.devices.{device_id}.delete` A device can not be deleted if it is linked to a line. You must dissociate the line and the device first.' tags: - devices parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/deviceid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /devices/{device_id}/autoprov: get: operationId: reset_device_autoprov summary: Reset device to autoprov description: '**Required ACL:** `confd.devices.{device_id}.autoprov.read` Resets a device into ‘autoprov’ mode. Once in autoprov, a device can be reprovisionned using another provisioning code. The device’s configuration will be lost when reset to autoprov mode.' tags: - devices parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/deviceid' responses: '204': description: Device synchronized '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /devices/{device_id}/synchronize: get: operationId: synchronize_device summary: Synchronize device description: '**Required ACL:** `confd.devices.{device_id}.synchronize.read` Synchronize a device’s configuration. Used when a configuration has been modified and the changes need to be sent to the device.' tags: - devices parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/deviceid' responses: '204': description: Device synchronized '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /devices/unallocated: get: operationId: list_unallocated_devices summary: List unallocated devices description: '**Required ACL:** `confd.devices.unallocated.read`' tags: - devices parameters: - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Device list schema: $ref: '#/definitions/DeviceItems' '400': $ref: '#/responses/GenericError' /devices/unallocated/{device_id}: put: operationId: assign_unallocated_device_tenant summary: Assign unallocated device tenant description: '**Required ACL:** `confd.devices.unallocated.{device_id}.update`' tags: - devices parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/deviceid' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /dhcp: get: operationId: get_dhcp summary: Get DHCP configuration description: '**Required ACL:** `confd.dhcp.read`' tags: - dhcp responses: '200': description: DHCP configuration schema: $ref: '#/definitions/DHCP' put: operationId: update_dhcp summary: Update DHCP configuration description: '**Required ACL:** `confd.dhcp.update`' tags: - dhcp parameters: - name: body in: body required: true schema: $ref: '#/definitions/DHCP' responses: '204': $ref: '#/responses/ResourceUpdated' /emails: get: operationId: get_emails_config summary: Get e-mail configuration description: '**Required ACL:** `confd.emails.read`' tags: - emails responses: '200': description: E-mail configuration schema: $ref: '#/definitions/EmailConfig' put: operationId: update_emails_config summary: Update e-mail configuration description: '**Required ACL:** `confd.emails.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - emails parameters: - name: body in: body description: E-mail configuration required: true schema: $ref: '#/definitions/EmailConfig' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' /endpoints/custom: get: operationId: list_endpoints_custom summary: List Custom endpoints description: '**Required ACL:** `confd.endpoints.custom.read`' tags: - endpoints - custom parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Custom endpoint list schema: $ref: '#/definitions/EndpointCustomItems' post: operationId: create_endpoint_custom summary: Create Custom endpoint description: '**Required ACL:** `confd.endpoints.custom.create`' tags: - endpoints - custom parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Custom Endpoint to create required: true schema: $ref: '#/definitions/EndpointCustom' responses: '201': description: Custom endpoint created schema: $ref: '#/definitions/EndpointCustom' '400': $ref: '#/responses/CreateError' /endpoints/custom/{custom_id}: get: operationId: get_endpoint_custom summary: Get Custom Endpoint description: '**Required ACL:** `confd.endpoints.custom.{custom_id}.read`' tags: - endpoints - custom parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/customid' responses: '200': description: Custom Endpoint schema: $ref: '#/definitions/EndpointCustom' '404': $ref: '#/responses/NotFoundError' put: operationId: update_endpoint_custom summary: Update Custom Endpoint description: '**Required ACL:** `confd.endpoints.custom.{custom_id}.update`' tags: - endpoints - custom parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/customid' - name: body in: body required: true schema: $ref: '#/definitions/EndpointCustom' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_endpoint_custom summary: Delete Custom Endpoint description: '**Required ACL:** `confd.endpoints.custom.{custom_id}.delete`' tags: - endpoints - custom parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/customid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /endpoints/iax: get: operationId: list_endpoints_iax summary: List IAX endpoints description: '**Required ACL:** `confd.endpoints.iax.read`' tags: - endpoints - iax parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: IAX endpoint list schema: $ref: '#/definitions/EndpointIAXItems' post: operationId: create_endpoint_iax summary: Create IAX endpoint description: '**Required ACL:** `confd.endpoints.iax.create`' tags: - endpoints - iax parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: IAX Endpoint to create required: false schema: $ref: '#/definitions/EndpointIAX' responses: '201': description: IAX endpoint created schema: $ref: '#/definitions/EndpointIAX' '400': $ref: '#/responses/CreateError' /endpoints/iax/{iax_id}: get: operationId: get_endpoint_iax summary: Get IAX Endpoint description: '**Required ACL:** `confd.endpoints.iax.{iax_id}.read`' tags: - endpoints - iax parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/iaxid' responses: '200': description: IAX Endpoint schema: $ref: '#/definitions/EndpointIAX' '404': $ref: '#/responses/NotFoundError' put: operationId: update_endpoint_iax summary: Update IAX Endpoint description: '**Required ACL:** `confd.endpoints.iax.{iax_id}.update`' tags: - endpoints - iax parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/iaxid' - name: body in: body required: true schema: $ref: '#/definitions/EndpointIAX' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_endpoint_iax summary: Delete IAX Endpoint description: '**Required ACL:** `confd.endpoints.iax.{iax_id}.delete`' tags: - endpoints - iax parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/iaxid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /endpoints/sccp: get: operationId: list_endpoints_sccp summary: List SCCP endpoints description: '**Required ACL:** `confd.endpoints.sccp.read`' tags: - endpoints - sccp parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: SCCP endpoint list schema: $ref: '#/definitions/EndpointSccpItems' post: operationId: create_endpoint_sccp summary: Create SCCP endpoint description: '**Required ACL:** `confd.endpoints.sccp.create`' tags: - endpoints - sccp parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: SCCP Endpoint to create required: false schema: $ref: '#/definitions/EndpointSccp' responses: '201': description: SCCP endpoint created schema: $ref: '#/definitions/EndpointSccp' '400': $ref: '#/responses/CreateError' /endpoints/sccp/{sccp_id}: get: operationId: get_endpoint_sccp summary: Get SCCP Endpoint description: '**Required ACL:** `confd.endpoints.sccp.{sccp_id}.read`' tags: - endpoints - sccp parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/sccpid' responses: '200': description: SCCP Endpoint schema: $ref: '#/definitions/EndpointSccp' '404': $ref: '#/responses/NotFoundError' put: operationId: update_endpoint_sccp summary: Update SCCP Endpoint description: '**Required ACL:** `confd.endpoints.sccp.{sccp_id}.update`' tags: - endpoints - sccp parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/sccpid' - name: body in: body required: true schema: $ref: '#/definitions/EndpointSccp' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_endpoint_sccp summary: Delete SCCP Endpoint description: '**Required ACL:** `confd.endpoints.sccp.{sccp_id}.delete`' tags: - endpoints - sccp parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/sccpid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /endpoints/sip: get: operationId: list_endpoints_sip summary: List SIP endpoints description: '**Required ACL:** `confd.endpoints.sip.read` List all SIP configurations, each individual configuration includes only fields that it defines. Inherited fields from the templates or default values are not returned here. ' tags: - endpoints - sip parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' - $ref: '#/parameters/query_string_uuid_filter' responses: '200': description: SIP endpoint list schema: $ref: '#/definitions/EndpointSIPItems' post: operationId: create_endpoint_sip summary: Create a SIP endpoint description: '**Required ACL:** `confd.endpoints.sip.create` Create a new SIP endpoint. This endpoint can inherit from other endpoints, only modify fields that have to be modified. ' tags: - endpoints - sip parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: SIP Endpoint to create schema: $ref: '#/definitions/EndpointSIP' responses: '201': description: SIP endpoint created schema: $ref: '#/definitions/EndpointSIP' '400': $ref: '#/responses/CreateError' /endpoints/sip/{sip_uuid}: get: operationId: get_endpoint_sip summary: Get SIP Endpoint description: '**Required ACL:** `confd.endpoints.sip.{sip_uuid}.read`' tags: - sip - endpoints parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/sipuuid' - $ref: '#/parameters/endpoint_sip_view' responses: '200': description: SIP Endpoint schema: $ref: '#/definitions/EndpointSIP' '404': $ref: '#/responses/NotFoundError' put: operationId: update_endpoint_sip summary: Update SIP Endpoint description: '**Required ACL:** `confd.endpoints.sip.{sip_uuid}.update`' tags: - endpoints - sip parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/sipuuid' - name: body in: body required: true schema: $ref: '#/definitions/EndpointSIP' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_endpoint_sip summary: Delete SIP Endpoint description: '**Required ACL:** `confd.endpoints.sip.{sip_uuid}.delete`' tags: - endpoints - sip parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/sipuuid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /endpoints/sip/templates: get: operationId: list_endpoints_sip_templates summary: List SIP endpoints templates description: '**Required ACL:** `confd.endpoints.sip.templates.read` List all SIP configuration templates, each individual configuration includes only fields that it defines. Inherited fields from the templates or default values are not returned here. ' tags: - endpoints - sip parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: SIP endpoint template list schema: $ref: '#/definitions/EndpointSIPItems' post: operationId: create_endpoint_sip_template summary: Create a SIP endpoint template description: '**Required ACL:** `confd.endpoints.sip.templates.create` Create a new SIP endpoint configuration template. This endpoint can inherit from other templates, only modify fields that have to be modified. ' tags: - endpoints - sip parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: SIP Endpoint to create schema: $ref: '#/definitions/EndpointSIP' responses: '201': description: SIP endpoint created schema: $ref: '#/definitions/EndpointSIP' '400': $ref: '#/responses/CreateError' /endpoints/sip/templates/{template_uuid}: get: operationId: get_endpoint_sip_template summary: Get SIP Endpoint template description: '**Required ACL:** `confd.endpoints.sip.templates.{template_uuid}.read`' tags: - sip - endpoints parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/template_uuid' responses: '200': description: SIP Endpoint template schema: $ref: '#/definitions/EndpointSIP' '404': $ref: '#/responses/NotFoundError' put: operationId: update_endpoint_sip_template summary: Update SIP Endpoint Template description: '**Required ACL:** `confd.endpoints.sip.templates.{template_uuid}.update`' tags: - endpoints - sip parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/template_uuid' - name: body in: body required: true schema: $ref: '#/definitions/EndpointSIP' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_endpoint_sip_template summary: Delete SIP Endpoint Template description: '**Required ACL:** `confd.endpoints.sip.templates.{template_uuid}.delete`' tags: - endpoints - sip parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/template_uuid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /extensions: get: operationId: list_extensions summary: List extensions description: '**Required ACL:** `confd.extensions.read`' tags: - extensions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' - name: type in: query type: string enum: - internal - incall description: 'Filter extensions of a certain type. Internal: Used for calling a line with an internal number (e.g. “1000@default”). Incall: Used for calling a line from the outside (e.g. “from-extern” with a DID)' - name: exten in: query type: string description: Filter extensions by exten number - name: context in: query type: string description: Filter extensions by context name responses: '200': description: Extension list schema: $ref: '#/definitions/ExtensionItems' post: operationId: create_extension summary: Create extension description: '**Required ACL:** `confd.extensions.create` The extension number must be included in one of the extension ranges for the given context.' tags: - extensions parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Extension to create required: true schema: $ref: '#/definitions/Extension' responses: '201': description: Extension created schema: $ref: '#/definitions/Extension' '400': $ref: '#/responses/CreateError' /extensions/{extension_id}: get: operationId: get_extension summary: Get extension description: '**Required ACL:** `confd.extensions.{extension_id}.read`' tags: - extensions parameters: - $ref: '#/parameters/extensionid' responses: '200': description: Extension schema: $ref: '#/definitions/Extension' '404': $ref: '#/responses/NotFoundError' put: operationId: update_extension summary: Update extension description: '**Required ACL:** `confd.extensions.{extension_id}.update` The new extension number must be included in one of the extension ranges for the new context.' tags: - extensions parameters: - $ref: '#/parameters/extensionid' - name: body in: body required: true schema: $ref: '#/definitions/Extension' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_extension summary: Delete extension description: '**Required ACL:** `confd.extensions.{extension_id}.delete` An extension can not be deleted if it is associated to a line. You must delete the association first.' tags: - extensions parameters: - $ref: '#/parameters/extensionid' responses: '204': $ref: '#/responses/ResourceDeleted' '404': $ref: '#/responses/NotFoundError' /extensions/features: get: operationId: list_extensions_features summary: List extensions features description: '**Required ACL:** `confd.extensions.features.read`' tags: - extensions parameters: - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Extension feature list schema: $ref: '#/definitions/ExtensionFeatureItems' /extensions/features/{extension_uuid}: get: operationId: get_extension_feature summary: Get extension feature description: '**Required ACL:** `confd.extensions.features.{extension_uuid}.read`' tags: - extensions parameters: - $ref: '#/parameters/extensionuuid' responses: '200': description: Extension feature schema: $ref: '#/definitions/ExtensionFeature' '404': $ref: '#/responses/NotFoundError' put: operationId: update_extension_feature summary: Update extension description: '**Required ACL:** `confd.extensions.features.{extension_uuid}.update`' tags: - extensions parameters: - $ref: '#/parameters/extensionuuid' - name: body in: body required: true schema: $ref: '#/definitions/ExtensionFeature' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /external/apps: get: operationId: list_external_apps summary: List external apps description: '**Required ACL:** `confd.external.apps.read`' tags: - external_apps parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: External apps list schema: $ref: '#/definitions/ExternalAppItems' /external/apps/{app_name}: post: operationId: create_external_app summary: Create external app description: '**Required ACL:** `confd.external.apps.{app_name}.create`' tags: - external_apps parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/externalappname' - name: body in: body description: External app to create required: true schema: $ref: '#/definitions/ExternalApp' responses: '201': description: External app created schema: $ref: '#/definitions/ExternalApp' '400': $ref: '#/responses/CreateError' get: operationId: get_external_app summary: Get external app description: '**Required ACL:** `confd.external.apps.{app_name}.read`' tags: - external_apps parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/externalappname' responses: '200': description: External App schema: $ref: '#/definitions/ExternalApp' '404': $ref: '#/responses/NotFoundError' put: operationId: update_external_app summary: Update external app description: '**Required ACL:** `confd.external.apps.{app_name}.update`' tags: - external_apps parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/externalappname' - name: body in: body required: true schema: $ref: '#/definitions/ExternalApp' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_external_app summary: Delete external app description: '**Required ACL:** `confd.external.apps.{app_name}.delete`' tags: - external_apps parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/externalappname' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /asterisk/features/applicationmap: get: operationId: list_asterisk_features_applicationmap summary: List Features applicationmap options description: '**Required ACL:** `confd.asterisk.features.applicationmap.read`' tags: - asterisk responses: '200': description: Features applicationmap schema: $ref: '#/definitions/FeaturesConfiguration' put: operationId: update_asterisk_features_applicationmap summary: Update Features applicationmap option description: '**Required ACL:** `confd.asterisk.features.applicationmap.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk parameters: - name: body in: body required: true schema: $ref: '#/definitions/FeaturesConfiguration' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /asterisk/features/featuremap: get: operationId: list_asterisk_features_featuremap summary: List Features featuremap options description: '**Required ACL:** `confd.asterisk.features.featuremap.read`' tags: - asterisk responses: '200': description: Features featuremap schema: $ref: '#/definitions/FeaturesConfiguration' put: operationId: update_asterisk_features_featuremap summary: Update Features featuremap option description: '**Required ACL:** `confd.asterisk.features.featuremap.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk parameters: - name: body in: body required: true schema: $ref: '#/definitions/FeaturesConfiguration' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /asterisk/features/general: get: operationId: list_asterisk_features_general summary: List Features general options description: '**Required ACL:** `confd.asterisk.features.general.read`' tags: - asterisk responses: '200': description: Features general schema: $ref: '#/definitions/FeaturesConfiguration' put: operationId: update_asterisk_features_general summary: Update Features general option description: '**Required ACL:** `confd.asterisk.features.general.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk parameters: - name: body in: body required: true schema: $ref: '#/definitions/FeaturesConfiguration' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /funckeys/destinations: get: operationId: list_func_key_destinations summary: List of possible func key destinations and their parameters description: '**Required ACL:** `confd.funckeys.destinations.read`' tags: - funckeys responses: '200': description: List of destinations schema: $ref: '#/definitions/FuncKeyDestinationItems' /funckeys/templates: get: operationId: list_func_key_template summary: List a func key template description: '**Required ACL:** `confd.funckeys.templates.read`' tags: - funckeys parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/offset' - $ref: '#/parameters/limit' - $ref: '#/parameters/search' responses: '200': description: List Func key template schema: $ref: '#/definitions/FuncKeyTemplate' '404': $ref: '#/responses/NotFoundError' post: operationId: create_func_key_template summary: Create a template of func keys description: '**Required ACL:** `confd.funckeys.templates.create`' tags: - funckeys parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Template to create required: false schema: $ref: '#/definitions/FuncKeyTemplate' responses: '201': description: Template created schema: $ref: '#/definitions/FuncKeyTemplate' '400': $ref: '#/responses/CreateError' /funckeys/templates/{template_id}: get: operationId: get_func_key_template summary: Get a func key template description: '**Required ACL:** `confd.funckeys.templates.{template_id}.read`' tags: - funckeys parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/templateid' responses: '200': description: Func key template schema: $ref: '#/definitions/FuncKeyTemplate' '404': $ref: '#/responses/NotFoundError' put: operationId: update_func_key_template summary: Update a func key template description: '**Required ACL:** `confd.funckeys.templates.{template_id}.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - funckeys parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/templateid' - name: body in: body required: true schema: $ref: '#/definitions/FuncKeyTemplate' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' delete: operationId: delete_func_key_template summary: Delete func key template description: '**Required ACL:** `confd.funckeys.templates.{template_id}.delete`' tags: - funckeys parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/templateid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /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: - funckeys - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/templateid' responses: '200': description: User-FuncKeyTemplate associations schema: $ref: '#/definitions/UserFuncKeyTemplate' '404': $ref: '#/responses/NotFoundError' /funckeys/templates/{template_id}/{position}: get: operationId: get_func_key summary: Get a func key inside template description: '**Required ACL:** `confd.funckeys.templates.{template_id}.{position}.read`' tags: - funckeys parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/templateid' - $ref: '#/parameters/funckeyposition' responses: '200': description: Func key schema: $ref: '#/definitions/FuncKey' '404': $ref: '#/responses/NotFoundError' put: operationId: update_func_key summary: Add/Replace a func key in a template description: '**Required ACL:** `confd.funckeys.templates.{template_id}.{position}.update`' tags: - funckeys parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/templateid' - $ref: '#/parameters/funckeyposition' - name: body in: body required: true schema: $ref: '#/definitions/FuncKey' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' delete: operationId: delete_func_key summary: Remove func key from template description: '**Required ACL:** `confd.funckeys.templates.{template_id}.{position}.delete`' tags: - funckeys parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/templateid' - $ref: '#/parameters/funckeyposition' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /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: - funckeys - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' responses: '200': description: Func keys for user schema: $ref: '#/definitions/FuncKeyTemplate' 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: - funckeys - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - name: body in: body required: true schema: $ref: '#/definitions/FuncKeyTemplate' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' /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: - funckeys - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/funckeyposition' responses: '200': description: Func key schema: $ref: '#/definitions/FuncKey' '404': $ref: '#/responses/NotFoundError' 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: - funckeys - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/funckeyposition' - name: body in: body required: true schema: $ref: '#/definitions/FuncKey' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' delete: operationId: delete_user_func_key summary: Remove func key for user description: '**Required ACL:** `confd.users.{user_id}.funckeys.{position}.delete`' tags: - funckeys - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/funckeyposition' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /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: - funckeys - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' responses: '200': description: User-FuncKeyTemplate associations schema: $ref: '#/definitions/UserFuncKeyTemplate' '404': $ref: '#/responses/NotFoundError' /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: - funckeys - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/templateid' responses: '204': description: User and template associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' 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: - funckeys - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/templateid' responses: '204': description: User and template dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /groups: get: operationId: list_groups summary: List groups description: '**Required ACL:** `confd.groups.read`' tags: - groups parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Groups list schema: $ref: '#/definitions/GroupItems' post: operationId: create_group summary: Create group description: '**Required ACL:** `confd.groups.create`' tags: - groups parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Group to create required: true schema: $ref: '#/definitions/Group' responses: '201': description: Group created schema: $ref: '#/definitions/Group' '400': $ref: '#/responses/CreateError' /groups/{group_uuid}: get: operationId: get_group summary: Get group description: '**Required ACL:** `confd.groups.{group_uuid}.read`' tags: - groups parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/groupuuid' responses: '200': description: Group schema: $ref: '#/definitions/Group' '404': $ref: '#/responses/NotFoundError' put: operationId: update_group summary: Update group description: '**Required ACL:** `confd.groups.{group_uuid}.update`' tags: - groups parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/groupuuid' - name: body in: body required: true schema: $ref: '#/definitions/Group' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_group summary: Delete group description: '**Required ACL:** `confd.groups.{group_uuid}.delete`' tags: - groups parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/groupuuid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /groups/{group_uuid}/callpermissions/{callpermission_id}: put: operationId: associate_group_callpermission summary: Associate group and call permission description: '**Required ACL:** `confd.groups.{group_uuid}.callpermissions.{call_permission_id}.update`' tags: - groups - callpermissions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/groupuuid' - $ref: '#/parameters/callpermissionid' responses: '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_group_callpermission summary: Dissociate group and call permission description: '**Required ACL:** `confd.groups.{group_uuid}.callpermissions.{call_permission_id}.delete`' tags: - groups - callpermissions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/groupuuid' - $ref: '#/parameters/callpermissionid' responses: '204': description: Group and Call Permission dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /groups/{group_uuid}/extensions/{extension_id}: put: operationId: associate_group_extension summary: Associate group and extension description: '**Required ACL:** `confd.groups.{group_uuid}.extensions.{extension_id}.update`' tags: - groups - extensions parameters: - $ref: '#/parameters/groupuuid' - $ref: '#/parameters/extensionid' responses: '204': description: Group and Extension associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_group_extension summary: Dissociate group and extension description: '**Required ACL:** `confd.groups.{group_uuid}.extensions.{extension_id}.delete`' tags: - groups - extensions parameters: - $ref: '#/parameters/groupuuid' - $ref: '#/parameters/extensionid' responses: '204': description: Group and Extension dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /groups/{group_uuid}/fallbacks: get: operationId: get_group_fallback summary: List all fallbacks for group description: '**Required ACL:** `confd.groups.{group_uuid}.fallbacks.read`' tags: - groups parameters: - $ref: '#/parameters/groupuuid' responses: '200': description: Fallbacks for group schema: $ref: '#/definitions/GroupFallbacks' put: operationId: update_group_fallback summary: Update group's fallbacks description: '**Required ACL:** `confd.groups.{group_uuid}.fallbacks.update` **WARNING** This endpoint delete all fields that are not defined.' tags: - groups parameters: - $ref: '#/parameters/groupuuid' - name: body in: body description: Fallbacks for group schema: $ref: '#/definitions/GroupFallbacks' responses: '204': description: Group's fallbacks updated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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: - groups - users parameters: - $ref: '#/parameters/groupuuid' - name: body in: body description: Users to associated required: true schema: $ref: '#/definitions/GroupMemberUsers' responses: '204': description: Group and Users associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /groups/{group_uuid}/members/extensions: put: operationId: update_group_member_extensions summary: update group's extension members description: '**Required ACL:** `confd.groups.{group_uuid}.members.extensions.update` a call to an extension member directly invokes the complete dialplan logic of that extension, as if the extension was called directly; **WARNING** This endpoint remove all members which are not defined. ' tags: - groups parameters: - $ref: '#/parameters/groupuuid' - name: body in: body description: Extensions to associated required: true schema: $ref: '#/definitions/GroupMemberExtensions' responses: '204': description: Group and Extensions associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /groups/{group_uuid}/schedules/{schedule_id}: put: operationId: associate_group_schedule summary: Associate group and schedule description: '**Required ACL:** `confd.groups.{group_uuid}.schedules.{schedule_id}.update`' tags: - groups - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/groupuuid' - $ref: '#/parameters/scheduleid' responses: '204': description: Group and Schedule associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_group_schedule summary: Dissociate group and schedule description: '**Required ACL:** `confd.groups.{group_uuid}.schedules.{schedule_id}.delete`' tags: - groups - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/groupuuid' - $ref: '#/parameters/scheduleid' responses: '204': description: Group and Schedule dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /ha: get: operationId: get_ha summary: Get High Availability configuration description: '**Required ACL:** `confd.ha.read`' tags: - ha responses: '200': description: High Availability configuration schema: $ref: '#/definitions/HA' put: operationId: update_ha summary: Update High Availability configuration description: '**Required ACL:** `confd.ha.update`' tags: - ha parameters: - name: body in: body required: true schema: $ref: '#/definitions/HA' responses: '204': $ref: '#/responses/ResourceUpdated' /asterisk/hep/general: get: operationId: list_asterisk_hep_general summary: List HEP general options description: '**Required ACL:** `confd.asterisk.hep.general.read`' tags: - asterisk responses: '200': description: HEP general schema: $ref: '#/definitions/HEPConfiguration' put: operationId: update_asterisk_hep_general summary: Update HEP general option description: '**Required ACL:** `confd.asterisk.hep.general.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk parameters: - name: body in: body required: true schema: $ref: '#/definitions/HEPConfiguration' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' /asterisk/iax/callnumberlimits: get: operationId: list_asterisk_iax_callnumberlimits summary: List IAX callnumberlimits options description: '**Required ACL:** `confd.asterisk.iax.callnumberlimits.read`' tags: - asterisk - iax responses: '200': description: IAX callnumberlimits schema: $ref: '#/definitions/IAXCallNumberLimitss' put: operationId: update_asterisk_iax_callnumberlimits summary: Update IAX callnumberlimits option description: '**Required ACL:** `confd.asterisk.iax.callnumberlimits.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk - iax parameters: - name: body in: body required: true schema: $ref: '#/definitions/IAXCallNumberLimitss' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /asterisk/iax/general: get: operationId: list_asterisk_iax_general summary: List IAX general options description: '**Required ACL:** `confd.asterisk.iax.general.read`' tags: - asterisk responses: '200': description: IAX general schema: $ref: '#/definitions/IAXGeneral' put: operationId: update_asterisk_iax_general summary: Update IAX general option description: '**Required ACL:** `confd.asterisk.iax.general.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk parameters: - name: body in: body required: true schema: $ref: '#/definitions/IAXGeneral' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /incalls: get: operationId: list_incalls summary: List incoming calls description: '**Required ACL:** `confd.incalls.read`' tags: - incalls parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' - $ref: '#/parameters/userid' responses: '200': description: Incoming calls list schema: $ref: '#/definitions/IncallItems' post: operationId: create_incall summary: Create incoming call description: '**Required ACL:** `confd.incalls.create`' tags: - incalls parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Incoming call to create required: true schema: $ref: '#/definitions/Incall' responses: '201': description: Incoming call created schema: $ref: '#/definitions/Incall' '400': $ref: '#/responses/CreateError' /incalls/{incall_id}: get: operationId: get_incall summary: Get incoming call description: '**Required ACL:** `confd.incalls.{incall_id}.read`' tags: - incalls parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/incallid' responses: '200': description: Incoming call schema: $ref: '#/definitions/Incall' '404': $ref: '#/responses/NotFoundError' put: operationId: update_incall summary: Update incoming call description: '**Required ACL:** `confd.incalls.{incall_id}.update`' tags: - incalls parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/incallid' - name: body in: body required: true schema: $ref: '#/definitions/Incall' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_incall summary: Delete incoming call description: '**Required ACL:** `confd.incalls.{incall_id}.delete`' tags: - incalls parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/incallid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /incalls/{incall_id}/extensions/{extension_id}: put: operationId: associate_incall_extension summary: Associate incall and extension description: '**Required ACL:** `confd.incalls.{incall_id}.extensions.{extension_id}.update`' tags: - incalls - extensions parameters: - $ref: '#/parameters/incallid' - $ref: '#/parameters/extensionid' responses: '204': description: Incall and Extension associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_incall_extension summary: Dissociate incall and extension description: '**Required ACL:** `confd.incalls.{incall_id}.extensions.{extension_id}.delete`' tags: - incalls - extensions parameters: - $ref: '#/parameters/incallid' - $ref: '#/parameters/extensionid' responses: '204': description: Incall and Extension dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /incalls/{incall_id}/schedules/{schedule_id}: put: operationId: associate_incall_schedule summary: Associate incall and schedule description: '**Required ACL:** `confd.incalls.{incall_id}.schedules.{schedule_id}.update`' tags: - incalls - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/incallid' - $ref: '#/parameters/scheduleid' responses: '204': description: Incall and Schedule associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_incall_schedule summary: Dissociate incall and schedule description: '**Required ACL:** `confd.incalls.{incall_id}.schedules.{schedule_id}.delete`' tags: - incalls - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/incallid' - $ref: '#/parameters/scheduleid' responses: '204': description: Incall and Schedule dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /infos: get: operationId: get_infos summary: Get server info description: '**Required ACL:** `confd.infos.read`' tags: - infos responses: '200': description: Server information schema: $ref: '#/definitions/Info' /ingresses/http: get: operationId: list_http_ingresses summary: List HTTP ingresses description: '**Required ACL:** `confd.ingresses.http.read`' tags: - ingresses parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' - $ref: '#/parameters/ingress_fallback_view' responses: '200': description: HTTP ingress list schema: $ref: '#/definitions/HTTPIngressItems' post: operationId: create_http_ingress summary: Create HTTP Ingress description: '**Required ACL:** `confd.ingresses.http.create`' tags: - ingresses parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: HTTP Ingress to create required: true schema: $ref: '#/definitions/HTTPIngressRequest' responses: '201': description: HTTP ingress ceated schema: $ref: '#/definitions/HTTPIngress' '400': $ref: '#/responses/CreateError' /ingresses/http/{http_ingress_uuid}: get: operationId: get_http_ingress summary: Get HTTP ingress description: '**Required ACL:** `confd.ingresses.http.{http_ingress_uuid}.read`' tags: - ingresses parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/http_ingress_uuid' responses: '200': description: HTTP ingress schema: $ref: '#/definitions/HTTPIngress' '404': $ref: '#/responses/NotFoundError' put: operationId: update_http_ingress summary: Update HTTP ingress description: '**Required ACL:** `confd.ingresses.http.{http_ingress_uuid}.update`' tags: - ingresses parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/http_ingress_uuid' - name: body in: body required: true schema: $ref: '#/definitions/HTTPIngressRequest' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_http_ingress summary: Delete HTTP ingress description: '**Required ACL:** `confd.ingresses.http.{http_ingress_uuid}.delete`' tags: - ingresses parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/http_ingress_uuid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /ivr: get: operationId: list_ivr summary: List IVR description: '**Required ACL:** `confd.ivr.read`' tags: - ivr parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: IVR list schema: $ref: '#/definitions/IvrItems' post: operationId: create_ivr summary: Create IVR description: '**Required ACL:** `confd.ivr.create`' tags: - ivr parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: IVR to create required: true schema: $ref: '#/definitions/Ivr' responses: '201': description: IVR created schema: $ref: '#/definitions/Ivr' '400': $ref: '#/responses/CreateError' /ivr/{ivr_id}: get: operationId: get_ivr summary: Get IVR description: '**Required ACL:** `confd.ivr.{ivr_id}.read`' tags: - ivr parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/ivrid' responses: '200': description: IVR schema: $ref: '#/definitions/Ivr' '404': $ref: '#/responses/NotFoundError' put: operationId: update_ivr summary: Update IVR description: '**Required ACL:** `confd.ivr.{ivr_id}.update`' tags: - ivr parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/ivrid' - name: body in: body required: true schema: $ref: '#/definitions/Ivr' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_ivr summary: Delete IVR description: '**Required ACL:** `confd.ivr.{ivr_id}.delete`' tags: - ivr parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/ivrid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /lines: get: operationId: list_lines summary: List lines description: '**Required ACL:** `confd.lines.read`' tags: - lines parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Line list schema: $ref: '#/definitions/LineItems' post: operationId: create_line summary: Create line description: '**Required ACL:** `confd.lines.create` When creating a line with an extension or a SIP endpoint as part of it''s body, the line''s context will be used as a default for the endpoint and context if ommited. ' tags: - lines parameters: - name: body in: body required: true schema: $ref: '#/definitions/LineCreate' - $ref: '#/parameters/tenantuuid' responses: '201': description: Line created schema: $ref: '#/definitions/LineView' '400': $ref: '#/responses/CreateError' /lines/{line_id}: get: operationId: get_line summary: Get line description: '**Required ACL:** `confd.lines.{line_id}.read`' tags: - lines parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/lineid' responses: '200': description: Line schema: $ref: '#/definitions/LineView' '404': $ref: '#/responses/NotFoundError' put: operationId: update_line summary: Update line description: '**Required ACL:** `confd.lines.{line_id}.update`' tags: - lines parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/lineid' - name: body in: body required: true schema: $ref: '#/definitions/Line' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_line summary: Delete line description: '**Required ACL:** `confd.lines.{line_id}.delete` **Disclaimer**: if `recursive=true`, the line is deleted, all their associations with any related resources are removed.' tags: - lines parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/lineid' responses: '204': $ref: '#/responses/ResourceDeleted' '404': $ref: '#/responses/NotFoundError' /lines/{line_id}/applications/{application_uuid}: put: operationId: associate_line_application summary: Associate line and application description: '''**Required ACL:** `confd.lines.{line_id}.applications.{application_uuid}.update`'' **WARNING**: Association will disable the effect of the line `context` field ' tags: - lines - applications parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/lineid' - $ref: '#/parameters/application_uuid' responses: '204': description: Line and application associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_line_application summary: Dissociate line and application description: '**Required ACL:** `confd.lines.{line_id}.applications.{application_uuid}.delete`' tags: - lines - applications parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/lineid' - $ref: '#/parameters/application_uuid' responses: '204': description: Line and application dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /devices/{device_id}/lines: get: operationId: get_device_line_association summary: List lines associated to device description: '**Required ACL:** `confd.devices.{device_id}.lines.read`' tags: - lines - devices parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/deviceid' responses: '200': description: Line-Device association schema: $ref: '#/definitions/LineDeviceItems' '404': $ref: '#/responses/NotFoundError' /lines/{line_id}/devices: get: operationId: get_line_device summary: Get Device associated to Line description: '**Required ACL:** `confd.lines.{line_id}.devices.read`' tags: - lines - devices parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/lineid' responses: '200': description: Association between Line and Device schema: $ref: '#/definitions/LineDevice' '400': description: No device associated to line schema: $ref: '#/definitions/Error' '404': $ref: '#/responses/NotFoundError' /lines/{line_id}/devices/{device_id}: put: operationId: associate_line_device summary: Associate line and device description: '**Required ACL:** `confd.lines.{line_id}.devices.{device_id}.update`' tags: - lines - devices parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/lineid' - $ref: '#/parameters/deviceid' responses: '204': description: Line and device associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_line_device summary: Dissociate line and device description: '**Required ACL:** `confd.lines.{line_id}.devices.{device_id}.delete`' tags: - lines - devices parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/lineid' - $ref: '#/parameters/deviceid' responses: '204': description: Line and device dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /lines/{line_id}/endpoints/custom/{custom_id}: put: operationId: associate_line_endpoint_custom summary: Associate line and Custom endpoint description: '**Required ACL:** `confd.lines.{line_id}.endpoints.custom.{custom_id}.update`' tags: - lines - endpoints - custom parameters: - $ref: '#/parameters/lineid' - $ref: '#/parameters/customid' responses: '204': description: Line and Custom endpoint associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_line_endpoint_custom summary: Dissociate line and Custom endpoint description: '**Required ACL:** `confd.lines.{line_id}.endpoints.custom.{custom_id}.delete`' tags: - lines - endpoints - custom parameters: - $ref: '#/parameters/lineid' - $ref: '#/parameters/customid' responses: '204': description: Line and Custom endpoint dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /lines/{line_id}/endpoints/sccp/{sccp_id}: put: operationId: associate_line_endpoint_sccp summary: Associate line and SCCP endpoint description: '**Required ACL:** `confd.lines.{line_id}.endpoints.sccp.{sccp_id}.update`' tags: - lines - endpoints - sccp parameters: - $ref: '#/parameters/lineid' - $ref: '#/parameters/sccpid' responses: '204': description: Line and SCCP endpoint associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_line_endpoint_sccp summary: Dissociate line and SCCP endpoint description: '**Required ACL:** `confd.lines.{line_id}.endpoints.sccp.{sccp_id}.delete`' tags: - lines - endpoints - sccp parameters: - $ref: '#/parameters/lineid' - $ref: '#/parameters/sccpid' responses: '204': description: Line and SCCP endpoint dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /lines/{line_id}/endpoints/sip/{sip_uuid}: put: operationId: associate_line_endpoint_sip summary: Associate line and SIP endpoint description: '**Required ACL:** `confd.lines.{line_id}.endpoints.sip.{sip_uuid}.update`' tags: - lines - endpoints - sip parameters: - $ref: '#/parameters/lineid' - $ref: '#/parameters/sipuuid' responses: '204': description: Line and SIP endpoint associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_line_endpoint_sip summary: Dissociate line and SIP endpoint description: '**Required ACL:** `confd.lines.{line_id}.endpoints.sip.{sip_uuid}.delete`' tags: - lines - endpoints - sip parameters: - $ref: '#/parameters/lineid' - $ref: '#/parameters/sipuuid' responses: '204': description: Line and SIP endpoint dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /lines/{line_id}/extensions/{extension_id}: delete: operationId: dissociate_line_extension summary: Dissociate line and extension description: '**Required ACL:** `confd.lines.{line_id}.extensions.{extension_id}.delete` Any devices that are attached to a line must be removed before dissociating an extension from its line. A device can be dissociated by resetting it to autoprov mode.' tags: - lines - extensions parameters: - $ref: '#/parameters/lineid' - $ref: '#/parameters/extensionid' responses: '204': description: Line and Extension dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' put: operationId: associate_line_extension summary: Associate line and extension description: '**Required ACL:** `confd.lines.{line_id}.extensions.{extension_id}.update` Because of technical limitations, a line can only have a single ‘internal’ extension associated (i.e. an extension with a context of type ‘internal’)' tags: - lines - extensions parameters: - $ref: '#/parameters/lineid' - $ref: '#/parameters/extensionid' responses: '204': description: Line and Extension associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /lines/{line_id}/extensions: post: operationId: create_line_extension summary: Create extension description: '**Required ACL:** `confd.lines.{line_id}.extensions.create` The extension number must be included in one of the extension ranges for the given context.' tags: - extensions - lines parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/lineid' - name: body in: body description: Extension to create required: true schema: $ref: '#/definitions/Extension' responses: '201': description: Extension created schema: $ref: '#/definitions/Extension' '400': $ref: '#/responses/CreateError' '404': description: Line not found schema: $ref: '#/responses/NotFoundError' /localization: get: operationId: get_localization summary: Get localization configuration description: '**Required ACL:** `confd.localization.read`' tags: - localization parameters: - $ref: '#/parameters/tenantuuid' responses: '200': description: Localization configuration schema: $ref: '#/definitions/Localization' put: operationId: update_localization summary: Update localization configuration description: '**Required ACL:** `confd.localization.update`' tags: - localization parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body required: true schema: $ref: '#/definitions/Localization' responses: '204': $ref: '#/responses/ResourceUpdated' /meetings: get: operationId: list_meetings summary: List meetings description: '**Required ACL:** `confd.meetings.read`' tags: - meetings parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Meetings list schema: $ref: '#/definitions/MeetingItems' post: operationId: create_meeting summary: Create meeting description: '**Required ACL:** `confd.meetings.create`' tags: - meetings parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Meeting to create required: true schema: $ref: '#/definitions/MeetingRequest' responses: '201': description: Meeting created schema: $ref: '#/definitions/Meeting' '400': $ref: '#/responses/CreateError' /meetings/{meeting_uuid}: get: operationId: get_meeting summary: Get meeting description: '**Required ACL:** `confd.meetings.{meeting_uuid}.read`' tags: - meetings parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/meeting_uuid' responses: '200': description: Meeting schema: $ref: '#/definitions/Meeting' '404': $ref: '#/responses/NotFoundError' put: operationId: update_meeting summary: Update meeting description: '**Required ACL:** `confd.meetings.{meeting_uuid}.update`' tags: - meetings parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/meeting_uuid' - name: body in: body required: true schema: $ref: '#/definitions/MeetingRequest' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_meeting summary: Delete meeting description: '**Required ACL:** `confd.meetings.{meeting_uuid}.delete`, Deleting a meeting will hangup all current participants.' tags: - meetings parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/meeting_uuid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /users/me/meetings: get: operationId: list_user_meetings summary: List user meetings description: '**Required ACL:** `confd.users.me.meetings.read`' tags: - meetings - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Meetings list schema: $ref: '#/definitions/MeetingItems' post: operationId: create_user_meeting summary: Create user meeting description: '**Required ACL:** `confd.users.me.meetings.create`' tags: - meetings - users parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Meeting to create required: true schema: $ref: '#/definitions/MeetingUserRequest' responses: '201': description: Meeting created schema: $ref: '#/definitions/Meeting' '400': $ref: '#/responses/CreateError' /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: - meetings - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/meeting_uuid' responses: '200': description: Meeting schema: $ref: '#/definitions/Meeting' '404': $ref: '#/responses/NotFoundError' 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: - meetings - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/meeting_uuid' - name: body in: body required: true schema: $ref: '#/definitions/MeetingRequest' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' 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: - meetings - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/meeting_uuid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /guests/me/meetings/{meeting_uuid}: get: operationId: get_guest_meeting summary: Get one guest meeting description: '**Required ACL:** none' tags: - meetings - guests parameters: - $ref: '#/parameters/meeting_uuid' responses: '200': description: Meetings list schema: $ref: '#/definitions/Meeting' /guests/{guest_uuid}/meetings/{meeting_uuid}/authorizations: post: operationId: create_guest_meeting_authorization summary: Request guest authorization to enter a meeting description: '**Required ACL:** none. A single meeting only accepts a maximum amount of 128 authorizations. Authorizations are valid for 24h.' tags: - meeting_authorizations - meetings - guests parameters: - $ref: '#/parameters/guest_uuid' - $ref: '#/parameters/meeting_uuid' - name: body in: body description: Details to request authorization required: true schema: $ref: '#/definitions/MeetingAuthorizationRequest' responses: '201': description: Authorization created schema: $ref: '#/definitions/MeetingAuthorization' '400': $ref: '#/responses/CreateError' '404': $ref: '#/responses/NotFoundError' /guests/{guest_uuid}/meetings/{meeting_uuid}/authorizations/{authorization_uuid}: get: operationId: get_guest_meeting_authorization summary: Read the guest authorization to enter a meeting description: '**Required ACL:** none' tags: - meeting_authorizations - meetings - guests parameters: - $ref: '#/parameters/guest_uuid' - $ref: '#/parameters/meeting_uuid' - $ref: '#/parameters/authorization_uuid' responses: '200': description: Authorization details schema: $ref: '#/definitions/MeetingAuthorization' '400': $ref: '#/responses/CreateError' '404': $ref: '#/responses/NotFoundError' /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: - meeting_authorizations - meetings - users parameters: - $ref: '#/parameters/meeting_uuid' responses: '200': description: Authorizations list schema: $ref: '#/definitions/MeetingAuthorizationItems' '404': $ref: '#/responses/NotFoundError' /users/me/meetings/{meeting_uuid}/authorizations/{authorization_uuid}: get: operationId: get_user_meeting_authorization summary: Read the guest authorization to enter a meeting description: '**Required ACL:** confd.users.me.meetings.{meeting_uuid}.authorizations.{authorization_uuid}.read' tags: - meeting_authorizations - meetings - guests parameters: - $ref: '#/parameters/guest_uuid' - $ref: '#/parameters/meeting_uuid' - $ref: '#/parameters/authorization_uuid' responses: '200': description: Authorization details schema: $ref: '#/definitions/MeetingAuthorization' '400': $ref: '#/responses/CreateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_user_meeting_authorization summary: Delete the guest authorization to enter a meeting description: '**Required ACL:** confd.users.me.meetings.{meeting_uuid}.authorizations.{authorization_uuid}.read' tags: - meeting_authorizations - meetings - guests parameters: - $ref: '#/parameters/guest_uuid' - $ref: '#/parameters/meeting_uuid' - $ref: '#/parameters/authorization_uuid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /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: - meeting_authorizations - meetings - users parameters: - $ref: '#/parameters/meeting_uuid' - $ref: '#/parameters/authorization_uuid' responses: '200': description: Authorization details schema: $ref: '#/definitions/MeetingAuthorization' '400': $ref: '#/responses/CreateError' '404': $ref: '#/responses/NotFoundError' /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: - meeting_authorizations - meetings - users parameters: - $ref: '#/parameters/meeting_uuid' - $ref: '#/parameters/authorization_uuid' responses: '200': description: Authorization details schema: $ref: '#/definitions/MeetingAuthorization' '400': $ref: '#/responses/CreateError' '404': $ref: '#/responses/NotFoundError' /moh: get: operationId: list_moh summary: List MOH classes description: '**Required ACL:** `confd.moh.read`' tags: - moh parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: MOH list schema: $ref: '#/definitions/MohItems' post: operationId: create_moh summary: Create MOH class description: '**Required ACL:** `confd.moh.create`' tags: - moh parameters: - name: body in: body description: MOH class to create required: true schema: $ref: '#/definitions/Moh' responses: '201': description: MOH class created schema: $ref: '#/definitions/Moh' '400': $ref: '#/responses/CreateError' /moh/{moh_uuid}: get: operationId: get_moh summary: Get MOH class description: '**Required ACL:** `confd.moh.{moh_uuid}.read`' tags: - moh parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/moh_uuid' responses: '200': description: MOH class schema: $ref: '#/definitions/Moh' '404': $ref: '#/responses/NotFoundError' put: operationId: update_moh summary: Update MOH class description: '**Required ACL:** `confd.moh.{moh_uuid}.update`' tags: - moh parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/moh_uuid' - name: body in: body required: true schema: $ref: '#/definitions/Moh' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_moh summary: Delete MOH class description: '**Required ACL:** `confd.moh.{moh_uuid}.delete` Delete the MOH class and associated audio files. ' tags: - moh parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/moh_uuid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /moh/{moh_uuid}/files/{moh_filename}: get: operationId: get_moh_files summary: Get audio file description: '**Required ACL:** `confd.moh.{moh_uuid}.files.{moh_filename}.read`' tags: - moh parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/moh_uuid' - $ref: '#/parameters/moh_filename' produces: - application/octet-stream responses: '200': description: Audio file '404': $ref: '#/responses/NotFoundError' put: operationId: update_moh_files summary: Add or update audio file description: '**Required ACL:** `confd.moh.{moh_uuid}.files.{moh_filename}.update`' tags: - moh consumes: - application/octet-stream parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/moh_uuid' - $ref: '#/parameters/moh_filename' - name: body in: body required: true schema: format: binary responses: '204': $ref: '#/responses/ResourceUpdated' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_moh_files summary: Delete audio file description: '**Required ACL:** `confd.moh.{moh_uuid}.files.{moh_filename}.delete`' tags: - moh parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/moh_uuid' - $ref: '#/parameters/moh_filename' responses: '204': $ref: '#/responses/ResourceDeleted' '404': $ref: '#/responses/NotFoundError' /outcalls: get: operationId: list_outcalls summary: List outgoing calls description: '**Required ACL:** `confd.outcalls.read`' tags: - outcalls parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Outgoing calls list schema: $ref: '#/definitions/OutcallItems' post: operationId: create_outcall summary: Create outgoing call description: '**Required ACL:** `confd.outcalls.create`' tags: - outcalls parameters: - name: body in: body description: Outgoing call to create required: true schema: $ref: '#/definitions/Outcall' - $ref: '#/parameters/tenantuuid' responses: '201': description: Outgoing call created schema: $ref: '#/definitions/Outcall' '400': $ref: '#/responses/CreateError' /outcalls/{outcall_id}: get: operationId: get_outcall summary: Get outgoing call description: '**Required ACL:** `confd.outcalls.{outcall_id}.read`' tags: - outcalls parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/outcallid' responses: '200': description: Outgoing call schema: $ref: '#/definitions/Outcall' '404': $ref: '#/responses/NotFoundError' put: operationId: update_outcall summary: Update outgoing call description: '**Required ACL:** `confd.outcalls.{outcall_id}.update`' tags: - outcalls parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/outcallid' - name: body in: body required: true schema: $ref: '#/definitions/Outcall' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_outcall summary: Delete outgoing call description: '**Required ACL:** `confd.outcalls.{outcall_id}.delete`' tags: - outcalls parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/outcallid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /outcalls/{outcall_id}/callpermissions/{callpermission_id}: put: operationId: associate_outcall_callpermission summary: Associate outcall and call permission description: '**Required ACL:** `confd.outcalls.{outcall_id}.callpermissions.{call_permission_id}.update`' tags: - outcalls - callpermissions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/outcallid' - $ref: '#/parameters/callpermissionid' responses: '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_outcall_callpermission summary: Dissociate outcall and call permission description: '**Required ACL:** `confd.outcalls.{outcall_id}.callpermissions.{call_permission_id}.delete`' tags: - outcalls - callpermissions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/outcallid' - $ref: '#/parameters/callpermissionid' responses: '204': description: Outcall and Call Permission dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /outcalls/{outcall_id}/extensions/{extension_id}: put: operationId: associate_outcall_extension summary: Associate outcall and extension description: '**Required ACL:** `confd.outcalls.{outcall_id}.extensions.{extension_id}.update`' tags: - outcalls - extensions parameters: - $ref: '#/parameters/outcallid' - $ref: '#/parameters/extensionid' - name: body in: body description: Outgoing Extension schema: $ref: '#/definitions/OutcallExtension' responses: '204': description: Trunk and Custom endpoint associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_outcall_extension summary: Dissociate outcall and extension description: '**Required ACL:** `confd.outcalls.{outcall_id}.extensions.{extension_id}.delete`' tags: - outcalls - extensions parameters: - $ref: '#/parameters/outcallid' - $ref: '#/parameters/extensionid' responses: '204': description: Outcall and Extension dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /outcalls/{outcall_id}/schedules/{schedule_id}: put: operationId: associate_outcall_schedule summary: Associate outcall and schedule description: '**Required ACL:** `confd.outcalls.{outcall_id}.schedules.{schedule_id}.update`' tags: - outcalls - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/outcallid' - $ref: '#/parameters/scheduleid' responses: '204': description: Outcall and Schedule associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_outcall_schedule summary: Dissociate outcall and schedule description: '**Required ACL:** `confd.outcalls.{outcall_id}.schedules.{schedule_id}.delete`' tags: - outcalls - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/outcallid' - $ref: '#/parameters/scheduleid' responses: '204': description: Outcall and Schedule dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /outcalls/{outcall_id}/trunks: put: operationId: associate_outcall_trunks summary: Associate outcall and trunks description: '**Required ACL:** `confd.outcalls.{outcall_id}.trunks.update`' tags: - outcalls - trunks parameters: - $ref: '#/parameters/outcallid' - name: body in: body description: Trunks to associated required: true schema: $ref: '#/definitions/TrunksId' responses: '204': description: Outcall and Trunks associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /pagings: get: operationId: list_pagings summary: List paging description: '**Required ACL:** `confd.pagings.read`' tags: - pagings parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Pagings list schema: $ref: '#/definitions/PagingItems' post: operationId: create_paging summary: Create paging description: '**Required ACL:** `confd.pagings.create`' tags: - pagings parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Paging to create required: true schema: $ref: '#/definitions/Paging' responses: '201': description: Paging created schema: $ref: '#/definitions/Paging' '400': $ref: '#/responses/CreateError' /pagings/{paging_id}: get: operationId: get_paging summary: Get paging description: '**Required ACL:** `confd.pagings.{paging_id}.read`' tags: - pagings parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/pagingid' responses: '200': description: Paging schema: $ref: '#/definitions/Paging' '404': $ref: '#/responses/NotFoundError' put: operationId: update_paging summary: Update paging description: '**Required ACL:** `confd.pagings.{paging_id}.update`' tags: - pagings parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/pagingid' - name: body in: body required: true schema: $ref: '#/definitions/Paging' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_paging summary: Delete paging description: '**Required ACL:** `confd.pagings.{paging_id}.delete`' tags: - pagings parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/pagingid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /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: - pagings - users parameters: - $ref: '#/parameters/pagingid' - name: body in: body description: Users to associated required: true schema: $ref: '#/definitions/UsersUuid' responses: '204': description: Paging and Users associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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: - pagings - users parameters: - $ref: '#/parameters/pagingid' - name: body in: body description: Users to associated required: true schema: $ref: '#/definitions/UsersUuid' responses: '204': description: Paging and Users associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /parkinglots: get: operationId: list_parking_lots summary: List parking lots description: '**Required ACL:** `confd.parkinglots.read`' tags: - parking_lots parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Parking lots list schema: $ref: '#/definitions/ParkingLotItems' post: operationId: create_parking_lot summary: Create parking lot description: '**Required ACL:** `confd.parkinglots.create`' tags: - parking_lots parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Parking lot to create required: true schema: $ref: '#/definitions/ParkingLot' responses: '201': description: Parking lot created schema: $ref: '#/definitions/ParkingLot' '400': $ref: '#/responses/CreateError' /parkinglots/{parking_lot_id}: get: operationId: get_parking_lot summary: Get parking lot description: '**Required ACL:** `confd.parkinglots.{parking_lot_id}.read`' tags: - parking_lots parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/parkinglotid' responses: '200': description: Parking lot schema: $ref: '#/definitions/ParkingLot' '404': $ref: '#/responses/NotFoundError' put: operationId: update_parking_lot summary: Update parking lot description: '**Required ACL:** `confd.parkinglots.{parking_lot_id}.update`' tags: - parking_lots parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/parkinglotid' - name: body in: body required: true schema: $ref: '#/definitions/ParkingLot' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_parking_lot summary: Delete parking lot description: '**Required ACL:** `confd.parkinglots.{parking_lot_id}.delete`' tags: - parking_lots parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/parkinglotid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /parkinglots/{parking_lot_id}/extensions/{extension_id}: put: operationId: associate_parking_lot_extension summary: Associate parking_lot and extension description: '**Required ACL:** `confd.parkinglots.{parking_lot_id}.extensions.{extension_id}.update`' tags: - parking_lots - extensions parameters: - $ref: '#/parameters/parkinglotid' - $ref: '#/parameters/extensionid' responses: '204': description: Parking Lot and Extension associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_parking_lot_extension summary: Dissociate parking lot and extension description: '**Required ACL:** `confd.parkinglots.{parking_lot_id}.extensions.{extension_id}.delete`' tags: - parking_lots - extensions parameters: - $ref: '#/parameters/parkinglotid' - $ref: '#/parameters/extensionid' responses: '204': description: Parking Lot and Extension dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /phone-numbers: get: operationId: list_phone_numbers summary: List phone numbers description: '**Required ACL:** `confd.phone-numbers.read`' tags: - phone-numbers parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' - $ref: '#/parameters/shared' - $ref: '#/parameters/main' responses: '200': description: Phone number list schema: $ref: '#/definitions/PhoneNumberItems' post: operationId: create_phone_number summary: Add a new phone number description: '**Required ACL:** `confd.phone-numbers.create`' tags: - phone-numbers parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: specification of the phone number to create required: true schema: $ref: '#/definitions/PhoneNumber' responses: '201': description: Phone number created schema: $ref: '#/definitions/PhoneNumber' '400': $ref: '#/responses/CreateError' /phone-numbers/ranges: post: operationId: create_phone_numbers_range summary: Add a range of phone numbers description: '**Required ACL:** `confd.phone-numbers.create`' tags: - phone-numbers parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: specification of the phone number range to create required: true schema: $ref: '#/definitions/PhoneNumberRange' responses: '201': description: Phone number created schema: $ref: '#/definitions/PhoneNumberRangeResponse' '400': $ref: '#/responses/CreateError' /phone-numbers/{phone_number_uuid}: get: operationId: get_phone_number summary: Get phone number description: '**Required ACL:** `confd.phone-numbers.{phone_number_uuid}.read`' tags: - phone-numbers parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/phone_number_uuid' responses: '200': description: Phone Number schema: $ref: '#/definitions/PhoneNumber' '404': $ref: '#/responses/NotFoundError' put: operationId: update_phone_numbers summary: Update Phone Number description: '**Required ACL:** `confd.phone-numbers.{phone_number_uuid}.update`' tags: - phone-numbers parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/phone_number_uuid' - name: body in: body required: true schema: $ref: '#/definitions/PhoneNumberItems' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_phone_number summary: Delete Phone Number description: '**Required ACL:** `confd.phone-numbers.{phone_number_uuid}.delete`' tags: - phone-numbers parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/phone_number_uuid' responses: '204': $ref: '#/responses/ResourceDeleted' '404': $ref: '#/responses/NotFoundError' /phone-numbers/main: get: operationId: get_phone_number_main summary: Get main phone number description: '**Required ACL:** `confd.phone-numbers.main.read`' tags: - phone-numbers parameters: - $ref: '#/parameters/tenantuuid' responses: '200': description: main phone number schema: $ref: '#/definitions/PhoneNumber' '404': description: main phone number not found schema: $ref: '#/responses/NotFoundError' put: operationId: set_phone_number_main summary: set the 'main' phone number for the tenant description: '**Required ACL:** `confd.phone-numbers.main.update`' tags: - phone-numbers parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: specification of the phone number to set as main required: true schema: type: object required: - phone_number_uuid properties: phone_number_uuid: type: string description: UUID of the phone number to set as main example: b5bcc98c-10cf-4a68-bf3d-802fb5170911 responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' /asterisk/pjsip/doc: get: description: '**Required ACL:**: `confd.asterisk.pjsip.doc.read` List all available configuration options for PJSIP, those values are used to validate to content of POST and PUT requests. ' operationId: show_pjsip_doc responses: '200': description: A list of all PJSIP configuration options schema: $ref: '#/definitions/PJSIPConfigurationOptions' '400': description: wazo-confd could not read the PJSIP documentation file schema: $ref: '#/definitions/Error' summary: List all PJSIP configuration options tags: - asterisk - sip /asterisk/pjsip/system: get: operationId: list_asterisk_pjsip_system summary: List of PJSIP options for the `system` section description: '**Required ACL:** `confd.asterisk.pjsip.system.read`' tags: - asterisk - sip responses: '200': description: SIP system schema: $ref: '#/definitions/PJSIPSystem' put: operationId: update_asterisk_pjsip_system summary: Update PJSIP section options description: '**Required ACL:** `confd.asterisk.pjsip.system.update` The PJSIP system configuration is shared among all tenants of an instance. **WARNING** This endpoint restore to default value or delete all fields that are not defined. ' tags: - sip - asterisk parameters: - name: body in: body required: true schema: $ref: '#/definitions/PJSIPSystem' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /asterisk/pjsip/global: get: operationId: list_asterisk_pjsip_global summary: List of PJSIP options for the `global` section description: '**Required ACL:** `confd.asterisk.pjsip.global.read`' tags: - asterisk - sip responses: '200': description: SIP global schema: $ref: '#/definitions/PJSIPGlobal' put: operationId: update_asterisk_pjsip_global summary: Update PJSIP section options description: '**Required ACL:** `confd.asterisk.pjsip.global.update` The PJSIP global configuration is shared among all tenants of an instance. **WARNING** This endpoint restore to default value or delete all fields that are not defined. ' tags: - sip - asterisk parameters: - name: body in: body required: true schema: $ref: '#/definitions/PJSIPGlobal' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /sip/transports: get: operationId: list_sip_transports summary: List all configured SIP transports description: '**Required ACL:** `confd.sip.transports.read`' tags: - sip parameters: - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: The SIP transport list schema: $ref: '#/definitions/SIPTransportItems' post: operationId: create_sip_transport summary: Create SIP transport description: '**Required ACL:** `confd.sip.transports.create` Transports are shared between all tenants and should be readable to the tenants'' administrators. There should always be atleast one transport configured on the system. ' tags: - sip parameters: - name: body in: body description: Transport to create required: true schema: $ref: '#/definitions/SIPTransport' responses: '201': description: SIP transport created schema: $ref: '#/definitions/SIPTransport' '400': $ref: '#/responses/CreateError' /sip/transports/{transport_uuid}: get: operationId: get_sip_transport summary: Get SIP transport description: '**Required ACL**: `confd.sip.transports.{transport_uuid}.read`' tags: - sip parameters: - $ref: '#/parameters/transportuuid' responses: '200': description: A SIP transport schema: $ref: '#/definitions/SIPTransport' '404': $ref: '#/responses/NotFoundError' put: operationId: update_sip_transport summary: Update SIP transport description: '**Required ACL**: `confd.sip.transports.{transport_uuid}.update`' tags: - sip parameters: - $ref: '#/parameters/transportuuid' - name: body in: body required: true schema: $ref: '#/definitions/SIPTransport' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_sip_transport summary: Delete SIP transport description: '**Required ACL:** `confd.sip.transports.{transport_uuid}.delete` Deletes a transport, all associated configuration will be assigned to the `fallback` transport. ' tags: - sip parameters: - $ref: '#/parameters/transportuuid' - $ref: '#/parameters/fallback_transport' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /provisioning/networking: get: operationId: get_provisioning_networking summary: Get Provisioning Networking configuration description: '**Required ACL:** `confd.provisioning.networking.read`' tags: - provisioning responses: '200': description: Provisioning Networking configuration schema: $ref: '#/definitions/ProvisioningNetworking' put: operationId: update_provisioning_networking summary: Update Provisioning Networking configuration description: '**Required ACL:** `confd.provisioning.networking.update`' tags: - provisioning parameters: - name: body in: body required: true schema: $ref: '#/definitions/ProvisioningNetworking' responses: '204': $ref: '#/responses/ResourceUpdated' /queues: get: operationId: list_queues summary: List queues description: '**Required ACL:** `confd.queues.read`' tags: - queues parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Queues list schema: $ref: '#/definitions/QueueItems' post: operationId: create_queue summary: Create queue description: '**Required ACL:** `confd.queues.create`' tags: - queues parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Queue to create required: true schema: $ref: '#/definitions/Queue' responses: '201': description: Queue created schema: $ref: '#/definitions/Queue' '400': $ref: '#/responses/CreateError' /queues/{queue_id}: get: operationId: get_queue summary: Get queue description: '**Required ACL:** `confd.queues.{queue_id}.read`' tags: - queues parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' responses: '200': description: Queue schema: $ref: '#/definitions/Queue' '404': $ref: '#/responses/NotFoundError' put: operationId: update_queue summary: Update queue description: '**Required ACL:** `confd.queues.{queue_id}.update`' tags: - queues parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' - name: body in: body required: true schema: $ref: '#/definitions/Queue' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_queue summary: Delete queue description: '**Required ACL:** `confd.queues.{queue_id}.delete`' tags: - queues parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /queues/{queue_id}/extensions/{extension_id}: put: operationId: associate_queue_extension summary: Associate queue and extension description: '**Required ACL:** `confd.queues.{queue_id}.extensions.{extension_id}.update`' tags: - queues - extensions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' - $ref: '#/parameters/extensionid' responses: '204': description: Queue and Extension associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_queue_extension summary: Dissociate queue and extension description: '**Required ACL:** `confd.queues.{queue_id}.extensions.{extension_id}.delete`' tags: - queues - extensions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' - $ref: '#/parameters/extensionid' responses: '204': description: Queue and Extension dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /queues/{queue_id}/fallbacks: get: operationId: get_queue_fallback summary: List all fallbacks for queue description: '**Required ACL:** `confd.queues.{queue_id}.fallbacks.read`' tags: - queues parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' responses: '200': description: Fallbacks for queue schema: $ref: '#/definitions/QueueFallbacks' put: operationId: update_queue_fallback summary: Update queue's fallbacks description: '**Required ACL:** `confd.queues.{queue_id}.fallbacks.update` **WARNING** This endpoint delete all fields that are not defined.' tags: - queues parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' - name: body in: body description: Fallbacks for queue schema: $ref: '#/definitions/QueueFallbacks' responses: '204': description: Queue's fallbacks updated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /asterisk/queues/general: get: operationId: list_asterisk_queue_general summary: List Queue general options description: '**Required ACL:** `confd.asterisk.queue.general.read`' tags: - asterisk responses: '200': description: Queue general schema: $ref: '#/definitions/QueueGeneral' put: operationId: update_asterisk_queue_general summary: Update Queue general option description: '**Required ACL:** `confd.asterisk.queue.general.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk parameters: - name: body in: body required: true schema: $ref: '#/definitions/QueueGeneral' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /queues/{queue_id}/members/agents/{agent_id}: put: operationId: update_agent_queue_association summary: Update Agent-Queue association description: '**Required ACL:** `confd.queues.{queue_id}.members.agents.{agent_id}.update`' tags: - agents - queues parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' - $ref: '#/parameters/agentid' - name: body in: body schema: $ref: '#/definitions/QueueMemberAgent' responses: '204': description: Association updated '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_agent_queue summary: Dissociate agent and queue description: '**Required ACL:** `confd.queues.{queue_id}.members.agents.{agent_id}.delete`' tags: - agents - queues parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' - $ref: '#/parameters/agentid' responses: '204': description: Agent and Queue dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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: - queues - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' - $ref: '#/parameters/useriduuid' - name: body in: body schema: $ref: '#/definitions/QueueMemberUser' responses: '204': description: Association updated '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_user_queue summary: Dissociate user and queue description: '**Required ACL:** `confd.queues.{queue_id}.members.users.{user_id}.delete`' tags: - queues - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' - $ref: '#/parameters/useriduuid' responses: '204': description: User and Queue dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /queues/{queue_id}/schedules/{schedule_id}: put: operationId: associate_queue_schedule summary: Associate queue and schedule description: '**Required ACL:** `confd.queues.{queue_id}.schedules.{schedule_id}.update`' tags: - queues - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' - $ref: '#/parameters/scheduleid' responses: '204': description: Queue and Schedule associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_queue_schedule summary: Dissociate queue and schedule description: '**Required ACL:** `confd.queues.{queue_id}.schedules.{schedule_id}.delete`' tags: - queues - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/queueid' - $ref: '#/parameters/scheduleid' responses: '204': description: Queue and Schedule dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /recordings/announcements: get: operationId: get_recordings_announcements summary: Get announcements configuration description: '**Required ACL:** `confd.recordings.announcements.read`' tags: - recordings-announcements parameters: - $ref: '#/parameters/tenantuuid' responses: '200': description: Recordings announcements configuration schema: $ref: '#/definitions/RecordingsAnnouncements' put: operationId: update_recordings_announcements summary: Update recordings announcements configuration description: '**Required ACL:** `confd.recordings.announcements.update`' tags: - recordings-announcements parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body required: true schema: $ref: '#/definitions/RecordingsAnnouncements' responses: '204': $ref: '#/responses/ResourceUpdated' /registers/iax: get: operationId: list_registers_iax summary: List registers iax description: '**Required ACL:** `confd.registers.iax.read`' tags: - registers - iax parameters: - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Registers IAX list schema: $ref: '#/definitions/RegisterIAXItems' post: operationId: create_register_iax summary: Create register_iax description: '**Required ACL:** `confd.registers.iax.create`' tags: - registers - iax parameters: - name: body in: body description: Register iax to create required: true schema: $ref: '#/definitions/RegisterIAX' responses: '201': description: Register IAX created schema: $ref: '#/definitions/RegisterIAX' '400': $ref: '#/responses/CreateError' /registers/iax/{register_iax_id}: get: operationId: get_register_iax summary: Get register IAX description: '**Required ACL:** `confd.registers.iax.{register_iax_id}.read`' tags: - registers - iax parameters: - $ref: '#/parameters/registeriaxid' responses: '200': description: Register IAX schema: $ref: '#/definitions/RegisterIAX' '404': $ref: '#/responses/NotFoundError' put: operationId: update_register_iax summary: Update register IAX description: '**Required ACL:** `confd.registers.iax.{register_iax_id}.update`' tags: - registers - iax parameters: - $ref: '#/parameters/registeriaxid' - name: body in: body required: true schema: $ref: '#/definitions/RegisterIAX' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_register_iax summary: Delete register IAX description: '**Required ACL:** `confd.registers.iax.{register_iax_id}.delete`' tags: - registers - iax parameters: - $ref: '#/parameters/registeriaxid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /registrars: get: operationId: get_registrars summary: Get registrars description: '**Required ACL:** `confd.registrars.read`' tags: - registrars parameters: - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Registrar list schema: $ref: '#/definitions/RegistrarItems' post: operationId: create_registrar summary: Create registrar description: '**Required ACL:** `confd.registrars.create`' tags: - registrars parameters: - name: body in: body description: Registrar to create required: true schema: $ref: '#/definitions/Registrar' responses: '201': description: Registrar created schema: $ref: '#/definitions/Registrar' '400': $ref: '#/responses/CreateError' /registrars/{registrar_id}: get: operationId: get_registrar summary: Get registrar description: '**Required ACL:** `confd.registrars.{registrar_id}.read`' tags: - registrars parameters: - $ref: '#/parameters/registrar_id' responses: '200': description: Registrar schema: $ref: '#/definitions/Registrar' '404': $ref: '#/responses/NotFoundError' put: operationId: update_registrar summary: Update registrar description: '**Required ACL:** `confd.registrars.{registrar_id}.update`' tags: - registrars parameters: - $ref: '#/parameters/registrar_id' - name: body in: body description: Registrar body required: true schema: $ref: '#/definitions/Registrar' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' delete: operationId: delete_registrar summary: Delete registrar description: '**Required ACL:** `confd.registrars.{registrar_id}.delete`' tags: - registrars parameters: - $ref: '#/parameters/registrar_id' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /asterisk/rtp/general: get: operationId: list_asterisk_rtp_general summary: List RTP general options description: '**Required ACL:** `confd.asterisk.rtp.general.read`' tags: - asterisk responses: '200': description: RTP general schema: $ref: '#/definitions/RTPConfiguration' put: operationId: update_asterisk_rtp_general summary: Update RTP general option description: '**Required ACL:** `confd.asterisk.rtp.general.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk parameters: - name: body in: body required: true schema: $ref: '#/definitions/RTPConfiguration' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /asterisk/rtp/ice_host_candidates: get: operationId: list_asterisk_rtp_ice_host_candidates summary: List RTP ice_host_candidates options description: '**Required ACL:** `confd.asterisk.rtp.ice_host_candidates.read`' tags: - asterisk responses: '200': description: RTP ice_host_candidates schema: $ref: '#/definitions/RTPConfiguration' put: operationId: update_asterisk_rtp_ice_host_candidates summary: Update RTP ice_host_candidates option description: '**Required ACL:** `confd.asterisk.rtp.ice_host_candidates.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk parameters: - name: body in: body required: true schema: $ref: '#/definitions/RTPConfiguration' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /asterisk/sccp/general: get: operationId: list_asterisk_sccp_general summary: List SCCP general options description: '**Required ACL:** `confd.asterisk.sccp.general.read`' tags: - asterisk - sccp responses: '200': description: SCCP general schema: $ref: '#/definitions/SCCPGeneral' put: operationId: update_asterisk_sccp_general summary: Update SCCP general option description: '**Required ACL:** `confd.asterisk.sccp.general.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk - sccp parameters: - name: body in: body required: true schema: $ref: '#/definitions/SCCPGeneral' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /schedules: get: operationId: list_schedules summary: List schedule description: '**Required ACL:** `confd.schedules.read`' tags: - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Schedules list schema: $ref: '#/definitions/ScheduleItems' post: operationId: create_schedule summary: Create schedule description: '**Required ACL:** `confd.schedules.create`' tags: - schedules parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Schedule to create required: true schema: $ref: '#/definitions/Schedule' responses: '201': description: Schedule created schema: $ref: '#/definitions/Schedule' '400': $ref: '#/responses/CreateError' /schedules/{schedule_id}: get: operationId: get_schedule summary: Get schedule description: '**Required ACL:** `confd.schedules.{schedule_id}.read`' tags: - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/scheduleid' responses: '200': description: Schedule schema: $ref: '#/definitions/Schedule' '404': $ref: '#/responses/NotFoundError' put: operationId: update_schedule summary: Update schedule description: '**Required ACL:** `confd.schedules.{schedule_id}.update`' tags: - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/scheduleid' - name: body in: body required: true schema: $ref: '#/definitions/Schedule' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_schedule summary: Delete schedule description: '**Required ACL:** `confd.schedules.{schedule_id}.delete`' tags: - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/scheduleid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /agents/skills: get: operationId: list_skills summary: List skill description: '**Required ACL:** `confd.agents.skills.read`' tags: - agents - skills parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Skills list schema: $ref: '#/definitions/SkillItems' post: operationId: create_skill summary: Create skill description: '**Required ACL:** `confd.agents.skills.create`' tags: - agents - skills parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Skill to create required: true schema: $ref: '#/definitions/Skill' responses: '201': description: Skill created schema: $ref: '#/definitions/Skill' '400': $ref: '#/responses/CreateError' /agents/skills/{skill_id}: get: operationId: get_skill summary: Get skill description: '**Required ACL:** `confd.agents.skills.{skill_id}.read`' tags: - agents - skills parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/skillid' responses: '200': description: Skill schema: $ref: '#/definitions/Skill' '404': $ref: '#/responses/NotFoundError' put: operationId: update_skill summary: Update skill description: '**Required ACL:** `confd.agents.skills.{skill_id}.update`' tags: - skills parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/skillid' - name: body in: body required: true schema: $ref: '#/definitions/Skill' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_skill summary: Delete skill description: '**Required ACL:** `confd.agents.skills.{skill_id}.delete`' tags: - skills parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/skillid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /queues/skillrules: get: operationId: list_skill_rules summary: List skill rule description: '**Required ACL:** `confd.queues.skillrules.read`' tags: - queues - skills parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Skill rules list schema: $ref: '#/definitions/SkillRuleItems' post: operationId: create_skill_rule summary: Create skill rule description: '**Required ACL:** `confd.queues.skillrules.create`' tags: - queues - skills parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Skill rule to create required: true schema: $ref: '#/definitions/SkillRule' responses: '201': description: Skill rule created schema: $ref: '#/definitions/SkillRule' '400': $ref: '#/responses/CreateError' /queues/skillrules/{skillrule_id}: get: operationId: get_skill_rule summary: Get skill rule description: '**Required ACL:** `confd.queues.skillrules.{skillrule_id}.read`' tags: - queues - skills parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/skillruleid' responses: '200': description: Skill rule schema: $ref: '#/definitions/SkillRule' '404': $ref: '#/responses/NotFoundError' put: operationId: update_skill_rule summary: Update skill rule description: '**Required ACL:** `confd.queues.skillrules.{skillrule_id}.update`' tags: - queues - skills parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/skillruleid' - name: body in: body required: true schema: $ref: '#/definitions/SkillRule' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_skill_rule summary: Delete skill rule description: '**Required ACL:** `confd.queues.skillrules.{skillrule_id}.delete`' tags: - queues - skills parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/skillruleid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /sounds: get: operationId: list_sounds summary: List sound categories description: '**Required ACL:** `confd.sounds.read`' tags: - sounds parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: sounds list schema: $ref: '#/definitions/SoundItems' post: operationId: create_sounds summary: Create sound category description: '**Required ACL:** `confd.sounds.create`' tags: - sounds parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Sound category to create required: true schema: $ref: '#/definitions/Sound' responses: '201': description: Sound category created schema: $ref: '#/definitions/Sound' '400': $ref: '#/responses/CreateError' /sounds/{sound_category}: get: operationId: get_sounds summary: Get sound category description: '**Required ACL:** `confd.sounds.{sound_category}.read`' tags: - sounds parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/sound_category' responses: '200': description: Sound category schema: $ref: '#/definitions/Sound' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_sounds summary: Delete sound category description: '**Required ACL:** `confd.sounds.{sound_category}.delete` Delete the sound category and associated audio files. ' tags: - sounds parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/sound_category' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /sounds/{sound_category}/files/{sound_filename}: get: operationId: get_sounds_files summary: Get audio file description: '**Required ACL:** `confd.sounds.{sound_category}.files.{sound_filename}.read`' tags: - sounds parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/sound_category' - $ref: '#/parameters/sound_filename' - $ref: '#/parameters/sound_language' - $ref: '#/parameters/sound_format' produces: - application/octet-stream responses: '200': description: Audio file '404': $ref: '#/responses/NotFoundError' put: operationId: update_sounds_files summary: Add or update audio file description: '**Required ACL:** `confd.sounds.{sound_category}.files.{sound_filename}.update`' tags: - sounds consumes: - application/octet-stream parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/sound_category' - $ref: '#/parameters/sound_filename' - $ref: '#/parameters/sound_language' - $ref: '#/parameters/sound_format' - name: body in: body required: true schema: format: binary responses: '204': $ref: '#/responses/ResourceUpdated' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_sounds_files summary: Delete audio file description: '**Required ACL:** `confd.sounds.{sound_category}.files.{sound_filename}.delete`' tags: - sounds parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/sound_category' - $ref: '#/parameters/sound_filename' - $ref: '#/parameters/sound_language' - $ref: '#/parameters/sound_format' responses: '204': $ref: '#/responses/ResourceDeleted' '404': $ref: '#/responses/NotFoundError' /sounds/languages: get: operationId: list_sounds_languages summary: List all languages for sounds description: '**Required ACL:** `confd.sounds.languages.read`' tags: - sounds responses: '200': description: List sounds languages schema: $ref: '#/definitions/SoundLanguageItems' /status: get: summary: Provides internal status of wazo-confd` description: '**Required ACL:** `confd.status.read`' tags: - status responses: '200': description: The internal status of wazo-confd schema: $ref: '#/definitions/StatusSummary' /switchboards: get: summary: List switchboards description: '**Required ACL:** `confd.switchboards.read`' tags: - switchboards parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: List of switchboards schema: type: object properties: items: type: array items: $ref: '#/definitions/Switchboard' post: summary: Create a switchboard description: '**Required ACL:** `confd.switchboards.create`' parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Switchboard parameters required: true schema: $ref: '#/definitions/Switchboard' tags: - switchboards responses: '201': description: The switchboard has been created schema: $ref: '#/definitions/Switchboard' '400': $ref: '#/responses/CreateError' /switchboards/{switchboard_uuid}: get: summary: Get a switchboard description: '**Required ACL:** `confd.switchboards.{switchboard_uuid}.read`' tags: - switchboards parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/switchboard_uuid' responses: '200': description: Switchboard schema: $ref: '#/definitions/Switchboard' '404': $ref: '#/responses/NotFoundError' put: summary: Update a switchboard description: '**Required ACL:** `confd.switchboards.{switchboard_uuid}.update`' tags: - switchboards parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/switchboard_uuid' - name: body in: body required: true schema: $ref: '#/definitions/Switchboard' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: summary: Delete a switchboard description: '**Required ACL:** `confd.switchboards.{switchboard_uuid}.delete`' tags: - switchboards parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/switchboard_uuid' responses: '204': $ref: '#/responses/ResourceDeleted' '404': $ref: '#/responses/NotFoundError' /switchboards/{switchboard_uuid}/fallbacks: get: operationId: get_switchboard_fallback summary: List all fallbacks for switchboard description: '**Required ACL:** `confd.switchboards.{switchboard_uuid}.fallbacks.read`' tags: - switchboards parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/switchboard_uuid' responses: '200': description: Fallbacks for switchboard schema: $ref: '#/definitions/SwitchboardFallbacks' put: operationId: update_switchboard_fallback summary: Update switchboard's fallbacks description: '**Required ACL:** `confd.switchboards.{switchboard_uuid}.fallbacks.update` **WARNING** This endpoint delete all fields that are not defined.' tags: - switchboards parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/switchboard_uuid' - name: body in: body description: Fallbacks for switchboard schema: $ref: '#/definitions/SwitchboardFallbacks' responses: '204': description: Switchboard's fallbacks updated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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: - switchboards - users parameters: - $ref: '#/parameters/switchboard_uuid' - name: body in: body description: Users to associate with the switchboard required: true schema: $ref: '#/definitions/UsersUuid' responses: '204': description: Switchboard and users have been associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /tenants: get: operationId: list_tenants summary: List tenants description: '**Required ACL**: `confd.tenants.read`' tags: - tenants parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Trunks list schema: $ref: '#/definitions/TenantItems' /tenants/{tenant_uuid}: get: operationId: get_tenant summary: Get tenant description: '**Required ACL:** `confd.tenants.{tenant_uuid}.read`' tags: - tenants parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/urltenantuuid' responses: '200': description: Tenant schema: $ref: '#/definitions/Tenant' '404': $ref: '#/responses/NotFoundError' /timezones: get: operationId: list_timezones summary: List all available timezones description: '**Required ACL:** `confd.timezones.read`' tags: - timezones responses: '200': description: List timezones schema: $ref: '#/definitions/TimezoneItems' /trunks: get: operationId: list_trunks summary: List trunks description: '**Required ACL:** `confd.trunks.read`' tags: - trunks parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Trunks list schema: $ref: '#/definitions/TrunkItems' post: operationId: create_trunk summary: Create trunk description: '**Required ACL:** `confd.trunks.create`' tags: - trunks parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: Trunk to create required: false schema: $ref: '#/definitions/Trunk' responses: '201': description: Trunk created schema: $ref: '#/definitions/Trunk' '400': $ref: '#/responses/CreateError' /trunks/{trunk_id}: get: operationId: get_trunk summary: Get trunk description: '**Required ACL:** `confd.trunks.{trunk_id}.read`' tags: - trunks parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/trunkid' responses: '200': description: Trunk schema: $ref: '#/definitions/Trunk' '404': $ref: '#/responses/NotFoundError' put: operationId: update_trunk summary: Update trunk description: '**Required ACL:** `confd.trunks.{trunk_id}.update`' tags: - trunks parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/trunkid' - name: body in: body required: true schema: $ref: '#/definitions/Trunk' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_trunk summary: Delete trunk description: '**Required ACL:** `confd.trunks.{trunk_id}.delete`' tags: - trunks parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/trunkid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /trunks/{trunk_id}/endpoints/custom/{custom_id}: put: operationId: associate_trunk_endpoint_custom summary: Associate trunk and Custom endpoint description: '**Required ACL:** `confd.trunks.{trunk_id}.endpoints.custom.{custom_id}.update`' tags: - trunks - endpoints - custom parameters: - $ref: '#/parameters/trunkid' - $ref: '#/parameters/customid' responses: '204': description: Trunk and Custom endpoint associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_trunk_endpoint_custom summary: Dissociate trunk and Custom endpoint description: '**Required ACL:** `confd.trunks.{trunk_id}.endpoints.custom.{custom_id}.delete`' tags: - trunks - endpoints - custom parameters: - $ref: '#/parameters/trunkid' - $ref: '#/parameters/customid' responses: '204': description: Trunk and Custom endpoint dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /trunks/{trunk_id}/endpoints/iax/{iax_id}: put: operationId: associate_trunk_endpoint_iax summary: Associate trunk and IAX endpoint description: '**Required ACL:** `confd.trunks.{trunk_id}.endpoints.iax.{iax_id}.update`' tags: - trunks - endpoints - iax parameters: - $ref: '#/parameters/trunkid' - $ref: '#/parameters/iaxid' responses: '204': description: Trunk and IAX endpoint associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_trunk_endpoint_iax summary: Dissociate trunk and IAX endpoint description: '**Required ACL:** `confd.trunks.{trunk_id}.endpoints.iax.{iax_id}.delete`' tags: - trunks - endpoints - iax parameters: - $ref: '#/parameters/trunkid' - $ref: '#/parameters/iaxid' responses: '204': description: Trunk and IAX endpoint dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /trunks/{trunk_id}/endpoints/sip/{sip_uuid}: put: operationId: associate_trunk_endpoint_sip summary: Associate trunk and SIP endpoint description: '**Required ACL:** `confd.trunks.{trunk_id}.endpoints.sip.{sip_uuid}.update`' tags: - trunks - endpoints - sip parameters: - $ref: '#/parameters/trunkid' - $ref: '#/parameters/sipuuid' responses: '204': description: Trunk and SIP endpoint associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_trunk_endpoint_sip summary: Dissociate trunk and SIP endpoint description: '**Required ACL:** `confd.trunks.{trunk_id}.endpoints.sip.{sip_uuid}.delete`' tags: - trunks - endpoints - sip parameters: - $ref: '#/parameters/trunkid' - $ref: '#/parameters/sipuuid' responses: '204': description: Trunk and SIP endpoint dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /trunks/{trunk_id}/registers/iax/{iax_id}: put: operationId: associate_trunk_register_iax summary: Associate trunk and IAX register description: '**Required ACL:** `confd.trunks.{trunk_id}.registers.iax.{iax_id}.update`' tags: - trunks - registers - iax parameters: - $ref: '#/parameters/trunkid' - $ref: '#/parameters/iaxid' responses: '204': description: Trunk and IAX register associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_trunk_register_iax summary: Dissociate trunk and IAX register description: '**Required ACL:** `confd.trunks.{trunk_id}.registers.iax.{iax_id}.delete`' tags: - trunks - registers - iax parameters: - $ref: '#/parameters/trunkid' - $ref: '#/parameters/iaxid' responses: '204': description: Trunk and IAX register dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /users: get: operationId: list_user summary: List users description: '**Required ACL:** `confd.users.read`' tags: - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' - $ref: '#/parameters/view' - $ref: '#/parameters/query_string_uuid_filter' responses: '200': description: User list schema: $ref: '#/definitions/UserItems' post: operationId: create_user summary: Create user description: '**Required ACL:** `confd.users.create`' tags: - users parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body description: User to create required: true schema: $ref: '#/definitions/UserPost' responses: '201': description: User created schema: $ref: '#/definitions/UserPostResponse' '400': $ref: '#/responses/CreateError' /users/{user_id}: head: operationId: head_user summary: Check if user exists description: '**Required ACL:** `confd.users.{user_id}.read`' tags: - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' responses: '200': description: User exists '404': description: User does not exist get: operationId: get_user summary: Get user description: '**Required ACL:** `confd.users.{user_id}.read`' tags: - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' responses: '200': description: User schema: $ref: '#/definitions/User' '404': $ref: '#/responses/NotFoundError' 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: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - name: body in: body required: true schema: $ref: '#/definitions/User' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' 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: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - required: false type: boolean name: recursive in: query description: Indicates if the resources related to the user must be deleted too. responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /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: - forwards - users parameters: - $ref: '#/parameters/useriduuid' responses: '200': description: User-Forwards schema: $ref: '#/definitions/UserForwards' put: operationId: update_user_forwards summary: Update all forwards for a user description: '**Required ACL:** `confd.users.{user_id}.forwards.update`' tags: - forwards - users parameters: - $ref: '#/parameters/useriduuid' - name: body in: body required: true schema: $ref: '#/definitions/UserForwards' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' /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: - forwards - users parameters: - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/forward' responses: '200': description: User-Forward schema: $ref: '#/definitions/UserForward' put: operationId: update_user_forward summary: Update a forward for a user description: '**Required ACL:** `confd.users.{user_id}.forwards.{forward_name}.update`' tags: - forwards - users parameters: - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/forward' - name: body in: body required: true schema: $ref: '#/definitions/UserForward' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' /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: '#/parameters/useriduuid' responses: '200': description: User-Services schema: $ref: '#/definitions/UserServices' '404': $ref: '#/responses/NotFoundError' 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: '#/parameters/useriduuid' - name: body in: body required: true schema: $ref: '#/definitions/UserServices' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' /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: '#/parameters/useriduuid' - $ref: '#/parameters/service' responses: '200': description: User-Service schema: $ref: '#/definitions/UserService' '404': $ref: '#/responses/NotFoundError' 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: '#/parameters/useriduuid' - $ref: '#/parameters/service' - name: body in: body required: true schema: $ref: '#/definitions/UserService' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' /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 - agents parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' responses: '204': description: The user and agent have been dissociated. '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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 - agents parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/agentid' responses: '204': description: The user and agent have been associated. '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /users/me/blocklist/numbers: get: operationId: list_users_me_blocklist_numbers summary: List blocklist numbers of current user description: '**Required ACL:** `confd.users.me.blocklist.read`' tags: - blocklist parameters: - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' - name: number in: query type: string description: filter blocklisted numbers by a number string required: false - name: label in: query type: string description: filter blocklisted numbers by a label string required: false responses: '200': description: Blocklist numbers list schema: $ref: '#/definitions/UserBlocklistNumbersListResponse' post: operationId: create_users_me_blocklist_number summary: Add a new blocklist number description: '**Required ACL:** `confd.users.me.blocklist.create`' tags: - blocklist parameters: - name: body in: body description: specification of the blocklisted number to add required: true schema: $ref: '#/definitions/UserBlocklistNumber' responses: '201': description: Blocklisted number successfully added schema: $ref: '#/definitions/UserBlocklistNumber' '400': $ref: '#/responses/CreateError' /users/me/blocklist/numbers/{blocklist_number_uuid}: get: operationId: get_users_me_blocklist_number summary: Get blocklist number by uuid description: '**Required ACL:** `confd.users.me.blocklist.read`' tags: - blocklist parameters: - $ref: '#/parameters/blocklist_number_uuid' responses: '200': description: Blocklisted number schema: $ref: '#/definitions/UserBlocklistNumber' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_users_me_blocklist_number summary: Delete a single blocklisted number by uuid description: '**Required ACL:** `confd.users.me.blocklist.delete`' tags: - blocklist parameters: - $ref: '#/parameters/blocklist_number_uuid' responses: '204': $ref: '#/responses/ResourceDeleted' '404': $ref: '#/responses/NotFoundError' put: operationId: update_users_me_blocklist_number summary: Update a single blocklisted number by uuid description: '**Required ACL:** `confd.users.me.blocklist.update`' tags: - blocklist parameters: - $ref: '#/parameters/blocklist_number_uuid' - name: blocklist_number_resource in: body description: specification of the blocklisted number to update required: true schema: $ref: '#/definitions/UserBlocklistNumber' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /users/{user_uuid}/blocklist/numbers: parameters: - $ref: '#/parameters/useruuid' head: operationId: lookup_user_blocklist_number summary: Check if a number is part of a user's blocklist description: '**Required ACL:** `confd.users.{user_uuid}.blocklist.read`' tags: - blocklist parameters: - $ref: '#/parameters/tenantuuid' - name: number_exact in: query type: string description: E.164 number string to lookup(exact match) in the user's blocklist required: true responses: '204': description: The requested number is a blocklisted number headers: Wazo-Blocklist-Number-Label: type: string description: Label of the blocklisted number Wazo-Blocklist-Number-UUID: type: string description: UUID of the blocklisted number Location: type: string description: URL of the matching blocklisted number '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' get: operationId: list_user_blocklist_numbers summary: List blocklisted numbers of a user description: '**Required ACL:** `confd.users.{user_uuid}.blocklist.read`' tags: - blocklist parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' - name: number in: query type: string description: filter blocklisted numbers by a number string required: false - name: label in: query type: string description: filter blocklisted numbers by a label string required: false responses: '200': description: Blocklisted numbers list schema: $ref: '#/definitions/BlocklistNumbersListResponse' '404': $ref: '#/responses/NotFoundError' /users/blocklist/numbers: get: operationId: list_blocklist_numbers summary: List all blocklisted numbers in tenant description: '**Required ACL:** `confd.users.blocklist.read`' tags: - blocklist parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' - name: user_uuid in: query type: string description: filter blocklist numbers by the blocklist owner's uuid required: false - name: number in: query type: string description: filter blocklisted numbers by a number string required: false - name: label in: query type: string description: filter blocklisted numbers by a label string required: false responses: '200': description: Blocklisted numbers list schema: $ref: '#/definitions/BlocklistNumbersListResponse' '400': $ref: '#/responses/GenericError' /users/blocklist/numbers/{blocklist_number_uuid}: get: operationId: get_blocklist_number summary: Get blocklist number by uuid description: '**Required ACL:** `confd.users.blocklist.read`' tags: - blocklist parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/blocklist_number_uuid' responses: '200': description: Blocklisted number schema: $ref: '#/definitions/BlocklistNumber' '404': $ref: '#/responses/NotFoundError' /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 - callpermissions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/callpermissionid' responses: '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' 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 - callpermissions parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/callpermissionid' responses: '204': description: User and Call Permission dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' responses: '200': description: User Outgoing Caller ID list schema: $ref: '#/definitions/UserCallerIDItems' /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: - external_apps - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useruuid' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' - $ref: '#/parameters/user_external_app_view' responses: '200': description: User external apps list schema: $ref: '#/definitions/UserExternalAppItems' /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: - external_apps - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useruuid' - $ref: '#/parameters/externalappname' - name: body in: body description: External app to create required: true schema: $ref: '#/definitions/UserExternalApp' responses: '201': description: External app created schema: $ref: '#/definitions/UserExternalApp' '400': $ref: '#/responses/CreateError' get: operationId: get_user_external_app summary: Get user external app description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.{app_name}.read`' tags: - external_apps - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useruuid' - $ref: '#/parameters/externalappname' - $ref: '#/parameters/user_external_app_view' responses: '200': description: External App schema: $ref: '#/definitions/UserExternalApp' '404': $ref: '#/responses/NotFoundError' put: operationId: update_user_external_app summary: Update user external app description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.{app_name}.update`' tags: - external_apps - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useruuid' - $ref: '#/parameters/externalappname' - name: body in: body required: true schema: $ref: '#/definitions/UserExternalApp' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_user_external_app summary: Delete user external app description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.{app_name}.delete`' tags: - external_apps - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useruuid' - $ref: '#/parameters/externalappname' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /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: '#/parameters/useriduuid' responses: '200': description: Fallbacks for user schema: $ref: '#/definitions/UserFallbacks' 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: '#/parameters/useriduuid' - name: body in: body description: Fallbacks for user schema: $ref: '#/definitions/UserFallbacks' responses: '204': description: User's fallbacks updated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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: - groups - users parameters: - $ref: '#/parameters/useriduuid' - name: body in: body description: Users to associated required: true schema: $ref: '#/definitions/UserGroupsID' responses: '204': description: Group and Users associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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 produces: - text/csv; charset=utf-8 parameters: - $ref: '#/parameters/tenantuuid' responses: '200': description: Users exported successfully schema: $ref: '#/definitions/UserExport' /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 consumes: - text/csv; charset=utf-8 tags: - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/csvbody' responses: '201': description: Users imported successfully schema: $ref: '#/definitions/UserImport' '400': description: Errors occurred during import schema: $ref: '#/definitions/UserImportError' 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 consumes: - text/csv; charset=utf-8 tags: - users parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/csvbody' responses: '200': description: Users updated successfully schema: $ref: '#/definitions/UserUpdate' '400': description: Errors occurred during update schema: $ref: '#/definitions/UserImportError' '405': description: This method is not supported for this resource /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 - lines parameters: - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/lineid' responses: '204': description: User and Line dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' put: operationId: associate_user_line summary: Associate user and line description: '**Required ACL:** `confd.users.{user_id}.lines.{line_id}.update`' tags: - users - lines parameters: - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/lineid' responses: '204': description: User and Line associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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 - lines parameters: - $ref: '#/parameters/useriduuid' - name: body in: body required: true schema: $ref: '#/definitions/LinesID' responses: '204': description: User and Lines associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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: - endpoints - lines - users parameters: - $ref: '#/parameters/useruuid' - $ref: '#/parameters/lineid' - $ref: '#/parameters/endpoint_sip_view' responses: '200': description: SIP endpoint of a line for a user schema: $ref: '#/definitions/EndpointSIP' '400': description: Invalid `view` /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: - endpoints - lines - users parameters: - $ref: '#/parameters/useruuid' - $ref: '#/parameters/endpoint_sip_view' responses: '200': description: SIP endpoint of main line for a user schema: $ref: '#/definitions/EndpointSIP' '400': description: Invalid `view` /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 - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/scheduleid' responses: '204': description: User and Schedule associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_user_schedule summary: Dissociate user and schedule description: '**Required ACL:** `confd.users.{user_id}.schedules.{schedule_id}.delete`' tags: - users - schedules parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/scheduleid' responses: '204': description: User and Schedule dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /users/subscriptions: get: operationId: get_users_subscriptions summary: Get user subscription description: '**Required ACL:** `confd.users.subscriptions.read`' tags: - users parameters: - $ref: '#/parameters/tenantuuid' responses: '200': description: User subscription schema: $ref: '#/definitions/UserSubscriptionItems' /users/{user_id}/voicemails: post: operationId: create_user_voicemail summary: Create user voicemail description: '**Required ACL:** `confd.users.{user_id}.voicemails.create`' tags: - users - voicemails parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' - name: body in: body description: Voicemail to create required: true schema: $ref: '#/definitions/Voicemail' responses: '201': description: Voicemail created schema: $ref: '#/definitions/Voicemail' '400': $ref: '#/responses/CreateError' '404': description: User not found schema: $ref: '#/responses/NotFoundError' get: operationId: get_user_voicemail summary: Get user voicemails description: '**Required ACL:** `confd.users.{user_id}.voicemails.read`' tags: - users - voicemails parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/useriduuid' responses: '200': description: User's voicemail list schema: $ref: '#/definitions/VoicemailItems' '404': $ref: '#/responses/NotFoundError' delete: operationId: dissociate_user_voicemail summary: Dissociate user and voicemail description: '**Required ACL:** `confd.users.{user_id}.voicemails.delete`' tags: - users - voicemails parameters: - $ref: '#/parameters/useriduuid' responses: '204': description: User and Voicemail dissociated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /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 - voicemails parameters: - $ref: '#/parameters/useriduuid' - $ref: '#/parameters/voicemailid' responses: '204': description: User and voicemail associated '400': $ref: '#/responses/GenericError' '404': $ref: '#/responses/NotFoundError' /voicemails: get: operationId: list_voicemails summary: List voicemails description: '**Required ACL:** `confd.voicemails.read`' tags: - voicemails parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/recurse' - $ref: '#/parameters/order' - $ref: '#/parameters/direction' - $ref: '#/parameters/limit' - $ref: '#/parameters/offset' - $ref: '#/parameters/search' responses: '200': description: Voicemail list schema: $ref: '#/definitions/VoicemailItems' post: operationId: create_voicemail summary: Create voicemail description: '**Required ACL:** `confd.voicemails.create`' tags: - voicemails parameters: - name: body in: body description: Voicemail to create required: true schema: $ref: '#/definitions/Voicemail' responses: '201': description: Voicemail created schema: $ref: '#/definitions/Voicemail' '400': $ref: '#/responses/CreateError' /voicemails/{voicemail_id}: get: operationId: get_voicemail summary: Get voicemail description: '**Required ACL:** `confd.voicemails.{voicemail_id}.read`' tags: - voicemails parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/voicemailid' responses: '200': description: Voicemail schema: $ref: '#/definitions/Voicemail' '404': $ref: '#/responses/NotFoundError' put: operationId: update_voicemail summary: Update voicemail description: '**Required ACL:** `confd.voicemails.{voicemail_id}.update`' tags: - voicemails parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/voicemailid' - name: body in: body required: true schema: $ref: '#/definitions/Voicemail' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' delete: operationId: delete_voicemail summary: Delete voicemail description: '**Required ACL:** `confd.voicemails.{voicemail_id}.delete` A voicemail can not be deleted if it is still attached to a user. The user must be dissociated first. Any extension that redirects to the voicemail (e.g. an Incoming call) will be disabled after deletion.' tags: - voicemails parameters: - $ref: '#/parameters/tenantuuid' - $ref: '#/parameters/voicemailid' responses: '204': $ref: '#/responses/ResourceDeleted' '400': $ref: '#/responses/DeleteError' '404': $ref: '#/responses/NotFoundError' /asterisk/voicemail/general: get: operationId: list_asterisk_voicemail_general summary: List Voicemail general options description: '**Required ACL:** `confd.asterisk.voicemail.general.read`' tags: - asterisk - voicemails responses: '200': description: Voicemail general schema: $ref: '#/definitions/VoicemailGeneral' put: operationId: update_asterisk_voicemail_general summary: Update Voicemail general option description: '**Required ACL:** `confd.asterisk.voicemail.general.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk - voicemails parameters: - name: body in: body required: true schema: $ref: '#/definitions/VoicemailGeneral' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /voicemails/transcription: get: summary: Retrieve the voicemail transcription configuration for the tenant description: ' Returns the current transcription settings, including whether automatic transcription is enabled for the tenant''s voicemails. **required_acl**: `confd.voicemails.transcription.read` ' operationId: get_voicemail_transcription_config tags: - voicemails - transcription parameters: - $ref: '#/parameters/tenantuuid' responses: '200': description: Voicemail transcription configuration schema: $ref: '#/definitions/VoicemailTranscriptionConfig' '404': $ref: '#/responses/NotFoundError' put: summary: Update the voicemail transcription configuration for the tenant. description: '**required_acl**: `confd.voicemails.transcription.update`' operationId: update_voicemail_transcription_config tags: - voicemails - transcription parameters: - $ref: '#/parameters/tenantuuid' - name: body in: body required: true description: Voicemail transcription configuration schema: $ref: '#/definitions/VoicemailTranscriptionConfig' responses: '204': description: Configuration updated successfully '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /asterisk/voicemail/zonemessages: get: operationId: list_asterisk_voicemail_zonemessages summary: List Voicemail zonemessages options description: '**Required ACL:** `confd.asterisk.voicemail.zonemessages.read`' tags: - asterisk - voicemails responses: '200': description: Voicemail zonemessages schema: $ref: '#/definitions/VoicemailZoneMessages' put: operationId: update_asterisk_voicemail_zonemessages summary: Update Voicemail zonemessages option description: '**Required ACL:** `confd.asterisk.voicemail.zonemessages.update` **WARNING** This endpoint restore to default value or delete all fields that are not defined.' tags: - asterisk - voicemails parameters: - name: body in: body required: true schema: $ref: '#/definitions/VoicemailZoneMessages' responses: '204': $ref: '#/responses/ResourceUpdated' '400': $ref: '#/responses/UpdateError' '404': $ref: '#/responses/NotFoundError' /wizard: get: operationId: get_wizard_status summary: Get wizard status description: '**Required ACL:** none' tags: - wizard responses: '200': description: Wizard status schema: $ref: '#/definitions/WizardConfigured' post: operationId: pass_wizard summary: Pass the wizard description: '**Required ACL:** none This API can only be used before wizard configuration.' tags: - wizard parameters: - name: body in: body description: Wizard parameters to configure required: true schema: $ref: '#/definitions/Wizard' responses: '201': description: Wizard passed schema: $ref: '#/definitions/Wizard' '400': $ref: '#/responses/CreateError' '403': $ref: '#/responses/AlreadyConfiguredError' /wizard/discover: get: operationId: get_wizard_discover summary: Get wizard discover description: '**Required ACL:** none This API can only be used before wizard configuration.' tags: - wizard responses: '200': description: Wizard discover schema: $ref: '#/definitions/WizardDiscover' '403': $ref: '#/responses/AlreadyConfiguredError' x-apievangelist-source: harvested_from: https://github.com/wazo-platform/wazo-confd assembly: base plugin api.yml deep-merged with all plugin api.yml fragments, reproducing what the running service serves at /api/confd/1.1/api/api.yml (see wazo_confd/plugins/api/http.py — xivo.chain_map.ChainMap) spec_version: Swagger 2.0 (as published by Wazo) harvested: '2026-08-17'