{
  "routes": [
    {
      "method": "GET",
      "path": "/",
      "handler": "UsersPermissions.index",
      "config": {
        "policies": []
      }
    },
    {
      "method": "GET",
      "path": "/search/:id",
      "handler": "UsersPermissions.searchUsers",
      "config": {
        "policies": [],
        "description": "Search for users",
        "tag": {
          "plugin": "users-permissions",
          "name": "User",
          "actionType": "find"
        }
      }
    },
    {
      "method": "GET",
      "path": "/policies",
      "handler": "UsersPermissions.getPolicies",
      "config": {
        "policies": []
      }
    },
    {
      "method": "GET",
      "path": "/roles/:id",
      "handler": "UsersPermissions.getRole",
      "config": {
        "policies": [
          ["admin::hasPermissions", ["plugins::users-permissions.roles.read"]]
        ],
        "description": "Retrieve a role depending on its id",
        "tag": {
          "plugin": "users-permissions",
          "name": "Role",
          "actionType": "findOne"
        }
      }
    },
    {
      "method": "GET",
      "path": "/roles",
      "handler": "UsersPermissions.getRoles",
      "config": {
        "policies": [
          ["admin::hasPermissions", ["plugins::users-permissions.roles.read"]]
        ],
        "description": "Retrieve all role documents",
        "tag": {
          "plugin": "users-permissions",
          "name": "Role",
          "actionType": "find"
        }
      }
    },
    {
      "method": "GET",
      "path": "/routes",
      "handler": "UsersPermissions.getRoutes",
      "config": {
        "policies": []
      }
    },
    {
      "method": "GET",
      "path": "/email-templates",
      "handler": "UsersPermissions.getEmailTemplate",
      "config": {
        "policies": [
          ["admin::hasPermissions", ["plugins::users-permissions.email-templates.read"]]
        ]
      }
    },
    {
      "method": "PUT",
      "path": "/email-templates",
      "handler": "UsersPermissions.updateEmailTemplate",
      "config": {
        "policies": [
          ["admin::hasPermissions", ["plugins::users-permissions.email-templates.update"]]
        ]
      }
    },
    {
      "method": "GET",
      "path": "/advanced",
      "handler": "UsersPermissions.getAdvancedSettings",
      "config": {
        "policies": [
          ["admin::hasPermissions", ["plugins::users-permissions.advanced-settings.read"]]
        ]
      }
    },
    {
      "method": "PUT",
      "path": "/advanced",
      "handler": "UsersPermissions.updateAdvancedSettings",
      "config": {
        "policies": [
          ["admin::hasPermissions", ["plugins::users-permissions.advanced-settings.update"]]
        ]
      }
    },
    {
      "method": "GET",
      "path": "/permissions",
      "handler": "UsersPermissions.getPermissions",
      "config": {
        "policies": []
      }
    },
    {
      "method": "GET",
      "path": "/providers",
      "handler": "UsersPermissions.getProviders",
      "config": {
        "policies": [
          ["admin::hasPermissions", ["plugins::users-permissions.providers.read"]]
        ]
      }
    },

    {
      "method": "PUT",
      "path": "/providers",
      "handler": "UsersPermissions.updateProviders",
      "config": {
        "policies": [
          ["admin::hasPermissions", ["plugins::users-permissions.providers.update"]]
        ]
      }
    },
    {
      "method": "POST",
      "path": "/roles",
      "handler": "UsersPermissions.createRole",
      "config": {
        "policies": [
          ["admin::hasPermissions", ["plugins::users-permissions.roles.create"]]
        ],
        "description": "Create a new role",
        "tag": {
          "plugin": "users-permissions",
          "name": "Role",
          "actionType": "create"
        }
      }
    },
    {
      "method": "PUT",
      "path": "/roles/:role",
      "handler": "UsersPermissions.updateRole",
      "config": {
        "policies": [
          ["admin::hasPermissions", ["plugins::users-permissions.roles.update"]]
        ],
        "description": "Update a role",
        "tag": {
          "plugin": "users-permissions",
          "name": "Role",
          "actionType": "update"
        }
      }
    },
    {
      "method": "DELETE",
      "path": "/roles/:role",
      "handler": "UsersPermissions.deleteRole",
      "config": {
        "policies": [
          ["admin::hasPermissions", ["plugins::users-permissions.roles.delete"]]
        ],
        "description": "Delete a role",
        "tag": {
          "plugin": "users-permissions",
          "name": "Role",
          "actionType": "destroy"
        }
      }
    },
    {
      "method": "GET",
      "path": "/connect/*",
      "handler": "Auth.connect",
      "config": {
        "policies": ["plugins::users-permissions.ratelimit"],
        "prefix": "",
        "description": "Connect a provider",
        "tag": {
          "plugin": "users-permissions",
          "name": "User"
        }
      }
    },
    {
      "method": "POST",
      "path": "/auth/local",
      "handler": "Auth.callback",
      "config": {
        "policies": ["plugins::users-permissions.ratelimit"],
        "prefix": "",
        "description": "Login a user using the identifiers email and password",
        "tag": {
          "plugin": "users-permissions",
          "name": "User"
        }
      }
    },
    {
      "method": "POST",
      "path": "/auth/local/register",
      "handler": "Auth.register",
      "config": {
        "policies": ["plugins::users-permissions.ratelimit"],
        "prefix": "",
        "description": "Register a new user with the default role",
        "tag": {
          "plugin": "users-permissions",
          "name": "User",
          "actionType": "create"
        }
      }
    },
    {
      "method": "GET",
      "path": "/auth/:provider/callback",
      "handler": "Auth.callback",
      "config": {
        "policies": [],
        "prefix": "",
        "description": "Successfull redirection after approving a provider",
        "tag": {
          "plugin": "users-permissions",
          "name": "User"
        }
      }
    },
    {
      "method": "POST",
      "path": "/auth/forgot-password",
      "handler": "Auth.forgotPassword",
      "config": {
        "policies": ["plugins::users-permissions.ratelimit"],
        "prefix": "",
        "description": "Send the reset password email link",
        "tag": {
          "plugin": "users-permissions",
          "name": "User"
        }
      }
    },
    {
      "method": "POST",
      "path": "/auth/reset-password",
      "handler": "Auth.resetPassword",
      "config": {
        "policies": ["plugins::users-permissions.ratelimit"],
        "prefix": "",
        "description": "Reset user password with a code (resetToken)",
        "tag": {
          "plugin": "users-permissions",
          "name": "User"
        }
      }
    },
    {
      "method": "GET",
      "path": "/auth/email-confirmation",
      "handler": "Auth.emailConfirmation",
      "config": {
        "policies": [],
        "prefix": "",
        "description": "Validate a user account",
        "tag": {
          "plugin": "users-permissions",
          "name": "User"
        }
      }
    },
    {
      "method": "POST",
      "path": "/auth/send-email-confirmation",
      "handler": "Auth.sendEmailConfirmation",
      "config": {
        "policies": [],
        "prefix": "",
        "description": "Send a confirmation email to user",
        "tag": {
          "plugin": "users-permissions",
          "name": "User"
        }
      }
    },
    {
      "method": "GET",
      "path": "/users/count",
      "handler": "User.count",
      "config": {
        "prefix": "",
        "policies": []
      }
    },
    {
      "method": "GET",
      "path": "/users",
      "handler": "User.find",
      "config": {
        "policies": [],
        "prefix": "",
        "description": "Retrieve all user documents",
        "tag": {
          "plugin": "users-permissions",
          "name": "User",
          "actionType": "find"
        }
      }
    },
    {
      "method": "GET",
      "path": "/users/me",
      "handler": "User.me",
      "config": {
        "policies": [],
        "prefix": "",
        "description": "Retrieve the logged in user information",
        "tag": {
          "plugin": "users-permissions",
          "name": "User",
          "actionType": "findOne"
        }
      }
    },
    {
      "method": "GET",
      "path": "/users/:id",
      "handler": "User.findOne",
      "config": {
        "policies": [],
        "prefix": "",
        "description": "Retrieve a single user depending on his id",
        "tag": {
          "plugin": "users-permissions",
          "name": "User",
          "actionType": "findOne"
        }
      }
    },
    {
      "method": "POST",
      "path": "/users",
      "handler": "User.create",
      "config": {
        "policies": [],
        "prefix": ""
      }
    },
    {
      "method": "PUT",
      "path": "/users/:id",
      "handler": "User.update",
      "config": {
        "policies": [],
        "prefix": "",
        "description": "Update an existing user",
        "tag": {
          "plugin": "users-permissions",
          "name": "User",
          "actionType": "update"
        }
      }
    },
    {
      "method": "DELETE",
      "path": "/users/:id",
      "handler": "User.destroy",
      "config": {
        "policies": [],
        "prefix": "",
        "description": "Delete an existing user",
        "tag": {
          "plugin": "users-permissions",
          "name": "User",
          "actionType": "destroy"
        }
      }
    }
  ]
}
