Changeset

4530:33c149d0261d

mod_rest: Add mappings for a whole pile of XEPs Look ma, programming in JSON! XEP-0012: Last Activity XEP-0077: In-Band Registration XEP-0115: Entity Capabilities XEP-0153: vCard-Based Avatars XEP-0297: Stanza Forwarding XEP-0308: Last Message Correction XEP-0319: Last User Interaction in Presence XEP-0333: Chat Markers XEP-0367: Message Attaching XEP-0372: References XEP-0421: Anonymous unique occupant identifiers for MUCs XEP-0428: Fallback Indication XEP-0444: Message Reactions
author Kim Alvefur <zash@zash.se>
date Tue, 23 Mar 2021 23:18:33 +0100
parents 4529:c6d44e1fb4d9
children 4531:60fe204b980f
files mod_rest/res/schema-xmpp.json
diffstat 1 files changed, 287 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mod_rest/res/schema-xmpp.json	Tue Mar 23 22:08:38 2021 +0100
+++ b/mod_rest/res/schema-xmpp.json	Tue Mar 23 23:18:33 2021 +0100
@@ -62,6 +62,29 @@
    "properties" : {
       "iq" : {
          "properties" : {
+            "lastactivity" : {
+               "properties" : {
+                  "seconds" : {
+                     "minimum" : 0,
+                     "type" : "integer",
+                     "xml" : {
+                        "attribute" : true
+                     }
+                  },
+                  "status" : {
+                     "type" : "string",
+                     "xml" : {
+                        "text" : true
+                     }
+                  }
+               },
+               "title" : "XEP-0012: Last Activity",
+               "type" : "object",
+               "xml" : {
+                  "name" : "query",
+                  "namespace" : "jabber:iq:last"
+               }
+            },
             "oob" : {
                "properties" : {
                   "desc" : {
@@ -92,6 +115,87 @@
                   "x_name_is_value" : true
                }
             },
+            "register" : {
+               "description" : "Register with a service",
+               "properties" : {
+                  "address" : {
+                     "type" : "string"
+                  },
+                  "city" : {
+                     "type" : "string"
+                  },
+                  "date" : {
+                     "type" : "string"
+                  },
+                  "email" : {
+                     "type" : "string"
+                  },
+                  "first" : {
+                     "type" : "string"
+                  },
+                  "instructions" : {
+                     "type" : "string"
+                  },
+                  "key" : {
+                     "type" : "string"
+                  },
+                  "last" : {
+                     "type" : "string"
+                  },
+                  "misc" : {
+                     "type" : "string"
+                  },
+                  "name" : {
+                     "type" : "string"
+                  },
+                  "nick" : {
+                     "type" : "string"
+                  },
+                  "password" : {
+                     "type" : "string"
+                  },
+                  "phone" : {
+                     "type" : "string"
+                  },
+                  "registered" : {
+                     "type" : "boolean",
+                     "xml" : {
+                        "x_name_is_value" : true
+                     }
+                  },
+                  "remove" : {
+                     "type" : "boolean",
+                     "xml" : {
+                        "x_name_is_value" : true
+                     }
+                  },
+                  "state" : {
+                     "type" : "string"
+                  },
+                  "text" : {
+                     "type" : "string"
+                  },
+                  "url" : {
+                     "type" : "string"
+                  },
+                  "username" : {
+                     "type" : "string"
+                  },
+                  "zip" : {
+                     "type" : "string"
+                  }
+               },
+               "required" : [
+                  "username",
+                  "password"
+               ],
+               "title" : "XEP-0077: In-Band Registration",
+               "type" : "object",
+               "xml" : {
+                  "name" : "query",
+                  "namespace" : "jabber:iq:register"
+               }
+            },
             "stats" : {
                "description" : "Simple statistics gathering, array of (name, unit, value) tuples.",
                "items" : {
@@ -163,11 +267,69 @@
       },
       "message" : {
          "properties" : {
+            "attach_to" : {
+               "title" : "XEP-0367: Message Attaching",
+               "type" : "string",
+               "xml" : {
+                  "name" : "attach-to",
+                  "namespace" : "urn:xmpp:message-attaching:1",
+                  "x_single_attribute" : "id"
+               }
+            },
             "body" : {
                "description" : "Human-readable chat message",
                "example" : "Hello, World!",
                "type" : "string"
             },
+            "displayed" : {
+               "description" : "Message ID of a message that has been displayed",
+               "title" : "XEP-0333: Chat Markers",
+               "type" : "string",
+               "xml" : {
+                  "namespace" : "urn:xmpp:chat-markers:0"
+               }
+            },
+            "fallback" : {
+               "title" : "XEP-0428: Fallback Indication",
+               "type" : "boolean",
+               "xml" : {
+                  "name" : "fallback",
+                  "namespace" : "urn:xmpp:fallback:0",
+                  "x_name_is_value" : true
+               }
+            },
+            "forwarded" : {
+               "title" : "XEP-0297: Stanza Forwarding",
+               "type" : "object",
+               "xml" : {
+                  "name" : "forwarded",
+                  "namespace" : "urn:xmpp:forward:0"
+               }
+            },
+            "markable" : {
+               "title" : "XEP-0333: Chat Markers",
+               "type" : "boolean",
+               "xml" : {
+                  "namespace" : "urn:xmpp:chat-markers:0",
+                  "x_name_is_value" : true
+               }
+            },
+            "occupant_id" : {
+               "properties" : {
+                  "id" : {
+                     "type" : "string",
+                     "xml" : {
+                        "attribute" : true
+                     }
+                  }
+               },
+               "title" : "XEP-0421: Anonymous unique occupant identifiers for MUCs",
+               "type" : "object",
+               "xml" : {
+                  "name" : "occupant-id",
+                  "namespace" : "urn:xmpp:occupant-id:0"
+               }
+            },
             "oob" : {
                "properties" : {
                   "desc" : {
@@ -185,6 +347,74 @@
                   "namespace" : "jabber:x:oob"
                }
             },
+            "reactions" : {
+               "properties" : {
+                  "id" : {
+                     "type" : "string",
+                     "xml" : {
+                        "attribute" : true
+                     }
+                  },
+                  "reactions" : {
+                     "items" : {
+                        "type" : "string",
+                        "xml" : {
+                           "name" : "reaction"
+                        }
+                     },
+                     "type" : "array",
+                     "xml" : {
+                        "name" : "reactions",
+                        "wrapped" : false
+                     }
+                  }
+               },
+               "title" : "XEP-0444: Message Reactions",
+               "type" : "object",
+               "xml" : {
+                  "namespace" : "urn:xmpp:reactions:0"
+               }
+            },
+            "reference" : {
+               "properties" : {
+                  "begin" : {
+                     "minimum" : 0,
+                     "type" : "integer",
+                     "xml" : {
+                        "attribute" : true
+                     }
+                  },
+                  "end" : {
+                     "minimum" : 0,
+                     "type" : "integer",
+                     "xml" : {
+                        "attribute" : true
+                     }
+                  },
+                  "type" : {
+                     "type" : "string",
+                     "xml" : {
+                        "attribute" : true
+                     }
+                  },
+                  "uri" : {
+                     "format" : "uri",
+                     "type" : "string",
+                     "xml" : {
+                        "attribute" : true
+                     }
+                  }
+               },
+               "required" : [
+                  "type",
+                  "uri"
+               ],
+               "title" : "XEP-0372: References",
+               "type" : "object",
+               "xml" : {
+                  "namespace" : "urn:xmpp:reference:0"
+               }
+            },
             "replace" : {
                "description" : "For indicating that a message is a correction of the last sent message.",
                "title" : "XEP-0308: Last Message Correction",
@@ -241,6 +471,50 @@
       },
       "presence" : {
          "properties" : {
+            "caps" : {
+               "properties" : {
+                  "ext" : {
+                     "type" : "string",
+                     "xml" : {
+                        "attribute" : true
+                     }
+                  },
+                  "hash" : {
+                     "type" : "string",
+                     "xml" : {
+                        "attribute" : true
+                     }
+                  },
+                  "node" : {
+                     "type" : "string",
+                     "xml" : {
+                        "attribute" : true
+                     }
+                  },
+                  "ver" : {
+                     "type" : "string",
+                     "xml" : {
+                        "attribute" : true
+                     }
+                  }
+               },
+               "title" : "XEP-0115: Entity Capabilities",
+               "type" : "object",
+               "xml" : {
+                  "name" : "c",
+                  "namespace" : "http://jabber.org/protocol/caps"
+               }
+            },
+            "idle_since" : {
+               "format" : "date-time",
+               "title" : "XEP-0319: Last User Interaction in Presence",
+               "type" : "string",
+               "xml" : {
+                  "name" : "idle",
+                  "namespace" : "urn:xmpp:idle:1",
+                  "x_single_attribute" : "since"
+               }
+            },
             "priority" : {
                "description" : "Presence priority",
                "maximum" : 127,
@@ -260,6 +534,19 @@
             "status" : {
                "description" : "Textual status message.",
                "type" : "string"
+            },
+            "vcard_update" : {
+               "properties" : {
+                  "photo" : {
+                     "type" : "string"
+                  }
+               },
+               "title" : "XEP-0153: vCard-Based Avatars",
+               "type" : "object",
+               "xml" : {
+                  "name" : "x",
+                  "namespace" : "vcard-temp:x:update"
+               }
             }
          },
          "type" : "object",