

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::Transfer::WebApp
<a name="aws-resource-transfer-webapp"></a>

Creates a web app based on specified parameters, and returns the ID for the new web app. You can configure the web app to be publicly accessible or hosted within a VPC.

For more information about using VPC endpoints with AWS Transfer Family, see [Create a Transfer Family web app in a VPC](https://docs.aws.amazon.com/transfer/latest/userguide/create-webapp-in-vpc.html).

## Syntax
<a name="aws-resource-transfer-webapp-syntax"></a>

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

### JSON
<a name="aws-resource-transfer-webapp-syntax.json"></a>

```
{
  "Type" : "AWS::Transfer::WebApp",
  "Properties" : {
      "[AccessEndpoint](#cfn-transfer-webapp-accessendpoint)" : String,
      "[EndpointDetails](#cfn-transfer-webapp-endpointdetails)" : EndpointDetails,
      "[IdentityProviderDetails](#cfn-transfer-webapp-identityproviderdetails)" : IdentityProviderDetails,
      "[Tags](#cfn-transfer-webapp-tags)" : [ Tag, ... ],
      "[WebAppCustomization](#cfn-transfer-webapp-webappcustomization)" : WebAppCustomization,
      "[WebAppEndpointPolicy](#cfn-transfer-webapp-webappendpointpolicy)" : String,
      "[WebAppUnits](#cfn-transfer-webapp-webappunits)" : WebAppUnits
    }
}
```

### YAML
<a name="aws-resource-transfer-webapp-syntax.yaml"></a>

```
Type: AWS::Transfer::WebApp
Properties:
  [AccessEndpoint](#cfn-transfer-webapp-accessendpoint): String
  [EndpointDetails](#cfn-transfer-webapp-endpointdetails): 
    EndpointDetails
  [IdentityProviderDetails](#cfn-transfer-webapp-identityproviderdetails): 
    IdentityProviderDetails
  [Tags](#cfn-transfer-webapp-tags): 
    - Tag
  [WebAppCustomization](#cfn-transfer-webapp-webappcustomization): 
    WebAppCustomization
  [WebAppEndpointPolicy](#cfn-transfer-webapp-webappendpointpolicy): String
  [WebAppUnits](#cfn-transfer-webapp-webappunits): 
    WebAppUnits
```

## Properties
<a name="aws-resource-transfer-webapp-properties"></a>

`AccessEndpoint`  <a name="cfn-transfer-webapp-accessendpoint"></a>
The `AccessEndpoint` is the URL that you provide to your users for them to interact with the Transfer Family web app. You can specify a custom URL or use the default value.  
Before you enter a custom URL for this parameter, follow the steps described in [Update your access endpoint with a custom URL](https://docs.aws.amazon.com//transfer/latest/userguide/webapp-customize.html).  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `1024`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EndpointDetails`  <a name="cfn-transfer-webapp-endpointdetails"></a>
The virtual private cloud (VPC) endpoint settings that are configured for your file transfer protocol-enabled server. With a VPC endpoint, you can restrict access to your server and resources only within your VPC. To control incoming internet traffic, invoke the `UpdateServer` API and attach an Elastic IP address to your server's endpoint.  
 After May 19, 2021, you won't be able to create a server using `EndpointType=VPC_ENDPOINT` in your AWS account if your account hasn't already done so before May 19, 2021. If you have already created servers with `EndpointType=VPC_ENDPOINT` in your AWS account on or before May 19, 2021, you will not be affected. After this date, use `EndpointType`=`VPC`.  
For more information, see [Discontinuing the use of VPC\$1ENDPOINT](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint).  
It is recommended that you use `VPC` as the `EndpointType`. With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with `EndpointType` set to `VPC_ENDPOINT`.
*Required*: No  
*Type*: [EndpointDetails](aws-properties-transfer-webapp-endpointdetails.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IdentityProviderDetails`  <a name="cfn-transfer-webapp-identityproviderdetails"></a>
You can provide a structure that contains the details for the identity provider to use with your web app.  
For more details about this parameter, see [Configure your identity provider for Transfer Family web apps](https://docs.aws.amazon.com//transfer/latest/userguide/webapp-identity-center.html).  
*Required*: Yes  
*Type*: [IdentityProviderDetails](aws-properties-transfer-webapp-identityproviderdetails.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-transfer-webapp-tags"></a>
Key-value pairs that can be used to group and search for web apps. Tags are metadata attached to web apps for any purpose.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-transfer-webapp-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)

`WebAppCustomization`  <a name="cfn-transfer-webapp-webappcustomization"></a>
A structure that contains the customization fields for the web app. You can provide a title, logo, and icon to customize the appearance of your web app.  
*Required*: No  
*Type*: [WebAppCustomization](aws-properties-transfer-webapp-webappcustomization.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`WebAppEndpointPolicy`  <a name="cfn-transfer-webapp-webappendpointpolicy"></a>
 Setting for the type of endpoint policy for the web app. The default value is `STANDARD`.   
If your web app was created in an AWS GovCloud (US) Region, the value of this parameter can be `FIPS`, which indicates the web app endpoint is FIPS-compliant.  
*Required*: No  
*Type*: String  
*Allowed values*: `STANDARD | FIPS`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`WebAppUnits`  <a name="cfn-transfer-webapp-webappunits"></a>
A union that contains the value for number of concurrent connections or the user sessions on your web app.  
*Required*: No  
*Type*: [WebAppUnits](aws-properties-transfer-webapp-webappunits.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-transfer-webapp-return-values"></a>

### Ref
<a name="aws-resource-transfer-webapp-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the web app ARN, such as `arn:aws:transfer:us-east-2:123456789012:webapp/webapp-01234567890abcdef` . 

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-transfer-webapp-return-values-fn--getatt"></a>

#### 
<a name="aws-resource-transfer-webapp-return-values-fn--getatt-fn--getatt"></a>

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

`IdentityProviderDetails.ApplicationArn`  <a name="IdentityProviderDetails.ApplicationArn-fn::getatt"></a>
Property description not available.

`VpcEndpointId`  <a name="VpcEndpointId-fn::getatt"></a>
The identifier of the VPC endpoint created for the web app.

`WebAppId`  <a name="WebAppId-fn::getatt"></a>
The unique identifier for the web app.

# AWS::Transfer::WebApp EndpointDetails
<a name="aws-properties-transfer-webapp-endpointdetails"></a>

The virtual private cloud (VPC) endpoint settings that are configured for your file transfer protocol-enabled server. With a VPC endpoint, you can restrict access to your server and resources only within your VPC. To control incoming internet traffic, invoke the `UpdateServer` API and attach an Elastic IP address to your server's endpoint.

**Note**  
 After May 19, 2021, you won't be able to create a server using `EndpointType=VPC_ENDPOINT` in your AWS account if your account hasn't already done so before May 19, 2021. If you have already created servers with `EndpointType=VPC_ENDPOINT` in your AWS account on or before May 19, 2021, you will not be affected. After this date, use `EndpointType`=`VPC`.  
For more information, see [Discontinuing the use of VPC\$1ENDPOINT](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint).  
It is recommended that you use `VPC` as the `EndpointType`. With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with `EndpointType` set to `VPC_ENDPOINT`.

## Syntax
<a name="aws-properties-transfer-webapp-endpointdetails-syntax"></a>

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

### JSON
<a name="aws-properties-transfer-webapp-endpointdetails-syntax.json"></a>

```
{
  "[Vpc](#cfn-transfer-webapp-endpointdetails-vpc)" : Vpc
}
```

### YAML
<a name="aws-properties-transfer-webapp-endpointdetails-syntax.yaml"></a>

```
  [Vpc](#cfn-transfer-webapp-endpointdetails-vpc): 
    Vpc
```

## Properties
<a name="aws-properties-transfer-webapp-endpointdetails-properties"></a>

`Vpc`  <a name="cfn-transfer-webapp-endpointdetails-vpc"></a>
Property description not available.  
*Required*: No  
*Type*: [Vpc](aws-properties-transfer-webapp-vpc.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Transfer::WebApp IdentityProviderDetails
<a name="aws-properties-transfer-webapp-identityproviderdetails"></a>

 A structure that describes the values to use for the IAM Identity Center settings when you create or update a web app. 

## Syntax
<a name="aws-properties-transfer-webapp-identityproviderdetails-syntax"></a>

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

### JSON
<a name="aws-properties-transfer-webapp-identityproviderdetails-syntax.json"></a>

```
{
  "[ApplicationArn](#cfn-transfer-webapp-identityproviderdetails-applicationarn)" : String,
  "[InstanceArn](#cfn-transfer-webapp-identityproviderdetails-instancearn)" : String,
  "[Role](#cfn-transfer-webapp-identityproviderdetails-role)" : String
}
```

### YAML
<a name="aws-properties-transfer-webapp-identityproviderdetails-syntax.yaml"></a>

```
  [ApplicationArn](#cfn-transfer-webapp-identityproviderdetails-applicationarn): String
  [InstanceArn](#cfn-transfer-webapp-identityproviderdetails-instancearn): String
  [Role](#cfn-transfer-webapp-identityproviderdetails-role): String
```

## Properties
<a name="aws-properties-transfer-webapp-identityproviderdetails-properties"></a>

`ApplicationArn`  <a name="cfn-transfer-webapp-identityproviderdetails-applicationarn"></a>
The Amazon Resource Name (ARN) for the IAM Identity Center application: this value is set automatically when you create your web app.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:[\w-]+:sso::\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16}$`  
*Minimum*: `10`  
*Maximum*: `1224`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InstanceArn`  <a name="cfn-transfer-webapp-identityproviderdetails-instancearn"></a>
The Amazon Resource Name (ARN) for the IAM Identity Center used for the web app.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:[\w-]+:sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$`  
*Minimum*: `10`  
*Maximum*: `1224`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Role`  <a name="cfn-transfer-webapp-identityproviderdetails-role"></a>
The IAM role in IAM Identity Center used for the web app.  
*Required*: No  
*Type*: String  
*Pattern*: `^arn:[a-z-]+:iam::[0-9]{12}:role[:/]\S+$`  
*Minimum*: `20`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Transfer::WebApp Tag
<a name="aws-properties-transfer-webapp-tag"></a>

Creates a key-value pair for a specific resource. Tags are metadata that you can use to search for and group a resource for various purposes. You can apply tags to servers, users, and roles. A tag key can take more than one value. For example, to group servers for accounting purposes, you might create a tag called `Group` and assign the values `Research` and `Accounting` to that group.

## Syntax
<a name="aws-properties-transfer-webapp-tag-syntax"></a>

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

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

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

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

```
  [Key](#cfn-transfer-webapp-tag-key): String
  [Value](#cfn-transfer-webapp-tag-value): String
```

## Properties
<a name="aws-properties-transfer-webapp-tag-properties"></a>

`Key`  <a name="cfn-transfer-webapp-tag-key"></a>
The name assigned to the tag that you create.  
*Required*: Yes  
*Type*: String  
*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)

`Value`  <a name="cfn-transfer-webapp-tag-value"></a>
Contains one or more values that you assigned to the key name you create.  
*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::Transfer::WebApp Vpc
<a name="aws-properties-transfer-webapp-vpc"></a>

<a name="aws-properties-transfer-webapp-vpc-description"></a>The `Vpc` property type specifies Property description not available. for an [AWS::Transfer::WebApp](aws-resource-transfer-webapp.md).

## Syntax
<a name="aws-properties-transfer-webapp-vpc-syntax"></a>

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

### JSON
<a name="aws-properties-transfer-webapp-vpc-syntax.json"></a>

```
{
  "[SecurityGroupIds](#cfn-transfer-webapp-vpc-securitygroupids)" : [ String, ... ],
  "[SubnetIds](#cfn-transfer-webapp-vpc-subnetids)" : [ String, ... ],
  "[VpcId](#cfn-transfer-webapp-vpc-vpcid)" : String
}
```

### YAML
<a name="aws-properties-transfer-webapp-vpc-syntax.yaml"></a>

```
  [SecurityGroupIds](#cfn-transfer-webapp-vpc-securitygroupids): 
    - String
  [SubnetIds](#cfn-transfer-webapp-vpc-subnetids): 
    - String
  [VpcId](#cfn-transfer-webapp-vpc-vpcid): String
```

## Properties
<a name="aws-properties-transfer-webapp-vpc-properties"></a>

`SecurityGroupIds`  <a name="cfn-transfer-webapp-vpc-securitygroupids"></a>
Property description not available.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `11`  
*Maximum*: `20 | 10`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SubnetIds`  <a name="cfn-transfer-webapp-vpc-subnetids"></a>
Property description not available.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `15`  
*Maximum*: `24 | 10`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`VpcId`  <a name="cfn-transfer-webapp-vpc-vpcid"></a>
Property description not available.  
*Required*: No  
*Type*: String  
*Pattern*: `^vpc-[0-9a-f]{8,17}$`  
*Minimum*: `12`  
*Maximum*: `21`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::Transfer::WebApp WebAppCustomization
<a name="aws-properties-transfer-webapp-webappcustomization"></a>

A structure that contains the customization fields for the web app. You can provide a title, logo, and icon to customize the appearance of your web app.

## Syntax
<a name="aws-properties-transfer-webapp-webappcustomization-syntax"></a>

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

### JSON
<a name="aws-properties-transfer-webapp-webappcustomization-syntax.json"></a>

```
{
  "[FaviconFile](#cfn-transfer-webapp-webappcustomization-faviconfile)" : String,
  "[LogoFile](#cfn-transfer-webapp-webappcustomization-logofile)" : String,
  "[Title](#cfn-transfer-webapp-webappcustomization-title)" : String
}
```

### YAML
<a name="aws-properties-transfer-webapp-webappcustomization-syntax.yaml"></a>

```
  [FaviconFile](#cfn-transfer-webapp-webappcustomization-faviconfile): String
  [LogoFile](#cfn-transfer-webapp-webappcustomization-logofile): String
  [Title](#cfn-transfer-webapp-webappcustomization-title): String
```

## Properties
<a name="aws-properties-transfer-webapp-webappcustomization-properties"></a>

`FaviconFile`  <a name="cfn-transfer-webapp-webappcustomization-faviconfile"></a>
Returns an icon file data string (in base64 encoding).  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `20960`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LogoFile`  <a name="cfn-transfer-webapp-webappcustomization-logofile"></a>
Returns a logo file data string (in base64 encoding).  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `51200`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Title`  <a name="cfn-transfer-webapp-webappcustomization-title"></a>
Returns the page title that you defined for your web app.  
*Required*: No  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `100`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Transfer::WebApp WebAppUnits
<a name="aws-properties-transfer-webapp-webappunits"></a>

Contains an integer value that represents the value for number of concurrent connections or the user sessions on your web app.

## Syntax
<a name="aws-properties-transfer-webapp-webappunits-syntax"></a>

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

### JSON
<a name="aws-properties-transfer-webapp-webappunits-syntax.json"></a>

```
{
  "[Provisioned](#cfn-transfer-webapp-webappunits-provisioned)" : Integer
}
```

### YAML
<a name="aws-properties-transfer-webapp-webappunits-syntax.yaml"></a>

```
  [Provisioned](#cfn-transfer-webapp-webappunits-provisioned): Integer
```

## Properties
<a name="aws-properties-transfer-webapp-webappunits-properties"></a>

`Provisioned`  <a name="cfn-transfer-webapp-webappunits-provisioned"></a>
An integer that represents the number of units for your desired number of concurrent connections, or the number of user sessions on your web app at the same time.  
Each increment allows an additional 250 concurrent sessions: a value of `1` sets the number of concurrent sessions to 250; `2` sets a value of 500, and so on.   
*Required*: Yes  
*Type*: Integer  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)