

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 End User Messaging SMS
<a name="AWS_SMSVOICE"></a>

**Resource types**
+ [AWS::SMSVOICE::ConfigurationSet](aws-resource-smsvoice-configurationset.md)
+ [AWS::SMSVOICE::OptOutList](aws-resource-smsvoice-optoutlist.md)
+ [AWS::SMSVOICE::PhoneNumber](aws-resource-smsvoice-phonenumber.md)
+ [AWS::SMSVOICE::Pool](aws-resource-smsvoice-pool.md)
+ [AWS::SMSVOICE::ProtectConfiguration](aws-resource-smsvoice-protectconfiguration.md)
+ [AWS::SMSVOICE::ResourcePolicy](aws-resource-smsvoice-resourcepolicy.md)
+ [AWS::SMSVOICE::SenderId](aws-resource-smsvoice-senderid.md)

# AWS::SMSVOICE::ConfigurationSet
<a name="aws-resource-smsvoice-configurationset"></a>

Creates a new configuration set. After you create the configuration set, you can add one or more event destinations to it.

A configuration set is a set of rules that you apply to the SMS and voice messages that you send.

When you send a message, you can optionally specify a single configuration set.

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

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

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

```
{
  "Type" : "AWS::SMSVOICE::ConfigurationSet",
  "Properties" : {
      "[ConfigurationSetName](#cfn-smsvoice-configurationset-configurationsetname)" : String,
      "[DefaultSenderId](#cfn-smsvoice-configurationset-defaultsenderid)" : String,
      "[EventDestinations](#cfn-smsvoice-configurationset-eventdestinations)" : [ EventDestination, ... ],
      "[MessageFeedbackEnabled](#cfn-smsvoice-configurationset-messagefeedbackenabled)" : Boolean,
      "[ProtectConfigurationId](#cfn-smsvoice-configurationset-protectconfigurationid)" : String,
      "[Tags](#cfn-smsvoice-configurationset-tags)" : [ Tag, ... ]
    }
}
```

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

```
Type: AWS::SMSVOICE::ConfigurationSet
Properties:
  [ConfigurationSetName](#cfn-smsvoice-configurationset-configurationsetname): String
  [DefaultSenderId](#cfn-smsvoice-configurationset-defaultsenderid): String
  [EventDestinations](#cfn-smsvoice-configurationset-eventdestinations): 
    - EventDestination
  [MessageFeedbackEnabled](#cfn-smsvoice-configurationset-messagefeedbackenabled): Boolean
  [ProtectConfigurationId](#cfn-smsvoice-configurationset-protectconfigurationid): String
  [Tags](#cfn-smsvoice-configurationset-tags): 
    - Tag
```

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

`ConfigurationSetName`  <a name="cfn-smsvoice-configurationset-configurationsetname"></a>
The name of the ConfigurationSet.  
*Required*: No  
*Type*: String  
*Pattern*: `^[A-Za-z0-9_-]+$`  
*Minimum*: `1`  
*Maximum*: `64`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DefaultSenderId`  <a name="cfn-smsvoice-configurationset-defaultsenderid"></a>
The default sender ID used by the ConfigurationSet.  
*Required*: No  
*Type*: String  
*Pattern*: `^[A-Za-z0-9_-]+$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EventDestinations`  <a name="cfn-smsvoice-configurationset-eventdestinations"></a>
An array of EventDestination objects that describe any events to log and where to log them.  
*Required*: No  
*Type*: Array of [EventDestination](aws-properties-smsvoice-configurationset-eventdestination.md)  
*Maximum*: `5`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MessageFeedbackEnabled`  <a name="cfn-smsvoice-configurationset-messagefeedbackenabled"></a>
Set to true to enable feedback for the message.  
*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)

`ProtectConfigurationId`  <a name="cfn-smsvoice-configurationset-protectconfigurationid"></a>
The unique identifier for the protect configuration.  
*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)

