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

Represents a condition for a device pool.

See Also:

AWS API * Reference

*/ class Rule { public: AWS_DEVICEFARM_API Rule(); AWS_DEVICEFARM_API Rule(Aws::Utils::Json::JsonView jsonValue); AWS_DEVICEFARM_API Rule& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_DEVICEFARM_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The rule's stringified attribute. For example, specify the value as * "\"abc\"".

The supported operators for each attribute are * provided in the following list.

APPIUM_VERSION

The * Appium version for the test.

Supported operators: CONTAINS *

ARN

The Amazon Resource Name (ARN) of the device * (for example, * arn:aws:devicefarm:us-west-2::device:12345Example.

Supported * operators: EQUALS, IN, NOT_IN

*
AVAILABILITY

The current availability of the device. Valid * values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.

*

Supported operators: EQUALS

FLEET_TYPE
*

The fleet type. Valid values are PUBLIC or PRIVATE.

Supported * operators: EQUALS

FORM_FACTOR

The * device form factor. Valid values are PHONE or TABLET.

Supported * operators: EQUALS, IN, NOT_IN

*
INSTANCE_ARN

The Amazon Resource Name (ARN) of the device * instance.

Supported operators: IN, NOT_IN

*
INSTANCE_LABELS

The label of the device instance.

*

Supported operators: CONTAINS

MANUFACTURER
*

The device manufacturer (for example, Apple).

Supported * operators: EQUALS, IN, NOT_IN

*
MODEL

The device model, such as Apple iPad Air 2 or Google * Pixel.

Supported operators: CONTAINS, EQUALS, * IN, NOT_IN

OS_VERSION

The * operating system version (for example, 10.3.2).

Supported operators: * EQUALS, GREATER_THAN, * GREATER_THAN_OR_EQUALS, IN, LESS_THAN, * LESS_THAN_OR_EQUALS, NOT_IN

*
PLATFORM

The device platform. Valid values are ANDROID or * IOS.

Supported operators: EQUALS, IN, * NOT_IN

REMOTE_ACCESS_ENABLED

Whether * the device is enabled for remote access. Valid values are TRUE or FALSE.

*

Supported operators: EQUALS

*
REMOTE_DEBUG_ENABLED

Whether the device is enabled for remote * debugging. Valid values are TRUE or FALSE.

Supported operators: * EQUALS

Because remote debugging is no * longer supported, this filter is ignored.

*/ inline const DeviceAttribute& GetAttribute() const{ return m_attribute; } /** *

The rule's stringified attribute. For example, specify the value as * "\"abc\"".

The supported operators for each attribute are * provided in the following list.

APPIUM_VERSION

The * Appium version for the test.

Supported operators: CONTAINS *

ARN

The Amazon Resource Name (ARN) of the device * (for example, * arn:aws:devicefarm:us-west-2::device:12345Example.

Supported * operators: EQUALS, IN, NOT_IN

*
AVAILABILITY

The current availability of the device. Valid * values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.

*

Supported operators: EQUALS

FLEET_TYPE
*

The fleet type. Valid values are PUBLIC or PRIVATE.

Supported * operators: EQUALS

FORM_FACTOR

The * device form factor. Valid values are PHONE or TABLET.

Supported * operators: EQUALS, IN, NOT_IN

*
INSTANCE_ARN

The Amazon Resource Name (ARN) of the device * instance.

Supported operators: IN, NOT_IN

*
INSTANCE_LABELS

The label of the device instance.

*

Supported operators: CONTAINS

MANUFACTURER
*

The device manufacturer (for example, Apple).

Supported * operators: EQUALS, IN, NOT_IN

*
MODEL

The device model, such as Apple iPad Air 2 or Google * Pixel.

Supported operators: CONTAINS, EQUALS, * IN, NOT_IN

OS_VERSION

The * operating system version (for example, 10.3.2).

Supported operators: * EQUALS, GREATER_THAN, * GREATER_THAN_OR_EQUALS, IN, LESS_THAN, * LESS_THAN_OR_EQUALS, NOT_IN

*
PLATFORM

The device platform. Valid values are ANDROID or * IOS.

Supported operators: EQUALS, IN, * NOT_IN

REMOTE_ACCESS_ENABLED

Whether * the device is enabled for remote access. Valid values are TRUE or FALSE.

*

Supported operators: EQUALS

*
REMOTE_DEBUG_ENABLED

Whether the device is enabled for remote * debugging. Valid values are TRUE or FALSE.

Supported operators: * EQUALS

Because remote debugging is no * longer supported, this filter is ignored.

*/ inline bool AttributeHasBeenSet() const { return m_attributeHasBeenSet; } /** *

The rule's stringified attribute. For example, specify the value as * "\"abc\"".

The supported operators for each attribute are * provided in the following list.

APPIUM_VERSION

The * Appium version for the test.

Supported operators: CONTAINS *

ARN

The Amazon Resource Name (ARN) of the device * (for example, * arn:aws:devicefarm:us-west-2::device:12345Example.

Supported * operators: EQUALS, IN, NOT_IN

*
AVAILABILITY

The current availability of the device. Valid * values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.

*

Supported operators: EQUALS

FLEET_TYPE
*

The fleet type. Valid values are PUBLIC or PRIVATE.

Supported * operators: EQUALS

FORM_FACTOR

The * device form factor. Valid values are PHONE or TABLET.

Supported * operators: EQUALS, IN, NOT_IN

*
INSTANCE_ARN

The Amazon Resource Name (ARN) of the device * instance.

Supported operators: IN, NOT_IN

*
INSTANCE_LABELS

The label of the device instance.

*

Supported operators: CONTAINS

MANUFACTURER
*

The device manufacturer (for example, Apple).

Supported * operators: EQUALS, IN, NOT_IN

*
MODEL

The device model, such as Apple iPad Air 2 or Google * Pixel.

Supported operators: CONTAINS, EQUALS, * IN, NOT_IN

OS_VERSION

The * operating system version (for example, 10.3.2).

Supported operators: * EQUALS, GREATER_THAN, * GREATER_THAN_OR_EQUALS, IN, LESS_THAN, * LESS_THAN_OR_EQUALS, NOT_IN

*
PLATFORM

The device platform. Valid values are ANDROID or * IOS.

Supported operators: EQUALS, IN, * NOT_IN

REMOTE_ACCESS_ENABLED

Whether * the device is enabled for remote access. Valid values are TRUE or FALSE.

*

Supported operators: EQUALS

*
REMOTE_DEBUG_ENABLED

Whether the device is enabled for remote * debugging. Valid values are TRUE or FALSE.

Supported operators: * EQUALS

Because remote debugging is no * longer supported, this filter is ignored.

*/ inline void SetAttribute(const DeviceAttribute& value) { m_attributeHasBeenSet = true; m_attribute = value; } /** *

The rule's stringified attribute. For example, specify the value as * "\"abc\"".

The supported operators for each attribute are * provided in the following list.

APPIUM_VERSION

The * Appium version for the test.

Supported operators: CONTAINS *

ARN

The Amazon Resource Name (ARN) of the device * (for example, * arn:aws:devicefarm:us-west-2::device:12345Example.

Supported * operators: EQUALS, IN, NOT_IN

*
AVAILABILITY

The current availability of the device. Valid * values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.

*

Supported operators: EQUALS

FLEET_TYPE
*

The fleet type. Valid values are PUBLIC or PRIVATE.

Supported * operators: EQUALS

FORM_FACTOR

The * device form factor. Valid values are PHONE or TABLET.

Supported * operators: EQUALS, IN, NOT_IN

*
INSTANCE_ARN

The Amazon Resource Name (ARN) of the device * instance.

Supported operators: IN, NOT_IN

*
INSTANCE_LABELS

The label of the device instance.

*

Supported operators: CONTAINS

MANUFACTURER
*

The device manufacturer (for example, Apple).

Supported * operators: EQUALS, IN, NOT_IN

*
MODEL

The device model, such as Apple iPad Air 2 or Google * Pixel.

Supported operators: CONTAINS, EQUALS, * IN, NOT_IN

OS_VERSION

The * operating system version (for example, 10.3.2).

Supported operators: * EQUALS, GREATER_THAN, * GREATER_THAN_OR_EQUALS, IN, LESS_THAN, * LESS_THAN_OR_EQUALS, NOT_IN

*
PLATFORM

The device platform. Valid values are ANDROID or * IOS.

Supported operators: EQUALS, IN, * NOT_IN

REMOTE_ACCESS_ENABLED

Whether * the device is enabled for remote access. Valid values are TRUE or FALSE.

*

Supported operators: EQUALS

*
REMOTE_DEBUG_ENABLED

Whether the device is enabled for remote * debugging. Valid values are TRUE or FALSE.

Supported operators: * EQUALS

Because remote debugging is no * longer supported, this filter is ignored.

*/ inline void SetAttribute(DeviceAttribute&& value) { m_attributeHasBeenSet = true; m_attribute = std::move(value); } /** *

The rule's stringified attribute. For example, specify the value as * "\"abc\"".

The supported operators for each attribute are * provided in the following list.

APPIUM_VERSION

The * Appium version for the test.

Supported operators: CONTAINS *

ARN

The Amazon Resource Name (ARN) of the device * (for example, * arn:aws:devicefarm:us-west-2::device:12345Example.

Supported * operators: EQUALS, IN, NOT_IN

*
AVAILABILITY

The current availability of the device. Valid * values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.

*

Supported operators: EQUALS

FLEET_TYPE
*

The fleet type. Valid values are PUBLIC or PRIVATE.

Supported * operators: EQUALS

FORM_FACTOR

The * device form factor. Valid values are PHONE or TABLET.

Supported * operators: EQUALS, IN, NOT_IN

*
INSTANCE_ARN

The Amazon Resource Name (ARN) of the device * instance.

Supported operators: IN, NOT_IN

*
INSTANCE_LABELS

The label of the device instance.

*

Supported operators: CONTAINS

MANUFACTURER
*

The device manufacturer (for example, Apple).

Supported * operators: EQUALS, IN, NOT_IN

*
MODEL

The device model, such as Apple iPad Air 2 or Google * Pixel.

Supported operators: CONTAINS, EQUALS, * IN, NOT_IN

OS_VERSION

The * operating system version (for example, 10.3.2).

Supported operators: * EQUALS, GREATER_THAN, * GREATER_THAN_OR_EQUALS, IN, LESS_THAN, * LESS_THAN_OR_EQUALS, NOT_IN

*
PLATFORM

The device platform. Valid values are ANDROID or * IOS.

Supported operators: EQUALS, IN, * NOT_IN

REMOTE_ACCESS_ENABLED

Whether * the device is enabled for remote access. Valid values are TRUE or FALSE.

*

Supported operators: EQUALS

*
REMOTE_DEBUG_ENABLED

Whether the device is enabled for remote * debugging. Valid values are TRUE or FALSE.

Supported operators: * EQUALS

Because remote debugging is no * longer supported, this filter is ignored.

*/ inline Rule& WithAttribute(const DeviceAttribute& value) { SetAttribute(value); return *this;} /** *

The rule's stringified attribute. For example, specify the value as * "\"abc\"".

The supported operators for each attribute are * provided in the following list.

APPIUM_VERSION

The * Appium version for the test.

Supported operators: CONTAINS *

ARN

The Amazon Resource Name (ARN) of the device * (for example, * arn:aws:devicefarm:us-west-2::device:12345Example.

Supported * operators: EQUALS, IN, NOT_IN

*
AVAILABILITY

The current availability of the device. Valid * values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.

*

Supported operators: EQUALS

FLEET_TYPE
*

The fleet type. Valid values are PUBLIC or PRIVATE.

Supported * operators: EQUALS

FORM_FACTOR

The * device form factor. Valid values are PHONE or TABLET.

Supported * operators: EQUALS, IN, NOT_IN

*
INSTANCE_ARN

The Amazon Resource Name (ARN) of the device * instance.

Supported operators: IN, NOT_IN

*
INSTANCE_LABELS

The label of the device instance.

*

Supported operators: CONTAINS

MANUFACTURER
*

The device manufacturer (for example, Apple).

Supported * operators: EQUALS, IN, NOT_IN

*
MODEL

The device model, such as Apple iPad Air 2 or Google * Pixel.

Supported operators: CONTAINS, EQUALS, * IN, NOT_IN

OS_VERSION

The * operating system version (for example, 10.3.2).

Supported operators: * EQUALS, GREATER_THAN, * GREATER_THAN_OR_EQUALS, IN, LESS_THAN, * LESS_THAN_OR_EQUALS, NOT_IN

*
PLATFORM

The device platform. Valid values are ANDROID or * IOS.

Supported operators: EQUALS, IN, * NOT_IN

REMOTE_ACCESS_ENABLED

Whether * the device is enabled for remote access. Valid values are TRUE or FALSE.

*

Supported operators: EQUALS

*
REMOTE_DEBUG_ENABLED

Whether the device is enabled for remote * debugging. Valid values are TRUE or FALSE.

Supported operators: * EQUALS

Because remote debugging is no * longer supported, this filter is ignored.

*/ inline Rule& WithAttribute(DeviceAttribute&& value) { SetAttribute(std::move(value)); return *this;} /** *

Specifies how Device Farm compares the rule's attribute to the value. For the * operators that are supported by each attribute, see the attribute * descriptions.

*/ inline const RuleOperator& GetOperator() const{ return m_operator; } /** *

Specifies how Device Farm compares the rule's attribute to the value. For the * operators that are supported by each attribute, see the attribute * descriptions.

*/ inline bool OperatorHasBeenSet() const { return m_operatorHasBeenSet; } /** *

Specifies how Device Farm compares the rule's attribute to the value. For the * operators that are supported by each attribute, see the attribute * descriptions.

*/ inline void SetOperator(const RuleOperator& value) { m_operatorHasBeenSet = true; m_operator = value; } /** *

Specifies how Device Farm compares the rule's attribute to the value. For the * operators that are supported by each attribute, see the attribute * descriptions.

*/ inline void SetOperator(RuleOperator&& value) { m_operatorHasBeenSet = true; m_operator = std::move(value); } /** *

Specifies how Device Farm compares the rule's attribute to the value. For the * operators that are supported by each attribute, see the attribute * descriptions.

*/ inline Rule& WithOperator(const RuleOperator& value) { SetOperator(value); return *this;} /** *

Specifies how Device Farm compares the rule's attribute to the value. For the * operators that are supported by each attribute, see the attribute * descriptions.

*/ inline Rule& WithOperator(RuleOperator&& value) { SetOperator(std::move(value)); return *this;} /** *

The rule's value.

*/ inline const Aws::String& GetValue() const{ return m_value; } /** *

The rule's value.

*/ inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; } /** *

The rule's value.

*/ inline void SetValue(const Aws::String& value) { m_valueHasBeenSet = true; m_value = value; } /** *

The rule's value.

*/ inline void SetValue(Aws::String&& value) { m_valueHasBeenSet = true; m_value = std::move(value); } /** *

The rule's value.

*/ inline void SetValue(const char* value) { m_valueHasBeenSet = true; m_value.assign(value); } /** *

The rule's value.

*/ inline Rule& WithValue(const Aws::String& value) { SetValue(value); return *this;} /** *

The rule's value.

*/ inline Rule& WithValue(Aws::String&& value) { SetValue(std::move(value)); return *this;} /** *

The rule's value.

*/ inline Rule& WithValue(const char* value) { SetValue(value); return *this;} private: DeviceAttribute m_attribute; bool m_attributeHasBeenSet = false; RuleOperator m_operator; bool m_operatorHasBeenSet = false; Aws::String m_value; bool m_valueHasBeenSet = false; }; } // namespace Model } // namespace DeviceFarm } // namespace Aws