MongooseIM GraphQL API Reference
A static documentation of the MongooseIM GraphQL Admin API
API Endpoints
http://localhost:5551/api/graphql
Queries
account
Description
Account management
Response
Returns an AccountAdminQuery
Example
Query
query account {
account {
listUsers
countUsers
checkPassword {
...CheckPasswordPayloadFragment
}
checkPasswordHash {
...CheckPasswordPayloadFragment
}
checkUser {
...CheckUserPayloadFragment
}
}
}
Response
{
"data": {
"account": {
"listUsers": ["abc123"],
"countUsers": 987,
"checkPassword": CheckPasswordPayload,
"checkPasswordHash": CheckPasswordPayload,
"checkUser": CheckUserPayload
}
}
}
cets
Description
CETS internal database management
Response
Returns a CETSAdminQuery
Example
Query
query cets {
cets {
tableInfo {
...CETSTableInfoFragment
}
systemInfo {
...CETSSystemInfoFragment
}
}
}
Response
{
"data": {
"cets": {
"tableInfo": [CETSTableInfo],
"systemInfo": CETSSystemInfo
}
}
}
checkAuth
Description
Check authorization status
Response
Returns an AdminAuthInfo
Example
Query
query checkAuth {
checkAuth {
domain
authStatus
authType
}
}
Response
{
"data": {
"checkAuth": {
"domain": "localhost",
"authStatus": "AUTHORIZED",
"authType": "DOMAIN_ADMIN"
}
}
}
domain
Description
Dynamic domain management
Response
Returns a DomainAdminQuery
Example
Query
query domain {
domain {
domainsByHostType
domainDetails {
...DomainFragment
}
}
}
Response
{
"data": {
"domain": {
"domainsByHostType": ["localhost"],
"domainDetails": Domain
}
}
}
gdpr
Description
Personal data management according to GDPR
Response
Returns a GdprAdminQuery
Example
Query
query gdpr {
gdpr {
retrievePersonalData
}
}
Response
{
"data": {
"gdpr": {
"retrievePersonalData": "xyz789"
}
}
}
last
Description
Last activity management
Response
Returns a LastAdminQuery
Example
Query
query last {
last {
getLast {
...LastActivityFragment
}
countActiveUsers
listOldUsers {
...OldUserFragment
}
}
}
Response
{
"data": {
"last": {
"getLast": LastActivity,
"countActiveUsers": 987,
"listOldUsers": [OldUser]
}
}
}
metric
Description
Browse metrics
Response
Returns a MetricAdminQuery
Example
Query
query metric {
metric {
getMetrics {
... on HistogramMetric {
...HistogramMetricFragment
}
... on CounterMetric {
...CounterMetricFragment
}
... on SpiralMetric {
...SpiralMetricFragment
}
... on GaugeMetric {
...GaugeMetricFragment
}
}
getMetricsAsDicts {
...MetricDictResultFragment
}
getClusterMetricsAsDicts {
...MetricNodeResultFragment
}
}
}
Response
{
"data": {
"metric": {
"getMetrics": [HistogramMetric],
"getMetricsAsDicts": [MetricDictResult],
"getClusterMetricsAsDicts": [MetricNodeResult]
}
}
}
mnesia
Description
Mnesia internal database management
Response
Returns a MnesiaAdminQuery
Example
Query
query mnesia {
mnesia {
systemInfo {
... on MnesiaStringResponse {
...MnesiaStringResponseFragment
}
... on MnesiaListResponse {
...MnesiaListResponseFragment
}
... on MnesiaIntResponse {
...MnesiaIntResponseFragment
}
}
}
}
Response
{
"data": {
"mnesia": {"systemInfo": [MnesiaStringResponse]}
}
}
muc
Description
MUC room management
Response
Returns a MUCAdminQuery
Example
Query
query muc {
muc {
listRooms {
...MUCRoomsPayloadFragment
}
getRoomConfig {
...MUCRoomConfigFragment
}
listRoomUsers {
...MUCRoomUserFragment
}
listRoomAffiliations {
...MUCRoomAffiliationFragment
}
getRoomMessages {
...StanzasPayloadFragment
}
}
}
Response
{
"data": {
"muc": {
"listRooms": MUCRoomsPayload,
"getRoomConfig": MUCRoomConfig,
"listRoomUsers": [MUCRoomUser],
"listRoomAffiliations": [MUCRoomAffiliation],
"getRoomMessages": StanzasPayload
}
}
}
muc_light
Description
MUC Light room management
Response
Returns a MUCLightAdminQuery
Example
Query
query muc_light {
muc_light {
getRoomMessages {
...StanzasPayloadFragment
}
getRoomConfig {
...RoomFragment
}
listRoomUsers {
...RoomUserFragment
}
listUserRooms
getBlockingList {
...BlockingItemFragment
}
}
}
Response
{
"data": {
"muc_light": {
"getRoomMessages": StanzasPayload,
"getRoomConfig": Room,
"listRoomUsers": [RoomUser],
"listUserRooms": ["alice@localhost"],
"getBlockingList": [BlockingItem]
}
}
}
private
Description
User private storage management
Response
Returns a PrivateAdminQuery
Example
Query
query private {
private {
getPrivate
}
}
Response
{
"data": {
"private": {
"getPrivate": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
}
}
}
roster
Description
User roster/contacts management
Response
Returns a RosterAdminQuery
Example
Query
query roster {
roster {
listContacts {
...ContactFragment
}
getContact {
...ContactFragment
}
}
}
Response
{
"data": {
"roster": {
"listContacts": [Contact],
"getContact": Contact
}
}
}
server
Description
Server info and management
Response
Returns a ServerAdminQuery
Example
Query
query server {
server {
status {
...StatusFragment
}
getLoglevel
getCookie
}
}
Response
{
"data": {
"server": {
"status": Status,
"getLoglevel": "NONE",
"getCookie": "abc123"
}
}
}
session
Description
User session management
Response
Returns a SessionAdminQuery
Example
Query
query session {
session {
listSessions {
...SessionFragment
}
countSessions
listUserSessions {
...SessionFragment
}
countUserResources
getUserResource
listUsersWithStatus {
...UserStatusFragment
}
countUsersWithStatus
}
}
Response
{
"data": {
"session": {
"listSessions": [Session],
"countSessions": 987,
"listUserSessions": [Session],
"countUserResources": 987,
"getUserResource": "res1",
"listUsersWithStatus": [UserStatus],
"countUsersWithStatus": 123
}
}
}
stanza
Description
Sending stanzas and querying MAM
Response
Returns a StanzaAdminQuery
Example
Query
query stanza {
stanza {
getLastMessages {
...StanzasPayloadFragment
}
}
}
Response
{"data": {"stanza": {"getLastMessages": StanzasPayload}}}
stat
Description
Server statistics
Response
Returns a StatsAdminQuery
Example
Query
query stat {
stat {
globalStats {
...GlobalStatsFragment
}
domainStats {
...DomainStatsFragment
}
}
}
Response
{
"data": {
"stat": {
"globalStats": GlobalStats,
"domainStats": DomainStats
}
}
}
vcard
Description
vCard management
Response
Returns a VcardAdminQuery
Example
Query
query vcard {
vcard {
getVcard {
...VcardFragment
}
}
}
Response
{"data": {"vcard": {"getVcard": Vcard}}}
Mutations
account
Description
Account management
Response
Returns an AccountAdminMutation
Example
Query
mutation account {
account {
registerUser {
...UserPayloadFragment
}
removeUser {
...UserPayloadFragment
}
banUser {
...UserPayloadFragment
}
changeUserPassword {
...UserPayloadFragment
}
importUsers {
...ImportPayloadFragment
}
}
}
Response
{
"data": {
"account": {
"registerUser": UserPayload,
"removeUser": UserPayload,
"banUser": UserPayload,
"changeUserPassword": UserPayload,
"importUsers": ImportPayload
}
}
}
domain
Description
Dynamic domain management
Response
Returns a DomainAdminMutation
Example
Query
mutation domain {
domain {
addDomain {
...DomainFragment
}
removeDomain {
...DomainFragment
}
requestRemoveDomain {
...DomainFragment
}
enableDomain {
...DomainFragment
}
disableDomain {
...DomainFragment
}
setDomainPassword
deleteDomainPassword
}
}
Response
{
"data": {
"domain": {
"addDomain": Domain,
"removeDomain": Domain,
"requestRemoveDomain": Domain,
"enableDomain": Domain,
"disableDomain": Domain,
"setDomainPassword": "xyz789",
"deleteDomainPassword": "xyz789"
}
}
}
httpUpload
Description
Generating upload/download URLs for the files
Response
Returns a HttpUploadAdminMutation
Example
Query
mutation httpUpload {
httpUpload {
getUrl {
...FileUrlsFragment
}
}
}
Response
{"data": {"httpUpload": {"getUrl": FileUrls}}}
inbox
Description
Inbox bin flushing
Response
Returns an InboxAdminMutation
Example
Query
mutation inbox {
inbox {
flushUserBin
flushDomainBin
flushGlobalBin
}
}
Response
{
"data": {
"inbox": {"flushUserBin": 123, "flushDomainBin": 123, "flushGlobalBin": 123}
}
}
last
Description
Last user activity management
Response
Returns a LastAdminMutation
Example
Query
mutation last {
last {
setLast {
...LastActivityFragment
}
removeOldUsers {
...OldUserFragment
}
}
}
Response
{
"data": {
"last": {
"setLast": LastActivity,
"removeOldUsers": [OldUser]
}
}
}
mnesia
Description
Mnesia internal database management
Response
Returns a MnesiaAdminMutation
Example
Query
mutation mnesia {
mnesia {
setMaster
changeNodename
backup
restore
dump
dumpTable
load
installFallback
}
}
Response
{
"data": {
"mnesia": {
"setMaster": "abc123",
"changeNodename": "abc123",
"backup": "xyz789",
"restore": "xyz789",
"dump": "abc123",
"dumpTable": "abc123",
"load": "xyz789",
"installFallback": "xyz789"
}
}
}
muc
Description
MUC room management
Response
Returns a MUCAdminMutation
Example
Query
mutation muc {
muc {
createInstantRoom {
...MUCRoomDescFragment
}
inviteUser
kickUser
sendMessageToRoom
sendPrivateMessage
deleteRoom
changeRoomConfiguration {
...MUCRoomConfigFragment
}
setUserRole
setUserAffiliation
enterRoom
exitRoom
}
}
Response
{
"data": {
"muc": {
"createInstantRoom": MUCRoomDesc,
"inviteUser": "abc123",
"kickUser": "abc123",
"sendMessageToRoom": "xyz789",
"sendPrivateMessage": "xyz789",
"deleteRoom": "xyz789",
"changeRoomConfiguration": MUCRoomConfig,
"setUserRole": "abc123",
"setUserAffiliation": "abc123",
"enterRoom": "xyz789",
"exitRoom": "xyz789"
}
}
}
muc_light
Description
MUC Light room management
Response
Returns a MUCLightAdminMutation
Example
Query
mutation muc_light {
muc_light {
createRoom {
...RoomFragment
}
changeRoomConfiguration {
...RoomFragment
}
inviteUser
deleteRoom
kickUser
sendMessageToRoom
setBlockingList
}
}
Response
{
"data": {
"muc_light": {
"createRoom": Room,
"changeRoomConfiguration": Room,
"inviteUser": "xyz789",
"deleteRoom": "abc123",
"kickUser": "abc123",
"sendMessageToRoom": "abc123",
"setBlockingList": "xyz789"
}
}
}
offline
Description
Deleting old Offline messages
Response
Returns an OfflineAdminMutation
Example
Query
mutation offline {
offline {
deleteExpiredMessages
deleteOldMessages
}
}
Response
{
"data": {
"offline": {
"deleteExpiredMessages": "xyz789",
"deleteOldMessages": "xyz789"
}
}
}
private
Description
User private storage management
Response
Returns a PrivateAdminMutation
Example
Query
mutation private {
private {
setPrivate
}
}
Response
{
"data": {
"private": {
"setPrivate": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
}
}
}
roster
Description
User roster/contacts management
Response
Returns a RosterAdminMutation
Example
Query
mutation roster {
roster {
addContact
addContacts
subscription
deleteContact
deleteContacts
setMutualSubscription
subscribeToAll
subscribeAllToAll
}
}
Response
{
"data": {
"roster": {
"addContact": "xyz789",
"addContacts": ["xyz789"],
"subscription": "abc123",
"deleteContact": "xyz789",
"deleteContacts": ["xyz789"],
"setMutualSubscription": "xyz789",
"subscribeToAll": ["abc123"],
"subscribeAllToAll": ["abc123"]
}
}
}
server
Description
Server info and management
Response
Returns a ServerAdminMutation
Example
Query
mutation server {
server {
joinCluster
leaveCluster
removeFromCluster
restart
stop
removeNode
setLoglevel
}
}
Response
{
"data": {
"server": {
"joinCluster": "abc123",
"leaveCluster": "xyz789",
"removeFromCluster": "xyz789",
"restart": "xyz789",
"stop": "abc123",
"removeNode": "abc123",
"setLoglevel": "xyz789"
}
}
}
session
Description
User session management
Response
Returns a SessionAdminMutation
Example
Query
mutation session {
session {
kickUserSession {
...KickUserResultFragment
}
kickUser {
...KickUserResultFragment
}
setPresence {
...SessionPayloadFragment
}
}
}
Response
{
"data": {
"session": {
"kickUserSession": KickUserResult,
"kickUser": [KickUserResult],
"setPresence": SessionPayload
}
}
}
stanza
Description
Sending stanzas and querying MAM
Response
Returns a StanzaAdminMutation
Example
Query
mutation stanza {
stanza {
sendMessage {
...SendStanzaPayloadFragment
}
sendMessageHeadLine {
...SendStanzaPayloadFragment
}
sendStanza {
...SendStanzaPayloadFragment
}
}
}
Response
{
"data": {
"stanza": {
"sendMessage": SendStanzaPayload,
"sendMessageHeadLine": SendStanzaPayload,
"sendStanza": SendStanzaPayload
}
}
}
token
Description
OAUTH user token management
Response
Returns a TokenAdminMutation
Example
Query
mutation token {
token {
requestToken {
...TokenFragment
}
revokeToken
}
}
Response
{
"data": {
"token": {
"requestToken": Token,
"revokeToken": "abc123"
}
}
}
vcard
Description
vCard management
Response
Returns a VcardAdminMutation
Example
Query
mutation vcard {
vcard {
setVcard {
...VcardFragment
}
}
}
Response
{"data": {"vcard": {"setVcard": Vcard}}}
Subscriptions
stanza
Response
Returns a StanzaAdminSubscription
Example
Query
subscription stanza {
stanza {
subscribeForMessages {
...StanzaMapFragment
}
}
}
Response
{"data": {"stanza": {"subscribeForMessages": StanzaMap}}}
Types
AccountAdminMutation
Description
Allow admin to manage user accounts.
Fields
Field Name | Description |
---|---|
registerUser - UserPayload
|
Register a user. Username will be generated when skipped |
Arguments |
|
removeUser - UserPayload
|
Remove the user's account along with all the associated personal data |
Arguments
|
|
banUser - UserPayload
|
Ban an account: kick sessions and set a random password |
changeUserPassword - UserPayload
|
Change the password of a user |
importUsers - ImportPayload
|
Import users from a CSV file |
Arguments
|
Example
{
"registerUser": UserPayload,
"removeUser": UserPayload,
"banUser": UserPayload,
"changeUserPassword": UserPayload,
"importUsers": ImportPayload
}
AccountAdminQuery
Description
Allow admin to get information about accounts.
Fields
Field Name | Description |
---|---|
listUsers - [String!]
|
List users per domain |
Arguments
|
|
countUsers - Int
|
Get number of users per domain |
Arguments
|
|
checkPassword - CheckPasswordPayload
|
Check if a password is correct |
checkPasswordHash - CheckPasswordPayload
|
Check if a password hash is correct (allowed methods: md5, sha). Works only for a plain passwords |
checkUser - CheckUserPayload
|
Check if a user exists |
Arguments
|
Example
{
"listUsers": ["xyz789"],
"countUsers": 987,
"checkPassword": CheckPasswordPayload,
"checkPasswordHash": CheckPasswordPayload,
"checkUser": CheckUserPayload
}
Address
Example
{
"tags": ["HOME"],
"pobox": "xyz789",
"extadd": "abc123",
"street": "xyz789",
"locality": "abc123",
"region": "abc123",
"pcode": "abc123",
"country": "xyz789"
}
AddressInput
Example
{
"tags": ["HOME"],
"pobox": "xyz789",
"extadd": "xyz789",
"street": "abc123",
"locality": "xyz789",
"region": "xyz789",
"pcode": "abc123",
"country": "xyz789"
}
AddressTags
Description
Specifies type of an address
Values
Enum Value | Description |
---|---|
|
Place of residence address |
|
Workplace adress |
|
Postal code |
|
Parcel delivery address |
|
Domestic delivery address |
|
Preferred delivery address when more than one address is specified |
|
International delivery address |
Example
"HOME"
AdminAuthInfo
Description
Information about user request authorization
Fields
Field Name | Description |
---|---|
domain - DomainName
|
Authorized for a domain |
authStatus - AuthStatus!
|
Authorization status |
authType - AuthType
|
Authorization as a |
Example
{
"domain": "localhost",
"authStatus": "AUTHORIZED",
"authType": "DOMAIN_ADMIN"
}
Affiliation
Description
User's affiliation
Values
Enum Value | Description |
---|---|
|
Owner of the room |
|
Member of the room |
|
User doesn't have any affiliation |
Example
"OWNER"
Agent
Description
Specifies how agent is stored
Types
Union Types |
---|
Example
AgentVcard
AgentInput
Fields
Input Field | Description |
---|---|
extValue - String
|
Link to external vcard |
vcard - VcardInput
|
Individual vcard container |
Example
{
"extValue": "xyz789",
"vcard": VcardInput
}
AgentVcard
Description
Agent vCard
Fields
Field Name | Description |
---|---|
vcard - Vcard
|
vCard data |
Example
{"vcard": Vcard}
AuthStatus
Description
All authorization statuses
Values
Enum Value | Description |
---|---|
|
Request is authorized |
|
Request is unauthorized |
Example
"AUTHORIZED"
AuthType
Values
Enum Value | Description |
---|---|
|
Administrator of the specific domain |
|
Global administrator |
|
Unauthorized user |
Example
"DOMAIN_ADMIN"
BareJID
Description
JID without a resource
Example
"alice@localhost"
BinValue
Fields
Field Name | Description |
---|---|
binValue - String
|
Value in binary form |
Example
{"binValue": "xyz789"}
BlockedEntityType
Description
Type of blocked entity
Values
Enum Value | Description |
---|---|
|
Individual user |
|
MUC Light room |
Example
"USER"
BlockingAction
Description
Type of blocking action
Values
Enum Value | Description |
---|---|
|
Unblock user/room |
|
Block user/room |
Example
"ALLOW"
BlockingInput
Description
Specifies blocking data
Fields
Input Field | Description |
---|---|
entityType - BlockedEntityType!
|
Type of entity to block |
action - BlockingAction!
|
Type of blocking action. Default = DENY |
entity - JID!
|
Entity's JID |
Example
{
"entityType": "USER",
"action": "ALLOW",
"entity": "alice@localhost"
}
BlockingItem
Description
Blocking item data
Fields
Field Name | Description |
---|---|
entityType - BlockedEntityType!
|
Type of the entity |
action - BlockingAction!
|
Action to be taken |
entity - JID!
|
Entity's JID |
Example
{
"entityType": "USER",
"action": "ALLOW",
"entity": "alice@localhost"
}
Boolean
Description
The Boolean
scalar type represents true
or false
.
Example
true
CETSAdminQuery
Description
Allow admin to get information about CETS status
Fields
Field Name | Description |
---|---|
tableInfo - [CETSTableInfo]
|
Get a list of tables from the local node |
systemInfo - CETSSystemInfo
|
Get status of CETS |
Example
{
"tableInfo": [CETSTableInfo],
"systemInfo": CETSSystemInfo
}
CETSSystemInfo
Fields
Field Name | Description |
---|---|
availableNodes - [String]
|
Available nodes (nodes that are connected to us and have the CETS disco process started) |
unavailableNodes - [String]
|
Unavailable nodes (nodes that do not respond to our pings) |
joinedNodes - [String]
|
Joined nodes (nodes that have our local tables running) |
discoveredNodes - [String]
|
Discovered nodes (nodes that are extracted from the discovery backend) |
remoteNodesWithoutDisco - [String]
|
Nodes with stopped CETS discovery |
remoteNodesWithUnknownTables - [String]
|
Nodes that have more tables registered than the local node |
remoteUnknownTables - [String]
|
Unknown remote tables |
remoteNodesWithMissingTables - [String]
|
Nodes that are available, but do not host some of our local tables |
remoteMissingTables - [String]
|
Missing remote tables |
conflictNodes - [String]
|
Nodes that replicate at least one of our local tables to a different list of nodes |
conflictTables - [String]
|
Tables that have conflicting replication destinations |
discoveryWorks - Boolean
|
Returns true if the last discovery attempt is successful |
Example
{
"availableNodes": ["abc123"],
"unavailableNodes": ["xyz789"],
"joinedNodes": ["abc123"],
"discoveredNodes": ["xyz789"],
"remoteNodesWithoutDisco": ["abc123"],
"remoteNodesWithUnknownTables": [
"abc123"
],
"remoteUnknownTables": ["abc123"],
"remoteNodesWithMissingTables": [
"abc123"
],
"remoteMissingTables": ["xyz789"],
"conflictNodes": ["xyz789"],
"conflictTables": ["xyz789"],
"discoveryWorks": true
}
CETSTableInfo
CheckPasswordPayload
CheckUserPayload
Contact
Description
The contact or roster item
Fields
Field Name | Description |
---|---|
jid - JID!
|
The contact jid |
name - String
|
The contact name |
groups - [String!]
|
The list of the groups the contact belongs to |
subscription - ContactSub
|
The type of the subscription |
ask - ContactAsk
|
The type of the ask |
Example
{
"jid": "alice@localhost",
"name": "abc123",
"groups": ["abc123"],
"subscription": "NONE",
"ask": "SUBSCRIBE"
}
ContactAsk
Description
The contact ask types
Values
Enum Value | Description |
---|---|
|
Ask to subscribe |
|
Ask to unsubscribe |
|
Invitation came in |
|
Invitation came out |
|
Ask for mutual subscription |
|
No invitation |
Example
"SUBSCRIBE"
ContactInput
ContactSub
Description
The contact subscription types
Values
Enum Value | Description |
---|---|
|
The user does not have a subscription to the contact's presence, and the contact does not have a subscription to the user's presence |
|
The user and the contact have subscriptions to each other's presence |
|
The contact has a subscription to the user's presence, but the user does not have a subscription to the contact's presence |
|
The user has a subscription to the contact's presence, but the contact does not have a subscription to the user's presence |
Example
"NONE"
CounterMetric
Fields
Field Name | Description |
---|---|
name - [String]
|
Metric name |
type - MetricType
|
Metric type |
value - Int
|
The metric value |
ms_since_reset - Int
|
Time since last reset |
Example
{
"name": ["xyz789"],
"type": "histogram",
"value": 123,
"ms_since_reset": 987
}
DateTime
Description
Date and time represented using YYYY-MM-DDTHH:mm:ssZ format
Example
"2007-12-03T10:15:30Z"
Domain
Description
A dynamic domain representation. Some operation could return incomplete object i.e. some fields can be null.
Fields
Field Name | Description |
---|---|
domain - DomainName
|
Domain name |
hostType - String
|
Domain hostType |
status - DomainStatus
|
Is domain enabled? |
Example
{
"domain": "localhost",
"hostType": "abc123",
"status": "ENABLED"
}
DomainAdminMutation
Fields
Field Name | Description |
---|---|
addDomain - Domain
|
Add new domain. Only for global admin |
Arguments
|
|
removeDomain - Domain
|
Remove domain. Only for global admin |
Arguments
|
|
requestRemoveDomain - Domain
|
Remove domain asynchronously. Only for global admin |
Arguments
|
|
enableDomain - Domain
|
Enable domain. Only for global admin |
Arguments
|
|
disableDomain - Domain
|
Disable domain. Only for global admin |
Arguments
|
|
setDomainPassword - String
|
Create or update domain admin password |
Arguments
|
|
deleteDomainPassword - String
|
Delete domain admin password. Only for global admin |
Arguments
|
Example
{
"addDomain": Domain,
"removeDomain": Domain,
"requestRemoveDomain": Domain,
"enableDomain": Domain,
"disableDomain": Domain,
"setDomainPassword": "abc123",
"deleteDomainPassword": "abc123"
}
DomainAdminQuery
Fields
Field Name | Description |
---|---|
domainsByHostType - [DomainName!]
|
Get all enabled domains by hostType. Only for global admin |
Arguments
|
|
domainDetails - Domain
|
Get information about the domain |
Arguments
|
Example
{
"domainsByHostType": ["localhost"],
"domainDetails": Domain
}
DomainName
Description
XMPP domain name (domain part of a JID)
Example
"localhost"
DomainStats
DomainStatus
Values
Enum Value | Description |
---|---|
|
Domain is enabled and ready to route traffic |
|
Domain is disabled and won't be loaded into MongooseIM |
|
Domain has been marked for deletion and is disabled until all data is removed |
|
Domain is deleted and does not exist anymore |
Example
"ENABLED"
Fields
Field Name | Description |
---|---|
tags - [EmailTags]
|
Email tags |
userId - String
|
Email address |
Example
{"tags": ["HOME"], "userId": "abc123"}
EmailInput
Fields
Input Field | Description |
---|---|
tags - [EmailTags!]
|
Email tags |
userId - String!
|
Email address |
Example
{"tags": ["HOME"], "userId": "abc123"}
EmailTags
Description
Format or preference of an email
Values
Enum Value | Description |
---|---|
|
Address associated with a residence |
|
Address associated with a place of work |
|
Internet addressing type |
|
Preferred use of an email address when more than one is specified |
|
X.400 addressing type |
Example
"HOME"
External
Fields
Field Name | Description |
---|---|
extValue - String
|
URI to an external value |
Example
{"extValue": "xyz789"}
FileUrls
FullJID
Description
JID with a resource
Example
"alice@localhost/res1"
GaugeMetric
Fields
Field Name | Description |
---|---|
name - [String]
|
Metric name |
type - MetricType
|
Metric type |
value - Int
|
The metric value |
Example
{
"name": ["xyz789"],
"type": "histogram",
"value": 987
}
GdprAdminQuery
Description
Retrieve user's presonal data
Fields
Field Name | Description |
---|---|
retrievePersonalData - String
|
Retrieves all personal data from MongooseIM for a given user |
Arguments |
Example
{"retrievePersonalData": "xyz789"}
GeographicalPosition
GeographicalPositionInput
GlobalStats
Fields
Field Name | Description |
---|---|
uptimeSeconds - Int
|
Uptime of the node |
registeredUsers - Int
|
Number of registered users |
onlineUsersNode - Int
|
Number of online users on the node |
onlineUsers - Int
|
Number of online users |
incomingS2S - Int
|
Number of all incoming s2s connections |
outgoingS2S - Int
|
Number of all outgoing s2s connections |
Example
{
"uptimeSeconds": 123,
"registeredUsers": 123,
"onlineUsersNode": 123,
"onlineUsers": 987,
"incomingS2S": 123,
"outgoingS2S": 123
}
Header
HistogramMetric
Fields
Field Name | Description |
---|---|
name - [String]
|
Metric name |
type - MetricType
|
Metric type |
n - Int
|
The number of values used in the calculation |
mean - Int
|
Mean value |
min - Int
|
Min value |
max - Int
|
Max value |
median - Int
|
Median value |
p50 - Int
|
50th percentile |
p75 - Int
|
75th percentile |
p90 - Int
|
90th percentile |
p95 - Int
|
95th percentile |
p99 - Int
|
99th percentile |
p999 - Int
|
99.9th percentile |
Example
{
"name": ["xyz789"],
"type": "histogram",
"n": 123,
"mean": 123,
"min": 123,
"max": 987,
"median": 123,
"p50": 987,
"p75": 123,
"p90": 987,
"p95": 987,
"p99": 123,
"p999": 123
}
HttpUploadAdminMutation
Description
Allow admin to generate upload/download URL for a file on user's behalf".
Fields
Field Name | Description |
---|---|
getUrl - FileUrls
|
Allow admin to generate upload/download URLs for a file on user's behalf |
Arguments
|
Example
{"getUrl": FileUrls}
ID
Description
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4"
) or integer (such as 4
) input value will be accepted as an ID.
Example
4
Image
ImageData
ImageInput
ImportPayload
Description
Import users payload
Fields
Field Name | Description |
---|---|
status - String!
|
Status |
created - [JID!]
|
Users created |
existing - [JID!]
|
Users that were already existing |
notAllowed - [JID!]
|
Users there were not allowed to be created |
invalidJID - [String!]
|
Users with invalid JIDs |
emptyPassword - [JID!]
|
Users with empty passwords |
invalidRecord - [String!]
|
Invalid records |
Example
{
"status": "abc123",
"created": ["alice@localhost"],
"existing": ["alice@localhost"],
"notAllowed": ["alice@localhost"],
"invalidJID": ["xyz789"],
"emptyPassword": ["alice@localhost"],
"invalidRecord": ["abc123"]
}
InboxAdminMutation
Description
Allow admin to flush the inbox bin".
Fields
Field Name | Description |
---|---|
flushUserBin - Int
|
Flush the user's bin and return the number of deleted rows |
flushDomainBin - Int
|
Flush the whole domain bin and return the number of deleted rows |
Arguments
|
|
flushGlobalBin - Int
|
Flush the global bin and return the number of deleted rows |
Example
{"flushUserBin": 987, "flushDomainBin": 987, "flushGlobalBin": 123}
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
JID
Description
Unique XMPP identifier in the form of node@domain or **node@domain/resource
Example
"alice@localhost"
Key
KeyInput
Keyword
Fields
Field Name | Description |
---|---|
keyword - [String]
|
Keywords list |
Example
{"keyword": ["abc123"]}
KeywordInput
Fields
Input Field | Description |
---|---|
keyword - [String!]
|
Keywords list |
Example
{"keyword": ["xyz789"]}
KickUserResult
Description
Kick user session result
Example
{
"jid": "alice@localhost",
"kicked": false,
"code": "abc123",
"message": "xyz789"
}
Label
Fields
Field Name | Description |
---|---|
tags - [AddressTags]
|
Label tags |
line - [String]
|
Individual label lines |
Example
{"tags": ["HOME"], "line": ["xyz789"]}
LabelInput
Fields
Input Field | Description |
---|---|
tags - [AddressTags!]
|
Label tags |
line - [String!]!
|
Individual label lines |
Example
{"tags": ["HOME"], "line": ["xyz789"]}
LastActivity
LastAdminMutation
Description
Allow admin to get information about last activity.
Fields
Field Name | Description |
---|---|
setLast - LastActivity
|
Set user's last status and timestamp |
removeOldUsers - [OldUser!]
|
Delete users that didn't log in the last days or have never logged in. Globally or for a specified domain. Please use listOldUsers to check which users will be deleted |
Arguments
|
Example
{
"setLast": LastActivity,
"removeOldUsers": [OldUser]
}
LastAdminQuery
Description
Allow admin to manage last activity.
Fields
Field Name | Description |
---|---|
getLast - LastActivity
|
Get the user's last status and timestamp |
Arguments
|
|
countActiveUsers - Int
|
Get the number of users active from the given timestamp |
Arguments
|
|
listOldUsers - [OldUser!]
|
List users that didn't log in the last days or have never logged in. Globally or for a specified domain |
Arguments
|
Example
{
"getLast": LastActivity,
"countActiveUsers": 987,
"listOldUsers": [OldUser]
}
LogLevel
Description
Logs events that equally or more severe than the configured level
Values
Enum Value | Description |
---|---|
|
Do not log any events |
|
Log when system is unusable |
|
Log when action must be taken immediately |
|
Log critical conditions |
|
Log error conditions |
|
Log warning conditions |
|
Log normal but significant conditions |
|
Long informational messages |
|
Log debug messages |
|
Log everything |
Example
"NONE"
MUCAdminMutation
Description
Allow admin to manage Multi-User Chat rooms.
Fields
Field Name | Description |
---|---|
createInstantRoom - MUCRoomDesc
|
Create a MUC room under the given XMPP hostname |
Arguments |
|
inviteUser - String
|
Invite a user to a MUC room |
kickUser - String
|
Kick a user from a MUC room |
Arguments |
|
sendMessageToRoom - String
|
Send a message to a MUC room |
sendPrivateMessage - String
|
Send a private message to a MUC room user |
Arguments |
|
deleteRoom - String
|
Remove a MUC room |
changeRoomConfiguration - MUCRoomConfig
|
Change configuration of a MUC room |
Arguments
|
|
setUserRole - String
|
Change a user role |
Arguments |
|
setUserAffiliation - String
|
Change a user affiliation |
Arguments |
|
enterRoom - String
|
Make a user enter the room with a given nick |
Arguments |
|
exitRoom - String
|
Make a user with the given nick exit the room |
Arguments |
Example
{
"createInstantRoom": MUCRoomDesc,
"inviteUser": "xyz789",
"kickUser": "abc123",
"sendMessageToRoom": "abc123",
"sendPrivateMessage": "abc123",
"deleteRoom": "xyz789",
"changeRoomConfiguration": MUCRoomConfig,
"setUserRole": "xyz789",
"setUserAffiliation": "xyz789",
"enterRoom": "xyz789",
"exitRoom": "xyz789"
}
MUCAdminQuery
Description
Allow admin to get information about Multi-User Chat rooms.
Fields
Field Name | Description |
---|---|
listRooms - MUCRoomsPayload
|
Get MUC rooms under the given MUC domain |
Arguments |
|
getRoomConfig - MUCRoomConfig
|
Get configuration of the MUC room |
Arguments
|
|
listRoomUsers - [MUCRoomUser!]
|
Get the user list of a given MUC room |
Arguments
|
|
listRoomAffiliations - [MUCRoomAffiliation!]
|
Get the affiliation list of given MUC room |
Arguments
|
|
getRoomMessages - StanzasPayload
|
Get the MUC room archived messages |
Example
{
"listRooms": MUCRoomsPayload,
"getRoomConfig": MUCRoomConfig,
"listRoomUsers": [MUCRoomUser],
"listRoomAffiliations": [MUCRoomAffiliation],
"getRoomMessages": StanzasPayload
}
MUCAffiliation
Description
User affiliation to a specific room
Values
Enum Value | Description |
---|---|
|
The user is the owner of the room |
|
The user has an administrative role |
|
The user is a member of the room |
|
The user isn't a member of the room |
|
The user doesn't have any affiliation |
Example
"OWNER"
MUCLightAdminMutation
Description
Allow admin to manage Multi-User Chat Light rooms.
Fields
Field Name | Description |
---|---|
createRoom - Room
|
Create a MUC light room under the given XMPP hostname |
Arguments
|
|
changeRoomConfiguration - Room
|
Change configuration of a MUC Light room |
Arguments |
|
inviteUser - String
|
Invite a user to a MUC Light room |
deleteRoom - String
|
Remove a MUC Light room |
Arguments
|
|
kickUser - String
|
Kick a user from a MUC Light room |
sendMessageToRoom - String
|
Send a message to a MUC Light room |
setBlockingList - String
|
Set the user's list of blocked entities |
Arguments
|
Example
{
"createRoom": Room,
"changeRoomConfiguration": Room,
"inviteUser": "xyz789",
"deleteRoom": "abc123",
"kickUser": "abc123",
"sendMessageToRoom": "xyz789",
"setBlockingList": "xyz789"
}
MUCLightAdminQuery
Description
Allow admin to get information about Multi-User Chat Light rooms.
Fields
Field Name | Description |
---|---|
getRoomMessages - StanzasPayload
|
Get the MUC Light room archived messages |
getRoomConfig - Room
|
Get configuration of the MUC Light room |
Arguments
|
|
listRoomUsers - [RoomUser!]
|
Get users list of given MUC Light room |
Arguments
|
|
listUserRooms - [JID!]
|
Get the list of MUC Light rooms that the user participates in |
Arguments
|
|
getBlockingList - [BlockingItem!]
|
Get the user's list of blocked entities |
Arguments
|
Example
{
"getRoomMessages": StanzasPayload,
"getRoomConfig": Room,
"listRoomUsers": [RoomUser],
"listUserRooms": ["alice@localhost"],
"getBlockingList": [BlockingItem]
}
MUCRole
Description
MUC role types
Values
Enum Value | Description |
---|---|
|
User is a visitor |
|
User can participate in the room |
|
User has ability to moderate room |
Example
"VISITOR"
MUCRoomAffiliation
Description
MUC room affiliation data
Fields
Field Name | Description |
---|---|
jid - JID!
|
Room's JID |
affiliation - MUCAffiliation!
|
Affiliation type |
Example
{
"jid": "alice@localhost",
"affiliation": "OWNER"
}
MUCRoomConfig
Description
MUC room configuration
Fields
Field Name | Description |
---|---|
title - String!
|
Room's title |
description - String!
|
Room's description |
allowChangeSubject - Boolean!
|
Allow to change the room's subject? |
allowQueryUsers - Boolean!
|
Allow to query users? |
allowPrivateMessages - Boolean!
|
Allow private messages? |
allowVisitorStatus - Boolean!
|
Allow visitor status? |
allowVisitorNickchange - Boolean!
|
Allow visitors to change their nicks? |
public - Boolean!
|
Is the room public? |
publicList - Boolean!
|
Is the room on the public list? |
persistent - Boolean!
|
Is the room persistent |
moderated - Boolean!
|
Is the room moderated? |
membersByDefault - Boolean!
|
Should all new occupants be members by default? |
membersOnly - Boolean!
|
Should only users with member affiliation be allowed to join the room? |
allowUserInvites - Boolean!
|
Can users invite others to join the room? |
allowMultipleSession - Boolean!
|
Allow multiple sessions of the room? |
passwordProtected - Boolean!
|
Is the room password protected? |
password - String!
|
Password to the room |
anonymous - Boolean!
|
Are occupants, except from moderators, able see each others real JIDs? |
mayGetMemberList - [String!]!
|
Array of roles and/or privileges that enable retrieving the room's member list |
maxUsers - PosInt
|
Maximum number of users in the room |
logging - Boolean!
|
Does the room enabled logging events to a file on the disk? |
Example
{
"title": "abc123",
"description": "abc123",
"allowChangeSubject": false,
"allowQueryUsers": true,
"allowPrivateMessages": true,
"allowVisitorStatus": true,
"allowVisitorNickchange": false,
"public": true,
"publicList": false,
"persistent": true,
"moderated": false,
"membersByDefault": false,
"membersOnly": false,
"allowUserInvites": false,
"allowMultipleSession": false,
"passwordProtected": true,
"password": "abc123",
"anonymous": true,
"mayGetMemberList": ["xyz789"],
"maxUsers": 2,
"logging": false
}
MUCRoomConfigInput
Description
MUC rooom configuration input
Fields
Input Field | Description |
---|---|
title - String
|
Room's title |
description - String
|
Room's description |
allowChangeSubject - Boolean
|
Allow to change room's subject? |
allowQueryUsers - Boolean
|
Allow to query users? |
allowPrivateMessages - Boolean
|
Allow private messages? |
allowVisitorStatus - Boolean
|
Allow visitor status? |
allowVisitorNickchange - Boolean
|
Allow visitors to change their nicks? |
public - Boolean
|
Is the room public? |
publicList - Boolean
|
Is the room on the public list? |
persistent - Boolean
|
Is the room persistent |
moderated - Boolean
|
Is the room moderated? |
membersByDefault - Boolean
|
Should all new occupants be members by default? |
membersOnly - Boolean
|
Should only users with member affiliation be allowed to join the room? |
allowUserInvites - Boolean
|
Can users invite others to join the room? |
allowMultipleSession - Boolean
|
Allow multiple sessions of the room? |
passwordProtected - Boolean
|
Is the room password protected? |
password - String
|
Password to the room |
anonymous - Boolean
|
Are occupants, except from moderators, able see each others real JIDs? |
mayGetMemberList - [String!]
|
Array of roles and/or privileges that enable retrieving the room's member list |
maxUsers - PosInt
|
Maximum number of users in the room |
logging - Boolean
|
Does the room enabled logging events to a file on the disk? |
Example
{
"title": "xyz789",
"description": "xyz789",
"allowChangeSubject": true,
"allowQueryUsers": true,
"allowPrivateMessages": false,
"allowVisitorStatus": true,
"allowVisitorNickchange": true,
"public": true,
"publicList": false,
"persistent": true,
"moderated": true,
"membersByDefault": false,
"membersOnly": true,
"allowUserInvites": false,
"allowMultipleSession": false,
"passwordProtected": true,
"password": "xyz789",
"anonymous": false,
"mayGetMemberList": ["xyz789"],
"maxUsers": 2,
"logging": true
}
MUCRoomDesc
MUCRoomUser
MUCRoomsPayload
Description
MUC rooms payload
Fields
Field Name | Description |
---|---|
rooms - [MUCRoomDesc!]
|
List of rooms descriptions |
count - NonNegInt
|
Number of the rooms |
index - NonNegInt
|
Index of the room |
first - String
|
First room title |
last - String
|
Last room title |
Example
{
"rooms": [MUCRoomDesc],
"count": 0,
"index": 0,
"first": "abc123",
"last": "abc123"
}
MetricAdminQuery
Description
Allow admin to get the metric values. Only works with Exometer enabled.
Fields
Field Name | Description |
---|---|
getMetrics - [MetricResult]
|
Match metrics using a name pattern and return the metric values. Return all metrics if the name is not provided. Name is a list of name segments or an underscore (i.e. path). |
Arguments
|
|
getMetricsAsDicts - [MetricDictResult]
|
Get metrics without using graphql unions. Optionally returns only specified keys (i.e. keys: ["one"] only returns key "one", but not key "count") |
getClusterMetricsAsDicts - [MetricNodeResult]
|
Gather metrics from multiple nodes. Optionally returns only from specified nodes. |
Example
{
"getMetrics": [HistogramMetric],
"getMetricsAsDicts": [MetricDictResult],
"getClusterMetricsAsDicts": [MetricNodeResult]
}
MetricDictEntry
MetricDictResult
Fields
Field Name | Description |
---|---|
name - [String]
|
Metric name |
dict - [MetricDictEntry]
|
A list of keys and values |
Example
{
"name": ["xyz789"],
"dict": [MetricDictEntry]
}
MetricNodeResult
Fields
Field Name | Description |
---|---|
node - String
|
|
result - [MetricDictResult]
|
Example
{
"node": "xyz789",
"result": [MetricDictResult]
}
MetricResult
Description
Type of metric result
Types
Union Types |
---|
Example
HistogramMetric
MetricType
Description
Result of a metric
Values
Enum Value | Description |
---|---|
|
Collects values over a sliding window of 60s and returns appropriate statistical values |
|
Returns a number |
|
Provides 2 values: total event count and a value in 60s window. Dividing one value by 60 provides an average per-second value over last minute. |
|
Consists of value and time in milliseconds elapsed from the last metric update |
Example
"histogram"
MnesiaAdminMutation
Description
Allow admin to backup, dump, load, restore and modify mnesia database
Fields
Field Name | Description |
---|---|
setMaster - String
|
Set mnesia's master node |
Arguments
|
|
changeNodename - String
|
Change nodename from 'fromString' to 'toString' in 'source' backup file and create new 'target' backup file |
backup - String
|
Save mnesia backup to file 'path' |
Arguments
|
|
restore - String
|
Restore mnesia backup from file 'path' |
Arguments
|
|
dump - String
|
Dump mnesia to file 'path' |
Arguments
|
|
dumpTable - String
|
Dump mnesia table 'table' to file 'path' |
load - String
|
Load mnesia from file 'path' that was previously dumped |
Arguments
|
|
installFallback - String
|
Install mnesia fallback |
Arguments
|
Example
{
"setMaster": "xyz789",
"changeNodename": "abc123",
"backup": "xyz789",
"restore": "abc123",
"dump": "abc123",
"dumpTable": "xyz789",
"load": "xyz789",
"installFallback": "abc123"
}
MnesiaAdminQuery
Description
Allow admin to acquire information about mnesia database
Fields
Field Name | Description |
---|---|
systemInfo - [MnesiaInfo]
|
Get the information about appropriate mnesia property for a specified key, if no keys are provided all the available properties will be returned |
Arguments
|
Example
{"systemInfo": [MnesiaStringResponse]}
MnesiaInfo
Types
Union Types |
---|
Example
MnesiaStringResponse
MnesiaIntResponse
MnesiaListResponse
MnesiaStringResponse
MutualSubAction
Description
The mutual subscription actions
Values
Enum Value | Description |
---|---|
|
Add users to contacts with a both subscription type |
|
Delete contacts |
Example
"CONNECT"
NameComponents
Example
{
"family": "abc123",
"givenName": "abc123",
"middleName": "abc123",
"prefix": "xyz789",
"suffix": "xyz789"
}
NameComponentsInput
Example
{
"family": "xyz789",
"givenName": "xyz789",
"middleName": "abc123",
"prefix": "abc123",
"suffix": "abc123"
}
NodeName
Description
Name of the Erlang node. The value self is used to refer to the current node
Example
"mynode@localhost"
NonEmptyString
Description
String that contains at least one character
Example
"xyz789"
NonNegInt
Description
Integer that has a value above or equal to zero
OfflineAdminMutation
Description
Allow admin to delete offline messages from specified domain
Fields
Field Name | Description |
---|---|
deleteExpiredMessages - String
|
Delete offline messages whose date has expired |
Arguments
|
|
deleteOldMessages - String
|
Delete messages at least as old as the number of days specified in the parameter |
Arguments
|
Example
{
"deleteExpiredMessages": "xyz789",
"deleteOldMessages": "abc123"
}
OldUser
Description
The user is considered old when never registered activity in mod_last
, or the latest registered activity is older than the given timestamp.
Example
{
"jid": "alice@localhost",
"timestamp": "2007-12-03T10:15:30Z"
}
Organization
OrganizationInput
Phonetic
Fields
Field Name | Description |
---|---|
phonetic - String
|
Textual phonetic pronunciation |
Example
{"phonetic": "abc123"}
PosInt
Description
Integer that has a value above zero
Example
2
PresenceShow
Description
Presence show field values
Values
Enum Value | Description |
---|---|
|
The entity or resource is online |
|
The entity or resource is temporarily away |
|
The entity or resource is actively interested in chatting |
|
The entity or resource is busy (dnd = 'Do Not Disturb') |
|
The entity or resource is away for an extended period (xa = 'eXtended Away') |
Example
"ONLINE"
PresenceType
Description
Presence type field values
Values
Enum Value | Description |
---|---|
|
The sender is available for communication |
|
An error has occurred regarding processing of a previously sent presence stanza |
|
A request for an entity's current presence; SHOULD be generated only by a server on behalf of a user |
|
The sender wishes to subscribe to the recipient's presence |
|
The sender has allowed the recipient to receive their presence |
|
Signals that the entity is no longer available for communication |
|
The sender is unsubscribing from the receiver's presence |
|
The subscription request has been denied or a previously granted subscription has been canceled |
Example
"AVAILABLE"
Privacy
Fields
Field Name | Description |
---|---|
tags - [PrivacyClassificationTags]
|
List of privacy classification tags |
Example
{"tags": ["PUBLIC"]}
PrivacyClassificationTags
Values
Enum Value | Description |
---|---|
|
vCard may be shared with everyone |
|
vCard will not be shared |
|
vCard may be shared with allowed users |
Example
"PUBLIC"
PrivacyInput
Fields
Input Field | Description |
---|---|
tags - [PrivacyClassificationTags!]
|
Privacy classification tag list |
Example
{"tags": ["PUBLIC"]}
PrivateAdminMutation
Description
Allow admin to set the user's private data
Fields
Field Name | Description |
---|---|
setPrivate - XmlElement
|
Set the user's private data |
Arguments
|
Example
{
"setPrivate": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
}
PrivateAdminQuery
Description
Allow admin to get the user's private data
Fields
Field Name | Description |
---|---|
getPrivate - XmlElement
|
Get the user's private data |
Arguments |
Example
{
"getPrivate": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
}
ProtectedType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"DEFAULT"
ResourceName
Description
XMPP resource name (resource part of a JID)
Example
"res1"
Room
Description
Room data
Fields
Field Name | Description |
---|---|
jid - BareJID!
|
Room's JId |
name - String
|
Name of the room |
subject - String
|
Subject of the room |
participants - [RoomUser!]!
|
List of participants |
options - [RoomConfigDictEntry!]!
|
Configuration options |
Example
{
"jid": "alice@localhost",
"name": "abc123",
"subject": "abc123",
"participants": [RoomUser],
"options": [RoomConfigDictEntry]
}
RoomConfigDictEntry
RoomConfigDictEntryInput
RoomName
Description
XMPP room name (local part of a JID)
Example
"my-chat-room"
RoomUser
Description
Room user data
Fields
Field Name | Description |
---|---|
jid - JID!
|
User's JID |
affiliation - Affiliation!
|
User's affiliation |
Example
{
"jid": "alice@localhost",
"affiliation": "OWNER"
}
RosterAdminMutation
Description
Allow admin to manage user roster/contacts.
Fields
Field Name | Description |
---|---|
addContact - String
|
Add a new contact to a user's roster without subscription |
addContacts - [String]!
|
Add new contacts to a user's roster without subscription |
Arguments
|
|
subscription - String
|
Manage the user's subscription to the contact |
Arguments |
|
deleteContact - String
|
Delete user's contact |
deleteContacts - [String]!
|
Delete user's contacts |
setMutualSubscription - String
|
Manage mutual subscription between given users |
Arguments |
|
subscribeToAll - [String]!
|
Set mutual subscriptions between the user and each of the given contacts |
Arguments
|
|
subscribeAllToAll - [String]!
|
Set mutual subscriptions between all of the given contacts |
Arguments
|
Example
{
"addContact": "xyz789",
"addContacts": ["abc123"],
"subscription": "xyz789",
"deleteContact": "xyz789",
"deleteContacts": ["xyz789"],
"setMutualSubscription": "xyz789",
"subscribeToAll": ["abc123"],
"subscribeAllToAll": ["abc123"]
}
RosterAdminQuery
Description
Allow admin to get information about user roster/contacts.
Fields
Field Name | Description |
---|---|
listContacts - [Contact!]
|
Get the user's roster/contacts |
Arguments
|
|
getContact - Contact
|
Get the information about the user's specific contact |
Example
{
"listContacts": [Contact],
"getContact": Contact
}
SendStanzaPayload
Description
Send stanza payload
Fields
Field Name | Description |
---|---|
id - ID
|
Stanza id |
Example
{"id": 4}
ServerAdminMutation
Description
Allow admin to manage the node
Fields
Field Name | Description |
---|---|
joinCluster - String
|
Join the MongooseIM node to a cluster. Call it on the joining node |
Arguments
|
|
leaveCluster - String
|
Leave a cluster. Call it on the node that is going to leave |
removeFromCluster - String
|
Remove a MongooseIM node from the cluster. Call it from the member of the cluster |
Arguments
|
|
restart - String
|
Restart MongooseIM node |
stop - String
|
Stop MongooseIM node |
removeNode - String
|
Remove a MongooseIM node from Mnesia clustering config |
Arguments
|
|
setLoglevel - String
|
Set MongooseIM node's LogLevel |
Arguments
|
Example
{
"joinCluster": "xyz789",
"leaveCluster": "abc123",
"removeFromCluster": "abc123",
"restart": "abc123",
"stop": "abc123",
"removeNode": "abc123",
"setLoglevel": "xyz789"
}
ServerAdminQuery
Description
Allow admin to acquire data about the node
Example
{
"status": Status,
"getLoglevel": "NONE",
"getCookie": "xyz789"
}
Session
Description
The information about the session
Fields
Field Name | Description |
---|---|
user - JID!
|
The full JID |
connection - String
|
The connection type (e.g. c2s) |
ip - String
|
The session IP address |
port - Int
|
The session port |
priority - Int
|
The priority level of the resource |
node - String
|
The node that the session process belongs to |
uptime - Int
|
The uptime of the session |
Example
{
"user": "alice@localhost",
"connection": "abc123",
"ip": "xyz789",
"port": 987,
"priority": 987,
"node": "xyz789",
"uptime": 123
}
SessionAdminMutation
Description
Allow admin to manage sessions.
Fields
Field Name | Description |
---|---|
kickUserSession - KickUserResult
|
Kick a user session. User JID must contain resource |
kickUser - [KickUserResult!]
|
Kick user sessions |
setPresence - SessionPayload
|
Set presence of a session. User JID should contain resource |
Arguments |
Example
{
"kickUserSession": KickUserResult,
"kickUser": [KickUserResult],
"setPresence": SessionPayload
}
SessionAdminQuery
Description
Allow admin to get information about sessions.
Fields
Field Name | Description |
---|---|
listSessions - [Session!]
|
Get the list of established sessions for a specified domain or globally |
Arguments
|
|
countSessions - Int
|
Get the number of established sessions for a specified domain or globally |
Arguments
|
|
listUserSessions - [Session!]
|
Get information about all sessions of a user |
Arguments
|
|
countUserResources - Int
|
Get the number of resources of a user |
Arguments
|
|
getUserResource - ResourceName
|
Get the resource string of the n-th session of a user |
listUsersWithStatus - [UserStatus!]
|
Get the list of logged users with this status for a specified domain or globally |
Arguments
|
|
countUsersWithStatus - Int
|
Get the number of logged users with this status for a specified domain or globally |
Arguments
|
Example
{
"listSessions": [Session],
"countSessions": 123,
"listUserSessions": [Session],
"countUserResources": 123,
"getUserResource": "res1",
"listUsersWithStatus": [UserStatus],
"countUsersWithStatus": 123
}
SessionPayload
Sound
SoundInput
SpiralMetric
Fields
Field Name | Description |
---|---|
name - [String]
|
Metric name |
type - MetricType
|
Metric type |
one - Int
|
One minute value |
count - Int
|
Total value |
Example
{
"name": ["abc123"],
"type": "histogram",
"one": 987,
"count": 987
}
StanzaAdminMutation
Fields
Field Name | Description |
---|---|
sendMessage - SendStanzaPayload
|
Send a chat message from a given contact to a local or remote bare or full JID |
sendMessageHeadLine - SendStanzaPayload
|
Send a headline message from a given contact to a local or remote bare or full JID |
sendStanza - SendStanzaPayload
|
Send an arbitrary stanza. Only for global admin |
Arguments
|
Example
{
"sendMessage": SendStanzaPayload,
"sendMessageHeadLine": SendStanzaPayload,
"sendStanza": SendStanzaPayload
}
StanzaAdminQuery
Fields
Field Name | Description |
---|---|
getLastMessages - StanzasPayload
|
Get last 50 messages to/from a given contact, optionally you can change the limit, specify a date or select only messages exchanged with a specific contact |
Example
{"getLastMessages": StanzasPayload}
StanzaAdminSubscription
StanzaMap
Description
Stanza map data
Fields
Field Name | Description |
---|---|
sender - JID
|
Sender's JID |
timestamp - DateTime
|
Stanza's timestamp |
stanza_id - String
|
ID of the stanza |
stanza - XmlElement
|
Stanza's data |
Example
{
"sender": "alice@localhost",
"timestamp": "2007-12-03T10:15:30Z",
"stanza_id": "xyz789",
"stanza": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
}
StanzasPayload
Description
Stanza payload data
Fields
Field Name | Description |
---|---|
stanzas - [StanzaMap]
|
List of stanza's maps |
limit - Int
|
Max number of stanzas |
Example
{"stanzas": [StanzaMap], "limit": 123}
StatsAdminQuery
Description
Allow admin to get statistics
Fields
Field Name | Description |
---|---|
globalStats - GlobalStats
|
Get statistics from all of the nodes. Only for global admin |
domainStats - DomainStats
|
Get statistics from a specific domain |
Arguments
|
Example
{
"globalStats": GlobalStats,
"domainStats": DomainStats
}
Status
Description
Status of the server
Fields
Field Name | Description |
---|---|
statusCode - StatusCode
|
Code of the status |
message - String
|
Message about the status |
version - String
|
MongooseIM version |
commitHash - String
|
The hash of the commit that MongooseIM is running |
Example
{
"statusCode": "RUNNING",
"message": "abc123",
"version": "abc123",
"commitHash": "abc123"
}
StatusCode
Description
Specifies status of the server
Values
Enum Value | Description |
---|---|
|
Server is running |
|
Server is not running |
Example
"RUNNING"
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"abc123"
SubAction
Description
The subscription actions
Values
Enum Value | Description |
---|---|
|
Send the subscription request to a user. Presence type: subscribe |
|
Accept the subscription request. Presence type: subscribed |
|
Decline the subscription's request. Presence type: unsubscribed |
|
Cancel the user's subscription. Presence type: unsubscribe |
Example
"INVITE"
Telephone
Fields
Field Name | Description |
---|---|
tags - [TelephoneTags]
|
Telephone tags |
number - String
|
Telephone's number |
Example
{"tags": ["HOME"], "number": "abc123"}
TelephoneInput
Fields
Input Field | Description |
---|---|
tags - [TelephoneTags!]
|
Telephone tags |
number - String!
|
Telephone's number |
Example
{"tags": ["HOME"], "number": "abc123"}
TelephoneTags
Description
Specifies intended use of a telphone number
Values
Enum Value | Description |
---|---|
|
Number associated with a residence |
|
Number associated with a workplace |
|
Voice telephone number |
|
Facsimile telephone number |
|
Paging device telephone number |
|
Number has voice messaging support |
|
Cellular telephone number |
|
Video conferencing telephone number |
|
Bulletin board system telephone number |
|
Modem connected telephone number |
|
ISDN service telephone number |
|
Personal communication services telephone number |
|
Preferred use of a telephone number |
Example
"HOME"
Token
TokenAdminMutation
UserName
Description
XMPP user name (local part of a JID)
Example
"alice"
UserPayload
UserStatus
Vcard
Fields
Field Name | Description |
---|---|
formattedName - String
|
Formatted name from Vcard |
nameComponents - NameComponents
|
Person's name details |
nickname - [String]
|
User's nickname |
photo - [Image]
|
User's photo |
birthday - [String]
|
Birthday date |
address - [Address]
|
User's addresses |
label - [Label]
|
Formatted text corresponding to delivery address |
telephone - [Telephone]
|
User's telephone number |
email - [Email]
|
User's email |
jabberId - [String]
|
User's JID |
mailer - [String]
|
User's mail agent type |
timeZone - [String]
|
User's timezone |
geo - [GeographicalPosition]
|
Geographical position |
title - [String]
|
Job title, functional position or function |
role - [String]
|
User's role, occupation, or business category |
logo - [Image]
|
Logo image |
agent - [Agent]
|
Person who will act on behalf of the user or resource associated with the vCard |
org - [Organization]
|
Organizational name and units associated |
categories - [Keyword]
|
Application specific category information |
note - [String]
|
Note about user |
prodId - [String]
|
Identifier of product that generated the vCard property |
rev - [String]
|
Last revised property. The value must be an ISO 8601 formatted UTC date/time |
sortString - [String]
|
Sort string property |
sound - [Sound]
|
Formatted name pronunciation property |
uid - [String]
|
Unique identifier property |
url - [String]
|
Directory URL property |
desc - [String]
|
Free-form descriptive text |
class - [Privacy]
|
Privacy classification property |
key - [Key]
|
Authentication credential or encryption key property |
Example
{
"formattedName": "xyz789",
"nameComponents": NameComponents,
"nickname": ["abc123"],
"photo": [ImageData],
"birthday": ["xyz789"],
"address": [Address],
"label": [Label],
"telephone": [Telephone],
"email": [Email],
"jabberId": ["xyz789"],
"mailer": ["xyz789"],
"timeZone": ["abc123"],
"geo": [GeographicalPosition],
"title": ["xyz789"],
"role": ["abc123"],
"logo": [ImageData],
"agent": [AgentVcard],
"org": [Organization],
"categories": [Keyword],
"note": ["xyz789"],
"prodId": ["abc123"],
"rev": ["xyz789"],
"sortString": ["abc123"],
"sound": [Phonetic],
"uid": ["xyz789"],
"url": ["xyz789"],
"desc": ["abc123"],
"class": [Privacy],
"key": [Key]
}
VcardAdminMutation
Description
Allow admin to set user's vcard
Fields
Field Name | Description |
---|---|
setVcard - Vcard
|
Set a new vcard for a user |
Arguments
|
Example
{"setVcard": Vcard}
VcardAdminQuery
VcardInput
Fields
Input Field | Description |
---|---|
formattedName - String!
|
Formatted name from Vcard |
nameComponents - NameComponentsInput!
|
Person's name details |
nickname - [String]
|
User's nickname |
photo - [ImageInput!]
|
User's photo |
birthday - [String!]
|
Birthday date |
address - [AddressInput!]
|
User's address |
label - [LabelInput!]
|
Formatted text corresponding to delivery address |
telephone - [TelephoneInput!]
|
User's telephone number |
email - [EmailInput!]
|
User's email |
jabberId - [String!]
|
User's JID |
mailer - [String!]
|
User's mail agent type |
timeZone - [String!]
|
User's timezone |
geo - [GeographicalPositionInput!]
|
Geographical position |
title - [String!]
|
Job title, functional position or function |
role - [String!]
|
User's role, occupation, or business category |
logo - [ImageInput!]
|
Logo image |
agent - [AgentInput!]
|
Person who will act on behalf of the user or resource associated with the vCard |
org - [OrganizationInput!]
|
Organizational name and units associated |
categories - [KeywordInput!]
|
Application specific category information |
note - [String!]
|
Note about user |
prodId - [String!]
|
Identifier of product that generated the vCard property |
rev - [String!]
|
Last revised property. The value must be an ISO 8601 formatted UTC date/time |
sortString - [String!]
|
Sort string property |
sound - [SoundInput!]
|
Formatted name pronunciation property |
uid - [String!]
|
Unique identifier property |
url - [String!]
|
Directory URL property |
desc - [String!]
|
Free-form descriptive text |
class - [PrivacyInput!]
|
Privacy classification property |
key - [KeyInput!]
|
Authentication credential or encryption key property |
Example
{
"formattedName": "abc123",
"nameComponents": NameComponentsInput,
"nickname": ["xyz789"],
"photo": [ImageInput],
"birthday": ["abc123"],
"address": [AddressInput],
"label": [LabelInput],
"telephone": [TelephoneInput],
"email": [EmailInput],
"jabberId": ["abc123"],
"mailer": ["abc123"],
"timeZone": ["xyz789"],
"geo": [GeographicalPositionInput],
"title": ["xyz789"],
"role": ["xyz789"],
"logo": [ImageInput],
"agent": [AgentInput],
"org": [OrganizationInput],
"categories": [KeywordInput],
"note": ["abc123"],
"prodId": ["abc123"],
"rev": ["xyz789"],
"sortString": ["abc123"],
"sound": [SoundInput],
"uid": ["abc123"],
"url": ["xyz789"],
"desc": ["abc123"],
"class": [PrivacyInput],
"key": [KeyInput]
}
XmlElement
Description
String containing the XML document
Example
"<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"