All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.devicefarm.model.CreateRemoteAccessSessionRequest Maven / Gradle / Ivy

/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.devicefarm.model;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 * 

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

*/ @Generated("software.amazon.awssdk:codegen") public final class CreateRemoteAccessSessionRequest extends DeviceFarmRequest implements ToCopyableBuilder { private static final SdkField PROJECT_ARN_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("projectArn").getter(getter(CreateRemoteAccessSessionRequest::projectArn)) .setter(setter(Builder::projectArn)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("projectArn").build()).build(); private static final SdkField DEVICE_ARN_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("deviceArn").getter(getter(CreateRemoteAccessSessionRequest::deviceArn)) .setter(setter(Builder::deviceArn)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("deviceArn").build()).build(); private static final SdkField INSTANCE_ARN_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("instanceArn").getter(getter(CreateRemoteAccessSessionRequest::instanceArn)) .setter(setter(Builder::instanceArn)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("instanceArn").build()).build(); private static final SdkField SSH_PUBLIC_KEY_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("sshPublicKey").getter(getter(CreateRemoteAccessSessionRequest::sshPublicKey)) .setter(setter(Builder::sshPublicKey)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("sshPublicKey").build()).build(); private static final SdkField REMOTE_DEBUG_ENABLED_FIELD = SdkField. builder(MarshallingType.BOOLEAN) .memberName("remoteDebugEnabled").getter(getter(CreateRemoteAccessSessionRequest::remoteDebugEnabled)) .setter(setter(Builder::remoteDebugEnabled)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("remoteDebugEnabled").build()) .build(); private static final SdkField REMOTE_RECORD_ENABLED_FIELD = SdkField. builder(MarshallingType.BOOLEAN) .memberName("remoteRecordEnabled").getter(getter(CreateRemoteAccessSessionRequest::remoteRecordEnabled)) .setter(setter(Builder::remoteRecordEnabled)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("remoteRecordEnabled").build()) .build(); private static final SdkField REMOTE_RECORD_APP_ARN_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("remoteRecordAppArn").getter(getter(CreateRemoteAccessSessionRequest::remoteRecordAppArn)) .setter(setter(Builder::remoteRecordAppArn)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("remoteRecordAppArn").build()) .build(); private static final SdkField NAME_FIELD = SdkField. builder(MarshallingType.STRING).memberName("name") .getter(getter(CreateRemoteAccessSessionRequest::name)).setter(setter(Builder::name)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("name").build()).build(); private static final SdkField CLIENT_ID_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("clientId").getter(getter(CreateRemoteAccessSessionRequest::clientId)).setter(setter(Builder::clientId)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("clientId").build()).build(); private static final SdkField CONFIGURATION_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("configuration") .getter(getter(CreateRemoteAccessSessionRequest::configuration)).setter(setter(Builder::configuration)) .constructor(CreateRemoteAccessSessionConfiguration::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("configuration").build()).build(); private static final SdkField INTERACTION_MODE_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("interactionMode").getter(getter(CreateRemoteAccessSessionRequest::interactionModeAsString)) .setter(setter(Builder::interactionMode)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("interactionMode").build()).build(); private static final SdkField SKIP_APP_RESIGN_FIELD = SdkField. builder(MarshallingType.BOOLEAN) .memberName("skipAppResign").getter(getter(CreateRemoteAccessSessionRequest::skipAppResign)) .setter(setter(Builder::skipAppResign)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("skipAppResign").build()).build(); private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(PROJECT_ARN_FIELD, DEVICE_ARN_FIELD, INSTANCE_ARN_FIELD, SSH_PUBLIC_KEY_FIELD, REMOTE_DEBUG_ENABLED_FIELD, REMOTE_RECORD_ENABLED_FIELD, REMOTE_RECORD_APP_ARN_FIELD, NAME_FIELD, CLIENT_ID_FIELD, CONFIGURATION_FIELD, INTERACTION_MODE_FIELD, SKIP_APP_RESIGN_FIELD)); private final String projectArn; private final String deviceArn; private final String instanceArn; private final String sshPublicKey; private final Boolean remoteDebugEnabled; private final Boolean remoteRecordEnabled; private final String remoteRecordAppArn; private final String name; private final String clientId; private final CreateRemoteAccessSessionConfiguration configuration; private final String interactionMode; private final Boolean skipAppResign; private CreateRemoteAccessSessionRequest(BuilderImpl builder) { super(builder); this.projectArn = builder.projectArn; this.deviceArn = builder.deviceArn; this.instanceArn = builder.instanceArn; this.sshPublicKey = builder.sshPublicKey; this.remoteDebugEnabled = builder.remoteDebugEnabled; this.remoteRecordEnabled = builder.remoteRecordEnabled; this.remoteRecordAppArn = builder.remoteRecordAppArn; this.name = builder.name; this.clientId = builder.clientId; this.configuration = builder.configuration; this.interactionMode = builder.interactionMode; this.skipAppResign = builder.skipAppResign; } /** *

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

* * @return The Amazon Resource Name (ARN) of the project for which you want to create a remote access session. */ public final String projectArn() { return projectArn; } /** *

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

* * @return The ARN of the device for which you want to create a remote access session. */ public final String deviceArn() { return deviceArn; } /** *

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

* * @return The Amazon Resource Name (ARN) of the device instance for which you want to create a remote access * session. */ public final String instanceArn() { return instanceArn; } /** *

* 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. *

* * @return 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. */ public final String sshPublicKey() { return sshPublicKey; } /** *

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

*

* Remote debugging is no longer * supported. *

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

*

* Remote debugging is no longer supported. */ public final Boolean remoteDebugEnabled() { return remoteDebugEnabled; } /** *

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

* * @return Set to true to enable remote recording for the remote access session. */ public final Boolean remoteRecordEnabled() { return remoteRecordEnabled; } /** *

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

* * @return The Amazon Resource Name (ARN) for the app to be recorded in the remote access session. */ public final String remoteRecordAppArn() { return remoteRecordAppArn; } /** *

* The name of the remote access session to create. *

* * @return The name of the remote access session to create. */ public final String name() { return name; } /** *

* 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. *

* * @return 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. */ public final String clientId() { return clientId; } /** *

* The configuration information for the remote access session request. *

* * @return The configuration information for the remote access session request. */ public final CreateRemoteAccessSessionConfiguration configuration() { return configuration; } /** *

* 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. *

    *
  • *
*

* If the service returns an enum value that is not available in the current SDK version, {@link #interactionMode} * will return {@link InteractionMode#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available * from {@link #interactionModeAsString}. *

* * @return 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. *

    *
  • * @see InteractionMode */ public final InteractionMode interactionMode() { return InteractionMode.fromValue(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. *

      *
    • *
    *

    * If the service returns an enum value that is not available in the current SDK version, {@link #interactionMode} * will return {@link InteractionMode#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available * from {@link #interactionModeAsString}. *

    * * @return 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. *

      *
    • * @see InteractionMode */ public final String interactionModeAsString() { return interactionMode; } /** *

      * 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? *

      * * @return 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? */ public final Boolean skipAppResign() { return skipAppResign; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(projectArn()); hashCode = 31 * hashCode + Objects.hashCode(deviceArn()); hashCode = 31 * hashCode + Objects.hashCode(instanceArn()); hashCode = 31 * hashCode + Objects.hashCode(sshPublicKey()); hashCode = 31 * hashCode + Objects.hashCode(remoteDebugEnabled()); hashCode = 31 * hashCode + Objects.hashCode(remoteRecordEnabled()); hashCode = 31 * hashCode + Objects.hashCode(remoteRecordAppArn()); hashCode = 31 * hashCode + Objects.hashCode(name()); hashCode = 31 * hashCode + Objects.hashCode(clientId()); hashCode = 31 * hashCode + Objects.hashCode(configuration()); hashCode = 31 * hashCode + Objects.hashCode(interactionModeAsString()); hashCode = 31 * hashCode + Objects.hashCode(skipAppResign()); return hashCode; } @Override public final boolean equals(Object obj) { return super.equals(obj) && equalsBySdkFields(obj); } @Override public final boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof CreateRemoteAccessSessionRequest)) { return false; } CreateRemoteAccessSessionRequest other = (CreateRemoteAccessSessionRequest) obj; return Objects.equals(projectArn(), other.projectArn()) && Objects.equals(deviceArn(), other.deviceArn()) && Objects.equals(instanceArn(), other.instanceArn()) && Objects.equals(sshPublicKey(), other.sshPublicKey()) && Objects.equals(remoteDebugEnabled(), other.remoteDebugEnabled()) && Objects.equals(remoteRecordEnabled(), other.remoteRecordEnabled()) && Objects.equals(remoteRecordAppArn(), other.remoteRecordAppArn()) && Objects.equals(name(), other.name()) && Objects.equals(clientId(), other.clientId()) && Objects.equals(configuration(), other.configuration()) && Objects.equals(interactionModeAsString(), other.interactionModeAsString()) && Objects.equals(skipAppResign(), other.skipAppResign()); } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. */ @Override public final String toString() { return ToString.builder("CreateRemoteAccessSessionRequest").add("ProjectArn", projectArn()).add("DeviceArn", deviceArn()) .add("InstanceArn", instanceArn()).add("SshPublicKey", sshPublicKey()) .add("RemoteDebugEnabled", remoteDebugEnabled()).add("RemoteRecordEnabled", remoteRecordEnabled()) .add("RemoteRecordAppArn", remoteRecordAppArn()).add("Name", name()).add("ClientId", clientId()) .add("Configuration", configuration()).add("InteractionMode", interactionModeAsString()) .add("SkipAppResign", skipAppResign()).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "projectArn": return Optional.ofNullable(clazz.cast(projectArn())); case "deviceArn": return Optional.ofNullable(clazz.cast(deviceArn())); case "instanceArn": return Optional.ofNullable(clazz.cast(instanceArn())); case "sshPublicKey": return Optional.ofNullable(clazz.cast(sshPublicKey())); case "remoteDebugEnabled": return Optional.ofNullable(clazz.cast(remoteDebugEnabled())); case "remoteRecordEnabled": return Optional.ofNullable(clazz.cast(remoteRecordEnabled())); case "remoteRecordAppArn": return Optional.ofNullable(clazz.cast(remoteRecordAppArn())); case "name": return Optional.ofNullable(clazz.cast(name())); case "clientId": return Optional.ofNullable(clazz.cast(clientId())); case "configuration": return Optional.ofNullable(clazz.cast(configuration())); case "interactionMode": return Optional.ofNullable(clazz.cast(interactionModeAsString())); case "skipAppResign": return Optional.ofNullable(clazz.cast(skipAppResign())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((CreateRemoteAccessSessionRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends DeviceFarmRequest.Builder, SdkPojo, CopyableBuilder { /** *

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

      * * @param projectArn * The Amazon Resource Name (ARN) of the project for which you want to create a remote access session. * @return Returns a reference to this object so that method calls can be chained together. */ Builder projectArn(String projectArn); /** *

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

      * * @param deviceArn * The ARN of the device for which you want to create a remote access session. * @return Returns a reference to this object so that method calls can be chained together. */ Builder deviceArn(String deviceArn); /** *

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

      * * @param instanceArn * The Amazon Resource Name (ARN) of the device instance for which you want to create a remote access * session. * @return Returns a reference to this object so that method calls can be chained together. */ Builder instanceArn(String instanceArn); /** *

      * 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. *

      * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ Builder sshPublicKey(String sshPublicKey); /** *

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

      *

      * Remote debugging is no * longer supported. *

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

      *

      * Remote debugging is no longer * supported. * @return Returns a reference to this object so that method calls can be chained together. */ Builder remoteDebugEnabled(Boolean remoteDebugEnabled); /** *

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

      * * @param remoteRecordEnabled * Set to true to enable remote recording for the remote access session. * @return Returns a reference to this object so that method calls can be chained together. */ Builder remoteRecordEnabled(Boolean remoteRecordEnabled); /** *

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

      * * @param remoteRecordAppArn * The Amazon Resource Name (ARN) for the app to be recorded in the remote access session. * @return Returns a reference to this object so that method calls can be chained together. */ Builder remoteRecordAppArn(String remoteRecordAppArn); /** *

      * The name of the remote access session to create. *

      * * @param name * The name of the remote access session to create. * @return Returns a reference to this object so that method calls can be chained together. */ Builder name(String name); /** *

      * 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. *

      * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clientId(String clientId); /** *

      * The configuration information for the remote access session request. *

      * * @param configuration * The configuration information for the remote access session request. * @return Returns a reference to this object so that method calls can be chained together. */ Builder configuration(CreateRemoteAccessSessionConfiguration configuration); /** *

      * The configuration information for the remote access session request. *

      * This is a convenience method that creates an instance of the * {@link CreateRemoteAccessSessionConfiguration.Builder} avoiding the need to create one manually via * {@link CreateRemoteAccessSessionConfiguration#builder()}. * *

      * When the {@link Consumer} completes, {@link CreateRemoteAccessSessionConfiguration.Builder#build()} is called * immediately and its result is passed to {@link #configuration(CreateRemoteAccessSessionConfiguration)}. * * @param configuration * a consumer that will call methods on {@link CreateRemoteAccessSessionConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #configuration(CreateRemoteAccessSessionConfiguration) */ default Builder configuration(Consumer configuration) { return configuration(CreateRemoteAccessSessionConfiguration.builder().applyMutation(configuration).build()); } /** *

      * 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. *

        *
      • *
      * * @param 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. *

        *
      • * @see InteractionMode * @return Returns a reference to this object so that method calls can be chained together. * @see InteractionMode */ Builder interactionMode(String 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. *

          *
        • *
        * * @param 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. *

          *
        • * @see InteractionMode * @return Returns a reference to this object so that method calls can be chained together. * @see InteractionMode */ Builder interactionMode(InteractionMode interactionMode); /** *

          * 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? *

          * * @param 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? * @return Returns a reference to this object so that method calls can be chained together. */ Builder skipAppResign(Boolean skipAppResign); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends DeviceFarmRequest.BuilderImpl implements Builder { private String projectArn; private String deviceArn; private String instanceArn; private String sshPublicKey; private Boolean remoteDebugEnabled; private Boolean remoteRecordEnabled; private String remoteRecordAppArn; private String name; private String clientId; private CreateRemoteAccessSessionConfiguration configuration; private String interactionMode; private Boolean skipAppResign; private BuilderImpl() { } private BuilderImpl(CreateRemoteAccessSessionRequest model) { super(model); projectArn(model.projectArn); deviceArn(model.deviceArn); instanceArn(model.instanceArn); sshPublicKey(model.sshPublicKey); remoteDebugEnabled(model.remoteDebugEnabled); remoteRecordEnabled(model.remoteRecordEnabled); remoteRecordAppArn(model.remoteRecordAppArn); name(model.name); clientId(model.clientId); configuration(model.configuration); interactionMode(model.interactionMode); skipAppResign(model.skipAppResign); } public final String getProjectArn() { return projectArn; } public final void setProjectArn(String projectArn) { this.projectArn = projectArn; } @Override public final Builder projectArn(String projectArn) { this.projectArn = projectArn; return this; } public final String getDeviceArn() { return deviceArn; } public final void setDeviceArn(String deviceArn) { this.deviceArn = deviceArn; } @Override public final Builder deviceArn(String deviceArn) { this.deviceArn = deviceArn; return this; } public final String getInstanceArn() { return instanceArn; } public final void setInstanceArn(String instanceArn) { this.instanceArn = instanceArn; } @Override public final Builder instanceArn(String instanceArn) { this.instanceArn = instanceArn; return this; } public final String getSshPublicKey() { return sshPublicKey; } public final void setSshPublicKey(String sshPublicKey) { this.sshPublicKey = sshPublicKey; } @Override public final Builder sshPublicKey(String sshPublicKey) { this.sshPublicKey = sshPublicKey; return this; } public final Boolean getRemoteDebugEnabled() { return remoteDebugEnabled; } public final void setRemoteDebugEnabled(Boolean remoteDebugEnabled) { this.remoteDebugEnabled = remoteDebugEnabled; } @Override public final Builder remoteDebugEnabled(Boolean remoteDebugEnabled) { this.remoteDebugEnabled = remoteDebugEnabled; return this; } public final Boolean getRemoteRecordEnabled() { return remoteRecordEnabled; } public final void setRemoteRecordEnabled(Boolean remoteRecordEnabled) { this.remoteRecordEnabled = remoteRecordEnabled; } @Override public final Builder remoteRecordEnabled(Boolean remoteRecordEnabled) { this.remoteRecordEnabled = remoteRecordEnabled; return this; } public final String getRemoteRecordAppArn() { return remoteRecordAppArn; } public final void setRemoteRecordAppArn(String remoteRecordAppArn) { this.remoteRecordAppArn = remoteRecordAppArn; } @Override public final Builder remoteRecordAppArn(String remoteRecordAppArn) { this.remoteRecordAppArn = remoteRecordAppArn; return this; } public final String getName() { return name; } public final void setName(String name) { this.name = name; } @Override public final Builder name(String name) { this.name = name; return this; } public final String getClientId() { return clientId; } public final void setClientId(String clientId) { this.clientId = clientId; } @Override public final Builder clientId(String clientId) { this.clientId = clientId; return this; } public final CreateRemoteAccessSessionConfiguration.Builder getConfiguration() { return configuration != null ? configuration.toBuilder() : null; } public final void setConfiguration(CreateRemoteAccessSessionConfiguration.BuilderImpl configuration) { this.configuration = configuration != null ? configuration.build() : null; } @Override public final Builder configuration(CreateRemoteAccessSessionConfiguration configuration) { this.configuration = configuration; return this; } public final String getInteractionMode() { return interactionMode; } public final void setInteractionMode(String interactionMode) { this.interactionMode = interactionMode; } @Override public final Builder interactionMode(String interactionMode) { this.interactionMode = interactionMode; return this; } @Override public final Builder interactionMode(InteractionMode interactionMode) { this.interactionMode(interactionMode == null ? null : interactionMode.toString()); return this; } public final Boolean getSkipAppResign() { return skipAppResign; } public final void setSkipAppResign(Boolean skipAppResign) { this.skipAppResign = skipAppResign; } @Override public final Builder skipAppResign(Boolean skipAppResign) { this.skipAppResign = skipAppResign; return this; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public CreateRemoteAccessSessionRequest build() { return new CreateRemoteAccessSessionRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy