

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::SMSVOICE::Pool
<a name="aws-resource-smsvoice-pool"></a>

Creates a new pool and associates the specified origination identity to the pool. A pool can include one or more phone numbers and SenderIds that are associated with your AWS account.

The new pool inherits its configuration from the specified origination identity. This includes keywords, message type, opt-out list, two-way configuration, and self-managed opt-out configuration. Deletion protection isn't inherited from the origination identity and defaults to false.

If the origination identity is a phone number and is already associated with another pool, an error is returned. A sender ID can be associated with multiple pools.

## Syntax
<a name="aws-resource-smsvoice-pool-syntax"></a>

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

### JSON
<a name="aws-resource-smsvoice-pool-syntax.json"></a>

```
{
  "Type" : "AWS::SMSVOICE::Pool",
  "Properties" : {
      "[DeletionProtectionEnabled](#cfn-smsvoice-pool-deletionprotectionenabled)" : Boolean,
      "[MandatoryKeywords](#cfn-smsvoice-pool-mandatorykeywords)" : MandatoryKeywords,
      "[OptionalKeywords](#cfn-smsvoice-pool-optionalkeywords)" : [ OptionalKeyword, ... ],
      "[OptOutListName](#cfn-smsvoice-pool-optoutlistname)" : String,
      "[OriginationIdentities](#cfn-smsvoice-pool-originationidentities)" : [ String, ... ],
      "[SelfManagedOptOutsEnabled](#cfn-smsvoice-pool-selfmanagedoptoutsenabled)" : Boolean,
      "[SharedRoutesEnabled](#cfn-smsvoice-pool-sharedroutesenabled)" : Boolean,
      "[Tags](#cfn-smsvoice-pool-tags)" : [ Tag, ... ],
      "[TwoWay](#cfn-smsvoice-pool-twoway)" : TwoWay
    }
}
```

### YAML
<a name="aws-resource-smsvoice-pool-syntax.yaml"></a>

```
Type: AWS::SMSVOICE::Pool
Properties:
  [DeletionProtectionEnabled](#cfn-smsvoice-pool-deletionprotectionenabled): Boolean
  [MandatoryKeywords](#cfn-smsvoice-pool-mandatorykeywords): 
    MandatoryKeywords
  [OptionalKeywords](#cfn-smsvoice-pool-optionalkeywords): 
    - OptionalKeyword
  [OptOutListName](#cfn-smsvoice-pool-optoutlistname): String
  [OriginationIdentities](#cfn-smsvoice-pool-originationidentities): 
    - String
  [SelfManagedOptOutsEnabled](#cfn-smsvoice-pool-selfmanagedoptoutsenabled): Boolean
  [SharedRoutesEnabled](#cfn-smsvoice-pool-sharedroutesenabled): Boolean
  [Tags](#cfn-smsvoice-pool-tags): 
    - Tag
  [TwoWay](#cfn-smsvoice-pool-twoway): 
    TwoWay
```

## Properties
<a name="aws-resource-smsvoice-pool-properties"></a>

`DeletionProtectionEnabled`  <a name="cfn-smsvoice-pool-deletionprotectionenabled"></a>
When set to true the pool can't be deleted.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MandatoryKeywords`  <a name="cfn-smsvoice-pool-mandatorykeywords"></a>
Creates or updates the pool's `MandatoryKeyword` configuration. For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the AWS End User Messaging SMS User Guide.  
*Required*: Yes  
*Type*: [MandatoryKeywords](aws-properties-smsvoice-pool-mandatorykeywords.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OptionalKeywords`  <a name="cfn-smsvoice-pool-optionalkeywords"></a>
Specifies any optional keywords to associate with the pool. For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the AWS End User Messaging SMS User Guide.  
*Required*: No  
*Type*: Array of [OptionalKeyword](aws-properties-smsvoice-pool-optionalkeyword.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OptOutListName`  <a name="cfn-smsvoice-pool-optoutlistname"></a>
The name of the OptOutList associated with the pool.  
*Required*: No  
*Type*: String  
*Pattern*: `^[A-Za-z0-9_:/-]+$`  
*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)

