import { Value } from '../../cloudformation/Value';
import { TierProps } from './environment/TierProps';
import { OptionSettingProps } from './environment/OptionSettingProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type EnvironmentAttributes = {
    EndpointURL: Attribute<string>;
};
export type Environment = AwsResource<'AWS::ElasticBeanstalk::Environment', EnvironmentProperties, EnvironmentAttributes>;
/**
  The AWS::ElasticBeanstalk::Environment resource is an AWS Elastic Beanstalk resource type that specifies an Elastic Beanstalk environment.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html">the AWS Docs</a>
*/
export declare function environment(environmentProps: EnvironmentProperties): Environment;
/**
  The AWS::ElasticBeanstalk::Environment resource is an AWS Elastic Beanstalk resource type that specifies an Elastic Beanstalk environment.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-environment.html">the AWS Docs</a>
*/
export interface EnvironmentProperties {
    /** <code>PlatformArn</code>  <a name="cfn-elasticbeanstalk-environment-platformarn"></a>
  The Amazon Resource Name (ARN) of the custom platform to use with the environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html">Custom Platforms</a> in the * AWS Elastic Beanstalk Developer Guide*.<br />
  If you specify <code>PlatformArn</code>, don’t specify <code>SolutionStackName</code>.
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    platformArn?: Value<string>;
    /** <code>ApplicationName</code>  <a name="cfn-elasticbeanstalk-environment-applicationname"></a>
  The name of the application that is associated with this environment.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>100</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    applicationName: Value<string>;
    /** <code>Description</code>  <a name="cfn-elasticbeanstalk-environment-description"></a>
  Your description for this environment.<br />
  
  Required: No<br />
  
  Maximum: <code>200</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    description?: Value<string>;
    /** <code>EnvironmentName</code>  <a name="cfn-elasticbeanstalk-environment-environmentname"></a>
  A unique name for the environment.<br />
  Constraint: Must be from 4 to 40 characters in length. The name can contain only letters, numbers, and hyphens. It can’t start or end with a hyphen. This name must be unique within a region in your account.<br />
  If you don’t specify the <code>CNAMEPrefix</code> parameter, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application.<br />
  If you don’t specify an environment name, AWS CloudFormation generates a unique physical ID and uses that ID for the environment name. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html">Name Type</a>.<br />
  If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
  
  Required: No<br />
  
  Minimum: <code>4</code><br />
  
  Maximum: <code>40</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    environmentName?: Value<string>;
    /** <code>OperationsRole</code>  <a name="cfn-elasticbeanstalk-environment-operationsrole"></a>
  The operations role feature of AWS Elastic Beanstalk is in beta release and is subject to change.
  The Amazon Resource Name (ARN) of an existing IAM role to be used as the environment’s operations role. If specified, Elastic Beanstalk uses the operations role for permissions to downstream services during this call and during subsequent calls acting on this environment. To specify an operations role, you must have the <code>iam:PassRole</code> permission for the role.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>256</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    operationsRole?: Value<string>;
    /** <code>Tier</code>  <a name="cfn-elasticbeanstalk-environment-tier"></a>
  Specifies the tier to use in creating this environment. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tier?: TierProps;
    /** <code>OptionSettings</code>  <a name="cfn-elasticbeanstalk-environment-optionsettings"></a>
  Key-value pairs defining configuration options for this environment, such as the instance type. These options override the values that are defined in the solution stack or the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html">configuration template</a>. If you remove any options during a stack update, the removed options retain their current values.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    optionSettings?: OptionSettingProps[];
    /** <code>VersionLabel</code>  <a name="cfn-elasticbeanstalk-environment-versionlabel"></a>
  The name of the application version to deploy.<br />
  Default: If not specified, Elastic Beanstalk attempts to deploy the sample application.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>100</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    versionLabel?: Value<string>;
    /** <code>TemplateName</code>  <a name="cfn-elasticbeanstalk-environment-templatename"></a>
  The name of the Elastic Beanstalk configuration template to use with the environment.<br />
  If you specify <code>TemplateName</code>, then don’t specify <code>SolutionStackName</code>.
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>100</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    templateName?: Value<string>;
    /** <code>SolutionStackName</code>  <a name="cfn-elasticbeanstalk-environment-solutionstackname"></a>
  The name of an Elastic Beanstalk solution stack (platform version) to use with the environment. If specified, Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack. For a list of current solution stacks, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html">Elastic Beanstalk Supported Platforms</a> in the * AWS Elastic Beanstalk Platforms* guide.<br />
  If you specify <code>SolutionStackName</code>, don’t specify <code>PlatformArn</code> or <code>TemplateName</code>.
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    solutionStackName?: Value<string>;
    /** <code>CNAMEPrefix</code>  <a name="cfn-elasticbeanstalk-environment-cnameprefix"></a>
  If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name.<br />
  
  Required: No<br />
  
  Minimum: <code>4</code><br />
  
  Maximum: <code>63</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    cNAMEPrefix?: Value<string>;
    /** <code>Tags</code>  <a name="cfn-elasticbeanstalk-environment-tags"></a>
  Specifies the tags applied to resources in the environment.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
}
