{ "Title": "Users", "Interface": "User", "Struct": [ { "imports": [ "github.com/crusttech/crust/system/types" ] } ], "Parameters": null, "Protocol": "", "Authentication": [ "Client ID", "Session ID" ], "Path": "/users", "APIs": [ { "Name": "list", "Method": "GET", "Title": "Search users (Directory)", "Path": "/", "Parameters": { "get": [ { "name": "query", "required": false, "title": "Search query to match against users", "type": "string" }, { "name": "username", "required": false, "title": "Search username to match against users", "type": "string" }, { "name": "email", "required": false, "title": "Search email to match against users", "type": "string" } ] } }, { "Name": "create", "Method": "POST", "Title": "Create user", "Path": "/", "Parameters": { "post": [ { "name": "email", "required": true, "title": "Email", "type": "string" }, { "name": "name", "required": false, "title": "Name", "type": "string" }, { "name": "handle", "required": false, "title": "Handle", "type": "string" }, { "name": "kind", "required": false, "title": "Kind (normal, bot)", "type": "types.UserKind" } ] } }, { "Name": "update", "Method": "PUT", "Title": "Update user details", "Path": "/{userID}", "Parameters": { "path": [ { "name": "userID", "required": true, "title": "User ID", "type": "uint64" } ], "post": [ { "name": "email", "required": true, "title": "Email", "type": "string" }, { "name": "name", "required": true, "title": "Name", "type": "string" }, { "name": "handle", "required": false, "title": "Handle", "type": "string" }, { "name": "kind", "required": false, "title": "Kind (normal, bot)", "type": "types.UserKind" } ] } }, { "Name": "read", "Method": "GET", "Title": "Read user details and memberships", "Path": "/{userID}", "Parameters": { "path": [ { "name": "userID", "required": true, "title": "User ID", "type": "uint64" } ] } }, { "Name": "delete", "Method": "DELETE", "Title": "Remove user", "Path": "/{userID}", "Parameters": { "path": [ { "name": "userID", "required": true, "title": "User ID", "type": "uint64" } ] } }, { "Name": "suspend", "Method": "POST", "Title": "Suspend user", "Path": "/{userID}/suspend", "Parameters": { "path": [ { "name": "userID", "required": true, "title": "User ID", "type": "uint64" } ] } }, { "Name": "unsuspend", "Method": "POST", "Title": "Unsuspend user", "Path": "/{userID}/unsuspend", "Parameters": { "path": [ { "name": "userID", "required": true, "title": "User ID", "type": "uint64" } ] } } ] }