aboutsummaryrefslogtreecommitdiff
path: root/include/xmpp_codec.hrl
diff options
context:
space:
mode:
Diffstat (limited to 'include/xmpp_codec.hrl')
-rw-r--r--include/xmpp_codec.hrl1092
1 files changed, 1092 insertions, 0 deletions
diff --git a/include/xmpp_codec.hrl b/include/xmpp_codec.hrl
new file mode 100644
index 000000000..981f7f4c2
--- /dev/null
+++ b/include/xmpp_codec.hrl
@@ -0,0 +1,1092 @@
+%% Created automatically by XML generator (fxml_gen.erl)
+%% Source: xmpp_codec.spec
+
+-record(vcard_xupdate, {us = {<<>>, <<>>} :: {binary(), binary()},
+ hash :: binary()}).
+-type vcard_xupdate() :: #vcard_xupdate{}.
+
+-record(ps_affiliation, {xmlns = <<>> :: binary(),
+ node = <<>> :: binary(),
+ type :: member | none | outcast |
+ owner | publisher | publish_only,
+ jid :: jid:jid()}).
+-type ps_affiliation() :: #ps_affiliation{}.
+
+-type ps_error_type() :: 'closed-node' | 'configuration-required' |
+ 'invalid-jid' | 'invalid-options' |
+ 'invalid-payload' | 'invalid-subid' |
+ 'item-forbidden' | 'item-required' | 'jid-required' |
+ 'max-items-exceeded' | 'max-nodes-exceeded' |
+ 'nodeid-required' | 'not-in-roster-group' |
+ 'not-subscribed' | 'payload-too-big' |
+ 'payload-required' | 'pending-subscription' |
+ 'presence-subscription-required' | 'subid-required' |
+ 'too-many-subscriptions' | 'unsupported' |
+ 'unsupported-access-model'.
+-type ps_feature() :: 'access-authorize' | 'access-open' |
+ 'access-presence' | 'access-roster' |
+ 'access-whitelist' | 'auto-create' |
+ 'auto-subscribe' | 'collections' | 'config-node' |
+ 'create-and-configure' | 'create-nodes' |
+ 'delete-items' | 'delete-nodes' |
+ 'filtered-notifications' | 'get-pending' |
+ 'instant-nodes' | 'item-ids' | 'last-published' |
+ 'leased-subscription' | 'manage-subscriptions' |
+ 'member-affiliation' | 'meta-data' |
+ 'modify-affiliations' | 'multi-collection' |
+ 'multi-subscribe' | 'outcast-affiliation' |
+ 'persistent-items' | 'presence-notifications' |
+ 'presence-subscribe' | 'publish' |
+ 'publish-options' | 'publish-only-affiliation' |
+ 'publisher-affiliation' | 'purge-nodes' |
+ 'retract-items' | 'retrieve-affiliations' |
+ 'retrieve-default' | 'retrieve-items' |
+ 'retrieve-subscriptions' | 'subscribe' |
+ 'subscription-options' | 'subscription-notifications'.
+-record(ps_error, {type :: ps_error_type(), feature :: ps_feature()}).
+-type ps_error() :: #ps_error{}.
+
+-record(chatstate, {type :: active | composing | gone | inactive | paused}).
+-type chatstate() :: #chatstate{}.
+
+-record(csi, {type :: active | inactive}).
+-type csi() :: #csi{}.
+
+-record(hint, {type :: 'no-copy' | 'no-store' | 'no-storage' | 'store' |
+ 'no-permanent-store' | 'no-permanent-storage'}).
+-type hint() :: #hint{}.
+
+-record(iq, {id = <<>> :: binary(),
+ type :: 'error' | 'get' | 'result' | 'set',
+ lang = <<>> :: binary(),
+ from :: jid:jid(),
+ to :: jid:jid(),
+ sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
+-type iq() :: #iq{}.
+
+-record(feature_register, {}).
+-type feature_register() :: #feature_register{}.
+
+-record(adhoc_note, {type = info :: 'error' | 'info' | 'warn',
+ data = <<>> :: binary()}).
+-type adhoc_note() :: #adhoc_note{}.
+
+-record(address, {type :: 'bcc' | 'cc' | 'noreply' | 'ofrom' | 'replyroom' | 'replyto' | 'to',
+ jid :: jid:jid(),
+ desc = <<>> :: binary(),
+ node = <<>> :: binary(),
+ delivered :: boolean()}).
+-type address() :: #address{}.
+
+-record(sasl_success, {text = <<>> :: binary()}).
+-type sasl_success() :: #sasl_success{}.
+
+-record(mam_result, {xmlns = <<>> :: binary(),
+ queryid = <<>> :: binary(),
+ id = <<>> :: binary(),
+ sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
+-type mam_result() :: #mam_result{}.
+
+-record(rsm_first, {index :: non_neg_integer(),
+ data = <<>> :: binary()}).
+-type rsm_first() :: #rsm_first{}.
+
+-record(text, {lang = <<>> :: binary(),
+ data = <<>> :: binary()}).
+-type text() :: #text{}.
+
+-record(streamhost, {jid :: jid:jid(),
+ host = <<>> :: binary(),
+ port = 1080 :: non_neg_integer()}).
+-type streamhost() :: #streamhost{}.
+
+-record(sm_resume, {h :: non_neg_integer(),
+ previd = <<>> :: binary(),
+ xmlns = <<>> :: binary()}).
+-type sm_resume() :: #sm_resume{}.
+
+-record(carbons_enable, {}).
+-type carbons_enable() :: #carbons_enable{}.
+
+-record(carbons_private, {}).
+-type carbons_private() :: #carbons_private{}.
+
+-record(expire, {seconds :: non_neg_integer(),
+ stored :: non_neg_integer()}).
+-type expire() :: #expire{}.
+
+-record(muc_unsubscribe, {}).
+-type muc_unsubscribe() :: #muc_unsubscribe{}.
+
+-record(ps_unsubscribe, {node = <<>> :: binary(),
+ jid :: jid:jid(),
+ subid = <<>> :: binary()}).
+-type ps_unsubscribe() :: #ps_unsubscribe{}.
+
+-record(mix_leave, {}).
+-type mix_leave() :: #mix_leave{}.
+
+-record(ping, {}).
+-type ping() :: #ping{}.
+
+-record(delay, {stamp :: erlang:timestamp(),
+ from :: jid:jid(),
+ desc = <<>> :: binary()}).
+-type delay() :: #delay{}.
+
+-record(muc_history, {maxchars :: non_neg_integer(),
+ maxstanzas :: non_neg_integer(),
+ seconds :: non_neg_integer(),
+ since :: erlang:timestamp()}).
+-type muc_history() :: #muc_history{}.
+
+-record(thumbnail, {uri = <<>> :: binary(),
+ 'media-type' = <<>> :: binary(),
+ width :: non_neg_integer(),
+ height :: non_neg_integer()}).
+-type thumbnail() :: #thumbnail{}.
+
+-record(privilege_perm, {access :: 'message' | 'presence' | 'roster',
+ type :: 'both' | 'get' | 'managed_entity' | 'none' | 'outgoing' | 'roster' | 'set'}).
+-type privilege_perm() :: #privilege_perm{}.
+
+-record(muc_decline, {reason = <<>> :: binary(),
+ from :: jid:jid(),
+ to :: jid:jid()}).
+-type muc_decline() :: #muc_decline{}.
+
+-record(sm_a, {h :: non_neg_integer(),
+ xmlns = <<>> :: binary()}).
+-type sm_a() :: #sm_a{}.
+
+-record(stream_start, {from :: jid:jid(),
+ to :: jid:jid(),
+ id = <<>> :: binary(),
+ version :: {non_neg_integer(),non_neg_integer()},
+ xmlns = <<>> :: binary(),
+ stream_xmlns = <<>> :: binary(),
+ db_xmlns = <<>> :: binary(),
+ lang = <<>> :: binary()}).
+-type stream_start() :: #stream_start{}.
+
+-record(muc_subscribe, {nick = <<>> :: binary(),
+ events = [] :: [binary()]}).
+-type muc_subscribe() :: #muc_subscribe{}.
+
+-record(stanza_id, {by :: jid:jid(),
+ id = <<>> :: binary()}).
+-type stanza_id() :: #stanza_id{}.
+
+-record(starttls_proceed, {}).
+-type starttls_proceed() :: #starttls_proceed{}.
+
+-record(forwarded, {delay :: #delay{},
+ sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
+-type forwarded() :: #forwarded{}.
+
+-record(privilege, {perms = [] :: [#privilege_perm{}],
+ forwarded :: #forwarded{}}).
+-type privilege() :: #privilege{}.
+
+-record(client_id, {id = <<>> :: binary()}).
+-type client_id() :: #client_id{}.
+
+-record(sm_resumed, {h :: non_neg_integer(),
+ previd = <<>> :: binary(),
+ xmlns = <<>> :: binary()}).
+-type sm_resumed() :: #sm_resumed{}.
+
+-record(sm_enable, {max :: non_neg_integer(),
+ resume = false :: boolean(),
+ xmlns = <<>> :: binary()}).
+-type sm_enable() :: #sm_enable{}.
+
+-record(starttls_failure, {}).
+-type starttls_failure() :: #starttls_failure{}.
+
+-record(sasl_challenge, {text = <<>> :: binary()}).
+-type sasl_challenge() :: #sasl_challenge{}.
+
+-record(handshake, {data = <<>> :: binary()}).
+-type handshake() :: #handshake{}.
+
+-record(gone, {uri = <<>> :: binary()}).
+-type gone() :: #gone{}.
+
+-record(x_conference, {jid :: jid:jid(),
+ password = <<>> :: binary(),
+ reason = <<>> :: binary(),
+ continue :: boolean(),
+ thread = <<>> :: binary()}).
+-type x_conference() :: #x_conference{}.
+
+-record(private, {xml_els = [] :: [fxml:xmlel()]}).
+-type private() :: #private{}.
+
+-record(delegation_query, {to :: jid:jid(),
+ delegate = [] :: [binary()]}).
+-type delegation_query() :: #delegation_query{}.
+
+-record(db_verify, {from = <<>> :: binary(),
+ to = <<>> :: binary(),
+ id = <<>> :: binary(),
+ type :: 'error' | 'invalid' | 'valid',
+ key = <<>> :: binary(),
+ sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
+-type db_verify() :: #db_verify{}.
+
+-record(nick, {name = <<>> :: binary()}).
+-type nick() :: #nick{}.
+
+-record(p1_ack, {}).
+-type p1_ack() :: #p1_ack{}.
+
+-record(feature_sm, {xmlns = <<>> :: binary()}).
+-type feature_sm() :: #feature_sm{}.
+
+-record(ps_item, {xmlns = <<>> :: binary(),
+ id = <<>> :: binary(),
+ xml_els = [] :: [fxml:xmlel()],
+ node = <<>> :: binary(),
+ publisher = <<>> :: binary()}).
+-type ps_item() :: #ps_item{}.
+
+-record(ps_publish, {node = <<>> :: binary(),
+ items = [] :: [#ps_item{}]}).
+-type ps_publish() :: #ps_publish{}.
+
+-record(roster_item, {jid :: jid:jid(),
+ name = <<>> :: binary(),
+ groups = [] :: [binary()],
+ subscription = none :: 'both' | 'from' | 'none' | 'remove' | 'to',
+ ask :: 'subscribe'}).
+-type roster_item() :: #roster_item{}.
+
+-record(roster_query, {items = [] :: [#roster_item{}],
+ ver :: binary()}).
+-type roster_query() :: #roster_query{}.
+
+-record(sm_r, {xmlns = <<>> :: binary()}).
+-type sm_r() :: #sm_r{}.
+
+-record(muc_actor, {jid :: jid:jid(),
+ nick = <<>> :: binary()}).
+-type muc_actor() :: #muc_actor{}.
+
+-record(stat_error, {code :: integer(),
+ reason = <<>> :: binary()}).
+-type stat_error() :: #stat_error{}.
+
+-record(stat, {name = <<>> :: binary(),
+ units = <<>> :: binary(),
+ value = <<>> :: binary(),
+ error :: #stat_error{}}).
+-type stat() :: #stat{}.
+
+-record(addresses, {list = [] :: [#address{}]}).
+-type addresses() :: #addresses{}.
+
+-record('see-other-host', {host :: binary() | inet:ip_address() | {binary() | inet:ip_address(),non_neg_integer()}}).
+-type 'see-other-host'() :: #'see-other-host'{}.
+
+-record(compress, {methods = [] :: [binary()]}).
+-type compress() :: #compress{}.
+
+-record(starttls, {required = false :: boolean()}).
+-type starttls() :: #starttls{}.
+
+-record(last, {seconds :: non_neg_integer(),
+ status = <<>> :: binary()}).
+-type last() :: #last{}.
+
+-record(redirect, {uri = <<>> :: binary()}).
+-type redirect() :: #redirect{}.
+
+-record(sm_enabled, {id = <<>> :: binary(),
+ location = <<>> :: binary(),
+ max :: non_neg_integer(),
+ resume = false :: boolean(),
+ xmlns = <<>> :: binary()}).
+-type sm_enabled() :: #sm_enabled{}.
+
+-record(muc_unique, {name = <<>> :: binary()}).
+-type muc_unique() :: #muc_unique{}.
+
+-record(sasl_response, {text = <<>> :: binary()}).
+-type sasl_response() :: #sasl_response{}.
+
+-record(legacy_auth, {username :: binary(),
+ password :: binary(),
+ digest :: binary(),
+ resource :: binary()}).
+-type legacy_auth() :: #legacy_auth{}.
+
+-record(ps_subscribe, {node = <<>> :: binary(),
+ jid :: jid:jid()}).
+-type ps_subscribe() :: #ps_subscribe{}.
+
+-record(message, {id = <<>> :: binary(),
+ type = normal :: 'chat' | 'error' | 'groupchat' | 'headline' | 'normal',
+ lang = <<>> :: binary(),
+ from :: jid:jid(),
+ to :: jid:jid(),
+ subject = [] :: [#text{}],
+ body = [] :: [#text{}],
+ thread :: binary(),
+ sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
+-type message() :: #message{}.
+
+-record(sasl_auth, {mechanism = <<>> :: binary(),
+ text = <<>> :: binary()}).
+-type sasl_auth() :: #sasl_auth{}.
+
+-record(p1_push, {}).
+-type p1_push() :: #p1_push{}.
+
+-record(feature_csi, {xmlns = <<>> :: binary()}).
+-type feature_csi() :: #feature_csi{}.
+
+-record(disco_item, {jid :: jid:jid(),
+ name = <<>> :: binary(),
+ node = <<>> :: binary()}).
+-type disco_item() :: #disco_item{}.
+
+-record(unblock, {items = [] :: [jid:jid()]}).
+-type unblock() :: #unblock{}.
+
+-record(block, {items = [] :: [jid:jid()]}).
+-type block() :: #block{}.
+
+-record(compression, {methods = [] :: [binary()]}).
+-type compression() :: #compression{}.
+
+-record(muc_subscriptions, {list = [] :: [jid:jid()]}).
+-type muc_subscriptions() :: #muc_subscriptions{}.
+
+-record(ps_subscription, {xmlns = <<>> :: binary(),
+ jid :: jid:jid(),
+ type :: 'none' | 'pending' | 'subscribed' | 'unconfigured',
+ node = <<>> :: binary(),
+ subid = <<>> :: binary(),
+ expiry :: erlang:timestamp()}).
+-type ps_subscription() :: #ps_subscription{}.
+
+-record(bob_data, {cid = <<>> :: binary(),
+ 'max-age' :: non_neg_integer(),
+ type = <<>> :: binary(),
+ data = <<>> :: binary()}).
+-type bob_data() :: #bob_data{}.
+
+-record(muc_item, {actor :: #muc_actor{},
+ continue :: binary(),
+ reason = <<>> :: binary(),
+ affiliation :: 'admin' | 'member' | 'none' | 'outcast' | 'owner',
+ role :: 'moderator' | 'none' | 'participant' | 'visitor',
+ jid :: jid:jid(),
+ nick = <<>> :: binary()}).
+-type muc_item() :: #muc_item{}.
+
+-record(muc_admin, {items = [] :: [#muc_item{}]}).
+-type muc_admin() :: #muc_admin{}.
+
+-record(shim, {headers = [] :: [{binary(),binary()}]}).
+-type shim() :: #shim{}.
+
+-record(mam_prefs, {xmlns = <<>> :: binary(),
+ default :: 'always' | 'never' | 'roster',
+ always :: [jid:jid()],
+ never :: [jid:jid()]}).
+-type mam_prefs() :: #mam_prefs{}.
+
+-record(caps, {node = <<>> :: binary(),
+ version = <<>> :: binary(),
+ hash = <<>> :: binary(),
+ exts = [] :: [binary()]}).
+-type caps() :: #caps{}.
+
+-record(muc, {history :: #muc_history{},
+ password :: binary()}).
+-type muc() :: #muc{}.
+
+-record(stream_features, {sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
+-type stream_features() :: #stream_features{}.
+
+-record(stats, {list = [] :: [#stat{}],
+ node = <<>> :: binary()}).
+-type stats() :: #stats{}.
+
+-record(ps_items, {xmlns = <<>> :: binary(),
+ node = <<>> :: binary(),
+ items = [] :: [#ps_item{}],
+ max_items :: non_neg_integer(),
+ subid = <<>> :: binary(),
+ retract :: binary()}).
+-type ps_items() :: #ps_items{}.
+
+-record(presence, {id = <<>> :: binary(),
+ type = available :: 'available' | 'error' | 'probe' | 'subscribe' | 'subscribed' | 'unavailable' | 'unsubscribe' | 'unsubscribed',
+ lang = <<>> :: binary(),
+ from :: jid:jid(),
+ to :: jid:jid(),
+ show :: 'away' | 'chat' | 'dnd' | 'xa',
+ status = [] :: [#text{}],
+ priority :: integer(),
+ sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
+-type presence() :: #presence{}.
+
+-record(sic, {ip :: inet:ip_address(),
+ port :: non_neg_integer(),
+ xmlns = <<>> :: binary()}).
+-type sic() :: #sic{}.
+
+-record(carbons_sent, {forwarded :: #forwarded{}}).
+-type carbons_sent() :: #carbons_sent{}.
+
+-record(mam_archived, {by :: jid:jid(),
+ id = <<>> :: binary()}).
+-type mam_archived() :: #mam_archived{}.
+
+-record(p1_rebind, {}).
+-type p1_rebind() :: #p1_rebind{}.
+
+-record(compress_failure, {reason :: 'processing-failed' | 'setup-failed' | 'unsupported-method'}).
+-type compress_failure() :: #compress_failure{}.
+
+-record(sasl_abort, {}).
+-type sasl_abort() :: #sasl_abort{}.
+
+-record(xevent, {offline = false :: boolean(),
+ delivered = false :: boolean(),
+ displayed = false :: boolean(),
+ composing = false :: boolean(),
+ id :: binary()}).
+-type xevent() :: #xevent{}.
+
+-record(vcard_email, {home = false :: boolean(),
+ work = false :: boolean(),
+ internet = false :: boolean(),
+ pref = false :: boolean(),
+ x400 = false :: boolean(),
+ userid :: binary()}).
+-type vcard_email() :: #vcard_email{}.
+
+-record(db_result, {from = <<>> :: binary(),
+ to = <<>> :: binary(),
+ type :: 'error' | 'invalid' | 'valid',
+ key = <<>> :: binary(),
+ sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
+-type db_result() :: #db_result{}.
+
+-record(carbons_received, {forwarded :: #forwarded{}}).
+-type carbons_received() :: #carbons_received{}.
+
+-record(ps_retract, {node = <<>> :: binary(),
+ notify = false :: boolean(),
+ items = [] :: [#ps_item{}]}).
+-type ps_retract() :: #ps_retract{}.
+
+-record(upload_slot, {get :: binary(),
+ put :: binary(),
+ xmlns = <<>> :: binary()}).
+-type upload_slot() :: #upload_slot{}.
+
+-record(mix_participant, {jid :: jid:jid(),
+ nick = <<>> :: binary()}).
+-type mix_participant() :: #mix_participant{}.
+
+-record(vcard_geo, {lat :: binary(),
+ lon :: binary()}).
+-type vcard_geo() :: #vcard_geo{}.
+
+-record(compressed, {}).
+-type compressed() :: #compressed{}.
+
+-record(sasl_failure, {reason :: 'aborted' | 'account-disabled' | 'bad-protocol' | 'credentials-expired' | 'encryption-required' | 'incorrect-encoding' | 'invalid-authzid' | 'invalid-mechanism' | 'malformed-request' | 'mechanism-too-weak' | 'not-authorized' | 'temporary-auth-failure',
+ text = [] :: [#text{}]}).
+-type sasl_failure() :: #sasl_failure{}.
+
+-record(block_list, {items = [] :: [jid:jid()]}).
+-type block_list() :: #block_list{}.
+
+-record(upload_request, {filename :: binary(),
+ size :: non_neg_integer(),
+ 'content-type' = <<>> :: binary(),
+ xmlns = <<>> :: binary()}).
+-type upload_request() :: #upload_request{}.
+
+-record(xdata_option, {label = <<>> :: binary(),
+ value :: binary()}).
+-type xdata_option() :: #xdata_option{}.
+
+-record(xdata_field, {label = <<>> :: binary(),
+ type :: 'boolean' | 'fixed' | 'hidden' | 'jid-multi' | 'jid-single' | 'list-multi' | 'list-single' | 'text-multi' | 'text-private' | 'text-single',
+ var = <<>> :: binary(),
+ required = false :: boolean(),
+ desc = <<>> :: binary(),
+ values = [] :: [binary()],
+ options = [] :: [#xdata_option{}],
+ sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
+-type xdata_field() :: #xdata_field{}.
+
+-record(version, {name :: binary(),
+ ver :: binary(),
+ os :: binary()}).
+-type version() :: #version{}.
+
+-record(bind, {jid :: jid:jid(),
+ resource = <<>> :: binary()}).
+-type bind() :: #bind{}.
+
+-record(rosterver_feature, {}).
+-type rosterver_feature() :: #rosterver_feature{}.
+
+-record(muc_invite, {reason = <<>> :: binary(),
+ from :: jid:jid(),
+ to :: jid:jid(),
+ continue :: binary()}).
+-type muc_invite() :: #muc_invite{}.
+
+-record(delegated, {ns = <<>> :: binary(),
+ attrs = [] :: [binary()]}).
+-type delegated() :: #delegated{}.
+
+-record(carbons_disable, {}).
+-type carbons_disable() :: #carbons_disable{}.
+
+-record(bytestreams, {hosts = [] :: [#streamhost{}],
+ used :: jid:jid(),
+ activate :: jid:jid(),
+ dstaddr = <<>> :: binary(),
+ mode = tcp :: 'tcp' | 'udp',
+ sid = <<>> :: binary()}).
+-type bytestreams() :: #bytestreams{}.
+
+-record(adhoc_actions, {execute :: 'complete' | 'next' | 'prev',
+ prev = false :: boolean(),
+ next = false :: boolean(),
+ complete = false :: boolean()}).
+-type adhoc_actions() :: #adhoc_actions{}.
+
+-record(vcard_org, {name :: binary(),
+ units = [] :: [binary()]}).
+-type vcard_org() :: #vcard_org{}.
+
+-record(rsm_set, {'after' :: binary(),
+ before :: binary(),
+ count :: non_neg_integer(),
+ first :: #rsm_first{},
+ index :: non_neg_integer(),
+ last :: binary(),
+ max :: non_neg_integer()}).
+-type rsm_set() :: #rsm_set{}.
+
+-record(mam_fin, {xmlns = <<>> :: binary(),
+ id = <<>> :: binary(),
+ rsm :: #rsm_set{},
+ stable :: boolean(),
+ complete :: boolean()}).
+-type mam_fin() :: #mam_fin{}.
+
+-record(disco_items, {node = <<>> :: binary(),
+ items = [] :: [#disco_item{}],
+ rsm :: #rsm_set{}}).
+-type disco_items() :: #disco_items{}.
+
+-record(vcard_tel, {home = false :: boolean(),
+ work = false :: boolean(),
+ voice = false :: boolean(),
+ fax = false :: boolean(),
+ pager = false :: boolean(),
+ msg = false :: boolean(),
+ cell = false :: boolean(),
+ video = false :: boolean(),
+ bbs = false :: boolean(),
+ modem = false :: boolean(),
+ isdn = false :: boolean(),
+ pcs = false :: boolean(),
+ pref = false :: boolean(),
+ number :: binary()}).
+-type vcard_tel() :: #vcard_tel{}.
+
+-record(media_uri, {type = <<>> :: binary(),
+ uri = <<>> :: binary()}).
+-type media_uri() :: #media_uri{}.
+
+-record(media, {height :: non_neg_integer(),
+ width :: non_neg_integer(),
+ uri = [] :: [#media_uri{}]}).
+-type media() :: #media{}.
+
+-record(muc_destroy, {xmlns = <<>> :: binary(),
+ jid :: jid:jid(),
+ reason = <<>> :: binary(),
+ password :: binary()}).
+-type muc_destroy() :: #muc_destroy{}.
+
+-record(muc_user, {decline :: #muc_decline{},
+ destroy :: #muc_destroy{},
+ invites = [] :: [#muc_invite{}],
+ items = [] :: [#muc_item{}],
+ status_codes = [] :: [pos_integer()],
+ password :: binary()}).
+-type muc_user() :: #muc_user{}.
+
+-record(vcard_key, {type :: binary(),
+ cred :: binary()}).
+-type vcard_key() :: #vcard_key{}.
+
+-record(vcard_name, {family :: binary(),
+ given :: binary(),
+ middle :: binary(),
+ prefix :: binary(),
+ suffix :: binary()}).
+-type vcard_name() :: #vcard_name{}.
+
+-record(identity, {category = <<>> :: binary(),
+ type = <<>> :: binary(),
+ lang = <<>> :: binary(),
+ name = <<>> :: binary()}).
+-type identity() :: #identity{}.
+
+-record(bookmark_conference, {name = <<>> :: binary(),
+ jid :: jid:jid(),
+ autojoin = false :: boolean(),
+ nick :: binary(),
+ password :: binary()}).
+-type bookmark_conference() :: #bookmark_conference{}.
+
+-record(xmpp_session, {optional = false :: boolean()}).
+-type xmpp_session() :: #xmpp_session{}.
+
+-record(bookmark_url, {name = <<>> :: binary(),
+ url = <<>> :: binary()}).
+-type bookmark_url() :: #bookmark_url{}.
+
+-record(bookmark_storage, {conference = [] :: [#bookmark_conference{}],
+ url = [] :: [#bookmark_url{}]}).
+-type bookmark_storage() :: #bookmark_storage{}.
+
+-record(oob_x, {url :: binary(),
+ desc = <<>> :: binary(),
+ sid = <<>> :: binary()}).
+-type oob_x() :: #oob_x{}.
+
+-record(vcard_sound, {phonetic :: binary(),
+ binval :: binary(),
+ extval :: binary()}).
+-type vcard_sound() :: #vcard_sound{}.
+
+-record(vcard_photo, {type :: binary(),
+ binval :: binary(),
+ extval :: binary()}).
+-type vcard_photo() :: #vcard_photo{}.
+
+-record(vcard_label, {home = false :: boolean(),
+ work = false :: boolean(),
+ postal = false :: boolean(),
+ parcel = false :: boolean(),
+ dom = false :: boolean(),
+ intl = false :: boolean(),
+ pref = false :: boolean(),
+ line = [] :: [binary()]}).
+-type vcard_label() :: #vcard_label{}.
+
+-record(vcard_adr, {home = false :: boolean(),
+ work = false :: boolean(),
+ postal = false :: boolean(),
+ parcel = false :: boolean(),
+ dom = false :: boolean(),
+ intl = false :: boolean(),
+ pref = false :: boolean(),
+ pobox :: binary(),
+ extadd :: binary(),
+ street :: binary(),
+ locality :: binary(),
+ region :: binary(),
+ pcode :: binary(),
+ ctry :: binary()}).
+-type vcard_adr() :: #vcard_adr{}.
+
+-record(search_item, {jid :: jid:jid(),
+ first :: binary(),
+ last :: binary(),
+ nick :: binary(),
+ email :: binary()}).
+-type search_item() :: #search_item{}.
+
+-record(xdata, {type :: 'cancel' | 'form' | 'result' | 'submit',
+ instructions = [] :: [binary()],
+ title :: binary(),
+ reported :: [#xdata_field{}],
+ items = [] :: [[#xdata_field{}]],
+ fields = [] :: [#xdata_field{}]}).
+-type xdata() :: #xdata{}.
+
+-record(xcaptcha, {xdata :: #xdata{}}).
+-type xcaptcha() :: #xcaptcha{}.
+
+-record(adhoc_command, {node = <<>> :: binary(),
+ action = execute :: 'cancel' | 'complete' | 'execute' | 'next' | 'prev',
+ sid = <<>> :: binary(),
+ status :: 'canceled' | 'completed' | 'executing',
+ lang = <<>> :: binary(),
+ actions :: #adhoc_actions{},
+ notes = [] :: [#adhoc_note{}],
+ xdata :: #xdata{}}).
+-type adhoc_command() :: #adhoc_command{}.
+
+-record(search, {instructions :: binary(),
+ first :: binary(),
+ last :: binary(),
+ nick :: binary(),
+ email :: binary(),
+ items = [] :: [#search_item{}],
+ xdata :: #xdata{}}).
+-type search() :: #search{}.
+
+-record(mam_query, {xmlns = <<>> :: binary(),
+ id = <<>> :: binary(),
+ start :: erlang:timestamp(),
+ 'end' :: erlang:timestamp(),
+ with :: jid:jid(),
+ withtext :: binary(),
+ rsm :: #rsm_set{},
+ xdata :: #xdata{}}).
+-type mam_query() :: #mam_query{}.
+
+-record(pubsub_owner, {affiliations :: {binary(),[#ps_affiliation{}]},
+ configure :: {binary(),'undefined' | #xdata{}},
+ default :: {binary(),'undefined' | #xdata{}},
+ delete :: {binary(),binary()},
+ purge :: binary(),
+ subscriptions :: {binary(),[#ps_subscription{}]}}).
+-type pubsub_owner() :: #pubsub_owner{}.
+
+-record(ps_options, {node = <<>> :: binary(),
+ jid :: jid:jid(),
+ subid = <<>> :: binary(),
+ xdata :: #xdata{}}).
+-type ps_options() :: #ps_options{}.
+
+-record(pubsub, {subscriptions :: {binary(),[#ps_subscription{}]},
+ subscription :: #ps_subscription{},
+ affiliations :: {binary(),[#ps_affiliation{}]},
+ publish :: #ps_publish{},
+ publish_options :: #xdata{},
+ subscribe :: #ps_subscribe{},
+ unsubscribe :: #ps_unsubscribe{},
+ options :: #ps_options{},
+ items :: #ps_items{},
+ retract :: #ps_retract{},
+ create :: binary(),
+ configure :: {binary(),'undefined' | #xdata{}},
+ default :: {binary(),'undefined' | #xdata{}},
+ delete :: {binary(),binary()},
+ purge :: binary(),
+ rsm :: #rsm_set{}}).
+-type pubsub() :: #pubsub{}.
+
+-record(ps_event, {items :: #ps_items{},
+ purge :: binary(),
+ subscription :: #ps_subscription{},
+ delete :: {binary(),binary()},
+ create :: binary(),
+ configuration :: {binary(),'undefined' | #xdata{}}}).
+-type ps_event() :: #ps_event{}.
+
+-record(register, {registered = false :: boolean(),
+ remove = false :: boolean(),
+ instructions :: binary(),
+ username :: binary(),
+ nick :: binary(),
+ password :: binary(),
+ name :: binary(),
+ first :: binary(),
+ last :: binary(),
+ email :: binary(),
+ address :: binary(),
+ city :: binary(),
+ state :: binary(),
+ zip :: binary(),
+ phone :: binary(),
+ url :: binary(),
+ date :: binary(),
+ misc :: binary(),
+ text :: binary(),
+ key :: binary(),
+ xdata :: #xdata{},
+ sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
+-type register() :: #register{}.
+
+-record(disco_info, {node = <<>> :: binary(),
+ identities = [] :: [#identity{}],
+ features = [] :: [binary()],
+ xdata = [] :: [#xdata{}]}).
+-type disco_info() :: #disco_info{}.
+
+-record(offline_item, {node = <<>> :: binary(),
+ action :: 'remove' | 'view'}).
+-type offline_item() :: #offline_item{}.
+
+-record(offline, {items = [] :: [#offline_item{}],
+ purge = false :: boolean(),
+ fetch = false :: boolean()}).
+-type offline() :: #offline{}.
+
+-record(muc_owner, {destroy :: #muc_destroy{},
+ config :: #xdata{},
+ items = [] :: [#muc_item{}]}).
+-type muc_owner() :: #muc_owner{}.
+
+-record(sasl_mechanisms, {list = [] :: [binary()]}).
+-type sasl_mechanisms() :: #sasl_mechanisms{}.
+
+-record(sm_failed, {reason :: atom() | #gone{} | #redirect{},
+ h :: non_neg_integer(),
+ xmlns = <<>> :: binary()}).
+-type sm_failed() :: #sm_failed{}.
+
+-record(stanza_error, {type :: 'auth' | 'cancel' | 'continue' | 'modify' | 'wait',
+ code :: non_neg_integer(),
+ by = <<>> :: binary(),
+ reason :: atom() | #gone{} | #redirect{},
+ text :: #text{},
+ sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
+-type stanza_error() :: #stanza_error{}.
+
+-record(delegation, {delegated = [] :: [#delegated{}],
+ forwarded :: #forwarded{}}).
+-type delegation() :: #delegation{}.
+
+-record(mix_join, {jid :: jid:jid(),
+ subscribe = [] :: [binary()]}).
+-type mix_join() :: #mix_join{}.
+
+-record(privacy_item, {order :: non_neg_integer(),
+ action :: 'allow' | 'deny',
+ type :: 'group' | 'jid' | 'subscription',
+ value = <<>> :: binary(),
+ message = false :: boolean(),
+ iq = false :: boolean(),
+ presence_in = false :: boolean(),
+ presence_out = false :: boolean()}).
+-type privacy_item() :: #privacy_item{}.
+
+-record(privacy_list, {name = <<>> :: binary(),
+ items = [] :: [#privacy_item{}]}).
+-type privacy_list() :: #privacy_list{}.
+
+-record(privacy_query, {lists = [] :: [#privacy_list{}],
+ default :: 'none' | binary(),
+ active :: 'none' | binary()}).
+-type privacy_query() :: #privacy_query{}.
+
+-record(stream_error, {reason :: atom() | #'see-other-host'{},
+ text :: #text{}}).
+-type stream_error() :: #stream_error{}.
+
+-record(vcard_logo, {type :: binary(),
+ binval :: binary(),
+ extval :: binary()}).
+-type vcard_logo() :: #vcard_logo{}.
+
+-record(vcard_temp, {version :: binary(),
+ fn :: binary(),
+ n :: #vcard_name{},
+ nickname :: binary(),
+ photo :: #vcard_photo{},
+ bday :: binary(),
+ adr = [] :: [#vcard_adr{}],
+ label = [] :: [#vcard_label{}],
+ tel = [] :: [#vcard_tel{}],
+ email = [] :: [#vcard_email{}],
+ jabberid :: binary(),
+ mailer :: binary(),
+ tz :: binary(),
+ geo :: #vcard_geo{},
+ title :: binary(),
+ role :: binary(),
+ logo :: #vcard_logo{},
+ org :: #vcard_org{},
+ categories = [] :: [binary()],
+ note :: binary(),
+ prodid :: binary(),
+ rev :: binary(),
+ sort_string :: binary(),
+ sound :: #vcard_sound{},
+ uid :: binary(),
+ url :: binary(),
+ class :: 'confidential' | 'private' | 'public',
+ key :: #vcard_key{},
+ desc :: binary()}).
+-type vcard_temp() :: #vcard_temp{}.
+
+-record(time, {tzo :: {integer(),integer()},
+ utc :: erlang:timestamp()}).
+-type time() :: #time{}.
+
+-type xmpp_element() :: compression() |
+ ps_subscription() |
+ xdata_option() |
+ version() |
+ sm_a() |
+ bob_data() |
+ media() |
+ stanza_id() |
+ starttls_proceed() |
+ forwarded() |
+ client_id() |
+ sm_resumed() |
+ xevent() |
+ privacy_list() |
+ carbons_sent() |
+ mam_archived() |
+ p1_rebind() |
+ sasl_abort() |
+ db_result() |
+ carbons_received() |
+ upload_slot() |
+ mix_participant() |
+ compressed() |
+ block_list() |
+ delegated() |
+ rsm_set() |
+ 'see-other-host'() |
+ hint() |
+ stream_start() |
+ text() |
+ vcard_org() |
+ shim() |
+ search_item() |
+ offline_item() |
+ feature_sm() |
+ roster_item() |
+ muc_item() |
+ vcard_temp() |
+ address() |
+ sasl_success() |
+ addresses() |
+ muc_subscriptions() |
+ disco_items() |
+ compress() |
+ bytestreams() |
+ adhoc_actions() |
+ privacy_query() |
+ muc_history() |
+ identity() |
+ feature_csi() |
+ delay() |
+ thumbnail() |
+ vcard_tel() |
+ vcard_geo() |
+ vcard_photo() |
+ pubsub_owner() |
+ pubsub() |
+ muc_owner() |
+ muc_actor() |
+ ps_error() |
+ starttls_failure() |
+ sasl_challenge() |
+ x_conference() |
+ private() |
+ sasl_failure() |
+ vcard_name() |
+ adhoc_note() |
+ rosterver_feature() |
+ muc_invite() |
+ vcard_xupdate() |
+ carbons_disable() |
+ bookmark_conference() |
+ offline() |
+ time() |
+ ps_subscribe() |
+ sm_enable() |
+ handshake() |
+ compress_failure() |
+ bookmark_storage() |
+ muc_decline() |
+ legacy_auth() |
+ search() |
+ ps_publish() |
+ nick() |
+ p1_ack() |
+ block() |
+ delegation() |
+ mix_join() |
+ xmpp_session() |
+ xdata() |
+ iq() |
+ xcaptcha() |
+ streamhost() |
+ bind() |
+ ps_retract() |
+ last() |
+ redirect() |
+ sm_enabled() |
+ vcard_sound() |
+ ps_event() |
+ mam_result() |
+ rsm_first() |
+ stat() |
+ upload_request() |
+ xdata_field() |
+ adhoc_command() |
+ sm_failed() |
+ ping() |
+ privilege_perm() |
+ privacy_item() |
+ disco_item() |
+ ps_item() |
+ mam_prefs() |
+ sasl_mechanisms() |
+ caps() |
+ muc() |
+ stream_features() |
+ stats() |
+ ps_items() |
+ sic() |
+ ps_options() |
+ starttls() |
+ db_verify() |
+ roster_query() |
+ media_uri() |
+ muc_destroy() |
+ vcard_key() |
+ csi() |
+ delegation_query() |
+ mam_query() |
+ bookmark_url() |
+ vcard_email() |
+ vcard_label() |
+ vcard_logo() |
+ disco_info() |
+ feature_register() |
+ register() |
+ sm_r() |
+ stat_error() |
+ stanza_error() |
+ stream_error() |
+ muc_user() |
+ vcard_adr() |
+ gone() |
+ carbons_private() |
+ mix_leave() |
+ muc_subscribe() |
+ privilege() |
+ muc_unique() |
+ sasl_response() |
+ message() |
+ presence() |
+ sm_resume() |
+ carbons_enable() |
+ expire() |
+ muc_unsubscribe() |
+ ps_unsubscribe() |
+ chatstate() |
+ sasl_auth() |
+ p1_push() |
+ oob_x() |
+ unblock() |
+ muc_admin() |
+ ps_affiliation() |
+ mam_fin().