1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/devicefarm/DeviceFarm_EXPORTS.h>
8 #include <aws/devicefarm/DeviceFarmRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/devicefarm/model/CreateRemoteAccessSessionConfiguration.h>
11 #include <aws/devicefarm/model/InteractionMode.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace DeviceFarm
17 {
18 namespace Model
19 {
20 
21   /**
22    * <p>Creates and submits a request to start a remote access session.</p><p><h3>See
23    * Also:</h3>   <a
24    * href="http://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateRemoteAccessSessionRequest">AWS
25    * API Reference</a></p>
26    */
27   class AWS_DEVICEFARM_API CreateRemoteAccessSessionRequest : public DeviceFarmRequest
28   {
29   public:
30     CreateRemoteAccessSessionRequest();
31 
32     // Service request name is the Operation name which will send this request out,
33     // each operation should has unique request name, so that we can get operation's name from this request.
34     // Note: this is not true for response, multiple operations may have the same response name,
35     // so we can not get operation's name from response.
GetServiceRequestName()36     inline virtual const char* GetServiceRequestName() const override { return "CreateRemoteAccessSession"; }
37 
38     Aws::String SerializePayload() const override;
39 
40     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
41 
42 
43     /**
44      * <p>The Amazon Resource Name (ARN) of the project for which you want to create a
45      * remote access session.</p>
46      */
GetProjectArn()47     inline const Aws::String& GetProjectArn() const{ return m_projectArn; }
48 
49     /**
50      * <p>The Amazon Resource Name (ARN) of the project for which you want to create a
51      * remote access session.</p>
52      */
ProjectArnHasBeenSet()53     inline bool ProjectArnHasBeenSet() const { return m_projectArnHasBeenSet; }
54 
55     /**
56      * <p>The Amazon Resource Name (ARN) of the project for which you want to create a
57      * remote access session.</p>
58      */
SetProjectArn(const Aws::String & value)59     inline void SetProjectArn(const Aws::String& value) { m_projectArnHasBeenSet = true; m_projectArn = value; }
60 
61     /**
62      * <p>The Amazon Resource Name (ARN) of the project for which you want to create a
63      * remote access session.</p>
64      */
SetProjectArn(Aws::String && value)65     inline void SetProjectArn(Aws::String&& value) { m_projectArnHasBeenSet = true; m_projectArn = std::move(value); }
66 
67     /**
68      * <p>The Amazon Resource Name (ARN) of the project for which you want to create a
69      * remote access session.</p>
70      */
SetProjectArn(const char * value)71     inline void SetProjectArn(const char* value) { m_projectArnHasBeenSet = true; m_projectArn.assign(value); }
72 
73     /**
74      * <p>The Amazon Resource Name (ARN) of the project for which you want to create a
75      * remote access session.</p>
76      */
WithProjectArn(const Aws::String & value)77     inline CreateRemoteAccessSessionRequest& WithProjectArn(const Aws::String& value) { SetProjectArn(value); return *this;}
78 
79     /**
80      * <p>The Amazon Resource Name (ARN) of the project for which you want to create a
81      * remote access session.</p>
82      */
WithProjectArn(Aws::String && value)83     inline CreateRemoteAccessSessionRequest& WithProjectArn(Aws::String&& value) { SetProjectArn(std::move(value)); return *this;}
84 
85     /**
86      * <p>The Amazon Resource Name (ARN) of the project for which you want to create a
87      * remote access session.</p>
88      */
WithProjectArn(const char * value)89     inline CreateRemoteAccessSessionRequest& WithProjectArn(const char* value) { SetProjectArn(value); return *this;}
90 
91 
92     /**
93      * <p>The ARN of the device for which you want to create a remote access
94      * session.</p>
95      */
GetDeviceArn()96     inline const Aws::String& GetDeviceArn() const{ return m_deviceArn; }
97 
98     /**
99      * <p>The ARN of the device for which you want to create a remote access
100      * session.</p>
101      */
DeviceArnHasBeenSet()102     inline bool DeviceArnHasBeenSet() const { return m_deviceArnHasBeenSet; }
103 
104     /**
105      * <p>The ARN of the device for which you want to create a remote access
106      * session.</p>
107      */
SetDeviceArn(const Aws::String & value)108     inline void SetDeviceArn(const Aws::String& value) { m_deviceArnHasBeenSet = true; m_deviceArn = value; }
109 
110     /**
111      * <p>The ARN of the device for which you want to create a remote access
112      * session.</p>
113      */
SetDeviceArn(Aws::String && value)114     inline void SetDeviceArn(Aws::String&& value) { m_deviceArnHasBeenSet = true; m_deviceArn = std::move(value); }
115 
116     /**
117      * <p>The ARN of the device for which you want to create a remote access
118      * session.</p>
119      */
SetDeviceArn(const char * value)120     inline void SetDeviceArn(const char* value) { m_deviceArnHasBeenSet = true; m_deviceArn.assign(value); }
121 
122     /**
123      * <p>The ARN of the device for which you want to create a remote access
124      * session.</p>
125      */
WithDeviceArn(const Aws::String & value)126     inline CreateRemoteAccessSessionRequest& WithDeviceArn(const Aws::String& value) { SetDeviceArn(value); return *this;}
127 
128     /**
129      * <p>The ARN of the device for which you want to create a remote access
130      * session.</p>
131      */
WithDeviceArn(Aws::String && value)132     inline CreateRemoteAccessSessionRequest& WithDeviceArn(Aws::String&& value) { SetDeviceArn(std::move(value)); return *this;}
133 
134     /**
135      * <p>The ARN of the device for which you want to create a remote access
136      * session.</p>
137      */
WithDeviceArn(const char * value)138     inline CreateRemoteAccessSessionRequest& WithDeviceArn(const char* value) { SetDeviceArn(value); return *this;}
139 
140 
141     /**
142      * <p>The Amazon Resource Name (ARN) of the device instance for which you want to
143      * create a remote access session.</p>
144      */
GetInstanceArn()145     inline const Aws::String& GetInstanceArn() const{ return m_instanceArn; }
146 
147     /**
148      * <p>The Amazon Resource Name (ARN) of the device instance for which you want to
149      * create a remote access session.</p>
150      */
InstanceArnHasBeenSet()151     inline bool InstanceArnHasBeenSet() const { return m_instanceArnHasBeenSet; }
152 
153     /**
154      * <p>The Amazon Resource Name (ARN) of the device instance for which you want to
155      * create a remote access session.</p>
156      */
SetInstanceArn(const Aws::String & value)157     inline void SetInstanceArn(const Aws::String& value) { m_instanceArnHasBeenSet = true; m_instanceArn = value; }
158 
159     /**
160      * <p>The Amazon Resource Name (ARN) of the device instance for which you want to
161      * create a remote access session.</p>
162      */
SetInstanceArn(Aws::String && value)163     inline void SetInstanceArn(Aws::String&& value) { m_instanceArnHasBeenSet = true; m_instanceArn = std::move(value); }
164 
165     /**
166      * <p>The Amazon Resource Name (ARN) of the device instance for which you want to
167      * create a remote access session.</p>
168      */
SetInstanceArn(const char * value)169     inline void SetInstanceArn(const char* value) { m_instanceArnHasBeenSet = true; m_instanceArn.assign(value); }
170 
171     /**
172      * <p>The Amazon Resource Name (ARN) of the device instance for which you want to
173      * create a remote access session.</p>
174      */
WithInstanceArn(const Aws::String & value)175     inline CreateRemoteAccessSessionRequest& WithInstanceArn(const Aws::String& value) { SetInstanceArn(value); return *this;}
176 
177     /**
178      * <p>The Amazon Resource Name (ARN) of the device instance for which you want to
179      * create a remote access session.</p>
180      */
WithInstanceArn(Aws::String && value)181     inline CreateRemoteAccessSessionRequest& WithInstanceArn(Aws::String&& value) { SetInstanceArn(std::move(value)); return *this;}
182 
183     /**
184      * <p>The Amazon Resource Name (ARN) of the device instance for which you want to
185      * create a remote access session.</p>
186      */
WithInstanceArn(const char * value)187     inline CreateRemoteAccessSessionRequest& WithInstanceArn(const char* value) { SetInstanceArn(value); return *this;}
188 
189 
190     /**
191      * <p>Ignored. The public key of the <code>ssh</code> key pair you want to use for
192      * connecting to remote devices in your remote debugging session. This key is
193      * required only if <code>remoteDebugEnabled</code> is set to
194      * <code>true</code>.</p> <p>Remote debugging is <a
195      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
196      * longer supported</a>.</p>
197      */
GetSshPublicKey()198     inline const Aws::String& GetSshPublicKey() const{ return m_sshPublicKey; }
199 
200     /**
201      * <p>Ignored. The public key of the <code>ssh</code> key pair you want to use for
202      * connecting to remote devices in your remote debugging session. This key is
203      * required only if <code>remoteDebugEnabled</code> is set to
204      * <code>true</code>.</p> <p>Remote debugging is <a
205      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
206      * longer supported</a>.</p>
207      */
SshPublicKeyHasBeenSet()208     inline bool SshPublicKeyHasBeenSet() const { return m_sshPublicKeyHasBeenSet; }
209 
210     /**
211      * <p>Ignored. The public key of the <code>ssh</code> key pair you want to use for
212      * connecting to remote devices in your remote debugging session. This key is
213      * required only if <code>remoteDebugEnabled</code> is set to
214      * <code>true</code>.</p> <p>Remote debugging is <a
215      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
216      * longer supported</a>.</p>
217      */
SetSshPublicKey(const Aws::String & value)218     inline void SetSshPublicKey(const Aws::String& value) { m_sshPublicKeyHasBeenSet = true; m_sshPublicKey = value; }
219 
220     /**
221      * <p>Ignored. The public key of the <code>ssh</code> key pair you want to use for
222      * connecting to remote devices in your remote debugging session. This key is
223      * required only if <code>remoteDebugEnabled</code> is set to
224      * <code>true</code>.</p> <p>Remote debugging is <a
225      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
226      * longer supported</a>.</p>
227      */
SetSshPublicKey(Aws::String && value)228     inline void SetSshPublicKey(Aws::String&& value) { m_sshPublicKeyHasBeenSet = true; m_sshPublicKey = std::move(value); }
229 
230     /**
231      * <p>Ignored. The public key of the <code>ssh</code> key pair you want to use for
232      * connecting to remote devices in your remote debugging session. This key is
233      * required only if <code>remoteDebugEnabled</code> is set to
234      * <code>true</code>.</p> <p>Remote debugging is <a
235      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
236      * longer supported</a>.</p>
237      */
SetSshPublicKey(const char * value)238     inline void SetSshPublicKey(const char* value) { m_sshPublicKeyHasBeenSet = true; m_sshPublicKey.assign(value); }
239 
240     /**
241      * <p>Ignored. The public key of the <code>ssh</code> key pair you want to use for
242      * connecting to remote devices in your remote debugging session. This key is
243      * required only if <code>remoteDebugEnabled</code> is set to
244      * <code>true</code>.</p> <p>Remote debugging is <a
245      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
246      * longer supported</a>.</p>
247      */
WithSshPublicKey(const Aws::String & value)248     inline CreateRemoteAccessSessionRequest& WithSshPublicKey(const Aws::String& value) { SetSshPublicKey(value); return *this;}
249 
250     /**
251      * <p>Ignored. The public key of the <code>ssh</code> key pair you want to use for
252      * connecting to remote devices in your remote debugging session. This key is
253      * required only if <code>remoteDebugEnabled</code> is set to
254      * <code>true</code>.</p> <p>Remote debugging is <a
255      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
256      * longer supported</a>.</p>
257      */
WithSshPublicKey(Aws::String && value)258     inline CreateRemoteAccessSessionRequest& WithSshPublicKey(Aws::String&& value) { SetSshPublicKey(std::move(value)); return *this;}
259 
260     /**
261      * <p>Ignored. The public key of the <code>ssh</code> key pair you want to use for
262      * connecting to remote devices in your remote debugging session. This key is
263      * required only if <code>remoteDebugEnabled</code> is set to
264      * <code>true</code>.</p> <p>Remote debugging is <a
265      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
266      * longer supported</a>.</p>
267      */
WithSshPublicKey(const char * value)268     inline CreateRemoteAccessSessionRequest& WithSshPublicKey(const char* value) { SetSshPublicKey(value); return *this;}
269 
270 
271     /**
272      * <p>Set to <code>true</code> if you want to access devices remotely for debugging
273      * in your remote access session.</p> <p>Remote debugging is <a
274      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
275      * longer supported</a>.</p>
276      */
GetRemoteDebugEnabled()277     inline bool GetRemoteDebugEnabled() const{ return m_remoteDebugEnabled; }
278 
279     /**
280      * <p>Set to <code>true</code> if you want to access devices remotely for debugging
281      * in your remote access session.</p> <p>Remote debugging is <a
282      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
283      * longer supported</a>.</p>
284      */
RemoteDebugEnabledHasBeenSet()285     inline bool RemoteDebugEnabledHasBeenSet() const { return m_remoteDebugEnabledHasBeenSet; }
286 
287     /**
288      * <p>Set to <code>true</code> if you want to access devices remotely for debugging
289      * in your remote access session.</p> <p>Remote debugging is <a
290      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
291      * longer supported</a>.</p>
292      */
SetRemoteDebugEnabled(bool value)293     inline void SetRemoteDebugEnabled(bool value) { m_remoteDebugEnabledHasBeenSet = true; m_remoteDebugEnabled = value; }
294 
295     /**
296      * <p>Set to <code>true</code> if you want to access devices remotely for debugging
297      * in your remote access session.</p> <p>Remote debugging is <a
298      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
299      * longer supported</a>.</p>
300      */
WithRemoteDebugEnabled(bool value)301     inline CreateRemoteAccessSessionRequest& WithRemoteDebugEnabled(bool value) { SetRemoteDebugEnabled(value); return *this;}
302 
303 
304     /**
305      * <p>Set to <code>true</code> to enable remote recording for the remote access
306      * session.</p>
307      */
GetRemoteRecordEnabled()308     inline bool GetRemoteRecordEnabled() const{ return m_remoteRecordEnabled; }
309 
310     /**
311      * <p>Set to <code>true</code> to enable remote recording for the remote access
312      * session.</p>
313      */
RemoteRecordEnabledHasBeenSet()314     inline bool RemoteRecordEnabledHasBeenSet() const { return m_remoteRecordEnabledHasBeenSet; }
315 
316     /**
317      * <p>Set to <code>true</code> to enable remote recording for the remote access
318      * session.</p>
319      */
SetRemoteRecordEnabled(bool value)320     inline void SetRemoteRecordEnabled(bool value) { m_remoteRecordEnabledHasBeenSet = true; m_remoteRecordEnabled = value; }
321 
322     /**
323      * <p>Set to <code>true</code> to enable remote recording for the remote access
324      * session.</p>
325      */
WithRemoteRecordEnabled(bool value)326     inline CreateRemoteAccessSessionRequest& WithRemoteRecordEnabled(bool value) { SetRemoteRecordEnabled(value); return *this;}
327 
328 
329     /**
330      * <p>The Amazon Resource Name (ARN) for the app to be recorded in the remote
331      * access session.</p>
332      */
GetRemoteRecordAppArn()333     inline const Aws::String& GetRemoteRecordAppArn() const{ return m_remoteRecordAppArn; }
334 
335     /**
336      * <p>The Amazon Resource Name (ARN) for the app to be recorded in the remote
337      * access session.</p>
338      */
RemoteRecordAppArnHasBeenSet()339     inline bool RemoteRecordAppArnHasBeenSet() const { return m_remoteRecordAppArnHasBeenSet; }
340 
341     /**
342      * <p>The Amazon Resource Name (ARN) for the app to be recorded in the remote
343      * access session.</p>
344      */
SetRemoteRecordAppArn(const Aws::String & value)345     inline void SetRemoteRecordAppArn(const Aws::String& value) { m_remoteRecordAppArnHasBeenSet = true; m_remoteRecordAppArn = value; }
346 
347     /**
348      * <p>The Amazon Resource Name (ARN) for the app to be recorded in the remote
349      * access session.</p>
350      */
SetRemoteRecordAppArn(Aws::String && value)351     inline void SetRemoteRecordAppArn(Aws::String&& value) { m_remoteRecordAppArnHasBeenSet = true; m_remoteRecordAppArn = std::move(value); }
352 
353     /**
354      * <p>The Amazon Resource Name (ARN) for the app to be recorded in the remote
355      * access session.</p>
356      */
SetRemoteRecordAppArn(const char * value)357     inline void SetRemoteRecordAppArn(const char* value) { m_remoteRecordAppArnHasBeenSet = true; m_remoteRecordAppArn.assign(value); }
358 
359     /**
360      * <p>The Amazon Resource Name (ARN) for the app to be recorded in the remote
361      * access session.</p>
362      */
WithRemoteRecordAppArn(const Aws::String & value)363     inline CreateRemoteAccessSessionRequest& WithRemoteRecordAppArn(const Aws::String& value) { SetRemoteRecordAppArn(value); return *this;}
364 
365     /**
366      * <p>The Amazon Resource Name (ARN) for the app to be recorded in the remote
367      * access session.</p>
368      */
WithRemoteRecordAppArn(Aws::String && value)369     inline CreateRemoteAccessSessionRequest& WithRemoteRecordAppArn(Aws::String&& value) { SetRemoteRecordAppArn(std::move(value)); return *this;}
370 
371     /**
372      * <p>The Amazon Resource Name (ARN) for the app to be recorded in the remote
373      * access session.</p>
374      */
WithRemoteRecordAppArn(const char * value)375     inline CreateRemoteAccessSessionRequest& WithRemoteRecordAppArn(const char* value) { SetRemoteRecordAppArn(value); return *this;}
376 
377 
378     /**
379      * <p>The name of the remote access session to create.</p>
380      */
GetName()381     inline const Aws::String& GetName() const{ return m_name; }
382 
383     /**
384      * <p>The name of the remote access session to create.</p>
385      */
NameHasBeenSet()386     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
387 
388     /**
389      * <p>The name of the remote access session to create.</p>
390      */
SetName(const Aws::String & value)391     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
392 
393     /**
394      * <p>The name of the remote access session to create.</p>
395      */
SetName(Aws::String && value)396     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
397 
398     /**
399      * <p>The name of the remote access session to create.</p>
400      */
SetName(const char * value)401     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
402 
403     /**
404      * <p>The name of the remote access session to create.</p>
405      */
WithName(const Aws::String & value)406     inline CreateRemoteAccessSessionRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
407 
408     /**
409      * <p>The name of the remote access session to create.</p>
410      */
WithName(Aws::String && value)411     inline CreateRemoteAccessSessionRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
412 
413     /**
414      * <p>The name of the remote access session to create.</p>
415      */
WithName(const char * value)416     inline CreateRemoteAccessSessionRequest& WithName(const char* value) { SetName(value); return *this;}
417 
418 
419     /**
420      * <p>Unique identifier for the client. If you want access to multiple devices on
421      * the same client, you should pass the same <code>clientId</code> value in each
422      * call to <code>CreateRemoteAccessSession</code>. This identifier is required only
423      * if <code>remoteDebugEnabled</code> is set to <code>true</code>.</p> <p>Remote
424      * debugging is <a
425      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
426      * longer supported</a>.</p>
427      */
GetClientId()428     inline const Aws::String& GetClientId() const{ return m_clientId; }
429 
430     /**
431      * <p>Unique identifier for the client. If you want access to multiple devices on
432      * the same client, you should pass the same <code>clientId</code> value in each
433      * call to <code>CreateRemoteAccessSession</code>. This identifier is required only
434      * if <code>remoteDebugEnabled</code> is set to <code>true</code>.</p> <p>Remote
435      * debugging is <a
436      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
437      * longer supported</a>.</p>
438      */
ClientIdHasBeenSet()439     inline bool ClientIdHasBeenSet() const { return m_clientIdHasBeenSet; }
440 
441     /**
442      * <p>Unique identifier for the client. If you want access to multiple devices on
443      * the same client, you should pass the same <code>clientId</code> value in each
444      * call to <code>CreateRemoteAccessSession</code>. This identifier is required only
445      * if <code>remoteDebugEnabled</code> is set to <code>true</code>.</p> <p>Remote
446      * debugging is <a
447      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
448      * longer supported</a>.</p>
449      */
SetClientId(const Aws::String & value)450     inline void SetClientId(const Aws::String& value) { m_clientIdHasBeenSet = true; m_clientId = value; }
451 
452     /**
453      * <p>Unique identifier for the client. If you want access to multiple devices on
454      * the same client, you should pass the same <code>clientId</code> value in each
455      * call to <code>CreateRemoteAccessSession</code>. This identifier is required only
456      * if <code>remoteDebugEnabled</code> is set to <code>true</code>.</p> <p>Remote
457      * debugging is <a
458      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
459      * longer supported</a>.</p>
460      */
SetClientId(Aws::String && value)461     inline void SetClientId(Aws::String&& value) { m_clientIdHasBeenSet = true; m_clientId = std::move(value); }
462 
463     /**
464      * <p>Unique identifier for the client. If you want access to multiple devices on
465      * the same client, you should pass the same <code>clientId</code> value in each
466      * call to <code>CreateRemoteAccessSession</code>. This identifier is required only
467      * if <code>remoteDebugEnabled</code> is set to <code>true</code>.</p> <p>Remote
468      * debugging is <a
469      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
470      * longer supported</a>.</p>
471      */
SetClientId(const char * value)472     inline void SetClientId(const char* value) { m_clientIdHasBeenSet = true; m_clientId.assign(value); }
473 
474     /**
475      * <p>Unique identifier for the client. If you want access to multiple devices on
476      * the same client, you should pass the same <code>clientId</code> value in each
477      * call to <code>CreateRemoteAccessSession</code>. This identifier is required only
478      * if <code>remoteDebugEnabled</code> is set to <code>true</code>.</p> <p>Remote
479      * debugging is <a
480      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
481      * longer supported</a>.</p>
482      */
WithClientId(const Aws::String & value)483     inline CreateRemoteAccessSessionRequest& WithClientId(const Aws::String& value) { SetClientId(value); return *this;}
484 
485     /**
486      * <p>Unique identifier for the client. If you want access to multiple devices on
487      * the same client, you should pass the same <code>clientId</code> value in each
488      * call to <code>CreateRemoteAccessSession</code>. This identifier is required only
489      * if <code>remoteDebugEnabled</code> is set to <code>true</code>.</p> <p>Remote
490      * debugging is <a
491      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
492      * longer supported</a>.</p>
493      */
WithClientId(Aws::String && value)494     inline CreateRemoteAccessSessionRequest& WithClientId(Aws::String&& value) { SetClientId(std::move(value)); return *this;}
495 
496     /**
497      * <p>Unique identifier for the client. If you want access to multiple devices on
498      * the same client, you should pass the same <code>clientId</code> value in each
499      * call to <code>CreateRemoteAccessSession</code>. This identifier is required only
500      * if <code>remoteDebugEnabled</code> is set to <code>true</code>.</p> <p>Remote
501      * debugging is <a
502      * href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no
503      * longer supported</a>.</p>
504      */
WithClientId(const char * value)505     inline CreateRemoteAccessSessionRequest& WithClientId(const char* value) { SetClientId(value); return *this;}
506 
507 
508     /**
509      * <p>The configuration information for the remote access session request.</p>
510      */
GetConfiguration()511     inline const CreateRemoteAccessSessionConfiguration& GetConfiguration() const{ return m_configuration; }
512 
513     /**
514      * <p>The configuration information for the remote access session request.</p>
515      */
ConfigurationHasBeenSet()516     inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; }
517 
518     /**
519      * <p>The configuration information for the remote access session request.</p>
520      */
SetConfiguration(const CreateRemoteAccessSessionConfiguration & value)521     inline void SetConfiguration(const CreateRemoteAccessSessionConfiguration& value) { m_configurationHasBeenSet = true; m_configuration = value; }
522 
523     /**
524      * <p>The configuration information for the remote access session request.</p>
525      */
SetConfiguration(CreateRemoteAccessSessionConfiguration && value)526     inline void SetConfiguration(CreateRemoteAccessSessionConfiguration&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); }
527 
528     /**
529      * <p>The configuration information for the remote access session request.</p>
530      */
WithConfiguration(const CreateRemoteAccessSessionConfiguration & value)531     inline CreateRemoteAccessSessionRequest& WithConfiguration(const CreateRemoteAccessSessionConfiguration& value) { SetConfiguration(value); return *this;}
532 
533     /**
534      * <p>The configuration information for the remote access session request.</p>
535      */
WithConfiguration(CreateRemoteAccessSessionConfiguration && value)536     inline CreateRemoteAccessSessionRequest& WithConfiguration(CreateRemoteAccessSessionConfiguration&& value) { SetConfiguration(std::move(value)); return *this;}
537 
538 
539     /**
540      * <p>The interaction mode of the remote access session. Valid values are:</p> <ul>
541      * <li> <p>INTERACTIVE: You can interact with the iOS device by viewing, touching,
542      * and rotating the screen. You cannot run XCUITest framework-based tests in this
543      * mode.</p> </li> <li> <p>NO_VIDEO: You are connected to the device, but cannot
544      * interact with it or view the screen. This mode has the fastest test execution
545      * speed. You can run XCUITest framework-based tests in this mode.</p> </li> <li>
546      * <p>VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can
547      * run XCUITest framework-based tests and watch the screen in this mode.</p> </li>
548      * </ul>
549      */
GetInteractionMode()550     inline const InteractionMode& GetInteractionMode() const{ return m_interactionMode; }
551 
552     /**
553      * <p>The interaction mode of the remote access session. Valid values are:</p> <ul>
554      * <li> <p>INTERACTIVE: You can interact with the iOS device by viewing, touching,
555      * and rotating the screen. You cannot run XCUITest framework-based tests in this
556      * mode.</p> </li> <li> <p>NO_VIDEO: You are connected to the device, but cannot
557      * interact with it or view the screen. This mode has the fastest test execution
558      * speed. You can run XCUITest framework-based tests in this mode.</p> </li> <li>
559      * <p>VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can
560      * run XCUITest framework-based tests and watch the screen in this mode.</p> </li>
561      * </ul>
562      */
InteractionModeHasBeenSet()563     inline bool InteractionModeHasBeenSet() const { return m_interactionModeHasBeenSet; }
564 
565     /**
566      * <p>The interaction mode of the remote access session. Valid values are:</p> <ul>
567      * <li> <p>INTERACTIVE: You can interact with the iOS device by viewing, touching,
568      * and rotating the screen. You cannot run XCUITest framework-based tests in this
569      * mode.</p> </li> <li> <p>NO_VIDEO: You are connected to the device, but cannot
570      * interact with it or view the screen. This mode has the fastest test execution
571      * speed. You can run XCUITest framework-based tests in this mode.</p> </li> <li>
572      * <p>VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can
573      * run XCUITest framework-based tests and watch the screen in this mode.</p> </li>
574      * </ul>
575      */
SetInteractionMode(const InteractionMode & value)576     inline void SetInteractionMode(const InteractionMode& value) { m_interactionModeHasBeenSet = true; m_interactionMode = value; }
577 
578     /**
579      * <p>The interaction mode of the remote access session. Valid values are:</p> <ul>
580      * <li> <p>INTERACTIVE: You can interact with the iOS device by viewing, touching,
581      * and rotating the screen. You cannot run XCUITest framework-based tests in this
582      * mode.</p> </li> <li> <p>NO_VIDEO: You are connected to the device, but cannot
583      * interact with it or view the screen. This mode has the fastest test execution
584      * speed. You can run XCUITest framework-based tests in this mode.</p> </li> <li>
585      * <p>VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can
586      * run XCUITest framework-based tests and watch the screen in this mode.</p> </li>
587      * </ul>
588      */
SetInteractionMode(InteractionMode && value)589     inline void SetInteractionMode(InteractionMode&& value) { m_interactionModeHasBeenSet = true; m_interactionMode = std::move(value); }
590 
591     /**
592      * <p>The interaction mode of the remote access session. Valid values are:</p> <ul>
593      * <li> <p>INTERACTIVE: You can interact with the iOS device by viewing, touching,
594      * and rotating the screen. You cannot run XCUITest framework-based tests in this
595      * mode.</p> </li> <li> <p>NO_VIDEO: You are connected to the device, but cannot
596      * interact with it or view the screen. This mode has the fastest test execution
597      * speed. You can run XCUITest framework-based tests in this mode.</p> </li> <li>
598      * <p>VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can
599      * run XCUITest framework-based tests and watch the screen in this mode.</p> </li>
600      * </ul>
601      */
WithInteractionMode(const InteractionMode & value)602     inline CreateRemoteAccessSessionRequest& WithInteractionMode(const InteractionMode& value) { SetInteractionMode(value); return *this;}
603 
604     /**
605      * <p>The interaction mode of the remote access session. Valid values are:</p> <ul>
606      * <li> <p>INTERACTIVE: You can interact with the iOS device by viewing, touching,
607      * and rotating the screen. You cannot run XCUITest framework-based tests in this
608      * mode.</p> </li> <li> <p>NO_VIDEO: You are connected to the device, but cannot
609      * interact with it or view the screen. This mode has the fastest test execution
610      * speed. You can run XCUITest framework-based tests in this mode.</p> </li> <li>
611      * <p>VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can
612      * run XCUITest framework-based tests and watch the screen in this mode.</p> </li>
613      * </ul>
614      */
WithInteractionMode(InteractionMode && value)615     inline CreateRemoteAccessSessionRequest& WithInteractionMode(InteractionMode&& value) { SetInteractionMode(std::move(value)); return *this;}
616 
617 
618     /**
619      * <p>When set to <code>true</code>, for private devices, Device Farm does not sign
620      * your app again. For public devices, Device Farm always signs your apps
621      * again.</p> <p>For more information on how Device Farm modifies your uploads
622      * during tests, see <a href="https://aws.amazon.com/device-farm/faq/">Do you
623      * modify my app?</a> </p>
624      */
GetSkipAppResign()625     inline bool GetSkipAppResign() const{ return m_skipAppResign; }
626 
627     /**
628      * <p>When set to <code>true</code>, for private devices, Device Farm does not sign
629      * your app again. For public devices, Device Farm always signs your apps
630      * again.</p> <p>For more information on how Device Farm modifies your uploads
631      * during tests, see <a href="https://aws.amazon.com/device-farm/faq/">Do you
632      * modify my app?</a> </p>
633      */
SkipAppResignHasBeenSet()634     inline bool SkipAppResignHasBeenSet() const { return m_skipAppResignHasBeenSet; }
635 
636     /**
637      * <p>When set to <code>true</code>, for private devices, Device Farm does not sign
638      * your app again. For public devices, Device Farm always signs your apps
639      * again.</p> <p>For more information on how Device Farm modifies your uploads
640      * during tests, see <a href="https://aws.amazon.com/device-farm/faq/">Do you
641      * modify my app?</a> </p>
642      */
SetSkipAppResign(bool value)643     inline void SetSkipAppResign(bool value) { m_skipAppResignHasBeenSet = true; m_skipAppResign = value; }
644 
645     /**
646      * <p>When set to <code>true</code>, for private devices, Device Farm does not sign
647      * your app again. For public devices, Device Farm always signs your apps
648      * again.</p> <p>For more information on how Device Farm modifies your uploads
649      * during tests, see <a href="https://aws.amazon.com/device-farm/faq/">Do you
650      * modify my app?</a> </p>
651      */
WithSkipAppResign(bool value)652     inline CreateRemoteAccessSessionRequest& WithSkipAppResign(bool value) { SetSkipAppResign(value); return *this;}
653 
654   private:
655 
656     Aws::String m_projectArn;
657     bool m_projectArnHasBeenSet;
658 
659     Aws::String m_deviceArn;
660     bool m_deviceArnHasBeenSet;
661 
662     Aws::String m_instanceArn;
663     bool m_instanceArnHasBeenSet;
664 
665     Aws::String m_sshPublicKey;
666     bool m_sshPublicKeyHasBeenSet;
667 
668     bool m_remoteDebugEnabled;
669     bool m_remoteDebugEnabledHasBeenSet;
670 
671     bool m_remoteRecordEnabled;
672     bool m_remoteRecordEnabledHasBeenSet;
673 
674     Aws::String m_remoteRecordAppArn;
675     bool m_remoteRecordAppArnHasBeenSet;
676 
677     Aws::String m_name;
678     bool m_nameHasBeenSet;
679 
680     Aws::String m_clientId;
681     bool m_clientIdHasBeenSet;
682 
683     CreateRemoteAccessSessionConfiguration m_configuration;
684     bool m_configurationHasBeenSet;
685 
686     InteractionMode m_interactionMode;
687     bool m_interactionModeHasBeenSet;
688 
689     bool m_skipAppResign;
690     bool m_skipAppResignHasBeenSet;
691   };
692 
693 } // namespace Model
694 } // namespace DeviceFarm
695 } // namespace Aws
696