import { Value } from '../../cloudformation/Value';
import { HighAvailabilityConfigProps } from './environment/HighAvailabilityConfigProps';
import { StorageConfigurationProps } from './environment/StorageConfigurationProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type EnvironmentAttributes = {
    EnvironmentId: Attribute<string>;
    EnvironmentArn: Attribute<string>;
};
export type Environment = AwsResource<'AWS::M2::Environment', EnvironmentProperties, EnvironmentAttributes>;
/**
  Specifies a runtime environment for a given runtime engine.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-environment.html">the AWS Docs</a>
*/
export declare function environment(environmentProps: EnvironmentProperties): Environment;
/**
  Specifies a runtime environment for a given runtime engine.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-m2-environment.html">the AWS Docs</a>
*/
export interface EnvironmentProperties {
    /** <code>Description</code>  <a name="cfn-m2-environment-description"></a>
  The description of the runtime environment.<br />
  
  Required: No<br />
  
  Minimum: <code>0</code><br />
  
  Maximum: <code>500</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> */
    description?: Value<string>;
    /** <code>EngineVersion</code>  <a name="cfn-m2-environment-engineversion"></a>
  The version of the runtime engine.<br />
  
  Required: No<br />
  
  Pattern: <code>\S{1,10}</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> */
    engineVersion?: Value<string>;
    /** <code>KmsKeyId</code>  <a name="cfn-m2-environment-kmskeyid"></a>
  The identifier of a customer managed key.<br />
  
  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> */
    kmsKeyId?: Value<string>;
    /** <code>HighAvailabilityConfig</code>  <a name="cfn-m2-environment-highavailabilityconfig"></a>
  Defines the details of a high availability configuration.<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> */
    highAvailabilityConfig?: HighAvailabilityConfigProps;
    /** <code>PreferredMaintenanceWindow</code>  <a name="cfn-m2-environment-preferredmaintenancewindow"></a>
  Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format <code>ddd:hh24:mi-ddd:hh24:mi</code> and must be less than 24 hours. The following two examples are valid maintenance windows: <code>sun:23:45-mon:00:15</code> or <code>sat:01:00-sat:03:00</code>.<br />
  If you do not provide a value, a random system-generated value will be assigned.<br />
  
  Required: No<br />
  
  Pattern: <code>\S{1,50}</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> */
    preferredMaintenanceWindow?: Value<string>;
    /** <code>SecurityGroupIds</code>  <a name="cfn-m2-environment-securitygroupids"></a>
  The list of security groups for the VPC associated with this runtime 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-replacement">Replacement</a> */
    securityGroupIds?: Value<Value<string>[]>;
    /** <code>SubnetIds</code>  <a name="cfn-m2-environment-subnetids"></a>
  The list of subnets associated with the VPC for this runtime 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-replacement">Replacement</a> */
    subnetIds?: Value<Value<string>[]>;
    /** <code>Name</code>  <a name="cfn-m2-environment-name"></a>
  The name of the runtime environment.<br />
  
  Required: Yes<br />
  
  Pattern: <code>[A-Za-z0-9][A-Za-z0-9_\-]{1,59}</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> */
    name: Value<string>;
    /** <code>EngineType</code>  <a name="cfn-m2-environment-enginetype"></a>
  The target platform for the runtime environment.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>bluage | microfocus</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> */
    engineType: Value<'bluage' | 'microfocus'>;
    /** <code>PubliclyAccessible</code>  <a name="cfn-m2-environment-publiclyaccessible"></a>
  Specifies whether the runtime environment is publicly accessible.<br />
  
  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> */
    publiclyAccessible?: Value<boolean>;
    /** <code>InstanceType</code>  <a name="cfn-m2-environment-instancetype"></a>
  The instance type of the runtime environment.<br />
  
  Required: Yes<br />
  
  Pattern: <code>\S{1,20}</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> */
    instanceType: Value<string>;
    /** <code>StorageConfigurations</code>  <a name="cfn-m2-environment-storageconfigurations"></a>
  Defines the storage configuration for a runtime 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-replacement">Replacement</a> */
    storageConfigurations?: StorageConfigurationProps[];
    /** <code>Tags</code>  <a name="cfn-m2-environment-tags"></a>
  An array of key-value pairs to apply to this resource.<br />
  For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html">Tag</a>.<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?: Value<{
        [key: string]: Value<string>;
    }>;
}
