com.getorbyt.community.manageMember
Schema Diff
+9 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 2 non-breaking changes.
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.manageMember:input.roleKey" }
- AddedEdge AddedEdge { src: "com.getorbyt.community.manageMember:input", tgt: "com.getorbyt.community.manageMember:input.roleKey", kind: "prop", name: Some("roleKey") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.getorbyt.community.manageMember:input.roleKey" }
Additional Notes
- Non-breaking: AddedEdge { src: "com.getorbyt.community.manageMember:input", tgt: "com.getorbyt.community.manageMember:input.roleKey", kind: "prop", name: Some("roleKey") }
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
+
"description": "roleKey names no role the Community defined.",
18
+
"name": "RoleNotFound"
19
+
},
20
+
{
17
21
"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
22
"name": "AuthenticationRequired"
19
23
}
20
24
],
21
25
"input": {
22
26
"encoding": "application/json",
23
27
"schema": {
24
28
"properties": {
25
29
"action": {
26
30
"knownValues": [
27
31
"setRole",
28
32
"mute",
29
33
"unmute",
30
34
"ban",
31
35
"unban"
32
36
],
33
37
"type": "string"
34
38
},
35
39
"community": {
36
40
"format": "at-uri",
37
41
"type": "string"
38
42
},
39
43
"did": {
40
44
"format": "did",
41
45
"type": "string"
42
46
},
43
47
"durationDays": {
44
48
"description": "For mute and ban: how many days it lasts. Absent means until a moderator lifts it.",
45
49
"maximum": 999,
46
50
"minimum": 1,
47
51
"type": "integer"
48
52
},
49
53
"message": {
50
54
"description": "For mute and ban: what the member is told.",
51
55
"maxLength": 2000,
52
56
"type": "string"
53
57
},
54
58
"role": {
55
59
"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.",
56
60
"knownValues": [
57
61
"owner",
58
62
"moderator",
59
63
"member"
60
64
],
61
65
"type": "string"
66
+
},
67
+
"roleKey": {
68
+
"description": "With role moderator, the Community-defined role to give. Absent gives the built-in moderator role. Someone who is not an administrator may only give a role whose permissions they hold themselves, and never owner.",
69
+
"maxLength": 64,
70
+
"type": "string"
62
71
}
63
72
},
64
73
"required": [
65
74
"community",
66
75
"did",
67
76
"action"
68
77
],
69
78
"type": "object"
70
79
}
71
80
},
72
81
"output": {
73
82
"encoding": "application/json",
74
83
"schema": {
75
84
"properties": {
76
85
"restrictedUntil": {
77
86
"description": "When a timed mute or ban ends.",
78
87
"format": "datetime",
79
88
"type": "string"
80
89
},
81
90
"status": {
82
91
"knownValues": [
83
92
"none",
84
93
"active",
85
94
"muted",
86
95
"banned"
87
96
],
88
97
"type": "string"
89
98
}
90
99
},
91
100
"required": [
92
101
"status"
93
102
],
94
103
"type": "object"
95
104
}
96
105
},
97
106
"type": "procedure"
98
107
}
99
108
},
100
109
"id": "com.getorbyt.community.manageMember",
101
110
"lexicon": 1
102
111
}