social.colibri.community.migrate
Schema Diff
+24 -6
Compatibility Analysis
Backward Compatible
No changes detected.
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"channelMapping": {
5
5
"description": "A single channel's old AT-URI mapped to its new AT-URI.",
6
6
"properties": {
7
7
"new": {
8
8
"format": "at-uri",
9
9
"type": "string"
10
10
},
11
11
"old": {
12
12
"format": "at-uri",
13
13
"type": "string"
14
14
}
15
15
},
16
16
"required": [
17
17
"old",
18
18
"new"
19
19
],
20
20
"type": "object"
21
21
},
22
22
"main": {
23
23
"description": "Migrates a source record into a fresh community, cloning its structure and importing its members. The 'kind' discriminator selects the migration; today only legacy communities are supported, but the endpoint is designed to host future migrations. Provisioning mirrors community.create (managed when no PDS credentials are supplied, bring-your-own otherwise).",
24
+
"errors": [
25
+
{
26
+
"description": "Missing, malformed, or unverifiable service auth.",
27
+
"name": "AuthRequired"
28
+
},
29
+
{
30
+
"description": "The caller lacks the permission this method requires.",
31
+
"name": "Forbidden"
32
+
},
33
+
{
34
+
"description": "A parameter or body field was missing or malformed.",
35
+
"name": "InvalidRequest"
36
+
},
37
+
{
38
+
"description": "The referenced record does not exist.",
39
+
"name": "NotFound"
40
+
},
41
+
{
42
+
"description": "A service outside this AppView failed.",
43
+
"name": "UpstreamFailure"
44
+
}
45
+
],
24
46
"input": {
25
-
"description": "Optional replacement community picture image bytes.",
26
-
"encoding": "*/*"
47
+
"description": "Optional replacement community picture blob, as a `picture` part. Migrated communities have no banner.",
48
+
"encoding": "multipart/form-data"
27
49
},
28
50
"output": {
29
51
"encoding": "application/json",
30
52
"schema": {
31
53
"properties": {
32
54
"channelMap": {
33
55
"description": "Maps each cloned channel from its old AT-URI to its new AT-URI.",
34
56
"items": {
35
57
"ref": "lex:social.colibri.community.migrate#channelMapping",
36
58
"type": "ref"
37
59
},
38
60
"type": "array"
39
61
},
40
62
"community": {
41
63
"format": "at-uri",
42
64
"type": "string"
43
65
},
44
66
"did": {
45
67
"format": "did",
46
68
"type": "string"
47
69
}
48
70
},
49
71
"required": [
50
72
"did",
51
73
"community",
52
74
"channelMap"
53
75
],
54
76
"type": "object"
55
77
}
56
78
},
57
79
"parameters": {
58
80
"properties": {
59
81
"description": {
60
82
"type": "string"
61
83
},
62
84
"identifier": {
63
85
"description": "Bring-your-own DID or handle.",
64
86
"type": "string"
65
87
},
66
88
"kind": {
67
89
"description": "The migration to run. 'legacy-community' migrates a pre-rework community record.",
68
90
"knownValues": [
69
91
"legacy-community"
70
92
],
71
-
"type": "string"
72
-
},
73
-
"mimeType": {
74
-
"description": "MIME type of the picture body, if provided.",
75
93
"type": "string"
76
94
},
77
95
"name": {
78
96
"type": "string"
79
97
},
80
98
"password": {
81
99
"description": "Bring-your-own account password.",
82
100
"type": "string"
83
101
},
84
102
"pds": {
85
103
"description": "Bring-your-own PDS endpoint.",
86
104
"type": "string"
87
105
},
88
106
"requiresApprovalToJoin": {
89
107
"type": "boolean"
90
108
},
91
109
"source": {
92
110
"description": "The record being migrated (e.g. the legacy community).",
93
111
"format": "at-uri",
94
112
"type": "string"
95
113
}
96
114
},
97
115
"required": [
98
116
"kind",
99
117
"source"
100
118
],
101
119
"type": "params"
102
120
},
103
121
"type": "procedure"
104
122
}
105
123
},
106
124
"id": "social.colibri.community.migrate",
107
125
"lexicon": 1
108
126
}