

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::ElasticBeanstalk::ConfigurationTemplate
<a name="aws-resource-elasticbeanstalk-configurationtemplate"></a>

The AWS::ElasticBeanstalk::ConfigurationTemplate resource is an AWS Elastic Beanstalk resource type that specifies an Elastic Beanstalk configuration template, associated with a specific Elastic Beanstalk application. You define application configuration settings in a configuration template. You can then use the configuration template to deploy different versions of the application with the same configuration settings.

**Note**  
The Elastic Beanstalk console and documentation often refer to configuration templates as *saved configurations*. When you set configuration options in a saved configuration (configuration template), Elastic Beanstalk applies them with a particular precedence as part of applying options from multiple sources. For more information, see [ Configuration Options](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the *AWS Elastic Beanstalk Developer Guide*.

## Syntax
<a name="aws-resource-elasticbeanstalk-configurationtemplate-syntax"></a>

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

### JSON
<a name="aws-resource-elasticbeanstalk-configurationtemplate-syntax.json"></a>

```
{
  "Type" : "AWS::ElasticBeanstalk::ConfigurationTemplate",
  "Properties" : {
      "[ApplicationName](#cfn-elasticbeanstalk-configurationtemplate-applicationname)" : String,
      "[Description](#cfn-elasticbeanstalk-configurationtemplate-description)" : String,
      "[EnvironmentId](#cfn-elasticbeanstalk-configurationtemplate-environmentid)" : String,
      "[OptionSettings](#cfn-elasticbeanstalk-configurationtemplate-optionsettings)" : [ ConfigurationOptionSetting, ... ],
      "[PlatformArn](#cfn-elasticbeanstalk-configurationtemplate-platformarn)" : String,
      "[SolutionStackName](#cfn-elasticbeanstalk-configurationtemplate-solutionstackname)" : String,
      "[SourceConfiguration](#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration)" : SourceConfiguration
    }
}
```

### YAML
<a name="aws-resource-elasticbeanstalk-configurationtemplate-syntax.yaml"></a>

```
Type: AWS::ElasticBeanstalk::ConfigurationTemplate
Properties:
  [ApplicationName](#cfn-elasticbeanstalk-configurationtemplate-applicationname): String
  [Description](#cfn-elasticbeanstalk-configurationtemplate-description): String
  [EnvironmentId](#cfn-elasticbeanstalk-configurationtemplate-environmentid): String
  [OptionSettings](#cfn-elasticbeanstalk-configurationtemplate-optionsettings): 
    - ConfigurationOptionSetting
  [PlatformArn](#cfn-elasticbeanstalk-configurationtemplate-platformarn): String
  [SolutionStackName](#cfn-elasticbeanstalk-configurationtemplate-solutionstackname): String
  [SourceConfiguration](#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration): 
    SourceConfiguration
```

## Properties
<a name="aws-resource-elasticbeanstalk-configurationtemplate-properties"></a>

`ApplicationName`  <a name="cfn-elasticbeanstalk-configurationtemplate-applicationname"></a>
The name of the Elastic Beanstalk application to associate with this configuration template.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `100`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Description`  <a name="cfn-elasticbeanstalk-configurationtemplate-description"></a>
An optional description for this configuration.  
*Required*: No  
*Type*: String  
*Maximum*: `200`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EnvironmentId`  <a name="cfn-elasticbeanstalk-configurationtemplate-environmentid"></a>
The ID of an environment whose settings you want to use to create the configuration template. You must specify `EnvironmentId` if you don't specify `PlatformArn`, `SolutionStackName`, or `SourceConfiguration`.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`OptionSettings`  <a name="cfn-elasticbeanstalk-configurationtemplate-optionsettings"></a>
Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the *AWS Elastic Beanstalk Developer Guide*.  
*Required*: No  
*Type*: Array of [ConfigurationOptionSetting](aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PlatformArn`  <a name="cfn-elasticbeanstalk-configurationtemplate-platformarn"></a>
The Amazon Resource Name (ARN) of the custom platform. For more information, see [ Custom Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html) in the *AWS Elastic Beanstalk Developer Guide*.  
If you specify `PlatformArn`, then don't specify `SolutionStackName`.
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SolutionStackName`  <a name="cfn-elasticbeanstalk-configurationtemplate-solutionstackname"></a>
The name of an Elastic Beanstalk solution stack (platform version) that this configuration uses. For example, `64bit Amazon Linux 2013.09 running Tomcat 7 Java 7`. A solution stack specifies the operating system, runtime, and application server for a configuration template. It also determines the set of configuration options as well as the possible and default values. For more information, see [Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html) in the *AWS Elastic Beanstalk Developer Guide*.  
You must specify `SolutionStackName` if you don't specify `PlatformArn`, `EnvironmentId`, or `SourceConfiguration`.  
Use the [https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html) API to obtain a list of available solution stacks.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SourceConfiguration`  <a name="cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration"></a>
An Elastic Beanstalk configuration template to base this one on. If specified, Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration.  
Values specified in `OptionSettings` override any values obtained from the `SourceConfiguration`.  
You must specify `SourceConfiguration` if you don't specify `PlatformArn`, `EnvironmentId`, or `SolutionStackName`.  
Constraint: If both solution stack name and source configuration are specified, the solution stack of the source configuration template must match the specified solution stack name.  
*Required*: Conditional  
*Type*: [SourceConfiguration](aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.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-elasticbeanstalk-configurationtemplate-return-values"></a>

### Ref
<a name="aws-resource-elasticbeanstalk-configurationtemplate-return-values-ref"></a>

When the logical ID of this resource is provided to the `Ref` intrinsic function, `Ref` returns the resource name.

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-elasticbeanstalk-configurationtemplate-return-values-fn--getatt"></a>

#### 
<a name="aws-resource-elasticbeanstalk-configurationtemplate-return-values-fn--getatt-fn--getatt"></a>

`TemplateName`  <a name="TemplateName-fn::getatt"></a>
The name of the configuration template.  
Constraint: This name must be unique per application.

## Examples
<a name="aws-resource-elasticbeanstalk-configurationtemplate--examples"></a>

### 
<a name="aws-resource-elasticbeanstalk-configurationtemplate--examples--"></a>

#### JSON
<a name="aws-resource-elasticbeanstalk-configurationtemplate--examples----json"></a>

```
"myConfigTemplate" : { 
    "Type" : "AWS::ElasticBeanstalk::ConfigurationTemplate",
    "Properties" : {
      "ApplicationName" :{"Ref" : "myApp"},
      "Description" : "my sample configuration template",
      "EnvironmentId" : "",
      "SourceConfiguration" : {
        "ApplicationName" : {"Ref" : "mySecondApp"},
        "TemplateName" : {"Ref" : "mySourceTemplate"}
      }, 
      "SolutionStackName" : "64bit Amazon Linux running PHP 5.3",
      "OptionSettings" : [ {
        "Namespace" : "aws:autoscaling:launchconfiguration",
        "OptionName" : "EC2KeyName",
        "Value" : { "Ref" : "KeyName" }
      } ]
    }
  }
```

#### YAML
<a name="aws-resource-elasticbeanstalk-configurationtemplate--examples----yaml"></a>

```
myConfigTemplate: 
  Type: AWS::ElasticBeanstalk::ConfigurationTemplate
  Properties: 
    ApplicationName: 
      Ref: "myApp"
    Description: "my sample configuration template"
    EnvironmentId: ""
    SourceConfiguration: 
      ApplicationName: 
        Ref: "mySecondApp"
      TemplateName: 
        Ref: "mySourceTemplate"
    SolutionStackName: "64bit Amazon Linux running PHP 5.3"
    OptionSettings: 
      - 
        Namespace: "aws:autoscaling:launchconfiguration"
        OptionName: "EC2KeyName"
        Value: 
          Ref: "KeyName"
```

## See also
<a name="aws-resource-elasticbeanstalk-configurationtemplate--seealso"></a>
+  [AWS::ElasticBeanstalk::Application](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk.html) 
+ [Configuration Options](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the *AWS Elastic Beanstalk Developer Guide*
+ For a complete Elastic Beanstalk sample template, see [Elastic Beanstalk Template Snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-elasticbeanstalk.html).

# AWS::ElasticBeanstalk::ConfigurationTemplate ConfigurationOptionSetting
<a name="aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting"></a>

The `ConfigurationOptionSetting` property type specifies an option for an AWS Elastic Beanstalk configuration template.

The `OptionSettings` property of the [AWS::ElasticBeanstalk::ConfigurationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html) resource contains a list of `ConfigurationOptionSetting` property types.

For a list of possible namespaces and option values, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the *AWS Elastic Beanstalk Developer Guide*.

## Syntax
<a name="aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting-syntax"></a>

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

### JSON
<a name="aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting-syntax.json"></a>

```
{
  "[Namespace](#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-namespace)" : String,
  "[OptionName](#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-optionname)" : String,
  "[ResourceName](#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-resourcename)" : String,
  "[Value](#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-value)" : String
}
```

### YAML
<a name="aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting-syntax.yaml"></a>

```
  [Namespace](#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-namespace): String
  [OptionName](#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-optionname): String
  [ResourceName](#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-resourcename): String
  [Value](#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-value): String
```

## Properties
<a name="aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting-properties"></a>

`Namespace`  <a name="cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-namespace"></a>
A unique namespace that identifies the option's associated AWS resource.  
*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)

`OptionName`  <a name="cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-optionname"></a>
The name of the configuration option.  
*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)

`ResourceName`  <a name="cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-resourcename"></a>
A unique resource name for the option setting. Use it for a time–based scaling configuration option.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-value"></a>
The current value for the configuration option.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting--seealso"></a>
+ [ConfigurationOptionSetting](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ConfigurationOptionSetting.html) in the *AWS Elastic Beanstalk API Reference*
+ [Configuration Options](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the *AWS Elastic Beanstalk Developer Guide*

# AWS::ElasticBeanstalk::ConfigurationTemplate SourceConfiguration
<a name="aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration"></a>

An AWS Elastic Beanstalk configuration template to base a new one on. You can use it to define a [AWS::ElasticBeanstalk::ConfigurationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html) resource.

## Syntax
<a name="aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration-syntax"></a>

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

### JSON
<a name="aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration-syntax.json"></a>

```
{
  "[ApplicationName](#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-applicationname)" : String,
  "[TemplateName](#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-templatename)" : String
}
```

### YAML
<a name="aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration-syntax.yaml"></a>

```
  [ApplicationName](#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-applicationname): String
  [TemplateName](#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-templatename): String
```

## Properties
<a name="aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration-properties"></a>

`ApplicationName`  <a name="cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-applicationname"></a>
The name of the application associated with the configuration.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `100`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TemplateName`  <a name="cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-templatename"></a>
The name of the configuration template.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `100`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)