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.hrl828
1 files changed, 828 insertions, 0 deletions
diff --git a/include/xmpp_codec.hrl b/include/xmpp_codec.hrl
new file mode 100644
index 000000000..64a185a30
--- /dev/null
+++ b/include/xmpp_codec.hrl
@@ -0,0 +1,828 @@
+%% 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(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' | 'store' | 'no-permanent-store'}).
+-type hint() :: #hint{}.
+
+-record(feature_register, {}).
+-type feature_register() :: #feature_register{}.
+
+-record(sasl_success, {text :: any()}).
+-type sasl_success() :: #sasl_success{}.
+
+-record(mam_result, {xmlns :: binary(),
+ queryid :: binary(),
+ id :: binary(),
+ sub_els = [] :: [any()]}).
+-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 :: any(),
+ 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(pubsub_unsubscribe, {node :: binary(),
+ jid :: any(),
+ subid :: binary()}).
+-type pubsub_unsubscribe() :: #pubsub_unsubscribe{}.
+
+-record(mix_leave, {}).
+-type mix_leave() :: #mix_leave{}.
+
+-record(ping, {}).
+-type ping() :: #ping{}.
+
+-record(delay, {stamp :: any(),
+ from :: any(),
+ desc = <<>> :: binary()}).
+-type delay() :: #delay{}.
+
+-record(muc_history, {maxchars :: non_neg_integer(),
+ maxstanzas :: non_neg_integer(),
+ seconds :: non_neg_integer(),
+ since :: any()}).
+-type muc_history() :: #muc_history{}.
+
+-record(pubsub_affiliation, {node :: binary(),
+ type :: 'member' | 'none' | 'outcast' | 'owner' | 'publish-only' | 'publisher'}).
+-type pubsub_affiliation() :: #pubsub_affiliation{}.
+
+-record(muc_decline, {reason :: binary(),
+ from :: any(),
+ to :: any()}).
+-type muc_decline() :: #muc_decline{}.
+
+-record(sm_a, {h :: non_neg_integer(),
+ xmlns :: binary()}).
+-type sm_a() :: #sm_a{}.
+
+-record(starttls_proceed, {}).
+-type starttls_proceed() :: #starttls_proceed{}.
+
+-record(sm_resumed, {h :: non_neg_integer(),
+ previd :: binary(),
+ xmlns :: binary()}).
+-type sm_resumed() :: #sm_resumed{}.
+
+-record(forwarded, {delay :: #delay{},
+ sub_els = [] :: [any()]}).
+-type forwarded() :: #forwarded{}.
+
+-record(sm_enable, {max :: non_neg_integer(),
+ resume = false :: any(),
+ xmlns :: binary()}).
+-type sm_enable() :: #sm_enable{}.
+
+-record(starttls_failure, {}).
+-type starttls_failure() :: #starttls_failure{}.
+
+-record(sasl_challenge, {text :: any()}).
+-type sasl_challenge() :: #sasl_challenge{}.
+
+-record(gone, {uri :: binary()}).
+-type gone() :: #gone{}.
+
+-record(private, {xml_els = [] :: [any()]}).
+-type private() :: #private{}.
+
+-record(p1_ack, {}).
+-type p1_ack() :: #p1_ack{}.
+
+-record(feature_sm, {xmlns :: binary()}).
+-type feature_sm() :: #feature_sm{}.
+
+-record(pubsub_item, {id :: binary(),
+ xml_els = [] :: [any()]}).
+-type pubsub_item() :: #pubsub_item{}.
+
+-record(pubsub_publish, {node :: binary(),
+ items = [] :: [#pubsub_item{}]}).
+-type pubsub_publish() :: #pubsub_publish{}.
+
+-record(roster_item, {jid :: any(),
+ 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(pubsub_event_item, {id :: binary(),
+ node :: binary(),
+ publisher :: binary(),
+ xml_els = [] :: [any()]}).
+-type pubsub_event_item() :: #pubsub_event_item{}.
+
+-record(sm_r, {xmlns :: binary()}).
+-type sm_r() :: #sm_r{}.
+
+-record(muc_actor, {jid :: any(),
+ nick :: binary()}).
+-type muc_actor() :: #muc_actor{}.
+
+-record(stat, {name :: binary(),
+ units :: binary(),
+ value :: binary(),
+ error = [] :: [{integer(),'undefined' | binary()}]}).
+-type stat() :: #stat{}.
+
+-record('see-other-host', {host :: binary()}).
+-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 :: any(),
+ xmlns :: binary()}).
+-type sm_enabled() :: #sm_enabled{}.
+
+-record(pubsub_event_items, {node :: binary(),
+ retract = [] :: [binary()],
+ items = [] :: [#pubsub_event_item{}]}).
+-type pubsub_event_items() :: #pubsub_event_items{}.
+
+-record(pubsub_event, {items = [] :: [#pubsub_event_items{}]}).
+-type pubsub_event() :: #pubsub_event{}.
+
+-record(sasl_response, {text :: any()}).
+-type sasl_response() :: #sasl_response{}.
+
+-record(legacy_auth, {username :: 'none' | binary(),
+ password :: 'none' | binary(),
+ digest :: 'none' | binary(),
+ resource :: 'none' | binary()}).
+-type legacy_auth() :: #legacy_auth{}.
+
+-record(pubsub_subscribe, {node :: binary(),
+ jid :: any()}).
+-type pubsub_subscribe() :: #pubsub_subscribe{}.
+
+-record(sasl_auth, {mechanism :: binary(),
+ text :: any()}).
+-type sasl_auth() :: #sasl_auth{}.
+
+-record(p1_push, {}).
+-type p1_push() :: #p1_push{}.
+
+-record(feature_csi, {xmlns :: binary()}).
+-type feature_csi() :: #feature_csi{}.
+
+-record(muc_user_destroy, {reason :: binary(),
+ jid :: any()}).
+-type muc_user_destroy() :: #muc_user_destroy{}.
+
+-record(disco_item, {jid :: any(),
+ name :: binary(),
+ node :: binary()}).
+-type disco_item() :: #disco_item{}.
+
+-record(disco_items, {node :: binary(),
+ items = [] :: [#disco_item{}]}).
+-type disco_items() :: #disco_items{}.
+
+-record(unblock, {items = [] :: [any()]}).
+-type unblock() :: #unblock{}.
+
+-record(block, {items = [] :: [any()]}).
+-type block() :: #block{}.
+
+-record(compression, {methods = [] :: [binary()]}).
+-type compression() :: #compression{}.
+
+-record(muc_owner_destroy, {jid :: any(),
+ reason :: binary(),
+ password :: binary()}).
+-type muc_owner_destroy() :: #muc_owner_destroy{}.
+
+-record(pubsub_subscription, {jid :: any(),
+ node :: binary(),
+ subid :: binary(),
+ type :: 'none' | 'pending' | 'subscribed' | 'unconfigured'}).
+-type pubsub_subscription() :: #pubsub_subscription{}.
+
+-record(muc_item, {actor :: #muc_actor{},
+ continue :: binary(),
+ reason :: binary(),
+ affiliation :: 'admin' | 'member' | 'none' | 'outcast' | 'owner',
+ role :: 'moderator' | 'none' | 'participant' | 'visitor',
+ jid :: any(),
+ nick :: binary()}).
+-type muc_item() :: #muc_item{}.
+
+-record(muc_admin, {items = [] :: [#muc_item{}]}).
+-type muc_admin() :: #muc_admin{}.
+
+-record(shim, {headers = [] :: [{binary(),'undefined' | binary()}]}).
+-type shim() :: #shim{}.
+
+-record(mam_prefs, {xmlns :: binary(),
+ default :: 'always' | 'never' | 'roster',
+ always = [] :: [any()],
+ never = [] :: [any()]}).
+-type mam_prefs() :: #mam_prefs{}.
+
+-record(caps, {node :: binary(),
+ version :: binary(),
+ hash :: binary(),
+ exts = [] :: any()}).
+-type caps() :: #caps{}.
+
+-record(muc, {history :: #muc_history{},
+ password :: binary()}).
+-type muc() :: #muc{}.
+
+-record(stream_features, {sub_els = [] :: [any()]}).
+-type stream_features() :: #stream_features{}.
+
+-record(stats, {stat = [] :: [#stat{}]}).
+-type stats() :: #stats{}.
+
+-record(pubsub_items, {node :: binary(),
+ max_items :: non_neg_integer(),
+ subid :: binary(),
+ items = [] :: [#pubsub_item{}]}).
+-type pubsub_items() :: #pubsub_items{}.
+
+-record(carbons_sent, {forwarded :: #forwarded{}}).
+-type carbons_sent() :: #carbons_sent{}.
+
+-record(mam_archived, {by :: any(),
+ 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(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(carbons_received, {forwarded :: #forwarded{}}).
+-type carbons_received() :: #carbons_received{}.
+
+-record(pubsub_retract, {node :: binary(),
+ notify = false :: any(),
+ items = [] :: [#pubsub_item{}]}).
+-type pubsub_retract() :: #pubsub_retract{}.
+
+-record(mix_participant, {jid :: any(),
+ 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, {}).
+-type block_list() :: #block_list{}.
+
+-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 = [] :: [binary()]}).
+-type xdata_field() :: #xdata_field{}.
+
+-record(version, {name :: binary(),
+ ver :: binary(),
+ os :: binary()}).
+-type version() :: #version{}.
+
+-record(muc_invite, {reason :: binary(),
+ from :: any(),
+ to :: any()}).
+-type muc_invite() :: #muc_invite{}.
+
+-record(bind, {jid :: any(),
+ resource :: any()}).
+-type bind() :: #bind{}.
+
+-record(rosterver_feature, {}).
+-type rosterver_feature() :: #rosterver_feature{}.
+
+-record(muc_user, {decline :: #muc_decline{},
+ destroy :: #muc_user_destroy{},
+ invites = [] :: [#muc_invite{}],
+ items = [] :: [#muc_item{}],
+ status_codes = [] :: [pos_integer()],
+ password :: binary()}).
+-type muc_user() :: #muc_user{}.
+
+-record(carbons_disable, {}).
+-type carbons_disable() :: #carbons_disable{}.
+
+-record(bytestreams, {hosts = [] :: [#streamhost{}],
+ used :: any(),
+ activate :: any(),
+ dstaddr :: binary(),
+ mode = tcp :: 'tcp' | 'udp',
+ sid :: binary()}).
+-type bytestreams() :: #bytestreams{}.
+
+-record(vcard_org, {name :: binary(),
+ units = [] :: [binary()]}).
+-type vcard_org() :: #vcard_org{}.
+
+-record(rsm_set, {'after' :: binary(),
+ before :: 'none' | 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, {id :: binary(),
+ rsm :: #rsm_set{},
+ stable :: any(),
+ complete :: any()}).
+-type mam_fin() :: #mam_fin{}.
+
+-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(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 :: any(),
+ autojoin = false :: any(),
+ 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(vcard_sound, {phonetic :: binary(),
+ binval :: any(),
+ extval :: binary()}).
+-type vcard_sound() :: #vcard_sound{}.
+
+-record(vcard_photo, {type :: binary(),
+ binval :: any(),
+ 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 :: any(),
+ 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(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 :: any(),
+ 'end' :: any(),
+ with :: any(),
+ rsm :: #rsm_set{},
+ xdata :: #xdata{}}).
+-type mam_query() :: #mam_query{}.
+
+-record(muc_owner, {destroy :: #muc_owner_destroy{},
+ config :: #xdata{}}).
+-type muc_owner() :: #muc_owner{}.
+
+-record(pubsub_options, {node :: binary(),
+ jid :: any(),
+ subid :: binary(),
+ xdata :: #xdata{}}).
+-type pubsub_options() :: #pubsub_options{}.
+
+-record(pubsub, {subscriptions :: {'none' | binary(),[#pubsub_subscription{}]},
+ affiliations :: [#pubsub_affiliation{}],
+ publish :: #pubsub_publish{},
+ subscribe :: #pubsub_subscribe{},
+ unsubscribe :: #pubsub_unsubscribe{},
+ options :: #pubsub_options{},
+ items :: #pubsub_items{},
+ retract :: #pubsub_retract{}}).
+-type pubsub() :: #pubsub{}.
+
+-record(register, {registered = false :: boolean(),
+ remove = false :: boolean(),
+ instructions :: binary(),
+ username :: 'none' | binary(),
+ nick :: 'none' | binary(),
+ password :: 'none' | binary(),
+ name :: 'none' | binary(),
+ first :: 'none' | binary(),
+ last :: 'none' | binary(),
+ email :: 'none' | binary(),
+ address :: 'none' | binary(),
+ city :: 'none' | binary(),
+ state :: 'none' | binary(),
+ zip :: 'none' | binary(),
+ phone :: 'none' | binary(),
+ url :: 'none' | binary(),
+ date :: 'none' | binary(),
+ misc :: 'none' | binary(),
+ text :: 'none' | binary(),
+ key :: 'none' | binary(),
+ xdata :: #xdata{}}).
+-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(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(error, {type :: 'auth' | 'cancel' | 'continue' | 'modify' | 'wait',
+ code :: non_neg_integer(),
+ by :: binary(),
+ reason :: atom() | #gone{} | #redirect{},
+ text :: #text{}}).
+-type error() :: #error{}.
+
+-record(presence, {id :: binary(),
+ type = available :: 'available' | 'error' | 'probe' | 'subscribe' | 'subscribed' | 'unavailable' | 'unsubscribe' | 'unsubscribed',
+ lang :: binary(),
+ from :: any(),
+ to :: any(),
+ show :: 'away' | 'chat' | 'dnd' | 'xa',
+ status = [] :: [#text{}],
+ priority :: integer(),
+ error :: #error{},
+ sub_els = [] :: [any()]}).
+-type presence() :: #presence{}.
+
+-record(message, {id :: binary(),
+ type = normal :: 'chat' | 'error' | 'groupchat' | 'headline' | 'normal',
+ lang :: binary(),
+ from :: any(),
+ to :: any(),
+ subject = [] :: [#text{}],
+ body = [] :: [#text{}],
+ thread :: binary(),
+ error :: #error{},
+ sub_els = [] :: [any()]}).
+-type message() :: #message{}.
+
+-record(iq, {id :: binary(),
+ type :: 'error' | 'get' | 'result' | 'set',
+ lang :: binary(),
+ from :: any(),
+ to :: any(),
+ error :: #error{},
+ sub_els = [] :: [any()]}).
+-type iq() :: #iq{}.
+
+-record(mix_join, {jid :: any(),
+ 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 :: any(),
+ 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 :: any(),
+ utc :: any()}).
+-type time() :: #time{}.
+
+-type xmpp_element() :: compression() |
+ pubsub_subscription() |
+ version() |
+ pubsub_affiliation() |
+ muc_admin() |
+ mam_fin() |
+ sm_a() |
+ carbons_sent() |
+ mam_archived() |
+ p1_rebind() |
+ sasl_abort() |
+ carbons_received() |
+ pubsub_retract() |
+ mix_participant() |
+ compressed() |
+ block_list() |
+ rsm_set() |
+ 'see-other-host'() |
+ hint() |
+ starttls_proceed() |
+ sm_resumed() |
+ forwarded() |
+ privacy_list() |
+ text() |
+ vcard_org() |
+ shim() |
+ search_item() |
+ offline_item() |
+ feature_sm() |
+ pubsub_item() |
+ roster_item() |
+ pubsub_event_item() |
+ muc_item() |
+ vcard_temp() |
+ sasl_success() |
+ pubsub_event_items() |
+ disco_items() |
+ pubsub_options() |
+ compress() |
+ bytestreams() |
+ identity() |
+ feature_csi() |
+ muc_user_destroy() |
+ privacy_query() |
+ delay() |
+ muc_history() |
+ vcard_tel() |
+ vcard_logo() |
+ disco_info() |
+ vcard_geo() |
+ vcard_photo() |
+ feature_register() |
+ register() |
+ muc_owner() |
+ pubsub() |
+ sm_r() |
+ muc_actor() |
+ error() |
+ stream_error() |
+ muc_user() |
+ vcard_adr() |
+ carbons_private() |
+ mix_leave() |
+ muc_invite() |
+ rosterver_feature() |
+ vcard_xupdate() |
+ carbons_disable() |
+ bookmark_conference() |
+ offline() |
+ time() |
+ sasl_response() |
+ pubsub_subscribe() |
+ presence() |
+ message() |
+ sm_enable() |
+ starttls_failure() |
+ sasl_challenge() |
+ gone() |
+ private() |
+ compress_failure() |
+ sasl_failure() |
+ bookmark_storage() |
+ vcard_name() |
+ sm_resume() |
+ carbons_enable() |
+ pubsub_unsubscribe() |
+ muc_decline() |
+ chatstate() |
+ sasl_auth() |
+ p1_push() |
+ legacy_auth() |
+ search() |
+ pubsub_publish() |
+ unblock() |
+ p1_ack() |
+ block() |
+ mix_join() |
+ xmpp_session() |
+ xdata() |
+ iq() |
+ streamhost() |
+ bind() |
+ last() |
+ redirect() |
+ sm_enabled() |
+ pubsub_event() |
+ vcard_sound() |
+ mam_result() |
+ rsm_first() |
+ stat() |
+ xdata_field() |
+ sm_failed() |
+ ping() |
+ disco_item() |
+ privacy_item() |
+ caps() |
+ muc() |
+ stream_features() |
+ stats() |
+ pubsub_items() |
+ starttls() |
+ mam_prefs() |
+ sasl_mechanisms() |
+ vcard_key() |
+ csi() |
+ roster_query() |
+ muc_owner_destroy() |
+ mam_query() |
+ bookmark_url() |
+ vcard_email() |
+ vcard_label().