{ "Title": "Roles", "Description": "An organisation may have many roles. Roles may have many channels available. Access to channels may be shared between roles.", "Interface": "Role", "Struct": null, "Parameters": null, "Protocol": "", "Authentication": [ "Client ID", "Session ID" ], "Path": "/roles", "APIs": [ { "Name": "list", "Method": "GET", "Title": "List roles", "Path": "/", "Parameters": { "get": [ { "name": "query", "required": false, "title": "Search query", "type": "string" } ] } }, { "Name": "create", "Method": "POST", "Title": "Update role details", "Path": "/", "Parameters": { "post": [ { "name": "name", "required": true, "title": "Name of Role", "type": "string" }, { "name": "members", "required": false, "title": "Role member IDs", "type": "[]string" } ] } }, { "Name": "update", "Method": "PUT", "Title": "Update role details", "Path": "/{roleID}", "Parameters": { "path": [ { "name": "roleID", "required": true, "title": "Role ID", "type": "uint64" } ], "post": [ { "name": "name", "required": false, "title": "Name of Role", "type": "string" }, { "name": "members", "required": false, "title": "Role member IDs", "type": "[]string" } ] } }, { "Name": "read", "Method": "GET", "Title": "Read role details and memberships", "Path": "/{roleID}", "Parameters": { "path": [ { "name": "roleID", "required": true, "title": "Role ID", "type": "uint64" } ] } }, { "Name": "delete", "Method": "DELETE", "Title": "Remove role", "Path": "/{roleID}", "Parameters": { "path": [ { "name": "roleID", "required": true, "title": "Role ID", "type": "uint64" } ] } }, { "Name": "archive", "Method": "POST", "Title": "Archive role", "Path": "/{roleID}/archive", "Parameters": { "path": [ { "name": "roleID", "required": true, "title": "Role ID", "type": "uint64" } ] } }, { "Name": "move", "Method": "POST", "Title": "Move role to different organisation", "Path": "/{roleID}/move", "Parameters": { "path": [ { "name": "roleID", "required": true, "title": "Role ID", "type": "uint64" } ], "post": [ { "name": "organisationID", "required": true, "title": "Role ID", "type": "uint64" } ] } }, { "Name": "merge", "Method": "POST", "Title": "Merge one role into another", "Path": "/{roleID}/merge", "Parameters": { "path": [ { "name": "roleID", "required": true, "title": "Source Role ID", "type": "uint64" } ], "post": [ { "name": "destination", "required": true, "title": "Destination Role ID", "type": "uint64" } ] } }, { "Name": "memberList", "Method": "GET", "Title": "Returns all role members", "Path": "/{roleID}/members", "Parameters": { "path": [ { "name": "roleID", "required": true, "title": "Source Role ID", "type": "uint64" } ] } }, { "Name": "memberAdd", "Method": "POST", "Title": "Add member to a role", "Path": "/{roleID}/member/{userID}", "Parameters": { "path": [ { "name": "roleID", "required": true, "title": "Source Role ID", "type": "uint64" }, { "name": "userID", "required": true, "title": "User ID", "type": "uint64" } ] } }, { "Name": "memberRemove", "Method": "DELETE", "Title": "Remove member from a role", "Path": "/{roleID}/member/{userID}", "Parameters": { "path": [ { "name": "roleID", "required": true, "title": "Source Role ID", "type": "uint64" }, { "name": "userID", "required": true, "title": "User ID", "type": "uint64" } ] } } ] }