aws_sdk_devicefarm/operation/create_upload/_create_upload_input.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>Represents a request to the create upload operation.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct CreateUploadInput {
7 /// <p>The ARN of the project for the upload.</p>
8 pub project_arn: ::std::option::Option<::std::string::String>,
9 /// <p>The upload's file name. The name should not contain any forward slashes (<code>/</code>). If you are uploading an iOS app, the file name must end with the <code>.ipa</code> extension. If you are uploading an Android app, the file name must end with the <code>.apk</code> extension. For all others, the file name must end with the <code>.zip</code> file extension.</p>
10 pub name: ::std::option::Option<::std::string::String>,
11 /// <p>The upload's upload type.</p>
12 /// <p>Must be one of the following values:</p>
13 /// <ul>
14 /// <li>
15 /// <p>ANDROID_APP</p></li>
16 /// <li>
17 /// <p>IOS_APP</p></li>
18 /// <li>
19 /// <p>WEB_APP</p></li>
20 /// <li>
21 /// <p>EXTERNAL_DATA</p></li>
22 /// <li>
23 /// <p>APPIUM_JAVA_JUNIT_TEST_PACKAGE</p></li>
24 /// <li>
25 /// <p>APPIUM_JAVA_TESTNG_TEST_PACKAGE</p></li>
26 /// <li>
27 /// <p>APPIUM_PYTHON_TEST_PACKAGE</p></li>
28 /// <li>
29 /// <p>APPIUM_NODE_TEST_PACKAGE</p></li>
30 /// <li>
31 /// <p>APPIUM_RUBY_TEST_PACKAGE</p></li>
32 /// <li>
33 /// <p>APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE</p></li>
34 /// <li>
35 /// <p>APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE</p></li>
36 /// <li>
37 /// <p>APPIUM_WEB_PYTHON_TEST_PACKAGE</p></li>
38 /// <li>
39 /// <p>APPIUM_WEB_NODE_TEST_PACKAGE</p></li>
40 /// <li>
41 /// <p>APPIUM_WEB_RUBY_TEST_PACKAGE</p></li>
42 /// <li>
43 /// <p>INSTRUMENTATION_TEST_PACKAGE</p></li>
44 /// <li>
45 /// <p>XCTEST_TEST_PACKAGE</p></li>
46 /// <li>
47 /// <p>XCTEST_UI_TEST_PACKAGE</p></li>
48 /// <li>
49 /// <p>APPIUM_JAVA_JUNIT_TEST_SPEC</p></li>
50 /// <li>
51 /// <p>APPIUM_JAVA_TESTNG_TEST_SPEC</p></li>
52 /// <li>
53 /// <p>APPIUM_PYTHON_TEST_SPEC</p></li>
54 /// <li>
55 /// <p>APPIUM_NODE_TEST_SPEC</p></li>
56 /// <li>
57 /// <p>APPIUM_RUBY_TEST_SPEC</p></li>
58 /// <li>
59 /// <p>APPIUM_WEB_JAVA_JUNIT_TEST_SPEC</p></li>
60 /// <li>
61 /// <p>APPIUM_WEB_JAVA_TESTNG_TEST_SPEC</p></li>
62 /// <li>
63 /// <p>APPIUM_WEB_PYTHON_TEST_SPEC</p></li>
64 /// <li>
65 /// <p>APPIUM_WEB_NODE_TEST_SPEC</p></li>
66 /// <li>
67 /// <p>APPIUM_WEB_RUBY_TEST_SPEC</p></li>
68 /// <li>
69 /// <p>INSTRUMENTATION_TEST_SPEC</p></li>
70 /// <li>
71 /// <p>XCTEST_UI_TEST_SPEC</p></li>
72 /// </ul>
73 /// <p>If you call <code>CreateUpload</code> with <code>WEB_APP</code> specified, AWS Device Farm throws an <code>ArgumentException</code> error.</p>
74 pub r#type: ::std::option::Option<crate::types::UploadType>,
75 /// <p>The upload's content type (for example, <code>application/octet-stream</code>).</p>
76 pub content_type: ::std::option::Option<::std::string::String>,
77}
78impl CreateUploadInput {
79 /// <p>The ARN of the project for the upload.</p>
80 pub fn project_arn(&self) -> ::std::option::Option<&str> {
81 self.project_arn.as_deref()
82 }
83 /// <p>The upload's file name. The name should not contain any forward slashes (<code>/</code>). If you are uploading an iOS app, the file name must end with the <code>.ipa</code> extension. If you are uploading an Android app, the file name must end with the <code>.apk</code> extension. For all others, the file name must end with the <code>.zip</code> file extension.</p>
84 pub fn name(&self) -> ::std::option::Option<&str> {
85 self.name.as_deref()
86 }
87 /// <p>The upload's upload type.</p>
88 /// <p>Must be one of the following values:</p>
89 /// <ul>
90 /// <li>
91 /// <p>ANDROID_APP</p></li>
92 /// <li>
93 /// <p>IOS_APP</p></li>
94 /// <li>
95 /// <p>WEB_APP</p></li>
96 /// <li>
97 /// <p>EXTERNAL_DATA</p></li>
98 /// <li>
99 /// <p>APPIUM_JAVA_JUNIT_TEST_PACKAGE</p></li>
100 /// <li>
101 /// <p>APPIUM_JAVA_TESTNG_TEST_PACKAGE</p></li>
102 /// <li>
103 /// <p>APPIUM_PYTHON_TEST_PACKAGE</p></li>
104 /// <li>
105 /// <p>APPIUM_NODE_TEST_PACKAGE</p></li>
106 /// <li>
107 /// <p>APPIUM_RUBY_TEST_PACKAGE</p></li>
108 /// <li>
109 /// <p>APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE</p></li>
110 /// <li>
111 /// <p>APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE</p></li>
112 /// <li>
113 /// <p>APPIUM_WEB_PYTHON_TEST_PACKAGE</p></li>
114 /// <li>
115 /// <p>APPIUM_WEB_NODE_TEST_PACKAGE</p></li>
116 /// <li>
117 /// <p>APPIUM_WEB_RUBY_TEST_PACKAGE</p></li>
118 /// <li>
119 /// <p>INSTRUMENTATION_TEST_PACKAGE</p></li>
120 /// <li>
121 /// <p>XCTEST_TEST_PACKAGE</p></li>
122 /// <li>
123 /// <p>XCTEST_UI_TEST_PACKAGE</p></li>
124 /// <li>
125 /// <p>APPIUM_JAVA_JUNIT_TEST_SPEC</p></li>
126 /// <li>
127 /// <p>APPIUM_JAVA_TESTNG_TEST_SPEC</p></li>
128 /// <li>
129 /// <p>APPIUM_PYTHON_TEST_SPEC</p></li>
130 /// <li>
131 /// <p>APPIUM_NODE_TEST_SPEC</p></li>
132 /// <li>
133 /// <p>APPIUM_RUBY_TEST_SPEC</p></li>
134 /// <li>
135 /// <p>APPIUM_WEB_JAVA_JUNIT_TEST_SPEC</p></li>
136 /// <li>
137 /// <p>APPIUM_WEB_JAVA_TESTNG_TEST_SPEC</p></li>
138 /// <li>
139 /// <p>APPIUM_WEB_PYTHON_TEST_SPEC</p></li>
140 /// <li>
141 /// <p>APPIUM_WEB_NODE_TEST_SPEC</p></li>
142 /// <li>
143 /// <p>APPIUM_WEB_RUBY_TEST_SPEC</p></li>
144 /// <li>
145 /// <p>INSTRUMENTATION_TEST_SPEC</p></li>
146 /// <li>
147 /// <p>XCTEST_UI_TEST_SPEC</p></li>
148 /// </ul>
149 /// <p>If you call <code>CreateUpload</code> with <code>WEB_APP</code> specified, AWS Device Farm throws an <code>ArgumentException</code> error.</p>
150 pub fn r#type(&self) -> ::std::option::Option<&crate::types::UploadType> {
151 self.r#type.as_ref()
152 }
153 /// <p>The upload's content type (for example, <code>application/octet-stream</code>).</p>
154 pub fn content_type(&self) -> ::std::option::Option<&str> {
155 self.content_type.as_deref()
156 }
157}
158impl CreateUploadInput {
159 /// Creates a new builder-style object to manufacture [`CreateUploadInput`](crate::operation::create_upload::CreateUploadInput).
160 pub fn builder() -> crate::operation::create_upload::builders::CreateUploadInputBuilder {
161 crate::operation::create_upload::builders::CreateUploadInputBuilder::default()
162 }
163}
164
165/// A builder for [`CreateUploadInput`](crate::operation::create_upload::CreateUploadInput).
166#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
167#[non_exhaustive]
168pub struct CreateUploadInputBuilder {
169 pub(crate) project_arn: ::std::option::Option<::std::string::String>,
170 pub(crate) name: ::std::option::Option<::std::string::String>,
171 pub(crate) r#type: ::std::option::Option<crate::types::UploadType>,
172 pub(crate) content_type: ::std::option::Option<::std::string::String>,
173}
174impl CreateUploadInputBuilder {
175 /// <p>The ARN of the project for the upload.</p>
176 /// This field is required.
177 pub fn project_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
178 self.project_arn = ::std::option::Option::Some(input.into());
179 self
180 }
181 /// <p>The ARN of the project for the upload.</p>
182 pub fn set_project_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
183 self.project_arn = input;
184 self
185 }
186 /// <p>The ARN of the project for the upload.</p>
187 pub fn get_project_arn(&self) -> &::std::option::Option<::std::string::String> {
188 &self.project_arn
189 }
190 /// <p>The upload's file name. The name should not contain any forward slashes (<code>/</code>). If you are uploading an iOS app, the file name must end with the <code>.ipa</code> extension. If you are uploading an Android app, the file name must end with the <code>.apk</code> extension. For all others, the file name must end with the <code>.zip</code> file extension.</p>
191 /// This field is required.
192 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
193 self.name = ::std::option::Option::Some(input.into());
194 self
195 }
196 /// <p>The upload's file name. The name should not contain any forward slashes (<code>/</code>). If you are uploading an iOS app, the file name must end with the <code>.ipa</code> extension. If you are uploading an Android app, the file name must end with the <code>.apk</code> extension. For all others, the file name must end with the <code>.zip</code> file extension.</p>
197 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
198 self.name = input;
199 self
200 }
201 /// <p>The upload's file name. The name should not contain any forward slashes (<code>/</code>). If you are uploading an iOS app, the file name must end with the <code>.ipa</code> extension. If you are uploading an Android app, the file name must end with the <code>.apk</code> extension. For all others, the file name must end with the <code>.zip</code> file extension.</p>
202 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
203 &self.name
204 }
205 /// <p>The upload's upload type.</p>
206 /// <p>Must be one of the following values:</p>
207 /// <ul>
208 /// <li>
209 /// <p>ANDROID_APP</p></li>
210 /// <li>
211 /// <p>IOS_APP</p></li>
212 /// <li>
213 /// <p>WEB_APP</p></li>
214 /// <li>
215 /// <p>EXTERNAL_DATA</p></li>
216 /// <li>
217 /// <p>APPIUM_JAVA_JUNIT_TEST_PACKAGE</p></li>
218 /// <li>
219 /// <p>APPIUM_JAVA_TESTNG_TEST_PACKAGE</p></li>
220 /// <li>
221 /// <p>APPIUM_PYTHON_TEST_PACKAGE</p></li>
222 /// <li>
223 /// <p>APPIUM_NODE_TEST_PACKAGE</p></li>
224 /// <li>
225 /// <p>APPIUM_RUBY_TEST_PACKAGE</p></li>
226 /// <li>
227 /// <p>APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE</p></li>
228 /// <li>
229 /// <p>APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE</p></li>
230 /// <li>
231 /// <p>APPIUM_WEB_PYTHON_TEST_PACKAGE</p></li>
232 /// <li>
233 /// <p>APPIUM_WEB_NODE_TEST_PACKAGE</p></li>
234 /// <li>
235 /// <p>APPIUM_WEB_RUBY_TEST_PACKAGE</p></li>
236 /// <li>
237 /// <p>INSTRUMENTATION_TEST_PACKAGE</p></li>
238 /// <li>
239 /// <p>XCTEST_TEST_PACKAGE</p></li>
240 /// <li>
241 /// <p>XCTEST_UI_TEST_PACKAGE</p></li>
242 /// <li>
243 /// <p>APPIUM_JAVA_JUNIT_TEST_SPEC</p></li>
244 /// <li>
245 /// <p>APPIUM_JAVA_TESTNG_TEST_SPEC</p></li>
246 /// <li>
247 /// <p>APPIUM_PYTHON_TEST_SPEC</p></li>
248 /// <li>
249 /// <p>APPIUM_NODE_TEST_SPEC</p></li>
250 /// <li>
251 /// <p>APPIUM_RUBY_TEST_SPEC</p></li>
252 /// <li>
253 /// <p>APPIUM_WEB_JAVA_JUNIT_TEST_SPEC</p></li>
254 /// <li>
255 /// <p>APPIUM_WEB_JAVA_TESTNG_TEST_SPEC</p></li>
256 /// <li>
257 /// <p>APPIUM_WEB_PYTHON_TEST_SPEC</p></li>
258 /// <li>
259 /// <p>APPIUM_WEB_NODE_TEST_SPEC</p></li>
260 /// <li>
261 /// <p>APPIUM_WEB_RUBY_TEST_SPEC</p></li>
262 /// <li>
263 /// <p>INSTRUMENTATION_TEST_SPEC</p></li>
264 /// <li>
265 /// <p>XCTEST_UI_TEST_SPEC</p></li>
266 /// </ul>
267 /// <p>If you call <code>CreateUpload</code> with <code>WEB_APP</code> specified, AWS Device Farm throws an <code>ArgumentException</code> error.</p>
268 /// This field is required.
269 pub fn r#type(mut self, input: crate::types::UploadType) -> Self {
270 self.r#type = ::std::option::Option::Some(input);
271 self
272 }
273 /// <p>The upload's upload type.</p>
274 /// <p>Must be one of the following values:</p>
275 /// <ul>
276 /// <li>
277 /// <p>ANDROID_APP</p></li>
278 /// <li>
279 /// <p>IOS_APP</p></li>
280 /// <li>
281 /// <p>WEB_APP</p></li>
282 /// <li>
283 /// <p>EXTERNAL_DATA</p></li>
284 /// <li>
285 /// <p>APPIUM_JAVA_JUNIT_TEST_PACKAGE</p></li>
286 /// <li>
287 /// <p>APPIUM_JAVA_TESTNG_TEST_PACKAGE</p></li>
288 /// <li>
289 /// <p>APPIUM_PYTHON_TEST_PACKAGE</p></li>
290 /// <li>
291 /// <p>APPIUM_NODE_TEST_PACKAGE</p></li>
292 /// <li>
293 /// <p>APPIUM_RUBY_TEST_PACKAGE</p></li>
294 /// <li>
295 /// <p>APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE</p></li>
296 /// <li>
297 /// <p>APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE</p></li>
298 /// <li>
299 /// <p>APPIUM_WEB_PYTHON_TEST_PACKAGE</p></li>
300 /// <li>
301 /// <p>APPIUM_WEB_NODE_TEST_PACKAGE</p></li>
302 /// <li>
303 /// <p>APPIUM_WEB_RUBY_TEST_PACKAGE</p></li>
304 /// <li>
305 /// <p>INSTRUMENTATION_TEST_PACKAGE</p></li>
306 /// <li>
307 /// <p>XCTEST_TEST_PACKAGE</p></li>
308 /// <li>
309 /// <p>XCTEST_UI_TEST_PACKAGE</p></li>
310 /// <li>
311 /// <p>APPIUM_JAVA_JUNIT_TEST_SPEC</p></li>
312 /// <li>
313 /// <p>APPIUM_JAVA_TESTNG_TEST_SPEC</p></li>
314 /// <li>
315 /// <p>APPIUM_PYTHON_TEST_SPEC</p></li>
316 /// <li>
317 /// <p>APPIUM_NODE_TEST_SPEC</p></li>
318 /// <li>
319 /// <p>APPIUM_RUBY_TEST_SPEC</p></li>
320 /// <li>
321 /// <p>APPIUM_WEB_JAVA_JUNIT_TEST_SPEC</p></li>
322 /// <li>
323 /// <p>APPIUM_WEB_JAVA_TESTNG_TEST_SPEC</p></li>
324 /// <li>
325 /// <p>APPIUM_WEB_PYTHON_TEST_SPEC</p></li>
326 /// <li>
327 /// <p>APPIUM_WEB_NODE_TEST_SPEC</p></li>
328 /// <li>
329 /// <p>APPIUM_WEB_RUBY_TEST_SPEC</p></li>
330 /// <li>
331 /// <p>INSTRUMENTATION_TEST_SPEC</p></li>
332 /// <li>
333 /// <p>XCTEST_UI_TEST_SPEC</p></li>
334 /// </ul>
335 /// <p>If you call <code>CreateUpload</code> with <code>WEB_APP</code> specified, AWS Device Farm throws an <code>ArgumentException</code> error.</p>
336 pub fn set_type(mut self, input: ::std::option::Option<crate::types::UploadType>) -> Self {
337 self.r#type = input;
338 self
339 }
340 /// <p>The upload's upload type.</p>
341 /// <p>Must be one of the following values:</p>
342 /// <ul>
343 /// <li>
344 /// <p>ANDROID_APP</p></li>
345 /// <li>
346 /// <p>IOS_APP</p></li>
347 /// <li>
348 /// <p>WEB_APP</p></li>
349 /// <li>
350 /// <p>EXTERNAL_DATA</p></li>
351 /// <li>
352 /// <p>APPIUM_JAVA_JUNIT_TEST_PACKAGE</p></li>
353 /// <li>
354 /// <p>APPIUM_JAVA_TESTNG_TEST_PACKAGE</p></li>
355 /// <li>
356 /// <p>APPIUM_PYTHON_TEST_PACKAGE</p></li>
357 /// <li>
358 /// <p>APPIUM_NODE_TEST_PACKAGE</p></li>
359 /// <li>
360 /// <p>APPIUM_RUBY_TEST_PACKAGE</p></li>
361 /// <li>
362 /// <p>APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE</p></li>
363 /// <li>
364 /// <p>APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE</p></li>
365 /// <li>
366 /// <p>APPIUM_WEB_PYTHON_TEST_PACKAGE</p></li>
367 /// <li>
368 /// <p>APPIUM_WEB_NODE_TEST_PACKAGE</p></li>
369 /// <li>
370 /// <p>APPIUM_WEB_RUBY_TEST_PACKAGE</p></li>
371 /// <li>
372 /// <p>INSTRUMENTATION_TEST_PACKAGE</p></li>
373 /// <li>
374 /// <p>XCTEST_TEST_PACKAGE</p></li>
375 /// <li>
376 /// <p>XCTEST_UI_TEST_PACKAGE</p></li>
377 /// <li>
378 /// <p>APPIUM_JAVA_JUNIT_TEST_SPEC</p></li>
379 /// <li>
380 /// <p>APPIUM_JAVA_TESTNG_TEST_SPEC</p></li>
381 /// <li>
382 /// <p>APPIUM_PYTHON_TEST_SPEC</p></li>
383 /// <li>
384 /// <p>APPIUM_NODE_TEST_SPEC</p></li>
385 /// <li>
386 /// <p>APPIUM_RUBY_TEST_SPEC</p></li>
387 /// <li>
388 /// <p>APPIUM_WEB_JAVA_JUNIT_TEST_SPEC</p></li>
389 /// <li>
390 /// <p>APPIUM_WEB_JAVA_TESTNG_TEST_SPEC</p></li>
391 /// <li>
392 /// <p>APPIUM_WEB_PYTHON_TEST_SPEC</p></li>
393 /// <li>
394 /// <p>APPIUM_WEB_NODE_TEST_SPEC</p></li>
395 /// <li>
396 /// <p>APPIUM_WEB_RUBY_TEST_SPEC</p></li>
397 /// <li>
398 /// <p>INSTRUMENTATION_TEST_SPEC</p></li>
399 /// <li>
400 /// <p>XCTEST_UI_TEST_SPEC</p></li>
401 /// </ul>
402 /// <p>If you call <code>CreateUpload</code> with <code>WEB_APP</code> specified, AWS Device Farm throws an <code>ArgumentException</code> error.</p>
403 pub fn get_type(&self) -> &::std::option::Option<crate::types::UploadType> {
404 &self.r#type
405 }
406 /// <p>The upload's content type (for example, <code>application/octet-stream</code>).</p>
407 pub fn content_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
408 self.content_type = ::std::option::Option::Some(input.into());
409 self
410 }
411 /// <p>The upload's content type (for example, <code>application/octet-stream</code>).</p>
412 pub fn set_content_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
413 self.content_type = input;
414 self
415 }
416 /// <p>The upload's content type (for example, <code>application/octet-stream</code>).</p>
417 pub fn get_content_type(&self) -> &::std::option::Option<::std::string::String> {
418 &self.content_type
419 }
420 /// Consumes the builder and constructs a [`CreateUploadInput`](crate::operation::create_upload::CreateUploadInput).
421 pub fn build(
422 self,
423 ) -> ::std::result::Result<crate::operation::create_upload::CreateUploadInput, ::aws_smithy_types::error::operation::BuildError> {
424 ::std::result::Result::Ok(crate::operation::create_upload::CreateUploadInput {
425 project_arn: self.project_arn,
426 name: self.name,
427 r#type: self.r#type,
428 content_type: self.content_type,
429 })
430 }
431}