Wazo Phone Provisioning API (wazo-provd)

Phone auto-provisioning service. Manages device plugins, configuration templates, device registrations, DHCP integration and the plugin repository used to provision desk phones and ATAs from vendors such as Aastra/Mitel, Cisco, Fanvil, Gigaset, Htek, Polycom, Snom and Yealink.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/wazo-phone-provisioning-api-wazo-provd"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

wazo-provd-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: wazo-provd
  description: Provisioning application REST API
  version: '0.2'
  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:
- https
basePath: /api/provd/0.2
consumes:
- application/vnd.proformatique.provd+json
produces:
- application/vnd.proformatique.provd+json
x-xivo-name: provd
x-xivo-port: 8666
securityDefinitions:
  wazo_auth_token:
    type: apiKey
    name: X-Auth-Token
    in: header
security:
- wazo_auth_token: []
paths:
  /:
    get:
      summary: Get the Provd Manager resource
      description: '**Required ACL:** `provd.read`


        The provd manager resource represents the main entry point to the wazo-provd REST API

        '
      tags:
      - provd
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/LinksObject'
  /configure:
    get:
      summary: Get the general provd configuration
      description: '**Required ACL:** `provd.configure.read`'
      tags:
      - provd
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/GeneralConfigsObject'
  /configure/{param_id}:
    get:
      summary: Get the configuration parameter value
      description: '''**Required ACL:** `provd.configure.{param_id}.read`''


        Wazo-Tenant header is only valid for `provisioning_key`

        '
      tags:
      - provd
      parameters:
      - $ref: '#/parameters/ParamId'
      - $ref: '#/parameters/TenantUUID'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/Param'
        '404':
          $ref: '#/responses/NoSuchResourceError'
    put:
      summary: Set the value of a parameter
      description: '**Required ACL:** `provd.configure.{param_id}.update`'
      tags:
      - provd
      parameters:
      - $ref: '#/parameters/ParamId'
      - $ref: '#/parameters/ParamBody'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /configure/plugin_server:
    put:
      summary: Update the configuration's plugin_server
      description: '**Required ACL:** `provd.configure.plugin_server.update`'
      tags:
      - provd
      parameters:
      - name: body
        in: body
        description: Configuration parameter body definition
        schema:
          $ref: '#/definitions/PluginServer'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /configure/http_proxy:
    put:
      summary: Update the configuration's http_proxy
      description: '**Required ACL:** `provd.configure.http_proxy.update`'
      tags:
      - provd
      parameters:
      - name: body
        in: body
        description: Configuration parameter body definition
        schema:
          $ref: '#/definitions/HttpProxy'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /configure/https_proxy:
    put:
      summary: Update the configuration's https_proxy
      description: '**Required ACL:** `provd.configure.https_proxy.update`'
      tags:
      - provd
      parameters:
      - name: body
        in: body
        description: Configuration parameter body definition
        schema:
          $ref: '#/definitions/HttpsProxy'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /configure/ftp_proxy:
    put:
      summary: Update the configuration's ftp_proxy
      description: '**Required ACL:** `provd.configure.ftp_proxy.update`'
      tags:
      - provd
      parameters:
      - name: body
        in: body
        description: Configuration parameter body definition
        schema:
          $ref: '#/definitions/FtpProxy'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /configure/locale:
    put:
      summary: Update the configuration's locale
      description: '**Required ACL:** `provd.configure.locale.update`'
      tags:
      - provd
      parameters:
      - name: body
        in: body
        description: Configuration parameter body definition
        schema:
          $ref: '#/definitions/Locale'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /configure/NAT:
    put:
      summary: Update the configuration's NAT
      description: '**Required ACL:** `provd.configure.nat.update`'
      tags:
      - provd
      parameters:
      - name: body
        in: body
        description: Configuration parameter body definition
        schema:
          $ref: '#/definitions/Nat'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /configure/provisioning_key:
    put:
      summary: Update the tenant provisioning key
      description: '**Required ACL:** `provd.configure.{tenant_uuid}.provisioning_key.update`'
      tags:
      - provd
      parameters:
      - name: body
        in: body
        description: Configuration parameter body definition
        schema:
          $ref: '#/definitions/ProvisioningKey'
      - $ref: '#/parameters/TenantUUID'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '400':
          $ref: '#/responses/BadRequestError'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /dev_mgr:
    get:
      summary: Get the Device Manager resource
      description: '**Required ACL:** `provd.dev_mgr.read`


        The device manager resource represents the entry point to the wazo-provd device REST API

        '
      tags:
      - devices
      responses:
        '200':
          description: Links to the different devices resources
          schema:
            $ref: '#/definitions/LinksObject'
          examples:
            links:
            - href: /dev_mgr/synchronize
              rel: dev.synchronize
            - href: /dev_mgr/reconfigure
              rel: dev.reconfigure
            - href: /dev_mgr/dhcpinfo
              rel: dev.dhcpinfo
            - href: /dev_mgr/devices
              rel: dev.devices
  /dev_mgr/devices:
    get:
      summary: List and find devices
      description: '**Required ACL:** `provd.dev_mgr.devices.read`'
      tags:
      - devices
      parameters:
      - $ref: '#/parameters/SearchQuery'
      - $ref: '#/parameters/SearchFields'
      - $ref: '#/parameters/Skip'
      - $ref: '#/parameters/SortEntries'
      - $ref: '#/parameters/SortOrder'
      - $ref: '#/parameters/TenantUUID'
      - $ref: '#/parameters/Recurse'
      responses:
        '200':
          $ref: '#/responses/DevicesResponse'
    post:
      summary: Create a device
      description: '**Required ACL:** `provd.dev_mgr.devices.create`'
      tags:
      - devices
      parameters:
      - name: device
        in: body
        description: Device to create
        schema:
          $ref: '#/definitions/DeviceObject'
      - $ref: '#/parameters/TenantUUID'
      responses:
        '201':
          $ref: '#/responses/DeviceCreationResponse'
        '400':
          $ref: '#/responses/BadRequestError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /dev_mgr/devices/{device_id}:
    get:
      summary: Get a device by ID
      description: '**Required ACL:** `provd.dev_mgr.devices.{device_id}.read`


        Get a device using its ID

        '
      tags:
      - devices
      parameters:
      - $ref: '#/parameters/DeviceId'
      - $ref: '#/parameters/TenantUUID'
      responses:
        '200':
          $ref: '#/responses/DeviceUniqueResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
    put:
      summary: Update a device
      description: '**Required ACL:** `provd.dev_mgr.devices.{device_id}.update`


        Every field must be specified, otherwise they will be omitted

        '
      tags:
      - devices
      parameters:
      - $ref: '#/parameters/DeviceId'
      - name: device
        in: body
        description: Device information to update
        schema:
          $ref: '#/definitions/DeviceObject'
      - $ref: '#/parameters/TenantUUID'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
        '500':
          $ref: '#/responses/InternalServerError'
    delete:
      summary: Delete a device
      description: '**Required ACL:** `provd.dev_mgr.devices.{device_id}.delete`'
      tags:
      - devices
      parameters:
      - $ref: '#/parameters/DeviceId'
      - $ref: '#/parameters/TenantUUID'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /dev_mgr/synchronize:
    post:
      summary: Synchronize a device
      description: '**Required ACL:** `provd.dev_mgr.synchronize.create`'
      tags:
      - devices
      parameters:
      - $ref: '#/parameters/DeviceIdBody'
      - $ref: '#/parameters/TenantUUID'
      responses:
        '201':
          description: Device synchronized
          headers:
            Location:
              description: Location of the OperationInProgress resource
              type: string
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /dev_mgr/synchronize/{operation_id}:
    get:
      summary: Get the status of a synchronize Operation In Progress
      description: '**Required ACL:** `provd.operation.read`'
      tags:
      - devices
      parameters:
      - $ref: '#/parameters/OperationId'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/OperationInProgressObject'
        '404':
          $ref: '#/responses/NoSuchResourceError'
    delete:
      summary: Delete the Operation In Progress
      description: '**Required ACL:** `provd.operation.delete`


        This does not cancel the underlying operation; it only deletes the monitor


        Every monitor that is created should be deleted, else they won''t be freed by the process and they will accumulate,
        taking memory

        '
      tags:
      - devices
      parameters:
      - $ref: '#/parameters/OperationId'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /dev_mgr/reconfigure:
    post:
      summary: Reconfigure a device
      description: '**Required ACL:** `provd.dev_mgr.reconfigure.create`


        Regenerate the configuration file for the specified device

        '
      tags:
      - devices
      parameters:
      - $ref: '#/parameters/DeviceIdBody'
      - $ref: '#/parameters/TenantUUID'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '400':
          $ref: '#/responses/BadRequestError'
  /dev_mgr/dhcpinfo:
    post:
      summary: Push DHCP request information
      description: '**Required ACL:** `provd.dev_mgr.dhcpinfo.create`


        The provisioning server either creates a new device or changes the information of the device with the same MAC address

        '
      tags:
      - devices
      parameters:
      - $ref: '#/parameters/DeviceDHCPInfo'
      - $ref: '#/parameters/TenantUUID'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
  /cfg_mgr:
    get:
      summary: Get the Config Manager resource
      description: '**Required ACL:** `provd.cfg_mgr.read`


        The configuration manager resource represents the entry point to the wazo-provd configuration REST API

        '
      tags:
      - configs
      responses:
        '200':
          description: Links to the different configuration resources
          schema:
            $ref: '#/definitions/LinksObject'
          examples:
            links:
            - href: /cfg_mgr/configs
              rel: cfg.configs
            - href: /cfg_mgr/autocreate
              rel: cfg.autocreate
  /cfg_mgr/configs:
    get:
      summary: List and find configurations
      description: '**Required ACL:** `provd.cfg_mgr.configs.read`'
      tags:
      - configs
      parameters:
      - $ref: '#/parameters/SearchQuery'
      - $ref: '#/parameters/SearchFields'
      - $ref: '#/parameters/Skip'
      - $ref: '#/parameters/SortEntries'
      - $ref: '#/parameters/SortOrder'
      responses:
        '200':
          $ref: '#/responses/ConfigsResponse'
    post:
      summary: Create a configuration
      description: '**Required ACL:** `provd.cfg_mgr.configs.create`'
      tags:
      - configs
      parameters:
      - $ref: '#/parameters/ConfigParam'
      responses:
        '201':
          $ref: '#/responses/ConfigCreationResponse'
  /cfg_mgr/configs/{config_id}:
    get:
      summary: Get a configuration
      description: '**Required ACL:** `provd.cfg_mgr.configs.{config_id}.read`'
      tags:
      - configs
      parameters:
      - $ref: '#/parameters/ConfigId'
      responses:
        '200':
          $ref: '#/responses/ConfigUniqueResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
    put:
      summary: Update a configuration
      description: '**Required ACL:** `provd.cfg_mgr.configs.{config_id}.update`'
      tags:
      - configs
      parameters:
      - $ref: '#/parameters/ConfigId'
      - $ref: '#/parameters/ConfigParam'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '500':
          $ref: '#/responses/InternalServerError'
    delete:
      summary: Delete a configuration
      description: '**Required ACL:** `provd.cfg_mgr.configs.{config_id}.delete`'
      tags:
      - configs
      parameters:
      - $ref: '#/parameters/ConfigId'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '403':
          $ref: '#/responses/ForbiddenResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /cfg_mgr/configs/{config_id}/raw:
    get:
      summary: Get a raw configuration
      description: '**Required ACL:** `provd.cfg_mgr.configs.{config_id}.raw.read`'
      tags:
      - configs
      parameters:
      - $ref: '#/parameters/ConfigId'
      responses:
        '200':
          description: A raw configuration response
          schema:
            $ref: '#/definitions/RawConfigurationObject'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /cfg_mgr/autocreate:
    post:
      summary: Create an autocreate configuration
      description: '**Required ACL:** `provd.cfg_mgr.autocreate.create`


        Create a new config based on the config that has the autocreate role

        '
      tags:
      - configs
      parameters:
      - $ref: '#/parameters/EmptyBody'
      responses:
        '201':
          $ref: '#/responses/ConfigCreationResponse'
  /pg_mgr:
    get:
      summary: Get the Plugin Manager resource
      description: '**Required ACL:** `provd.pg_mgr.read`


        The plugin manager resource represents the entry point to the wazo-provd plugin REST API

        '
      tags:
      - plugins
      responses:
        '200':
          description: Links to the different plugin resources
          schema:
            $ref: '#/definitions/LinksObject'
          examples:
            links:
            - href: /pg_mgr/install
              rel: srv.install
            - href: /pg_mgr/plugins
              rel: pg.plugins
            - href: /pg_mgr/reload
              rel: pg.reload
  /pg_mgr/plugins:
    get:
      summary: List the installed plugins
      description: '**Required ACL:** `provd.pg_mgr.plugins.read`'
      tags:
      - plugins
      responses:
        '200':
          description: List of all the installed plugins and their resources
          schema:
            $ref: '#/definitions/PluginsObject'
          examples:
            plugins:
              xivo-aastra-3.3.1-SP4:
                links:
                - href: /pg_mgr/plugins/xivo-aastra-3.3.1-SP4
                  rel: pg.plugin
              xivo-cisco-sccp-9.0.3:
                links:
                - href: /pg_mgr/plugins/xivo-cisco-sccp-9.0.3
                  rel: pg.plugin
  /pg_mgr/plugins/{plugin_id}:
    get:
      summary: Get the resources of a specific plugin
      description: '**Required ACL:** `provd.pg_mgr.plugins.{plugin_id}.read`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginId'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/LinksObject'
          examples:
            links:
            - href: /pg_mgr/plugins/xivo-aastra-3.3.1-SP4
              rel: pg.plugin
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /pg_mgr/plugins/{plugin_id}/info:
    get:
      summary: Get the information of a plugin
      description: '**Required ACL:** `provd.pg_mgr.plugins.{plugin_id}.info.read`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginId'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PluginInfo'
          examples:
            plugin_info:
              capabilities:
                Aastra, 6730i, 3.3.1.5089:
                  sip.lines: 6
                Aastra, 6731i, 3.3.1.2235:
                  sip.lines: 6
                  switchboard: true
              description: Plugin for Aastra 6730i, 6731i, ...
              version: '1.1'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /pg_mgr/plugins/{plugin_id}/install:
    get:
      summary: Get the package installation service resources
      description: '**Required ACL:** `provd.pg_mgr.plugins.{plugin_id}.install.read`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginId'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/LinksObject'
          examples:
            links:
            - href: /pg_mgr/plugins/test-plugin/install/install
              rel: srv.install.install
            - href: /pg_mgr/plugins/test-plugin/install/uninstall
              rel: srv.install.uninstall
            - href: /pg_mgr/plugins/test-plugin/install/installed
              rel: srv.install.installed
            - href: /pg_mgr/plugins/test-plugin/install/installable
              rel: srv.install.installable
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /pg_mgr/plugins/{plugin_id}/install/install:
    post:
      summary: Install a package
      description: '**Required ACL:** `provd.pg_mgr.plugins.{plugin_id}.install.install.create`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginId'
      - $ref: '#/parameters/PackageIdBody'
      responses:
        '201':
          $ref: '#/responses/OperationInProgressResponse'
        '400':
          $ref: '#/responses/InvalidJSONError'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /pg_mgr/plugins/{plugin_id}/install/install/{operation_id}:
    get:
      summary: Get the status of a package installation Operation In Progress
      description: '**Required ACL:** `provd.operation.read`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginId'
      - $ref: '#/parameters/OperationId'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/OperationInProgressObject'
        '404':
          $ref: '#/responses/NoSuchResourceError'
    delete:
      summary: Delete the Operation In Progress
      description: '**Required ACL:** `provd.operation.delete`


        This does not cancel the underlying operation; it only deletes the monitor


        Every monitor that is created should be deleted, else they won''t be freed by the process and they will accumulate,
        taking memory

        '
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginId'
      - $ref: '#/parameters/OperationId'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /pg_mgr/plugins/{plugin_id}/install/uninstall:
    post:
      summary: Uninstall a package
      description: '**Required ACL:** `provd.pg_mgr.plugins.{plugin_id}.install.uninstall.create`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginId'
      - $ref: '#/parameters/PackageIdBody'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '400':
          $ref: '#/responses/InvalidJSONError'
        '404':
          $ref: '#/responses/NoSuchResourceError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /pg_mgr/plugins/{plugin_id}/install/upgrade/{operation_id}:
    get:
      summary: Get the status of a package upgrade Operation In Progress
      description: '**Required ACL:** `provd.operation.read`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginId'
      - $ref: '#/parameters/OperationId'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/OperationInProgressObject'
        '404':
          $ref: '#/responses/NoSuchResourceError'
    delete:
      summary: Delete the Operation In Progress
      description: '**Required ACL:** `provd.operation.delete`


        This does not cancel the underlying operation; it only deletes the monitor


        Every monitor that is created should be deleted, else they won''t be freed by the process and they will accumulate,
        taking memory

        '
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginId'
      - $ref: '#/parameters/OperationId'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /pg_mgr/plugins/{plugin_id}/install/installable:
    get:
      summary: Get the installable packages list
      description: '**Required ACL:** `provd.pg_mgr.plugins.{plugin_id}.install.installable.read`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginId'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PackageList'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /pg_mgr/plugins/{plugin_id}/install/installed:
    get:
      summary: Get the installed packages list
      description: '**Required ACL:** `provd.pg_mgr.plugins.{plugin_id}.install.installed.read`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginId'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PackageList'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /pg_mgr/install:
    get:
      summary: Get the installation service resources
      description: '**Required ACL:** `provd.pg_mgr.install.read`'
      tags:
      - plugins
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/LinksObject'
          examples:
            links:
            - href: /pg_mgr/install/install
              rel: srv.install.install
            - href: /pg_mgr/install/uninstall
              rel: srv.install.uninstall
            - href: /pg_mgr/install/installed
              rel: srv.install.installed
            - href: /pg_mgr/install/installable
              rel: srv.install.installable
            - href: /pg_mgr/install/upgrade
              rel: srv.install.upgrade
            - href: /pg_mgr/install/update
              rel: srv.install.update
  /pg_mgr/install/install:
    post:
      summary: Install a plugin
      description: '**Required ACL:** `provd.pg_mgr.install.install.create`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PackageIdBody'
      responses:
        '201':
          $ref: '#/responses/OperationInProgressResponse'
        '400':
          $ref: '#/responses/InvalidJSONError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /pg_mgr/install/install/{operation_id}:
    get:
      summary: Get the status of a plugin installation Operation In Progress
      description: '**Required ACL:** `provd.operation.read`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/OperationId'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/OperationInProgressObject'
        '404':
          $ref: '#/responses/NoSuchResourceError'
    delete:
      summary: Delete the Operation In Progress
      description: '**Required ACL:** `provd.operation.delete`


        This does not cancel the underlying operation; it only deletes the monitor


        Every monitor that is created should be deleted, else they won''t be freed by the process and they will accumulate,
        taking memory

        '
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/OperationId'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /pg_mgr/install/uninstall:
    post:
      summary: Uninstall a plugin
      description: '**Required ACL:** `provd.pg_mgr.install.uninstall.create`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PackageIdBody'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '400':
          $ref: '#/responses/InvalidJSONError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /pg_mgr/install/upgrade:
    post:
      summary: Upgrade a plugin
      description: '**Required ACL:** `provd.pg_mgr.install.upgrade.create`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PackageIdBody'
      responses:
        '201':
          $ref: '#/responses/OperationInProgressResponse'
        '400':
          $ref: '#/responses/InvalidJSONError'
        '415':
          $ref: '#/responses/UnsupportedMediaError'
  /pg_mgr/install/upgrade/{operation_id}:
    get:
      summary: Get the status of a plugin upgrade Operation In Progress
      description: '**Required ACL:** `provd.operation.read`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/OperationId'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/OperationInProgressObject'
        '404':
          $ref: '#/responses/NoSuchResourceError'
    delete:
      summary: Delete the Operation In Progress
      description: '**Required ACL:** `provd.operation.delete`


        This does not cancel the underlying operation; it only deletes the monitor


        Every monitor that is created should be deleted, else they won''t be freed by the process and they will accumulate,
        taking memory

        '
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/OperationId'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /pg_mgr/install/update:
    post:
      summary: Update the List of installable plugins
      description: '**Required ACL:** `provd.pg_mgr.install.update.create`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/EmptyBody'
      responses:
        '201':
          $ref: '#/responses/OperationInProgressResponse'
        '400':
          $ref: '#/responses/InvalidJSONError'
  /pg_mgr/install/update/{operation_id}:
    get:
      summary: Get the status of a plugin database update Operation In Progress
      description: '**Required ACL:** `provd.operation.read`'
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/OperationId'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/OperationInProgressObject'
        '404':
          $ref: '#/responses/NoSuchResourceError'
    delete:
      summary: Delete the Operation In Progress
      description: '**Required ACL:** `provd.operation.delete`


        This does not cancel the underlying operation; it only deletes the monitor


        Every monitor that is created should be deleted, else they won''t be freed by the process and they will accumulate,
        taking memory

        '
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/OperationId'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
        '404':
          $ref: '#/responses/NoSuchResourceError'
  /pg_mgr/install/installable:
    get:
      summary: Get the installable plugins list
      description: '**Required ACL:** `provd.pg_mgr.install.installable.read`'
      tags:
      - plugins
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PackageList'
  /pg_mgr/install/installed:
    get:
      summary: Get the installed plugins list
      description: '**Required ACL:** `provd.pg_mgr.install.installed.read`'
      tags:
      - plugins
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PackageList'
  /pg_mgr/reload:
    post:
      summary: Reload a plugin
      description: '**Required ACL:** `provd.pg_mgr.reload.create`


        This is mostly useful during plugin development, after changing the code of the plugin, instead of restarting the
        wazo-provd application

        '
      tags:
      - plugins
      parameters:
      - $ref: '#/parameters/PluginIdBody'
      responses:
        '204':
          $ref: '#/responses/NoContentResponse'
  /status:
    get:
      summary: Print infos about internal status of wazo-provd
      description: '**Required ACL:** `provd.status.read`'
      tags:
      - status
      responses:
        '200':
          description: The internal infos of wazo-provd
          schema:
            $ref: '#/definitions/StatusSummary'
parameters:
  SearchQuery:
    name: q
    in: query
    description: 'A selector, encoded in JSON, describing which entries should be returned. All entries are returned if not
      specified.


      Example: `{"ip":"10.34.1.110"}`

      '
    required: false
    type: string
  SearchFields:
    name: fields
    in: query
    description: 'A list of fields, separated by comma.


      Example: `mac,ip`

      '
    required: false
    type: string
  Skip:
    name: skip
    in: query
    description: 'An integer specifing the number of entries to skip.


      Example: 10

      '
    required: false
    type: integer
  SortEntries:
    name: sort
    in: query
    description: 'The key on which to sort the results.


      Example: `id`

      '
    required: false
    type: string
  SortOrder:
    name: sort_ord
    in: query
    description: The order of sort
    enum:
    - ASC
    - DESC
    required: false
    type: string
  ParamId:
    required: true
    type: string
    name: param_id
    in: path
    description: Configuration parameter ID
  ParamBody:
    description: Configuration parameter body definition
    name: body
    in: body
    schema:
      $ref: '#/definitions/Param'
  DeviceId:
    required: true
    type: string
    name: device_id
    in: path
    description: Device ID
  OperationId:
    required: true


# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/openapi/wazo-provd-api-openapi.yml