`Tags`  <a name="cfn-smsvoice-configurationset-tags"></a>
An array of key and value pair tags that's associated with the new configuration set.   
*Required*: No  
*Type*: Array of [Tag](aws-properties-smsvoice-configurationset-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-smsvoice-configurationset-return-values"></a>

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

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

### Fn::GetAtt
<a name="aws-resource-smsvoice-configurationset-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-smsvoice-configurationset-return-values-fn--getatt-fn--getatt"></a>

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

# AWS::SMSVOICE::ConfigurationSet CloudWatchLogsDestination
<a name="aws-properties-smsvoice-configurationset-cloudwatchlogsdestination"></a>

Contains the destination configuration to use when publishing message sending events. 

## Syntax
<a name="aws-properties-smsvoice-configurationset-cloudwatchlogsdestination-syntax"></a>

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

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

```
{
  "[IamRoleArn](#cfn-smsvoice-configurationset-cloudwatchlogsdestination-iamrolearn)" : String,
  "[LogGroupArn](#cfn-smsvoice-configurationset-cloudwatchlogsdestination-loggrouparn)" : String
}
```

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

```
  [IamRoleArn](#cfn-smsvoice-configurationset-cloudwatchlogsdestination-iamrolearn): String
  [LogGroupArn](#cfn-smsvoice-configurationset-cloudwatchlogsdestination-loggrouparn): String
```

## Properties
<a name="aws-properties-smsvoice-configurationset-cloudwatchlogsdestination-properties"></a>

`IamRoleArn`  <a name="cfn-smsvoice-configurationset-cloudwatchlogsdestination-iamrolearn"></a>
The Amazon Resource Name (ARN) of an AWS Identity and Access Management role that is able to write event data to an Amazon CloudWatch destination.  
*Required*: Yes  
*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)

`LogGroupArn`  <a name="cfn-smsvoice-configurationset-cloudwatchlogsdestination-loggrouparn"></a>
The name of the Amazon CloudWatch log group that you want to record events in.   
*Required*: Yes  
*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)

# AWS::SMSVOICE::ConfigurationSet EventDestination
<a name="aws-properties-smsvoice-configurationset-eventdestination"></a>

Contains information about an event destination.

Event destinations are associated with configuration sets, which enable you to publish message sending events to CloudWatch, Firehose, or Amazon SNS.

## Syntax
<a name="aws-properties-smsvoice-configurationset-eventdestination-syntax"></a>

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

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

```
{
  "[CloudWatchLogsDestination](#cfn-smsvoice-configurationset-eventdestination-cloudwatchlogsdestination)" : CloudWatchLogsDestination,
  "[Enabled](#cfn-smsvoice-configurationset-eventdestination-enabled)" : Boolean,
  "[EventDestinationName](#cfn-smsvoice-configurationset-eventdestination-eventdestinationname)" : String,
  "[KinesisFirehoseDestination](#cfn-smsvoice-configurationset-eventdestination-kinesisfirehosedestination)" : KinesisFirehoseDestination,
  "[MatchingEventTypes](#cfn-smsvoice-configurationset-eventdestination-matchingeventtypes)" : [ String, ... ],
  "[SnsDestination](#cfn-smsvoice-configurationset-eventdestination-snsdestination)" : SnsDestination
}
```

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

```
  [CloudWatchLogsDestination](#cfn-smsvoice-configurationset-eventdestination-cloudwatchlogsdestination): 
    CloudWatchLogsDestination
  [Enabled](#cfn-smsvoice-configurationset-eventdestination-enabled): Boolean
  [EventDestinationName](#cfn-smsvoice-configurationset-eventdestination-eventdestinationname): String
  [KinesisFirehoseDestination](#cfn-smsvoice-configurationset-eventdestination-kinesisfirehosedestination): 
    KinesisFirehoseDestination
  [MatchingEventTypes](#cfn-smsvoice-configurationset-eventdestination-matchingeventtypes): 
    - String
  [SnsDestination](#cfn-smsvoice-configurationset-eventdestination-snsdestination): 
    SnsDestination
```

## Properties
<a name="aws-properties-smsvoice-configurationset-eventdestination-properties"></a>

