

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

# Amazon IVS
<a name="AWS_IVS"></a>

**Resource types**
+ [AWS::IVS::Channel](aws-resource-ivs-channel.md)
+ [AWS::IVS::EncoderConfiguration](aws-resource-ivs-encoderconfiguration.md)
+ [AWS::IVS::IngestConfiguration](aws-resource-ivs-ingestconfiguration.md)
+ [AWS::IVS::PlaybackKeyPair](aws-resource-ivs-playbackkeypair.md)
+ [AWS::IVS::PlaybackRestrictionPolicy](aws-resource-ivs-playbackrestrictionpolicy.md)
+ [AWS::IVS::PublicKey](aws-resource-ivs-publickey.md)
+ [AWS::IVS::RecordingConfiguration](aws-resource-ivs-recordingconfiguration.md)
+ [AWS::IVS::Stage](aws-resource-ivs-stage.md)
+ [AWS::IVS::StorageConfiguration](aws-resource-ivs-storageconfiguration.md)
+ [AWS::IVS::StreamKey](aws-resource-ivs-streamkey.md)

# AWS::IVS::Channel
<a name="aws-resource-ivs-channel"></a>

The `AWS::IVS::Channel` resource specifies an Amazon IVS channel. A channel stores configuration information related to your live stream. For more information, see [CreateChannel](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_CreateChannel.html) in the *Amazon IVS Low-Latency Streaming API Reference*.

**Note**  
 By default, the IVS API CreateChannel endpoint creates a stream key in addition to a channel. The Amazon IVS Channel resource *does not* create a stream key; to create a stream key, use the StreamKey resource instead.

## Syntax
<a name="aws-resource-ivs-channel-syntax"></a>

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

### JSON
<a name="aws-resource-ivs-channel-syntax.json"></a>

```
{
  "Type" : "AWS::IVS::Channel",
  "Properties" : {
      "[Authorized](#cfn-ivs-channel-authorized)" : Boolean,
      "[ContainerFormat](#cfn-ivs-channel-containerformat)" : String,
      "[InsecureIngest](#cfn-ivs-channel-insecureingest)" : Boolean,
      "[LatencyMode](#cfn-ivs-channel-latencymode)" : String,
      "[MultitrackInputConfiguration](#cfn-ivs-channel-multitrackinputconfiguration)" : MultitrackInputConfiguration,
      "[Name](#cfn-ivs-channel-name)" : String,
      "[Preset](#cfn-ivs-channel-preset)" : String,
      "[RecordingConfigurationArn](#cfn-ivs-channel-recordingconfigurationarn)" : String,
      "[Tags](#cfn-ivs-channel-tags)" : [ Tag, ... ],
      "[Type](#cfn-ivs-channel-type)" : String
    }
}
```

### YAML
<a name="aws-resource-ivs-channel-syntax.yaml"></a>

```
Type: AWS::IVS::Channel
Properties:
  [Authorized](#cfn-ivs-channel-authorized): Boolean
  [ContainerFormat](#cfn-ivs-channel-containerformat): String
  [InsecureIngest](#cfn-ivs-channel-insecureingest): Boolean
  [LatencyMode](#cfn-ivs-channel-latencymode): String
  [MultitrackInputConfiguration](#cfn-ivs-channel-multitrackinputconfiguration): 
    MultitrackInputConfiguration
  [Name](#cfn-ivs-channel-name): String
  [Preset](#cfn-ivs-channel-preset): String
  [RecordingConfigurationArn](#cfn-ivs-channel-recordingconfigurationarn): String
  [Tags](#cfn-ivs-channel-tags): 
    - Tag
  [Type](#cfn-ivs-channel-type): String
```

## Properties
<a name="aws-resource-ivs-channel-properties"></a>

`Authorized`  <a name="cfn-ivs-channel-authorized"></a>
Whether the channel is authorized.  
*Default*: `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)

`ContainerFormat`  <a name="cfn-ivs-channel-containerformat"></a>
Indicates which content-packaging format is used (MPEG-TS or fMP4). If `multitrackInputConfiguration` is specified and `enabled` is `true`, then `containerFormat` is required and must be set to `FRAGMENTED_MP4`. Otherwise, `containerFormat` may be set to `TS` or `FRAGMENTED_MP4`. Default: `TS`.  
*Required*: No  
*Type*: String  
*Allowed values*: `TS | FRAGMENTED_MP4`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InsecureIngest`  <a name="cfn-ivs-channel-insecureingest"></a>
Whether the channel allows insecure RTMP ingest.  
*Default*: `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)

`LatencyMode`  <a name="cfn-ivs-channel-latencymode"></a>
Channel latency mode. Valid values:  
+ `NORMAL`: Use NORMAL to broadcast and deliver live video up to Full HD.
+ `LOW`: Use LOW for near real-time interactions with viewers.
In the Amazon IVS console, `LOW` and `NORMAL` correspond to `Ultra-low` and `Standard`, respectively.
*Default*: `LOW`  
*Required*: No  
*Type*: String  
*Allowed values*: `NORMAL | LOW`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MultitrackInputConfiguration`  <a name="cfn-ivs-channel-multitrackinputconfiguration"></a>
Object specifying multitrack input configuration. Default: no multitrack input configuration is specified.  
*Required*: No  
*Type*: [MultitrackInputConfiguration](aws-properties-ivs-channel-multitrackinputconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-ivs-channel-name"></a>
Channel name.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9-_]*$`  
*Minimum*: `0`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Preset`  <a name="cfn-ivs-channel-preset"></a>
An optional transcode preset for the channel. This is selectable only for `ADVANCED_HD` and `ADVANCED_SD` channel types. For those channel types, the default preset is `HIGHER_BANDWIDTH_DELIVERY`. For other channel types (`BASIC` and `STANDARD`), `preset` is the empty string ("").  
*Required*: No  
*Type*: String  
*Allowed values*: ` | HIGHER_BANDWIDTH_DELIVERY | CONSTRAINED_BANDWIDTH_DELIVERY`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RecordingConfigurationArn`  <a name="cfn-ivs-channel-recordingconfigurationarn"></a>
The ARN of a RecordingConfiguration resource. An empty string indicates that recording is disabled for the channel. A RecordingConfiguration ARN indicates that recording is enabled using the specified recording configuration. See the [ RecordingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html) resource for more information and an example.  
*Default*: "" (empty string, recording is disabled)  
*Required*: No  
*Type*: String  
*Pattern*: `^$|arn:aws:ivs:[a-z0-9-]+:[0-9]+:recording-configuration/[a-zA-Z0-9-]+$`  
*Minimum*: `0`  
*Maximum*: `128`  
*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-ivs-channel-tags"></a>
An array of key-value pairs to apply to this resource.  
For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-channel-tag.html).  
*Required*: No  
*Type*: Array of [Tag](aws-properties-ivs-channel-tag.md)  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Type`  <a name="cfn-ivs-channel-type"></a>
The channel type, which determines the allowable resolution and bitrate. *If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately.* For details, see [Channel Types](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/channel-types.html).  
*Default*: `STANDARD`  
*Required*: No  
*Type*: String  
*Allowed values*: `STANDARD | BASIC | ADVANCED_SD | ADVANCED_HD`  
*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-ivs-channel-return-values"></a>

### Ref
<a name="aws-resource-ivs-channel-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the channel ARN. For example:

 `{ "Ref": "myChannel" }` 

For the Amazon IVS channel `myChannel`, `Ref` returns the channel ARN.

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

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

`Arn`  <a name="Arn-fn::getatt"></a>
The channel ARN. For example: `arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh`

`IngestEndpoint`  <a name="IngestEndpoint-fn::getatt"></a>
Channel ingest endpoint, part of the definition of an ingest server, used when you set up streaming software.  
For example: `a1b2c3d4e5f6.global-contribute.live-video.net`

`PlaybackUrl`  <a name="PlaybackUrl-fn::getatt"></a>
Channel playback URL. For example: `https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8`

## Examples
<a name="aws-resource-ivs-channel--examples"></a>



### Channel and Stream Key Template Examples
<a name="aws-resource-ivs-channel--examples--Channel_and_Stream_Key_Template_Examples"></a>

The following examples specify an Amazon IVS channel and stream key.

#### JSON
<a name="aws-resource-ivs-channel--examples--Channel_and_Stream_Key_Template_Examples--json"></a>

```
{
     "AWSTemplateFormatVersion": "2010-09-09",
     "Resources": {
         "Channel": {
             "Type": "AWS::IVS::Channel",
             "Properties": {
                 "Name": "MyChannel",
                 "Tags": [
                     {
                         "Key": "MyKey",
                         "Value": "MyValue"
                     }
                 ],
                 "InsecureIngest": true
             }
         },
         "StreamKey": {
             "Type": "AWS::IVS::StreamKey",
             "Properties": {
                 "ChannelArn": {"Ref": "Channel"},
                 "Tags": [
                     {
                         "Key": "MyKey",
                         "Value": "MyValue"
                     }
                 ]
             }
         }
     },
     "Outputs": {
         "ChannelArn": {
             "Value": {"Ref": "Channel"}
         },
         "ChannelIngestEndpoint": {
             "Value": {
                 "Fn::GetAtt": [
                     "Channel",
                     "IngestEndpoint"
                 ]
             }
         },
         "ChannelPlaybackUrl": {
             "Value": {
                 "Fn::GetAtt": [
                     "Channel",
                     "PlaybackUrl"
                 ]
             }
         },
         "StreamKeyArn": {
             "Value": {"Ref": "StreamKey"}
         }
     }
 }
```

#### YAML
<a name="aws-resource-ivs-channel--examples--Channel_and_Stream_Key_Template_Examples--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  Channel:
    Type: AWS::IVS::Channel
    Properties:
      Name: MyChannel
      Tags:
        - Key: MyKey
          Value: MyValue
      InsecureIngest: true
  StreamKey:
    Type: AWS::IVS::StreamKey
    Properties:
      ChannelArn: !Ref Channel
      Tags:
        - Key: MyKey
          Value: MyValue
Outputs:
  ChannelArn:
    Value: !Ref Channel
  ChannelIngestEndpoint:
    Value: !GetAtt Channel.IngestEndpoint
  ChannelPlaybackUrl:
    Value: !GetAtt Channel.PlaybackUrl
  StreamKeyArn:
    Value: !Ref StreamKey
