mod_muc_http_defaults/README.markdown
author Matthew Wild <mwild1@gmail.com>
Sat, 24 Sep 2022 09:26:26 +0100
changeset 5063 5f1120c284c5
parent 4509 e11abf578df5
permissions -rw-r--r--
mod_cloud_notify_extensions: Add note about dependency Noting here because people might not click through to see it on the mod_cloud_notify_encrypted page.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4451
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
---
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
summary: Seed MUC configuration from JSON REST API
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
---
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
# Introduction
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
This module fetches configuration for MUC rooms from an API when rooms
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
are created.
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
# Requirements
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
4452
5879ca1f7853 mod_muc_http_defaults: Remove fancy to be 0.11-compatible
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
    12
Should work with Prosody 0.11.
4451
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
# Configuration
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
`muc_create_api_url`
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
:   URL template for the API endpoint to get settings. `{room.jid}` is
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
    replaced by the address of the room in question.
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
`muc_create_api_auth`
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
:   The value of the Authorization header to authenticate against the
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    22
    API. E.g. `"Bearer /rXU4tkQTYQMgdHfMLH6"`{.lua}
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
4459
89e54247ade6 mod_muc_http_defaults: Add template filters to let you extract room JID parts
Kim Alvefur <zash@zash.se>
parents: 4457
diff changeset
    24
In the URL template variable, the room JID is available as `{room.jid}`,
89e54247ade6 mod_muc_http_defaults: Add template filters to let you extract room JID parts
Kim Alvefur <zash@zash.se>
parents: 4457
diff changeset
    25
which would be turned into `room@muc.host`. To only get the room
89e54247ade6 mod_muc_http_defaults: Add template filters to let you extract room JID parts
Kim Alvefur <zash@zash.se>
parents: 4457
diff changeset
    26
localpart, `{room.jid|jid_node}` can be used, and `{room.jid|jid_host}`
89e54247ade6 mod_muc_http_defaults: Add template filters to let you extract room JID parts
Kim Alvefur <zash@zash.se>
parents: 4457
diff changeset
    27
splits out the `muc.host` part.
89e54247ade6 mod_muc_http_defaults: Add template filters to let you extract room JID parts
Kim Alvefur <zash@zash.se>
parents: 4457
diff changeset
    28
