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; }
+ }
+}
|