```

## See also
<a name="aws-resource-ivs-channel--seealso"></a>
+  [Getting Started with IVS Low-Latency Streaming](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/getting-started.html) 
+ [Channel](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_Channel.html) data type
+ [CreateChannel](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_CreateChannel.html) API endpoint

# AWS::IVS::Channel MultitrackInputConfiguration
<a name="aws-properties-ivs-channel-multitrackinputconfiguration"></a>

A complex type that specifies multitrack input configuration.

## Syntax
<a name="aws-properties-ivs-channel-multitrackinputconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-channel-multitrackinputconfiguration-syntax.json"></a>

```
{
  "[Enabled](#cfn-ivs-channel-multitrackinputconfiguration-enabled)" : Boolean,
  "[MaximumResolution](#cfn-ivs-channel-multitrackinputconfiguration-maximumresolution)" : String,
  "[Policy](#cfn-ivs-channel-multitrackinputconfiguration-policy)" : String
}
```

### YAML
<a name="aws-properties-ivs-channel-multitrackinputconfiguration-syntax.yaml"></a>

```
  [Enabled](#cfn-ivs-channel-multitrackinputconfiguration-enabled): Boolean
  [MaximumResolution](#cfn-ivs-channel-multitrackinputconfiguration-maximumresolution): String
  [Policy](#cfn-ivs-channel-multitrackinputconfiguration-policy): String
```

## Properties
<a name="aws-properties-ivs-channel-multitrackinputconfiguration-properties"></a>

`Enabled`  <a name="cfn-ivs-channel-multitrackinputconfiguration-enabled"></a>
Indicates whether multitrack input is enabled. Can be set to `true` only if channel type is `STANDARD`. Setting `enabled` to `true` with any other channel type will cause an exception. If `true`, then `policy`, `maximumResolution`, and `containerFormat` are required, and `containerFormat` must be set to `FRAGMENTED_MP4`. Default: `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)

`MaximumResolution`  <a name="cfn-ivs-channel-multitrackinputconfiguration-maximumresolution"></a>
Maximum resolution for multitrack input. Required if `enabled` is `true`.  
*Required*: No  
*Type*: String  
*Allowed values*: `SD | HD | FULL_HD`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Policy`  <a name="cfn-ivs-channel-multitrackinputconfiguration-policy"></a>
Indicates whether multitrack input is allowed or required. Required if `enabled` is `true`.  
*Required*: No  
*Type*: String  
*Allowed values*: `ALLOW | REQUIRE`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IVS::Channel Tag
<a name="aws-properties-ivs-channel-tag"></a>

A key-value pair that you can use to categorize and manage Amazon IVS Channels.

## Syntax
<a name="aws-properties-ivs-channel-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-ivs-channel-tag-key): String
  [Value](#cfn-ivs-channel-tag-value): String
```

## Properties
<a name="aws-properties-ivs-channel-tag-properties"></a>

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

`Value`  <a name="cfn-ivs-channel-tag-value"></a>
The optional part of a key-value pair that makes up a tag. A `value` acts as a descriptor within a tag category (key).  
*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::IVS::EncoderConfiguration
<a name="aws-resource-ivs-encoderconfiguration"></a>

The `AWS::IVS::EncoderConfiguration` resource specifies an Amazon IVS encoder configuration. An encoder configuration describes a stream’s video configuration. For more information, see [Streaming Configuration](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/streaming-config.html) in the *Amazon IVS Low-Latency Streaming User Guide*.

## Syntax
<a name="aws-resource-ivs-encoderconfiguration-syntax"></a>

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

### JSON
<a name="aws-resource-ivs-encoderconfiguration-syntax.json"></a>

```
{
  "Type" : "AWS::IVS::EncoderConfiguration",
  "Properties" : {
      "[Name](#cfn-ivs-encoderconfiguration-name)" : String,
      "[Tags](#cfn-ivs-encoderconfiguration-tags)" : [ Tag, ... ],
      "[Video](#cfn-ivs-encoderconfiguration-video)" : Video
    }
}
```

### YAML
<a name="aws-resource-ivs-encoderconfiguration-syntax.yaml"></a>

```
Type: AWS::IVS::EncoderConfiguration
Properties:
  [Name](#cfn-ivs-encoderconfiguration-name): String
  [Tags](#cfn-ivs-encoderconfiguration-tags): 
    - Tag
  [Video](#cfn-ivs-encoderconfiguration-video): 
    Video
```

## Properties
<a name="aws-resource-ivs-encoderconfiguration-properties"></a>

`Name`  <a name="cfn-ivs-encoderconfiguration-name"></a>
Encoder cnfiguration name.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9-_]*$`  
*Minimum*: `0`  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

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

`Video`  <a name="cfn-ivs-encoderconfiguration-video"></a>
Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) property type for more information.  
*Required*: No  
*Type*: [Video](aws-properties-ivs-encoderconfiguration-video.md)  
*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-ivs-encoderconfiguration-return-values"></a>

### Ref
<a name="aws-resource-ivs-encoderconfiguration-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the encoder-configuration ARN. For example:

 `{ "Ref": "myEncoderConfiguration" }` 

For the Amazon IVS encoder configuration `"myEncoderConfiguration"`, `Ref` returns the encoder-configuration ARN.

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

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

`Arn`  <a name="Arn-fn::getatt"></a>
The encoder-configuration ARN. For example: `arn:aws:ivs:us-west-2:123456789012:encoder-configuration/abcdABCDefgh`

## Examples
<a name="aws-resource-ivs-encoderconfiguration--examples"></a>



### EncoderConfiguration Template Examples
<a name="aws-resource-ivs-encoderconfiguration--examples--EncoderConfiguration_Template_Examples"></a>

The following examples specify an Amazon IVS encoder configuration.

#### JSON
<a name="aws-resource-ivs-encoderconfiguration--examples--EncoderConfiguration_Template_Examples--json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "EncoderConfiguration": {
            "Type": "AWS::IVS::EncoderConfiguration",
            "Properties": {
                "Name": "myEncoderConfiguration",
                "Video": {
                    "Bitrate": 1500000,
                    "Framerate": 1.5,
                    "Height": 100,
                    "Width": 100
                },
                "Tags": [
                    {
                        "Key": "MyKey",
                        "Value": "MyValue"
                    }
                ]
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-ivs-encoderconfiguration--examples--EncoderConfiguration_Template_Examples--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  EncoderConfiguration:
    Type: AWS::IVS::EncoderConfiguration
    Properties:
      Video:
        Bitrate: 1500000
        Framerate: 1.5
        Height: 100
        Width: 100
      Name: myEncoderConfiguration
      Tags: 
        - Key: myKey
          Value: myValue
```

## See also
<a name="aws-resource-ivs-encoderconfiguration--seealso"></a>
+  [Getting Started with IVS Real-Time Streaming](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started.html) 
+  [ Server-Side Composition (Real-Time Streaming)](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/server-side-composition.html) 

# AWS::IVS::EncoderConfiguration Tag
<a name="aws-properties-ivs-encoderconfiguration-tag"></a>

A key-value pair that you can use to categorize and manage Amazon IVS EncoderConfigurations.

## Syntax
<a name="aws-properties-ivs-encoderconfiguration-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-ivs-encoderconfiguration-tag-key): String
  [Value](#cfn-ivs-encoderconfiguration-tag-value): String
```

## Properties
<a name="aws-properties-ivs-encoderconfiguration-tag-properties"></a>

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

`Value`  <a name="cfn-ivs-encoderconfiguration-tag-value"></a>
The optional part of a key-value pair that makes up a tag. A `value` acts as a descriptor within a tag category (key).  
*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::IVS::EncoderConfiguration Video
<a name="aws-properties-ivs-encoderconfiguration-video"></a>

The Video property type describes a stream's video configuration.

## Syntax
<a name="aws-properties-ivs-encoderconfiguration-video-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-encoderconfiguration-video-syntax.json"></a>

```
{
  "[Bitrate](#cfn-ivs-encoderconfiguration-video-bitrate)" : Integer,
  "[Framerate](#cfn-ivs-encoderconfiguration-video-framerate)" : Number,
  "[Height](#cfn-ivs-encoderconfiguration-video-height)" : Integer,
  "[Width](#cfn-ivs-encoderconfiguration-video-width)" : Integer
}
```

### YAML
<a name="aws-properties-ivs-encoderconfiguration-video-syntax.yaml"></a>

```
  [Bitrate](#cfn-ivs-encoderconfiguration-video-bitrate): Integer
  [Framerate](#cfn-ivs-encoderconfiguration-video-framerate): Number
  [Height](#cfn-ivs-encoderconfiguration-video-height): Integer
  [Width](#cfn-ivs-encoderconfiguration-video-width): Integer
```

## Properties
<a name="aws-properties-ivs-encoderconfiguration-video-properties"></a>

`Bitrate`  <a name="cfn-ivs-encoderconfiguration-video-bitrate"></a>
Bitrate for generated output, in bps. Default: 2500000.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `8500000`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Framerate`  <a name="cfn-ivs-encoderconfiguration-video-framerate"></a>
Video frame rate, in fps. Default: 30.  
*Required*: No  
*Type*: Number  
*Minimum*: `1`  
*Maximum*: `60`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Height`  <a name="cfn-ivs-encoderconfiguration-video-height"></a>
Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720.  
*Required*: No  
*Type*: Integer  
*Minimum*: `2`  
*Maximum*: `1920`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Width`  <a name="cfn-ivs-encoderconfiguration-video-width"></a>
Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280.  
*Required*: No  
*Type*: Integer  
*Minimum*: `2`  
*Maximum*: `1920`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::IVS::IngestConfiguration
<a name="aws-resource-ivs-ingestconfiguration"></a>

The `AWS::IVS::IngestConfiguration` resource specifies an ingest protocol to be used for a stage. For more information, see [Stream Ingest](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html) in the *Amazon IVS Real-Time Streaming User Guide*.

## Syntax
<a name="aws-resource-ivs-ingestconfiguration-syntax"></a>

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

### JSON
<a name="aws-resource-ivs-ingestconfiguration-syntax.json"></a>

```
{
  "Type" : "AWS::IVS::IngestConfiguration",
  "Properties" : {
      "[IngestProtocol](#cfn-ivs-ingestconfiguration-ingestprotocol)" : String,
      "[InsecureIngest](#cfn-ivs-ingestconfiguration-insecureingest)" : Boolean,
      "[Name](#cfn-ivs-ingestconfiguration-name)" : String,
      "[StageArn](#cfn-ivs-ingestconfiguration-stagearn)" : String,
      "[Tags](#cfn-ivs-ingestconfiguration-tags)" : [ Tag, ... ],
      "[UserId](#cfn-ivs-ingestconfiguration-userid)" : String
    }
}
```

### YAML
<a name="aws-resource-ivs-ingestconfiguration-syntax.yaml"></a>

```
Type: AWS::IVS::IngestConfiguration
Properties:
  [IngestProtocol](#cfn-ivs-ingestconfiguration-ingestprotocol): String
  [InsecureIngest](#cfn-ivs-ingestconfiguration-insecureingest): Boolean
  [Name](#cfn-ivs-ingestconfiguration-name): String
  [StageArn](#cfn-ivs-ingestconfiguration-stagearn): String
  [Tags](#cfn-ivs-ingestconfiguration-tags): 
    - Tag
  [UserId](#cfn-ivs-ingestconfiguration-userid): String
```

## Properties
<a name="aws-resource-ivs-ingestconfiguration-properties"></a>

`IngestProtocol`  <a name="cfn-ivs-ingestconfiguration-ingestprotocol"></a>
Type of ingest protocol that the user employs for broadcasting.  
*Required*: No  
*Type*: String  
*Allowed values*: `RTMP | RTMPS`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`InsecureIngest`  <a name="cfn-ivs-ingestconfiguration-insecureingest"></a>
Whether the channel allows insecure RTMP ingest. Default: `false`.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-ivs-ingestconfiguration-name"></a>
Ingest name.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9-_]*$`  
*Minimum*: `0`  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`StageArn`  <a name="cfn-ivs-ingestconfiguration-stagearn"></a>
ARN of the stage with which the IngestConfiguration is associated.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:aws:ivs:[a-z0-9-]+:[0-9]+:stage/[a-zA-Z0-9-]+$`  
*Minimum*: `0`  
*Maximum*: `128`  
*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-ivs-ingestconfiguration-tags"></a>
An array of key-value pairs to apply to this resource.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-ivs-ingestconfiguration-tag.md)  
*Maximum*: `50`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`UserId`  <a name="cfn-ivs-ingestconfiguration-userid"></a>
Customer-assigned name to help identify the participant using the IngestConfiguration; this can be used to link a participant to a user in the customer’s own systems. This can be any UTF-8 encoded text. *This field is exposed to all stage participants and should not be used for personally identifying, confidential, or sensitive information.*  
*Required*: No  
*Type*: String  
*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-ivs-ingestconfiguration-return-values"></a>

### Ref
<a name="aws-resource-ivs-ingestconfiguration-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the ingest configuration ARN. For example:

 `{ "Ref": "myIngestConfiguration" }` 

For the Amazon IVS ingest configuration `myIngestConfiguration`, `Ref` returns the ingest configuration ARN.

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

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

`Arn`  <a name="Arn-fn::getatt"></a>
The ingest-configuration ARN. For example: `arn:aws:ivs:us-west-2:123456789012:ingest-configuration/abcdABCDefgh`

`ParticipantId`  <a name="ParticipantId-fn::getatt"></a>
ID of the participant within the stage. For example: `abCDEf12GHIj`

`State`  <a name="State-fn::getatt"></a>
State of the ingest configuration. It is `ACTIVE` if a publisher currently is publishing to the stage associated with the ingest configuration. Valid values: `ACTIVE` \$1 `INACTIVE`.

`StreamKey`  <a name="StreamKey-fn::getatt"></a>
Ingest-key value for the RTMP(S) protocol. For example: `skSKABCDefgh`

## Examples
<a name="aws-resource-ivs-ingestconfiguration--examples"></a>



### Ingest Configuration Template Examples
<a name="aws-resource-ivs-ingestconfiguration--examples--Ingest_Configuration_Template_Examples"></a>

The following examples specify an Amazon IVS ingest configuration.

#### JSON
<a name="aws-resource-ivs-ingestconfiguration--examples--Ingest_Configuration_Template_Examples--json"></a>

```
{
     "AWSTemplateFormatVersion": "2010-09-09",
     "Resources": {
         "Stage": {
             "Type": "AWS::IVS::Stage",
             "Properties": {
                 "Name": "myStage",
                 "Tags": [
                     {
                         "Key": "MyKey",
                         "Value": "MyValue"
                     }
                 ]
             }
         },
         "IngestConfiguration": {
             "Type": "AWS::IVS::IngestConfiguration",
             "Properties": {
                 "Name": "myIngest",
                 "StageArn": {"Ref": "Stage"},
                 "IngestProtocol": "RTMPS",
                 "InsecureIngest": false,
                 "UserId": "myUser",
                 "Tags": [
                     {
                         "Key": "MyKey",
                         "Value": "MyValue"
                     }
                 ]
             }
         }
     },
     "Outputs": {
         "IngestConfigurationArn": {
             "Value": {"Ref": "IngestConfiguration"}
         },
         "IngestConfigurationState": {
             "Value": {
                 "Fn::GetAtt": [
                     "IngestConfiguration",
                     "State"
                 ]
             }
         },
         "IngestConfigurationStreamKey": {
             "Value": {
                 "Fn::GetAtt": [
                     "IngestConfiguration",
                     "StreamKey"
                 ]
             }
         },
         "IngestConfigurationParticipantId": {
             "Value": {
                 "Fn::GetAtt": [
                     "IngestConfiguration",
                     "ParticipantId"
                 ]
			 }
         }
     }
 }
```

#### YAML
<a name="aws-resource-ivs-ingestconfiguration--examples--Ingest_Configuration_Template_Examples--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  Stage:
    Type: AWS::IVS::Stage
    Properties:
      Name: MyStage
      Tags:
        - Key: MyKey
          Value: MyValue
  
  IngestConfiguration:
    Type: AWS::IVS::IngestConfiguration
    Properties:
      Name: myIngestName
      IngestProtocol: RTMPS
      InsecureIngest: false
      UserId: myUser
      StageArn: !Ref Stage
      Tags:
        - Key: MyKey
          Value: MyValue


Outputs:
  IngestConfigurationArn:
    Value: !Ref IngestConfiguration

  IngestConfigurationState:
    Value: !GetAtt IngestConfiguration.State

  IngestConfigurationStreamKey:
    Value: !GetAtt IngestConfiguration.StreamKey
  
  IngestConfigurationParticipantId:
    Value: !GetAtt IngestConfiguration.ParticipantId
```

## See also
<a name="aws-resource-ivs-ingestconfiguration--seealso"></a>
+  [IVS Stream Ingest](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html) 
+ [IngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_IngestConfiguration.html) data type
+ [CreateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateIngestConfiguration.html) API endpoint
+ [DeleteIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_DeleteIngestConfiguration.html) API endpoint
+ [GetIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_GetIngestConfiguration.html) API endpoint
+ [ListIngestConfigurations](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_ListIngestConfigurations.html) API endpoint
+ [UpdateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_UpdateIngestConfiguration.html) API endpoint

# AWS::IVS::IngestConfiguration Tag
<a name="aws-properties-ivs-ingestconfiguration-tag"></a>

A key-value pair that you can use to categorize and manage Amazon IVS IngestConfigurations.

## Syntax
<a name="aws-properties-ivs-ingestconfiguration-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-ivs-ingestconfiguration-tag-key): String
  [Value](#cfn-ivs-ingestconfiguration-tag-value): String
```

## Properties
<a name="aws-properties-ivs-ingestconfiguration-tag-properties"></a>

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

`Value`  <a name="cfn-ivs-ingestconfiguration-tag-value"></a>
The optional part of a key-value pair that makes up a tag. A `value` acts as a descriptor within a tag category (key).  
*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::IVS::PlaybackKeyPair
<a name="aws-resource-ivs-playbackkeypair"></a>

The `AWS::IVS::PlaybackKeyPair` resource specifies an Amazon IVS playback key pair. Amazon IVS uses a public playback key to validate playback tokens that have been signed with the corresponding private key. For more information, see [Setting Up Private Channels](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/private-channels.html) in the *Amazon IVS Low-Latency Streaming User Guide*.

## Syntax
<a name="aws-resource-ivs-playbackkeypair-syntax"></a>

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

### JSON
<a name="aws-resource-ivs-playbackkeypair-syntax.json"></a>

```
{
  "Type" : "AWS::IVS::PlaybackKeyPair",
  "Properties" : {
      "[Name](#cfn-ivs-playbackkeypair-name)" : String,
      "[PublicKeyMaterial](#cfn-ivs-playbackkeypair-publickeymaterial)" : String,
      "[Tags](#cfn-ivs-playbackkeypair-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-ivs-playbackkeypair-syntax.yaml"></a>

```
Type: AWS::IVS::PlaybackKeyPair
Properties:
  [Name](#cfn-ivs-playbackkeypair-name): String
  [PublicKeyMaterial](#cfn-ivs-playbackkeypair-publickeymaterial): String
  [Tags](#cfn-ivs-playbackkeypair-tags): 
    - Tag
```

## Properties
<a name="aws-resource-ivs-playbackkeypair-properties"></a>

`Name`  <a name="cfn-ivs-playbackkeypair-name"></a>
Playback-key-pair name. The value does not need to be unique.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9-_]*$`  
*Minimum*: `0`  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`PublicKeyMaterial`  <a name="cfn-ivs-playbackkeypair-publickeymaterial"></a>
The public portion of a customer-generated key pair. Note that this field is required to create the AWS::IVS::PlaybackKeyPair resource.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-ivs-playbackkeypair-tags"></a>
An array of key-value pairs to apply to this resource.  
For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackkeypair-tag.html).  
*Required*: No  
*Type*: Array of [Tag](aws-properties-ivs-playbackkeypair-tag.md)  
*Maximum*: `50`  
*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-ivs-playbackkeypair-return-values"></a>

### Ref
<a name="aws-resource-ivs-playbackkeypair-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the playback key pair ARN. For example:

 `{ "Ref": "myPlaybackKeyPair" }` 

For the Amazon IVS playback key pair `myPlaybackKeyPair`, `Ref` returns the playback key pair ARN.

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

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

`Arn`  <a name="Arn-fn::getatt"></a>
Key-pair ARN. For example: `arn:aws:ivs:us-west-2:693991300569:playback-key/f99cde61-c2b0-4df3-8941-ca7d38acca1a`

`Fingerprint`  <a name="Fingerprint-fn::getatt"></a>
Key-pair identifier. For example: `98:0d:1a:a0:19:96:1e:ea:0a:0a:2c:9a:42:19:2b:e7`

## Examples
<a name="aws-resource-ivs-playbackkeypair--examples"></a>



### Playback Key Pair Template Examples
<a name="aws-resource-ivs-playbackkeypair--examples--Playback_Key_Pair_Template_Examples"></a>

The following examples specify an Amazon IVS playback key pair.

#### JSON
<a name="aws-resource-ivs-playbackkeypair--examples--Playback_Key_Pair_Template_Examples--json"></a>

```
 {
     "AWSTemplateFormatVersion": "2010-09-09",
     "Resources": {
         "PlaybackKeyPair": {
             "Type": "AWS::IVS::PlaybackKeyPair",
             "Properties": {
                 "PublicKeyMaterial": "-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm\nh4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk\nK/UhYGWkXlbJlc9zn13imYWgVGe/BMFp\n-----END PUBLIC KEY-----\n",
                 "Name": "MyPlaybackKeyPair",
                 "Tags": [
                     {
                         "Key": "MyKey",
                         "Value": "MyValue"
                     }
                 ]
             }
         }
     },
     "Outputs": {
         "PlaybackKeyPairArn": {
             "Value": {"Ref": "PlaybackKeyPair"}
         },
         "PlaybackKeyPairFingerprint": {
             "Value": {
                 "Fn::GetAtt": [
                     "PlaybackKeyPair",
                     "Fingerprint"
                 ]
             }
         }
     }
 }
```

#### YAML
<a name="aws-resource-ivs-playbackkeypair--examples--Playback_Key_Pair_Template_Examples--yaml"></a>

```
 AWSTemplateFormatVersion: 2010-09-09
 Resources:
  PlaybackKeyPair:
    Type: AWS::IVS::PlaybackKeyPair
    Properties:
      PublicKeyMaterial: |
        -----BEGIN PUBLIC KEY-----
        MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm
        h4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk
        K/UhYGWkXlbJlc9zn13imYWgVGe/BMFp
        -----END PUBLIC KEY-----
      Name: MyPlaybackKeyPair
      Tags:
        - Key: MyKey
          Value: MyValue
 Outputs:
  PlaybackKeyPairArn:
    Value: !Ref PlaybackKeyPair
  PlaybackKeyPairFingerprint:
    Value: !GetAtt PlaybackKeyPair.Fingerprint
```

## See also
<a name="aws-resource-ivs-playbackkeypair--seealso"></a>
+  [Setting Up Private Channels](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/private-channels.html) 
+ [PlaybackKeyPair](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_PlaybackKeyPair.html) data type
+ [ImportPlaybackKeyPair](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_ImportPlaybackKeyPair.html) API endpoint

# AWS::IVS::PlaybackKeyPair Tag
<a name="aws-properties-ivs-playbackkeypair-tag"></a>

A key-value pair that you can use to categorize and manage Amazon IVS PlaybackKeyPairs.

## Syntax
<a name="aws-properties-ivs-playbackkeypair-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-ivs-playbackkeypair-tag-key): String
  [Value](#cfn-ivs-playbackkeypair-tag-value): String
```

## Properties
<a name="aws-properties-ivs-playbackkeypair-tag-properties"></a>

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

`Value`  <a name="cfn-ivs-playbackkeypair-tag-value"></a>
The optional part of a key-value pair that makes up a tag. A `value` acts as a descriptor within a tag category (key).  
*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::IVS::PlaybackRestrictionPolicy
<a name="aws-resource-ivs-playbackrestrictionpolicy"></a>

The `AWS::IVS::PlaybackRestrictionPolicy` resource specifies an Amazon IVS playback restriction policy. A playback restriction policy constrains playback by country and/or origin sites. For more information, see [Undesired Content and Viewers](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/undesired-content.html) in the *Amazon IVS Low-Latency Streaming User Guide*.

## Syntax
<a name="aws-resource-ivs-playbackrestrictionpolicy-syntax"></a>

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

### JSON
<a name="aws-resource-ivs-playbackrestrictionpolicy-syntax.json"></a>

```
{
  "Type" : "AWS::IVS::PlaybackRestrictionPolicy",
  "Properties" : {
      "[AllowedCountries](#cfn-ivs-playbackrestrictionpolicy-allowedcountries)" : [ String, ... ],
      "[AllowedOrigins](#cfn-ivs-playbackrestrictionpolicy-allowedorigins)" : [ String, ... ],
      "[EnableStrictOriginEnforcement](#cfn-ivs-playbackrestrictionpolicy-enablestrictoriginenforcement)" : Boolean,
      "[Name](#cfn-ivs-playbackrestrictionpolicy-name)" : String,
      "[Tags](#cfn-ivs-playbackrestrictionpolicy-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-ivs-playbackrestrictionpolicy-syntax.yaml"></a>

```
Type: AWS::IVS::PlaybackRestrictionPolicy
Properties:
  [AllowedCountries](#cfn-ivs-playbackrestrictionpolicy-allowedcountries): 
    - String
  [AllowedOrigins](#cfn-ivs-playbackrestrictionpolicy-allowedorigins): 
    - String
  [EnableStrictOriginEnforcement](#cfn-ivs-playbackrestrictionpolicy-enablestrictoriginenforcement): Boolean
  [Name](#cfn-ivs-playbackrestrictionpolicy-name): String
  [Tags](#cfn-ivs-playbackrestrictionpolicy-tags): 
    - Tag
```

## Properties
<a name="aws-resource-ivs-playbackrestrictionpolicy-properties"></a>

`AllowedCountries`  <a name="cfn-ivs-playbackrestrictionpolicy-allowedcountries"></a>
A list of country codes that control geoblocking restrictions. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array).  
*Required*: No  
*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)

`AllowedOrigins`  <a name="cfn-ivs-playbackrestrictionpolicy-allowedorigins"></a>
A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin"](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin)  
*Required*: No  
*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)

`EnableStrictOriginEnforcement`  <a name="cfn-ivs-playbackrestrictionpolicy-enablestrictoriginenforcement"></a>
Whether channel playback is constrained by the origin site.  
*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)

`Name`  <a name="cfn-ivs-playbackrestrictionpolicy-name"></a>
Playback-restriction-policy name.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9-_]*$`  
*Minimum*: `0`  
*Maximum*: `128`  
*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-ivs-playbackrestrictionpolicy-tags"></a>
An array of key-value pairs to apply to this resource.  
For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackrestrictionpolicy-tag.html).  
*Required*: No  
*Type*: Array of [Tag](aws-properties-ivs-playbackrestrictionpolicy-tag.md)  
*Maximum*: `50`  
*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-ivs-playbackrestrictionpolicy-return-values"></a>

### Ref
<a name="aws-resource-ivs-playbackrestrictionpolicy-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the playback-restriction-policy ARN. For example:

 `{ "Ref": "myPlaybackRestrictionPolicy" }` 

For the Amazon IVS playback restriction policy `"myPlaybackRestrictionPolicy"`, `Ref` returns the playback-restriction-policy ARN.

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

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

`Arn`  <a name="Arn-fn::getatt"></a>
The playback-restriction-policy ARN. For example: `arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/abcdABCDefgh`

## Examples
<a name="aws-resource-ivs-playbackrestrictionpolicy--examples"></a>



### PlaybackRestrictionPolicy Template Examples
<a name="aws-resource-ivs-playbackrestrictionpolicy--examples--PlaybackRestrictionPolicy_Template_Examples"></a>

The following examples specify an Amazon IVS playback restriction policy.

#### JSON
<a name="aws-resource-ivs-playbackrestrictionpolicy--examples--PlaybackRestrictionPolicy_Template_Examples--json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "PlaybackRestrictionPolicy": {
            "Type": "AWS::IVS::PlaybackRestrictionPolicy",
            "Properties": {
                "AllowedCountries" : [ "US" ],
                "AllowedOrigins" : [ "https://aws.amazon.com" ],
                "EnableStrictOriginEnforcement" : true,
                "Name": "myPlaybackRestrictionPolicy",
                "Tags": [
                    {
                        "Key": "MyKey",
                        "Value": "MyValue"
                    }
                ]
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-ivs-playbackrestrictionpolicy--examples--PlaybackRestrictionPolicy_Template_Examples--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  PlaybackRestrictionPolicy:
    Type: AWS::IVS::PlaybackRestrictionPolicy
    Properties:
      AllowedCountries: 
        - US
      AllowedOrigins: 
        - https://aws.amazon.com
      EnableStrictOriginEnforcement: true
      Name: myPlaybackRestrictionPolicy
      Tags: 
        - Key: myKey
          Value: myValue
```

## See also
<a name="aws-resource-ivs-playbackrestrictionpolicy--seealso"></a>
+  [Getting Started with IVS Low-Latency Streaming](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/getting-started.html) 
+  [Undesired Content and Viewers](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/undesired-content.html) 

# AWS::IVS::PlaybackRestrictionPolicy Tag
<a name="aws-properties-ivs-playbackrestrictionpolicy-tag"></a>

A key-value pair that you can use to categorize and manage Amazon IVS PlaybackRestrictionPolicies.

## Syntax
<a name="aws-properties-ivs-playbackrestrictionpolicy-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-ivs-playbackrestrictionpolicy-tag-key): String
  [Value](#cfn-ivs-playbackrestrictionpolicy-tag-value): String
```

## Properties
<a name="aws-properties-ivs-playbackrestrictionpolicy-tag-properties"></a>

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

`Value`  <a name="cfn-ivs-playbackrestrictionpolicy-tag-value"></a>
The optional part of a key-value pair that makes up a tag. A `value` acts as a descriptor within a tag category (key).  
*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::IVS::PublicKey
<a name="aws-resource-ivs-publickey"></a>

The `AWS::IVS::PublicKey` resource specifies an Amazon IVS public key used to sign stage participant tokens. For more information, see [Distribute Participant Tokens](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started-distribute-tokens.html) in the *Amazon IVS Real-Time Streaming User Guide*.

## Syntax
<a name="aws-resource-ivs-publickey-syntax"></a>

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

### JSON
<a name="aws-resource-ivs-publickey-syntax.json"></a>

```
{
  "Type" : "AWS::IVS::PublicKey",
  "Properties" : {
      "[Name](#cfn-ivs-publickey-name)" : String,
      "[PublicKeyMaterial](#cfn-ivs-publickey-publickeymaterial)" : String,
      "[Tags](#cfn-ivs-publickey-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-ivs-publickey-syntax.yaml"></a>

```
Type: AWS::IVS::PublicKey
Properties:
  [Name](#cfn-ivs-publickey-name): String
  [PublicKeyMaterial](#cfn-ivs-publickey-publickeymaterial): String
  [Tags](#cfn-ivs-publickey-tags): 
    - Tag
```

## Properties
<a name="aws-resource-ivs-publickey-properties"></a>

`Name`  <a name="cfn-ivs-publickey-name"></a>
Public key name. The value does not need to be unique.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9-_]*$`  
*Minimum*: `0`  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`PublicKeyMaterial`  <a name="cfn-ivs-publickey-publickeymaterial"></a>
The public portion of a customer-generated key pair. Note that this field is required to create the AWS::IVS::PublicKey resource.  
*Required*: No  
*Type*: String  
*Pattern*: `-----BEGIN PUBLIC KEY-----\r?\n([a-zA-Z0-9+/=\r\n]+)\r?\n-----END PUBLIC KEY-----(\r?\n)?`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-ivs-publickey-tags"></a>
An array of key-value pairs to apply to this resource.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-ivs-publickey-tag.md)  
*Maximum*: `50`  
*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-ivs-publickey-return-values"></a>

### Ref
<a name="aws-resource-ivs-publickey-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the public key ARN. For example:

 `{ "Ref": "myPublicKey" }` 

For the Amazon IVS public key `myPublicKey`, `Ref` returns the public key ARN.

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

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

`Arn`  <a name="Arn-fn::getatt"></a>
The public key ARN. For example: `arn:aws:ivs:us-west-2:123456789012:public-key/abcdABCDefgh`

`Fingerprint`  <a name="Fingerprint-fn::getatt"></a>
The public key identifier. For example: `98:0d:1a:a0:19:96:1e:ea:0a:0a:2c:9a:42:19:2b:e7`

## Examples
<a name="aws-resource-ivs-publickey--examples"></a>



### PublicKey Template Examples
<a name="aws-resource-ivs-publickey--examples--PublicKey_Template_Examples"></a>

The following examples specify an Amazon IVS public key.

#### JSON
<a name="aws-resource-ivs-publickey--examples--PublicKey_Template_Examples--json"></a>

```
{
     "AWSTemplateFormatVersion": "2010-09-09",
     "Resources": {
         "PublicKey": {
             "Type": "AWS::IVS::PublicKey",
             "Properties": {
                 "PublicKeyMaterial": "-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm\nh4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk\nK/UhYGWkXlbJlc9zn13imYWgVGe/BMFp\n-----END PUBLIC KEY-----\n",
                 "Name": "MyPublicKey",
                 "Tags": [
                     {
                         "Key": "MyKey",
                         "Value": "MyValue"
                     }
                 ]
             }
         }
     }
 }
```

#### YAML
<a name="aws-resource-ivs-publickey--examples--PublicKey_Template_Examples--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  PublicKey:
    Type: AWS::IVS::PublicKey
    Properties:
      PublicKeyMaterial: |
        -----BEGIN PUBLIC KEY-----
        MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm
        h4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk
        K/UhYGWkXlbJlc9zn13imYWgVGe/BMFp
        -----END PUBLIC KEY-----
      Name: MyPublicKey
      Tags:
        - Key: MyKey
          Value: MyValue
```

## See also
<a name="aws-resource-ivs-publickey--seealso"></a>
+  [Distribute Participant Tokens](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started-distribute-tokens.html) 
+ [PublicKey](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_PublicKey.html) data type
+ [ImportPublicKey](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_ImportPublicKey.html) API endpoint

# AWS::IVS::PublicKey Tag
<a name="aws-properties-ivs-publickey-tag"></a>

A key-value pair that you can use to categorize and manage Amazon IVS PublicKeys.

## Syntax
<a name="aws-properties-ivs-publickey-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-ivs-publickey-tag-key): String
  [Value](#cfn-ivs-publickey-tag-value): String
```

## Properties
<a name="aws-properties-ivs-publickey-tag-properties"></a>

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

`Value`  <a name="cfn-ivs-publickey-tag-value"></a>
The optional part of a key-value pair that makes up a tag. A `value` acts as a descriptor within a tag category (key).  
*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::IVS::RecordingConfiguration
<a name="aws-resource-ivs-recordingconfiguration"></a>

The `AWS::IVS::RecordingConfiguration` resource specifies an Amazon IVS recording configuration. A recording configuration enables the recording of a channel’s live streams to a data store. Multiple channels can reference the same recording configuration. For more information, see [RecordingConfiguration](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_RecordingConfiguration.html) in the *Amazon IVS Low-Latency Streaming API Reference*.

## Syntax
<a name="aws-resource-ivs-recordingconfiguration-syntax"></a>

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

### JSON
<a name="aws-resource-ivs-recordingconfiguration-syntax.json"></a>

```
{
  "Type" : "AWS::IVS::RecordingConfiguration",
  "Properties" : {
      "[DestinationConfiguration](#cfn-ivs-recordingconfiguration-destinationconfiguration)" : DestinationConfiguration,
      "[Name](#cfn-ivs-recordingconfiguration-name)" : String,
      "[RecordingReconnectWindowSeconds](#cfn-ivs-recordingconfiguration-recordingreconnectwindowseconds)" : Integer,
      "[RenditionConfiguration](#cfn-ivs-recordingconfiguration-renditionconfiguration)" : RenditionConfiguration,
      "[Tags](#cfn-ivs-recordingconfiguration-tags)" : [ Tag, ... ],
      "[ThumbnailConfiguration](#cfn-ivs-recordingconfiguration-thumbnailconfiguration)" : ThumbnailConfiguration
    }
}
```

### YAML
<a name="aws-resource-ivs-recordingconfiguration-syntax.yaml"></a>

```
Type: AWS::IVS::RecordingConfiguration
Properties:
  [DestinationConfiguration](#cfn-ivs-recordingconfiguration-destinationconfiguration): 
    DestinationConfiguration
  [Name](#cfn-ivs-recordingconfiguration-name): String
  [RecordingReconnectWindowSeconds](#cfn-ivs-recordingconfiguration-recordingreconnectwindowseconds): Integer
  [RenditionConfiguration](#cfn-ivs-recordingconfiguration-renditionconfiguration): 
    RenditionConfiguration
  [Tags](#cfn-ivs-recordingconfiguration-tags): 
    - Tag
  [ThumbnailConfiguration](#cfn-ivs-recordingconfiguration-thumbnailconfiguration): 
    ThumbnailConfiguration
```

## Properties
<a name="aws-resource-ivs-recordingconfiguration-properties"></a>

`DestinationConfiguration`  <a name="cfn-ivs-recordingconfiguration-destinationconfiguration"></a>
A destination configuration describes an S3 bucket where recorded video will be stored. See the [ DestinationConfiguration](aws-properties-ivs-recordingconfiguration-destinationconfiguration.md) property type for more information.  
*Required*: Yes  
*Type*: [DestinationConfiguration](aws-properties-ivs-recordingconfiguration-destinationconfiguration.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-ivs-recordingconfiguration-name"></a>
Recording-configuration name. The value does not need to be unique.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9-_]*$`  
*Minimum*: `0`  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RecordingReconnectWindowSeconds`  <a name="cfn-ivs-recordingconfiguration-recordingreconnectwindowseconds"></a>
If a broadcast disconnects and then reconnects within the specified interval, the multiple streams will be considered a single broadcast and merged together.  
*Default*: `0`  
*Required*: No  
*Type*: Integer  
*Minimum*: `0`  
*Maximum*: `300`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RenditionConfiguration`  <a name="cfn-ivs-recordingconfiguration-renditionconfiguration"></a>
A rendition configuration describes which renditions should be recorded for a stream. See the [RenditionConfiguration](aws-properties-ivs-recordingconfiguration-renditionconfiguration.md) property type for more information.  
*Required*: No  
*Type*: [RenditionConfiguration](aws-properties-ivs-recordingconfiguration-renditionconfiguration.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

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

`ThumbnailConfiguration`  <a name="cfn-ivs-recordingconfiguration-thumbnailconfiguration"></a>
A thumbnail configuration enables/disables the recording of thumbnails for a live session and controls the interval at which thumbnails are generated for the live session. See the [ThumbnailConfiguration](aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.md) property type for more information.  
*Required*: No  
*Type*: [ThumbnailConfiguration](aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.md)  
*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-ivs-recordingconfiguration-return-values"></a>

### Ref
<a name="aws-resource-ivs-recordingconfiguration-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the recording-configuration ARN. For example:

 `{ "Ref": "myRecordingConfiguration" }` 

For the Amazon IVS recording configuration `myRecordingConfiguration`, `Ref` returns the recording-configuration ARN.

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

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

`Arn`  <a name="Arn-fn::getatt"></a>
The recording configuration ARN. For example: `arn:aws:ivs:us-west-2:123456789012:recording-configuration/abcdABCDefgh`

`State`  <a name="State-fn::getatt"></a>
Indicates the current state of the recording configuration. When the state is `ACTIVE`, the configuration is ready to record a channel stream. Valid values: `CREATING` \$1 `CREATE_FAILED` \$1 `ACTIVE`.

## Examples
<a name="aws-resource-ivs-recordingconfiguration--examples"></a>



### Recording Configuration Template Examples
<a name="aws-resource-ivs-recordingconfiguration--examples--Recording_Configuration_Template_Examples"></a>

The following examples specify an Amazon IVS Channel that records live-channel streams to an S3 bucket.

#### JSON
<a name="aws-resource-ivs-recordingconfiguration--examples--Recording_Configuration_Template_Examples--json"></a>

```
{
  "Resources": {
    "S3Bucket": {
      "Type": "AWS::S3::Bucket"
    },
    "RecordingConfiguration": {
      "Type": "AWS::IVS::RecordingConfiguration",
      "DependsOn": "S3Bucket",
      "Properties": {
        "Name": “MyRecordingConfiguration”,
        "DestinationConfiguration": {
          "S3": {
            "BucketName": {
              "Ref": "S3Bucket"
            }
          }
        },
        "ThumbnailConfiguration": {
          "RecordingMode": "INTERVAL",
            "TargetIntervalSeconds": 60,
            "Storage": ["SEQUENTIAL", "LATEST"],
          "Resolution": "HD"
        },
        "RenditionConfiguration": {
          "RenditionSelection": "CUSTOM",
          "Renditions": ["HD", "SD"]
        }
      }
    },
    "Channel": {
      "Type": "AWS::IVS::Channel",
      "DependsOn": "RecordingConfiguration",
      "Properties": {
        "Name": "MyRecordedChannel",
        "RecordingConfigurationArn": {
          "Ref": "RecordingConfiguration"
        }
      }
    }
  }
}
```

#### YAML
<a name="aws-resource-ivs-recordingconfiguration--examples--Recording_Configuration_Template_Examples--yaml"></a>

```
Resources:
 S3Bucket:
   Type: AWS::S3::Bucket

 RecordingConfiguration:
   Type: AWS::IVS::RecordingConfiguration
   DependsOn: S3Bucket
   Properties:
     Name: MyRecordingConfiguration
     DestinationConfiguration:
       S3:
         BucketName: !Ref S3Bucket
     ThumbnailConfiguration:
       RecordingMode: INTERVAL
       TargetIntervalSeconds: 60
       Resolution: HD
       Storage:
         - SEQUENTIAL
         - LATEST
     RenditionConfiguration:
       RenditionSelection: CUSTOM
       Renditions:
         - HD
         - SD

 Channel:
   Type: AWS::IVS::Channel
   DependsOn: RecordingConfiguration
   Properties:
     Name: MyRecordedChannel
     RecordingConfigurationArn: !Ref RecordingConfiguration
```

## See also
<a name="aws-resource-ivs-recordingconfiguration--seealso"></a>
+  [Getting Started with IVS Low-Latency Streaming](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/GSIVS.html) 
+  [Auto-Record to Amazon S3](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html) 
+ [RecordingConfiguration](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_RecordingConfiguration.html) API data type
+ [DestinationConfiguration](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_DestinationConfiguration.html) API data type
+ [S3DestinationConfiguration](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_S3DestinationConfiguration.html) API data type
+ [CreateRecordingConfiguration](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_CreateRecordingConfiguration.html) API endpoint

# AWS::IVS::RecordingConfiguration DestinationConfiguration
<a name="aws-properties-ivs-recordingconfiguration-destinationconfiguration"></a>

The DestinationConfiguration property type describes the location where recorded videos will be stored. Each member represents a type of destination configuration. For recording, you define one and only one type of destination configuration.

## Syntax
<a name="aws-properties-ivs-recordingconfiguration-destinationconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-recordingconfiguration-destinationconfiguration-syntax.json"></a>

```
{
  "[S3](#cfn-ivs-recordingconfiguration-destinationconfiguration-s3)" : S3DestinationConfiguration
}
```

### YAML
<a name="aws-properties-ivs-recordingconfiguration-destinationconfiguration-syntax.yaml"></a>

```
  [S3](#cfn-ivs-recordingconfiguration-destinationconfiguration-s3): 
    S3DestinationConfiguration
```

## Properties
<a name="aws-properties-ivs-recordingconfiguration-destinationconfiguration-properties"></a>

`S3`  <a name="cfn-ivs-recordingconfiguration-destinationconfiguration-s3"></a>
An S3 destination configuration where recorded videos will be stored. See the [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-s3destinationconfiguration.html) property type for more information.  
*Required*: No  
*Type*: [S3DestinationConfiguration](aws-properties-ivs-recordingconfiguration-s3destinationconfiguration.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::IVS::RecordingConfiguration RenditionConfiguration
<a name="aws-properties-ivs-recordingconfiguration-renditionconfiguration"></a>

The RenditionConfiguration property type describes which renditions should be recorded for a stream.

## Syntax
<a name="aws-properties-ivs-recordingconfiguration-renditionconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-recordingconfiguration-renditionconfiguration-syntax.json"></a>

```
{
  "[Renditions](#cfn-ivs-recordingconfiguration-renditionconfiguration-renditions)" : [ String, ... ],
  "[RenditionSelection](#cfn-ivs-recordingconfiguration-renditionconfiguration-renditionselection)" : String
}
```

### YAML
<a name="aws-properties-ivs-recordingconfiguration-renditionconfiguration-syntax.yaml"></a>

```
  [Renditions](#cfn-ivs-recordingconfiguration-renditionconfiguration-renditions): 
    - String
  [RenditionSelection](#cfn-ivs-recordingconfiguration-renditionconfiguration-renditionselection): String
```

## Properties
<a name="aws-properties-ivs-recordingconfiguration-renditionconfiguration-properties"></a>

`Renditions`  <a name="cfn-ivs-recordingconfiguration-renditionconfiguration-renditions"></a>
A list of which renditions are recorded for a stream, if `renditionSelection` is `CUSTOM`; otherwise, this field is irrelevant. The selected renditions are recorded if they are available during the stream. If a selected rendition is unavailable, the best available rendition is recorded. For details on the resolution dimensions of each rendition, see [Auto-Record to Amazon S3](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/record-to-s3.html).  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `FULL_HD | HD | SD | LOWEST_RESOLUTION`  
*Minimum*: `0`  
*Maximum*: `4`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RenditionSelection`  <a name="cfn-ivs-recordingconfiguration-renditionconfiguration-renditionselection"></a>
The set of renditions are recorded for a stream. For `BASIC` channels, the `CUSTOM` value has no effect. If `CUSTOM` is specified, a set of renditions can be specified in the `renditions` field. Default: `ALL`.  
*Required*: No  
*Type*: String  
*Allowed values*: `ALL | NONE | CUSTOM`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::IVS::RecordingConfiguration S3DestinationConfiguration
<a name="aws-properties-ivs-recordingconfiguration-s3destinationconfiguration"></a>

The S3DestinationConfiguration property type describes an S3 location where recorded videos will be stored.

## Syntax
<a name="aws-properties-ivs-recordingconfiguration-s3destinationconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-recordingconfiguration-s3destinationconfiguration-syntax.json"></a>

```
{
  "[BucketName](#cfn-ivs-recordingconfiguration-s3destinationconfiguration-bucketname)" : String
}
```

### YAML
<a name="aws-properties-ivs-recordingconfiguration-s3destinationconfiguration-syntax.yaml"></a>

```
  [BucketName](#cfn-ivs-recordingconfiguration-s3destinationconfiguration-bucketname): String
```

## Properties
<a name="aws-properties-ivs-recordingconfiguration-s3destinationconfiguration-properties"></a>

`BucketName`  <a name="cfn-ivs-recordingconfiguration-s3destinationconfiguration-bucketname"></a>
Location (S3 bucket name) where recorded videos will be stored.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-z0-9-.]+$`  
*Minimum*: `3`  
*Maximum*: `63`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::IVS::RecordingConfiguration Tag
<a name="aws-properties-ivs-recordingconfiguration-tag"></a>

A key-value pair that you can use to categorize and manage Amazon IVS RecordingConfigurations.

## Syntax
<a name="aws-properties-ivs-recordingconfiguration-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-ivs-recordingconfiguration-tag-key): String
  [Value](#cfn-ivs-recordingconfiguration-tag-value): String
```

## Properties
<a name="aws-properties-ivs-recordingconfiguration-tag-properties"></a>

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

`Value`  <a name="cfn-ivs-recordingconfiguration-tag-value"></a>
The optional part of a key-value pair that makes up a tag. A `value` acts as a descriptor within a tag category (key).  
*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::IVS::RecordingConfiguration ThumbnailConfiguration
<a name="aws-properties-ivs-recordingconfiguration-thumbnailconfiguration"></a>

The ThumbnailConfiguration property type describes a configuration of thumbnails for recorded video.

## Syntax
<a name="aws-properties-ivs-recordingconfiguration-thumbnailconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-recordingconfiguration-thumbnailconfiguration-syntax.json"></a>

```
{
  "[RecordingMode](#cfn-ivs-recordingconfiguration-thumbnailconfiguration-recordingmode)" : String,
  "[Resolution](#cfn-ivs-recordingconfiguration-thumbnailconfiguration-resolution)" : String,
  "[Storage](#cfn-ivs-recordingconfiguration-thumbnailconfiguration-storage)" : [ String, ... ],
  "[TargetIntervalSeconds](#cfn-ivs-recordingconfiguration-thumbnailconfiguration-targetintervalseconds)" : Integer
}
```

### YAML
<a name="aws-properties-ivs-recordingconfiguration-thumbnailconfiguration-syntax.yaml"></a>

```
  [RecordingMode](#cfn-ivs-recordingconfiguration-thumbnailconfiguration-recordingmode): String
  [Resolution](#cfn-ivs-recordingconfiguration-thumbnailconfiguration-resolution): String
  [Storage](#cfn-ivs-recordingconfiguration-thumbnailconfiguration-storage): 
    - String
  [TargetIntervalSeconds](#cfn-ivs-recordingconfiguration-thumbnailconfiguration-targetintervalseconds): Integer
```

## Properties
<a name="aws-properties-ivs-recordingconfiguration-thumbnailconfiguration-properties"></a>

`RecordingMode`  <a name="cfn-ivs-recordingconfiguration-thumbnailconfiguration-recordingmode"></a>
Thumbnail recording mode. Valid values:  
+ `DISABLED`: Use DISABLED to disable the generation of thumbnails for recorded video.
+ `INTERVAL`: Use INTERVAL to enable the generation of thumbnails for recorded video at a time interval controlled by the [TargetIntervalSeconds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html#cfn-ivs-recordingconfiguration-thumbnailconfiguration-targetintervalseconds) property.
*Default*: `INTERVAL`  
*Required*: No  
*Type*: String  
*Allowed values*: `INTERVAL | DISABLED`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Resolution`  <a name="cfn-ivs-recordingconfiguration-thumbnailconfiguration-resolution"></a>
The desired resolution of recorded thumbnails for a stream. Thumbnails are recorded at the selected resolution if the corresponding rendition is available during the stream; otherwise, they are recorded at source resolution. For more information about resolution values and their corresponding height and width dimensions, see [Auto-Record to Amazon S3](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/record-to-s3.html).  
*Required*: No  
*Type*: String  
*Allowed values*: `FULL_HD | HD | SD | LOWEST_RESOLUTION`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Storage`  <a name="cfn-ivs-recordingconfiguration-thumbnailconfiguration-storage"></a>
The format in which thumbnails are recorded for a stream. `SEQUENTIAL` records all generated thumbnails in a serial manner, to the media/thumbnails directory. `LATEST` saves the latest thumbnail in media/thumbnails/latest/thumb.jpg and overwrites it at the interval specified by `targetIntervalSeconds`. You can enable both `SEQUENTIAL` and `LATEST`. Default: `SEQUENTIAL`.  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `SEQUENTIAL | LATEST`  
*Minimum*: `0`  
*Maximum*: `2`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TargetIntervalSeconds`  <a name="cfn-ivs-recordingconfiguration-thumbnailconfiguration-targetintervalseconds"></a>
The targeted thumbnail-generation interval in seconds. This is configurable (and required) only if [RecordingMode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html#cfn-ivs-recordingconfiguration-thumbnailconfiguration-recordingmode) is `INTERVAL`.  
Setting a value for `TargetIntervalSeconds` does not guarantee that thumbnails are generated at the specified interval. For thumbnails to be generated at the `TargetIntervalSeconds` interval, the `IDR/Keyframe` value for the input video must be less than the `TargetIntervalSeconds` value. See [Amazon IVS Streaming Configuration](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/streaming-config.html) for information on setting `IDR/Keyframe` to the recommended value in video-encoder settings.
*Default*: 60  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `60`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::IVS::Stage
<a name="aws-resource-ivs-stage"></a>

The `AWS::IVS::Stage` resource specifies an Amazon IVS stage. A stage is a virtual space where participants can exchange video in real time. For more information, see [CreateStage](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateStage.html) in the *Amazon IVS Real-Time Streaming API Reference*.

## Syntax
<a name="aws-resource-ivs-stage-syntax"></a>

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

### JSON
<a name="aws-resource-ivs-stage-syntax.json"></a>

```
{
  "Type" : "AWS::IVS::Stage",
  "Properties" : {
      "[AutoParticipantRecordingConfiguration](#cfn-ivs-stage-autoparticipantrecordingconfiguration)" : AutoParticipantRecordingConfiguration,
      "[Name](#cfn-ivs-stage-name)" : String,
      "[Tags](#cfn-ivs-stage-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-ivs-stage-syntax.yaml"></a>

```
Type: AWS::IVS::Stage
Properties:
  [AutoParticipantRecordingConfiguration](#cfn-ivs-stage-autoparticipantrecordingconfiguration): 
    AutoParticipantRecordingConfiguration
  [Name](#cfn-ivs-stage-name): String
  [Tags](#cfn-ivs-stage-tags): 
    - Tag
```

## Properties
<a name="aws-resource-ivs-stage-properties"></a>

`AutoParticipantRecordingConfiguration`  <a name="cfn-ivs-stage-autoparticipantrecordingconfiguration"></a>
Configuration object for individual participant recording.  
*Required*: No  
*Type*: [AutoParticipantRecordingConfiguration](aws-properties-ivs-stage-autoparticipantrecordingconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-ivs-stage-name"></a>
Stage name.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9-_]*$`  
*Minimum*: `0`  
*Maximum*: `128`  
*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-ivs-stage-tags"></a>
An array of key-value pairs to apply to this resource.  
For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-stage-tag.html).  
*Required*: No  
*Type*: Array of [Tag](aws-properties-ivs-stage-tag.md)  
*Maximum*: `50`  
*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-ivs-stage-return-values"></a>

### Ref
<a name="aws-resource-ivs-stage-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the stage ARN. For example:

 `{ "Ref": "myStage" }` 

For the Amazon IVS stage `myStage`, `Ref` returns the stage ARN.

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

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

`ActiveSessionId`  <a name="ActiveSessionId-fn::getatt"></a>
ID of the active session within the stage. For example: `st-a1b2c3d4e5f6g`

`Arn`  <a name="Arn-fn::getatt"></a>
The stage ARN. For example: `arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh`

## Examples
<a name="aws-resource-ivs-stage--examples"></a>



### Stage Template Examples
<a name="aws-resource-ivs-stage--examples--Stage_Template_Examples"></a>

The following examples specify an Amazon IVS stage.

#### JSON
<a name="aws-resource-ivs-stage--examples--Stage_Template_Examples--json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "StorageConfiguration": {
            "Type": "AWS::IVS::StorageConfiguration",
            "Properties": {
                "Name": "myStorageConfiguration",
                "S3": { "BucketName": "my-bucket" },
                "Tags": [
                    {
                        "Key": "MyKey",
                        "Value": "MyValue"
                    }
                ]
            }
        },
        "Stage": {
            "Type": "AWS::IVS::Stage",
            "Properties": {
                "Name": "myStage",
                "AutoParticipantRecordingConfiguration": {
                    "StorageConfigurationArn": {
                        "Ref": "StorageConfiguration"
                    },
                    "MediaTypes": [
                        "AUDIO_VIDEO"
                    ],
                    "HlsConfiguration": {
                        "ParticipantRecordingHlsConfiguration": {
                            "TargetSegmentDurationSeconds": 5
                        }
                    },
                    "RecordingReconnectWindowSeconds": 30,
                    "ThumbnailConfiguration": {
                        "ParticipantThumbnailConfiguration": {
                            "RecordingMode": "INTERVAL",
                            "TargetIntervalSeconds": 2,
                            "Storage": [
                                "SEQUENTIAL",
                                "LATEST"
                            ]
                        }
                    }
                },                     
                "Tags": [
                    {
                        "Key": "MyKey",
                        "Value": "MyValue"
                    }
                ]
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-ivs-stage--examples--Stage_Template_Examples--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  StorageConfiguration:
    Type: AWS::IVS::StorageConfiguration
    Properties:
      Name: myStorageConfiguration
      S3:
        BucketName: my-bucket
      Tags: 
        - Key: myKey
          Value: myValue
  Stage:
    Type: AWS::IVS::Stage
    Properties:
      Name: myStage
      AutoParticipantRecordingConfiguration:
        HlsConfiguration:
          ParticipantRecordingHlsConfiguration:
            TargetSegmentDurationSeconds: 5
        MediaTypes:
          - AUDIO_VIDEO
        RecordingReconnectWindowSeconds: 30
        StorageConfigurationArn: !Ref StorageConfiguration
        ThumbnailConfiguration:
          ParticipantThumbnailConfiguration:
            RecordingMode: INTERVAL
            TargetIntervalSeconds: 2
            Storage:
              - SEQUENTIAL
              - LATEST
      Tags: 
        - Key: myKey
          Value: myValue
```

## See also
<a name="aws-resource-ivs-stage--seealso"></a>
+  [Getting Started with IVS Real-Time Streaming](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started.html) 
+ [Stage](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_Stage.html) data type
+ [CreateStage](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateStage.html) API endpoint

# AWS::IVS::Stage AutoParticipantRecordingConfiguration
<a name="aws-properties-ivs-stage-autoparticipantrecordingconfiguration"></a>

The `AWS::IVS::AutoParticipantRecordingConfiguration` property type describes a configuration for individual participant recording. 

## Syntax
<a name="aws-properties-ivs-stage-autoparticipantrecordingconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-stage-autoparticipantrecordingconfiguration-syntax.json"></a>

```
{
  "[HlsConfiguration](#cfn-ivs-stage-autoparticipantrecordingconfiguration-hlsconfiguration)" : HlsConfiguration,
  "[MediaTypes](#cfn-ivs-stage-autoparticipantrecordingconfiguration-mediatypes)" : [ String, ... ],
  "[RecordingReconnectWindowSeconds](#cfn-ivs-stage-autoparticipantrecordingconfiguration-recordingreconnectwindowseconds)" : Integer,
  "[StorageConfigurationArn](#cfn-ivs-stage-autoparticipantrecordingconfiguration-storageconfigurationarn)" : String,
  "[ThumbnailConfiguration](#cfn-ivs-stage-autoparticipantrecordingconfiguration-thumbnailconfiguration)" : ThumbnailConfiguration
}
```

### YAML
<a name="aws-properties-ivs-stage-autoparticipantrecordingconfiguration-syntax.yaml"></a>

```
  [HlsConfiguration](#cfn-ivs-stage-autoparticipantrecordingconfiguration-hlsconfiguration): 
    HlsConfiguration
  [MediaTypes](#cfn-ivs-stage-autoparticipantrecordingconfiguration-mediatypes): 
    - String
  [RecordingReconnectWindowSeconds](#cfn-ivs-stage-autoparticipantrecordingconfiguration-recordingreconnectwindowseconds): Integer
  [StorageConfigurationArn](#cfn-ivs-stage-autoparticipantrecordingconfiguration-storageconfigurationarn): String
  [ThumbnailConfiguration](#cfn-ivs-stage-autoparticipantrecordingconfiguration-thumbnailconfiguration): 
    ThumbnailConfiguration
```

## Properties
<a name="aws-properties-ivs-stage-autoparticipantrecordingconfiguration-properties"></a>

`HlsConfiguration`  <a name="cfn-ivs-stage-autoparticipantrecordingconfiguration-hlsconfiguration"></a>
HLS configuration object for individual participant recording.  
*Required*: No  
*Type*: [HlsConfiguration](aws-properties-ivs-stage-hlsconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MediaTypes`  <a name="cfn-ivs-stage-autoparticipantrecordingconfiguration-mediatypes"></a>
Types of media to be recorded. Default: `AUDIO_VIDEO`.  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `AUDIO_VIDEO | AUDIO_ONLY`  
*Minimum*: `0`  
*Maximum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RecordingReconnectWindowSeconds`  <a name="cfn-ivs-stage-autoparticipantrecordingconfiguration-recordingreconnectwindowseconds"></a>
If a stage publisher disconnects and then reconnects within the specified interval, the multiple recordings will be considered a single recording and merged together.  
The default value is 0, which disables merging.  
*Required*: No  
*Type*: Integer  
*Minimum*: `0`  
*Maximum*: `300`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StorageConfigurationArn`  <a name="cfn-ivs-stage-autoparticipantrecordingconfiguration-storageconfigurationarn"></a>
ARN of the [StorageConfiguration](aws-resource-ivs-storageconfiguration.md) resource to use for individual participant recording. Default: "" (empty string, no storage configuration is specified). Individual participant recording cannot be started unless a storage configuration is specified, when a [Stage](aws-resource-ivs-stage.md) is created or updated.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^$|^arn:aws:ivs:[a-z0-9-]+:[0-9]+:storage-configuration/[a-zA-Z0-9-]+$`  
*Minimum*: `0`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ThumbnailConfiguration`  <a name="cfn-ivs-stage-autoparticipantrecordingconfiguration-thumbnailconfiguration"></a>
A complex type that allows you to enable/disable the recording of thumbnails for individual participant recording and modify the interval at which thumbnails are generated for the live session.  
*Required*: No  
*Type*: [ThumbnailConfiguration](aws-properties-ivs-stage-thumbnailconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IVS::Stage HlsConfiguration
<a name="aws-properties-ivs-stage-hlsconfiguration"></a>

Object specifying an HLS configuration for individual participant recording.

## Syntax
<a name="aws-properties-ivs-stage-hlsconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-stage-hlsconfiguration-syntax.json"></a>

```
{
  "[ParticipantRecordingHlsConfiguration](#cfn-ivs-stage-hlsconfiguration-participantrecordinghlsconfiguration)" : ParticipantRecordingHlsConfiguration
}
```

### YAML
<a name="aws-properties-ivs-stage-hlsconfiguration-syntax.yaml"></a>

```
  [ParticipantRecordingHlsConfiguration](#cfn-ivs-stage-hlsconfiguration-participantrecordinghlsconfiguration): 
    ParticipantRecordingHlsConfiguration
```

## Properties
<a name="aws-properties-ivs-stage-hlsconfiguration-properties"></a>

`ParticipantRecordingHlsConfiguration`  <a name="cfn-ivs-stage-hlsconfiguration-participantrecordinghlsconfiguration"></a>
Object specifying a configuration of participant HLS recordings for individual participant recording.  
*Required*: No  
*Type*: [ParticipantRecordingHlsConfiguration](aws-properties-ivs-stage-participantrecordinghlsconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IVS::Stage ParticipantRecordingHlsConfiguration
<a name="aws-properties-ivs-stage-participantrecordinghlsconfiguration"></a>

Object specifying a configuration of participant HLS recordings for individual participant recording.

## Syntax
<a name="aws-properties-ivs-stage-participantrecordinghlsconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-stage-participantrecordinghlsconfiguration-syntax.json"></a>

```
{
  "[TargetSegmentDurationSeconds](#cfn-ivs-stage-participantrecordinghlsconfiguration-targetsegmentdurationseconds)" : Integer
}
```

### YAML
<a name="aws-properties-ivs-stage-participantrecordinghlsconfiguration-syntax.yaml"></a>

```
  [TargetSegmentDurationSeconds](#cfn-ivs-stage-participantrecordinghlsconfiguration-targetsegmentdurationseconds): Integer
```

## Properties
<a name="aws-properties-ivs-stage-participantrecordinghlsconfiguration-properties"></a>

`TargetSegmentDurationSeconds`  <a name="cfn-ivs-stage-participantrecordinghlsconfiguration-targetsegmentdurationseconds"></a>
Defines the target duration for recorded segments generated when recording a stage participant. Segments may have durations longer than the specified value when needed to ensure each segment begins with a keyframe. Default: 6.  
*Required*: No  
*Type*: Integer  
*Minimum*: `2`  
*Maximum*: `10`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IVS::Stage ParticipantThumbnailConfiguration
<a name="aws-properties-ivs-stage-participantthumbnailconfiguration"></a>

Object specifying a configuration of thumbnails for recorded video from an individual participant.

## Syntax
<a name="aws-properties-ivs-stage-participantthumbnailconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-stage-participantthumbnailconfiguration-syntax.json"></a>

```
{
  "[RecordingMode](#cfn-ivs-stage-participantthumbnailconfiguration-recordingmode)" : String,
  "[Storage](#cfn-ivs-stage-participantthumbnailconfiguration-storage)" : [ String, ... ],
  "[TargetIntervalSeconds](#cfn-ivs-stage-participantthumbnailconfiguration-targetintervalseconds)" : Integer
}
```

### YAML
<a name="aws-properties-ivs-stage-participantthumbnailconfiguration-syntax.yaml"></a>

```
  [RecordingMode](#cfn-ivs-stage-participantthumbnailconfiguration-recordingmode): String
  [Storage](#cfn-ivs-stage-participantthumbnailconfiguration-storage): 
    - String
  [TargetIntervalSeconds](#cfn-ivs-stage-participantthumbnailconfiguration-targetintervalseconds): Integer
```

## Properties
<a name="aws-properties-ivs-stage-participantthumbnailconfiguration-properties"></a>

`RecordingMode`  <a name="cfn-ivs-stage-participantthumbnailconfiguration-recordingmode"></a>
Thumbnail recording mode. Default: `DISABLED`.  
*Required*: No  
*Type*: String  
*Allowed values*: `INTERVAL | DISABLED`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Storage`  <a name="cfn-ivs-stage-participantthumbnailconfiguration-storage"></a>
Indicates the format in which thumbnails are recorded. `SEQUENTIAL` records all generated thumbnails in a serial manner, to the media/thumbnails/high directory. `LATEST` saves the latest thumbnail in media/latest\$1thumbnail/high/thumb.jpg and overwrites it at the interval specified by `targetIntervalSeconds`. You can enable both `SEQUENTIAL` and `LATEST`. Default: `SEQUENTIAL`.  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `SEQUENTIAL | LATEST`  
*Minimum*: `0`  
*Maximum*: `2`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetIntervalSeconds`  <a name="cfn-ivs-stage-participantthumbnailconfiguration-targetintervalseconds"></a>
The targeted thumbnail-generation interval in seconds. This is configurable only if `recordingMode` is `INTERVAL`. Default: 60.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Maximum*: `86400`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IVS::Stage Tag
<a name="aws-properties-ivs-stage-tag"></a>

A key-value pair that you can use to categorize and manage Amazon IVS Stages.

## Syntax
<a name="aws-properties-ivs-stage-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-ivs-stage-tag-key): String
  [Value](#cfn-ivs-stage-tag-value): String
```

## Properties
<a name="aws-properties-ivs-stage-tag-properties"></a>

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

`Value`  <a name="cfn-ivs-stage-tag-value"></a>
The optional part of a key-value pair that makes up a tag. A `value` acts as a descriptor within a tag category (key).  
*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::IVS::Stage ThumbnailConfiguration
<a name="aws-properties-ivs-stage-thumbnailconfiguration"></a>

An object representing a configuration of thumbnails for recorded video.

## Syntax
<a name="aws-properties-ivs-stage-thumbnailconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-stage-thumbnailconfiguration-syntax.json"></a>

```
{
  "[ParticipantThumbnailConfiguration](#cfn-ivs-stage-thumbnailconfiguration-participantthumbnailconfiguration)" : ParticipantThumbnailConfiguration
}
```

### YAML
<a name="aws-properties-ivs-stage-thumbnailconfiguration-syntax.yaml"></a>

```
  [ParticipantThumbnailConfiguration](#cfn-ivs-stage-thumbnailconfiguration-participantthumbnailconfiguration): 
    ParticipantThumbnailConfiguration
```

## Properties
<a name="aws-properties-ivs-stage-thumbnailconfiguration-properties"></a>

`ParticipantThumbnailConfiguration`  <a name="cfn-ivs-stage-thumbnailconfiguration-participantthumbnailconfiguration"></a>
Object specifying a configuration of thumbnails for recorded video from an individual participant.  
*Required*: No  
*Type*: [ParticipantThumbnailConfiguration](aws-properties-ivs-stage-participantthumbnailconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::IVS::StorageConfiguration
<a name="aws-resource-ivs-storageconfiguration"></a>

The `AWS::IVS::StorageConfiguration` resource specifies an Amazon IVS storage configuration. A storage configuration describes an S3 location where recorded videos will be stored. For more information, see [Auto-Record to Amazon S3 (Low-Latency Streaming)](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html) in the *Amazon IVS Low-Latency Streaming User Guide*.

## Syntax
<a name="aws-resource-ivs-storageconfiguration-syntax"></a>

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

### JSON
<a name="aws-resource-ivs-storageconfiguration-syntax.json"></a>

```
{
  "Type" : "AWS::IVS::StorageConfiguration",
  "Properties" : {
      "[Name](#cfn-ivs-storageconfiguration-name)" : String,
      "[S3](#cfn-ivs-storageconfiguration-s3)" : S3StorageConfiguration,
      "[Tags](#cfn-ivs-storageconfiguration-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-ivs-storageconfiguration-syntax.yaml"></a>

```
Type: AWS::IVS::StorageConfiguration
Properties:
  [Name](#cfn-ivs-storageconfiguration-name): String
  [S3](#cfn-ivs-storageconfiguration-s3): 
    S3StorageConfiguration
  [Tags](#cfn-ivs-storageconfiguration-tags): 
    - Tag
```

## Properties
<a name="aws-resource-ivs-storageconfiguration-properties"></a>

`Name`  <a name="cfn-ivs-storageconfiguration-name"></a>
Storage cnfiguration name.  
*Required*: No  
*Type*: String  
*Pattern*: `^[a-zA-Z0-9-_]*$`  
*Minimum*: `0`  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`S3`  <a name="cfn-ivs-storageconfiguration-s3"></a>
An S3 storage configuration contains information about where recorded video will be stored. See the [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) property type for more information.  
*Required*: Yes  
*Type*: [S3StorageConfiguration](aws-properties-ivs-storageconfiguration-s3storageconfiguration.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-ivs-storageconfiguration-tags"></a>
An array of key-value pairs to apply to this resource.  
For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-tag.html).  
*Required*: No  
*Type*: Array of [Tag](aws-properties-ivs-storageconfiguration-tag.md)  
*Maximum*: `50`  
*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-ivs-storageconfiguration-return-values"></a>

### Ref
<a name="aws-resource-ivs-storageconfiguration-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the storage-configuration ARN. For example:

 `{ "Ref": "myStorageConfiguration" }` 

For the Amazon IVS storage configuration `"myStorageConfiguration"`, `Ref` returns the storage-configuration ARN.

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

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

`Arn`  <a name="Arn-fn::getatt"></a>
The storage-configuration ARN. For example: `arn:aws:ivs:us-west-2:123456789012:storage-configuration/abcdABCDefgh`

## Examples
<a name="aws-resource-ivs-storageconfiguration--examples"></a>



### StorageConfiguration Template Examples
<a name="aws-resource-ivs-storageconfiguration--examples--StorageConfiguration_Template_Examples"></a>

The following examples specify an Amazon IVS storage configuration.

#### JSON
<a name="aws-resource-ivs-storageconfiguration--examples--StorageConfiguration_Template_Examples--json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "StorageConfiguration": {
            "Type": "AWS::IVS::StorageConfiguration",
            "Properties": {
                "Name": "myStorageConfiguration",
                "S3": { "BucketName": "my-bucket" },
                "Tags": [
                    {
                        "Key": "MyKey",
                        "Value": "MyValue"
                    }
                ]
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-ivs-storageconfiguration--examples--StorageConfiguration_Template_Examples--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  StorageConfiguration:
    Type: AWS::IVS::StorageConfiguration
    Properties:
      Name: myStorageConfiguration
      S3:
        BucketName: my-bucket
      Tags: 
        - Key: myKey
          Value: myValue
```

## See also
<a name="aws-resource-ivs-storageconfiguration--seealso"></a>
+  [Getting Started with IVS Real-Time Streaming](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started.html) 
+  [ Server-Side Composition (Real-Time Streaming)](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/server-side-composition.html) 

# AWS::IVS::StorageConfiguration S3StorageConfiguration
<a name="aws-properties-ivs-storageconfiguration-s3storageconfiguration"></a>

The S3StorageConfiguration property type describes an S3 location where recorded videos will be stored.

## Syntax
<a name="aws-properties-ivs-storageconfiguration-s3storageconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-ivs-storageconfiguration-s3storageconfiguration-syntax.json"></a>

```
{
  "[BucketName](#cfn-ivs-storageconfiguration-s3storageconfiguration-bucketname)" : String
}
```

### YAML
<a name="aws-properties-ivs-storageconfiguration-s3storageconfiguration-syntax.yaml"></a>

```
  [BucketName](#cfn-ivs-storageconfiguration-s3storageconfiguration-bucketname): String
```

## Properties
<a name="aws-properties-ivs-storageconfiguration-s3storageconfiguration-properties"></a>

`BucketName`  <a name="cfn-ivs-storageconfiguration-s3storageconfiguration-bucketname"></a>
Name of the S3 bucket where recorded video will be stored.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^[a-z0-9-.]+$`  
*Minimum*: `3`  
*Maximum*: `63`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::IVS::StorageConfiguration Tag
<a name="aws-properties-ivs-storageconfiguration-tag"></a>

A key-value pair that you can use to categorize and manage Amazon IVS StorageConfigurations.

## Syntax
<a name="aws-properties-ivs-storageconfiguration-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-ivs-storageconfiguration-tag-key): String
  [Value](#cfn-ivs-storageconfiguration-tag-value): String
```

## Properties
<a name="aws-properties-ivs-storageconfiguration-tag-properties"></a>

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

`Value`  <a name="cfn-ivs-storageconfiguration-tag-value"></a>
The optional part of a key-value pair that makes up a tag. A `value` acts as a descriptor within a tag category (key).  
*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::IVS::StreamKey
<a name="aws-resource-ivs-streamkey"></a>

The `AWS::IVS::StreamKey` resource specifies an Amazon IVS stream key associated with the referenced channel. Use a stream key to initiate a live stream.

## Syntax
<a name="aws-resource-ivs-streamkey-syntax"></a>

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

### JSON
<a name="aws-resource-ivs-streamkey-syntax.json"></a>

```
{
  "Type" : "AWS::IVS::StreamKey",
  "Properties" : {
      "[ChannelArn](#cfn-ivs-streamkey-channelarn)" : String,
      "[Tags](#cfn-ivs-streamkey-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-ivs-streamkey-syntax.yaml"></a>

```
Type: AWS::IVS::StreamKey
Properties:
  [ChannelArn](#cfn-ivs-streamkey-channelarn): String
  [Tags](#cfn-ivs-streamkey-tags): 
    - Tag
```

## Properties
<a name="aws-resource-ivs-streamkey-properties"></a>

`ChannelArn`  <a name="cfn-ivs-streamkey-channelarn"></a>
Channel ARN for the stream.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-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-ivs-streamkey-tags"></a>
An array of key-value pairs to apply to this resource.  
For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-streamkey-tag.html).  
*Required*: No  
*Type*: Array of [Tag](aws-properties-ivs-streamkey-tag.md)  
*Maximum*: `50`  
*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-ivs-streamkey-return-values"></a>

### Ref
<a name="aws-resource-ivs-streamkey-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the resource ARN. For example:

 `{ "Ref": "myStreamKey" }` 

For the Amazon IVS stream key `myStreamKey`, `Ref` returns the stream key ARN.

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

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

`Arn`  <a name="Arn-fn::getatt"></a>
The stream-key ARN. For example: `arn:aws:ivs:us-west-2:123456789012:stream-key/g1H2I3j4k5L6`

`Value`  <a name="Value-fn::getatt"></a>
The stream-key value. For example: `sk_us-west-2_abcdABCDefgh_567890abcdef`

## Examples
<a name="aws-resource-ivs-streamkey--examples"></a>



### Channel and Stream Key Template Examples
<a name="aws-resource-ivs-streamkey--examples--Channel_and_Stream_Key_Template_Examples"></a>

The following examples specify an Amazon IVS channel and stream key.

#### JSON
<a name="aws-resource-ivs-streamkey--examples--Channel_and_Stream_Key_Template_Examples--json"></a>

```
{
     "AWSTemplateFormatVersion": "2010-09-09",
     "Resources": {
         "Channel": {
             "Type": "AWS::IVS::Channel",
             "Properties": {
                 "Name": "MyChannel",
                 "Tags": [
                     {
                         "Key": "MyKey",
                         "Value": "MyValue"
                     }
                 ],
                 "InsecureIngest": true
             }
         },
         "StreamKey": {
             "Type": "AWS::IVS::StreamKey",
             "Properties": {
                 "ChannelArn": {"Ref": "Channel"},
                 "Tags": [
                     {
                         "Key": "MyKey",
                         "Value": "MyValue"
                     }
                 ]
             }
         }
     },
     "Outputs": {
         "ChannelArn": {
             "Value": {"Ref": "Channel"}
         },
         "ChannelIngestEndpoint": {
             "Value": {
                 "Fn::GetAtt": [
                     "Channel",
                     "IngestEndpoint"
                 ]
             }
         },
         "ChannelPlaybackUrl": {
             "Value": {
                 "Fn::GetAtt": [
                     "Channel",
                     "PlaybackUrl"
                 ]
             }
         },
         "StreamKeyArn": {
             "Value": {"Ref": "StreamKey"}
         }
     }
 }
```

#### YAML
<a name="aws-resource-ivs-streamkey--examples--Channel_and_Stream_Key_Template_Examples--yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  Channel:
    Type: AWS::IVS::Channel
    Properties:
      Name: MyChannel
      Tags:
        - Key: MyKey
          Value: MyValue
      InsecureIngest: true
  StreamKey:
    Type: AWS::IVS::StreamKey
    Properties:
      ChannelArn: !Ref Channel
      Tags:
        - Key: MyKey
          Value: MyValue
Outputs:
  ChannelArn:
    Value: !Ref Channel
  ChannelIngestEndpoint:
    Value: !GetAtt Channel.IngestEndpoint
  ChannelPlaybackUrl:
    Value: !GetAtt Channel.PlaybackUrl
  StreamKeyArn:
    Value: !Ref StreamKey
```

## See also
<a name="aws-resource-ivs-streamkey--seealso"></a>
+  [Getting Started with IVS Low-Latency Streaming](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/getting-started.html) 
+ [StreamKey](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_StreamKey.html) data type
+ [CreateStreamKey](https://docs.aws.amazon.com/ivs/latest/LowLatencyAPIReference/API_CreateStreamKey.html) API endpoint

# AWS::IVS::StreamKey Tag
<a name="aws-properties-ivs-streamkey-tag"></a>

A key-value pair that you can use to categorize and manage Amazon IVS StreamKeys.

## Syntax
<a name="aws-properties-ivs-streamkey-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-ivs-streamkey-tag-key): String
  [Value](#cfn-ivs-streamkey-tag-value): String
```

## Properties
<a name="aws-properties-ivs-streamkey-tag-properties"></a>

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

`Value`  <a name="cfn-ivs-streamkey-tag-value"></a>
The optional part of a key-value pair that makes up a tag. A `value` acts as a descriptor within a tag category (key).  
*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)