`OriginationIdentities`  <a name="cfn-smsvoice-pool-originationidentities"></a>
The list of origination identities to apply to the pool, either `PhoneNumberArn` or `SenderIdArn`. For more information, see [Registrations](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html) in the AWS End User Messaging SMS User Guide.  
If you are using a shared AWS End User Messaging SMS resource then you must use the full Amazon Resource Name (ARN).
*Required*: Yes  
*Type*: Array of String  
*Maximum*: `256`  
*Minimum*: `20 | 1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SelfManagedOptOutsEnabled`  <a name="cfn-smsvoice-pool-selfmanagedoptoutsenabled"></a>
When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, AWS End User Messaging SMS automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. For more information see [Self-managed opt-outs](https://docs.aws.amazon.com//pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out)  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SharedRoutesEnabled`  <a name="cfn-smsvoice-pool-sharedroutesenabled"></a>
Allows you to enable shared routes on your pool.  
By default, this is set to `False`. If you set this value to `True`, your messages are sent using phone numbers or sender IDs (depending on the country) that are shared with other users. In some countries, such as the United States, senders aren't allowed to use shared routes and must use a dedicated phone number or short code.  
*Required*: No  
*Type*: Boolean  
*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-smsvoice-pool-tags"></a>
An array of tags (key and value pairs) associated with the pool.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-smsvoice-pool-tag.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TwoWay`  <a name="cfn-smsvoice-pool-twoway"></a>
Describes the two-way SMS configuration for a phone number. For more information, see [Two-way SMS messaging](https://docs.aws.amazon.com/sms-voice/latest/userguide/two-way-sms.html) in the AWS End User Messaging SMS User Guide.  
*Required*: No  
*Type*: [TwoWay](aws-properties-smsvoice-pool-twoway.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-smsvoice-pool-return-values"></a>

### Ref
<a name="aws-resource-smsvoice-pool-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns`PoolId`.

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

#### 
<a name="aws-resource-smsvoice-pool-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
The Amazon Resource Name of the `Pool`.

`PoolId`  <a name="PoolId-fn::getatt"></a>
The unique identifier for the pool.

# AWS::SMSVOICE::Pool MandatoryKeyword
<a name="aws-properties-smsvoice-pool-mandatorykeyword"></a>

The keywords `HELP` and `STOP` are mandatory keywords that each phone number must have. For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the AWS End User Messaging SMS User Guide.

## Syntax
<a name="aws-properties-smsvoice-pool-mandatorykeyword-syntax"></a>

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

### JSON
<a name="aws-properties-smsvoice-pool-mandatorykeyword-syntax.json"></a>

```
{
  "[Message](#cfn-smsvoice-pool-mandatorykeyword-message)" : String
}
```

### YAML
<a name="aws-properties-smsvoice-pool-mandatorykeyword-syntax.yaml"></a>

```
  [Message](#cfn-smsvoice-pool-mandatorykeyword-message): String
```

## Properties
<a name="aws-properties-smsvoice-pool-mandatorykeyword-properties"></a>

`Message`  <a name="cfn-smsvoice-pool-mandatorykeyword-message"></a>
The message associated with the keyword.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^(?!\s*$)[\s\S]+$`  
*Maximum*: `1600`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::SMSVOICE::Pool MandatoryKeywords
<a name="aws-properties-smsvoice-pool-mandatorykeywords"></a>

The manadatory keywords, `HELP` and `STOP` to add to the pool. For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the AWS End User Messaging SMS User Guide.

## Syntax
<a name="aws-properties-smsvoice-pool-mandatorykeywords-syntax"></a>

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

### JSON
<a name="aws-properties-smsvoice-pool-mandatorykeywords-syntax.json"></a>

```
{
  "[HELP](#cfn-smsvoice-pool-mandatorykeywords-help)" : MandatoryKeyword,
  "[STOP](#cfn-smsvoice-pool-mandatorykeywords-stop)" : MandatoryKeyword
}
```

### YAML
<a name="aws-properties-smsvoice-pool-mandatorykeywords-syntax.yaml"></a>

```
  [HELP](#cfn-smsvoice-pool-mandatorykeywords-help): 
    MandatoryKeyword
  [STOP](#cfn-smsvoice-pool-mandatorykeywords-stop): 
    MandatoryKeyword
```

## Properties
<a name="aws-properties-smsvoice-pool-mandatorykeywords-properties"></a>

`HELP`  <a name="cfn-smsvoice-pool-mandatorykeywords-help"></a>
Specifies the pool's `HELP` keyword. For more information, see [Opt out list required keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-keywords.html) in the AWS End User Messaging SMS User Guide.  
*Required*: Yes  
*Type*: [MandatoryKeyword](aws-properties-smsvoice-pool-mandatorykeyword.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`STOP`  <a name="cfn-smsvoice-pool-mandatorykeywords-stop"></a>
Specifies the pool's opt-out keyword. For more information, see [Required opt-out keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords-required.html) in the AWS End User Messaging SMS User Guide.  
*Required*: Yes  
*Type*: [MandatoryKeyword](aws-properties-smsvoice-pool-mandatorykeyword.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::SMSVOICE::Pool OptionalKeyword
<a name="aws-properties-smsvoice-pool-optionalkeyword"></a>

The pool's `OptionalKeyword `configuration. For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the AWS End User Messaging SMS User Guide.

## Syntax
<a name="aws-properties-smsvoice-pool-optionalkeyword-syntax"></a>

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

### JSON
<a name="aws-properties-smsvoice-pool-optionalkeyword-syntax.json"></a>

```
{
  "[Action](#cfn-smsvoice-pool-optionalkeyword-action)" : String,
  "[Keyword](#cfn-smsvoice-pool-optionalkeyword-keyword)" : String,
  "[Message](#cfn-smsvoice-pool-optionalkeyword-message)" : String
}
```

### YAML
<a name="aws-properties-smsvoice-pool-optionalkeyword-syntax.yaml"></a>

```
  [Action](#cfn-smsvoice-pool-optionalkeyword-action): String
  [Keyword](#cfn-smsvoice-pool-optionalkeyword-keyword): String
  [Message](#cfn-smsvoice-pool-optionalkeyword-message): String
```

## Properties
<a name="aws-properties-smsvoice-pool-optionalkeyword-properties"></a>

`Action`  <a name="cfn-smsvoice-pool-optionalkeyword-action"></a>
The action to perform when the keyword is used.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `AUTOMATIC_RESPONSE | OPT_OUT | OPT_IN`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Keyword`  <a name="cfn-smsvoice-pool-optionalkeyword-keyword"></a>
The new keyword to add.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^(?!(?i)(stop|help)$)[ \S]+`  
*Maximum*: `30`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Message`  <a name="cfn-smsvoice-pool-optionalkeyword-message"></a>
The message associated with the keyword.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^(?!\s*$)[\s\S]+$`  
*Maximum*: `1600`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::SMSVOICE::Pool Tag
<a name="aws-properties-smsvoice-pool-tag"></a>

The list of tags to be added to the specified topic.

## Syntax
<a name="aws-properties-smsvoice-pool-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-smsvoice-pool-tag-key): String
  [Value](#cfn-smsvoice-pool-tag-value): String
```

## Properties
<a name="aws-properties-smsvoice-pool-tag-properties"></a>

`Key`  <a name="cfn-smsvoice-pool-tag-key"></a>
The key identifier, or name, of the tag.  
*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-smsvoice-pool-tag-value"></a>
The string value associated with the key of the tag.  
*Required*: Yes  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::SMSVOICE::Pool TwoWay
<a name="aws-properties-smsvoice-pool-twoway"></a>

The pool's two-way SMS configuration object.

## Syntax
<a name="aws-properties-smsvoice-pool-twoway-syntax"></a>

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

### JSON
<a name="aws-properties-smsvoice-pool-twoway-syntax.json"></a>

```
{
  "[ChannelArn](#cfn-smsvoice-pool-twoway-channelarn)" : String,
  "[ChannelRole](#cfn-smsvoice-pool-twoway-channelrole)" : String,
  "[Enabled](#cfn-smsvoice-pool-twoway-enabled)" : Boolean
}
```

### YAML
<a name="aws-properties-smsvoice-pool-twoway-syntax.yaml"></a>

```
  [ChannelArn](#cfn-smsvoice-pool-twoway-channelarn): String
  [ChannelRole](#cfn-smsvoice-pool-twoway-channelrole): String
  [Enabled](#cfn-smsvoice-pool-twoway-enabled): Boolean
```

## Properties
<a name="aws-properties-smsvoice-pool-twoway-properties"></a>

`ChannelArn`  <a name="cfn-smsvoice-pool-twoway-channelarn"></a>
The Amazon Resource Name (ARN) of the two way channel.  
*Required*: No  
*Type*: String  
*Pattern*: `^[ \S]+`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ChannelRole`  <a name="cfn-smsvoice-pool-twoway-channelrole"></a>
An optional IAM Role Arn for a service to assume, to be able to post inbound SMS messages.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:\S+$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Enabled`  <a name="cfn-smsvoice-pool-twoway-enabled"></a>
By default this is set to false. When set to true you can receive incoming text messages from your end recipients using the TwoWayChannelArn.  
*Required*: Yes  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)