`CloudWatchLogsDestination`  <a name="cfn-smsvoice-configurationset-eventdestination-cloudwatchlogsdestination"></a>
An object that contains information about an event destination that sends logging events to Amazon CloudWatch logs.  
*Required*: No  
*Type*: [CloudWatchLogsDestination](aws-properties-smsvoice-configurationset-cloudwatchlogsdestination.md)  
*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-configurationset-eventdestination-enabled"></a>
When set to true events will be logged.  
*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)

`EventDestinationName`  <a name="cfn-smsvoice-configurationset-eventdestination-eventdestinationname"></a>
The name of the EventDestination.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[A-Za-z0-9_-]+$`  
*Minimum*: `1`  
*Maximum*: `64`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`KinesisFirehoseDestination`  <a name="cfn-smsvoice-configurationset-eventdestination-kinesisfirehosedestination"></a>
An object that contains information about an event destination for logging to Amazon Data Firehose.  
*Required*: No  
*Type*: [KinesisFirehoseDestination](aws-properties-smsvoice-configurationset-kinesisfirehosedestination.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MatchingEventTypes`  <a name="cfn-smsvoice-configurationset-eventdestination-matchingeventtypes"></a>
An array of event types that determine which events to log.  
The `TEXT_SENT` event type is not supported.
*Required*: Yes  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SnsDestination`  <a name="cfn-smsvoice-configurationset-eventdestination-snsdestination"></a>
An object that contains information about an event destination that sends logging events to Amazon SNS.  
*Required*: No  
*Type*: [SnsDestination](aws-properties-smsvoice-configurationset-snsdestination.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::ConfigurationSet KinesisFirehoseDestination
<a name="aws-properties-smsvoice-configurationset-kinesisfirehosedestination"></a>

Contains the delivery stream Amazon Resource Name (ARN), and the ARN of the AWS Identity and Access Management (IAM) role associated with a Firehose event destination.

Event destinations, such as Firehose, are associated with configuration sets, which enable you to publish message sending events.

## Syntax
<a name="aws-properties-smsvoice-configurationset-kinesisfirehosedestination-syntax"></a>

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

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

```
{
  "[DeliveryStreamArn](#cfn-smsvoice-configurationset-kinesisfirehosedestination-deliverystreamarn)" : String,
  "[IamRoleArn](#cfn-smsvoice-configurationset-kinesisfirehosedestination-iamrolearn)" : String
}
```

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

```
  [DeliveryStreamArn](#cfn-smsvoice-configurationset-kinesisfirehosedestination-deliverystreamarn): String
  [IamRoleArn](#cfn-smsvoice-configurationset-kinesisfirehosedestination-iamrolearn): String
```

## Properties
<a name="aws-properties-smsvoice-configurationset-kinesisfirehosedestination-properties"></a>

`DeliveryStreamArn`  <a name="cfn-smsvoice-configurationset-kinesisfirehosedestination-deliverystreamarn"></a>
The Amazon Resource Name (ARN) of the delivery stream.  
*Required*: Yes  
*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)

`IamRoleArn`  <a name="cfn-smsvoice-configurationset-kinesisfirehosedestination-iamrolearn"></a>
The ARN of an AWS Identity and Access Management role that is able to write event data to an Amazon Data Firehose destination.  
*Required*: Yes  
*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)

# AWS::SMSVOICE::ConfigurationSet SnsDestination
<a name="aws-properties-smsvoice-configurationset-snsdestination"></a>

An object that defines an Amazon SNS destination for events. You can use Amazon SNS to send notification when certain events occur.

## Syntax
<a name="aws-properties-smsvoice-configurationset-snsdestination-syntax"></a>

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

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

```
{
  "[TopicArn](#cfn-smsvoice-configurationset-snsdestination-topicarn)" : String
}
```

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

```
  [TopicArn](#cfn-smsvoice-configurationset-snsdestination-topicarn): String
```

## Properties
<a name="aws-properties-smsvoice-configurationset-snsdestination-properties"></a>

`TopicArn`  <a name="cfn-smsvoice-configurationset-snsdestination-topicarn"></a>
The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish events to.  
*Required*: Yes  
*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)

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

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

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

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

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

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

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

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

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

`Key`  <a name="cfn-smsvoice-configurationset-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-configurationset-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::OptOutList
<a name="aws-resource-smsvoice-optoutlist"></a>

Creates a new opt-out list.

If the opt-out list name already exists, an error is returned.

An opt-out list is a list of phone numbers that are opted out, meaning you can't send SMS or voice messages to them. If end user replies with the keyword "STOP," an entry for the phone number is added to the opt-out list. In addition to STOP, your recipients can use any supported opt-out keyword, such as CANCEL or OPTOUT. For a list of supported opt-out keywords, see [ SMS opt out ](https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-keywords.html) in the AWS End User Messaging SMS User Guide.

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

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

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

```
{
  "Type" : "AWS::SMSVOICE::OptOutList",
  "Properties" : {
      "[OptOutListName](#cfn-smsvoice-optoutlist-optoutlistname)" : String,
      "[Tags](#cfn-smsvoice-optoutlist-tags)" : [ Tag, ... ]
    }
}
```

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

```
Type: AWS::SMSVOICE::OptOutList
Properties:
  [OptOutListName](#cfn-smsvoice-optoutlist-optoutlistname): String
  [Tags](#cfn-smsvoice-optoutlist-tags): 
    - Tag
```

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

`OptOutListName`  <a name="cfn-smsvoice-optoutlist-optoutlistname"></a>
The name of the OptOutList.  
*Required*: No  
*Type*: String  
*Pattern*: `^[A-Za-z0-9_-]+$`  
*Minimum*: `1`  
*Maximum*: `64`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-smsvoice-optoutlist-tags"></a>
An array of tags (key and value pairs) to associate with the new OptOutList.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-smsvoice-optoutlist-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-smsvoice-optoutlist-return-values"></a>

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

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

### Fn::GetAtt
<a name="aws-resource-smsvoice-optoutlist-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-smsvoice-optoutlist-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
The Amazon Resource Name (ARN) for the `OptOutList`.

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

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

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

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

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

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

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

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

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

`Key`  <a name="cfn-smsvoice-optoutlist-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-optoutlist-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::PhoneNumber
<a name="aws-resource-smsvoice-phonenumber"></a>

Request an origination phone number for use in your account. For more information on phone number request see [Request a phone number](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request.html) in the *AWS End User Messaging SMS User Guide*.

**Note**  
Registering phone numbers is not supported by AWS CloudFormation. You can import phone numbers and sender IDs that are automatically provisioned at registration.

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

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

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

```
{
  "Type" : "AWS::SMSVOICE::PhoneNumber",
  "Properties" : {
      "[DeletionProtectionEnabled](#cfn-smsvoice-phonenumber-deletionprotectionenabled)" : Boolean,
      "[IsoCountryCode](#cfn-smsvoice-phonenumber-isocountrycode)" : String,
      "[MandatoryKeywords](#cfn-smsvoice-phonenumber-mandatorykeywords)" : MandatoryKeywords,
      "[NumberCapabilities](#cfn-smsvoice-phonenumber-numbercapabilities)" : [ String, ... ],
      "[NumberType](#cfn-smsvoice-phonenumber-numbertype)" : String,
      "[OptionalKeywords](#cfn-smsvoice-phonenumber-optionalkeywords)" : [ OptionalKeyword, ... ],
      "[OptOutListName](#cfn-smsvoice-phonenumber-optoutlistname)" : String,
      "[SelfManagedOptOutsEnabled](#cfn-smsvoice-phonenumber-selfmanagedoptoutsenabled)" : Boolean,
      "[Tags](#cfn-smsvoice-phonenumber-tags)" : [ Tag, ... ],
      "[TwoWay](#cfn-smsvoice-phonenumber-twoway)" : TwoWay
    }
}
```

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

```
Type: AWS::SMSVOICE::PhoneNumber
Properties:
  [DeletionProtectionEnabled](#cfn-smsvoice-phonenumber-deletionprotectionenabled): Boolean
  [IsoCountryCode](#cfn-smsvoice-phonenumber-isocountrycode): String
  [MandatoryKeywords](#cfn-smsvoice-phonenumber-mandatorykeywords): 
    MandatoryKeywords
  [NumberCapabilities](#cfn-smsvoice-phonenumber-numbercapabilities): 
    - String
  [NumberType](#cfn-smsvoice-phonenumber-numbertype): String
  [OptionalKeywords](#cfn-smsvoice-phonenumber-optionalkeywords): 
    - OptionalKeyword
  [OptOutListName](#cfn-smsvoice-phonenumber-optoutlistname): String
  [SelfManagedOptOutsEnabled](#cfn-smsvoice-phonenumber-selfmanagedoptoutsenabled): Boolean
  [Tags](#cfn-smsvoice-phonenumber-tags): 
    - Tag
  [TwoWay](#cfn-smsvoice-phonenumber-twoway): 
    TwoWay
```

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

`DeletionProtectionEnabled`  <a name="cfn-smsvoice-phonenumber-deletionprotectionenabled"></a>
By default this is set to false. When set to true the phone number 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)

`IsoCountryCode`  <a name="cfn-smsvoice-phonenumber-isocountrycode"></a>
The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.   
*Required*: Yes  
*Type*: String  
*Pattern*: `^[A-Z]{2}$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`MandatoryKeywords`  <a name="cfn-smsvoice-phonenumber-mandatorykeywords"></a>
Creates or updates a `MandatoryKeyword` configuration on an origination phone number 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-phonenumber-mandatorykeywords.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`NumberCapabilities`  <a name="cfn-smsvoice-phonenumber-numbercapabilities"></a>
Indicates if the phone number will be used for text messages, voice messages, or both.   
*Required*: Yes  
*Type*: Array of String  
*Allowed values*: `SMS | VOICE | MMS`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`NumberType`  <a name="cfn-smsvoice-phonenumber-numbertype"></a>
The type of phone number to request.  
The `ShortCode` number type is not supported in AWS CloudFormation.
*Required*: Yes  
*Type*: String  
*Allowed values*: `LONG_CODE | TOLL_FREE | TEN_DLC | SIMULATOR`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`OptionalKeywords`  <a name="cfn-smsvoice-phonenumber-optionalkeywords"></a>
A keyword is a word that you can search for on a particular phone number or pool. It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, AWS End User Messaging SMS responds with a customizable message. Optional keywords are differentiated from mandatory keywords. 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-phonenumber-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-phonenumber-optoutlistname"></a>
The name of the OptOutList associated with the phone number.  
*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)

`SelfManagedOptOutsEnabled`  <a name="cfn-smsvoice-phonenumber-selfmanagedoptoutsenabled"></a>
When set to false and 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 request. For more information see [Self-managed opt-outs](https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-self-managed.html)  
*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-phonenumber-tags"></a>
An array of tags (key and value pairs) to associate with the requested phone number.   
*Required*: No  
*Type*: Array of [Tag](aws-properties-smsvoice-phonenumber-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-phonenumber-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-phonenumber-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-phonenumber-return-values"></a>

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

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

### Fn::GetAtt
<a name="aws-resource-smsvoice-phonenumber-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-smsvoice-phonenumber-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
The `PhoneNumber`'s Amazon Resource Name (ARN)

`PhoneNumber`  <a name="PhoneNumber-fn::getatt"></a>
The phone number in E.164 format.

`PhoneNumberId`  <a name="PhoneNumberId-fn::getatt"></a>
The unique identifier for the phone number.

# AWS::SMSVOICE::PhoneNumber MandatoryKeyword
<a name="aws-properties-smsvoice-phonenumber-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-phonenumber-mandatorykeyword-syntax"></a>

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

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

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

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

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

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

`Message`  <a name="cfn-smsvoice-phonenumber-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::PhoneNumber MandatoryKeywords
<a name="aws-properties-smsvoice-phonenumber-mandatorykeywords"></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-phonenumber-mandatorykeywords-syntax"></a>

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

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

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

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

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

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

`HELP`  <a name="cfn-smsvoice-phonenumber-mandatorykeywords-help"></a>
Specifies the `HELP` keyword that customers use to obtain customer support for this phone number. 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*: [MandatoryKeyword](aws-properties-smsvoice-phonenumber-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-phonenumber-mandatorykeywords-stop"></a>
Specifies the `STOP` keyword that customers use to opt out of receiving messages from this phone number. 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-phonenumber-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::PhoneNumber OptionalKeyword
<a name="aws-properties-smsvoice-phonenumber-optionalkeyword"></a>

The `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-phonenumber-optionalkeyword-syntax"></a>

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

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

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

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

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

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

`Action`  <a name="cfn-smsvoice-phonenumber-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-phonenumber-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-phonenumber-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::PhoneNumber Tag
<a name="aws-properties-smsvoice-phonenumber-tag"></a>

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

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

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

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

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

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

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

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

`Key`  <a name="cfn-smsvoice-phonenumber-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-phonenumber-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::PhoneNumber TwoWay
<a name="aws-properties-smsvoice-phonenumber-twoway"></a>

The phone number's two-way SMS configuration object.

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

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

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

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

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

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

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

`ChannelArn`  <a name="cfn-smsvoice-phonenumber-twoway-channelarn"></a>
The Amazon Resource Name (ARN) of the two way channel.  
*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)

`ChannelRole`  <a name="cfn-smsvoice-phonenumber-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-phonenumber-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)

# 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)

# AWS::SMSVOICE::ProtectConfiguration
<a name="aws-resource-smsvoice-protectconfiguration"></a>

Create a new protect configuration. By default all country rule sets for each capability are set to `ALLOW`. A protect configurations name is stored as a Tag with the key set to `Name` and value as the name of the protect configuration.

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

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

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

```
{
  "Type" : "AWS::SMSVOICE::ProtectConfiguration",
  "Properties" : {
      "[CountryRuleSet](#cfn-smsvoice-protectconfiguration-countryruleset)" : CountryRuleSet,
      "[DeletionProtectionEnabled](#cfn-smsvoice-protectconfiguration-deletionprotectionenabled)" : Boolean,
      "[Tags](#cfn-smsvoice-protectconfiguration-tags)" : [ Tag, ... ]
    }
}
```

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

```
Type: AWS::SMSVOICE::ProtectConfiguration
Properties:
  [CountryRuleSet](#cfn-smsvoice-protectconfiguration-countryruleset): 
    CountryRuleSet
  [DeletionProtectionEnabled](#cfn-smsvoice-protectconfiguration-deletionprotectionenabled): Boolean
  [Tags](#cfn-smsvoice-protectconfiguration-tags): 
    - Tag
```

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

`CountryRuleSet`  <a name="cfn-smsvoice-protectconfiguration-countryruleset"></a>
The set of `CountryRules` you specify to control which countries AWS End User Messaging SMS can send your messages to.  
*Required*: No  
*Type*: [CountryRuleSet](aws-properties-smsvoice-protectconfiguration-countryruleset.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DeletionProtectionEnabled`  <a name="cfn-smsvoice-protectconfiguration-deletionprotectionenabled"></a>
The status of deletion protection for the protect configuration. When set to true deletion protection is enabled. By default this is set to false.   
*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-protectconfiguration-tags"></a>
An array of key and value pair tags that are associated with the resource.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-smsvoice-protectconfiguration-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-smsvoice-protectconfiguration-return-values"></a>

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

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

### Fn::GetAtt
<a name="aws-resource-smsvoice-protectconfiguration-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-smsvoice-protectconfiguration-return-values-fn--getatt-fn--getatt"></a>

`Arn`  <a name="Arn-fn::getatt"></a>
The Amazon Resource Name (ARN) of the protect configuration.

`ProtectConfigurationId`  <a name="ProtectConfigurationId-fn::getatt"></a>
The unique identifier for the protect configuration.

# AWS::SMSVOICE::ProtectConfiguration CountryRule
<a name="aws-properties-smsvoice-protectconfiguration-countryrule"></a>

Specifies the type of protection to use for a country.

For example, to set Canada as allowed, the `CountryRule` would be formatted as follows:

```
{
    "CountryCode": "CA",
    "ProtectStatus": "ALLOW"                          
}
```

## Syntax
<a name="aws-properties-smsvoice-protectconfiguration-countryrule-syntax"></a>

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

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

```
{
  "[CountryCode](#cfn-smsvoice-protectconfiguration-countryrule-countrycode)" : String,
  "[ProtectStatus](#cfn-smsvoice-protectconfiguration-countryrule-protectstatus)" : String
}
```

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

```
  [CountryCode](#cfn-smsvoice-protectconfiguration-countryrule-countrycode): String
  [ProtectStatus](#cfn-smsvoice-protectconfiguration-countryrule-protectstatus): String
```

## Properties
<a name="aws-properties-smsvoice-protectconfiguration-countryrule-properties"></a>

`CountryCode`  <a name="cfn-smsvoice-protectconfiguration-countryrule-countrycode"></a>
The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.   
*Required*: Yes  
*Type*: String  
*Pattern*: `^[A-Z]{2}$`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ProtectStatus`  <a name="cfn-smsvoice-protectconfiguration-countryrule-protectstatus"></a>
The types of protection that can be used.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `ALLOW | BLOCK | MONITOR | FILTER`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::SMSVOICE::ProtectConfiguration CountryRuleSet
<a name="aws-properties-smsvoice-protectconfiguration-countryruleset"></a>

The set of `CountryRules` you specify to control which countries AWS End User Messaging SMS can send your messages to.

**Note**  
If you don't specify all available ISO country codes in the `CountryRuleSet` for each number capability, the CloudFormation drift detection feature will detect drift. This is because AWS End User Messaging SMS always returns all country codes.

## Syntax
<a name="aws-properties-smsvoice-protectconfiguration-countryruleset-syntax"></a>

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

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

```
{
  "[MMS](#cfn-smsvoice-protectconfiguration-countryruleset-mms)" : [ CountryRule, ... ],
  "[SMS](#cfn-smsvoice-protectconfiguration-countryruleset-sms)" : [ CountryRule, ... ],
  "[VOICE](#cfn-smsvoice-protectconfiguration-countryruleset-voice)" : [ CountryRule, ... ]
}
```

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

```
  [MMS](#cfn-smsvoice-protectconfiguration-countryruleset-mms): 
    - CountryRule
  [SMS](#cfn-smsvoice-protectconfiguration-countryruleset-sms): 
    - CountryRule
  [VOICE](#cfn-smsvoice-protectconfiguration-countryruleset-voice): 
    - CountryRule
```

## Properties
<a name="aws-properties-smsvoice-protectconfiguration-countryruleset-properties"></a>

`MMS`  <a name="cfn-smsvoice-protectconfiguration-countryruleset-mms"></a>
The set of `CountryRule`s to control which destination countries AWS End User Messaging SMS can send your MMS messages to.  
*Required*: No  
*Type*: Array of [CountryRule](aws-properties-smsvoice-protectconfiguration-countryrule.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SMS`  <a name="cfn-smsvoice-protectconfiguration-countryruleset-sms"></a>
The set of `CountryRule`s to control which destination countries AWS End User Messaging SMS can send your SMS messages to.  
*Required*: No  
*Type*: Array of [CountryRule](aws-properties-smsvoice-protectconfiguration-countryrule.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`VOICE`  <a name="cfn-smsvoice-protectconfiguration-countryruleset-voice"></a>
The set of `CountryRule`s to control which destination countries AWS End User Messaging SMS can send your VOICE messages to.  
*Required*: No  
*Type*: Array of [CountryRule](aws-properties-smsvoice-protectconfiguration-countryrule.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::ProtectConfiguration Tag
<a name="aws-properties-smsvoice-protectconfiguration-tag"></a>

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

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

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

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

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

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

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

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

`Key`  <a name="cfn-smsvoice-protectconfiguration-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-protectconfiguration-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::ResourcePolicy
<a name="aws-resource-smsvoice-resourcepolicy"></a>

Attaches a resource-based policy to a AWS End User Messaging SMS resource(phone number, sender Id, phone poll, or opt-out list) that is used for sharing the resource. A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number. For more information about resource-based policies, see [Working with shared resources](https://docs.aws.amazon.com/sms-voice/latest/userguide/shared-resources.html) in the *AWS End User Messaging SMS User Guide*. 

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

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

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

```
{
  "Type" : "AWS::SMSVOICE::ResourcePolicy",
  "Properties" : {
      "[PolicyDocument](#cfn-smsvoice-resourcepolicy-policydocument)" : Json,
      "[ResourceArn](#cfn-smsvoice-resourcepolicy-resourcearn)" : String
    }
}
```

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

```
Type: AWS::SMSVOICE::ResourcePolicy
Properties:
  [PolicyDocument](#cfn-smsvoice-resourcepolicy-policydocument): Json
  [ResourceArn](#cfn-smsvoice-resourcepolicy-resourcearn): String
```

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

`PolicyDocument`  <a name="cfn-smsvoice-resourcepolicy-policydocument"></a>
The JSON formatted resource-based policy to attach.  
*Required*: Yes  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ResourceArn`  <a name="cfn-smsvoice-resourcepolicy-resourcearn"></a>
The Amazon Resource Name (ARN) of the AWS End User Messaging SMS resource attached to the resource-based policy.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^arn:\S+$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-smsvoice-resourcepolicy-return-values"></a>

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

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

# AWS::SMSVOICE::SenderId
<a name="aws-resource-smsvoice-senderid"></a>

Request a new sender ID that doesn't require registration. 

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

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

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

```
{
  "Type" : "AWS::SMSVOICE::SenderId",
  "Properties" : {
      "[DeletionProtectionEnabled](#cfn-smsvoice-senderid-deletionprotectionenabled)" : Boolean,
      "[IsoCountryCode](#cfn-smsvoice-senderid-isocountrycode)" : String,
      "[SenderId](#cfn-smsvoice-senderid-senderid)" : String,
      "[Tags](#cfn-smsvoice-senderid-tags)" : [ Tag, ... ]
    }
}
```

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

```
Type: AWS::SMSVOICE::SenderId
Properties:
  [DeletionProtectionEnabled](#cfn-smsvoice-senderid-deletionprotectionenabled): Boolean
  [IsoCountryCode](#cfn-smsvoice-senderid-isocountrycode): String
  [SenderId](#cfn-smsvoice-senderid-senderid): String
  [Tags](#cfn-smsvoice-senderid-tags): 
    - Tag
```

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

`DeletionProtectionEnabled`  <a name="cfn-smsvoice-senderid-deletionprotectionenabled"></a>
By default this is set to false. When set to true the sender ID 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)

`IsoCountryCode`  <a name="cfn-smsvoice-senderid-isocountrycode"></a>
The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.   
*Required*: Yes  
*Type*: String  
*Pattern*: `^[A-Z]{2}$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SenderId`  <a name="cfn-smsvoice-senderid-senderid"></a>
The sender ID string to request.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[A-Z0-9_-]+$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-smsvoice-senderid-tags"></a>
An array of tags (key and value pairs) to associate with the sender ID.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-smsvoice-senderid-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-smsvoice-senderid-return-values"></a>

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

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

### Fn::GetAtt
<a name="aws-resource-smsvoice-senderid-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-smsvoice-senderid-return-values-fn--getatt-fn--getatt"></a>

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

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

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

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

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

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

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

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

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

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

`Key`  <a name="cfn-smsvoice-senderid-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-senderid-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)