=== Test case: rest_SUITE:auth_passes_correct_creds/1 (click for source code)

=== Config value:

    [{watchdog,<0.19829.1>},
     {{ejabberd_cwd,mongooseim@localhost},
      "/home/circleci/project/_build/mim1/rel/mongooseim"},
     {mam_backend,riak},
     {archive_wait,2500},
     {mim_data_dir,"/home/circleci/project/big_tests/tests/rest_SUITE_data"},
     {preset,"riak_mnesia"},
     {tc_logfile,"/home/circleci/project/big_tests/ct_report/ct_run.test@22b4515d438b.2022-04-05_07.43.19/big_tests.tests.rest_SUITE.logs/run.2022-04-05_07.56.46/rest_suite.auth_passes_correct_creds.83586.html"},
     {tc_group_properties,[{name,auth},parallel]},
     {tc_group_path,[]},
     {data_dir,"/home/circleci/project/big_tests/_build/default/lib/mongoose_tests/ebin/rest_SUITE_data/"},
     {priv_dir,"/home/circleci/project/big_tests/ct_report/ct_run.test@22b4515d438b.2022-04-05_07.43.19/big_tests.tests.rest_SUITE.logs/run.2022-04-05_07.56.46/log_private/"},
     {{saved_modules,mongooseim@localhost,<<"localhost">>},
      #{mod_adhoc => #{iqdisc => one_queue,report_commands_node => false},
        mod_amp => [],
        mod_bosh =>
            #{backend => mnesia,inactivity => 30,max_pause => 120,
              max_wait => infinity,server_acks => false},
        mod_cache_users =>
            #{number_of_segments => 5,strategy => fifo,time_to_live => 2},
        mod_carboncopy => [],mod_commands => [],
        mod_disco =>
            #{extra_domains => [],iqdisc => one_queue,server_info => [],
              users_can_see_hidden_services => false},
        mod_muc_commands => [],mod_muc_light_commands => [],
        mod_register =>
            [{access,register},
             {ip_access,[{allow,"127.0.0.0/8"},{deny,"0.0.0.0/0"}]},
             {welcome_message,{[],[]}}],
        mod_roster =>
            #{backend => riak,iqdisc => one_queue,
              riak =>
                  #{bucket_type => <<"rosters">>,
                    version_bucket_type => <<"roster_versions">>},
              store_current_id => false,versioning => false},
        mod_sic => #{iqdisc => one_queue},
        mod_stream_management =>
            #{ack => true,ack_freq => 1,backend => mnesia,buffer => true,
              buffer_max => 100,resume_timeout => 600,
              stale_h =>
                  #{enabled => false,geriatric => 3600,repeat_after => 1800}},
        mod_vcard =>
            #{backend => riak,
              host => {prefix,<<"vjud.">>},
              iqdisc => parallel,matches => 30,
              riak =>
                  #{bucket_type => <<"vcard">>,search_index => <<"vcard">>},
              search => true}}}]

=== Current directory is "/home/circleci/project/big_tests/ct_report/ct_run.test@22b4515d438b.2022-04-05_07.43.19"

=== Started at 2022-04-05 07:56:55


*** CT 2022-04-05 07:56:55.218 *** View log from node mongooseim@localhost when started mongooseim@localhost_5042.html
*** CT 2022-04-05 07:56:55.219 *** View log from node ejabberd2@localhost when started ejabberd2@localhost_2005.html

*** User 2022-04-05 07:56:55.226 ***
REST request:
Code: 200
Req: {<0.19852.1>,<<"/api/commands">>,<<"GET">>,
      [{<<"Content-Type">>,<<"application/json">>},
       {<<"Request-Id">>,<<"e7f7a628d7856538">>},
       {<<"authorization">>,<<"Basic YWxhOm1ha290YQ==">>}],
      <<>>}
