diff options
Diffstat (limited to 'LibMatrix/EventTypes/Spec/State/JoinRulesEventData.cs')
-rw-r--r-- | LibMatrix/EventTypes/Spec/State/JoinRulesEventData.cs | 30 |
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; } + } +} |