import { Value } from '../../cloudformation/Value';
import { SoftwareUpdateOptionsProps } from './domain/SoftwareUpdateOptionsProps';
import { LogPublishingOptionProps } from './domain/LogPublishingOptionProps';
import { SnapshotOptionsProps } from './domain/SnapshotOptionsProps';
import { VPCOptionsProps } from './domain/VPCOptionsProps';
import { NodeToNodeEncryptionOptionsProps } from './domain/NodeToNodeEncryptionOptionsProps';
import { DomainEndpointOptionsProps } from './domain/DomainEndpointOptionsProps';
import { CognitoOptionsProps } from './domain/CognitoOptionsProps';
import { AdvancedSecurityOptionsInputProps } from './domain/AdvancedSecurityOptionsInputProps';
import { EBSOptionsProps } from './domain/EBSOptionsProps';
import { EncryptionAtRestOptionsProps } from './domain/EncryptionAtRestOptionsProps';
import { OffPeakWindowOptionsProps } from './domain/OffPeakWindowOptionsProps';
import { Tag } from '../Tag';
import { ClusterConfigProps } from './domain/ClusterConfigProps';
import { ServiceSoftwareOptionsProps } from './domain/ServiceSoftwareOptionsProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type DomainAttributes = {
    ServiceSoftwareOptions_OptionalDeployment: Attribute<boolean>;
    ServiceSoftwareOptions_Description: Attribute<string>;
    ServiceSoftwareOptions_UpdateStatus: Attribute<string>;
    ServiceSoftwareOptions_AutomatedUpdateDate: Attribute<string>;
    ServiceSoftwareOptions_CurrentVersion: Attribute<string>;
    DomainEndpoints: Attribute<{
        [key: string]: string;
    }>;
    DomainArn: Attribute<string>;
    ServiceSoftwareOptions_UpdateAvailable: Attribute<boolean>;
    DomainEndpoint: Attribute<string>;
    ServiceSoftwareOptions: Attribute<ServiceSoftwareOptionsProps>;
    AdvancedSecurityOptions_AnonymousAuthDisableDate: Attribute<string>;
    ServiceSoftwareOptions_NewVersion: Attribute<string>;
    Id: Attribute<string>;
    Arn: Attribute<string>;
    ServiceSoftwareOptions_Cancellable: Attribute<boolean>;
};
export type Domain = AwsResource<'AWS::OpenSearchService::Domain', DomainProperties, DomainAttributes>;
/**
  The AWS::OpenSearchService::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-opensearchservice-domain.html">the AWS Docs</a>
*/
export declare function domain(domainProps?: DomainProperties): Domain;
/**
  The AWS::OpenSearchService::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-opensearchservice-domain.html">the AWS Docs</a>
*/
export interface DomainProperties {
    /** <code>EngineVersion</code>  <a name="cfn-opensearchservice-domain-engineversion"></a>
  The version of OpenSearch to use. The value must be in the format <code>OpenSearch_X.Y</code> or <code>Elasticsearch_X.Y</code>. If not specified, the latest version of OpenSearch is used. 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>EngineVersion</code> without interruption. When <code>EnableVersionUpgrade</code> is set to <code>false</code>, or is not specified, updating <code>EngineVersion</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: Conditional<br />
  
  Minimum: <code>14</code><br />
  
  Maximum: <code>18</code><br />
  
  Pattern: <code>^Elasticsearch_[0-9]{1}\.[0-9]{1,2}$|^OpenSearch_[0-9]{1,2}\.[0-9]{1,2}$</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>SoftwareUpdateOptions</code>  <a name="cfn-opensearchservice-domain-softwareupdateoptions"></a>
  Options for configuring service software updates for a 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> */
    softwareUpdateOptions?: SoftwareUpdateOptionsProps;
    /** <code>DomainName</code>  <a name="cfn-opensearchservice-domain-domainname"></a>
  A name for the OpenSearch Service domain. The name must have a minimum length of 3 and a maximum length of 28. 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 />
  Required when creating a new domain.<br />
  If you specify a name, you can’t 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>LogPublishingOptions</code>  <a name="cfn-opensearchservice-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. For the full syntax, see the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#aws-resource-opensearchservice-domain--examples">examples</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> */
    logPublishingOptions?: {
        [key: string]: LogPublishingOptionProps;
    };
    /** <code>SnapshotOptions</code>  <a name="cfn-opensearchservice-domain-snapshotoptions"></a>
  <strong>DEPRECATED</strong>. The automated snapshot configuration for the OpenSearch Service domain indexes.<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>VPCOptions</code>  <a name="cfn-opensearchservice-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 />
  If you remove this entity altogether, along with its associated properties, it causes a replacement. You might encounter this scenario if you’re updating your security configuration from a VPC to a public 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-some-interrupt">Some interruptions</a> */
    vPCOptions?: VPCOptionsProps;
    /** <code>NodeToNodeEncryptionOptions</code>  <a name="cfn-opensearchservice-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-no-interrupt">No interruption</a> */
    nodeToNodeEncryptionOptions?: NodeToNodeEncryptionOptionsProps;
    /** <code>AccessPolicies</code>  <a name="cfn-opensearchservice-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 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> */
    accessPolicies?: Value<any>;
    /** <code>DomainEndpointOptions</code>  <a name="cfn-opensearchservice-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>CognitoOptions</code>  <a name="cfn-opensearchservice-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>AdvancedOptions</code>  <a name="cfn-opensearchservice-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/APIReference/API_CreateDomain.html#API_CreateDomain_RequestBody">AdvancedOptions</a> in the OpenSearch Service API reference.<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-opensearchservice-domain-advancedsecurityoptions"></a>
  Specifies options for fine-grained access control and SAML authentication.<br />
  If you specify advanced security options, you must also enable node-to-node encryption (<a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-nodetonodeencryptionoptions.html">NodeToNodeEncryptionOptions</a>) and encryption at rest (<a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-encryptionatrestoptions.html">EncryptionAtRestOptions</a>). You must also enable <code>EnforceHTTPS</code> within <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-domainendpointoptions.html">DomainEndpointOptions</a>, which requires HTTPS for all traffic to the 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> */
    advancedSecurityOptions?: AdvancedSecurityOptionsInputProps;
    /** <code>EBSOptions</code>  <a name="cfn-opensearchservice-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>EncryptionAtRestOptions</code>  <a name="cfn-opensearchservice-domain-encryptionatrestoptions"></a>
  Whether the domain should encrypt data at rest, and if so, the AWS KMS 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-no-interrupt">No interruption</a> */
    encryptionAtRestOptions?: EncryptionAtRestOptionsProps;
    /** <code>OffPeakWindowOptions</code>  <a name="cfn-opensearchservice-domain-offpeakwindowoptions"></a>
  Options for a domain’s off-peak window, during which OpenSearch Service can perform mandatory configuration changes on the 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> */
    offPeakWindowOptions?: OffPeakWindowOptionsProps;
    /** <code>Tags</code>  <a name="cfn-opensearchservice-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>ClusterConfig</code>  <a name="cfn-opensearchservice-domain-clusterconfig"></a>
  Container for the cluster configuration of a 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> */
    clusterConfig?: ClusterConfigProps;
}
