import { Value } from '../../cloudformation/Value';
import { EngineAttributeProps } from './server/EngineAttributeProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ServerAttributes = {
    Endpoint: Attribute<string>;
    ServerName: Attribute<string>;
    Arn: Attribute<string>;
};
export type Server = AwsResource<'AWS::OpsWorksCM::Server', ServerProperties, ServerAttributes>;
/**
  The <code>AWS::OpsWorksCM::Server</code> resource creates an AWS OpsWorks for Chef Automate or OpsWorks for Puppet Enterprise configuration management server. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opscm-create-server-cfn.html">Create a Chef Automate Server in AWS CloudFormation</a> or <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opspup-create-server-cfn.html">Create a Puppet Enterprise Master in AWS CloudFormation</a> in the <em>AWS OpsWorks User Guide</em>, and <a href="https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_CreateServer.html">CreateServer</a> in the <em>AWS OpsWorks CM API Reference</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html">the AWS Docs</a>
*/
export declare function server(serverProps: ServerProperties): Server;
/**
  The <code>AWS::OpsWorksCM::Server</code> resource creates an AWS OpsWorks for Chef Automate or OpsWorks for Puppet Enterprise configuration management server. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opscm-create-server-cfn.html">Create a Chef Automate Server in AWS CloudFormation</a> or <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opspup-create-server-cfn.html">Create a Puppet Enterprise Master in AWS CloudFormation</a> in the <em>AWS OpsWorks User Guide</em>, and <a href="https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_CreateServer.html">CreateServer</a> in the <em>AWS OpsWorks CM API Reference</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html">the AWS Docs</a>
*/
export interface ServerProperties {
    /** <code>KeyPair</code>  <a name="cfn-opsworkscm-server-keypair"></a>
  The Amazon EC2 key pair to set for the instance. This parameter is optional; if desired, you may specify this parameter to connect to your instances by using SSH.<br />
  
  Required: No<br />
  
  Maximum: <code>10000</code><br />
  
  Pattern: <code>.*</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> */
    keyPair?: Value<string>;
    /** <code>EngineVersion</code>  <a name="cfn-opsworkscm-server-engineversion"></a>
  The major release version of the engine that you want to use. For a Chef server, the valid value for EngineVersion is currently <code>2</code>. For a Puppet server, valid values are <code>2019</code> or <code>2017</code>.<br />
  
  Required: No<br />
  
  Maximum: <code>10000</code><br />
  
  Pattern: <code>(?s).*</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> */
    engineVersion?: Value<string>;
    /** <code>ServiceRoleArn</code>  <a name="cfn-opsworkscm-server-servicerolearn"></a>
  The service role that the AWS OpsWorks CM service backend uses to work with your account. Although the AWS OpsWorks management console typically creates the service role for you, if you are using the AWS CLI or API commands, run the service-role-creation.yaml AWS CloudFormation template, located at https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml. This template creates a CloudFormation stack that includes the service role and instance profile that you need.<br />
  
  Required: Yes<br />
  
  Maximum: <code>10000</code><br />
  
  Pattern: <code>arn:aws:iam::[0-9]{12}:role/.*</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> */
    serviceRoleArn: Value<string>;
    /** <code>DisableAutomatedBackup</code>  <a name="cfn-opsworkscm-server-disableautomatedbackup"></a>
  Enable or disable scheduled backups. Valid values are <code>true</code> or <code>false</code>. The default value is <code>true</code>.<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> */
    disableAutomatedBackup?: Value<boolean>;
    /** <code>BackupId</code>  <a name="cfn-opsworkscm-server-backupid"></a>
  If you specify this field, AWS OpsWorks CM creates the server by using the backup represented by BackupId.<br />
  
  Required: No<br />
  
  Maximum: <code>79</code><br />
  
  Pattern: <code>[a-zA-Z][a-zA-Z0-9\-\.\:]*</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> */
    backupId?: Value<string>;
    /** <code>EngineModel</code>  <a name="cfn-opsworkscm-server-enginemodel"></a>
  The engine model of the server. Valid values in this release include <code>Monolithic</code> for Puppet and <code>Single</code> for Chef.<br />
  
  Required: No<br />
  
  Maximum: <code>10000</code><br />
  
  Pattern: <code>(?s).*</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> */
    engineModel?: Value<string>;
    /** <code>PreferredMaintenanceWindow</code>  <a name="cfn-opsworkscm-server-preferredmaintenancewindow"></a>
  The start time for a one-hour period each week during which AWS OpsWorks CM performs maintenance on the instance. Valid values must be specified in the following format: <code>DDD:HH:MM</code>. <code>MM</code> must be specified as <code>00</code>. The specified time is in coordinated universal time (UTC). The default value is a random one-hour period on Tuesday, Wednesday, or Friday. See <code>TimeWindowDefinition</code> for more information.<br />
  <strong>Example:</strong> <code>Mon:08:00</code>, which represents a start time of every Monday at 08:00 UTC. (8:00 a.m.)<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> */
    preferredMaintenanceWindow?: Value<string>;
    /** <code>AssociatePublicIpAddress</code>  <a name="cfn-opsworkscm-server-associatepublicipaddress"></a>
  Associate a public IP address with a server that you are launching. Valid values are <code>true</code> or <code>false</code>. The default value is <code>true</code>.<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> */
    associatePublicIpAddress?: Value<boolean>;
    /** <code>InstanceProfileArn</code>  <a name="cfn-opsworkscm-server-instanceprofilearn"></a>
  The ARN of the instance profile that your Amazon EC2 instances use.<br />
  
  Required: Yes<br />
  
  Maximum: <code>10000</code><br />
  
  Pattern: <code>arn:aws:iam::[0-9]{12}:instance-profile/.*</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> */
    instanceProfileArn: Value<string>;
    /** <p> */
    customCertificate?: Value<string>;
    /** <p> */
    preferredBackupWindow?: Value<string>;
    /** <code>SecurityGroupIds</code>  <a name="cfn-opsworkscm-server-securitygroupids"></a>
  A list of security group IDs to attach to the Amazon EC2 instance. If you add this parameter, the specified security groups must be within the VPC that is specified by <code>SubnetIds</code>.<br />
  If you do not specify this parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22 and 443, open to 0.0.0.0/0 (everyone).<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-opsworkscm-server-subnetids"></a>
  The IDs of subnets in which to launch the server EC2 instance.<br />
  Amazon EC2-Classic customers: This field is required. All servers must run within a VPC. The VPC must have “Auto Assign Public IP” enabled.<br />
  EC2-VPC customers: This field is optional. If you do not specify subnet IDs, your EC2 instances are created in a default subnet that is selected by Amazon EC2. If you specify subnet IDs, the VPC must have “Auto Assign Public IP” enabled.<br />
  For more information about supported Amazon EC2 platforms, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported Platforms</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-replacement">Replacement</a> */
    subnetIds?: Value<Value<string>[]>;
    /** <code>CustomDomain</code>  <a name="cfn-opsworkscm-server-customdomain"></a>
  Supported on servers running Chef Automate 2.0 only. An optional public endpoint of a server, such as <code>https://aws.my-company.com</code>. To access the server, create a CNAME DNS record in your preferred DNS service that points the custom domain to the endpoint that is generated when the server is created (the value of the CreateServer Endpoint attribute). You cannot access the server by using the generated <code>Endpoint</code> value if the server is using a custom domain. If you specify a custom domain, you must also specify values for <code>CustomCertificate</code> and <code>CustomPrivateKey</code>.<br />
  
  Required: No<br />
  
  Maximum: <code>253</code><br />
  
  Pattern: <code>^(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$</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> */
    customDomain?: Value<string>;
    /** <code>CustomPrivateKey</code>  <a name="cfn-opsworkscm-server-customprivatekey"></a>
  Supported on servers running Chef Automate 2.0 only. A private key in PEM format for connecting to the server by using HTTPS. The private key must not be encrypted; it cannot be protected by a password or passphrase. If you specify a custom private key, you must also specify values for <code>CustomDomain</code> and <code>CustomCertificate</code>.<br />
  
  Required: No<br />
  
  Maximum: <code>4096</code><br />
  
  Pattern: <code>(?ms)\s*^-----BEGIN (?-s:.*)PRIVATE KEY-----$.*?^-----END (?-s:.*)PRIVATE KEY-----$\s*</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> */
    customPrivateKey?: Value<string>;
    /** <p> */
    engineAttributes?: EngineAttributeProps[];
    /** <code>BackupRetentionCount</code>  <a name="cfn-opsworkscm-server-backupretentioncount"></a>
  The number of automated backups that you want to keep. Whenever a new backup is created, AWS OpsWorks CM deletes the oldest backups if this number is exceeded. The default value is <code>1</code>.<br />
  
  Required: No<br />
  
  Minimum: <code>1</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> */
    backupRetentionCount?: Value<number>;
    /** <code>InstanceType</code>  <a name="cfn-opsworkscm-server-instancetype"></a>
  The Amazon EC2 instance type to use. For example, <code>m5.large</code>.<br />
  
  Required: Yes<br />
  
  Maximum: <code>10000</code><br />
  
  Pattern: <code>(?s).*</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> */
    instanceType: Value<string>;
    /** <p> */
    tags?: Tag[];
    /** <code>Engine</code>  <a name="cfn-opsworkscm-server-engine"></a>
  The configuration management engine to use. Valid values include <code>ChefAutomate</code> and <code>Puppet</code>.<br />
  
  Required: No<br />
  
  Maximum: <code>10000</code><br />
  
  Pattern: <code>(?s).*</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> */
    engine?: Value<string>;
}
