about summary refs log tree commit diff
path: root/LibMatrix/EventTypes/Spec/State/JoinRulesEventData.cs
diff options
context:
space:
mode:
Diffstat (limited to 'LibMatrix/EventTypes/Spec/State/JoinRulesEventData.cs')
-rw-r--r--LibMatrix/EventTypes/Spec/State/JoinRulesEventData.cs30
1 files changed, 30 insertions, 0 deletions
diff --git a/LibMatrix/EventTypes/Spec/State/JoinRulesEventData.cs b/LibMatrix/EventTypes/Spec/State/JoinRulesEventData.cs
new file mode 100644
index 0000000..0098bef
--- /dev/null
+++ b/LibMatrix/EventTypes/Spec/State/JoinRulesEventData.cs
@@ -0,0 +1,30 @@
+using System.Text.Json.Serialization;
+using LibMatrix.Helpers;
+using LibMatrix.Interfaces;
+
+namespace LibMatrix.EventTypes.Spec.State;
+
+[MatrixEvent(EventName = "m.room.join_rules")]
+public class JoinRulesEventContent : EventContent {
+    private static string Public = "public";
+    private static string Invite = "invite";
+    private static string Knock = "knock";
+
+    /// <summary>
+    /// one of ["public", "invite", "knock", "restricted", "knock_restricted"]
+    /// "private" is reserved without implementation!
+    /// </summary>
+    [JsonPropertyName("join_rule")]
+    public string JoinRule { get; set; }
+
+    [JsonPropertyName("allow")]
+    public List<AllowEntry> Allow { get; set; }
+
+    public class AllowEntry {
+        [JsonPropertyName("type")]
+        public string Type { get; set; }
+
+        [JsonPropertyName("room_id")]
+        public string RoomId { get; set; }
+    }
+}