Result: {{<<"200">>,<<"OK">>},
         [{<<"server">>,<<"Cowboy">>},
          {<<"date">>,<<"Tue, 05 Apr 2022 07:56:55 GMT">>},
          {<<"content-type">>,<<"application/json">>},
          {<<"content-length">>,<<"5742">>}],
         <<"[{\"path\":\"/commands\",\"name\":\"list_methods\",\"method\":\"GET\",\"desc\":\"List commands\",\"category\":\"commands\",\"args\":{},\"action\":\"read\"},{\"path\":\"/contacts\",\"name\":\"add_contact\",\"method\":\"POST\",\"desc\":\"Add a contact to roster\",\"category\":\"contacts\",\"args\":{\"jid\":\"string\",\"caller\":\"string\"},\"action\":\"create\"},{\"path\":\"/contacts/:caller\",\"name\":\"list_contacts\",\"method\":\"GET\",\"desc\":\"Get roster\",\"category\":\"contacts\",\"args\":{\"caller\":\"string\"},\"action\":\"read\"},{\"path\":\"/contacts/:caller/:jid\",\"name\":\"subscription\",\"method\":\"PUT\",\"desc\":\"Send out a subscription request\",\"category\":\"contacts\",\"args\":{\"jid\":\"string\",\"caller\":\"string\",\"action\":\"string\"},\"action\":\"update\"},{\"path\":\"/contacts/:caller/:jid\",\"name\":\"delete_contact\",\"method\":\"DELETE\",\"desc\":\"Remove a contact from roster\",\"category\":\"contacts\",\"args\":{\"jid\":\"string\",\"caller\":\"string\"},\"action\":\"delete\"},{\"path\":\"/contacts/:caller/:jid/manage\",\"name\":\"set_subscription\",\"method\":\"PUT\",\"desc\":\"Set / unset mutual subscription\",\"category\":\"contacts\",\"args\":{\"jid\":\"string\",\"caller\":\"string\",\"action\":\"string\"},\"action\":\"update\"},{\"path\":\"/contacts/:caller/:jids/multiple\",\"name\":\"delete_contacts\",\"method\":\"DELETE\",\"desc\":\"Remove provided contacts from roster\",\"category\":\"contacts\",\"args\":{\"jids\":\"[binary]\",\"caller\":\"string\"},\"action\":\"delete\"},{\"path\":\"/messages\",\"name\":\"send_message\",\"method\":\"POST\",\"desc\":\"Send chat message from to\",\"category\":\"messages\",\"args\":{\"to\":\"string\",\"caller\":\"string\",\"body\":\"string\"},\"action\":\"create\"},{\"path\":\"/messages/:caller\",\"name\":\"get_last_messages_with_everybody\",\"method\":\"GET\",\"desc\":\"Get n last messages from archive, optionally before a certain date (unixtime)\",\"category\":\"messages\",\"args\":{\"caller\":\"string\"},\"action\":\"read\"},{\"path\":\"/messages/:caller/:with\",\"name\":\"get_last_messages\",\"method\":\"GET\",\"desc\":\"Get n last messages to/from given contact, with limit and date\",\"category\":\"messages\",\"args\":{\"with\":\"string\",\"caller\":\"string\"},\"action\":\"read\"},{\"path\":\"/muc-lights/:domain\",\"name\":\"create_identifiable_muc_light_room\",\"method\":\"PUT\",\"desc\":\"Create a MUC Light room with user-provided username part in JID\",\"category\":\"muc-lights\",\"args\":{\"subject\":\"string\",\"owner\":\"string\",\"name\":\"string\",\"id\":\"string\",\"domain\":\"string\"},\"action\":\"update\"},{\"path\":\"/muc-lights/:domain\",\"name\":\"create_muc_light_room\",\"method\":\"POST\",\"desc\":\"Create a MUC Light room with unique username part in JID.\",\"category\":\"muc-lights\",\"args\":{\"subject\":\"string\",\"owner\":\"string\",\"name\":\"string\",\"domain\":\"string\"},\"action\":\"create\"},{\"path\":\"/muc-lights/:domain/:id/management\",\"name\":\"delete_room\",\"method\":\"DELETE\",\"desc\":\"Delete a MUC Light room.\",\"category\":\"muc-lights\",\"args\":{\"id\":\"string\",\"domain\":\"string\"},\"action\":\"delete\"},{\"path\":\"/muc-lights/:domain/:id/messages\",\"name\":\"send_message_to_muc_light_room\",\"method\":\"POST\",\"desc\":\"Send a message to a MUC Light room.\",\"category\":\"muc-lights\",\"args\":{\"id\":\"string\",\"from\":\"string\",\"domain\":\"string\",\"body\":\"string\"},\"action\":\"create\"},{\"path\":\"/muc-lights/:domain/:id/participants\",\"name\":\"invite_to_room\",\"method\":\"POST\",\"desc\":\"Invite to a MUC Light room.\",\"category\":\"muc-lights\",\"args\":{\"sender\":\"string\",\"recipient\":\"string\",\"id\":\"string\",\"domain\":\"string\"},\"action\":\"create\"},{\"path\":\"/muc-lights/:domain/config\",\"name\":\"change_muc_light_room_configuration\",\"method\":\"PUT\",\"desc\":\"Change configuration of MUC Light room.\",\"category\":\"muc-lights\",\"args\":{\"user\":\"string\",\"subject\":\"string\",\"name\":\"string\",\"id\":\"string\",\"domain\":\"string\"},\"action\":\"update\"},{\"path\":\"/mucs/:domain\",\"name\":\"create_muc_room\",\"method\":\"POST\",\"desc\":\"Create a MUC room.\",\"category\":\"mucs\",\"args\":{\"owner\":\"string\",\"nick\":\"string\",\"name\":\"string\",\"domain\":\"string\"},\"action\":\"create\"},{\"path\":\"/mucs/:domain/:name/:nick\",\"name\":\"kick_user_from_room\",\"method\":\"DELETE\",\"desc\":\"Kick a user from a MUC room (on behalf of a moderator).\",\"category\":\"mucs\",\"args\":{\"nick\":\"string\",\"name\":\"string\",\"domain\":\"string\"},\"action\":\"delete\"},{\"path\":\"/mucs/:domain/:name/messages\",\"name\":\"send_message_to_room\",\"method\":\"POST\",\"desc\":\"Send a message to a MUC room from a given user.\",\"category\":\"mucs\",\"args\":{\"name\":\"string\",\"from\":\"string\",\"domain\":\"string\",\"body\":\"string\"},\"action\":\"create\"},{\"path\":\"/mucs/:domain/:name/participants\",\"name\":\"invite_to_muc_room\",\"method\":\"POST\",\"desc\":\"Send a MUC room invite from one user to another.\",\"category\":\"mucs\",\"args\":{\"sender\":\"string\",\"recipient\":\"string\",\"reason\":\"string\",\"name\":\"string\",\"domain\":\"string\"},\"action\":\"create\"},{\"path\":\"/sessions/:host\",\"name\":\"list_sessions\",\"method\":\"GET\",\"desc\":\"Get session list\",\"category\":\"sessions\",\"args\":{\"host\":\"string\"},\"action\":\"read\"},{\"path\":\"/sessions/:host/:user/:res\",\"name\":\"kick_user\",\"method\":\"DELETE\",\"desc\":\"Terminate user connection\",\"category\":\"sessions\",\"args\":{\"user\":\"string\",\"res\":\"string\",\"host\":\"string\"},\"action\":\"delete\"},{\"path\":\"/stanzas\",\"name\":\"send_stanza\",\"method\":\"POST\",\"desc\":\"Send an arbitrary stanza\",\"category\":\"stanzas\",\"args\":{\"stanza\":\"string\"},\"action\":\"create\"},{\"path\":\"/users\",\"name\":\"register_user\",\"method\":\"POST\",\"desc\":\"Register a user\",\"category\":\"users\",\"args\":{\"username\":\"string\",\"password\":\"string\",\"host\":\"string\"},\"action\":\"create\"},{\"path\":\"/users/:host\",\"name\":\"list_users\",\"method\":\"GET\",\"desc\":\"List registered users on this host\",\"category\":\"users\",\"args\":{\"host\":\"string\"},\"action\":\"read\"},{\"path\":\"/users/:host/:user\",\"name\":\"unregister_user\",\"method\":\"DELETE\",\"desc\":\"UnRegister a user\",\"category\":\"users\",\"args\":{\"user\":\"string\",\"host\":\"string\"},\"action\":\"delete\"},{\"path\":\"/users/:host/:user\",\"name\":\"change_password\",\"method\":\"PUT\",\"desc\":\"Change user password\",\"category\":\"users\",\"args\":{\"user\":\"string\",\"newpass\":\"string\",\"host\":\"string\"},\"action\":\"update\"}]">>,
         5868,1715}
