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}