export interface Tag {
    /** Specifies the TagKey, the name of the tag. Tag keys must be unique for the Elasticsearch domain to which they are attached. */
    Key: string;
    /** Specifies the TagValue, the value assigned to the corresponding tag key. Tag values can be null and do not have to be unique in a tag set. For example, you can have a key value pair in a tag set of pr */
    Value: string;
}
export interface ZoneAwarenessConfig {
    /** An integer value to indicate the number of availability zones for a domain when zone awareness is enabled. This should be equal to number of subnets if VPC endpoints is enabled */
    AvailabilityZoneCount?: number;
}
export interface ColdStorageOptions {
    /** Enable cold storage option. Accepted values true or false */
    Enabled: boolean;
}
export interface ElasticsearchClusterConfig {
    /** The instance type for an Elasticsearch cluster. UltraWarm instance types are not supported for data instances. */
    InstanceType?: 'm3.medium.elasticsearch' | 'm3.large.elasticsearch' | 'm3.xlarge.elasticsearch' | 'm3.2xlarge.elasticsearch' | 'm4.large.elasticsearch' | 'm4.xlarge.elasticsearch' | 'm4.2xlarge.elasticsearch' | 'm4.4xlarge.elasticsearch' | 'm4.10xlarge.elasticsearch' | 'm5.large.elasticsearch' | 'm5.xlarge.elasticsearch' | 'm5.2xlarge.elasticsearch' | 'm5.4xlarge.elasticsearch' | 'm5.12xlarge.elasticsearch' | 'r5.large.elasticsearch' | 'r5.xlarge.elasticsearch' | 'r5.2xlarge.elasticsearch' | 'r5.4xlarge.elasticsearch' | 'r5.12xlarge.elasticsearch' | 'c5.large.elasticsearch' | 'c5.xlarge.elasticsearch' | 'c5.2xlarge.elasticsearch' | 'c5.4xlarge.elasticsearch' | 'c5.9xlarge.elasticsearch' | 'c5.18xlarge.elasticsearch' | 'ultrawarm1.medium.elasticsearch' | 'ultrawarm1.large.elasticsearch' | 't2.micro.elasticsearch' | 't2.small.elasticsearch' | 't2.medium.elasticsearch' | 'r3.large.elasticsearch' | 'r3.xlarge.elasticsearch' | 'r3.2xlarge.elasticsearch' | 'r3.4xlarge.elasticsearch' | 'r3.8xlarge.elasticsearch' | 'i2.xlarge.elasticsearch' | 'i2.2xlarge.elasticsearch' | 'd2.xlarge.elasticsearch' | 'd2.2xlarge.elasticsearch' | 'd2.4xlarge.elasticsearch' | 'd2.8xlarge.elasticsearch' | 'c4.large.elasticsearch' | 'c4.xlarge.elasticsearch' | 'c4.2xlarge.elasticsearch' | 'c4.4xlarge.elasticsearch' | 'c4.8xlarge.elasticsearch' | 'r4.large.elasticsearch' | 'r4.xlarge.elasticsearch' | 'r4.2xlarge.elasticsearch' | 'r4.4xlarge.elasticsearch' | 'r4.8xlarge.elasticsearch' | 'r4.16xlarge.elasticsearch' | 'i3.large.elasticsearch' | 'i3.xlarge.elasticsearch' | 'i3.2xlarge.elasticsearch' | 'i3.4xlarge.elasticsearch' | 'i3.8xlarge.elasticsearch' | 'i3.16xlarge.elasticsearch';
    /** The number of instances in the specified domain cluster. */
    InstanceCount?: number;
    /** A boolean value to indicate whether a dedicated master node is enabled. See About Dedicated Master Nodes for more information. */
    DedicatedMasterEnabled?: boolean;
    /** A boolean value to indicate whether zone awareness is enabled. See About Zone Awareness for more information. */
    ZoneAwarenessEnabled?: boolean;
    /** Specifies the zone awareness configuration for a domain when zone awareness is enabled. */
    ZoneAwarenessConfig?: ZoneAwarenessConfig;
    /** The instance type for a dedicated master node. */
    DedicatedMasterType?: 'm3.medium.elasticsearch' | 'm3.large.elasticsearch' | 'm3.xlarge.elasticsearch' | 'm3.2xlarge.elasticsearch' | 'm4.large.elasticsearch' | 'm4.xlarge.elasticsearch' | 'm4.2xlarge.elasticsearch' | 'm4.4xlarge.elasticsearch' | 'm4.10xlarge.elasticsearch' | 'm5.large.elasticsearch' | 'm5.xlarge.elasticsearch' | 'm5.2xlarge.elasticsearch' | 'm5.4xlarge.elasticsearch' | 'm5.12xlarge.elasticsearch' | 'r5.large.elasticsearch' | 'r5.xlarge.elasticsearch' | 'r5.2xlarge.elasticsearch' | 'r5.4xlarge.elasticsearch' | 'r5.12xlarge.elasticsearch' | 'c5.large.elasticsearch' | 'c5.xlarge.elasticsearch' | 'c5.2xlarge.elasticsearch' | 'c5.4xlarge.elasticsearch' | 'c5.9xlarge.elasticsearch' | 'c5.18xlarge.elasticsearch' | 'ultrawarm1.medium.elasticsearch' | 'ultrawarm1.large.elasticsearch' | 't2.micro.elasticsearch' | 't2.small.elasticsearch' | 't2.medium.elasticsearch' | 'r3.large.elasticsearch' | 'r3.xlarge.elasticsearch' | 'r3.2xlarge.elasticsearch' | 'r3.4xlarge.elasticsearch' | 'r3.8xlarge.elasticsearch' | 'i2.xlarge.elasticsearch' | 'i2.2xlarge.elasticsearch' | 'd2.xlarge.elasticsearch' | 'd2.2xlarge.elasticsearch' | 'd2.4xlarge.elasticsearch' | 'd2.8xlarge.elasticsearch' | 'c4.large.elasticsearch' | 'c4.xlarge.elasticsearch' | 'c4.2xlarge.elasticsearch' | 'c4.4xlarge.elasticsearch' | 'c4.8xlarge.elasticsearch' | 'r4.large.elasticsearch' | 'r4.xlarge.elasticsearch' | 'r4.2xlarge.elasticsearch' | 'r4.4xlarge.elasticsearch' | 'r4.8xlarge.elasticsearch' | 'r4.16xlarge.elasticsearch' | 'i3.large.elasticsearch' | 'i3.xlarge.elasticsearch' | 'i3.2xlarge.elasticsearch' | 'i3.4xlarge.elasticsearch' | 'i3.8xlarge.elasticsearch' | 'i3.16xlarge.elasticsearch';
    /** Total number of dedicated master nodes, active and on standby, for the cluster. */
    DedicatedMasterCount?: number;
    /** True to enable warm storage. */
    WarmEnabled?: boolean;
    /** The instance type for the Elasticsearch cluster's warm nodes. */
    WarmType?: 'ultrawarm1.medium.elasticsearch' | 'ultrawarm1.large.elasticsearch';
    /** The number of warm nodes in the cluster. */
    WarmCount?: number;
    /** Specifies the ColdStorageOptions config for Elasticsearch Domain */
    ColdStorageOptions?: ColdStorageOptions;
}
export interface EBSOptions {
    /** Specifies whether EBS-based storage is enabled. */
    EBSEnabled?: boolean;
    /** Specifies the volume type for EBS-based storage. */
    VolumeType?: 'standard' | 'gp2' | 'io1' | 'gp3';
    /** Integer to specify the size of an EBS volume. */
    VolumeSize?: number;
    /** Specifies the IOPS for Provisioned IOPS And GP3 EBS volume (SSD). */
    Iops?: number;
    /** Specifies the Throughput for GP3 EBS volume (SSD). */
    Throughput?: number;
}
export interface SnapshotOptions {
    /** Specifies the time, in UTC format, when the service takes a daily automated snapshot of the specified Elasticsearch domain. Default value is 0 hours. */
    AutomatedSnapshotStartHour?: number;
}
export interface VPCOptions {
    /** Specifies the subnets for VPC endpoint. */
    SubnetIds?: string[];
    /** Specifies the security groups for VPC endpoint. */
    SecurityGroupIds?: string[];
}
export interface CognitoOptions {
    /** Specifies the option to enable Cognito for Kibana authentication. */
    Enabled?: boolean;
    /** Specifies the Cognito user pool ID for Kibana authentication. */
    UserPoolId?: string;
    /** Specifies the Cognito identity pool ID for Kibana authentication. */
    IdentityPoolId?: string;
    /** Specifies the role ARN that provides Elasticsearch permissions for accessing Cognito resources. */
    RoleArn?: string;
}
export interface EncryptionAtRestOptions {
    /** Specifies the option to enable Encryption At Rest. */
    Enabled?: boolean;
    /** Specifies the KMS Key ID for Encryption At Rest options. */
    KmsKeyId?: string;
}
export interface NodeToNodeEncryptionOptions {
    /** Specify true to enable node-to-node encryption. */
    Enabled?: boolean;
}
export interface LogPublishingOption {
    CloudWatchLogsLogGroupArn?: string;
    /** Specifies whether given log publishing option is enabled or not. */
    Enabled?: boolean;
}
export interface DomainEndpointOptions {
    /** Specify if only HTTPS endpoint should be enabled for the Elasticsearch domain. */
    EnforceHTTPS?: boolean;
    /** Specify the TLS security policy that needs to be applied to the HTTPS endpoint of Elasticsearch domain. It can be one of the following values: Policy-Min-TLS-1-0-2019-07: TLS security policy that supp */
    TLSSecurityPolicy?: 'Policy-Min-TLS-1-0-2019-07' | 'Policy-Min-TLS-1-2-2019-07' | 'Policy-Min-TLS-1-2-PFS-2023-10';
    /** Specify if custom endpoint should be enabled for the Elasticsearch domain. */
    CustomEndpointEnabled?: boolean;
    /** Specify the fully qualified domain for your custom endpoint. */
    CustomEndpoint?: string;
    /** Specify ACM certificate ARN for your custom endpoint. */
    CustomEndpointCertificateArn?: string;
}
export interface MasterUserOptions {
    /** ARN for the master user (if IAM is enabled). */
    MasterUserARN?: string;
    /** The master user's username, which is stored in the Amazon Elasticsearch Service domain's internal database. */
    MasterUserName?: string;
    /** The master user's password, which is stored in the Amazon Elasticsearch Service domain's internal database. */
    MasterUserPassword?: string;
}
export interface SAMLOptionsInput {
    /** True if SAML is enabled. */
    Enabled?: boolean;
    /** Specifies the SAML Identity Provider's information. */
    Idp?: any;
    /** The SAML master username, which is stored in the Amazon Elasticsearch Service domain's internal database. */
    MasterUserName?: string;
    /** The backend role to which the SAML master user is mapped to. */
    MasterBackendRole?: string;
    /** The key to use for matching the SAML Subject attribute. */
    SubjectKey?: string;
    /** The key to use for matching the SAML Roles attribute. */
    RolesKey?: string;
    /** The duration, in minutes, after which a user session becomes inactive. Acceptable values are between 1 and 1440, and the default value is 60. */
    SessionTimeoutMinutes?: number;
}
export interface AdvancedSecurityOptionsInput {
    /** True if advanced security is enabled. */
    Enabled?: boolean;
    /** True if the internal user database is enabled. */
    InternalUserDatabaseEnabled?: boolean;
    /** Credentials for the master user: username and password, ARN, or both. */
    MasterUserOptions?: MasterUserOptions;
    /** Specifies the SAML application configuration for the domain. */
    SAMLOptions?: SAMLOptionsInput;
    /** True if Anonymous auth is enabled. Anonymous auth can be enabled only when AdvancedSecurity is enabled on existing domains. */
    AnonymousAuthEnabled?: boolean;
}
export interface AutoTuneOptionsInput {
    /** Specifies the Auto-Tune desired state. Valid values are ENABLED, DISABLED. */
    DesiredState?: 'ENABLED' | 'DISABLED';
    /** Specifies list of maitenance schedules. See the Developer Guide for more information. */
    MaintenanceSchedules?: any[];
}
export interface DomainInformation {
    OwnerId?: string;
    DomainName: string;
    Region?: string;
}
export interface PackageSource {
    /** Name of the bucket containing the package. */
    S3BucketName?: string;
    /** Key (file name) of the package. */
    S3Key?: string;
}
export interface Filter {
    /** Specifies the name of the filter. */
    Name?: string;
    /** Contains one or more values for the filter. */
    Values?: any[];
}
export interface DescribePackagesFilter {
    /** Any field from PackageDetails. */
    Name?: 'PackageID' | 'PackageName' | 'PackageStatus';
    /** A non-empty list of values for the specified field. */
    Value?: any[];
}
export interface AutoTuneOptions {
    /** Specifies the Auto-Tune desired state. Valid values are ENABLED, DISABLED. */
    DesiredState?: 'ENABLED' | 'DISABLED';
    /** Specifies the rollback state while disabling Auto-Tune for the domain. Valid values are NO_ROLLBACK, DEFAULT_ROLLBACK. */
    RollbackOnDisable?: 'NO_ROLLBACK' | 'DEFAULT_ROLLBACK';
    /** Specifies list of maitenance schedules. See the Developer Guide for more information. */
    MaintenanceSchedules?: any[];
}
/** Container for the parameters to the AcceptInboundCrossClusterSearchConnection operation. */
export interface AcceptInboundCrossClusterSearchConnectionInput {
    /** The id of the inbound connection that you want to accept. */
    CrossClusterSearchConnectionId: string;
}
/** Container for the parameters to the AddTags operation. Specify the tags that you want to attach to the Elasticsearch domain. */
export interface AddTagsInput {
    /** Specify the ARN for which you want to add the tags. */
    ARN: string;
    /** List of Tag that need to be added for the Elasticsearch domain. */
    TagList: Tag[];
}
/** Container for request parameters to AssociatePackage operation. */
export interface AssociatePackageInput {
    /** Name of the domain that you want to associate the package with. */
    DomainName: string;
    /** Internal ID of the package that you want to associate with a domain. Use DescribePackages to find this value. */
    PackageID: string;
}
/** Container for request parameters to the AuthorizeVpcEndpointAccess operation. Specifies the account to be permitted to manage VPC endpoints against the domain. */
export interface AuthorizeVpcEndpointAccessInput {
    /** The account ID to grant access to. */
    Account: string;
    /** The name of the OpenSearch Service domain to provide access to. */
    DomainName: string;
}
/** Container for parameters of the CancelDomainConfigChange operation. */
export interface CancelDomainConfigChangeInput {
    /** Name of the OpenSearch Service domain configuration request to cancel. */
    DomainName: string;
    /** When set to True, returns the list of change IDs and properties that will be cancelled without actually cancelling the change. */
    DryRun?: boolean;
}
/** Container for the parameters to the CancelElasticsearchServiceSoftwareUpdate operation. Specifies the name of the Elasticsearch domain that you wish to cancel a service software update on. */
export interface CancelElasticsearchServiceSoftwareUpdateInput {
    /** The name of the domain that you want to stop the latest service software update on. */
    DomainName: string;
}
export interface CreateElasticsearchDomainInput {
    /** The name of the Elasticsearch domain that you are creating. Domain names are unique across the domains owned by an account within an AWS region. Domain names must start with a lowercase letter and can */
    DomainName: string;
    /** IAM access policy as a JSON-formatted string. */
    AccessPolicies?: string;
    /** Option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Configuration Advanced Options for  */
    AdvancedOptions?: Record<string, string>;
    /** Specifies advanced security options. */
    AdvancedSecurityOptions?: AdvancedSecurityOptionsInput;
    /** Specifies Auto-Tune options. */
    AutoTuneOptions?: AutoTuneOptionsInput;
    /** Options to specify the Cognito user and identity pools for Kibana authentication. For more information, see Amazon Cognito Authentication for Kibana. */
    CognitoOptions?: CognitoOptions;
    /** Options to specify configuration that will be applied to the domain endpoint. */
    DomainEndpointOptions?: DomainEndpointOptions;
    /** Options to enable, disable and specify the type and size of EBS storage volumes. */
    EBSOptions?: EBSOptions;
    /** Configuration options for an Elasticsearch domain. Specifies the instance type and number of instances in the domain cluster. */
    ElasticsearchClusterConfig?: ElasticsearchClusterConfig;
    /** String of format X.Y to specify version for the Elasticsearch domain eg. "1.5" or "2.3". For more information, see Creating Elasticsearch Domains in the Amazon Elasticsearch Service Developer Guide. */
    ElasticsearchVersion?: string;
    /** Specifies the Encryption At Rest Options. */
    EncryptionAtRestOptions?: EncryptionAtRestOptions;
    /** Map of LogType and LogPublishingOption, each containing options to publish a given type of Elasticsearch log. */
    LogPublishingOptions?: Record<string, LogPublishingOption>;
    /** Specifies the NodeToNodeEncryptionOptions. */
    NodeToNodeEncryptionOptions?: NodeToNodeEncryptionOptions;
    /** Option to set time, in UTC format, of the daily automated snapshot. Default value is 0 hours. */
    SnapshotOptions?: SnapshotOptions;
    /** A list of Tag added during domain creation. */
    TagList?: Tag[];
    /** Options to specify the subnets and security groups for VPC endpoint. For more information, see Creating a VPC in VPC Endpoints for Amazon Elasticsearch Service Domains */
    VPCOptions?: VPCOptions;
}
/** Container for the parameters to the CreateOutboundCrossClusterSearchConnection operation. */
export interface CreateOutboundCrossClusterSearchConnectionInput {
    /** Specifies the connection alias that will be used by the customer for this connection. */
    ConnectionAlias: string;
    /** Specifies the DomainInformation for the destination Elasticsearch domain. */
    DestinationDomainInfo: DomainInformation;
    /** Specifies the DomainInformation for the source Elasticsearch domain. */
    SourceDomainInfo: DomainInformation;
}
/** Container for request parameters to CreatePackage operation. */
export interface CreatePackageInput {
    /** Unique identifier for the package. */
    PackageName: string;
    /** The customer S3 location PackageSource for importing the package. */
    PackageSource: PackageSource;
    /** Type of package. Currently supports only TXT-DICTIONARY. */
    PackageType: 'TXT-DICTIONARY';
    /** Description of the package. */
    PackageDescription?: string;
}
/** Container for the parameters to the CreateVpcEndpointRequest operation. */
export interface CreateVpcEndpointInput {
    /** The Amazon Resource Name (ARN) of the domain to grant access to. */
    DomainArn: string;
    /** Options to specify the subnets and security groups for the endpoint. */
    VpcOptions: VPCOptions;
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    ClientToken?: string;
}
/** Container for the parameters to the DeleteElasticsearchDomain operation. Specifies the name of the Elasticsearch domain that you want to delete. */
export interface DeleteElasticsearchDomainInput {
    /** The name of the Elasticsearch domain that you want to permanently delete. */
    DomainName: string;
}
/** Container for the parameters to the DeleteInboundCrossClusterSearchConnection operation. */
export interface DeleteInboundCrossClusterSearchConnectionInput {
    /** The id of the inbound connection that you want to permanently delete. */
    CrossClusterSearchConnectionId: string;
}
/** Container for the parameters to the DeleteOutboundCrossClusterSearchConnection operation. */
export interface DeleteOutboundCrossClusterSearchConnectionInput {
    /** The id of the outbound connection that you want to permanently delete. */
    CrossClusterSearchConnectionId: string;
}
/** Container for request parameters to DeletePackage operation. */
export interface DeletePackageInput {
    /** Internal ID of the package that you want to delete. Use DescribePackages to find this value. */
    PackageID: string;
}
/** Deletes an Amazon OpenSearch Service-managed interface VPC endpoint. */
export interface DeleteVpcEndpointInput {
    /** The unique identifier of the endpoint to be deleted. */
    VpcEndpointId: string;
}
/** Container for the parameters to the DescribeDomainAutoTunes operation. */
export interface DescribeDomainAutoTunesInput {
    /** Specifies the domain name for which you want Auto-Tune action details. */
    DomainName: string;
    /** Set this value to limit the number of results returned. If not specified, defaults to 100. */
    MaxResults?: number;
    /** NextToken is sent in case the earlier API call results contain the NextToken. It is used for pagination. */
    NextToken?: string;
}
/** Container for the parameters to the DescribeDomainChangeProgress operation. Specifies the domain name and optional change specific identity for which you want progress information. */
export interface DescribeDomainChangeProgressInput {
    /** The domain you want to get the progress information about. */
    DomainName: string;
    /** The specific change ID for which you want to get progress information. This is an optional parameter. If omitted, the service returns information about the most recent configuration change. */
    ChangeId?: string;
}
/** Container for the parameters to the DescribeElasticsearchDomain operation. */
export interface DescribeElasticsearchDomainInput {
    /** The name of the Elasticsearch domain for which you want information. */
    DomainName: string;
}
/** Container for the parameters to the DescribeElasticsearchDomainConfig operation. Specifies the domain name for which you want configuration information. */
export interface DescribeElasticsearchDomainConfigInput {
    /** The Elasticsearch domain that you want to get information about. */
    DomainName: string;
}
/** Container for the parameters to the DescribeElasticsearchDomains operation. By default, the API returns the status of all Elasticsearch domains. */
export interface DescribeElasticsearchDomainsInput {
    /** The Elasticsearch domains for which you want information. */
    DomainNames: string[];
}
/** Container for the parameters to DescribeElasticsearchInstanceTypeLimits operation. */
export interface DescribeElasticsearchInstanceTypeLimitsInput {
    /** Version of Elasticsearch for which Limits are needed. */
    ElasticsearchVersion: string;
    /** The instance type for an Elasticsearch cluster for which Elasticsearch Limits are needed. */
    InstanceType: 'm3.medium.elasticsearch' | 'm3.large.elasticsearch' | 'm3.xlarge.elasticsearch' | 'm3.2xlarge.elasticsearch' | 'm4.large.elasticsearch' | 'm4.xlarge.elasticsearch' | 'm4.2xlarge.elasticsearch' | 'm4.4xlarge.elasticsearch' | 'm4.10xlarge.elasticsearch' | 'm5.large.elasticsearch' | 'm5.xlarge.elasticsearch' | 'm5.2xlarge.elasticsearch' | 'm5.4xlarge.elasticsearch' | 'm5.12xlarge.elasticsearch' | 'r5.large.elasticsearch' | 'r5.xlarge.elasticsearch' | 'r5.2xlarge.elasticsearch' | 'r5.4xlarge.elasticsearch' | 'r5.12xlarge.elasticsearch' | 'c5.large.elasticsearch' | 'c5.xlarge.elasticsearch' | 'c5.2xlarge.elasticsearch' | 'c5.4xlarge.elasticsearch' | 'c5.9xlarge.elasticsearch' | 'c5.18xlarge.elasticsearch' | 'ultrawarm1.medium.elasticsearch' | 'ultrawarm1.large.elasticsearch' | 't2.micro.elasticsearch' | 't2.small.elasticsearch' | 't2.medium.elasticsearch' | 'r3.large.elasticsearch' | 'r3.xlarge.elasticsearch' | 'r3.2xlarge.elasticsearch' | 'r3.4xlarge.elasticsearch' | 'r3.8xlarge.elasticsearch' | 'i2.xlarge.elasticsearch' | 'i2.2xlarge.elasticsearch' | 'd2.xlarge.elasticsearch' | 'd2.2xlarge.elasticsearch' | 'd2.4xlarge.elasticsearch' | 'd2.8xlarge.elasticsearch' | 'c4.large.elasticsearch' | 'c4.xlarge.elasticsearch' | 'c4.2xlarge.elasticsearch' | 'c4.4xlarge.elasticsearch' | 'c4.8xlarge.elasticsearch' | 'r4.large.elasticsearch' | 'r4.xlarge.elasticsearch' | 'r4.2xlarge.elasticsearch' | 'r4.4xlarge.elasticsearch' | 'r4.8xlarge.elasticsearch' | 'r4.16xlarge.elasticsearch' | 'i3.large.elasticsearch' | 'i3.xlarge.elasticsearch' | 'i3.2xlarge.elasticsearch' | 'i3.4xlarge.elasticsearch' | 'i3.8xlarge.elasticsearch' | 'i3.16xlarge.elasticsearch';
    /** DomainName represents the name of the Domain that we are trying to modify. This should be present only if we are querying for Elasticsearch Limits for existing domain. */
    DomainName?: string;
}
/** Container for the parameters to the DescribeInboundCrossClusterSearchConnections operation. */
export interface DescribeInboundCrossClusterSearchConnectionsInput {
    /** A list of filters used to match properties for inbound cross-cluster search connection. Available Filter names for this operation are: cross-cluster-search-connection-id source-domain-info.domain-name */
    Filters?: Filter[];
    /** Set this value to limit the number of results returned. If not specified, defaults to 100. */
    MaxResults?: number;
    /** NextToken is sent in case the earlier API call results contain the NextToken. It is used for pagination. */
    NextToken?: string;
}
/** Container for the parameters to the DescribeOutboundCrossClusterSearchConnections operation. */
export interface DescribeOutboundCrossClusterSearchConnectionsInput {
    /** A list of filters used to match properties for outbound cross-cluster search connection. Available Filter names for this operation are: cross-cluster-search-connection-id destination-domain-info.domai */
    Filters?: Filter[];
    /** Set this value to limit the number of results returned. If not specified, defaults to 100. */
    MaxResults?: number;
    /** NextToken is sent in case the earlier API call results contain the NextToken. It is used for pagination. */
    NextToken?: string;
}
/** Container for request parameters to DescribePackage operation. */
export interface DescribePackagesInput {
    /** Only returns packages that match the DescribePackagesFilterList values. */
    Filters?: DescribePackagesFilter[];
    /** Limits results to a maximum number of packages. */
    MaxResults?: number;
    /** Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page. */
    NextToken?: string;
}
/** Container for parameters to DescribeReservedElasticsearchInstanceOfferings */
export interface DescribeReservedElasticsearchInstanceOfferingsInput {
    /** Set this value to limit the number of results returned. If not specified, defaults to 100. */
    MaxResults?: number;
    /** NextToken should be sent in case if earlier API call produced result containing NextToken. It is used for pagination. */
    NextToken?: string;
    /** The offering identifier filter value. Use this parameter to show only the available offering that matches the specified reservation identifier. */
    ReservedElasticsearchInstanceOfferingId?: string;
}
/** Container for parameters to DescribeReservedElasticsearchInstances */
export interface DescribeReservedElasticsearchInstancesInput {
    /** Set this value to limit the number of results returned. If not specified, defaults to 100. */
    MaxResults?: number;
    /** NextToken should be sent in case if earlier API call produced result containing NextToken. It is used for pagination. */
    NextToken?: string;
    /** The reserved instance identifier filter value. Use this parameter to show only the reservation that matches the specified reserved Elasticsearch instance ID. */
    ReservedElasticsearchInstanceId?: string;
}
/** Container for request parameters to the DescribeVpcEndpoints operation. Specifies the list of VPC endpoints to be described. */
export interface DescribeVpcEndpointsInput {
    /** The unique identifiers of the endpoints to get information about. */
    VpcEndpointIds: string[];
}
/** Container for request parameters to DissociatePackage operation. */
export interface DissociatePackageInput {
    /** Name of the domain that you want to associate the package with. */
    DomainName: string;
    /** Internal ID of the package that you want to associate with a domain. Use DescribePackages to find this value. */
    PackageID: string;
}
/** Container for request parameters to GetCompatibleElasticsearchVersions operation. */
export interface GetCompatibleElasticsearchVersionsInput {
    DomainName?: string;
}
/** Container for request parameters to GetPackageVersionHistory operation. */
export interface GetPackageVersionHistoryInput {
    /** Returns an audit history of versions of the package. */
    PackageID: string;
    /** Limits results to a maximum number of versions. */
    MaxResults?: number;
    /** Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page. */
    NextToken?: string;
}
/** Container for request parameters to GetUpgradeHistory operation. */
export interface GetUpgradeHistoryInput {
    DomainName: string;
    MaxResults?: number;
    NextToken?: string;
}
/** Container for request parameters to GetUpgradeStatus operation. */
export interface GetUpgradeStatusInput {
    DomainName: string;
}
/** Container for the parameters to the ListDomainNames operation. */
export interface ListDomainNamesInput {
    /** Optional parameter to filter the output by domain engine type. Acceptable values are 'Elasticsearch' and 'OpenSearch'. */
    EngineType?: 'OpenSearch' | 'Elasticsearch';
}
/** Container for request parameters to ListDomainsForPackage operation. */
export interface ListDomainsForPackageInput {
    /** The package for which to list domains. */
    PackageID: string;
    /** Limits results to a maximum number of domains. */
    MaxResults?: number;
    /** Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page. */
    NextToken?: string;
}
/** Container for the parameters to the ListElasticsearchInstanceTypes operation. */
export interface ListElasticsearchInstanceTypesInput {
    /** Version of Elasticsearch for which list of supported elasticsearch instance types are needed. */
    ElasticsearchVersion: string;
    /** DomainName represents the name of the Domain that we are trying to modify. This should be present only if we are querying for list of available Elasticsearch instance types when modifying existing dom */
    DomainName?: string;
    /** Set this value to limit the number of results returned. Value provided must be greater than 30 else it wont be honored. */
    MaxResults?: number;
    /** NextToken should be sent in case if earlier API call produced result containing NextToken. It is used for pagination. */
    NextToken?: string;
}
/** Container for the parameters to the ListElasticsearchVersions operation. Use MaxResults to control the maximum number of results to retrieve in a single call. Use NextToken in response to retrieve mor */
export interface ListElasticsearchVersionsInput {
    /** Set this value to limit the number of results returned. Value provided must be greater than 10 else it wont be honored. */
    MaxResults?: number;
    NextToken?: string;
}
/** Container for request parameters to ListPackagesForDomain operation. */
export interface ListPackagesForDomainInput {
    /** The name of the domain for which you want to list associated packages. */
    DomainName: string;
    /** Limits results to a maximum number of packages. */
    MaxResults?: number;
    /** Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page. */
    NextToken?: string;
}
/** Container for the parameters to the ListTags operation. Specify the ARN for the Elasticsearch domain to which the tags are attached that you want to view are attached. */
export interface ListTagsInput {
    /** Specify the ARN for the Elasticsearch domain to which the tags are attached that you want to view. */
    ARN: string;
}
/** Retrieves information about each principal that is allowed to access a given Amazon OpenSearch Service domain through the use of an interface VPC endpoint */
export interface ListVpcEndpointAccessInput {
    /** The name of the OpenSearch Service domain to retrieve access information for. */
    DomainName: string;
    /** Provides an identifier to allow retrieval of paginated results. */
    NextToken?: string;
}
/** Container for request parameters to the ListVpcEndpoints operation. */
export interface ListVpcEndpointsInput {
    /** Identifier to allow retrieval of paginated results. */
    NextToken?: string;
}
/** Container for request parameters to the ListVpcEndpointsForDomain operation. Specifies the domain whose VPC endpoints will be listed. */
export interface ListVpcEndpointsForDomainInput {
    /** Name of the ElasticSearch domain whose VPC endpoints are to be listed. */
    DomainName: string;
    /** Provides an identifier to allow retrieval of paginated results. */
    NextToken?: string;
}
/** Container for parameters to PurchaseReservedElasticsearchInstanceOffering */
export interface PurchaseReservedElasticsearchInstanceOfferingInput {
    /** A customer-specified identifier to track this reservation. */
    ReservationName: string;
    /** The ID of the reserved Elasticsearch instance offering to purchase. */
    ReservedElasticsearchInstanceOfferingId: string;
    /** The number of Elasticsearch instances to reserve. */
    InstanceCount?: number;
}
/** Container for the parameters to the RejectInboundCrossClusterSearchConnection operation. */
export interface RejectInboundCrossClusterSearchConnectionInput {
    /** The id of the inbound connection that you want to reject. */
    CrossClusterSearchConnectionId: string;
}
/** Container for the parameters to the RemoveTags operation. Specify the ARN for the Elasticsearch domain from which you want to remove the specified TagKey. */
export interface RemoveTagsInput {
    /** Specifies the ARN for the Elasticsearch domain from which you want to delete the specified tags. */
    ARN: string;
    /** Specifies the TagKey list which you want to remove from the Elasticsearch domain. */
    TagKeys: string[];
}
/** Revokes access to an Amazon OpenSearch Service domain that was provided through an interface VPC endpoint. */
export interface RevokeVpcEndpointAccessInput {
    /** The account ID to revoke access from. */
    Account: string;
    /** The name of the OpenSearch Service domain. */
    DomainName: string;
}
/** Container for the parameters to the StartElasticsearchServiceSoftwareUpdate operation. Specifies the name of the Elasticsearch domain that you wish to schedule a service software update on. */
export interface StartElasticsearchServiceSoftwareUpdateInput {
    /** The name of the domain that you want to update to the latest service software. */
    DomainName: string;
}
/** Container for the parameters to the UpdateElasticsearchDomain operation. Specifies the type and number of instances in the domain cluster. */
export interface UpdateElasticsearchDomainConfigInput {
    /** The name of the Elasticsearch domain that you are updating. */
    DomainName: string;
    /** IAM access policy as a JSON-formatted string. */
    AccessPolicies?: string;
    /** Modifies the advanced option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Configuration */
    AdvancedOptions?: Record<string, string>;
    /** Specifies advanced security options. */
    AdvancedSecurityOptions?: AdvancedSecurityOptionsInput;
    /** Specifies Auto-Tune options. */
    AutoTuneOptions?: AutoTuneOptions;
    /** Options to specify the Cognito user and identity pools for Kibana authentication. For more information, see Amazon Cognito Authentication for Kibana. */
    CognitoOptions?: CognitoOptions;
    /** Options to specify configuration that will be applied to the domain endpoint. */
    DomainEndpointOptions?: DomainEndpointOptions;
    /** This flag, when set to True, specifies whether the UpdateElasticsearchDomain request should return the results of validation checks without actually applying the change. This flag, when set to True, s */
    DryRun?: boolean;
    /** Specify the type and size of the EBS volume that you want to use. */
    EBSOptions?: EBSOptions;
    /** The type and number of instances to instantiate for the domain cluster. */
    ElasticsearchClusterConfig?: ElasticsearchClusterConfig;
    /** Specifies the Encryption At Rest Options. */
    EncryptionAtRestOptions?: EncryptionAtRestOptions;
    /** Map of LogType and LogPublishingOption, each containing options to publish a given type of Elasticsearch log. */
    LogPublishingOptions?: Record<string, LogPublishingOption>;
    /** Specifies the NodeToNodeEncryptionOptions. */
    NodeToNodeEncryptionOptions?: NodeToNodeEncryptionOptions;
    /** Option to set the time, in UTC format, for the daily automated snapshot. Default value is 0 hours. */
    SnapshotOptions?: SnapshotOptions;
    /** Options to specify the subnets and security groups for VPC endpoint. For more information, see Creating a VPC in VPC Endpoints for Amazon Elasticsearch Service Domains */
    VPCOptions?: VPCOptions;
}
/** Container for request parameters to UpdatePackage operation. */
export interface UpdatePackageInput {
    /** Unique identifier for the package. */
    PackageID: string;
    PackageSource: PackageSource;
    /** An info message for the new version which will be shown as part of GetPackageVersionHistoryResponse. */
    CommitMessage?: string;
    /** New description of the package. */
    PackageDescription?: string;
}
/** Modifies an Amazon OpenSearch Service-managed interface VPC endpoint. */
export interface UpdateVpcEndpointInput {
    /** Unique identifier of the VPC endpoint to be updated. */
    VpcEndpointId: string;
    /** The security groups and/or subnets to add, remove, or modify. */
    VpcOptions: VPCOptions;
}
/** Container for request parameters to UpgradeElasticsearchDomain operation. */
export interface UpgradeElasticsearchDomainInput {
    DomainName: string;
    /** The version of Elasticsearch that you intend to upgrade the domain to. */
    TargetVersion: string;
    /** This flag, when set to True, indicates that an Upgrade Eligibility Check needs to be performed. This will not actually perform the Upgrade. */
    PerformCheckOnly?: boolean;
}
/** Elasticsearch Service service binding for Step Functions SDK integrations. */
export declare class ElasticsearchService {
    constructor();
    acceptInboundCrossClusterSearchConnection<T>(params: AcceptInboundCrossClusterSearchConnectionInput): Promise<T>;
    addTags<T>(params: AddTagsInput): Promise<T>;
    associatePackage<T>(params: AssociatePackageInput): Promise<T>;
    authorizeVpcEndpointAccess<T>(params: AuthorizeVpcEndpointAccessInput): Promise<T>;
    cancelDomainConfigChange<T>(params: CancelDomainConfigChangeInput): Promise<T>;
    cancelElasticsearchServiceSoftwareUpdate<T>(params: CancelElasticsearchServiceSoftwareUpdateInput): Promise<T>;
    createElasticsearchDomain<T>(params: CreateElasticsearchDomainInput): Promise<T>;
    createOutboundCrossClusterSearchConnection<T>(params: CreateOutboundCrossClusterSearchConnectionInput): Promise<T>;
    createPackage<T>(params: CreatePackageInput): Promise<T>;
    createVpcEndpoint<T>(params: CreateVpcEndpointInput): Promise<T>;
    deleteElasticsearchDomain<T>(params: DeleteElasticsearchDomainInput): Promise<T>;
    deleteElasticsearchServiceRole<T>(): Promise<T>;
    deleteInboundCrossClusterSearchConnection<T>(params: DeleteInboundCrossClusterSearchConnectionInput): Promise<T>;
    deleteOutboundCrossClusterSearchConnection<T>(params: DeleteOutboundCrossClusterSearchConnectionInput): Promise<T>;
    deletePackage<T>(params: DeletePackageInput): Promise<T>;
    deleteVpcEndpoint<T>(params: DeleteVpcEndpointInput): Promise<T>;
    describeDomainAutoTunes<T>(params: DescribeDomainAutoTunesInput): Promise<T>;
    describeDomainChangeProgress<T>(params: DescribeDomainChangeProgressInput): Promise<T>;
    describeElasticsearchDomain<T>(params: DescribeElasticsearchDomainInput): Promise<T>;
    describeElasticsearchDomainConfig<T>(params: DescribeElasticsearchDomainConfigInput): Promise<T>;
    describeElasticsearchDomains<T>(params: DescribeElasticsearchDomainsInput): Promise<T>;
    describeElasticsearchInstanceTypeLimits<T>(params: DescribeElasticsearchInstanceTypeLimitsInput): Promise<T>;
    describeInboundCrossClusterSearchConnections<T>(params: DescribeInboundCrossClusterSearchConnectionsInput): Promise<T>;
    describeOutboundCrossClusterSearchConnections<T>(params: DescribeOutboundCrossClusterSearchConnectionsInput): Promise<T>;
    describePackages<T>(params: DescribePackagesInput): Promise<T>;
    describeReservedElasticsearchInstanceOfferings<T>(params: DescribeReservedElasticsearchInstanceOfferingsInput): Promise<T>;
    describeReservedElasticsearchInstances<T>(params: DescribeReservedElasticsearchInstancesInput): Promise<T>;
    describeVpcEndpoints<T>(params: DescribeVpcEndpointsInput): Promise<T>;
    dissociatePackage<T>(params: DissociatePackageInput): Promise<T>;
    getCompatibleElasticsearchVersions<T>(params: GetCompatibleElasticsearchVersionsInput): Promise<T>;
    getPackageVersionHistory<T>(params: GetPackageVersionHistoryInput): Promise<T>;
    getUpgradeHistory<T>(params: GetUpgradeHistoryInput): Promise<T>;
    getUpgradeStatus<T>(params: GetUpgradeStatusInput): Promise<T>;
    listDomainNames<T>(params: ListDomainNamesInput): Promise<T>;
    listDomainsForPackage<T>(params: ListDomainsForPackageInput): Promise<T>;
    listElasticsearchInstanceTypes<T>(params: ListElasticsearchInstanceTypesInput): Promise<T>;
    listElasticsearchVersions<T>(params: ListElasticsearchVersionsInput): Promise<T>;
    listPackagesForDomain<T>(params: ListPackagesForDomainInput): Promise<T>;
    listTags<T>(params: ListTagsInput): Promise<T>;
    listVpcEndpointAccess<T>(params: ListVpcEndpointAccessInput): Promise<T>;
    listVpcEndpoints<T>(params: ListVpcEndpointsInput): Promise<T>;
    listVpcEndpointsForDomain<T>(params: ListVpcEndpointsForDomainInput): Promise<T>;
    purchaseReservedElasticsearchInstanceOffering<T>(params: PurchaseReservedElasticsearchInstanceOfferingInput): Promise<T>;
    rejectInboundCrossClusterSearchConnection<T>(params: RejectInboundCrossClusterSearchConnectionInput): Promise<T>;
    removeTags<T>(params: RemoveTagsInput): Promise<T>;
    revokeVpcEndpointAccess<T>(params: RevokeVpcEndpointAccessInput): Promise<T>;
    startElasticsearchServiceSoftwareUpdate<T>(params: StartElasticsearchServiceSoftwareUpdateInput): Promise<T>;
    updateElasticsearchDomainConfig<T>(params: UpdateElasticsearchDomainConfigInput): Promise<T>;
    updatePackage<T>(params: UpdatePackageInput): Promise<T>;
    updateVpcEndpoint<T>(params: UpdateVpcEndpointInput): Promise<T>;
    upgradeElasticsearchDomain<T>(params: UpgradeElasticsearchDomainInput): Promise<T>;
}
//# sourceMappingURL=ElasticsearchService.d.ts.map