com.getorbyt.community.manageMember
Schema Diff
+16 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 6 non-breaking changes.
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.manageMember:input.durationDays" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.manageMember:input.message" }
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.manageMember:output.restrictedUntil" }
- AddedEdge AddedEdge { src: "com.getorbyt.community.manageMember:input", tgt: "com.getorbyt.community.manageMember:input.durationDays", kind: "prop", name: Some("durationDays") }
- AddedEdge AddedEdge { src: "com.getorbyt.community.manageMember:input", tgt: "com.getorbyt.community.manageMember:input.message", kind: "prop", name: Some("message") }
- AddedEdge AddedEdge { src: "com.getorbyt.community.manageMember:output", tgt: "com.getorbyt.community.manageMember:output.restrictedUntil", kind: "prop", name: Some("restrictedUntil") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.getorbyt.community.manageMember:input.durationDays" }AddedVertex { vertex_id: "com.getorbyt.community.manageMember:input.message" }AddedVertex { vertex_id: "com.getorbyt.community.manageMember:output.restrictedUntil" }
Additional Notes
- Non-breaking: AddedEdge { src: "com.getorbyt.community.manageMember:input", tgt: "com.getorbyt.community.manageMember:input.durationDays", kind: "prop", name: Some("durationDays") }
- Non-breaking: AddedEdge { src: "com.getorbyt.community.manageMember:input", tgt: "com.getorbyt.community.manageMember:input.message", kind: "prop", name: Some("message") }
- Non-breaking: AddedEdge { src: "com.getorbyt.community.manageMember:output", tgt: "com.getorbyt.community.manageMember:output.restrictedUntil", kind: "prop", name: Some("restrictedUntil") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "Mute, ban, or re-role a member. Only an administrator may set a role; a moderator may mute and ban, but never a peer or an administrator. Administration is service state and may be granted to an account that does not hold the declaration record; authority over the record itself is never transferable and always belongs to the repository that holds it.",
6
6
"errors": [
7
7
{
8
8
"name": "CommunityNotFound"
9
9
},
10
10
{
11
11
"name": "InsufficientRole"
12
12
},
13
13
{
14
14
"name": "InvalidAction"
15
15
},
16
16
{
17
17
"description": "The request carried no service-auth token, or one this service could not verify for the method. Distinct from InsufficientRole: the caller's identity was never established, so no role decision was made. A client should reauthorize and retry once rather than tell the viewer they lack access.",
18
18
"name": "AuthenticationRequired"
19
19
}
20
20
],
21
21
"input": {
22
22
"encoding": "application/json",
23
23
"schema": {
24
24
"properties": {
25
25
"action": {
26
26
"knownValues": [
27
27
"setRole",
28
28
"mute",
29
29
"unmute",
30
30
"ban",
31
31
"unban"
32
32
],
33
33
"type": "string"
34
34
},
35
35
"community": {
36
36
"format": "at-uri",
37
37
"type": "string"
38
38
},
39
39
"did": {
40
40
"format": "did",
41
41
"type": "string"
42
42
},
43
+
"durationDays": {
44
+
"description": "For mute and ban: how many days it lasts. Absent means until a moderator lifts it.",
45
+
"maximum": 999,
46
+
"minimum": 1,
47
+
"type": "integer"
48
+
},
49
+
"message": {
50
+
"description": "For mute and ban: what the member is told.",
51
+
"maxLength": 2000,
52
+
"type": "string"
53
+
},
43
54
"role": {
44
55
"description": "The role to set. Granting owner grants administration — moderation and role assignment — to another account; it does not move the declaration record, which stays in the repository that holds it, and the holder's own administration can never be revoked.",
45
56
"knownValues": [
46
57
"owner",
47
58
"moderator",
48
59
"member"
49
60
],
50
61
"type": "string"
51
62
}
52
63
},
53
64
"required": [
54
65
"community",
55
66
"did",
56
67
"action"
57
68
],
58
69
"type": "object"
59
70
}
60
71
},
61
72
"output": {
62
73
"encoding": "application/json",
63
74
"schema": {
64
75
"properties": {
76
+
"restrictedUntil": {
77
+
"description": "When a timed mute or ban ends.",
78
+
"format": "datetime",
79
+
"type": "string"
80
+
},
65
81
"status": {
66
82
"knownValues": [
67
83
"none",
68
84
"active",
69
85
"muted",
70
86
"banned"
71
87
],
72
88
"type": "string"
73
89
}
74
90
},
75
91
"required": [
76
92
"status"
77
93
],
78
94
"type": "object"
79
95
}
80
96
},
81
97
"type": "procedure"
82
98
}
83
99
},
84
100
"id": "com.getorbyt.community.manageMember",
85
101
"lexicon": 1
86
102
}