%%%
%%%----------------------------------------------------------------------
-%% Example config:
-%%
-%% in ejabberd_http listener
-%% request_handlers:
-%% "/api": mod_http_api
-%%
-%% To use a specific API version N, add a vN element in the URL path:
-%% in ejabberd_http listener
-%% request_handlers:
-%% "/api/v2": mod_http_api
-%%
-%% Access rights are defined with:
-%% commands_admin_access: configure
-%% commands:
-%% - add_commands: user
-%%
-%%
-%% add_commands allow exporting a class of commands, from
-%% open: methods is not risky and can be called by without any access check
-%% restricted (default): the same, but will appear only in ejabberdctl list.
-%% admin – auth is required with XMLRPC and HTTP API and checked for admin privileges, works as usual in ejabberdctl.
-%% user - can be used through XMLRPC and HTTP API, even by user. Only admin can use the commands for other users.
-%%
-%% Then to perform an action, send a POST request to the following URL:
-%% http://localhost:5280/api/<call_name>
-%%
-%% It's also possible to enable unrestricted access to some commands from group
-%% of IP addresses by using option `admin_ip_access` by having fragment like
-%% this in configuration file:
-%% modules:
-%% mod_http_api:
-%% admin_ip_access: admin_ip_access_rule
-%%...
-%% access:
-%% admin_ip_access_rule:
-%% admin_ip_acl:
-%% - command1
-%% - command2
-%% %% use `all` to give access to all commands
-%%...
-%% acl:
-%% admin_ip_acl:
-%% ip:
-%% - "127.0.0.1/8"
-
-module(mod_http_api).
-author('cromain@process-one.net').