4451
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    29
## Example
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    30
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    31
``` {.lua}
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    32
Component "channels.example.net" "muc"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    33
modules_enabled = { "muc_http_defaults" }
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    34
muc_create_api_url = "https://api.example.net/muc/config?jid={room.jid}"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    35
```
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    36
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    37
# API
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    38
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    39
A RESTful JSON API is used. Any error causes the room to be destroyed.
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    40
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    41
The returned JSON consists of two main parts, the room configuration and
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    42
the affiliations (member list).
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    43
4457
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    44
## Room Configuration
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    45
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    46
The top level `config` field contains a map of properties corresponding
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    47
to the fields in the room configuration dialog, named similarly to the
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    48
[room configuration default][doc:modules:mod_muc#room-configuration-defaults] in
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    49
Prosodys config file.
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    50
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    51
| Property               | Type    | Description                                                               |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    52
|------------------------|---------|---------------------------------------------------------------------------|
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    53
| `name`                 | string  | Name of the chat                                                          |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    54
| `description`          | string  | Longer description of the chat                                            |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    55
| `language`             | string  | Language code                                                             |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    56
| `persistent`           | boolean | Whether the room should keep existing if it becomes empty                 |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    57
| `public`               | boolean | `true` to include in public listing                                       |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    58
| `members_only`         | boolean | Membership or open                                                        |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    59
| `allow_member_invites` | boolean | If members can invite others into members-only rooms                      |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    60
| `public_jids`          | boolean | If everyone or only moderators should see real identities                 |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    61
| `subject`              | string  | In-room subject or topic message                                          |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    62
| `changesubject`        | boolean | If `true` then everyone can change the subject, otherwise only moderators |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    63
| `historylength`        | integer | Number of messages to keep in memory (legacy method)                      |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    64
| `moderated`            | boolean | New participants start without voice privileges if set to `true`          |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    65
| `archiving`            | boolean | Whether [archiving][doc:modules:mod_muc_mam] is enabled                   |
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    66
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    67
## Affiliations
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    68
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    69
The list of members go in `affiliations` which is either an object
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    70
mapping addresses to affiliations (e.g. `{"user@host":"admin"}`{.json}),
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    71
or it can be an array of address, affiliation and optionally a reserved
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    72
nickname (e.g.
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    73
`[{"jid":"user@host","affiliation":"member","nick":"joe"}]`{.json}).
0508822361eb mod_muc_http_defaults: Expand documentation on expected API response
Kim Alvefur <zash@zash.se>
parents: 4456
diff changeset
    74
4451
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    75
## Schema
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    76
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    77
Here's a JSON Schema in YAML format describing the expected JSON
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    78
response data:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    79
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    80
``` {.yaml}
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    81
---
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    82
type: object
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    83
properties:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    84
  config:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    85
    type: object
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    86
    properties:
4509
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    87
      name:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    88
        type: string
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    89
      description:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    90
        type: string
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    91
      language:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    92
        type: string
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    93
      persistent:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    94
        type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    95
      public:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    96
        type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    97
      members_only:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    98
        type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
    99
      allow_member_invites:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   100
        type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   101
      public_jids:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   102
        type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   103
      subject:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   104
        type: string
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   105
      changesubject:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   106
        type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   107
      historylength:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   108
        type: integer
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   109
      moderated:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   110
        type: boolean
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   111
      archiving:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   112
        type: boolean
4451
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   113
  affiliations:
4456
6086fcf20da8 mod_muc_http_defaults: Minor schema tweak
Kim Alvefur <zash@zash.se>
parents: 4452
diff changeset
   114
    oneOf:
4451
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   115
    - type: array
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   116
      items:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   117
        type: object
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   118
        required:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   119
        - jid
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   120
        - affiliation
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   121
        properties:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   122
          jid:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   123
            type: string
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   124
            pattern: ^[^@/]+@[^/]+$
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   125
          affiliation:
4479
017ad6ed96ae mod_muc_http_defaults: Schema corrections
Kim Alvefur <zash@zash.se>
parents: 4459
diff changeset
   126
            $ref: '#/definitions/affiliation'
4509
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   127
          nick:
e11abf578df5 mod_muc_http_defaults/README: Fix schema
Kim Alvefur <zash@zash.se>
parents: 4479
diff changeset
   128
            type: string
4451
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   129
    - type: object
4479
017ad6ed96ae mod_muc_http_defaults: Schema corrections
Kim Alvefur <zash@zash.se>
parents: 4459
diff changeset
   130
      additionalProperties:
017ad6ed96ae mod_muc_http_defaults: Schema corrections
Kim Alvefur <zash@zash.se>
parents: 4459
diff changeset
   131
        $ref: '#/definitions/affiliation'
4451
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   132
definitions:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   133
  affiliation:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   134
    type: string
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   135
    enum:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   136
    - owner
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   137
    - admin
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   138
    - member
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   139
    - none
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   140
    - outcast
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   141
...
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   142
```
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   143
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   144
## Example
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   145
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   146
A basic example with some config settings and a few affiliations:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   147
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   148
``` {.json}
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   149
GET /muc/config?jid=place@channels.example.net
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   150
Accept: application/json
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   151
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   152
HTTP/1.1 200 OK
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   153
Content-Type: application/json
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   154
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   155
{
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   156
   "affiliations" : [
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   157
      {
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   158
         "affiliation" : "owner",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   159
         "jid" : "bosmang@example.net",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   160
         "nick" : "bosmang"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   161
      },
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   162
      {
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   163
         "affiliation" : "admin",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   164
         "jid" : "xo@example.net",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   165
         "nick" : "xo"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   166
      },
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   167
      {
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   168
         "affiliation" : "member",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   169
         "jid" : "john@example.net"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   170
      }
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   171
   ],
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   172
   "config" : {
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   173
      "archiving" : true,
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   174
      "description" : "This is the place",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   175
      "members_only" : true,
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   176
      "moderated" : false,
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   177
      "name" : "The Place",
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   178
      "persistent" : true,
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   179
      "public" : false,
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   180
      "subject" : "Discussions regarding The Place"
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   181
   }
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   182
}
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   183
```
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   184
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   185
To allow the creation without making any changes, letting whoever
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   186
created it be the owner, just return an empty JSON object:
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   187
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   188
    HTTP/1.1 200 OK
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   189
    Content-Type: application/json
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   190
07aa101a1ae7 mod_muc_http_defaults: Get MUC room config from an API
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   191
    {}