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