/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace DeviceFarm { namespace Model { /** *

Creates and submits a request to start a remote access session.

See * Also:

AWS * API Reference

*/ class CreateRemoteAccessSessionRequest : public DeviceFarmRequest { public: AWS_DEVICEFARM_API CreateRemoteAccessSessionRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateRemoteAccessSession"; } AWS_DEVICEFARM_API Aws::String SerializePayload() const override; AWS_DEVICEFARM_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The Amazon Resource Name (ARN) of the project for which you want to create a * remote access session.

*/ inline const Aws::String& GetProjectArn() const{ return m_projectArn; } /** *

The Amazon Resource Name (ARN) of the project for which you want to create a * remote access session.

*/ inline bool ProjectArnHasBeenSet() const { return m_projectArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the project for which you want to create a * remote access session.

*/ inline void SetProjectArn(const Aws::String& value) { m_projectArnHasBeenSet = true; m_projectArn = value; } /** *

The Amazon Resource Name (ARN) of the project for which you want to create a * remote access session.

*/ inline void SetProjectArn(Aws::String&& value) { m_projectArnHasBeenSet = true; m_projectArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the project for which you want to create a * remote access session.

*/ inline void SetProjectArn(const char* value) { m_projectArnHasBeenSet = true; m_projectArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the project for which you want to create a * remote access session.

*/ inline CreateRemoteAccessSessionRequest& WithProjectArn(const Aws::String& value) { SetProjectArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the project for which you want to create a * remote access session.

*/ inline CreateRemoteAccessSessionRequest& WithProjectArn(Aws::String&& value) { SetProjectArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the project for which you want to create a * remote access session.

*/ inline CreateRemoteAccessSessionRequest& WithProjectArn(const char* value) { SetProjectArn(value); return *this;} /** *

The ARN of the device for which you want to create a remote access * session.

*/ inline const Aws::String& GetDeviceArn() const{ return m_deviceArn; } /** *

The ARN of the device for which you want to create a remote access * session.

*/ inline bool DeviceArnHasBeenSet() const { return m_deviceArnHasBeenSet; } /** *

The ARN of the device for which you want to create a remote access * session.

*/ inline void SetDeviceArn(const Aws::String& value) { m_deviceArnHasBeenSet = true; m_deviceArn = value; } /** *

The ARN of the device for which you want to create a remote access * session.

*/ inline void SetDeviceArn(Aws::String&& value) { m_deviceArnHasBeenSet = true; m_deviceArn = std::move(value); } /** *

The ARN of the device for which you want to create a remote access * session.

*/ inline void SetDeviceArn(const char* value) { m_deviceArnHasBeenSet = true; m_deviceArn.assign(value); } /** *

The ARN of the device for which you want to create a remote access * session.

*/ inline CreateRemoteAccessSessionRequest& WithDeviceArn(const Aws::String& value) { SetDeviceArn(value); return *this;} /** *

The ARN of the device for which you want to create a remote access * session.

*/ inline CreateRemoteAccessSessionRequest& WithDeviceArn(Aws::String&& value) { SetDeviceArn(std::move(value)); return *this;} /** *

The ARN of the device for which you want to create a remote access * session.

*/ inline CreateRemoteAccessSessionRequest& WithDeviceArn(const char* value) { SetDeviceArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the device instance for which you want to * create a remote access session.

*/ inline const Aws::String& GetInstanceArn() const{ return m_instanceArn; } /** *

The Amazon Resource Name (ARN) of the device instance for which you want to * create a remote access session.

*/ inline bool InstanceArnHasBeenSet() const { return m_instanceArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the device instance for which you want to * create a remote access session.

*/ inline void SetInstanceArn(const Aws::String& value) { m_instanceArnHasBeenSet = true; m_instanceArn = value; } /** *

The Amazon Resource Name (ARN) of the device instance for which you want to * create a remote access session.

*/ inline void SetInstanceArn(Aws::String&& value) { m_instanceArnHasBeenSet = true; m_instanceArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the device instance for which you want to * create a remote access session.

*/ inline void SetInstanceArn(const char* value) { m_instanceArnHasBeenSet = true; m_instanceArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the device instance for which you want to * create a remote access session.

*/ inline CreateRemoteAccessSessionRequest& WithInstanceArn(const Aws::String& value) { SetInstanceArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the device instance for which you want to * create a remote access session.

*/ inline CreateRemoteAccessSessionRequest& WithInstanceArn(Aws::String&& value) { SetInstanceArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the device instance for which you want to * create a remote access session.

*/ inline CreateRemoteAccessSessionRequest& WithInstanceArn(const char* value) { SetInstanceArn(value); return *this;} /** *

Ignored. The public key of the ssh key pair you want to use for * connecting to remote devices in your remote debugging session. This key is * required only if remoteDebugEnabled is set to * true.

Remote debugging is no * longer supported.

*/ inline const Aws::String& GetSshPublicKey() const{ return m_sshPublicKey; } /** *

Ignored. The public key of the ssh key pair you want to use for * connecting to remote devices in your remote debugging session. This key is * required only if remoteDebugEnabled is set to * true.

Remote debugging is no * longer supported.

*/ inline bool SshPublicKeyHasBeenSet() const { return m_sshPublicKeyHasBeenSet; } /** *

Ignored. The public key of the ssh key pair you want to use for * connecting to remote devices in your remote debugging session. This key is * required only if remoteDebugEnabled is set to * true.

Remote debugging is no * longer supported.

*/ inline void SetSshPublicKey(const Aws::String& value) { m_sshPublicKeyHasBeenSet = true; m_sshPublicKey = value; } /** *

Ignored. The public key of the ssh key pair you want to use for * connecting to remote devices in your remote debugging session. This key is * required only if remoteDebugEnabled is set to * true.

Remote debugging is no * longer supported.

*/ inline void SetSshPublicKey(Aws::String&& value) { m_sshPublicKeyHasBeenSet = true; m_sshPublicKey = std::move(value); } /** *

Ignored. The public key of the ssh key pair you want to use for * connecting to remote devices in your remote debugging session. This key is * required only if remoteDebugEnabled is set to * true.

Remote debugging is no * longer supported.

*/ inline void SetSshPublicKey(const char* value) { m_sshPublicKeyHasBeenSet = true; m_sshPublicKey.assign(value); } /** *

Ignored. The public key of the ssh key pair you want to use for * connecting to remote devices in your remote debugging session. This key is * required only if remoteDebugEnabled is set to * true.

Remote debugging is no * longer supported.

*/ inline CreateRemoteAccessSessionRequest& WithSshPublicKey(const Aws::String& value) { SetSshPublicKey(value); return *this;} /** *

Ignored. The public key of the ssh key pair you want to use for * connecting to remote devices in your remote debugging session. This key is * required only if remoteDebugEnabled is set to * true.

Remote debugging is no * longer supported.

*/ inline CreateRemoteAccessSessionRequest& WithSshPublicKey(Aws::String&& value) { SetSshPublicKey(std::move(value)); return *this;} /** *

Ignored. The public key of the ssh key pair you want to use for * connecting to remote devices in your remote debugging session. This key is * required only if remoteDebugEnabled is set to * true.

Remote debugging is no * longer supported.

*/ inline CreateRemoteAccessSessionRequest& WithSshPublicKey(const char* value) { SetSshPublicKey(value); return *this;} /** *

Set to true if you want to access devices remotely for debugging * in your remote access session.

Remote debugging is no * longer supported.

*/ inline bool GetRemoteDebugEnabled() const{ return m_remoteDebugEnabled; } /** *

Set to true if you want to access devices remotely for debugging * in your remote access session.

Remote debugging is no * longer supported.

*/ inline bool RemoteDebugEnabledHasBeenSet() const { return m_remoteDebugEnabledHasBeenSet; } /** *

Set to true if you want to access devices remotely for debugging * in your remote access session.

Remote debugging is no * longer supported.

*/ inline void SetRemoteDebugEnabled(bool value) { m_remoteDebugEnabledHasBeenSet = true; m_remoteDebugEnabled = value; } /** *

Set to true if you want to access devices remotely for debugging * in your remote access session.

Remote debugging is no * longer supported.

*/ inline CreateRemoteAccessSessionRequest& WithRemoteDebugEnabled(bool value) { SetRemoteDebugEnabled(value); return *this;} /** *

Set to true to enable remote recording for the remote access * session.

*/ inline bool GetRemoteRecordEnabled() const{ return m_remoteRecordEnabled; } /** *

Set to true to enable remote recording for the remote access * session.

*/ inline bool RemoteRecordEnabledHasBeenSet() const { return m_remoteRecordEnabledHasBeenSet; } /** *

Set to true to enable remote recording for the remote access * session.

*/ inline void SetRemoteRecordEnabled(bool value) { m_remoteRecordEnabledHasBeenSet = true; m_remoteRecordEnabled = value; } /** *

Set to true to enable remote recording for the remote access * session.

*/ inline CreateRemoteAccessSessionRequest& WithRemoteRecordEnabled(bool value) { SetRemoteRecordEnabled(value); return *this;} /** *

The Amazon Resource Name (ARN) for the app to be recorded in the remote * access session.

*/ inline const Aws::String& GetRemoteRecordAppArn() const{ return m_remoteRecordAppArn; } /** *

The Amazon Resource Name (ARN) for the app to be recorded in the remote * access session.

*/ inline bool RemoteRecordAppArnHasBeenSet() const { return m_remoteRecordAppArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the app to be recorded in the remote * access session.

*/ inline void SetRemoteRecordAppArn(const Aws::String& value) { m_remoteRecordAppArnHasBeenSet = true; m_remoteRecordAppArn = value; } /** *

The Amazon Resource Name (ARN) for the app to be recorded in the remote * access session.

*/ inline void SetRemoteRecordAppArn(Aws::String&& value) { m_remoteRecordAppArnHasBeenSet = true; m_remoteRecordAppArn = std::move(value); } /** *

The Amazon Resource Name (ARN) for the app to be recorded in the remote * access session.

*/ inline void SetRemoteRecordAppArn(const char* value) { m_remoteRecordAppArnHasBeenSet = true; m_remoteRecordAppArn.assign(value); } /** *

The Amazon Resource Name (ARN) for the app to be recorded in the remote * access session.

*/ inline CreateRemoteAccessSessionRequest& WithRemoteRecordAppArn(const Aws::String& value) { SetRemoteRecordAppArn(value); return *this;} /** *

The Amazon Resource Name (ARN) for the app to be recorded in the remote * access session.

*/ inline CreateRemoteAccessSessionRequest& WithRemoteRecordAppArn(Aws::String&& value) { SetRemoteRecordAppArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the app to be recorded in the remote * access session.

*/ inline CreateRemoteAccessSessionRequest& WithRemoteRecordAppArn(const char* value) { SetRemoteRecordAppArn(value); return *this;} /** *

The name of the remote access session to create.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the remote access session to create.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the remote access session to create.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the remote access session to create.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the remote access session to create.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the remote access session to create.

*/ inline CreateRemoteAccessSessionRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the remote access session to create.

*/ inline CreateRemoteAccessSessionRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the remote access session to create.

*/ inline CreateRemoteAccessSessionRequest& WithName(const char* value) { SetName(value); return *this;} /** *

Unique identifier for the client. If you want access to multiple devices on * the same client, you should pass the same clientId value in each * call to CreateRemoteAccessSession. This identifier is required only * if remoteDebugEnabled is set to true.

Remote * debugging is no * longer supported.

*/ inline const Aws::String& GetClientId() const{ return m_clientId; } /** *

Unique identifier for the client. If you want access to multiple devices on * the same client, you should pass the same clientId value in each * call to CreateRemoteAccessSession. This identifier is required only * if remoteDebugEnabled is set to true.

Remote * debugging is no * longer supported.

*/ inline bool ClientIdHasBeenSet() const { return m_clientIdHasBeenSet; } /** *

Unique identifier for the client. If you want access to multiple devices on * the same client, you should pass the same clientId value in each * call to CreateRemoteAccessSession. This identifier is required only * if remoteDebugEnabled is set to true.

Remote * debugging is no * longer supported.

*/ inline void SetClientId(const Aws::String& value) { m_clientIdHasBeenSet = true; m_clientId = value; } /** *

Unique identifier for the client. If you want access to multiple devices on * the same client, you should pass the same clientId value in each * call to CreateRemoteAccessSession. This identifier is required only * if remoteDebugEnabled is set to true.

Remote * debugging is no * longer supported.

*/ inline void SetClientId(Aws::String&& value) { m_clientIdHasBeenSet = true; m_clientId = std::move(value); } /** *

Unique identifier for the client. If you want access to multiple devices on * the same client, you should pass the same clientId value in each * call to CreateRemoteAccessSession. This identifier is required only * if remoteDebugEnabled is set to true.

Remote * debugging is no * longer supported.

*/ inline void SetClientId(const char* value) { m_clientIdHasBeenSet = true; m_clientId.assign(value); } /** *

Unique identifier for the client. If you want access to multiple devices on * the same client, you should pass the same clientId value in each * call to CreateRemoteAccessSession. This identifier is required only * if remoteDebugEnabled is set to true.

Remote * debugging is no * longer supported.

*/ inline CreateRemoteAccessSessionRequest& WithClientId(const Aws::String& value) { SetClientId(value); return *this;} /** *

Unique identifier for the client. If you want access to multiple devices on * the same client, you should pass the same clientId value in each * call to CreateRemoteAccessSession. This identifier is required only * if remoteDebugEnabled is set to true.

Remote * debugging is no * longer supported.

*/ inline CreateRemoteAccessSessionRequest& WithClientId(Aws::String&& value) { SetClientId(std::move(value)); return *this;} /** *

Unique identifier for the client. If you want access to multiple devices on * the same client, you should pass the same clientId value in each * call to CreateRemoteAccessSession. This identifier is required only * if remoteDebugEnabled is set to true.

Remote * debugging is no * longer supported.

*/ inline CreateRemoteAccessSessionRequest& WithClientId(const char* value) { SetClientId(value); return *this;} /** *

The configuration information for the remote access session request.

*/ inline const CreateRemoteAccessSessionConfiguration& GetConfiguration() const{ return m_configuration; } /** *

The configuration information for the remote access session request.

*/ inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; } /** *

The configuration information for the remote access session request.

*/ inline void SetConfiguration(const CreateRemoteAccessSessionConfiguration& value) { m_configurationHasBeenSet = true; m_configuration = value; } /** *

The configuration information for the remote access session request.

*/ inline void SetConfiguration(CreateRemoteAccessSessionConfiguration&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); } /** *

The configuration information for the remote access session request.

*/ inline CreateRemoteAccessSessionRequest& WithConfiguration(const CreateRemoteAccessSessionConfiguration& value) { SetConfiguration(value); return *this;} /** *

The configuration information for the remote access session request.

*/ inline CreateRemoteAccessSessionRequest& WithConfiguration(CreateRemoteAccessSessionConfiguration&& value) { SetConfiguration(std::move(value)); return *this;} /** *

The interaction mode of the remote access session. Valid values are:

    *
  • INTERACTIVE: You can interact with the iOS device by viewing, touching, * and rotating the screen. You cannot run XCUITest framework-based tests in this * mode.

  • NO_VIDEO: You are connected to the device, but cannot * interact with it or view the screen. This mode has the fastest test execution * speed. You can run XCUITest framework-based tests in this mode.

  • *

    VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can * run XCUITest framework-based tests and watch the screen in this mode.

  • *
*/ inline const InteractionMode& GetInteractionMode() const{ return m_interactionMode; } /** *

The interaction mode of the remote access session. Valid values are:

    *
  • INTERACTIVE: You can interact with the iOS device by viewing, touching, * and rotating the screen. You cannot run XCUITest framework-based tests in this * mode.

  • NO_VIDEO: You are connected to the device, but cannot * interact with it or view the screen. This mode has the fastest test execution * speed. You can run XCUITest framework-based tests in this mode.

  • *

    VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can * run XCUITest framework-based tests and watch the screen in this mode.

  • *
*/ inline bool InteractionModeHasBeenSet() const { return m_interactionModeHasBeenSet; } /** *

The interaction mode of the remote access session. Valid values are:

    *
  • INTERACTIVE: You can interact with the iOS device by viewing, touching, * and rotating the screen. You cannot run XCUITest framework-based tests in this * mode.

  • NO_VIDEO: You are connected to the device, but cannot * interact with it or view the screen. This mode has the fastest test execution * speed. You can run XCUITest framework-based tests in this mode.

  • *

    VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can * run XCUITest framework-based tests and watch the screen in this mode.

  • *
*/ inline void SetInteractionMode(const InteractionMode& value) { m_interactionModeHasBeenSet = true; m_interactionMode = value; } /** *

The interaction mode of the remote access session. Valid values are:

    *
  • INTERACTIVE: You can interact with the iOS device by viewing, touching, * and rotating the screen. You cannot run XCUITest framework-based tests in this * mode.

  • NO_VIDEO: You are connected to the device, but cannot * interact with it or view the screen. This mode has the fastest test execution * speed. You can run XCUITest framework-based tests in this mode.

  • *

    VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can * run XCUITest framework-based tests and watch the screen in this mode.

  • *
*/ inline void SetInteractionMode(InteractionMode&& value) { m_interactionModeHasBeenSet = true; m_interactionMode = std::move(value); } /** *

The interaction mode of the remote access session. Valid values are:

    *
  • INTERACTIVE: You can interact with the iOS device by viewing, touching, * and rotating the screen. You cannot run XCUITest framework-based tests in this * mode.

  • NO_VIDEO: You are connected to the device, but cannot * interact with it or view the screen. This mode has the fastest test execution * speed. You can run XCUITest framework-based tests in this mode.

  • *

    VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can * run XCUITest framework-based tests and watch the screen in this mode.

  • *
*/ inline CreateRemoteAccessSessionRequest& WithInteractionMode(const InteractionMode& value) { SetInteractionMode(value); return *this;} /** *

The interaction mode of the remote access session. Valid values are:

    *
  • INTERACTIVE: You can interact with the iOS device by viewing, touching, * and rotating the screen. You cannot run XCUITest framework-based tests in this * mode.

  • NO_VIDEO: You are connected to the device, but cannot * interact with it or view the screen. This mode has the fastest test execution * speed. You can run XCUITest framework-based tests in this mode.

  • *

    VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can * run XCUITest framework-based tests and watch the screen in this mode.

  • *
*/ inline CreateRemoteAccessSessionRequest& WithInteractionMode(InteractionMode&& value) { SetInteractionMode(std::move(value)); return *this;} /** *

When set to true, for private devices, Device Farm does not sign * your app again. For public devices, Device Farm always signs your apps * again.

For more information on how Device Farm modifies your uploads * during tests, see Do you * modify my app?

*/ inline bool GetSkipAppResign() const{ return m_skipAppResign; } /** *

When set to true, for private devices, Device Farm does not sign * your app again. For public devices, Device Farm always signs your apps * again.

For more information on how Device Farm modifies your uploads * during tests, see Do you * modify my app?

*/ inline bool SkipAppResignHasBeenSet() const { return m_skipAppResignHasBeenSet; } /** *

When set to true, for private devices, Device Farm does not sign * your app again. For public devices, Device Farm always signs your apps * again.

For more information on how Device Farm modifies your uploads * during tests, see Do you * modify my app?

*/ inline void SetSkipAppResign(bool value) { m_skipAppResignHasBeenSet = true; m_skipAppResign = value; } /** *

When set to true, for private devices, Device Farm does not sign * your app again. For public devices, Device Farm always signs your apps * again.

For more information on how Device Farm modifies your uploads * during tests, see Do you * modify my app?

*/ inline CreateRemoteAccessSessionRequest& WithSkipAppResign(bool value) { SetSkipAppResign(value); return *this;} private: Aws::String m_projectArn; bool m_projectArnHasBeenSet = false; Aws::String m_deviceArn; bool m_deviceArnHasBeenSet = false; Aws::String m_instanceArn; bool m_instanceArnHasBeenSet = false; Aws::String m_sshPublicKey; bool m_sshPublicKeyHasBeenSet = false; bool m_remoteDebugEnabled; bool m_remoteDebugEnabledHasBeenSet = false; bool m_remoteRecordEnabled; bool m_remoteRecordEnabledHasBeenSet = false; Aws::String m_remoteRecordAppArn; bool m_remoteRecordAppArnHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_clientId; bool m_clientIdHasBeenSet = false; CreateRemoteAccessSessionConfiguration m_configuration; bool m_configurationHasBeenSet = false; InteractionMode m_interactionMode; bool m_interactionModeHasBeenSet = false; bool m_skipAppResign; bool m_skipAppResignHasBeenSet = false; }; } // namespace Model } // namespace DeviceFarm } // namespace Aws