

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

# AWS::AppStream::AppBlock
<a name="aws-resource-appstream-appblock"></a>

This resource creates an app block. App blocks store details about the virtual hard disk that contains the files for the application in an S3 bucket. It also stores the setup script with details about how to mount the virtual hard disk. App blocks are only supported for Elastic fleets.

## Syntax
<a name="aws-resource-appstream-appblock-syntax"></a>

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

### JSON
<a name="aws-resource-appstream-appblock-syntax.json"></a>

```
{
  "Type" : "AWS::AppStream::AppBlock",
  "Properties" : {
      "[Description](#cfn-appstream-appblock-description)" : String,
      "[DisplayName](#cfn-appstream-appblock-displayname)" : String,
      "[Name](#cfn-appstream-appblock-name)" : String,
      "[PackagingType](#cfn-appstream-appblock-packagingtype)" : String,
      "[PostSetupScriptDetails](#cfn-appstream-appblock-postsetupscriptdetails)" : ScriptDetails,
      "[SetupScriptDetails](#cfn-appstream-appblock-setupscriptdetails)" : ScriptDetails,
      "[SourceS3Location](#cfn-appstream-appblock-sources3location)" : S3Location,
      "[Tags](#cfn-appstream-appblock-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-appstream-appblock-syntax.yaml"></a>

```
Type: AWS::AppStream::AppBlock
Properties:
  [Description](#cfn-appstream-appblock-description): String
  [DisplayName](#cfn-appstream-appblock-displayname): String
  [Name](#cfn-appstream-appblock-name): String
  [PackagingType](#cfn-appstream-appblock-packagingtype): String
  [PostSetupScriptDetails](#cfn-appstream-appblock-postsetupscriptdetails): 
    ScriptDetails
  [SetupScriptDetails](#cfn-appstream-appblock-setupscriptdetails): 
    ScriptDetails
  [SourceS3Location](#cfn-appstream-appblock-sources3location): 
    S3Location
  [Tags](#cfn-appstream-appblock-tags): 
    - Tag
```

## Properties
<a name="aws-resource-appstream-appblock-properties"></a>

`Description`  <a name="cfn-appstream-appblock-description"></a>
The description of the app block.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DisplayName`  <a name="cfn-appstream-appblock-displayname"></a>
The display name of the app block.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-appstream-appblock-name"></a>
The name of the app block.  
*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$`  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`PackagingType`  <a name="cfn-appstream-appblock-packagingtype"></a>
The packaging type of the app block.  
*Required*: No  
*Type*: String  
*Allowed values*: `CUSTOM | APPSTREAM2`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`PostSetupScriptDetails`  <a name="cfn-appstream-appblock-postsetupscriptdetails"></a>
The post setup script details of the app block.  
*Required*: No  
*Type*: [ScriptDetails](aws-properties-appstream-appblock-scriptdetails.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SetupScriptDetails`  <a name="cfn-appstream-appblock-setupscriptdetails"></a>
The setup script details of the app block.  
*Required*: No  
*Type*: [ScriptDetails](aws-properties-appstream-appblock-scriptdetails.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SourceS3Location`  <a name="cfn-appstream-appblock-sources3location"></a>
The source S3 location of the app block.  
*Required*: Yes  
*Type*: [S3Location](aws-properties-appstream-appblock-s3location.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-appstream-appblock-tags"></a>
The tags of the app block.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-appstream-appblock-tag.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-appstream-appblock-return-values"></a>

### Ref
<a name="aws-resource-appstream-appblock-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the `Arn` of the app block, such as `arn:aws:appstream:us-west-2:123456789123:app-block/abcdefg`.

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

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

`Arn`  <a name="Arn-fn::getatt"></a>
The ARN of the app block.

`CreatedTime`  <a name="CreatedTime-fn::getatt"></a>
The time when the app block was created.

# AWS::AppStream::AppBlock S3Location
<a name="aws-properties-appstream-appblock-s3location"></a>

The S3 location of the app block.

## Syntax
<a name="aws-properties-appstream-appblock-s3location-syntax"></a>

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

### JSON
<a name="aws-properties-appstream-appblock-s3location-syntax.json"></a>

```
{
  "[S3Bucket](#cfn-appstream-appblock-s3location-s3bucket)" : String,
  "[S3Key](#cfn-appstream-appblock-s3location-s3key)" : String
}
```

### YAML
<a name="aws-properties-appstream-appblock-s3location-syntax.yaml"></a>

```
  [S3Bucket](#cfn-appstream-appblock-s3location-s3bucket): String
  [S3Key](#cfn-appstream-appblock-s3location-s3key): String
```

## Properties
<a name="aws-properties-appstream-appblock-s3location-properties"></a>

`S3Bucket`  <a name="cfn-appstream-appblock-s3location-s3bucket"></a>
The S3 bucket of the app block.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`S3Key`  <a name="cfn-appstream-appblock-s3location-s3key"></a>
The S3 key of the S3 object of the virtual hard disk.  
This is required when it's used by `SetupScriptDetails` and `PostSetupScriptDetails`.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::AppStream::AppBlock ScriptDetails
<a name="aws-properties-appstream-appblock-scriptdetails"></a>

The details of the script.

## Syntax
<a name="aws-properties-appstream-appblock-scriptdetails-syntax"></a>

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

### JSON
<a name="aws-properties-appstream-appblock-scriptdetails-syntax.json"></a>

```
{
  "[ExecutableParameters](#cfn-appstream-appblock-scriptdetails-executableparameters)" : String,
  "[ExecutablePath](#cfn-appstream-appblock-scriptdetails-executablepath)" : String,
  "[ScriptS3Location](#cfn-appstream-appblock-scriptdetails-scripts3location)" : S3Location,
  "[TimeoutInSeconds](#cfn-appstream-appblock-scriptdetails-timeoutinseconds)" : Integer
}
```

### YAML
<a name="aws-properties-appstream-appblock-scriptdetails-syntax.yaml"></a>

```
  [ExecutableParameters](#cfn-appstream-appblock-scriptdetails-executableparameters): String
  [ExecutablePath](#cfn-appstream-appblock-scriptdetails-executablepath): String
  [ScriptS3Location](#cfn-appstream-appblock-scriptdetails-scripts3location): 
    S3Location
  [TimeoutInSeconds](#cfn-appstream-appblock-scriptdetails-timeoutinseconds): Integer
```

## Properties
<a name="aws-properties-appstream-appblock-scriptdetails-properties"></a>

`ExecutableParameters`  <a name="cfn-appstream-appblock-scriptdetails-executableparameters"></a>
The parameters used in the run path for the script.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ExecutablePath`  <a name="cfn-appstream-appblock-scriptdetails-executablepath"></a>
The run path for the script.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ScriptS3Location`  <a name="cfn-appstream-appblock-scriptdetails-scripts3location"></a>
The S3 object location of the script.  
*Required*: Yes  
*Type*: [S3Location](aws-properties-appstream-appblock-s3location.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TimeoutInSeconds`  <a name="cfn-appstream-appblock-scriptdetails-timeoutinseconds"></a>
The run timeout, in seconds, for the script.  
*Required*: Yes  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::AppStream::AppBlock Tag
<a name="aws-properties-appstream-appblock-tag"></a>

The tag of the app block.

## Syntax
<a name="aws-properties-appstream-appblock-tag-syntax"></a>

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

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

```
{
  "[TagItems](#cfn-appstream-appblock-tag-tagitems)" : TagItems
}
```

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

```
  [TagItems](#cfn-appstream-appblock-tag-tagitems): 
    TagItems
```

## Properties
<a name="aws-properties-appstream-appblock-tag-properties"></a>

`TagItems`  <a name="cfn-appstream-appblock-tag-tagitems"></a>
The items of the tag.  
*Required*: No  
*Type*: [TagItems](aws-properties-appstream-appblock-tagitems.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::AppStream::AppBlock TagItems
<a name="aws-properties-appstream-appblock-tagitems"></a>

The tag items of the app block.

## Syntax
<a name="aws-properties-appstream-appblock-tagitems-syntax"></a>

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

### JSON
<a name="aws-properties-appstream-appblock-tagitems-syntax.json"></a>

```
{
  "[Key](#cfn-appstream-appblock-tagitems-key)" : String,
  "[Value](#cfn-appstream-appblock-tagitems-value)" : String
}
```

### YAML
<a name="aws-properties-appstream-appblock-tagitems-syntax.yaml"></a>

```
  [Key](#cfn-appstream-appblock-tagitems-key): String
  [Value](#cfn-appstream-appblock-tagitems-value): String
```

## Properties
<a name="aws-properties-appstream-appblock-tagitems-properties"></a>

`Key`  <a name="cfn-appstream-appblock-tagitems-key"></a>
The key of the tag items.  
*Required*: Yes  
*Type*: String  
*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-appstream-appblock-tagitems-value"></a>
The value of the tag items.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)