openapi: 3.2.0 info: title: Wazo Parking Lots API contact: name: Wazo Dev Team url: https://wazo-platform.org/ email: dev@wazo.community x-logo: url: https://wazo-platform.org/images/logo-black.svg backgroundColor: '#FAFAFA' altText: Wazo Logo version: '1.0' description: 'Operations tagged parking_lots across 2 of this provider''s published API definitions: wazo-calld-api-openapi.yml, wazo-confd-api-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: /1.0 - url: /1.1 security: - wazo_auth_token: [] tags: - name: parking_lots paths: /parkinglots: get: summary: Retrieve the list of parkings and park calls description: '**Required ACL:** `calld.parkings.read`' parameters: - $ref: '#/components/parameters/TenantUUID' tags: - parking_lots responses: '200': description: List of parkings and associated parked calls content: application/json: schema: type: object properties: items: type: array items: $ref: '#/components/schemas/ParkingLot' post: operationId: create_parking_lot summary: Create parking lot description: '**Required ACL:** `confd.parkinglots.create`' tags: - parking_lots parameters: - $ref: '#/components/parameters/tenantuuid' responses: '201': description: Parking lot created content: application/json: schema: $ref: '#/components/schemas/ParkingLot_2' '400': $ref: '#/components/responses/CreateError' requestBody: content: application/json: schema: $ref: '#/components/schemas/ParkingLot_2' description: Parking lot to create required: true servers: - url: /1.0 /parkinglots/{parking_id}: get: summary: Retrieve parked calls for parking description: '**Required ACL:** `calld.parkings.{parking_id}.read`' parameters: - $ref: '#/components/parameters/TenantUUID' - $ref: '#/components/parameters/ParkingLotID' tags: - parking_lots responses: '200': description: List of parked calls in parking lot content: application/json: schema: $ref: '#/components/schemas/ParkingLot' '404': $ref: '#/components/responses/NotFoundError' servers: - url: /1.0 /calls/{call_id}/park: put: summary: Park a call description: '**Required ACL:** calld.calls.{call_id}.park.update`. Use the `POST /calls` API to unpark the call.' parameters: - $ref: '#/components/parameters/TenantUUID' - $ref: '#/components/parameters/CallID' - $ref: '#/components/parameters/ParkCall' tags: - parking_lots responses: '200': description: Parked call content: application/json: schema: $ref: '#/components/schemas/ParkedCallInfo' '404': $ref: '#/components/responses/NotFoundError' '503': $ref: '#/components/responses/FullOrServiceUnavailable' servers: - url: /1.0 /users/me/calls/{call_id}/park: put: summary: Park the user's connected (talking to) call description: '**Required ACL:** `calld.users.me.calls.{call_id}.park.update` Use the `POST /users/me/calls` API to unpark the call.' parameters: - $ref: '#/components/parameters/TenantUUID' - $ref: '#/components/parameters/CallID' - $ref: '#/components/parameters/ParkCall' tags: - parking_lots responses: '200': description: Parked call content: application/json: schema: $ref: '#/components/schemas/ParkedCallInfo' '404': $ref: '#/components/responses/NotFoundError' '503': $ref: '#/components/responses/FullOrServiceUnavailable' servers: - url: /1.0 /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: '#/components/parameters/tenantuuid' - $ref: '#/components/parameters/parkinglotid' responses: '200': description: Parking lot content: application/json: schema: $ref: '#/components/schemas/ParkingLot_2' '404': $ref: '#/components/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: '#/components/parameters/tenantuuid' - $ref: '#/components/parameters/parkinglotid' responses: '204': $ref: '#/components/responses/ResourceUpdated' '400': $ref: '#/components/responses/UpdateError' '404': $ref: '#/components/responses/NotFoundError' requestBody: content: application/json: schema: $ref: '#/components/schemas/ParkingLot_2' required: true delete: operationId: delete_parking_lot summary: Delete parking lot description: '**Required ACL:** `confd.parkinglots.{parking_lot_id}.delete`' tags: - parking_lots parameters: - $ref: '#/components/parameters/tenantuuid' - $ref: '#/components/parameters/parkinglotid' responses: '204': $ref: '#/components/responses/ResourceDeleted' '400': $ref: '#/components/responses/DeleteError' '404': $ref: '#/components/responses/NotFoundError' servers: - url: /1.1 /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 parameters: - $ref: '#/components/parameters/parkinglotid' - $ref: '#/components/parameters/extensionid' responses: '204': description: Parking Lot and Extension associated '400': $ref: '#/components/responses/GenericError' '404': $ref: '#/components/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 parameters: - $ref: '#/components/parameters/parkinglotid' - $ref: '#/components/parameters/extensionid' responses: '204': description: Parking Lot and Extension dissociated '400': $ref: '#/components/responses/GenericError' '404': $ref: '#/components/responses/NotFoundError' servers: - url: /1.1 components: schemas: ParkedCallItem: title: Parked Call type: object properties: call_id: type: string example: 123456789.1 caller_id_name: description: Caller ID name of the person who's call was parked type: string example: Alice caller_id_num: description: Caller ID num of the person who's call was parked type: string example: 1001 conversation_id: type: string example: 123456789.0 parker_caller_id_name: description: Caller ID name of the person who parked the call type: string example: Bob parker_caller_id_num: description: Caller ID num of the person who parked the call type: string example: 1002 slot: description: Slots where this call has been parked type: string example: 508 parked_at: description: Timestamp when the call was parked type: string format: date-time timeout_at: description: 'Timestamp when the call will timeout (null if timeout is disabled) ' type: string format: date-time ParkingLot: title: Parking lot type: object properties: id: type: integer example: 3 name: type: string example: My Parking Lot slots_start: type: string example: '501' slots_end: type: string example: '510' slots_total: description: Total number of slots available for parking type: integer example: 10 slots_remaining: description: Remaining slots to park a call in this lot type: integer example: 9 default_timeout: description: Default timeout to assign if a timeout value was unspecified when a call was parked type: integer example: 45 calls: type: array items: $ref: '#/components/schemas/ParkedCallItem' Error: title: Error description: Error message for the client properties: message: description: Human readable explanation of the error type: string error_id: description: Identifier of the type of error. It is more precise than the HTTP status code. type: string details: description: Additional information about the error. The keys are specific to each error. type: object timestamp: description: Time when the error occured type: number format: timestamp ParkedCallInfo: description: Information returned when a call has been parked properties: slot: description: Parking slot where this call has been parked type: string example: 501 timeout_at: description: Timestamp when the call will timeout type: string format: date-time ParkCallBody: title: Information needed to park the call required: - parking_id type: object properties: parking_id: description: Parking lot ID in which to park the call type: integer minimum: 1 example: 2 preferred_slot: description: 'Preferred slot in which to park the call. If slots is already occupied, another slot will be automatically chosen ' type: string example: '501' timeout: description: 'A timeout specified in seconds after which the call will redial the parker. If unspecified, it will defaults to the parking''s timeout value. (A value of 0 disables the timeout feature) ' type: integer minimum: 0 example: 30 GroupRelationExtensions: description: extensions configured for this group properties: extensions: type: array readOnly: true items: $ref: '#/components/schemas/ExtensionRelationBase' ParkingLotRelationBase: properties: id: type: integer readOnly: true name: type: string description: name to identify the parking lot ParkingLotItems: properties: items: type: array items: $ref: '#/components/schemas/ParkingLot_2' total: type: integer required: - total ParkingLot_2: allOf: - $ref: '#/components/schemas/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: '#/components/schemas/GroupRelationExtensions' - required: - slots_start - slots_end ExtensionRelationBase: properties: id: type: integer description: Extension ID readOnly: true context: type: string exten: type: string Error_2: type: array items: type: string parameters: TenantUUID: name: Wazo-Tenant in: header description: The tenant's UUID, defining the ownership of a given resource. required: false schema: type: string ParkingLotID: name: parking_id in: path description: Parking lot's ID required: true schema: type: string ParkCall: name: park_call in: body description: Payload required to park a call required: true schema: $ref: '#/components/schemas/ParkCallBody' CallID: name: call_id in: path description: ID of the call required: true schema: type: string tenantuuid: name: Wazo-Tenant in: header description: The tenant's UUID, defining the ownership of a given resource. required: false schema: type: string parkinglotid: required: true name: parking_lot_id in: path description: Parking Lot's ID schema: type: integer offset: required: false name: offset in: query description: Number of items to skip over in the list. Useful for pagination. schema: type: integer extensionid: required: true name: extension_id in: path schema: type: integer order: required: false name: order in: query description: Name of the field to use for sorting the list of items returned. schema: type: string direction: required: false name: direction in: query description: Sort list of items in 'asc' (ascending) or 'desc' (descending) order schema: type: string enum: - asc - desc recurse: name: recurse in: query description: Should the query include sub-tenants required: false schema: type: boolean default: false search: required: false name: search in: query description: Search term for filtering a list of items. Only items with a field containing the search term will be returned. schema: type: string limit: required: false name: limit in: query description: Maximum number of items to return in the list schema: type: integer responses: NotFoundError: description: The resource requested was not found on the server content: application/json: schema: $ref: '#/components/schemas/Error' FullOrServiceUnavailable: description: Parking is full or another service is unavailable (e.g. wazo-auth, wazo-confd, Asterisk, ...) content: application/json: schema: $ref: '#/components/schemas/Error' ResourceDeleted: description: Resource was deleted successfully ResourceUpdated: description: Resource was updated successfully CreateError: description: An error occurred when creating the resource content: application/json: schema: $ref: '#/components/schemas/Error_2' GenericError: description: An error occurred during the operation content: application/json: schema: $ref: '#/components/schemas/Error_2' UpdateError: description: An error occurred when updating the resource content: application/json: schema: $ref: '#/components/schemas/Error_2' DeleteError: description: An error occurred when deleting the resource content: application/json: schema: $ref: '#/components/schemas/Error_2' securitySchemes: wazo_auth_token: type: apiKey name: X-Auth-Token in: header x-refined-from: - wazo-calld-api-openapi.yml - wazo-confd-api-openapi.yml x-xivo-name: agentd x-xivo-port: 9493 x-apievangelist-source: harvested_from: https://github.com/wazo-platform/wazo-agentd assembly: base plugin api.yml deep-merged with all plugin api.yml fragments, reproducing what the running service serves at /api/agentd/1.0/api/api.yml (see wazo_agentd/plugins/api/http.py — xivo.chain_map.ChainMap) spec_version: Swagger 2.0 (as published by Wazo) harvested: '2026-08-17'