Params: #{body => <<>>,
          creds => {<<"ala">>,<<"makota">>},
          method => <<"GET">>,path => <<"/api/commands">>,
          return_headers => true,role => admin,
          server => #{node => mongooseim@localhost}}

*** CT 2022-04-05 07:56:55.231 *** View log from node ejabberd2@localhost when finished ejabberd2@localhost_2005.html
*** CT 2022-04-05 07:56:55.232 *** View log from node mongooseim@localhost when finished mongooseim@localhost_5042.html



=== Ended at 2022-04-05 07:56:55
=== successfully completed test case
=== === Returned value: {{<<"200">>,<<"OK">>},
                     [{[{<<"path">>,<<"/commands">>},
                        {<<"name">>,<<"list_methods">>},
                        {<<"method">>,<<"GET">>},
                        {<<"desc">>,<<"List commands">>},
                        {<<"category">>,<<"commands">>},
                        {<<"args">>,{[]}},
                        {<<"action">>,<<"read">>}]},
                      {[{<<"path">>,<<"/contacts">>},
                        {<<"name">>,<<"add_contact">>},
                        {<<"method">>,<<"POST">>},
                        {<<"desc">>,<<"Add a contact to roster">>},
                        {<<"category">>,<<"contacts">>},
                        {<<"args">>,
                         {[{<<"jid">>,<<"string">>},
                           {<<"caller">>,<<"string">>}]}},
                        {<<"action">>,<<"create">>}]},
                      {[{<<"path">>,<<"/contacts/:caller">>},
                        {<<"name">>,<<"list_contacts">>},
                        {<<"method">>,<<"GET">>},
                        {<<"desc">>,<<"Get roster">>},
                        {<<"category">>,<<"contacts">>},
                        {<<"args">>,{[{<<"caller">>,<<"string">>}]}},
                        {<<"action">>,<<"read">>}]},
                      {[{<<"path">>,<<"/contacts/:caller/:jid">>},
                        {<<"name">>,<<"subscription">>},
                        {<<"method">>,<<"PUT">>},
                        {<<"desc">>,<<"Send out a subscription request">>},
                        {<<"category">>,<<"contacts">>},
                        {<<"args">>,
                         {[{<<"jid">>,<<"string">>},
                           {<<"caller">>,<<"string">>},
                           {<<"action">>,<<"string">>}]}},
                        {<<"action">>,<<"update">>}]},
                      {[{<<"path">>,<<"/contacts/:caller/:jid">>},
                        {<<"name">>,<<"delete_contact">>},
                        {<<"method">>,<<"DELETE">>},
                        {<<"desc">>,<<"Remove a contact from roster">>},
                        {<<"category">>,<<"contacts">>},
                        {<<"args">>,
                         {[{<<"jid">>,<<"string">>},
                           {<<"caller">>,<<"string">>}]}},
                        {<<"action">>,<<"delete">>}]},
                      {[{<<"path">>,<<"/contacts/:caller/:jid/manage">>},
                        {<<"name">>,<<"set_subscription">>},
                        {<<"method">>,<<"PUT">>},
                        {<<"desc">>,<<"Set / unset mutual subscription">>},
                        {<<"category">>,<<"contacts">>},
                        {<<"args">>,
                         {[{<<"jid">>,<<"string">>},
                           {<<"caller">>,<<"string">>},
                           {<<"action">>,<<"string">>}]}},
                        {<<"action">>,<<"update">>}]},
                      {[{<<"path">>,<<"/contacts/:caller/:jids/multiple">>},
                        {<<"name">>,<<"delete_contacts">>},
                        {<<"method">>,<<"DELETE">>},
                        {<<"desc">>,
                         <<"Remove provided contacts from roster">>},
                        {<<"category">>,<<"contacts">>},
                        {<<"args">>,
                         {[{<<"jids">>,<<"[binary]">>},
                           {<<"caller">>,<<"string">>}]}},
                        {<<"action">>,<<"delete">>}]},
                      {[{<<"path">>,<<"/messages">>},
                        {<<"name">>,<<"send_message">>},
                        {<<"method">>,<<"POST">>},
                        {<<"desc">>,<<"Send chat message from to">>},
                        {<<"category">>,<<"messages">>},
                        {<<"args">>,
                         {[{<<"to">>,<<"string">>},
                           {<<"caller">>,<<"string">>},
                           {<<"body">>,<<"string">>}]}},
                        {<<"action">>,<<"create">>}]},
                      {[{<<"path">>,<<"/messages/:caller">>},
                        {<<"name">>,<<"get_last_messages_with_everybody">>},
                        {<<"method">>,<<"GET">>},
                        {<<"desc">>,
                         <<"Get n last messages from archive, optionally before a certain date (unixtime)">>},
                        {<<"category">>,<<"messages">>},
                        {<<"args">>,{[{<<"caller">>,<<"string">>}]}},
                        {<<"action">>,<<"read">>}]},
                      {[{<<"path">>,<<"/messages/:caller/:with">>},
                        {<<"name">>,<<"get_last_messages">>},
                        {<<"method">>,<<"GET">>},
                        {<<"desc">>,
                         <<"Get n last messages to/from given contact, with limit and date">>},
                        {<<"category">>,<<"messages">>},
                        {<<"args">>,
                         {[{<<"with">>,<<"string">>},
                           {<<"caller">>,<<"string">>}]}},
                        {<<"action">>,<<"read">>}]},
                      {[{<<"path">>,<<"/muc-lights/:domain">>},
                        {<<"name">>,<<"create_identifiable_muc_light_room">>},
                        {<<"method">>,<<"PUT">>},
                        {<<"desc">>,
                         <<"Create a MUC Light room with user-provided username part in JID">>},
                        {<<"category">>,<<"muc-lights">>},
                        {<<"args">>,
                         {[{<<"subject">>,<<"string">>},
                           {<<"owner">>,<<"string">>},
                           {<<"name">>,<<"string">>},
                           {<<"id">>,<<"string">>},
                           {<<"domain">>,<<"string">>}]}},
                        {<<"action">>,<<"update">>}]},
                      {[{<<"path">>,<<"/muc-lights/:domain">>},
                        {<<"name">>,<<"create_muc_light_room">>},
                        {<<"method">>,<<"POST">>},
                        {<<"desc">>,
                         <<"Create a MUC Light room with unique username part in JID.">>},
                        {<<"category">>,<<"muc-lights">>},
                        {<<"args">>,
                         {[{<<"subject">>,<<"string">>},
                           {<<"owner">>,<<"string">>},
                           {<<"name">>,<<"string">>},
                           {<<"domain">>,<<"string">>}]}},
                        {<<"action">>,<<"create">>}]},
                      {[{<<"path">>,<<"/muc-lights/:domain/:id/management">>},
                        {<<"name">>,<<"delete_room">>},
                        {<<"method">>,<<"DELETE">>},
                        {<<"desc">>,<<"Delete a MUC Light room.">>},
                        {<<"category">>,<<"muc-lights">>},
                        {<<"args">>,
                         {[{<<"id">>,<<"string">>},
                           {<<"domain">>,<<"string">>}]}},
                        {<<"action">>,<<"delete">>}]},
                      {[{<<"path">>,<<"/muc-lights/:domain/:id/messages">>},
                        {<<"name">>,<<"send_message_to_muc_light_room">>},
                        {<<"method">>,<<"POST">>},
                        {<<"desc">>,<<"Send a message to a MUC Light room.">>},
                        {<<"category">>,<<"muc-lights">>},
                        {<<"args">>,
                         {[{<<"id">>,<<"string">>},
                           {<<"from">>,<<"string">>},
                           {<<"domain">>,<<"string">>},
                           {<<"body">>,<<"string">>}]}},
                        {<<"action">>,<<"create">>}]},
                      {[{<<"path">>,
                         <<"/muc-lights/:domain/:id/participants">>},
                        {<<"name">>,<<"invite_to_room">>},
                        {<<"method">>,<<"POST">>},
                        {<<"desc">>,<<"Invite to a MUC Light room.">>},
                        {<<"category">>,<<"muc-lights">>},
                        {<<"args">>,
                         {[{<<"sender">>,<<"string">>},
                           {<<"recipient">>,<<"string">>},
                           {<<"id">>,<<"string">>},
                           {<<"domain">>,<<"string">>}]}},
                        {<<"action">>,<<"create">>}]},
                      {[{<<"path">>,<<"/muc-lights/:domain/config">>},
                        {<<"name">>,<<"change_muc_light_room_configuration">>},
                        {<<"method">>,<<"PUT">>},
                        {<<"desc">>,
                         <<"Change configuration of MUC Light room.">>},
                        {<<"category">>,<<"muc-lights">>},
                        {<<"args">>,
                         {[{<<"user">>,<<"string">>},
                           {<<"subject">>,<<"string">>},
                           {<<"name">>,<<"string">>},
                           {<<"id">>,<<"string">>},
                           {<<"domain">>,<<"string">>}]}},
                        {<<"action">>,<<"update">>}]},
                      {[{<<"path">>,<<"/mucs/:domain">>},
                        {<<"name">>,<<"create_muc_room">>},
                        {<<"method">>,<<"POST">>},
                        {<<"desc">>,<<"Create a MUC room.">>},
                        {<<"category">>,<<"mucs">>},
                        {<<"args">>,
                         {[{<<"owner">>,<<"string">>},
                           {<<"nick">>,<<"string">>},
                           {<<"name">>,<<"string">>},
                           {<<"domain">>,<<"string">>}]}},
                        {<<"action">>,<<"create">>}]},
                      {[{<<"path">>,<<"/mucs/:domain/:name/:nick">>},
                        {<<"name">>,<<"kick_user_from_room">>},
                        {<<"method">>,<<"DELETE">>},
                        {<<"desc">>,
                         <<"Kick a user from a MUC room (on behalf of a moderator).">>},
                        {<<"category">>,<<"mucs">>},
                        {<<"args">>,
                         {[{<<"nick">>,<<"string">>},
                           {<<"name">>,<<"string">>},
                           {<<"domain">>,<<"string">>}]}},
                        {<<"action">>,<<"delete">>}]},
                      {[{<<"path">>,<<"/mucs/:domain/:name/messages">>},
                        {<<"name">>,<<"send_message_to_room">>},
                        {<<"method">>,<<"POST">>},
                        {<<"desc">>,
                         <<"Send a message to a MUC room from a given user.">>},
                        {<<"category">>,<<"mucs">>},
                        {<<"args">>,
                         {[{<<"name">>,<<"string">>},
                           {<<"from">>,<<"string">>},
                           {<<"domain">>,<<"string">>},
                           {<<"body">>,<<"string">>}]}},
                        {<<"action">>,<<"create">>}]},
                      {[{<<"path">>,<<"/mucs/:domain/:name/participants">>},
                        {<<"name">>,<<"invite_to_muc_room">>},
                        {<<"method">>,<<"POST">>},
                        {<<"desc">>,
                         <<"Send a MUC room invite from one user to another.">>},
                        {<<"category">>,<<"mucs">>},
                        {<<"args">>,
                         {[{<<"sender">>,<<"string">>},
                           {<<"recipient">>,<<"string">>},
                           {<<"reason">>,<<"string">>},
                           {<<"name">>,<<"string">>},
                           {<<"domain">>,<<"string">>}]}},
                        {<<"action">>,<<"create">>}]},
                      {[{<<"path">>,<<"/sessions/:host">>},
                        {<<"name">>,<<"list_sessions">>},
                        {<<"method">>,<<"GET">>},
                        {<<"desc">>,<<"Get session list">>},
                        {<<"category">>,<<"sessions">>},
                        {<<"args">>,{[{<<"host">>,<<"string">>}]}},
                        {<<"action">>,<<"read">>}]},
                      {[{<<"path">>,<<"/sessions/:host/:user/:res">>},
                        {<<"name">>,<<"kick_user">>},
                        {<<"method">>,<<"DELETE">>},
                        {<<"desc">>,<<"Terminate user connection">>},
                        {<<"category">>,<<"sessions">>},
                        {<<"args">>,
                         {[{<<"user">>,<<"string">>},
                           {<<"res">>,<<"string">>},
                           {<<"host">>,<<"string">>}]}},
                        {<<"action">>,<<"delete">>}]},
                      {[{<<"path">>,<<"/stanzas">>},
                        {<<"name">>,<<"send_stanza">>},
                        {<<"method">>,<<"POST">>},
                        {<<"desc">>,<<"Send an arbitrary stanza">>},
                        {<<"category">>,<<"stanzas">>},
                        {<<"args">>,{[{<<"stanza">>,<<"string">>}]}},
                        {<<"action">>,<<"create">>}]},
                      {[{<<"path">>,<<"/users">>},
                        {<<"name">>,<<"register_user">>},
                        {<<"method">>,<<"POST">>},
                        {<<"desc">>,<<"Register a user">>},
                        {<<"category">>,<<"users">>},
                        {<<"args">>,
                         {[{<<"username">>,<<"string">>},
                           {<<"password">>,<<"string">>},
                           {<<"host">>,<<"string">>}]}},
                        {<<"action">>,<<"create">>}]},
                      {[{<<"path">>,<<"/users/:host">>},
                        {<<"name">>,<<"list_users">>},
                        {<<"method">>,<<"GET">>},
                        {<<"desc">>,<<"List registered users on this host">>},
                        {<<"category">>,<<"users">>},
                        {<<"args">>,{[{<<"host">>,<<"string">>}]}},
                        {<<"action">>,<<"read">>}]},
                      {[{<<"path">>,<<"/users/:host/:user">>},
                        {<<"name">>,<<"unregister_user">>},
                        {<<"method">>,<<"DELETE">>},
                        {<<"desc">>,<<"UnRegister a user">>},
                        {<<"category">>,<<"users">>},
                        {<<"args">>,
                         {[{<<"user">>,<<"string">>},
                           {<<"host">>,<<"string">>}]}},
                        {<<"action">>,<<"delete">>}]},
                      {[{<<"path">>,<<"/users/:host/:user">>},
                        {<<"name">>,<<"change_password">>},
                        {<<"method">>,<<"PUT">>},
                        {<<"desc">>,<<"Change user password">>},
                        {<<"category">>,<<"users">>},
                        {<<"args">>,
                         {[{<<"user">>,<<"string">>},
                           {<<"newpass">>,<<"string">>},
                           {<<"host">>,<<"string">>}]}},
                        {<<"action">>,<<"update">>}]}]}