MongooseIM GraphQL API Reference
A static documentation of the MongooseIM GraphQL User API
API Endpoints
http://localhost:5561/api/graphql
Queries
account
Description
Account management
Response
Returns an AccountUserQuery
Example
Query
query account {
account {
field
}
}
Response
{"data": {"account": {"field": false}}}
checkAuth
Description
Check authorization status
Response
Returns a UserAuthInfo
Example
Query
query checkAuth {
checkAuth {
username
authStatus
}
}
Response
{
"data": {
"checkAuth": {
"username": "alice",
"authStatus": "AUTHORIZED"
}
}
}
last
Description
Last activity management
Response
Returns a LastUserQuery
Example
Query
query last {
last {
getLast {
...LastActivityFragment
}
}
}
Response
{"data": {"last": {"getLast": LastActivity}}}
muc
Description
MUC room management
Response
Returns a MUCUserQuery
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 MUCLightUserQuery
Example
Query
query muc_light {
muc_light {
getRoomMessages {
...StanzasPayloadFragment
}
getRoomConfig {
...RoomFragment
}
listRoomUsers {
...RoomUserFragment
}
listRooms
getBlockingList {
...BlockingItemFragment
}
}
}
Response
{
"data": {
"muc_light": {
"getRoomMessages": StanzasPayload,
"getRoomConfig": Room,
"listRoomUsers": [RoomUser],
"listRooms": ["alice@localhost"],
"getBlockingList": [BlockingItem]
}
}
}
private
Description
User's private storage management
Response
Returns a PrivateUserQuery
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
Roster/Contacts management
Response
Returns a RosterUserQuery
Example
Query
query roster {
roster {
listContacts {
...ContactFragment
}
getContact {
...ContactFragment
}
}
}
Response
{
"data": {
"roster": {
"listContacts": [Contact],
"getContact": Contact
}
}
}
session
Description
Session management
Response
Returns a SessionUserQuery
Example
Query
query session {
session {
listResources
countResources
listSessions {
...SessionFragment
}
}
}
Response
{
"data": {
"session": {
"listResources": ["res1"],
"countResources": 987,
"listSessions": [Session]
}
}
}
stanza
Description
Stanza management
Response
Returns a StanzaUserQuery
Example
Query
query stanza {
stanza {
getLastMessages {
...StanzasPayloadFragment
}
}
}
Response
{"data": {"stanza": {"getLastMessages": StanzasPayload}}}
vcard
Description
Vcard management
Response
Returns a VcardUserQuery
Example
Query
query vcard {
vcard {
getVcard {
...VcardFragment
}
}
}
Response
{"data": {"vcard": {"getVcard": Vcard}}}
Mutations
account
Description
Account management
Response
Returns an AccountUserMutation
Example
Query
mutation account {
account {
unregister
changePassword
}
}
Response
{
"data": {
"account": {
"unregister": "xyz789",
"changePassword": "xyz789"
}
}
}
httpUpload
Description
Http upload
Response
Returns a HttpUploadUserMutation
Example
Query
mutation httpUpload {
httpUpload {
getUrl {
...FileUrlsFragment
}
}
}
Response
{"data": {"httpUpload": {"getUrl": FileUrls}}}
inbox
Description
Inbox bin management
Response
Returns an InboxUserMutation
Example
Query
mutation inbox {
inbox {
flushBin
}
}
Response
{"data": {"inbox": {"flushBin": 123}}}
last
Description
Last activity management
Response
Returns a LastUserMutation
Example
Query
mutation last {
last {
setLast {
...LastActivityFragment
}
}
}
Response
{"data": {"last": {"setLast": LastActivity}}}
muc
Description
MUC room management
Response
Returns a MUCUserMutation
Example
Query
mutation muc {
muc {
createInstantRoom {
...MUCRoomDescFragment
}
inviteUser
kickUser
sendMessageToRoom
sendPrivateMessage
deleteRoom
changeRoomConfiguration {
...MUCRoomConfigFragment
}
setUserRole
setUserAffiliation
enterRoom
exitRoom
}
}
Response
{
"data": {
"muc": {
"createInstantRoom": MUCRoomDesc,
"inviteUser": "xyz789",
"kickUser": "xyz789",
"sendMessageToRoom": "xyz789",
"sendPrivateMessage": "abc123",
"deleteRoom": "abc123",
"changeRoomConfiguration": MUCRoomConfig,
"setUserRole": "abc123",
"setUserAffiliation": "xyz789",
"enterRoom": "xyz789",
"exitRoom": "abc123"
}
}
}
muc_light
Description
MUC Light room management
Response
Returns a MUCLightUserMutation
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": "abc123",
"deleteRoom": "abc123",
"kickUser": "abc123",
"sendMessageToRoom": "xyz789",
"setBlockingList": "abc123"
}
}
}
private
Description
User's private storage management
Response
Returns a PrivateUserMutation
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
Roster/Contacts management
Response
Returns a RosterUserMutation
Example
Query
mutation roster {
roster {
addContact
addContacts
subscription
deleteContact
deleteContacts
}
}
Response
{
"data": {
"roster": {
"addContact": "xyz789",
"addContacts": ["xyz789"],
"subscription": "xyz789",
"deleteContact": "xyz789",
"deleteContacts": ["abc123"]
}
}
}
stanza
Description
Stanza management
Response
Returns a StanzaUserMutation
Example
Query
mutation stanza {
stanza {
sendMessage {
...SendStanzaPayloadFragment
}
sendMessageHeadLine {
...SendStanzaPayloadFragment
}
sendStanza {
...SendStanzaPayloadFragment
}
}
}
Response
{
"data": {
"stanza": {
"sendMessage": SendStanzaPayload,
"sendMessageHeadLine": SendStanzaPayload,
"sendStanza": SendStanzaPayload
}
}
}
token
Description
OAUTH token management
Response
Returns a TokenUserMutation
Example
Query
mutation token {
token {
requestToken {
...TokenFragment
}
revokeToken
}
}
Response
{
"data": {
"token": {
"requestToken": Token,
"revokeToken": "xyz789"
}
}
}
vcard
Description
Vcard management
Response
Returns a VcardUserMutation
Example
Query
mutation vcard {
vcard {
setVcard {
...VcardFragment
}
}
}
Response
{"data": {"vcard": {"setVcard": Vcard}}}
Subscriptions
stanza
Response
Returns a StanzaUserSubscription
Example
Query
subscription stanza {
stanza {
subscribeForMessages {
...StanzaMapFragment
}
}
}
Response
{"data": {"stanza": {"subscribeForMessages": StanzaMap}}}
Types
AccountUserMutation
AccountUserQuery
Description
Allow user to get information about account.
Fields
Field Name | Description |
---|---|
field - Boolean
|
Example
{"field": false}
Address
Example
{
"tags": ["HOME"],
"pobox": "abc123",
"extadd": "xyz789",
"street": "xyz789",
"locality": "abc123",
"region": "abc123",
"pcode": "abc123",
"country": "xyz789"
}
AddressInput
Example
{
"tags": ["HOME"],
"pobox": "xyz789",
"extadd": "xyz789",
"street": "xyz789",
"locality": "abc123",
"region": "abc123",
"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"
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"
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
.
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": "xyz789",
"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"
DateTime
Description
Date and time represented using YYYY-MM-DDTHH:mm:ssZ format
Example
"2007-12-03T10:15:30Z"
DomainName
Description
XMPP domain name (domain part of a JID)
Example
"localhost"
Fields
Field Name | Description |
---|---|
tags - [EmailTags]
|
Email tags |
userId - String
|
Email address |
Example
{"tags": ["HOME"], "userId": "xyz789"}
EmailInput
Fields
Input Field | Description |
---|---|
tags - [EmailTags!]
|
Email tags |
userId - String!
|
Email address |
Example
{"tags": ["HOME"], "userId": "xyz789"}
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
GeographicalPosition
GeographicalPositionInput
Header
HttpUploadUserMutation
Description
Allow user to generate upload/download URL for a file".
Fields
Field Name | Description |
---|---|
getUrl - FileUrls
|
Allow user to generate upload/download URLs for a file |
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
InboxUserMutation
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": ["abc123"]}
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
LastUserMutation
Description
Allow user to get information about last activity.
Fields
Field Name | Description |
---|---|
setLast - LastActivity
|
Set user's last activity information |
Example
{"setLast": LastActivity}
LastUserQuery
Description
Allow user to manage last activity.
Fields
Field Name | Description |
---|---|
getLast - LastActivity
|
Get the user's last activity information |
Arguments
|
Example
{"getLast": LastActivity}
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"
MUCLightUserMutation
Description
Allow user 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 blocking list |
Arguments
|
Example
{
"createRoom": Room,
"changeRoomConfiguration": Room,
"inviteUser": "abc123",
"deleteRoom": "xyz789",
"kickUser": "xyz789",
"sendMessageToRoom": "xyz789",
"setBlockingList": "xyz789"
}
MUCLightUserQuery
Description
Allow user 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
|
|
listRooms - [JID!]
|
Get the list of MUC Light rooms that the user participates in |
getBlockingList - [BlockingItem!]
|
Get the user blocking list |
Example
{
"getRoomMessages": StanzasPayload,
"getRoomConfig": Room,
"listRoomUsers": [RoomUser],
"listRooms": ["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": false,
"allowPrivateMessages": true,
"allowVisitorStatus": false,
"allowVisitorNickchange": true,
"public": false,
"publicList": true,
"persistent": true,
"moderated": false,
"membersByDefault": true,
"membersOnly": false,
"allowUserInvites": true,
"allowMultipleSession": true,
"passwordProtected": false,
"password": "abc123",
"anonymous": false,
"mayGetMemberList": ["xyz789"],
"maxUsers": 2,
"logging": true
}
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": false,
"allowQueryUsers": true,
"allowPrivateMessages": false,
"allowVisitorStatus": true,
"allowVisitorNickchange": false,
"public": false,
"publicList": true,
"persistent": false,
"moderated": true,
"membersByDefault": true,
"membersOnly": true,
"allowUserInvites": false,
"allowMultipleSession": false,
"passwordProtected": false,
"password": "abc123",
"anonymous": true,
"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": "xyz789"
}
MUCUserMutation
Description
Allow user 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 |
Arguments |
|
sendPrivateMessage - String
|
Send a private message to a MUC room user from the given resource |
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
|
Enter the room with given resource and nick |
Arguments |
|
exitRoom - String
|
Exit the room with given resource and nick |
Arguments |
Example
{
"createInstantRoom": MUCRoomDesc,
"inviteUser": "xyz789",
"kickUser": "abc123",
"sendMessageToRoom": "abc123",
"sendPrivateMessage": "xyz789",
"deleteRoom": "xyz789",
"changeRoomConfiguration": MUCRoomConfig,
"setUserRole": "abc123",
"setUserAffiliation": "xyz789",
"enterRoom": "xyz789",
"exitRoom": "abc123"
}
MUCUserQuery
Description
Allow user 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
}
NameComponents
Example
{
"family": "xyz789",
"givenName": "abc123",
"middleName": "xyz789",
"prefix": "xyz789",
"suffix": "abc123"
}
NameComponentsInput
Example
{
"family": "abc123",
"givenName": "xyz789",
"middleName": "xyz789",
"prefix": "xyz789",
"suffix": "abc123"
}
NonEmptyString
Description
String that contains at least one character
Example
"xyz789"
NonNegInt
Description
Integer that has a value above or equal to zero
Organization
OrganizationInput
Phonetic
Fields
Field Name | Description |
---|---|
phonetic - String
|
Textual phonetic pronunciation |
Example
{"phonetic": "xyz789"}
PosInt
Description
Integer that has a value above zero
Example
2
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"]}
PrivateUserMutation
Description
Allow user to set own private
Fields
Field Name | Description |
---|---|
setPrivate - XmlElement
|
Set user's own private |
Arguments
|
Example
{
"setPrivate": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
}
PrivateUserQuery
Description
Allow user to get own private
Fields
Field Name | Description |
---|---|
getPrivate - XmlElement
|
Get user's own private |
Arguments
|
Example
{
"getPrivate": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
}
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": "xyz789",
"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"
}
RosterUserMutation
Description
Allow user to manage user rester/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 subscription to the contact |
Arguments
|
|
deleteContact - String
|
Delete user's contact |
Arguments
|
|
deleteContacts - [String]!
|
Delete user's contacts |
Arguments
|
Example
{
"addContact": "abc123",
"addContacts": ["xyz789"],
"subscription": "abc123",
"deleteContact": "abc123",
"deleteContacts": ["xyz789"]
}
RosterUserQuery
Description
Allow user to get information about user roster/contacts.
Fields
Field Name | Description |
---|---|
listContacts - [Contact!]
|
Get the user's roster/contacts |
getContact - Contact
|
Get the user's contact |
Arguments
|
Example
{
"listContacts": [Contact],
"getContact": Contact
}
SendStanzaPayload
Description
Send stanza payload
Fields
Field Name | Description |
---|---|
id - ID
|
Stanza id |
Example
{"id": 4}
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": "abc123",
"port": 123,
"priority": 987,
"node": "abc123",
"uptime": 123
}
SessionUserQuery
Description
Allow user to get information about sessions.
Fields
Field Name | Description |
---|---|
listResources - [ResourceName!]
|
List connected resources |
countResources - Int
|
Count connected resources |
listSessions - [Session!]
|
Get information about all sessions |
Example
{
"listResources": ["res1"],
"countResources": 123,
"listSessions": [Session]
}
Sound
SoundInput
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>"
}
StanzaUserMutation
Description
Allow user to send messages.
Fields
Field Name | Description |
---|---|
sendMessage - SendStanzaPayload
|
Send a chat message to a local or remote bare or full JID |
sendMessageHeadLine - SendStanzaPayload
|
Send a headline message to a local or remote bare or full JID |
sendStanza - SendStanzaPayload
|
Send an arbitrary stanza |
Arguments
|
Example
{
"sendMessage": SendStanzaPayload,
"sendMessageHeadLine": SendStanzaPayload,
"sendStanza": SendStanzaPayload
}
StanzaUserQuery
Description
Allow user to query MAM archive.
Fields
Field Name | Description |
---|---|
getLastMessages - StanzasPayload
|
Get n last messages to/from a given contact (optional) with limit and optional date |
Example
{"getLastMessages": StanzasPayload}
StanzaUserSubscription
Fields
Field Name | Description |
---|---|
subscribeForMessages - StanzaMap
|
Subscribe to incoming messages |
Example
{"subscribeForMessages": StanzaMap}
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}
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": "xyz789"}
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
TokenUserMutation
UserAuthInfo
Description
Inforamtion about user request authorization
Fields
Field Name | Description |
---|---|
username - UserName
|
Authorized as user with name |
authStatus - AuthStatus
|
Authorization status |
Example
{
"username": "alice",
"authStatus": "AUTHORIZED"
}
UserName
Description
XMPP user name (local part of a JID)
Example
"alice"
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": "abc123",
"nameComponents": NameComponents,
"nickname": ["xyz789"],
"photo": [ImageData],
"birthday": ["xyz789"],
"address": [Address],
"label": [Label],
"telephone": [Telephone],
"email": [Email],
"jabberId": ["xyz789"],
"mailer": ["xyz789"],
"timeZone": ["xyz789"],
"geo": [GeographicalPosition],
"title": ["abc123"],
"role": ["xyz789"],
"logo": [ImageData],
"agent": [AgentVcard],
"org": [Organization],
"categories": [Keyword],
"note": ["abc123"],
"prodId": ["xyz789"],
"rev": ["xyz789"],
"sortString": ["abc123"],
"sound": [Phonetic],
"uid": ["xyz789"],
"url": ["xyz789"],
"desc": ["xyz789"],
"class": [Privacy],
"key": [Key]
}
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": "xyz789",
"nameComponents": NameComponentsInput,
"nickname": ["abc123"],
"photo": [ImageInput],
"birthday": ["abc123"],
"address": [AddressInput],
"label": [LabelInput],
"telephone": [TelephoneInput],
"email": [EmailInput],
"jabberId": ["xyz789"],
"mailer": ["xyz789"],
"timeZone": ["xyz789"],
"geo": [GeographicalPositionInput],
"title": ["abc123"],
"role": ["xyz789"],
"logo": [ImageInput],
"agent": [AgentInput],
"org": [OrganizationInput],
"categories": [KeywordInput],
"note": ["abc123"],
"prodId": ["abc123"],
"rev": ["abc123"],
"sortString": ["xyz789"],
"sound": [SoundInput],
"uid": ["abc123"],
"url": ["abc123"],
"desc": ["xyz789"],
"class": [PrivacyInput],
"key": [KeyInput]
}
VcardUserMutation
Description
Allow user to set own vcard
Fields
Field Name | Description |
---|---|
setVcard - Vcard
|
Set user's own vcard |
Arguments
|
Example
{"setVcard": Vcard}
VcardUserQuery
XmlElement
Description
String containing the XML document
Example
"<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"