

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# AWS::DeviceFarm::DevicePool
<a name="aws-resource-devicefarm-devicepool"></a>

Represents a request to the create device pool operation.

## Syntax
<a name="aws-resource-devicefarm-devicepool-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-devicefarm-devicepool-syntax.json"></a>

```
{
  "Type" : "AWS::DeviceFarm::DevicePool",
  "Properties" : {
      "[Description](#cfn-devicefarm-devicepool-description)" : String,
      "[MaxDevices](#cfn-devicefarm-devicepool-maxdevices)" : Integer,
      "[Name](#cfn-devicefarm-devicepool-name)" : String,
      "[ProjectArn](#cfn-devicefarm-devicepool-projectarn)" : String,
      "[Rules](#cfn-devicefarm-devicepool-rules)" : [ Rule, ... ],
      "[Tags](#cfn-devicefarm-devicepool-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-devicefarm-devicepool-syntax.yaml"></a>

```
Type: AWS::DeviceFarm::DevicePool
Properties:
  [Description](#cfn-devicefarm-devicepool-description): String
  [MaxDevices](#cfn-devicefarm-devicepool-maxdevices): Integer
  [Name](#cfn-devicefarm-devicepool-name): String
  [ProjectArn](#cfn-devicefarm-devicepool-projectarn): String
  [Rules](#cfn-devicefarm-devicepool-rules): 
    - Rule
  [Tags](#cfn-devicefarm-devicepool-tags): 
    - Tag
```

## Properties
<a name="aws-resource-devicefarm-devicepool-properties"></a>

`Description`  <a name="cfn-devicefarm-devicepool-description"></a>
The device pool's description.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `16384`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MaxDevices`  <a name="cfn-devicefarm-devicepool-maxdevices"></a>
The number of devices that Device Farm can add to your device pool. Device Farm adds devices that are available and meet the criteria that you assign for the `rules` parameter. Depending on how many devices meet these constraints, your device pool might contain fewer devices than the value for this parameter.  
By specifying the maximum number of devices, you can control the costs that you incur by running tests.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-devicefarm-devicepool-name"></a>
The device pool's name.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ProjectArn`  <a name="cfn-devicefarm-devicepool-projectarn"></a>
The ARN of the project for the device pool.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^arn:.+`  
*Minimum*: `32`  
*Maximum*: `1011`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Rules`  <a name="cfn-devicefarm-devicepool-rules"></a>
The device pool's rules.  
*Required*: Yes  
*Type*: Array of [Rule](aws-properties-devicefarm-devicepool-rule.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-devicefarm-devicepool-tags"></a>
An array of key-value pairs to apply to this resource.  
For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation guide*.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-devicefarm-devicepool-tag.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-devicefarm-devicepool-return-values"></a>

### Ref
<a name="aws-resource-devicefarm-devicepool-return-values-ref"></a>

Not supported for this resource.

### Fn::GetAtt
<a name="aws-resource-devicefarm-devicepool-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-devicefarm-devicepool-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
The Amazon Resource Name (ARN) of the device pool. See [Amazon resource names](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *General Reference guide*.

# AWS::DeviceFarm::DevicePool Rule
<a name="aws-properties-devicefarm-devicepool-rule"></a>

Represents a condition for a device pool.

## Syntax
<a name="aws-properties-devicefarm-devicepool-rule-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-devicefarm-devicepool-rule-syntax.json"></a>

```
{
  "[Attribute](#cfn-devicefarm-devicepool-rule-attribute)" : String,
  "[Operator](#cfn-devicefarm-devicepool-rule-operator)" : String,
  "[Value](#cfn-devicefarm-devicepool-rule-value)" : String
}
```

### YAML
<a name="aws-properties-devicefarm-devicepool-rule-syntax.yaml"></a>

```
  [Attribute](#cfn-devicefarm-devicepool-rule-attribute): String
  [Operator](#cfn-devicefarm-devicepool-rule-operator): String
  [Value](#cfn-devicefarm-devicepool-rule-value): String
```

## Properties
<a name="aws-properties-devicefarm-devicepool-rule-properties"></a>

`Attribute`  <a name="cfn-devicefarm-devicepool-rule-attribute"></a>
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\$1VERSION  
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\$1AVAILABLE, BUSY, or TEMPORARY\$1NOT\$1AVAILABLE.  
Supported operators: `EQUALS`  
FLEET\$1TYPE  
The fleet type. Valid values are PUBLIC or PRIVATE.  
Supported operators: `EQUALS`  
FORM\$1FACTOR  
The device form factor. Valid values are PHONE or TABLET.  
Supported operators: `EQUALS`, `IN`, `NOT_IN`  
INSTANCE\$1ARN  
The Amazon Resource Name (ARN) of the device instance.  
Supported operators: `IN`, `NOT_IN`  
INSTANCE\$1LABELS  
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\$1VERSION  
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\$1ACCESS\$1ENABLED  
Whether the device is enabled for remote access. Valid values are TRUE or FALSE.  
Supported operators: `EQUALS`  
REMOTE\$1DEBUG\$1ENABLED  
Whether the device is enabled for remote debugging. Valid values are TRUE or FALSE.  
Supported operators: `EQUALS`  
Because remote debugging is [no longer supported](https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html), this filter is ignored.
*Required*: No  
*Type*: String  
*Allowed values*: `ARN | PLATFORM | FORM_FACTOR | MANUFACTURER | REMOTE_ACCESS_ENABLED | REMOTE_DEBUG_ENABLED | APPIUM_VERSION | INSTANCE_ARN | INSTANCE_LABELS | FLEET_TYPE | OS_VERSION | MODEL | AVAILABILITY`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Operator`  <a name="cfn-devicefarm-devicepool-rule-operator"></a>
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.  
*Required*: No  
*Type*: String  
*Allowed values*: `EQUALS | LESS_THAN | LESS_THAN_OR_EQUALS | GREATER_THAN | GREATER_THAN_OR_EQUALS | IN | NOT_IN | CONTAINS`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-devicefarm-devicepool-rule-value"></a>
The rule's value.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::DeviceFarm::DevicePool Tag
<a name="aws-properties-devicefarm-devicepool-tag"></a>

The metadata that you apply to a resource to help you categorize and organize it. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters. Tag values can have a maximum length of 256 characters. 

## Syntax
<a name="aws-properties-devicefarm-devicepool-tag-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-devicefarm-devicepool-tag-syntax.json"></a>

```
{
  "[Key](#cfn-devicefarm-devicepool-tag-key)" : String,
  "[Value](#cfn-devicefarm-devicepool-tag-value)" : String
}
```

### YAML
<a name="aws-properties-devicefarm-devicepool-tag-syntax.yaml"></a>

```
  [Key](#cfn-devicefarm-devicepool-tag-key): String
  [Value](#cfn-devicefarm-devicepool-tag-value): String
```

## Properties
<a name="aws-properties-devicefarm-devicepool-tag-properties"></a>

`Key`  <a name="cfn-devicefarm-devicepool-tag-key"></a>
One part of a key-value pair that makes up a tag. A `key` is a general label that acts like a category for more specific tag values.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-devicefarm-devicepool-tag-value"></a>
The optional part of a key-value pair that makes up a tag. A `value` acts as a descriptor in a tag category (key).  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)