import { Value } from '../../cloudformation/Value';
import { AdvancedSecurityOptionsInputProps } from './domain/AdvancedSecurityOptionsInputProps';
import { CognitoOptionsProps } from './domain/CognitoOptionsProps';
import { DomainEndpointOptionsProps } from './domain/DomainEndpointOptionsProps';
import { EBSOptionsProps } from './domain/EBSOptionsProps';
import { ElasticsearchClusterConfigProps } from './domain/ElasticsearchClusterConfigProps';
import { EncryptionAtRestOptionsProps } from './domain/EncryptionAtRestOptionsProps';
import { LogPublishingOptionProps } from './domain/LogPublishingOptionProps';
import { NodeToNodeEncryptionOptionsProps } from './domain/NodeToNodeEncryptionOptionsProps';
import { SnapshotOptionsProps } from './domain/SnapshotOptionsProps';
import { Tag } from '../Tag';
import { VPCOptionsProps } from './domain/VPCOptionsProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type DomainAttributes = {
    Arn: Attribute<string>;
    DomainArn: Attribute<string>;
    DomainEndpoint: Attribute<string>;
};
export type Domain = AwsResource<'AWS::Elasticsearch::Domain', DomainProperties, DomainAttributes>;
/**
  The AWS::Elasticsearch::Domain resource creates an Amazon OpenSearch Service domain.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html">the AWS Docs</a>
*/
export declare function domain(domainProps?: DomainProperties): Domain;
/**
  The AWS::Elasticsearch::Domain resource creates an Amazon OpenSearch Service domain.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html">the AWS Docs</a>
*/
export interface DomainProperties {
    /** <code>AccessPolicies</code>  <a name="cfn-elasticsearch-domain-accesspolicies"></a>
  An AWS Identity and Access Management (IAM) policy document that specifies who can access the OpenSearch Service domain and their permissions. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ac.html#ac-creating">Configuring access policies</a> in the
  Amazon OpenSearch Service Developer Guid: <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> */
    accessPolicies?: Value<any>;
    /** <code>AdvancedOptions</code>  <a name="cfn-elasticsearch-domain-advancedoptions"></a>
  Additional options to specify for the OpenSearch Service domain. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options">Advanced cluster parameters</a> in the
  Amazon OpenSearch Service Developer Guide: 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> */
    advancedOptions?: Value<{
        [key: string]: Value<string>;
    }>;
    /** <code>AdvancedSecurityOptions</code>  <a name="cfn-elasticsearch-domain-advancedsecurityoptions"></a>
  Specifies options for fine-grained access control.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt">Some interruptions</a> */
    advancedSecurityOptions?: AdvancedSecurityOptionsInputProps;
    /** <code>CognitoOptions</code>  <a name="cfn-elasticsearch-domain-cognitooptions"></a>
  Configures OpenSearch Service to use Amazon Cognito authentication for OpenSearch Dashboards.<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> */
    cognitoOptions?: CognitoOptionsProps;
    /** <code>DomainEndpointOptions</code>  <a name="cfn-elasticsearch-domain-domainendpointoptions"></a>
  Specifies additional options for the domain endpoint, such as whether to require HTTPS for all traffic or whether to use a custom endpoint rather than the default endpoint.<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> */
    domainEndpointOptions?: DomainEndpointOptionsProps;
    /** <code>DomainName</code>  <a name="cfn-elasticsearch-domain-domainname"></a>
  A name for the OpenSearch Service domain. For valid values, see the <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-datatypes-domainname">DomainName</a> data type in the
  Amazon OpenSearch Service Developer Guide: If you don’t specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the domain 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: Conditional<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    domainName?: Value<string>;
    /** <code>EBSOptions</code>  <a name="cfn-elasticsearch-domain-ebsoptions"></a>
  The configurations of Amazon Elastic Block Store (Amazon EBS) volumes that are attached to data nodes in the OpenSearch Service domain. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource">EBS volume size limits</a> in the
  Amazon OpenSearch Service Developer Guide: 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> */
    eBSOptions?: EBSOptionsProps;
    /** <code>ElasticsearchClusterConfig</code>  <a name="cfn-elasticsearch-domain-elasticsearchclusterconfig"></a>
  ElasticsearchClusterConfig is a property of the AWS::Elasticsearch::Domain resource that configures the cluster of an Amazon OpenSearch Service domain.<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> */
    elasticsearchClusterConfig?: ElasticsearchClusterConfigProps;
    /** <code>ElasticsearchVersion</code>  <a name="cfn-elasticsearch-domain-elasticsearchversion"></a>
  The version of Elasticsearch to use, such as 2.3. If not specified, 1.5 is used as the default. For information about the versions that OpenSearch Service supports, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html#choosing-version">Supported versions of OpenSearch and Elasticsearch</a> in the
  Amazon OpenSearch Service Developer Guide: br />
  If you set the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-upgradeopensearchdomain">EnableVersionUpgrade</a> update policy to <code>true</code>, you can update <code>ElasticsearchVersion</code> without interruption. When <code>EnableVersionUpgrade</code> is set to <code>false</code>, or is not specified, updating <code>ElasticsearchVersion</code> results in <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">replacement</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-some-interrupt">Some interruptions</a> */
    elasticsearchVersion?: Value<string>;
    /** <code>EncryptionAtRestOptions</code>  <a name="cfn-elasticsearch-domain-encryptionatrestoptions"></a>
  Whether the domain should encrypt data at rest, and if so, the AWS Key Management Service key to use. See <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html">Encryption of data at rest for Amazon OpenSearch Service</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-some-interrupt">Some interruptions</a> */
    encryptionAtRestOptions?: EncryptionAtRestOptionsProps;
    /** <code>LogPublishingOptions</code>  <a name="cfn-elasticsearch-domain-logpublishingoptions"></a>
  An object with one or more of the following keys: <code>SEARCH_SLOW_LOGS</code>, <code>ES_APPLICATION_LOGS</code>, <code>INDEX_SLOW_LOGS</code>, <code>AUDIT_LOGS</code>, depending on the types of logs you want to publish. Each key needs a valid <code>LogPublishingOption</code> value.<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> */
    logPublishingOptions?: {
        [key: string]: LogPublishingOptionProps;
    };
    /** <code>NodeToNodeEncryptionOptions</code>  <a name="cfn-elasticsearch-domain-nodetonodeencryptionoptions"></a>
  Specifies whether node-to-node encryption is enabled. See <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ntn.html">Node-to-node encryption for Amazon OpenSearch Service</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-some-interrupt">Some interruptions</a> */
    nodeToNodeEncryptionOptions?: NodeToNodeEncryptionOptionsProps;
    /** <code>SnapshotOptions</code>  <a name="cfn-elasticsearch-domain-snapshotoptions"></a>
  <strong>DEPRECATED</strong>. The automated snapshot configuration for the OpenSearch Service domain indices.<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> */
    snapshotOptions?: SnapshotOptionsProps;
    /** <code>Tags</code>  <a name="cfn-elasticsearch-domain-tags"></a>
  An arbitrary set of tags (key–value pairs) to associate with the OpenSearch Service domain.<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[];
    /** <code>VPCOptions</code>  <a name="cfn-elasticsearch-domain-vpcoptions"></a>
  The virtual private cloud (VPC) configuration for the OpenSearch Service domain. For more information, see <a href="https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html">Launching your Amazon OpenSearch Service domains within a VPC</a> in the
  Amazon OpenSearch Service Developer Guide: 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> */
    vPCOptions?: VPCOptionsProps;
}
