main
rs 302 lines 10.7 KB
Raw
1 //! Tool parameter types.
2 //!
3 //! Every field carries a doc comment, because rustdoc comments become the
4 //! JSON Schema `description` a model reads when deciding how to call a
5 //! tool, and a parameter without one is a guess waiting to happen. The
6 //! contract test in [`crate::server`] fails the build if any is missing.
7
8 use serde::Deserialize;
9
10 #[derive(Debug, Clone, Default, Deserialize, schemars::JsonSchema)]
11 pub struct AppListRequest {
12 /// Only return the app with this bundle identifier, e.g.
13 /// xyz.smbcloud.mailx. Omit to list every app on the account.
14 #[serde(default)]
15 pub bundle_id: Option<String>,
16 }
17
18 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
19 pub struct AppIdRequest {
20 /// App Store Connect app id, the numeric string from the app's URL in
21 /// App Store Connect. Not the bundle identifier; use app_list to
22 /// translate one into the other.
23 pub app_id: String,
24 }
25
26 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
27 pub struct AppUpdateRequest {
28 /// App Store Connect app id.
29 pub app_id: String,
30 /// BCP-47 locale to make the app's primary language, e.g. en-US.
31 #[serde(default)]
32 pub primary_locale: Option<String>,
33 /// Content rights declaration, e.g. DOES_NOT_USE_THIRD_PARTY_CONTENT
34 /// or USES_THIRD_PARTY_CONTENT.
35 #[serde(default)]
36 pub content_rights_declaration: Option<String>,
37 }
38
39 #[derive(Debug, Clone, Default, Deserialize, schemars::JsonSchema)]
40 pub struct BundleIdListRequest {
41 /// Only return the bundle ID matching this identifier exactly. Omit to
42 /// list every registered identifier.
43 #[serde(default)]
44 pub identifier: Option<String>,
45 }
46
47 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
48 pub struct BundleIdCreateRequest {
49 /// The reverse-DNS identifier to register, e.g. xyz.smbcloud.mailx.
50 pub identifier: String,
51 /// Human-readable name shown in the developer portal.
52 pub name: String,
53 /// Platform namespace: ios, mac_os, or universal. visionOS apps
54 /// register as ios, because visionOS shares the iOS namespace.
55 pub platform: String,
56 }
57
58 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
59 pub struct AppStoreVersionListRequest {
60 /// App Store Connect app id whose versions to list.
61 pub app_id: String,
62 /// Only return versions for this platform: ios, mac_os, tv_os, or
63 /// vision_os. Omit to list every platform's versions.
64 #[serde(default)]
65 pub platform: Option<String>,
66 }
67
68 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
69 pub struct BuildListRequest {
70 /// App Store Connect app id whose builds to list.
71 pub app_id: String,
72 /// Only return builds with this build number (CFBundleVersion), e.g.
73 /// 42. Not the marketing version; use pre_release_version for that.
74 #[serde(default)]
75 pub version: Option<String>,
76 /// Only return builds under this marketing version
77 /// (CFBundleShortVersionString), e.g. 1.1.0.
78 #[serde(default)]
79 pub pre_release_version: Option<String>,
80 /// Only return builds in this processing state: PROCESSING, FAILED,
81 /// INVALID, or VALID.
82 #[serde(default)]
83 pub processing_state: Option<String>,
84 }
85
86 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
87 pub struct IdRequest {
88 /// App Store Connect resource id.
89 pub id: String,
90 }
91
92 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
93 pub struct AppStoreVersionCreateRequest {
94 /// App Store Connect app id to add the version to.
95 pub app_id: String,
96 /// Platform for this version: ios, mac_os, tv_os, or vision_os. Adding
97 /// a platform to an existing app means creating a version for it here.
98 pub platform: String,
99 /// Marketing version string, e.g. 1.2.0.
100 pub version_string: String,
101 /// Copyright line, e.g. "2026 PT Sigit Mitra Bangun". Optional.
102 #[serde(default)]
103 pub copyright: Option<String>,
104 }
105
106 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
107 pub struct SetBuildRequest {
108 /// App Store Version id to attach the build to.
109 pub version_id: String,
110 /// Build id to attach. Use build_list to find one for the app.
111 pub build_id: String,
112 }
113
114 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
115 pub struct AppInfoLocalizationListRequest {
116 /// AppInfo id whose localizations to list. Use app_info_list to find
117 /// the AppInfo for an app.
118 pub app_info_id: String,
119 }
120
121 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
122 pub struct AppInfoLocalizationCreateRequest {
123 /// AppInfo id to add the localization to.
124 pub app_info_id: String,
125 /// BCP-47 locale, e.g. sv-SE or id-ID.
126 pub locale: String,
127 /// Localized app name shown on the product page.
128 pub name: String,
129 /// Localized subtitle, up to 30 characters.
130 #[serde(default)]
131 pub subtitle: Option<String>,
132 /// Localized privacy policy URL.
133 #[serde(default)]
134 pub privacy_policy_url: Option<String>,
135 }
136
137 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
138 pub struct AppInfoLocalizationUpdateRequest {
139 /// AppInfoLocalization id to update.
140 pub id: String,
141 /// New localized app name. Omit to leave unchanged.
142 #[serde(default)]
143 pub name: Option<String>,
144 /// New localized subtitle. Omit to leave unchanged.
145 #[serde(default)]
146 pub subtitle: Option<String>,
147 /// New privacy policy URL. Omit to leave unchanged.
148 #[serde(default)]
149 pub privacy_policy_url: Option<String>,
150 }
151
152 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
153 pub struct VersionLocalizationListRequest {
154 /// App Store Version id whose localizations to list.
155 pub version_id: String,
156 }
157
158 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
159 pub struct VersionLocalizationCreateRequest {
160 /// App Store Version id to add the localization to.
161 pub version_id: String,
162 /// BCP-47 locale, e.g. sv-SE or id-ID.
163 pub locale: String,
164 /// Long description shown on the product page, up to 4000 characters.
165 #[serde(default)]
166 pub description: Option<String>,
167 /// Comma-separated keyword field, up to 100 characters. Apple indexes
168 /// it for search and never shows it.
169 #[serde(default)]
170 pub keywords: Option<String>,
171 /// Marketing URL.
172 #[serde(default)]
173 pub marketing_url: Option<String>,
174 /// Promotional text, up to 170 characters. Editable without a new
175 /// build, unlike the description.
176 #[serde(default)]
177 pub promotional_text: Option<String>,
178 /// Support URL.
179 #[serde(default)]
180 pub support_url: Option<String>,
181 /// Release notes for this version.
182 #[serde(default)]
183 pub whats_new: Option<String>,
184 }
185
186 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
187 pub struct VersionLocalizationUpdateRequest {
188 /// AppStoreVersionLocalization id to update.
189 pub id: String,
190 /// New description. Omit to leave unchanged.
191 #[serde(default)]
192 pub description: Option<String>,
193 /// New keyword field. Omit to leave unchanged.
194 #[serde(default)]
195 pub keywords: Option<String>,
196 /// New marketing URL. Omit to leave unchanged.
197 #[serde(default)]
198 pub marketing_url: Option<String>,
199 /// New promotional text. Omit to leave unchanged.
200 #[serde(default)]
201 pub promotional_text: Option<String>,
202 /// New support URL. Omit to leave unchanged.
203 #[serde(default)]
204 pub support_url: Option<String>,
205 /// New release notes. Omit to leave unchanged.
206 #[serde(default)]
207 pub whats_new: Option<String>,
208 }
209
210 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
211 pub struct ScreenshotSetListRequest {
212 /// AppStoreVersionLocalization id whose screenshot sets to list.
213 pub localization_id: String,
214 }
215
216 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
217 pub struct ScreenshotSetCreateRequest {
218 /// AppStoreVersionLocalization id to create the set under.
219 pub localization_id: String,
220 /// Device class for this set, e.g. APP_IPHONE_67, APP_IPAD_PRO_129,
221 /// APP_APPLE_VISION_PRO, or APP_DESKTOP.
222 pub display_type: String,
223 }
224
225 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
226 pub struct ScreenshotListRequest {
227 /// AppScreenshotSet id whose screenshots to list.
228 pub screenshot_set_id: String,
229 }
230
231 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
232 pub struct ScreenshotUploadRequest {
233 /// AppScreenshotSet id to upload into.
234 pub screenshot_set_id: String,
235 /// Path to the image file on this machine. Read from disk by the
236 /// server, so it must be a path this process can open.
237 pub file_path: String,
238 }
239
240 #[derive(Debug, Clone, Default, Deserialize, schemars::JsonSchema)]
241 pub struct CertificateListRequest {
242 /// Only list certificates of this type. One of development,
243 /// distribution, mac_app_distribution, mac_installer_distribution,
244 /// developer_id_application. Omit to list every type.
245 #[serde(default)]
246 pub certificate_type: Option<String>,
247 }
248
249 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
250 pub struct CertificateCreateRequest {
251 /// The kind of certificate to issue. One of development,
252 /// distribution, mac_app_distribution, mac_installer_distribution,
253 /// developer_id_application.
254 pub certificate_type: String,
255 /// Directory to write the private key and issued certificate into. It
256 /// is created if missing; the key is written with owner-only
257 /// permissions.
258 pub out_dir: String,
259 /// Subject common name for the signing request. Apple replaces the
260 /// subject on the certificate it issues, so this only labels the
261 /// request itself. Defaults to smbcloud-ascapi.
262 #[serde(default)]
263 pub common_name: Option<String>,
264 }
265
266 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
267 pub struct BetaGroupListRequest {
268 /// App Store Connect app id whose beta groups to list.
269 pub app_id: String,
270 }
271
272 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
273 pub struct BetaAppReviewDetailGetRequest {
274 /// App Store Connect app id whose beta app review contact detail to
275 /// retrieve.
276 pub app_id: String,
277 }
278
279 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
280 pub struct PlayPackageRequest {
281 /// Android application id, e.g. xyz.smbcloud.SiGit.
282 pub package_name: String,
283 }
284
285 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
286 pub struct PlayImagesListRequest {
287 /// Android application id, e.g. xyz.smbcloud.SiGit.
288 pub package_name: String,
289 /// Listing locale, e.g. en-US or id.
290 pub locale: String,
291 /// Image bucket: phone-screenshots, seven-inch-screenshots,
292 /// ten-inch-screenshots, feature-graphic or icon.
293 pub image_type: String,
294 }
295
296 #[derive(Debug, Clone, Deserialize, schemars::JsonSchema)]
297 pub struct PlayTrackGetRequest {
298 /// Android application id, e.g. xyz.smbcloud.SiGit.
299 pub package_name: String,
300 /// Track name: internal, alpha, beta or production.
301 pub track: String,
302 }