1925 lines
47 KiB
JSON
1925 lines
47 KiB
JSON
[
|
|
{
|
|
"title": "Authentication",
|
|
"path": "/auth",
|
|
"entrypoint": "auth",
|
|
"authentication": [],
|
|
"apis": [
|
|
{
|
|
"name": "settings",
|
|
"method": "GET",
|
|
"title": "Returns auth settings",
|
|
"path": "/",
|
|
"parameters": {}
|
|
},
|
|
{
|
|
"name": "check",
|
|
"method": "GET",
|
|
"title": "Check JWT token",
|
|
"path": "/check",
|
|
"parameters": {}
|
|
},
|
|
{
|
|
"name": "exchangeAuthToken",
|
|
"method": "POST",
|
|
"title": "Exchange auth token for JWT",
|
|
"path": "/exchange",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"name": "token",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Token to be exchanged for JWT"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "logout",
|
|
"method": "GET",
|
|
"title": "Logout",
|
|
"path": "/logout",
|
|
"parameters": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Internal authentication",
|
|
"path": "/auth/internal",
|
|
"entrypoint": "auth_internal",
|
|
"authentication": [],
|
|
"apis":
|
|
[
|
|
{
|
|
"name": "login",
|
|
"method": "POST",
|
|
"title": "Login user",
|
|
"path": "/login",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"name": "email",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Email"
|
|
},
|
|
{
|
|
"name": "password",
|
|
"type": "string",
|
|
"required": true,
|
|
"sensitive": true,
|
|
"title": "Password"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "signup",
|
|
"method": "POST",
|
|
"title": "User signup/registration",
|
|
"path": "/signup",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"name": "email",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Email"
|
|
},
|
|
{
|
|
"name": "username",
|
|
"type": "string",
|
|
"required": false,
|
|
"title": "Username"
|
|
},
|
|
{
|
|
"name": "password",
|
|
"type": "string",
|
|
"required": true,
|
|
"sensitive": true,
|
|
"title": "Password"
|
|
},
|
|
{
|
|
"name": "handle",
|
|
"type": "string",
|
|
"required": false,
|
|
"title": "User handle"
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "string",
|
|
"required": false,
|
|
"title": "Display name"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "requestPasswordReset",
|
|
"method": "POST",
|
|
"title": "Request password reset token (via email)",
|
|
"path": "/request-password-reset",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"name": "email",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Email"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "exchangePasswordResetToken",
|
|
"method": "POST",
|
|
"title": "Exchange password reset token for new token and user info",
|
|
"path": "/exchange-password-reset-token",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"name": "token",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Token"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "resetPassword",
|
|
"method": "POST",
|
|
"title": "Reset password with exchanged password reset token",
|
|
"path": "/reset-password",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"name": "token",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Token"
|
|
},
|
|
{
|
|
"name": "password",
|
|
"type": "string",
|
|
"required": true,
|
|
"sensitive": true,
|
|
"title": "Password"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "confirmEmail",
|
|
"method": "POST",
|
|
"title": "Confirm email with token",
|
|
"path": "/confirm-email",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"name": "token",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Token"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "changePassword",
|
|
"method": "POST",
|
|
"title": "Changes password for current user, requires current password",
|
|
"path": "/change-password",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"name": "oldPassword",
|
|
"type": "string",
|
|
"required": true,
|
|
"sensitive": true,
|
|
"title": "Old password"
|
|
},
|
|
{
|
|
"name": "newPassword",
|
|
"type": "string",
|
|
"required": true,
|
|
"sensitive": true,
|
|
"title": "New password"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Settings",
|
|
"path": "/settings",
|
|
"entrypoint": "settings",
|
|
"authentication": [],
|
|
"struct": [{
|
|
"imports": [
|
|
"github.com/cortezaproject/corteza-server/pkg/settings"
|
|
]
|
|
}],
|
|
"apis": [
|
|
{
|
|
"name": "list",
|
|
"method": "GET",
|
|
"title": "List settings",
|
|
"path": "/",
|
|
"parameters": {
|
|
"get": [
|
|
{
|
|
"name": "prefix",
|
|
"type": "string",
|
|
"title": "Key prefix"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "update",
|
|
"method": "PATCH",
|
|
"title": "Update settings",
|
|
"path": "/",
|
|
"parameters": {
|
|
"post": [{
|
|
"name": "values",
|
|
"type": "settings.ValueSet",
|
|
"title": "Array of new settings: `[{ name: ..., value: ... }]`. Omit value to remove setting",
|
|
"required": true
|
|
}]
|
|
}
|
|
},
|
|
{
|
|
"name": "get",
|
|
"method": "GET",
|
|
"title": "Get a value for a key",
|
|
"path": "/{key}",
|
|
"parameters": {
|
|
"path": [{
|
|
"name": "key",
|
|
"type": "string",
|
|
"title": "Setting key",
|
|
"required": true
|
|
}],
|
|
"get": [{
|
|
"name": "ownerID",
|
|
"type": "uint64",
|
|
"title": "Owner ID"
|
|
}]
|
|
}
|
|
},
|
|
{
|
|
"name": "set",
|
|
"path": "/{key}",
|
|
"method": "POST",
|
|
"title": "Set value for specific setting",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"name": "key",
|
|
"type": "string",
|
|
"title": "Key",
|
|
"required": true
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"name": "upload",
|
|
"type": "*multipart.FileHeader",
|
|
"title": "File to upload"
|
|
},
|
|
{
|
|
"name": "ownerID",
|
|
"type": "uint64",
|
|
"title": "Owner ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "current",
|
|
"method": "GET",
|
|
"title": "Current compose settings",
|
|
"path": "/current"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Subscription",
|
|
"path": "/subscription",
|
|
"entrypoint": "subscription",
|
|
"apis": [
|
|
{
|
|
"name": "current",
|
|
"method": "GET",
|
|
"title": "Returns current subscription status",
|
|
"path": "/",
|
|
"parameters": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Organisations",
|
|
"description": "Organisations represent a top-level grouping entity. There may be many organisations defined in a single deployment.",
|
|
"path": "/organisations",
|
|
"entrypoint": "organisation",
|
|
"authentication": [
|
|
"Client ID",
|
|
"Session ID"
|
|
],
|
|
"apis": [
|
|
{
|
|
"name": "list",
|
|
"method": "GET",
|
|
"title": "List organisations",
|
|
"path": "/",
|
|
"parameters": {
|
|
"get": [
|
|
{
|
|
"type": "string",
|
|
"name": "query",
|
|
"required": false,
|
|
"title": "Search query"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "create",
|
|
"method": "POST",
|
|
"title": "Create organisation",
|
|
"path": "/",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"type": "string",
|
|
"name": "name",
|
|
"required": true,
|
|
"title": "Organisation Name"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "update",
|
|
"method": "PUT",
|
|
"title": "Update organisation details",
|
|
"path": "/{id}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "id",
|
|
"required": false,
|
|
"title": "Organisation ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"type": "string",
|
|
"name": "name",
|
|
"required": true,
|
|
"title": "Organisation Name"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "delete",
|
|
"method": "DELETE",
|
|
"title": "Remove organisation",
|
|
"path": "/{id}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "id",
|
|
"required": true,
|
|
"title": "Organisation ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "read",
|
|
"method": "GET",
|
|
"title": "Read organisation details",
|
|
"path": "/{id}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "id",
|
|
"required": true,
|
|
"title": "Organisation ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "archive",
|
|
"method": "POST",
|
|
"title": "Archive organisation",
|
|
"path": "/{id}/archive",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "id",
|
|
"required": true,
|
|
"title": "Organisation ID"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Roles",
|
|
"description": "An organisation may have many roles. Roles may have many channels available. Access to channels may be shared between roles.",
|
|
"path": "/roles",
|
|
"entrypoint": "role",
|
|
"authentication": [
|
|
"Client ID",
|
|
"Session ID"
|
|
],
|
|
"apis": [
|
|
{
|
|
"name": "list",
|
|
"method": "GET",
|
|
"title": "List roles",
|
|
"path": "/",
|
|
"parameters": {
|
|
"get": [
|
|
{
|
|
"type": "string",
|
|
"name": "query",
|
|
"required": false,
|
|
"title": "Search query"
|
|
},
|
|
{
|
|
"name": "deleted",
|
|
"required": false,
|
|
"title": "Exclude (0, default), include (1) or return only (2) deleted roles",
|
|
"type": "uint"
|
|
},
|
|
{
|
|
"name": "archived",
|
|
"required": false,
|
|
"title": "Exclude (0, default), include (1) or return only (2) achived roles",
|
|
"type": "uint"
|
|
},
|
|
{"type": "uint", "name": "limit", "title": "Limit"},
|
|
{"type": "uint", "name": "offset", "title": "Offset"},
|
|
{"type": "uint", "name": "page", "title": "Page number (1-based)"},
|
|
{"type": "uint", "name": "perPage", "title": "Returned items per page (default 50)"},
|
|
{"type": "string", "name": "sort", "title": "Sort items"}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "create",
|
|
"method": "POST",
|
|
"title": "Update role details",
|
|
"path": "/",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"type": "string",
|
|
"name": "name",
|
|
"required": true,
|
|
"title": "Name of Role"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"name": "handle",
|
|
"required": true,
|
|
"title": "Handle for Role"
|
|
},
|
|
{
|
|
"type": "[]string",
|
|
"name": "members",
|
|
"required": false,
|
|
"title": "Role member IDs"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "update",
|
|
"method": "PUT",
|
|
"title": "Update role details",
|
|
"path": "/{roleID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"type": "string",
|
|
"name": "name",
|
|
"required": false,
|
|
"title": "Name of Role"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"name": "handle",
|
|
"required": false,
|
|
"title": "Handle for Role"
|
|
},
|
|
{
|
|
"type": "[]string",
|
|
"name": "members",
|
|
"required": false,
|
|
"title": "Role member IDs"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "read",
|
|
"method": "GET",
|
|
"title": "Read role details and memberships",
|
|
"path": "/{roleID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "delete",
|
|
"method": "DELETE",
|
|
"title": "Remove role",
|
|
"path": "/{roleID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "archive",
|
|
"method": "POST",
|
|
"title": "Archive role",
|
|
"path": "/{roleID}/archive",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "unarchive",
|
|
"method": "POST",
|
|
"title": "Unarchive role",
|
|
"path": "/{roleID}/unarchive",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "undelete",
|
|
"method": "POST",
|
|
"title": "Undelete role",
|
|
"path": "/{roleID}/undelete",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "move",
|
|
"method": "POST",
|
|
"title": "Move role to different organisation",
|
|
"path": "/{roleID}/move",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "organisationID",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "merge",
|
|
"method": "POST",
|
|
"title": "Merge one role into another",
|
|
"path": "/{roleID}/merge",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Source Role ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "destination",
|
|
"required": true,
|
|
"title": "Destination Role ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "memberList",
|
|
"method": "GET",
|
|
"title": "Returns all role members",
|
|
"path": "/{roleID}/members",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Source Role ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "memberAdd",
|
|
"method": "POST",
|
|
"title": "Add member to a role",
|
|
"path": "/{roleID}/member/{userID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Source Role ID"
|
|
},
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "memberRemove",
|
|
"method": "DELETE",
|
|
"title": "Remove member from a role",
|
|
"path": "/{roleID}/member/{userID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Source Role ID"
|
|
},
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "triggerScript",
|
|
"method": "POST",
|
|
"title": "Fire system:role trigger",
|
|
"path": "/{roleID}/trigger",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"name": "script",
|
|
"type": "string",
|
|
"title": "Script to execute",
|
|
"required": true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Users",
|
|
"path": "/users",
|
|
"entrypoint": "user",
|
|
"authentication": [
|
|
"Client ID",
|
|
"Session ID"
|
|
],
|
|
"struct": [
|
|
{
|
|
"imports": [
|
|
"github.com/cortezaproject/corteza-server/system/types"
|
|
]
|
|
}
|
|
],
|
|
"apis": [
|
|
{
|
|
"name": "list",
|
|
"method": "GET",
|
|
"title": "Search users (Directory)",
|
|
"path": "/",
|
|
"parameters": {
|
|
"get": [
|
|
{
|
|
"name": "userID",
|
|
"type": "[]string",
|
|
"required": false,
|
|
"title": "Filter by user ID"
|
|
},
|
|
{
|
|
"name": "roleID",
|
|
"type": "[]string",
|
|
"required": false,
|
|
"title": "Filter by role membership"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"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": "handle",
|
|
"required": false,
|
|
"title": "Search handle to match against users"
|
|
},
|
|
{
|
|
"name": "kind",
|
|
"type": "types.UserKind",
|
|
"required": false,
|
|
"title": "Kind (normal, bot)"
|
|
},
|
|
{
|
|
"type": "bool",
|
|
"name": "incDeleted",
|
|
"required": false,
|
|
"title": "[Deprecated] Include deleted users (requires 'access' permission)"
|
|
},
|
|
{
|
|
"type": "bool",
|
|
"name": "incSuspended",
|
|
"required": false,
|
|
"title": "[Deprecated] Include suspended users"
|
|
},
|
|
{
|
|
"name": "deleted",
|
|
"required": false,
|
|
"title": "Exclude (0, default), include (1) or return only (2) deleted users",
|
|
"type": "uint"
|
|
},
|
|
{
|
|
"name": "suspended",
|
|
"required": false,
|
|
"title": "Exclude (0, default), include (1) or return only (2) suspended users",
|
|
"type": "uint"
|
|
},
|
|
{"type": "uint", "name": "limit", "title": "Limit"},
|
|
{"type": "uint", "name": "offset", "title": "Offset"},
|
|
{"type": "uint", "name": "page", "title": "Page number (1-based)"},
|
|
{"type": "uint", "name": "perPage", "title": "Returned items per page (default 50)"},
|
|
{"type": "string", "name": "sort", "title": "Sort items"}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "create",
|
|
"method": "POST",
|
|
"title": "Create user",
|
|
"path": "/",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"name": "email",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Email"
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "string",
|
|
"required": false,
|
|
"title": "Name"
|
|
},
|
|
{
|
|
"name": "handle",
|
|
"type": "string",
|
|
"required": false,
|
|
"title": "Handle"
|
|
},
|
|
{
|
|
"name": "kind",
|
|
"type": "types.UserKind",
|
|
"required": false,
|
|
"title": "Kind (normal, bot)"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "update",
|
|
"method": "PUT",
|
|
"title": "Update user details",
|
|
"path": "/{userID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"name": "email",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Email"
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Name"
|
|
},
|
|
{
|
|
"name": "handle",
|
|
"type": "string",
|
|
"required": false,
|
|
"title": "Handle"
|
|
},
|
|
{
|
|
"name": "kind",
|
|
"type": "types.UserKind",
|
|
"required": false,
|
|
"title": "Kind (normal, bot)"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "read",
|
|
"method": "GET",
|
|
"title": "Read user details",
|
|
"path": "/{userID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "delete",
|
|
"method": "DELETE",
|
|
"title": "Remove user",
|
|
"path": "/{userID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "suspend",
|
|
"method": "POST",
|
|
"title": "Suspend user",
|
|
"path": "/{userID}/suspend",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "unsuspend",
|
|
"method": "POST",
|
|
"title": "Unsuspend user",
|
|
"path": "/{userID}/unsuspend",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "undelete",
|
|
"method": "POST",
|
|
"title": "Undelete user",
|
|
"path": "/{userID}/undelete",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "setPassword",
|
|
"method": "POST",
|
|
"title": "Set's or changes user's password",
|
|
"path": "/{userID}/password",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"name": "password",
|
|
"type": "string",
|
|
"required": true,
|
|
"sensitive": true,
|
|
"title": "New password"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "membershipList",
|
|
"method": "GET",
|
|
"title": "Add member to a role",
|
|
"path": "/{userID}/membership",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "membershipAdd",
|
|
"method": "POST",
|
|
"title": "Add role to a user",
|
|
"path": "/{userID}/membership/{roleID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
},
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "membershipRemove",
|
|
"method": "DELETE",
|
|
"title": "Remove role from a user",
|
|
"path": "/{userID}/membership/{roleID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "roleID",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
},
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "User ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "triggerScript",
|
|
"method": "POST",
|
|
"title": "Fire system:user trigger",
|
|
"path": "/{userID}/trigger",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": true,
|
|
"title": "ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"name": "script",
|
|
"type": "string",
|
|
"title": "Script to execute",
|
|
"required": true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Applications",
|
|
"path": "/application",
|
|
"entrypoint": "application",
|
|
"authentication": [],
|
|
"struct": [
|
|
{
|
|
"imports": [
|
|
"sqlxTypes github.com/jmoiron/sqlx/types"
|
|
]
|
|
}
|
|
],
|
|
"apis": [
|
|
{
|
|
"name": "list",
|
|
"method": "GET",
|
|
"title": "List applications",
|
|
"path": "/",
|
|
"parameters": {
|
|
"get": [
|
|
{
|
|
"name": "name",
|
|
"required": false,
|
|
"title": "Application name",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "query",
|
|
"required": false,
|
|
"title": "Filter applications",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "deleted",
|
|
"required": false,
|
|
"title": "Exclude (0, default), include (1) or return only (2) deleted roles",
|
|
"type": "uint"
|
|
},
|
|
{"type": "uint", "name": "limit", "title": "Limit"},
|
|
{"type": "uint", "name": "offset", "title": "Offset"},
|
|
{"type": "uint", "name": "page", "title": "Page number (1-based)"},
|
|
{"type": "uint", "name": "perPage", "title": "Returned items per page (default 50)"},
|
|
{"type": "string", "name": "sort", "title": "Sort items"}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "create",
|
|
"method": "POST",
|
|
"title": "Create application",
|
|
"path": "/",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"name": "name",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Application name"
|
|
},
|
|
{
|
|
"name": "enabled",
|
|
"type": "bool",
|
|
"required": false,
|
|
"title": "Enabled"
|
|
},
|
|
{
|
|
"name": "unify",
|
|
"type": "sqlxTypes.JSONText",
|
|
"required": false,
|
|
"title": "Unify properties"
|
|
},
|
|
{
|
|
"name": "config",
|
|
"type": "sqlxTypes.JSONText",
|
|
"required": false,
|
|
"title": "Arbitrary JSON holding application configuration"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "update",
|
|
"method": "PUT",
|
|
"title": "Update user details",
|
|
"path": "/{applicationID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "applicationID",
|
|
"required": true,
|
|
"title": "Application ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"name": "name",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Email"
|
|
},
|
|
{
|
|
"name": "enabled",
|
|
"type": "bool",
|
|
"required": false,
|
|
"title": "Enabled"
|
|
},
|
|
{
|
|
"name": "unify",
|
|
"type": "sqlxTypes.JSONText",
|
|
"required": false,
|
|
"title": "Unify properties"
|
|
},
|
|
{
|
|
"name": "config",
|
|
"type": "sqlxTypes.JSONText",
|
|
"required": false,
|
|
"title": "Arbitrary JSON holding application configuration"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "read",
|
|
"method": "GET",
|
|
"title": "Read application details",
|
|
"path": "/{applicationID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "applicationID",
|
|
"required": true,
|
|
"title": "Application ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "delete",
|
|
"method": "DELETE",
|
|
"title": "Remove application",
|
|
"path": "/{applicationID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "applicationID",
|
|
"required": true,
|
|
"title": "Application ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "undelete",
|
|
"method": "POST",
|
|
"title": "Undelete application",
|
|
"path": "/{applicationID}/undelete",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "applicationID",
|
|
"required": true,
|
|
"title": "Application ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "triggerScript",
|
|
"method": "POST",
|
|
"title": "Fire system:application trigger",
|
|
"path": "/{applicationID}/trigger",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "applicationID",
|
|
"required": true,
|
|
"title": "ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"name": "script",
|
|
"type": "string",
|
|
"title": "Script to execute",
|
|
"required": true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Permissions",
|
|
"parameters": {},
|
|
"entrypoint": "permissions",
|
|
"path": "/permissions",
|
|
"authentication": [
|
|
"Client ID",
|
|
"Session ID"
|
|
],
|
|
"struct": [
|
|
{
|
|
"imports": [
|
|
"github.com/cortezaproject/corteza-server/pkg/permissions"
|
|
]
|
|
}
|
|
],
|
|
"apis": [
|
|
{
|
|
"name": "list",
|
|
"path": "/",
|
|
"method": "GET",
|
|
"title": "Retrieve defined permissions",
|
|
"parameters": {}
|
|
},
|
|
{
|
|
"name": "effective",
|
|
"path": "/effective",
|
|
"method": "GET",
|
|
"title": "Effective rules for current user",
|
|
"parameters": {
|
|
"get": [
|
|
{
|
|
"name": "resource",
|
|
"type": "string",
|
|
"required": false,
|
|
"title": "Show only rules for a specific resource"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "read",
|
|
"path": "/{roleID}/rules",
|
|
"method": "GET",
|
|
"title": "Retrieve role permissions",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"name": "roleID",
|
|
"type": "uint64",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "delete",
|
|
"path": "/{roleID}/rules",
|
|
"method": "DELETE",
|
|
"title": "Remove all defined role permissions",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"name": "roleID",
|
|
"type": "uint64",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "update",
|
|
"path": "/{roleID}/rules",
|
|
"method": "PATCH",
|
|
"title": "Update permission settings",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"name": "roleID",
|
|
"type": "uint64",
|
|
"required": true,
|
|
"title": "Role ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"name": "rules",
|
|
"type": "permissions.RuleSet",
|
|
"required": true,
|
|
"title": "List of permission rules to set"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Reminders",
|
|
"entrypoint": "reminder",
|
|
"path": "/reminder",
|
|
"authentication": [
|
|
"Client ID",
|
|
"Session ID"
|
|
],
|
|
"struct": [
|
|
{
|
|
"imports": [
|
|
"sqlxTypes github.com/jmoiron/sqlx/types",
|
|
"time"
|
|
]
|
|
}
|
|
],
|
|
"apis": [
|
|
{
|
|
"name": "list",
|
|
"method": "GET",
|
|
"title": "List/read reminders",
|
|
"path": "/",
|
|
"parameters": {
|
|
"get": [
|
|
{
|
|
"name": "reminderID",
|
|
"type": "[]string",
|
|
"required": false,
|
|
"title": "Filter by reminder ID"
|
|
},
|
|
{
|
|
"name": "resource",
|
|
"required": false,
|
|
"title": "Only reminders of a specific resource",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "assignedTo",
|
|
"required": false,
|
|
"title": "Only reminders for a given user",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"name": "scheduledFrom",
|
|
"required": false,
|
|
"title": "Only reminders from this time (included)",
|
|
"type": "*time.Time"
|
|
},
|
|
{
|
|
"name": "scheduledUntil",
|
|
"required": false,
|
|
"title": "Only reminders up to this time (included)",
|
|
"type": "*time.Time"
|
|
},
|
|
{
|
|
"name": "scheduledOnly",
|
|
"required": false,
|
|
"title": "Only scheduled reminders",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"name": "excludeDismissed",
|
|
"required": false,
|
|
"title": "Filter out dismissed reminders",
|
|
"type": "bool"
|
|
},
|
|
{"type": "uint", "name": "limit", "title": "Limit"},
|
|
{"type": "uint", "name": "offset", "title": "Offset"},
|
|
{"type": "uint", "name": "page", "title": "Page number (1-based)"},
|
|
{"type": "uint", "name": "perPage", "title": "Returned items per page (default 50)"},
|
|
{"type": "string", "name": "sort", "title": "Sort items"}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "create",
|
|
"method": "POST",
|
|
"title": "Add new reminder",
|
|
"path": "/",
|
|
"parameters": {
|
|
"post": [
|
|
{
|
|
"name": "resource",
|
|
"title": "Resource",
|
|
"type": "string",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "assignedTo",
|
|
"title": "Assigned To",
|
|
"type": "uint64",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "payload",
|
|
"title": "Payload",
|
|
"type": "sqlxTypes.JSONText",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "remindAt",
|
|
"title": "Remind At",
|
|
"type": "*time.Time",
|
|
"required": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "update",
|
|
"method": "PUT",
|
|
"title": "Update reminder",
|
|
"path": "/{reminderID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "reminderID",
|
|
"required": true,
|
|
"title": "Reminder ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"name": "resource",
|
|
"title": "Resource",
|
|
"type": "string",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "assignedTo",
|
|
"title": "Assigned To",
|
|
"type": "uint64",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "payload",
|
|
"title": "Payload",
|
|
"type": "sqlxTypes.JSONText",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "remindAt",
|
|
"title": "Remind At",
|
|
"type": "*time.Time",
|
|
"required": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "read",
|
|
"method": "GET",
|
|
"title": "Read reminder by ID",
|
|
"path": "/{reminderID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "reminderID",
|
|
"required": true,
|
|
"title": "Reminder ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "delete",
|
|
"method": "DELETE",
|
|
"title": "Delete reminder",
|
|
"path": "/{reminderID}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "reminderID",
|
|
"required": true,
|
|
"title": "Reminder ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "dismiss",
|
|
"method": "PATCH",
|
|
"title": "Dismiss reminder",
|
|
"path": "/{reminderID}/dismiss",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "reminderID",
|
|
"required": true,
|
|
"title": "reminder ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "snooze",
|
|
"method": "PATCH",
|
|
"title": "Snooze reminder",
|
|
"path": "/{reminderID}/snooze",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"type": "uint64",
|
|
"name": "reminderID",
|
|
"required": true,
|
|
"title": "reminder ID"
|
|
}
|
|
],
|
|
"post": [
|
|
{
|
|
"type": "*time.Time",
|
|
"name": "remindAt",
|
|
"required": true,
|
|
"title": "New Remind At Time"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Attachments",
|
|
"path": "/attachment/{kind}",
|
|
"entrypoint": "attachment",
|
|
"authentication": [
|
|
"Client ID",
|
|
"Session ID"
|
|
],
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"name": "kind",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Kind"
|
|
}
|
|
],
|
|
"get": [
|
|
{
|
|
"type": "string",
|
|
"name": "sign",
|
|
"required": false,
|
|
"title": "Signature"
|
|
},
|
|
{
|
|
"type": "uint64",
|
|
"name": "userID",
|
|
"required": false,
|
|
"title": "User ID"
|
|
}
|
|
]
|
|
},
|
|
"apis": [
|
|
{
|
|
"name": "read",
|
|
"path": "/{attachmentID}",
|
|
"method": "GET",
|
|
"title": "Attachment details",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"name": "attachmentID",
|
|
"type": "uint64",
|
|
"required": true,
|
|
"title": "Attachment ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "delete",
|
|
"path": "/{attachmentID}",
|
|
"method": "DELETE",
|
|
"title": "Delete attachment",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"name": "attachmentID",
|
|
"type": "uint64",
|
|
"required": true,
|
|
"title": "Attachment ID"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "original",
|
|
"path": "/{attachmentID}/original/{name}",
|
|
"method": "GET",
|
|
"title": "Serves attached file",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"name": "attachmentID",
|
|
"type": "uint64",
|
|
"required": true,
|
|
"title": "Attachment ID"
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "File name"
|
|
}
|
|
],
|
|
"get": [
|
|
{
|
|
"type": "bool",
|
|
"name": "download",
|
|
"required": false,
|
|
"title": "Force file download"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "preview",
|
|
"path": "/{attachmentID}/preview.{ext}",
|
|
"method": "GET",
|
|
"title": "Serves preview of an attached file",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"name": "attachmentID",
|
|
"type": "uint64",
|
|
"required": true,
|
|
"title": "Attachment ID"
|
|
},
|
|
{
|
|
"name": "ext",
|
|
"type": "string",
|
|
"required": true,
|
|
"title": "Preview extension/format"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Statistics",
|
|
"entrypoint": "stats",
|
|
"path": "/stats",
|
|
"authentication": [
|
|
"Client ID",
|
|
"Session ID"
|
|
],
|
|
"apis": [
|
|
{
|
|
"name": "list",
|
|
"method": "GET",
|
|
"title": "List system statistics",
|
|
"path": "/",
|
|
"parameters": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "System automation scripts",
|
|
"path": "/automation",
|
|
"entrypoint": "automation",
|
|
"apis": [
|
|
{
|
|
"name": "list",
|
|
"method": "GET",
|
|
"title": "List all available automation scripts for system resources",
|
|
"path": "/",
|
|
"parameters": {
|
|
"get": [
|
|
{
|
|
"name": "resourceTypePrefixes",
|
|
"type": "[]string",
|
|
"title": "Filter by resource prefix"
|
|
},
|
|
{
|
|
"name": "resourceTypes",
|
|
"type": "[]string",
|
|
"title": "Filter by resource type"
|
|
},
|
|
{
|
|
"name": "eventTypes",
|
|
"type": "[]string",
|
|
"title": "Filter by event type"
|
|
},
|
|
{
|
|
"name": "excludeInvalid",
|
|
"type": "bool",
|
|
"title": "Exclude scripts that can not be used (errors)"
|
|
},
|
|
{
|
|
"name": "excludeClientScripts",
|
|
"type": "bool",
|
|
"title": "Do not include client scripts"
|
|
},
|
|
{
|
|
"name": "excludeServerScripts",
|
|
"type": "bool",
|
|
"title": "Do not include server scripts"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "bundle",
|
|
"method": "GET",
|
|
"title": "Serves client scripts bundle",
|
|
"path": "/{bundle}-{type}.{ext}",
|
|
"parameters": {
|
|
"path": [
|
|
{
|
|
"name": "bundle",
|
|
"type": "string",
|
|
"title": "Name of the bundle"
|
|
},
|
|
{
|
|
"name": "type",
|
|
"type": "string",
|
|
"title": "Bundle type"
|
|
},
|
|
{
|
|
"name": "ext",
|
|
"type": "string",
|
|
"title": "Bundle extension"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "triggerScript",
|
|
"method": "POST",
|
|
"title": "Triggers execution of a specific script on a system service level",
|
|
"path": "/trigger",
|
|
"parameters": {
|
|
"post": [{
|
|
"name": "script",
|
|
"type": "string",
|
|
"title": "Script to execute",
|
|
"required": true
|
|
}]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Action log",
|
|
"entrypoint": "actionlog",
|
|
"path": "/actionlog",
|
|
"struct": [
|
|
{
|
|
"imports": [
|
|
"time"
|
|
]
|
|
}
|
|
],
|
|
"apis": [
|
|
{
|
|
"name": "list",
|
|
"method": "GET",
|
|
"title": "Action log events",
|
|
"path": "/",
|
|
"parameters": {
|
|
"get": [
|
|
{
|
|
"name": "from",
|
|
"type": "*time.Time",
|
|
"required": false,
|
|
"title": "From"
|
|
},
|
|
{
|
|
"name": "to",
|
|
"type": "*time.Time",
|
|
"required": false,
|
|
"title": "To"
|
|
},
|
|
{
|
|
"name": "resource",
|
|
"required": false,
|
|
"title": "Resource",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "action",
|
|
"required": false,
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "actorID",
|
|
"required": false,
|
|
"title": "Filter by one or more actors",
|
|
"type": "[]string"
|
|
},
|
|
{"type": "uint", "name": "limit", "title": "Limit"},
|
|
{"type": "uint", "name": "offset", "title": "Offset"},
|
|
{"type": "uint", "name": "page", "title": "Page number (1-based)"},
|
|
{"type": "uint", "name": "perPage", "title": "Returned items per page (default 50)"}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|