-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon Elasticsearch Service SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.ElasticSearch</a> or <a>the AWS documentation</a>
--   to get started.
@package amazonka-elasticsearch
@version 1.6.0


module Network.AWS.ElasticSearch.Types

-- | API version <tt>2015-01-01</tt> of the Amazon Elasticsearch Service
--   SDK configuration.
elasticSearch :: Service

-- | An exception for missing / invalid input fields. Gives http status
--   code of 400.
_ValidationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An exception for creating a resource that already exists. Gives http
--   status code of 400.
_ResourceAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An error occurred while processing the request.
_BaseException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An error occured because the client wanted to access a not supported
--   operation. Gives http status code of 409.
_DisabledOperationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The request processing has failed because of an unknown error,
--   exception or failure (the failure is internal to the service) . Gives
--   http status code of 500.
_InternalException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An exception for trying to create or access sub-resource that is
--   either invalid or not supported. Gives http status code of 409.
_InvalidTypeException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An exception for accessing or deleting a resource that does not exist.
--   Gives http status code of 400.
_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An exception for trying to create more than allowed resources or
--   sub-resources. Gives http status code of 409.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data ESPartitionInstanceType
C4_2XLarge_Elasticsearch :: ESPartitionInstanceType
C4_4XLarge_Elasticsearch :: ESPartitionInstanceType
C4_8XLarge_Elasticsearch :: ESPartitionInstanceType
C4_Large_Elasticsearch :: ESPartitionInstanceType
C4_XLarge_Elasticsearch :: ESPartitionInstanceType
D2_2XLarge_Elasticsearch :: ESPartitionInstanceType
D2_4XLarge_Elasticsearch :: ESPartitionInstanceType
D2_8XLarge_Elasticsearch :: ESPartitionInstanceType
D2_XLarge_Elasticsearch :: ESPartitionInstanceType
I2_2XLarge_Elasticsearch :: ESPartitionInstanceType
I2_XLarge_Elasticsearch :: ESPartitionInstanceType
I3_16XLarge_Elasticsearch :: ESPartitionInstanceType
I3_2XLarge_Elasticsearch :: ESPartitionInstanceType
I3_4XLarge_Elasticsearch :: ESPartitionInstanceType
I3_8XLarge_Elasticsearch :: ESPartitionInstanceType
I3_Large_Elasticsearch :: ESPartitionInstanceType
I3_XLarge_Elasticsearch :: ESPartitionInstanceType
M3_2XLarge_Elasticsearch :: ESPartitionInstanceType
M3_Large_Elasticsearch :: ESPartitionInstanceType
M3_Medium_Elasticsearch :: ESPartitionInstanceType
M3_XLarge_Elasticsearch :: ESPartitionInstanceType
M4_10XLarge_Elasticsearch :: ESPartitionInstanceType
M4_2XLarge_Elasticsearch :: ESPartitionInstanceType
M4_4XLarge_Elasticsearch :: ESPartitionInstanceType
M4_Large_Elasticsearch :: ESPartitionInstanceType
M4_XLarge_Elasticsearch :: ESPartitionInstanceType
R3_2XLarge_Elasticsearch :: ESPartitionInstanceType
R3_4XLarge_Elasticsearch :: ESPartitionInstanceType
R3_8XLarge_Elasticsearch :: ESPartitionInstanceType
R3_Large_Elasticsearch :: ESPartitionInstanceType
R3_XLarge_Elasticsearch :: ESPartitionInstanceType
R4_16XLarge_Elasticsearch :: ESPartitionInstanceType
R4_2XLarge_Elasticsearch :: ESPartitionInstanceType
R4_4XLarge_Elasticsearch :: ESPartitionInstanceType
R4_8XLarge_Elasticsearch :: ESPartitionInstanceType
R4_Large_Elasticsearch :: ESPartitionInstanceType
R4_XLarge_Elasticsearch :: ESPartitionInstanceType
T2_Medium_Elasticsearch :: ESPartitionInstanceType
T2_Micro_Elasticsearch :: ESPartitionInstanceType
T2_Small_Elasticsearch :: ESPartitionInstanceType

-- | Type of Log File, it can be one of the following: * INDEX_SLOW_LOGS:
--   Index slow logs contains insert requests that took more time than
--   configured index query log threshold to execute. * SEARCH_SLOW_LOGS:
--   Search slow logs contains search queries that took more time than
--   configured search query log threshold to execute.
data LogType
IndexSlowLogs :: LogType
SearchSlowLogs :: LogType

-- | The state of a requested change. One of the following:
--   
--   <ul>
--   <li>Processing: The request change is still in-process. * Active: The
--   request change is processed and deployed to the Elasticsearch
--   domain.</li>
--   </ul>
data OptionState
Active :: OptionState
Processing :: OptionState
RequiresIndexDocuments :: OptionState
data ReservedElasticsearchInstancePaymentOption
AllUpfront :: ReservedElasticsearchInstancePaymentOption
NoUpfront :: ReservedElasticsearchInstancePaymentOption
PartialUpfront :: ReservedElasticsearchInstancePaymentOption

-- | The type of EBS volume, standard, gp2, or io1. See <a>Configuring
--   EBS-based Storage</a> for more information.
data VolumeType
GP2 :: VolumeType
IO1 :: VolumeType
Standard :: VolumeType

-- | The configured access rules for the domain's document and search
--   endpoints, and the current status of those rules.
--   
--   <i>See:</i> <a>accessPoliciesStatus</a> smart constructor.
data AccessPoliciesStatus

-- | Creates a value of <a>AccessPoliciesStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>apsOptions</a> - The access policy configured for the
--   Elasticsearch domain. Access policies may be resource-based, IP-based,
--   or IAM-based. See <a>Configuring Access Policies</a> for more
--   information.</li>
--   <li><a>apsStatus</a> - The status of the access policy for the
--   Elasticsearch domain. See <tt>OptionStatus</tt> for the status
--   information that's included.</li>
--   </ul>
accessPoliciesStatus :: Text -> OptionStatus -> AccessPoliciesStatus

-- | The access policy configured for the Elasticsearch domain. Access
--   policies may be resource-based, IP-based, or IAM-based. See
--   <a>Configuring Access Policies</a> for more information.
apsOptions :: Lens' AccessPoliciesStatus Text

-- | The status of the access policy for the Elasticsearch domain. See
--   <tt>OptionStatus</tt> for the status information that's included.
apsStatus :: Lens' AccessPoliciesStatus OptionStatus

-- | List of limits that are specific to a given InstanceType and for each
--   of it's <tt><tt>InstanceRole</tt> </tt> .
--   
--   <i>See:</i> <a>additionalLimit</a> smart constructor.
data AdditionalLimit

-- | Creates a value of <a>AdditionalLimit</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>alLimitName</a> - Name of Additional Limit is specific to a
--   given InstanceType and for each of it's <tt><tt>InstanceRole</tt>
--   </tt> etc. Attributes and their details: *
--   MaximumNumberOfDataNodesSupportedThis attribute will be present in
--   Master node only to specify how much data nodes upto which given
--   <tt><a>ESPartitionInstanceType</a> </tt> can support as master node. *
--   MaximumNumberOfDataNodesWithoutMasterNodeThis attribute will be
--   present in Data node only to specify how much data nodes of given
--   <tt><a>ESPartitionInstanceType</a> </tt> upto which you don't need any
--   master nodes to govern them.</li>
--   <li><a>alLimitValues</a> - Value for given
--   <tt>'AdditionalLimit$LimitName' </tt> .</li>
--   </ul>
additionalLimit :: AdditionalLimit

-- | Name of Additional Limit is specific to a given InstanceType and for
--   each of it's <tt><tt>InstanceRole</tt> </tt> etc. Attributes and their
--   details: * MaximumNumberOfDataNodesSupportedThis attribute will be
--   present in Master node only to specify how much data nodes upto which
--   given <tt><a>ESPartitionInstanceType</a> </tt> can support as master
--   node. * MaximumNumberOfDataNodesWithoutMasterNodeThis attribute will
--   be present in Data node only to specify how much data nodes of given
--   <tt><a>ESPartitionInstanceType</a> </tt> upto which you don't need any
--   master nodes to govern them.
alLimitName :: Lens' AdditionalLimit (Maybe Text)

-- | Value for given <tt>'AdditionalLimit$LimitName' </tt> .
alLimitValues :: Lens' AdditionalLimit [Text]

-- | Status of the advanced options for the specified Elasticsearch domain.
--   Currently, the following advanced options are available:
--   
--   <ul>
--   <li>Option to allow references to indices in an HTTP request body.
--   Must be <tt>false</tt> when configuring access to individual
--   sub-resources. By default, the value is <tt>true</tt> . See
--   <a>Configuration Advanced Options</a> for more information. * Option
--   to specify the percentage of heap space that is allocated to field
--   data. By default, this setting is unbounded.</li>
--   </ul>
--   
--   For more information, see <a>Configuring Advanced Options</a> .
--   
--   <i>See:</i> <a>advancedOptionsStatus</a> smart constructor.
data AdvancedOptionsStatus

-- | Creates a value of <a>AdvancedOptionsStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aosOptions</a> - Specifies the status of advanced options for
--   the specified Elasticsearch domain.</li>
--   <li><a>aosStatus</a> - Specifies the status of <tt>OptionStatus</tt>
--   for advanced options for the specified Elasticsearch domain.</li>
--   </ul>
advancedOptionsStatus :: OptionStatus -> AdvancedOptionsStatus

-- | Specifies the status of advanced options for the specified
--   Elasticsearch domain.
aosOptions :: Lens' AdvancedOptionsStatus (HashMap Text Text)

-- | Specifies the status of <tt>OptionStatus</tt> for advanced options for
--   the specified Elasticsearch domain.
aosStatus :: Lens' AdvancedOptionsStatus OptionStatus

-- | Options to specify the Cognito user and identity pools for Kibana
--   authentication. For more information, see <a>Amazon Cognito
--   Authentication for Kibana</a> .
--   
--   <i>See:</i> <a>cognitoOptions</a> smart constructor.
data CognitoOptions

-- | Creates a value of <a>CognitoOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coIdentityPoolId</a> - Specifies the Cognito identity pool ID
--   for Kibana authentication.</li>
--   <li><a>coEnabled</a> - Specifies the option to enable Cognito for
--   Kibana authentication.</li>
--   <li><a>coUserPoolId</a> - Specifies the Cognito user pool ID for
--   Kibana authentication.</li>
--   <li><a>coRoleARN</a> - Specifies the role ARN that provides
--   Elasticsearch permissions for accessing Cognito resources.</li>
--   </ul>
cognitoOptions :: CognitoOptions

-- | Specifies the Cognito identity pool ID for Kibana authentication.
coIdentityPoolId :: Lens' CognitoOptions (Maybe Text)

-- | Specifies the option to enable Cognito for Kibana authentication.
coEnabled :: Lens' CognitoOptions (Maybe Bool)

-- | Specifies the Cognito user pool ID for Kibana authentication.
coUserPoolId :: Lens' CognitoOptions (Maybe Text)

-- | Specifies the role ARN that provides Elasticsearch permissions for
--   accessing Cognito resources.
coRoleARN :: Lens' CognitoOptions (Maybe Text)

-- | Status of the Cognito options for the specified Elasticsearch domain.
--   
--   <i>See:</i> <a>cognitoOptionsStatus</a> smart constructor.
data CognitoOptionsStatus

-- | Creates a value of <a>CognitoOptionsStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cosOptions</a> - Specifies the Cognito options for the
--   specified Elasticsearch domain.</li>
--   <li><a>cosStatus</a> - Specifies the status of the Cognito options for
--   the specified Elasticsearch domain.</li>
--   </ul>
cognitoOptionsStatus :: CognitoOptions -> OptionStatus -> CognitoOptionsStatus

-- | Specifies the Cognito options for the specified Elasticsearch domain.
cosOptions :: Lens' CognitoOptionsStatus CognitoOptions

-- | Specifies the status of the Cognito options for the specified
--   Elasticsearch domain.
cosStatus :: Lens' CognitoOptionsStatus OptionStatus

-- | <i>See:</i> <a>domainInfo</a> smart constructor.
data DomainInfo

-- | Creates a value of <a>DomainInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diDomainName</a> - Specifies the <tt>DomainName</tt> .</li>
--   </ul>
domainInfo :: DomainInfo

-- | Specifies the <tt>DomainName</tt> .
diDomainName :: Lens' DomainInfo (Maybe Text)

-- | Options to enable, disable, and specify the properties of EBS storage
--   volumes. For more information, see <a>Configuring EBS-based
--   Storage</a> .
--   
--   <i>See:</i> <a>ebsOptions</a> smart constructor.
data EBSOptions

-- | Creates a value of <a>EBSOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eoVolumeSize</a> - Integer to specify the size of an EBS
--   volume.</li>
--   <li><a>eoIOPS</a> - Specifies the IOPD for a Provisioned IOPS EBS
--   volume (SSD).</li>
--   <li><a>eoVolumeType</a> - Specifies the volume type for EBS-based
--   storage.</li>
--   <li><a>eoEBSEnabled</a> - Specifies whether EBS-based storage is
--   enabled.</li>
--   </ul>
ebsOptions :: EBSOptions

-- | Integer to specify the size of an EBS volume.
eoVolumeSize :: Lens' EBSOptions (Maybe Int)

-- | Specifies the IOPD for a Provisioned IOPS EBS volume (SSD).
eoIOPS :: Lens' EBSOptions (Maybe Int)

-- | Specifies the volume type for EBS-based storage.
eoVolumeType :: Lens' EBSOptions (Maybe VolumeType)

-- | Specifies whether EBS-based storage is enabled.
eoEBSEnabled :: Lens' EBSOptions (Maybe Bool)

-- | Status of the EBS options for the specified Elasticsearch domain.
--   
--   <i>See:</i> <a>ebsOptionsStatus</a> smart constructor.
data EBSOptionsStatus

-- | Creates a value of <a>EBSOptionsStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eosOptions</a> - Specifies the EBS options for the specified
--   Elasticsearch domain.</li>
--   <li><a>eosStatus</a> - Specifies the status of the EBS options for the
--   specified Elasticsearch domain.</li>
--   </ul>
ebsOptionsStatus :: EBSOptions -> OptionStatus -> EBSOptionsStatus

-- | Specifies the EBS options for the specified Elasticsearch domain.
eosOptions :: Lens' EBSOptionsStatus EBSOptions

-- | Specifies the status of the EBS options for the specified
--   Elasticsearch domain.
eosStatus :: Lens' EBSOptionsStatus OptionStatus

-- | Specifies the configuration for the domain cluster, such as the type
--   and number of instances.
--   
--   <i>See:</i> <a>elasticsearchClusterConfig</a> smart constructor.
data ElasticsearchClusterConfig

-- | Creates a value of <a>ElasticsearchClusterConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eccDedicatedMasterCount</a> - Total number of dedicated master
--   nodes, active and on standby, for the cluster.</li>
--   <li><a>eccDedicatedMasterType</a> - The instance type for a dedicated
--   master node.</li>
--   <li><a>eccDedicatedMasterEnabled</a> - A boolean value to indicate
--   whether a dedicated master node is enabled. See <a>About Dedicated
--   Master Nodes</a> for more information.</li>
--   <li><a>eccInstanceCount</a> - The number of instances in the specified
--   domain cluster.</li>
--   <li><a>eccZoneAwarenessEnabled</a> - A boolean value to indicate
--   whether zone awareness is enabled. See <a>About Zone Awareness</a> for
--   more information.</li>
--   <li><a>eccInstanceType</a> - The instance type for an Elasticsearch
--   cluster.</li>
--   </ul>
elasticsearchClusterConfig :: ElasticsearchClusterConfig

-- | Total number of dedicated master nodes, active and on standby, for the
--   cluster.
eccDedicatedMasterCount :: Lens' ElasticsearchClusterConfig (Maybe Int)

-- | The instance type for a dedicated master node.
eccDedicatedMasterType :: Lens' ElasticsearchClusterConfig (Maybe ESPartitionInstanceType)

-- | A boolean value to indicate whether a dedicated master node is
--   enabled. See <a>About Dedicated Master Nodes</a> for more information.
eccDedicatedMasterEnabled :: Lens' ElasticsearchClusterConfig (Maybe Bool)

-- | The number of instances in the specified domain cluster.
eccInstanceCount :: Lens' ElasticsearchClusterConfig (Maybe Int)

-- | A boolean value to indicate whether zone awareness is enabled. See
--   <a>About Zone Awareness</a> for more information.
eccZoneAwarenessEnabled :: Lens' ElasticsearchClusterConfig (Maybe Bool)

-- | The instance type for an Elasticsearch cluster.
eccInstanceType :: Lens' ElasticsearchClusterConfig (Maybe ESPartitionInstanceType)

-- | Specifies the configuration status for the specified Elasticsearch
--   domain.
--   
--   <i>See:</i> <a>elasticsearchClusterConfigStatus</a> smart constructor.
data ElasticsearchClusterConfigStatus

-- | Creates a value of <a>ElasticsearchClusterConfigStatus</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eccsOptions</a> - Specifies the cluster configuration for the
--   specified Elasticsearch domain.</li>
--   <li><a>eccsStatus</a> - Specifies the status of the configuration for
--   the specified Elasticsearch domain.</li>
--   </ul>
elasticsearchClusterConfigStatus :: ElasticsearchClusterConfig -> OptionStatus -> ElasticsearchClusterConfigStatus

-- | Specifies the cluster configuration for the specified Elasticsearch
--   domain.
eccsOptions :: Lens' ElasticsearchClusterConfigStatus ElasticsearchClusterConfig

-- | Specifies the status of the configuration for the specified
--   Elasticsearch domain.
eccsStatus :: Lens' ElasticsearchClusterConfigStatus OptionStatus

-- | The configuration of an Elasticsearch domain.
--   
--   <i>See:</i> <a>elasticsearchDomainConfig</a> smart constructor.
data ElasticsearchDomainConfig

-- | Creates a value of <a>ElasticsearchDomainConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edcEBSOptions</a> - Specifies the <tt>EBSOptions</tt> for the
--   Elasticsearch domain.</li>
--   <li><a>edcAccessPolicies</a> - IAM access policy as a JSON-formatted
--   string.</li>
--   <li><a>edcLogPublishingOptions</a> - Log publishing options for the
--   given domain.</li>
--   <li><a>edcElasticsearchClusterConfig</a> - Specifies the
--   <tt>ElasticsearchClusterConfig</tt> for the Elasticsearch domain.</li>
--   <li><a>edcSnapshotOptions</a> - Specifies the <tt>SnapshotOptions</tt>
--   for the Elasticsearch domain.</li>
--   <li><a>edcCognitoOptions</a> - The <tt>CognitoOptions</tt> for the
--   specified domain. For more information, see <a>Amazon Cognito
--   Authentication for Kibana</a> .</li>
--   <li><a>edcEncryptionAtRestOptions</a> - Specifies the
--   <tt>EncryptionAtRestOptions</tt> for the Elasticsearch domain.</li>
--   <li><a>edcVPCOptions</a> - The <tt>VPCOptions</tt> for the specified
--   domain. For more information, see <a>VPC Endpoints for Amazon
--   Elasticsearch Service Domains</a> .</li>
--   <li><a>edcAdvancedOptions</a> - Specifies the <tt>AdvancedOptions</tt>
--   for the domain. See <a>Configuring Advanced Options</a> for more
--   information.</li>
--   <li><a>edcElasticsearchVersion</a> - String of format X.Y to specify
--   version for the Elasticsearch domain.</li>
--   </ul>
elasticsearchDomainConfig :: ElasticsearchDomainConfig

-- | Specifies the <tt>EBSOptions</tt> for the Elasticsearch domain.
edcEBSOptions :: Lens' ElasticsearchDomainConfig (Maybe EBSOptionsStatus)

-- | IAM access policy as a JSON-formatted string.
edcAccessPolicies :: Lens' ElasticsearchDomainConfig (Maybe AccessPoliciesStatus)

-- | Log publishing options for the given domain.
edcLogPublishingOptions :: Lens' ElasticsearchDomainConfig (Maybe LogPublishingOptionsStatus)

-- | Specifies the <tt>ElasticsearchClusterConfig</tt> for the
--   Elasticsearch domain.
edcElasticsearchClusterConfig :: Lens' ElasticsearchDomainConfig (Maybe ElasticsearchClusterConfigStatus)

-- | Specifies the <tt>SnapshotOptions</tt> for the Elasticsearch domain.
edcSnapshotOptions :: Lens' ElasticsearchDomainConfig (Maybe SnapshotOptionsStatus)

-- | The <tt>CognitoOptions</tt> for the specified domain. For more
--   information, see <a>Amazon Cognito Authentication for Kibana</a> .
edcCognitoOptions :: Lens' ElasticsearchDomainConfig (Maybe CognitoOptionsStatus)

-- | Specifies the <tt>EncryptionAtRestOptions</tt> for the Elasticsearch
--   domain.
edcEncryptionAtRestOptions :: Lens' ElasticsearchDomainConfig (Maybe EncryptionAtRestOptionsStatus)

-- | The <tt>VPCOptions</tt> for the specified domain. For more
--   information, see <a>VPC Endpoints for Amazon Elasticsearch Service
--   Domains</a> .
edcVPCOptions :: Lens' ElasticsearchDomainConfig (Maybe VPCDerivedInfoStatus)

-- | Specifies the <tt>AdvancedOptions</tt> for the domain. See
--   <a>Configuring Advanced Options</a> for more information.
edcAdvancedOptions :: Lens' ElasticsearchDomainConfig (Maybe AdvancedOptionsStatus)

-- | String of format X.Y to specify version for the Elasticsearch domain.
edcElasticsearchVersion :: Lens' ElasticsearchDomainConfig (Maybe ElasticsearchVersionStatus)

-- | The current status of an Elasticsearch domain.
--   
--   <i>See:</i> <a>elasticsearchDomainStatus</a> smart constructor.
data ElasticsearchDomainStatus

-- | Creates a value of <a>ElasticsearchDomainStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edsEBSOptions</a> - The <tt>EBSOptions</tt> for the specified
--   domain. See <a>Configuring EBS-based Storage</a> for more
--   information.</li>
--   <li><a>edsAccessPolicies</a> - IAM access policy as a JSON-formatted
--   string.</li>
--   <li><a>edsLogPublishingOptions</a> - Log publishing options for the
--   given domain.</li>
--   <li><a>edsCreated</a> - The domain creation status. <tt>True</tt> if
--   the creation of an Elasticsearch domain is complete. <tt>False</tt> if
--   domain creation is still in progress.</li>
--   <li><a>edsSnapshotOptions</a> - Specifies the status of the
--   <tt>SnapshotOptions</tt></li>
--   <li><a>edsCognitoOptions</a> - The <tt>CognitoOptions</tt> for the
--   specified domain. For more information, see <a>Amazon Cognito
--   Authentication for Kibana</a> .</li>
--   <li><a>edsEncryptionAtRestOptions</a> - Specifies the status of the
--   <tt>EncryptionAtRestOptions</tt> .</li>
--   <li><a>edsDeleted</a> - The domain deletion status. <tt>True</tt> if a
--   delete request has been received for the domain but resource cleanup
--   is still in progress. <tt>False</tt> if the domain has not been
--   deleted. Once domain deletion is complete, the status of the domain is
--   no longer returned.</li>
--   <li><a>edsVPCOptions</a> - The <tt>VPCOptions</tt> for the specified
--   domain. For more information, see <a>VPC Endpoints for Amazon
--   Elasticsearch Service Domains</a> .</li>
--   <li><a>edsEndpoints</a> - Map containing the Elasticsearch domain
--   endpoints used to submit index and search requests. Example <tt>key,
--   value</tt> :
--   <tt><tt>vpc</tt>,'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'</tt>
--   .</li>
--   <li><a>edsProcessing</a> - The status of the Elasticsearch domain
--   configuration. <tt>True</tt> if Amazon Elasticsearch Service is
--   processing configuration changes. <tt>False</tt> if the configuration
--   is active.</li>
--   <li><a>edsEndpoint</a> - The Elasticsearch domain endpoint that you
--   use to submit index and search requests.</li>
--   <li><a>edsAdvancedOptions</a> - Specifies the status of the
--   <tt>AdvancedOptions</tt></li>
--   <li><a>edsElasticsearchVersion</a> - Undocumented member.</li>
--   <li><a>edsDomainId</a> - The unique identifier for the specified
--   Elasticsearch domain.</li>
--   <li><a>edsDomainName</a> - The name of an Elasticsearch domain. Domain
--   names are unique across the domains owned by an account within an AWS
--   region. Domain names start with a letter or number and can contain the
--   following characters: a-z (lowercase), 0-9, and - (hyphen).</li>
--   <li><a>edsARN</a> - The Amazon resource name (ARN) of an Elasticsearch
--   domain. See <a>Identifiers for IAM Entities</a> in <i>Using AWS
--   Identity and Access Management</i> for more information.</li>
--   <li><a>edsElasticsearchClusterConfig</a> - The type and number of
--   instances in the domain cluster.</li>
--   </ul>
elasticsearchDomainStatus :: Text -> Text -> Text -> ElasticsearchClusterConfig -> ElasticsearchDomainStatus

-- | The <tt>EBSOptions</tt> for the specified domain. See <a>Configuring
--   EBS-based Storage</a> for more information.
edsEBSOptions :: Lens' ElasticsearchDomainStatus (Maybe EBSOptions)

-- | IAM access policy as a JSON-formatted string.
edsAccessPolicies :: Lens' ElasticsearchDomainStatus (Maybe Text)

-- | Log publishing options for the given domain.
edsLogPublishingOptions :: Lens' ElasticsearchDomainStatus (HashMap LogType LogPublishingOption)

-- | The domain creation status. <tt>True</tt> if the creation of an
--   Elasticsearch domain is complete. <tt>False</tt> if domain creation is
--   still in progress.
edsCreated :: Lens' ElasticsearchDomainStatus (Maybe Bool)

-- | Specifies the status of the <tt>SnapshotOptions</tt>
edsSnapshotOptions :: Lens' ElasticsearchDomainStatus (Maybe SnapshotOptions)

-- | The <tt>CognitoOptions</tt> for the specified domain. For more
--   information, see <a>Amazon Cognito Authentication for Kibana</a> .
edsCognitoOptions :: Lens' ElasticsearchDomainStatus (Maybe CognitoOptions)

-- | Specifies the status of the <tt>EncryptionAtRestOptions</tt> .
edsEncryptionAtRestOptions :: Lens' ElasticsearchDomainStatus (Maybe EncryptionAtRestOptions)

-- | The domain deletion status. <tt>True</tt> if a delete request has been
--   received for the domain but resource cleanup is still in progress.
--   <tt>False</tt> if the domain has not been deleted. Once domain
--   deletion is complete, the status of the domain is no longer returned.
edsDeleted :: Lens' ElasticsearchDomainStatus (Maybe Bool)

-- | The <tt>VPCOptions</tt> for the specified domain. For more
--   information, see <a>VPC Endpoints for Amazon Elasticsearch Service
--   Domains</a> .
edsVPCOptions :: Lens' ElasticsearchDomainStatus (Maybe VPCDerivedInfo)

-- | Map containing the Elasticsearch domain endpoints used to submit index
--   and search requests. Example <tt>key, value</tt> :
--   <tt><tt>vpc</tt>,'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'</tt>
--   .
edsEndpoints :: Lens' ElasticsearchDomainStatus (HashMap Text Text)

-- | The status of the Elasticsearch domain configuration. <tt>True</tt> if
--   Amazon Elasticsearch Service is processing configuration changes.
--   <tt>False</tt> if the configuration is active.
edsProcessing :: Lens' ElasticsearchDomainStatus (Maybe Bool)

-- | The Elasticsearch domain endpoint that you use to submit index and
--   search requests.
edsEndpoint :: Lens' ElasticsearchDomainStatus (Maybe Text)

-- | Specifies the status of the <tt>AdvancedOptions</tt>
edsAdvancedOptions :: Lens' ElasticsearchDomainStatus (HashMap Text Text)

-- | Undocumented member.
edsElasticsearchVersion :: Lens' ElasticsearchDomainStatus (Maybe Text)

-- | The unique identifier for the specified Elasticsearch domain.
edsDomainId :: Lens' ElasticsearchDomainStatus Text

-- | The name of an Elasticsearch domain. Domain names are unique across
--   the domains owned by an account within an AWS region. Domain names
--   start with a letter or number and can contain the following
--   characters: a-z (lowercase), 0-9, and - (hyphen).
edsDomainName :: Lens' ElasticsearchDomainStatus Text

-- | The Amazon resource name (ARN) of an Elasticsearch domain. See
--   <a>Identifiers for IAM Entities</a> in <i>Using AWS Identity and
--   Access Management</i> for more information.
edsARN :: Lens' ElasticsearchDomainStatus Text

-- | The type and number of instances in the domain cluster.
edsElasticsearchClusterConfig :: Lens' ElasticsearchDomainStatus ElasticsearchClusterConfig

-- | Status of the Elasticsearch version options for the specified
--   Elasticsearch domain.
--   
--   <i>See:</i> <a>elasticsearchVersionStatus</a> smart constructor.
data ElasticsearchVersionStatus

-- | Creates a value of <a>ElasticsearchVersionStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>evsOptions</a> - Specifies the Elasticsearch version for the
--   specified Elasticsearch domain.</li>
--   <li><a>evsStatus</a> - Specifies the status of the Elasticsearch
--   version options for the specified Elasticsearch domain.</li>
--   </ul>
elasticsearchVersionStatus :: Text -> OptionStatus -> ElasticsearchVersionStatus

-- | Specifies the Elasticsearch version for the specified Elasticsearch
--   domain.
evsOptions :: Lens' ElasticsearchVersionStatus Text

-- | Specifies the status of the Elasticsearch version options for the
--   specified Elasticsearch domain.
evsStatus :: Lens' ElasticsearchVersionStatus OptionStatus

-- | Specifies the Encryption At Rest Options.
--   
--   <i>See:</i> <a>encryptionAtRestOptions</a> smart constructor.
data EncryptionAtRestOptions

-- | Creates a value of <a>EncryptionAtRestOptions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>earoEnabled</a> - Specifies the option to enable Encryption At
--   Rest.</li>
--   <li><a>earoKMSKeyId</a> - Specifies the KMS Key ID for Encryption At
--   Rest options.</li>
--   </ul>
encryptionAtRestOptions :: EncryptionAtRestOptions

-- | Specifies the option to enable Encryption At Rest.
earoEnabled :: Lens' EncryptionAtRestOptions (Maybe Bool)

-- | Specifies the KMS Key ID for Encryption At Rest options.
earoKMSKeyId :: Lens' EncryptionAtRestOptions (Maybe Text)

-- | Status of the Encryption At Rest options for the specified
--   Elasticsearch domain.
--   
--   <i>See:</i> <a>encryptionAtRestOptionsStatus</a> smart constructor.
data EncryptionAtRestOptionsStatus

-- | Creates a value of <a>EncryptionAtRestOptionsStatus</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>earosOptions</a> - Specifies the Encryption At Rest options for
--   the specified Elasticsearch domain.</li>
--   <li><a>earosStatus</a> - Specifies the status of the Encryption At
--   Rest options for the specified Elasticsearch domain.</li>
--   </ul>
encryptionAtRestOptionsStatus :: EncryptionAtRestOptions -> OptionStatus -> EncryptionAtRestOptionsStatus

-- | Specifies the Encryption At Rest options for the specified
--   Elasticsearch domain.
earosOptions :: Lens' EncryptionAtRestOptionsStatus EncryptionAtRestOptions

-- | Specifies the status of the Encryption At Rest options for the
--   specified Elasticsearch domain.
earosStatus :: Lens' EncryptionAtRestOptionsStatus OptionStatus

-- | InstanceCountLimits represents the limits on number of instances that
--   be created in Amazon Elasticsearch for given InstanceType.
--   
--   <i>See:</i> <a>instanceCountLimits</a> smart constructor.
data InstanceCountLimits

-- | Creates a value of <a>InstanceCountLimits</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iclMaximumInstanceCount</a> - Undocumented member.</li>
--   <li><a>iclMinimumInstanceCount</a> - Undocumented member.</li>
--   </ul>
instanceCountLimits :: InstanceCountLimits

-- | Undocumented member.
iclMaximumInstanceCount :: Lens' InstanceCountLimits (Maybe Int)

-- | Undocumented member.
iclMinimumInstanceCount :: Lens' InstanceCountLimits (Maybe Int)

-- | InstanceLimits represents the list of instance related attributes that
--   are available for given InstanceType.
--   
--   <i>See:</i> <a>instanceLimits</a> smart constructor.
data InstanceLimits

-- | Creates a value of <a>InstanceLimits</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ilInstanceCountLimits</a> - Undocumented member.</li>
--   </ul>
instanceLimits :: InstanceLimits

-- | Undocumented member.
ilInstanceCountLimits :: Lens' InstanceLimits (Maybe InstanceCountLimits)

-- | Limits for given InstanceType and for each of it's role.
--   
--   Limits contains following <tt>'StorageTypes,' </tt>
--   <tt><a>InstanceLimits</a> </tt> and <tt><tt>AdditionalLimits</tt>
--   </tt>
--   
--   <i>See:</i> <a>limits</a> smart constructor.
data Limits

-- | Creates a value of <a>Limits</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lInstanceLimits</a> - Undocumented member.</li>
--   <li><a>lAdditionalLimits</a> - List of additional limits that are
--   specific to a given InstanceType and for each of it's
--   <tt><tt>InstanceRole</tt> </tt> .</li>
--   <li><a>lStorageTypes</a> - StorageType represents the list of storage
--   related types and attributes that are available for given
--   InstanceType.</li>
--   </ul>
limits :: Limits

-- | Undocumented member.
lInstanceLimits :: Lens' Limits (Maybe InstanceLimits)

-- | List of additional limits that are specific to a given InstanceType
--   and for each of it's <tt><tt>InstanceRole</tt> </tt> .
lAdditionalLimits :: Lens' Limits [AdditionalLimit]

-- | StorageType represents the list of storage related types and
--   attributes that are available for given InstanceType.
lStorageTypes :: Lens' Limits [StorageType]

-- | Log Publishing option that is set for given domain.
--   
--   Attributes and their details: * CloudWatchLogsLogGroupArn: ARN of the
--   Cloudwatch log group to which log needs to be published. * Enabled:
--   Whether the log publishing for given log type is enabled or not
--   
--   <i>See:</i> <a>logPublishingOption</a> smart constructor.
data LogPublishingOption

-- | Creates a value of <a>LogPublishingOption</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpoEnabled</a> - Specifies whether given log publishing option
--   is enabled or not.</li>
--   <li><a>lpoCloudWatchLogsLogGroupARN</a> - Undocumented member.</li>
--   </ul>
logPublishingOption :: LogPublishingOption

-- | Specifies whether given log publishing option is enabled or not.
lpoEnabled :: Lens' LogPublishingOption (Maybe Bool)

-- | Undocumented member.
lpoCloudWatchLogsLogGroupARN :: Lens' LogPublishingOption (Maybe Text)

-- | The configured log publishing options for the domain and their current
--   status.
--   
--   <i>See:</i> <a>logPublishingOptionsStatus</a> smart constructor.
data LogPublishingOptionsStatus

-- | Creates a value of <a>LogPublishingOptionsStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lposStatus</a> - The status of the log publishing options for
--   the Elasticsearch domain. See <tt>OptionStatus</tt> for the status
--   information that's included.</li>
--   <li><a>lposOptions</a> - The log publishing options configured for the
--   Elasticsearch domain.</li>
--   </ul>
logPublishingOptionsStatus :: LogPublishingOptionsStatus

-- | The status of the log publishing options for the Elasticsearch domain.
--   See <tt>OptionStatus</tt> for the status information that's included.
lposStatus :: Lens' LogPublishingOptionsStatus (Maybe OptionStatus)

-- | The log publishing options configured for the Elasticsearch domain.
lposOptions :: Lens' LogPublishingOptionsStatus (HashMap LogType LogPublishingOption)

-- | Provides the current status of the entity.
--   
--   <i>See:</i> <a>optionStatus</a> smart constructor.
data OptionStatus

-- | Creates a value of <a>OptionStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>osPendingDeletion</a> - Indicates whether the Elasticsearch
--   domain is being deleted.</li>
--   <li><a>osUpdateVersion</a> - Specifies the latest version for the
--   entity.</li>
--   <li><a>osCreationDate</a> - Timestamp which tells the creation date
--   for the entity.</li>
--   <li><a>osUpdateDate</a> - Timestamp which tells the last updated time
--   for the entity.</li>
--   <li><a>osState</a> - Provides the <tt>OptionState</tt> for the
--   Elasticsearch domain.</li>
--   </ul>
optionStatus :: UTCTime -> UTCTime -> OptionState -> OptionStatus

-- | Indicates whether the Elasticsearch domain is being deleted.
osPendingDeletion :: Lens' OptionStatus (Maybe Bool)

-- | Specifies the latest version for the entity.
osUpdateVersion :: Lens' OptionStatus (Maybe Natural)

-- | Timestamp which tells the creation date for the entity.
osCreationDate :: Lens' OptionStatus UTCTime

-- | Timestamp which tells the last updated time for the entity.
osUpdateDate :: Lens' OptionStatus UTCTime

-- | Provides the <tt>OptionState</tt> for the Elasticsearch domain.
osState :: Lens' OptionStatus OptionState

-- | Contains the specific price and frequency of a recurring charges for a
--   reserved Elasticsearch instance, or for a reserved Elasticsearch
--   instance offering.
--   
--   <i>See:</i> <a>recurringCharge</a> smart constructor.
data RecurringCharge

-- | Creates a value of <a>RecurringCharge</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcRecurringChargeFrequency</a> - The frequency of the recurring
--   charge.</li>
--   <li><a>rcRecurringChargeAmount</a> - The monetary amount of the
--   recurring charge.</li>
--   </ul>
recurringCharge :: RecurringCharge

-- | The frequency of the recurring charge.
rcRecurringChargeFrequency :: Lens' RecurringCharge (Maybe Text)

-- | The monetary amount of the recurring charge.
rcRecurringChargeAmount :: Lens' RecurringCharge (Maybe Double)

-- | Details of a reserved Elasticsearch instance.
--   
--   <i>See:</i> <a>reservedElasticsearchInstance</a> smart constructor.
data ReservedElasticsearchInstance

-- | Creates a value of <a>ReservedElasticsearchInstance</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>reiState</a> - The state of the reserved Elasticsearch
--   instance.</li>
--   <li><a>reiCurrencyCode</a> - The currency code for the reserved
--   Elasticsearch instance offering.</li>
--   <li><a>reiStartTime</a> - The time the reservation started.</li>
--   <li><a>reiReservedElasticsearchInstanceOfferingId</a> - The offering
--   identifier.</li>
--   <li><a>reiReservedElasticsearchInstanceId</a> - The unique identifier
--   for the reservation.</li>
--   <li><a>reiElasticsearchInstanceCount</a> - The number of Elasticsearch
--   instances that have been reserved.</li>
--   <li><a>reiReservationName</a> - The customer-specified identifier to
--   track this reservation.</li>
--   <li><a>reiElasticsearchInstanceType</a> - The Elasticsearch instance
--   type offered by the reserved instance offering.</li>
--   <li><a>reiRecurringCharges</a> - The charge to your account regardless
--   of whether you are creating any domains using the instance
--   offering.</li>
--   <li><a>reiUsagePrice</a> - The rate you are charged for each hour for
--   the domain that is using this reserved instance.</li>
--   <li><a>reiFixedPrice</a> - The upfront fixed charge you will paid to
--   purchase the specific reserved Elasticsearch instance offering.</li>
--   <li><a>reiDuration</a> - The duration, in seconds, for which the
--   Elasticsearch instance is reserved.</li>
--   <li><a>reiPaymentOption</a> - The payment option as defined in the
--   reserved Elasticsearch instance offering.</li>
--   </ul>
reservedElasticsearchInstance :: ReservedElasticsearchInstance

-- | The state of the reserved Elasticsearch instance.
reiState :: Lens' ReservedElasticsearchInstance (Maybe Text)

-- | The currency code for the reserved Elasticsearch instance offering.
reiCurrencyCode :: Lens' ReservedElasticsearchInstance (Maybe Text)

-- | The time the reservation started.
reiStartTime :: Lens' ReservedElasticsearchInstance (Maybe UTCTime)

-- | The offering identifier.
reiReservedElasticsearchInstanceOfferingId :: Lens' ReservedElasticsearchInstance (Maybe Text)

-- | The unique identifier for the reservation.
reiReservedElasticsearchInstanceId :: Lens' ReservedElasticsearchInstance (Maybe Text)

-- | The number of Elasticsearch instances that have been reserved.
reiElasticsearchInstanceCount :: Lens' ReservedElasticsearchInstance (Maybe Int)

-- | The customer-specified identifier to track this reservation.
reiReservationName :: Lens' ReservedElasticsearchInstance (Maybe Text)

-- | The Elasticsearch instance type offered by the reserved instance
--   offering.
reiElasticsearchInstanceType :: Lens' ReservedElasticsearchInstance (Maybe ESPartitionInstanceType)

-- | The charge to your account regardless of whether you are creating any
--   domains using the instance offering.
reiRecurringCharges :: Lens' ReservedElasticsearchInstance [RecurringCharge]

-- | The rate you are charged for each hour for the domain that is using
--   this reserved instance.
reiUsagePrice :: Lens' ReservedElasticsearchInstance (Maybe Double)

-- | The upfront fixed charge you will paid to purchase the specific
--   reserved Elasticsearch instance offering.
reiFixedPrice :: Lens' ReservedElasticsearchInstance (Maybe Double)

-- | The duration, in seconds, for which the Elasticsearch instance is
--   reserved.
reiDuration :: Lens' ReservedElasticsearchInstance (Maybe Int)

-- | The payment option as defined in the reserved Elasticsearch instance
--   offering.
reiPaymentOption :: Lens' ReservedElasticsearchInstance (Maybe ReservedElasticsearchInstancePaymentOption)

-- | Details of a reserved Elasticsearch instance offering.
--   
--   <i>See:</i> <a>reservedElasticsearchInstanceOffering</a> smart
--   constructor.
data ReservedElasticsearchInstanceOffering

-- | Creates a value of <a>ReservedElasticsearchInstanceOffering</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>reioCurrencyCode</a> - The currency code for the reserved
--   Elasticsearch instance offering.</li>
--   <li><a>reioReservedElasticsearchInstanceOfferingId</a> - The
--   Elasticsearch reserved instance offering identifier.</li>
--   <li><a>reioElasticsearchInstanceType</a> - The Elasticsearch instance
--   type offered by the reserved instance offering.</li>
--   <li><a>reioRecurringCharges</a> - The charge to your account
--   regardless of whether you are creating any domains using the instance
--   offering.</li>
--   <li><a>reioUsagePrice</a> - The rate you are charged for each hour the
--   domain that is using the offering is running.</li>
--   <li><a>reioFixedPrice</a> - The upfront fixed charge you will pay to
--   purchase the specific reserved Elasticsearch instance offering.</li>
--   <li><a>reioDuration</a> - The duration, in seconds, for which the
--   offering will reserve the Elasticsearch instance.</li>
--   <li><a>reioPaymentOption</a> - Payment option for the reserved
--   Elasticsearch instance offering</li>
--   </ul>
reservedElasticsearchInstanceOffering :: ReservedElasticsearchInstanceOffering

-- | The currency code for the reserved Elasticsearch instance offering.
reioCurrencyCode :: Lens' ReservedElasticsearchInstanceOffering (Maybe Text)

-- | The Elasticsearch reserved instance offering identifier.
reioReservedElasticsearchInstanceOfferingId :: Lens' ReservedElasticsearchInstanceOffering (Maybe Text)

-- | The Elasticsearch instance type offered by the reserved instance
--   offering.
reioElasticsearchInstanceType :: Lens' ReservedElasticsearchInstanceOffering (Maybe ESPartitionInstanceType)

-- | The charge to your account regardless of whether you are creating any
--   domains using the instance offering.
reioRecurringCharges :: Lens' ReservedElasticsearchInstanceOffering [RecurringCharge]

-- | The rate you are charged for each hour the domain that is using the
--   offering is running.
reioUsagePrice :: Lens' ReservedElasticsearchInstanceOffering (Maybe Double)

-- | The upfront fixed charge you will pay to purchase the specific
--   reserved Elasticsearch instance offering.
reioFixedPrice :: Lens' ReservedElasticsearchInstanceOffering (Maybe Double)

-- | The duration, in seconds, for which the offering will reserve the
--   Elasticsearch instance.
reioDuration :: Lens' ReservedElasticsearchInstanceOffering (Maybe Int)

-- | Payment option for the reserved Elasticsearch instance offering
reioPaymentOption :: Lens' ReservedElasticsearchInstanceOffering (Maybe ReservedElasticsearchInstancePaymentOption)

-- | Specifies the time, in UTC format, when the service takes a daily
--   automated snapshot of the specified Elasticsearch domain. Default
--   value is <tt>0</tt> hours.
--   
--   <i>See:</i> <a>snapshotOptions</a> smart constructor.
data SnapshotOptions

-- | Creates a value of <a>SnapshotOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>soAutomatedSnapshotStartHour</a> - Specifies the time, in UTC
--   format, when the service takes a daily automated snapshot of the
--   specified Elasticsearch domain. Default value is <tt>0</tt>
--   hours.</li>
--   </ul>
snapshotOptions :: SnapshotOptions

-- | Specifies the time, in UTC format, when the service takes a daily
--   automated snapshot of the specified Elasticsearch domain. Default
--   value is <tt>0</tt> hours.
soAutomatedSnapshotStartHour :: Lens' SnapshotOptions (Maybe Int)

-- | Status of a daily automated snapshot.
--   
--   <i>See:</i> <a>snapshotOptionsStatus</a> smart constructor.
data SnapshotOptionsStatus

-- | Creates a value of <a>SnapshotOptionsStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sosOptions</a> - Specifies the daily snapshot options specified
--   for the Elasticsearch domain.</li>
--   <li><a>sosStatus</a> - Specifies the status of a daily automated
--   snapshot.</li>
--   </ul>
snapshotOptionsStatus :: SnapshotOptions -> OptionStatus -> SnapshotOptionsStatus

-- | Specifies the daily snapshot options specified for the Elasticsearch
--   domain.
sosOptions :: Lens' SnapshotOptionsStatus SnapshotOptions

-- | Specifies the status of a daily automated snapshot.
sosStatus :: Lens' SnapshotOptionsStatus OptionStatus

-- | StorageTypes represents the list of storage related types and their
--   attributes that are available for given InstanceType.
--   
--   <i>See:</i> <a>storageType</a> smart constructor.
data StorageType

-- | Creates a value of <a>StorageType</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stStorageTypeLimits</a> - List of limits that are applicable
--   for given storage type.</li>
--   <li><a>stStorageSubTypeName</a> - Undocumented member.</li>
--   <li><a>stStorageTypeName</a> - Undocumented member.</li>
--   </ul>
storageType :: StorageType

-- | List of limits that are applicable for given storage type.
stStorageTypeLimits :: Lens' StorageType [StorageTypeLimit]

-- | Undocumented member.
stStorageSubTypeName :: Lens' StorageType (Maybe Text)

-- | Undocumented member.
stStorageTypeName :: Lens' StorageType (Maybe Text)

-- | Limits that are applicable for given storage type.
--   
--   <i>See:</i> <a>storageTypeLimit</a> smart constructor.
data StorageTypeLimit

-- | Creates a value of <a>StorageTypeLimit</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stlLimitName</a> - Name of storage limits that are applicable
--   for given storage type. If <tt><a>StorageType</a> </tt> is ebs,
--   following storage options are applicable * MinimumVolumeSizeMinimum
--   amount of volume size that is applicable for given storage type.It can
--   be empty if it is not applicable. * MaximumVolumeSizeMaximum amount of
--   volume size that is applicable for given storage type.It can be empty
--   if it is not applicable. * MaximumIopsMaximum amount of Iops that is
--   applicable for given storage type.It can be empty if it is not
--   applicable. * MinimumIopsMinimum amount of Iops that is applicable for
--   given storage type.It can be empty if it is not applicable.</li>
--   <li><a>stlLimitValues</a> - Values for the
--   <tt>'StorageTypeLimit$LimitName' </tt> .</li>
--   </ul>
storageTypeLimit :: StorageTypeLimit

-- | Name of storage limits that are applicable for given storage type. If
--   <tt><a>StorageType</a> </tt> is ebs, following storage options are
--   applicable * MinimumVolumeSizeMinimum amount of volume size that is
--   applicable for given storage type.It can be empty if it is not
--   applicable. * MaximumVolumeSizeMaximum amount of volume size that is
--   applicable for given storage type.It can be empty if it is not
--   applicable. * MaximumIopsMaximum amount of Iops that is applicable for
--   given storage type.It can be empty if it is not applicable. *
--   MinimumIopsMinimum amount of Iops that is applicable for given storage
--   type.It can be empty if it is not applicable.
stlLimitName :: Lens' StorageTypeLimit (Maybe Text)

-- | Values for the <tt>'StorageTypeLimit$LimitName' </tt> .
stlLimitValues :: Lens' StorageTypeLimit [Text]

-- | Specifies a key value pair for a resource tag.
--   
--   <i>See:</i> <a>tag</a> smart constructor.
data Tag

-- | Creates a value of <a>Tag</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tagKey</a> - Specifies the <tt>TagKey</tt> , the name of the
--   tag. Tag keys must be unique for the Elasticsearch domain to which
--   they are attached.</li>
--   <li><a>tagValue</a> - Specifies the <tt>TagValue</tt> , 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 <tt>project : Trinity</tt> and
--   <tt>cost-center : Trinity</tt></li>
--   </ul>
tag :: Text -> Text -> Tag

-- | Specifies the <tt>TagKey</tt> , the name of the tag. Tag keys must be
--   unique for the Elasticsearch domain to which they are attached.
tagKey :: Lens' Tag Text

-- | Specifies the <tt>TagValue</tt> , 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 <tt>project : Trinity</tt> and <tt>cost-center :
--   Trinity</tt>
tagValue :: Lens' Tag Text

-- | Options to specify the subnets and security groups for VPC endpoint.
--   For more information, see <a>VPC Endpoints for Amazon Elasticsearch
--   Service Domains</a> .
--   
--   <i>See:</i> <a>vpcDerivedInfo</a> smart constructor.
data VPCDerivedInfo

-- | Creates a value of <a>VPCDerivedInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vdiSecurityGroupIds</a> - Specifies the security groups for VPC
--   endpoint.</li>
--   <li><a>vdiSubnetIds</a> - Specifies the subnets for VPC endpoint.</li>
--   <li><a>vdiVPCId</a> - The VPC Id for the Elasticsearch domain. Exists
--   only if the domain was created with VPCOptions.</li>
--   <li><a>vdiAvailabilityZones</a> - The availability zones for the
--   Elasticsearch domain. Exists only if the domain was created with
--   VPCOptions.</li>
--   </ul>
vpcDerivedInfo :: VPCDerivedInfo

-- | Specifies the security groups for VPC endpoint.
vdiSecurityGroupIds :: Lens' VPCDerivedInfo [Text]

-- | Specifies the subnets for VPC endpoint.
vdiSubnetIds :: Lens' VPCDerivedInfo [Text]

-- | The VPC Id for the Elasticsearch domain. Exists only if the domain was
--   created with VPCOptions.
vdiVPCId :: Lens' VPCDerivedInfo (Maybe Text)

-- | The availability zones for the Elasticsearch domain. Exists only if
--   the domain was created with VPCOptions.
vdiAvailabilityZones :: Lens' VPCDerivedInfo [Text]

-- | Status of the VPC options for the specified Elasticsearch domain.
--   
--   <i>See:</i> <a>vpcDerivedInfoStatus</a> smart constructor.
data VPCDerivedInfoStatus

-- | Creates a value of <a>VPCDerivedInfoStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vdisOptions</a> - Specifies the VPC options for the specified
--   Elasticsearch domain.</li>
--   <li><a>vdisStatus</a> - Specifies the status of the VPC options for
--   the specified Elasticsearch domain.</li>
--   </ul>
vpcDerivedInfoStatus :: VPCDerivedInfo -> OptionStatus -> VPCDerivedInfoStatus

-- | Specifies the VPC options for the specified Elasticsearch domain.
vdisOptions :: Lens' VPCDerivedInfoStatus VPCDerivedInfo

-- | Specifies the status of the VPC options for the specified
--   Elasticsearch domain.
vdisStatus :: Lens' VPCDerivedInfoStatus OptionStatus

-- | Options to specify the subnets and security groups for VPC endpoint.
--   For more information, see <a>VPC Endpoints for Amazon Elasticsearch
--   Service Domains</a> .
--   
--   <i>See:</i> <a>vpcOptions</a> smart constructor.
data VPCOptions

-- | Creates a value of <a>VPCOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>voSecurityGroupIds</a> - Specifies the security groups for VPC
--   endpoint.</li>
--   <li><a>voSubnetIds</a> - Specifies the subnets for VPC endpoint.</li>
--   </ul>
vpcOptions :: VPCOptions

-- | Specifies the security groups for VPC endpoint.
voSecurityGroupIds :: Lens' VPCOptions [Text]

-- | Specifies the subnets for VPC endpoint.
voSubnetIds :: Lens' VPCOptions [Text]


-- | Removes the specified set of tags from the specified Elasticsearch
--   domain.
module Network.AWS.ElasticSearch.RemoveTags

-- | Creates a value of <a>RemoveTags</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtARN</a> - Specifies the <tt>ARN</tt> for the Elasticsearch
--   domain from which you want to delete the specified tags.</li>
--   <li><a>rtTagKeys</a> - Specifies the <tt>TagKey</tt> list which you
--   want to remove from the Elasticsearch domain.</li>
--   </ul>
removeTags :: Text -> RemoveTags

-- | Container for the parameters to the <tt><a>RemoveTags</a> </tt>
--   operation. Specify the <tt>ARN</tt> for the Elasticsearch domain from
--   which you want to remove the specified <tt>TagKey</tt> .
--   
--   <i>See:</i> <a>removeTags</a> smart constructor.
data RemoveTags

-- | Specifies the <tt>ARN</tt> for the Elasticsearch domain from which you
--   want to delete the specified tags.
rtARN :: Lens' RemoveTags Text

-- | Specifies the <tt>TagKey</tt> list which you want to remove from the
--   Elasticsearch domain.
rtTagKeys :: Lens' RemoveTags [Text]

-- | Creates a value of <a>RemoveTagsResponse</a> with the minimum fields
--   required to make a request.
removeTagsResponse :: RemoveTagsResponse

-- | <i>See:</i> <a>removeTagsResponse</a> smart constructor.
data RemoveTagsResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.RemoveTags.RemoveTagsResponse
instance Data.Data.Data Network.AWS.ElasticSearch.RemoveTags.RemoveTagsResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.RemoveTags.RemoveTagsResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.RemoveTags.RemoveTagsResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.RemoveTags.RemoveTagsResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.RemoveTags.RemoveTags
instance Data.Data.Data Network.AWS.ElasticSearch.RemoveTags.RemoveTags
instance GHC.Show.Show Network.AWS.ElasticSearch.RemoveTags.RemoveTags
instance GHC.Read.Read Network.AWS.ElasticSearch.RemoveTags.RemoveTags
instance GHC.Classes.Eq Network.AWS.ElasticSearch.RemoveTags.RemoveTags
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.RemoveTags.RemoveTags
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.RemoveTags.RemoveTagsResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.RemoveTags.RemoveTags
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.RemoveTags.RemoveTags
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.RemoveTags.RemoveTags
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ElasticSearch.RemoveTags.RemoveTags
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.RemoveTags.RemoveTags
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.RemoveTags.RemoveTags


-- | Allows you to purchase reserved Elasticsearch instances.
module Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering

-- | Creates a value of
--   <a>PurchaseReservedElasticsearchInstanceOffering</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>preioInstanceCount</a> - The number of Elasticsearch instances
--   to reserve.</li>
--   <li><a>preioReservedElasticsearchInstanceOfferingId</a> - The ID of
--   the reserved Elasticsearch instance offering to purchase.</li>
--   <li><a>preioReservationName</a> - A customer-specified identifier to
--   track this reservation.</li>
--   </ul>
purchaseReservedElasticsearchInstanceOffering :: Text -> Text -> PurchaseReservedElasticsearchInstanceOffering

-- | Container for parameters to
--   <tt>PurchaseReservedElasticsearchInstanceOffering</tt>
--   
--   <i>See:</i> <a>purchaseReservedElasticsearchInstanceOffering</a> smart
--   constructor.
data PurchaseReservedElasticsearchInstanceOffering

-- | The number of Elasticsearch instances to reserve.
preioInstanceCount :: Lens' PurchaseReservedElasticsearchInstanceOffering (Maybe Natural)

-- | The ID of the reserved Elasticsearch instance offering to purchase.
preioReservedElasticsearchInstanceOfferingId :: Lens' PurchaseReservedElasticsearchInstanceOffering Text

-- | A customer-specified identifier to track this reservation.
preioReservationName :: Lens' PurchaseReservedElasticsearchInstanceOffering Text

-- | Creates a value of
--   <a>PurchaseReservedElasticsearchInstanceOfferingResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>preiorsReservedElasticsearchInstanceId</a> - Details of the
--   reserved Elasticsearch instance which was purchased.</li>
--   <li><a>preiorsReservationName</a> - The customer-specified identifier
--   used to track this reservation.</li>
--   <li><a>preiorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
purchaseReservedElasticsearchInstanceOfferingResponse :: Int -> PurchaseReservedElasticsearchInstanceOfferingResponse

-- | Represents the output of a
--   <tt>PurchaseReservedElasticsearchInstanceOffering</tt> operation.
--   
--   <i>See:</i>
--   <a>purchaseReservedElasticsearchInstanceOfferingResponse</a> smart
--   constructor.
data PurchaseReservedElasticsearchInstanceOfferingResponse

-- | Details of the reserved Elasticsearch instance which was purchased.
preiorsReservedElasticsearchInstanceId :: Lens' PurchaseReservedElasticsearchInstanceOfferingResponse (Maybe Text)

-- | The customer-specified identifier used to track this reservation.
preiorsReservationName :: Lens' PurchaseReservedElasticsearchInstanceOfferingResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
preiorsResponseStatus :: Lens' PurchaseReservedElasticsearchInstanceOfferingResponse Int
instance GHC.Generics.Generic Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOfferingResponse
instance Data.Data.Data Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOfferingResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOfferingResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOfferingResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOfferingResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering
instance Data.Data.Data Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering
instance GHC.Show.Show Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering
instance GHC.Read.Read Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering
instance GHC.Classes.Eq Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOfferingResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.PurchaseReservedElasticsearchInstanceOffering.PurchaseReservedElasticsearchInstanceOffering


-- | Returns all tags for the given Elasticsearch domain.
module Network.AWS.ElasticSearch.ListTags

-- | Creates a value of <a>ListTags</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltARN</a> - Specify the <tt>ARN</tt> for the Elasticsearch
--   domain to which the tags are attached that you want to view.</li>
--   </ul>
listTags :: Text -> ListTags

-- | Container for the parameters to the <tt><a>ListTags</a> </tt>
--   operation. Specify the <tt>ARN</tt> for the Elasticsearch domain to
--   which the tags are attached that you want to view are attached.
--   
--   <i>See:</i> <a>listTags</a> smart constructor.
data ListTags

-- | Specify the <tt>ARN</tt> for the Elasticsearch domain to which the
--   tags are attached that you want to view.
ltARN :: Lens' ListTags Text

-- | Creates a value of <a>ListTagsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltrsTagList</a> - List of <tt>Tag</tt> for the requested
--   Elasticsearch domain.</li>
--   <li><a>ltrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listTagsResponse :: Int -> ListTagsResponse

-- | The result of a <tt>ListTags</tt> operation. Contains tags for all
--   requested Elasticsearch domains.
--   
--   <i>See:</i> <a>listTagsResponse</a> smart constructor.
data ListTagsResponse

-- | List of <tt>Tag</tt> for the requested Elasticsearch domain.
ltrsTagList :: Lens' ListTagsResponse [Tag]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ltrsResponseStatus :: Lens' ListTagsResponse Int
instance GHC.Generics.Generic Network.AWS.ElasticSearch.ListTags.ListTagsResponse
instance Data.Data.Data Network.AWS.ElasticSearch.ListTags.ListTagsResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.ListTags.ListTagsResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.ListTags.ListTagsResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.ListTags.ListTagsResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.ListTags.ListTags
instance Data.Data.Data Network.AWS.ElasticSearch.ListTags.ListTags
instance GHC.Show.Show Network.AWS.ElasticSearch.ListTags.ListTags
instance GHC.Read.Read Network.AWS.ElasticSearch.ListTags.ListTags
instance GHC.Classes.Eq Network.AWS.ElasticSearch.ListTags.ListTags
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.ListTags.ListTags
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.ListTags.ListTagsResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.ListTags.ListTags
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.ListTags.ListTags
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.ListTags.ListTags
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.ListTags.ListTags
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.ListTags.ListTags


-- | List all supported Elasticsearch versions
--   
--   This operation returns paginated results.
module Network.AWS.ElasticSearch.ListElasticsearchVersions

-- | Creates a value of <a>ListElasticsearchVersions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>levNextToken</a> - Undocumented member.</li>
--   <li><a>levMaxResults</a> - Set this value to limit the number of
--   results returned. Value provided must be greater than 10 else it wont
--   be honored.</li>
--   </ul>
listElasticsearchVersions :: ListElasticsearchVersions

-- | Container for the parameters to the
--   <tt><a>ListElasticsearchVersions</a> </tt> operation. Use
--   <tt><tt>MaxResults</tt> </tt> to control the maximum number of results
--   to retrieve in a single call.
--   
--   Use <tt><tt>NextToken</tt> </tt> in response to retrieve more results.
--   If the received response does not contain a NextToken, then there are
--   no more results to retrieve.
--   
--   <i>See:</i> <a>listElasticsearchVersions</a> smart constructor.
data ListElasticsearchVersions

-- | Undocumented member.
levNextToken :: Lens' ListElasticsearchVersions (Maybe Text)

-- | Set this value to limit the number of results returned. Value provided
--   must be greater than 10 else it wont be honored.
levMaxResults :: Lens' ListElasticsearchVersions (Maybe Int)

-- | Creates a value of <a>ListElasticsearchVersionsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>levrsNextToken</a> - Undocumented member.</li>
--   <li><a>levrsElasticsearchVersions</a> - Undocumented member.</li>
--   <li><a>levrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listElasticsearchVersionsResponse :: Int -> ListElasticsearchVersionsResponse

-- | Container for the parameters for response received from
--   <tt><a>ListElasticsearchVersions</a> </tt> operation.
--   
--   <i>See:</i> <a>listElasticsearchVersionsResponse</a> smart
--   constructor.
data ListElasticsearchVersionsResponse

-- | Undocumented member.
levrsNextToken :: Lens' ListElasticsearchVersionsResponse (Maybe Text)

-- | Undocumented member.
levrsElasticsearchVersions :: Lens' ListElasticsearchVersionsResponse [Text]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
levrsResponseStatus :: Lens' ListElasticsearchVersionsResponse Int
instance GHC.Generics.Generic Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersionsResponse
instance Data.Data.Data Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersionsResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersionsResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersionsResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersionsResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions
instance Data.Data.Data Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions
instance GHC.Show.Show Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions
instance GHC.Read.Read Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions
instance GHC.Classes.Eq Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersionsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.ListElasticsearchVersions.ListElasticsearchVersions


-- | List all Elasticsearch instance types that are supported for given
--   ElasticsearchVersion
--   
--   This operation returns paginated results.
module Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes

-- | Creates a value of <a>ListElasticsearchInstanceTypes</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>leitNextToken</a> - NextToken should be sent in case if earlier
--   API call produced result containing NextToken. It is used for
--   pagination.</li>
--   <li><a>leitDomainName</a> - 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 domain.</li>
--   <li><a>leitMaxResults</a> - Set this value to limit the number of
--   results returned. Value provided must be greater than 30 else it wont
--   be honored.</li>
--   <li><a>leitElasticsearchVersion</a> - Version of Elasticsearch for
--   which list of supported elasticsearch instance types are needed.</li>
--   </ul>
listElasticsearchInstanceTypes :: Text -> ListElasticsearchInstanceTypes

-- | Container for the parameters to the
--   <tt><a>ListElasticsearchInstanceTypes</a> </tt> operation.
--   
--   <i>See:</i> <a>listElasticsearchInstanceTypes</a> smart constructor.
data ListElasticsearchInstanceTypes

-- | NextToken should be sent in case if earlier API call produced result
--   containing NextToken. It is used for pagination.
leitNextToken :: Lens' ListElasticsearchInstanceTypes (Maybe Text)

-- | 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 domain.
leitDomainName :: Lens' ListElasticsearchInstanceTypes (Maybe Text)

-- | Set this value to limit the number of results returned. Value provided
--   must be greater than 30 else it wont be honored.
leitMaxResults :: Lens' ListElasticsearchInstanceTypes (Maybe Int)

-- | Version of Elasticsearch for which list of supported elasticsearch
--   instance types are needed.
leitElasticsearchVersion :: Lens' ListElasticsearchInstanceTypes Text

-- | Creates a value of <a>ListElasticsearchInstanceTypesResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>leitrsElasticsearchInstanceTypes</a> - List of instance types
--   supported by Amazon Elasticsearch service for given
--   <tt><tt>ElasticsearchVersion</tt> </tt></li>
--   <li><a>leitrsNextToken</a> - In case if there are more results
--   available NextToken would be present, make further request to the same
--   API with received NextToken to paginate remaining results.</li>
--   <li><a>leitrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listElasticsearchInstanceTypesResponse :: Int -> ListElasticsearchInstanceTypesResponse

-- | Container for the parameters returned by
--   <tt><a>ListElasticsearchInstanceTypes</a> </tt> operation.
--   
--   <i>See:</i> <a>listElasticsearchInstanceTypesResponse</a> smart
--   constructor.
data ListElasticsearchInstanceTypesResponse

-- | List of instance types supported by Amazon Elasticsearch service for
--   given <tt><tt>ElasticsearchVersion</tt> </tt>
leitrsElasticsearchInstanceTypes :: Lens' ListElasticsearchInstanceTypesResponse [ESPartitionInstanceType]

-- | In case if there are more results available NextToken would be
--   present, make further request to the same API with received NextToken
--   to paginate remaining results.
leitrsNextToken :: Lens' ListElasticsearchInstanceTypesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
leitrsResponseStatus :: Lens' ListElasticsearchInstanceTypesResponse Int
instance GHC.Generics.Generic Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypesResponse
instance Data.Data.Data Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypesResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypesResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypesResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypesResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes
instance Data.Data.Data Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes
instance GHC.Show.Show Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes
instance GHC.Read.Read Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes
instance GHC.Classes.Eq Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypesResponse
instance Network.AWS.Pager.AWSPager Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.ListElasticsearchInstanceTypes.ListElasticsearchInstanceTypes


-- | Returns the name of all Elasticsearch domains owned by the current
--   user's account.
module Network.AWS.ElasticSearch.ListDomainNames

-- | Creates a value of <a>ListDomainNames</a> with the minimum fields
--   required to make a request.
listDomainNames :: ListDomainNames

-- | <i>See:</i> <a>listDomainNames</a> smart constructor.
data ListDomainNames

-- | Creates a value of <a>ListDomainNamesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ldnrsDomainNames</a> - List of Elasticsearch domain names.</li>
--   <li><a>ldnrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listDomainNamesResponse :: Int -> ListDomainNamesResponse

-- | The result of a <tt>ListDomainNames</tt> operation. Contains the names
--   of all Elasticsearch domains owned by this account.
--   
--   <i>See:</i> <a>listDomainNamesResponse</a> smart constructor.
data ListDomainNamesResponse

-- | List of Elasticsearch domain names.
ldnrsDomainNames :: Lens' ListDomainNamesResponse [DomainInfo]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ldnrsResponseStatus :: Lens' ListDomainNamesResponse Int
instance GHC.Generics.Generic Network.AWS.ElasticSearch.ListDomainNames.ListDomainNamesResponse
instance Data.Data.Data Network.AWS.ElasticSearch.ListDomainNames.ListDomainNamesResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.ListDomainNames.ListDomainNamesResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.ListDomainNames.ListDomainNamesResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.ListDomainNames.ListDomainNamesResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.ListDomainNames.ListDomainNames
instance Data.Data.Data Network.AWS.ElasticSearch.ListDomainNames.ListDomainNames
instance GHC.Show.Show Network.AWS.ElasticSearch.ListDomainNames.ListDomainNames
instance GHC.Read.Read Network.AWS.ElasticSearch.ListDomainNames.ListDomainNames
instance GHC.Classes.Eq Network.AWS.ElasticSearch.ListDomainNames.ListDomainNames
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.ListDomainNames.ListDomainNames
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.ListDomainNames.ListDomainNamesResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.ListDomainNames.ListDomainNames
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.ListDomainNames.ListDomainNames
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.ListDomainNames.ListDomainNames
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.ListDomainNames.ListDomainNames
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.ListDomainNames.ListDomainNames


-- | Returns information about reserved Elasticsearch instances for this
--   account.
module Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances

-- | Creates a value of <a>DescribeReservedElasticsearchInstances</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dreiReservedElasticsearchInstanceId</a> - The reserved instance
--   identifier filter value. Use this parameter to show only the
--   reservation that matches the specified reserved Elasticsearch instance
--   ID.</li>
--   <li><a>dreiNextToken</a> - NextToken should be sent in case if earlier
--   API call produced result containing NextToken. It is used for
--   pagination.</li>
--   <li><a>dreiMaxResults</a> - Set this value to limit the number of
--   results returned. If not specified, defaults to 100.</li>
--   </ul>
describeReservedElasticsearchInstances :: DescribeReservedElasticsearchInstances

-- | Container for parameters to
--   <tt>DescribeReservedElasticsearchInstances</tt>
--   
--   <i>See:</i> <a>describeReservedElasticsearchInstances</a> smart
--   constructor.
data DescribeReservedElasticsearchInstances

-- | The reserved instance identifier filter value. Use this parameter to
--   show only the reservation that matches the specified reserved
--   Elasticsearch instance ID.
dreiReservedElasticsearchInstanceId :: Lens' DescribeReservedElasticsearchInstances (Maybe Text)

-- | NextToken should be sent in case if earlier API call produced result
--   containing NextToken. It is used for pagination.
dreiNextToken :: Lens' DescribeReservedElasticsearchInstances (Maybe Text)

-- | Set this value to limit the number of results returned. If not
--   specified, defaults to 100.
dreiMaxResults :: Lens' DescribeReservedElasticsearchInstances (Maybe Int)

-- | Creates a value of
--   <a>DescribeReservedElasticsearchInstancesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dreirsReservedElasticsearchInstances</a> - List of reserved
--   Elasticsearch instances.</li>
--   <li><a>dreirsNextToken</a> - Provides an identifier to allow retrieval
--   of paginated results.</li>
--   <li><a>dreirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeReservedElasticsearchInstancesResponse :: Int -> DescribeReservedElasticsearchInstancesResponse

-- | Container for results from
--   <tt>DescribeReservedElasticsearchInstances</tt>
--   
--   <i>See:</i> <a>describeReservedElasticsearchInstancesResponse</a>
--   smart constructor.
data DescribeReservedElasticsearchInstancesResponse

-- | List of reserved Elasticsearch instances.
dreirsReservedElasticsearchInstances :: Lens' DescribeReservedElasticsearchInstancesResponse [ReservedElasticsearchInstance]

-- | Provides an identifier to allow retrieval of paginated results.
dreirsNextToken :: Lens' DescribeReservedElasticsearchInstancesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dreirsResponseStatus :: Lens' DescribeReservedElasticsearchInstancesResponse Int
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstancesResponse
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstancesResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstancesResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstancesResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstancesResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstances
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstances
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstances
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstances
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstances
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstances
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstancesResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstances
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstances.DescribeReservedElasticsearchInstances


-- | Lists available reserved Elasticsearch instance offerings.
module Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings

-- | Creates a value of
--   <a>DescribeReservedElasticsearchInstanceOfferings</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dreioReservedElasticsearchInstanceOfferingId</a> - The offering
--   identifier filter value. Use this parameter to show only the available
--   offering that matches the specified reservation identifier.</li>
--   <li><a>dreioNextToken</a> - NextToken should be sent in case if
--   earlier API call produced result containing NextToken. It is used for
--   pagination.</li>
--   <li><a>dreioMaxResults</a> - Set this value to limit the number of
--   results returned. If not specified, defaults to 100.</li>
--   </ul>
describeReservedElasticsearchInstanceOfferings :: DescribeReservedElasticsearchInstanceOfferings

-- | Container for parameters to
--   <tt>DescribeReservedElasticsearchInstanceOfferings</tt>
--   
--   <i>See:</i> <a>describeReservedElasticsearchInstanceOfferings</a>
--   smart constructor.
data DescribeReservedElasticsearchInstanceOfferings

-- | The offering identifier filter value. Use this parameter to show only
--   the available offering that matches the specified reservation
--   identifier.
dreioReservedElasticsearchInstanceOfferingId :: Lens' DescribeReservedElasticsearchInstanceOfferings (Maybe Text)

-- | NextToken should be sent in case if earlier API call produced result
--   containing NextToken. It is used for pagination.
dreioNextToken :: Lens' DescribeReservedElasticsearchInstanceOfferings (Maybe Text)

-- | Set this value to limit the number of results returned. If not
--   specified, defaults to 100.
dreioMaxResults :: Lens' DescribeReservedElasticsearchInstanceOfferings (Maybe Int)

-- | Creates a value of
--   <a>DescribeReservedElasticsearchInstanceOfferingsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dreiorsReservedElasticsearchInstanceOfferings</a> - List of
--   reserved Elasticsearch instance offerings</li>
--   <li><a>dreiorsNextToken</a> - Provides an identifier to allow
--   retrieval of paginated results.</li>
--   <li><a>dreiorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeReservedElasticsearchInstanceOfferingsResponse :: Int -> DescribeReservedElasticsearchInstanceOfferingsResponse

-- | Container for results from
--   <tt>DescribeReservedElasticsearchInstanceOfferings</tt>
--   
--   <i>See:</i>
--   <a>describeReservedElasticsearchInstanceOfferingsResponse</a> smart
--   constructor.
data DescribeReservedElasticsearchInstanceOfferingsResponse

-- | List of reserved Elasticsearch instance offerings
dreiorsReservedElasticsearchInstanceOfferings :: Lens' DescribeReservedElasticsearchInstanceOfferingsResponse [ReservedElasticsearchInstanceOffering]

-- | Provides an identifier to allow retrieval of paginated results.
dreiorsNextToken :: Lens' DescribeReservedElasticsearchInstanceOfferingsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dreiorsResponseStatus :: Lens' DescribeReservedElasticsearchInstanceOfferingsResponse Int
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferingsResponse
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferingsResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferingsResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferingsResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferingsResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferings
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferings
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferings
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferings
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferings
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferings
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferingsResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferings
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferings
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferings
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferings
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings.DescribeReservedElasticsearchInstanceOfferings


-- | Describe Elasticsearch Limits for a given InstanceType and
--   ElasticsearchVersion. When modifying existing Domain, specify the
--   <tt><tt>DomainName</tt> </tt> to know what Limits are supported for
--   modifying.
module Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits

-- | Creates a value of <a>DescribeElasticsearchInstanceTypeLimits</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deitlDomainName</a> - DomainName represents the name of the
--   Domain that we are trying to modify. This should be present only if we
--   are querying for Elasticsearch <tt><a>Limits</a> </tt> for existing
--   domain.</li>
--   <li><a>deitlInstanceType</a> - The instance type for an Elasticsearch
--   cluster for which Elasticsearch <tt><a>Limits</a> </tt> are
--   needed.</li>
--   <li><a>deitlElasticsearchVersion</a> - Version of Elasticsearch for
--   which <tt><a>Limits</a> </tt> are needed.</li>
--   </ul>
describeElasticsearchInstanceTypeLimits :: ESPartitionInstanceType -> Text -> DescribeElasticsearchInstanceTypeLimits

-- | Container for the parameters to
--   <tt><a>DescribeElasticsearchInstanceTypeLimits</a> </tt> operation.
--   
--   <i>See:</i> <a>describeElasticsearchInstanceTypeLimits</a> smart
--   constructor.
data DescribeElasticsearchInstanceTypeLimits

-- | DomainName represents the name of the Domain that we are trying to
--   modify. This should be present only if we are querying for
--   Elasticsearch <tt><a>Limits</a> </tt> for existing domain.
deitlDomainName :: Lens' DescribeElasticsearchInstanceTypeLimits (Maybe Text)

-- | The instance type for an Elasticsearch cluster for which Elasticsearch
--   <tt><a>Limits</a> </tt> are needed.
deitlInstanceType :: Lens' DescribeElasticsearchInstanceTypeLimits ESPartitionInstanceType

-- | Version of Elasticsearch for which <tt><a>Limits</a> </tt> are needed.
deitlElasticsearchVersion :: Lens' DescribeElasticsearchInstanceTypeLimits Text

-- | Creates a value of
--   <a>DescribeElasticsearchInstanceTypeLimitsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deitlrsLimitsByRole</a> - Undocumented member.</li>
--   <li><a>deitlrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeElasticsearchInstanceTypeLimitsResponse :: Int -> DescribeElasticsearchInstanceTypeLimitsResponse

-- | Container for the parameters received from
--   <tt><a>DescribeElasticsearchInstanceTypeLimits</a> </tt> operation.
--   
--   <i>See:</i> <a>describeElasticsearchInstanceTypeLimitsResponse</a>
--   smart constructor.
data DescribeElasticsearchInstanceTypeLimitsResponse

-- | Undocumented member.
deitlrsLimitsByRole :: Lens' DescribeElasticsearchInstanceTypeLimitsResponse (HashMap Text Limits)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
deitlrsResponseStatus :: Lens' DescribeElasticsearchInstanceTypeLimitsResponse Int
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimitsResponse
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimitsResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimitsResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimitsResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimitsResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimits
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimits
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimits
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimits
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimits
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimits
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimitsResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimits
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimits
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimits
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimits
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.DescribeElasticsearchInstanceTypeLimits.DescribeElasticsearchInstanceTypeLimits


-- | Returns domain configuration information about the specified
--   Elasticsearch domains, including the domain ID, domain endpoint, and
--   domain ARN.
module Network.AWS.ElasticSearch.DescribeElasticsearchDomains

-- | Creates a value of <a>DescribeElasticsearchDomains</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dedDomainNames</a> - The Elasticsearch domains for which you
--   want information.</li>
--   </ul>
describeElasticsearchDomains :: DescribeElasticsearchDomains

-- | Container for the parameters to the
--   <tt><a>DescribeElasticsearchDomains</a> </tt> operation. By default,
--   the API returns the status of all Elasticsearch domains.
--   
--   <i>See:</i> <a>describeElasticsearchDomains</a> smart constructor.
data DescribeElasticsearchDomains

-- | The Elasticsearch domains for which you want information.
dedDomainNames :: Lens' DescribeElasticsearchDomains [Text]

-- | Creates a value of <a>DescribeElasticsearchDomainsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>drsDomainStatusList</a> - The status of the domains requested
--   in the <tt>DescribeElasticsearchDomains</tt> request.</li>
--   </ul>
describeElasticsearchDomainsResponse :: Int -> DescribeElasticsearchDomainsResponse

-- | The result of a <tt>DescribeElasticsearchDomains</tt> request.
--   Contains the status of the specified domains or all domains owned by
--   the account.
--   
--   <i>See:</i> <a>describeElasticsearchDomainsResponse</a> smart
--   constructor.
data DescribeElasticsearchDomainsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drsResponseStatus :: Lens' DescribeElasticsearchDomainsResponse Int

-- | The status of the domains requested in the
--   <tt>DescribeElasticsearchDomains</tt> request.
drsDomainStatusList :: Lens' DescribeElasticsearchDomainsResponse [ElasticsearchDomainStatus]
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomainsResponse
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomainsResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomainsResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomainsResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomainsResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomainsResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomains


-- | Provides cluster configuration information about the specified
--   Elasticsearch domain, such as the state, creation date, update
--   version, and update date for cluster options.
module Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig

-- | Creates a value of <a>DescribeElasticsearchDomainConfig</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dedcDomainName</a> - The Elasticsearch domain that you want to
--   get information about.</li>
--   </ul>
describeElasticsearchDomainConfig :: Text -> DescribeElasticsearchDomainConfig

-- | Container for the parameters to the
--   <tt>DescribeElasticsearchDomainConfig</tt> operation. Specifies the
--   domain name for which you want configuration information.
--   
--   <i>See:</i> <a>describeElasticsearchDomainConfig</a> smart
--   constructor.
data DescribeElasticsearchDomainConfig

-- | The Elasticsearch domain that you want to get information about.
dedcDomainName :: Lens' DescribeElasticsearchDomainConfig Text

-- | Creates a value of <a>DescribeElasticsearchDomainConfigResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dedcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dedcrsDomainConfig</a> - The configuration information of the
--   domain requested in the <tt>DescribeElasticsearchDomainConfig</tt>
--   request.</li>
--   </ul>
describeElasticsearchDomainConfigResponse :: Int -> ElasticsearchDomainConfig -> DescribeElasticsearchDomainConfigResponse

-- | The result of a <tt>DescribeElasticsearchDomainConfig</tt> request.
--   Contains the configuration information of the requested domain.
--   
--   <i>See:</i> <a>describeElasticsearchDomainConfigResponse</a> smart
--   constructor.
data DescribeElasticsearchDomainConfigResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dedcrsResponseStatus :: Lens' DescribeElasticsearchDomainConfigResponse Int

-- | The configuration information of the domain requested in the
--   <tt>DescribeElasticsearchDomainConfig</tt> request.
dedcrsDomainConfig :: Lens' DescribeElasticsearchDomainConfigResponse ElasticsearchDomainConfig
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfigResponse
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfigResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfigResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfigResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfigResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfig
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfig
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfig
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfig
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfig
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfig
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfigResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfig
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfig
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfig
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfig
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfig


-- | Returns domain configuration information about the specified
--   Elasticsearch domain, including the domain ID, domain endpoint, and
--   domain ARN.
module Network.AWS.ElasticSearch.DescribeElasticsearchDomain

-- | Creates a value of <a>DescribeElasticsearchDomain</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dedDomainName</a> - The name of the Elasticsearch domain for
--   which you want information.</li>
--   </ul>
describeElasticsearchDomain :: Text -> DescribeElasticsearchDomain

-- | Container for the parameters to the
--   <tt><a>DescribeElasticsearchDomain</a> </tt> operation.
--   
--   <i>See:</i> <a>describeElasticsearchDomain</a> smart constructor.
data DescribeElasticsearchDomain

-- | The name of the Elasticsearch domain for which you want information.
dedDomainName :: Lens' DescribeElasticsearchDomain Text

-- | Creates a value of <a>DescribeElasticsearchDomainResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dedrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dedrsDomainStatus</a> - The current status of the Elasticsearch
--   domain.</li>
--   </ul>
describeElasticsearchDomainResponse :: Int -> ElasticsearchDomainStatus -> DescribeElasticsearchDomainResponse

-- | The result of a <tt>DescribeElasticsearchDomain</tt> request. Contains
--   the status of the domain specified in the request.
--   
--   <i>See:</i> <a>describeElasticsearchDomainResponse</a> smart
--   constructor.
data DescribeElasticsearchDomainResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dedrsResponseStatus :: Lens' DescribeElasticsearchDomainResponse Int

-- | The current status of the Elasticsearch domain.
dedrsDomainStatus :: Lens' DescribeElasticsearchDomainResponse ElasticsearchDomainStatus
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomainResponse
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomainResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomainResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomainResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomainResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomain
instance Data.Data.Data Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomain
instance GHC.Show.Show Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomain
instance GHC.Read.Read Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomain
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomain
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomain
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomainResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomain
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomain
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomain
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomain
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomain


-- | Deletes the service-linked role that Elasticsearch Service uses to
--   manage and maintain VPC domains. Role deletion will fail if any
--   existing VPC domains use the role. You must delete any such
--   Elasticsearch domains before deleting the role. See <a>Deleting
--   Elasticsearch Service Role</a> in <i>VPC Endpoints for Amazon
--   Elasticsearch Service Domains</i> .
module Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole

-- | Creates a value of <a>DeleteElasticsearchServiceRole</a> with the
--   minimum fields required to make a request.
deleteElasticsearchServiceRole :: DeleteElasticsearchServiceRole

-- | <i>See:</i> <a>deleteElasticsearchServiceRole</a> smart constructor.
data DeleteElasticsearchServiceRole

-- | Creates a value of <a>DeleteElasticsearchServiceRoleResponse</a> with
--   the minimum fields required to make a request.
deleteElasticsearchServiceRoleResponse :: DeleteElasticsearchServiceRoleResponse

-- | <i>See:</i> <a>deleteElasticsearchServiceRoleResponse</a> smart
--   constructor.
data DeleteElasticsearchServiceRoleResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRoleResponse
instance Data.Data.Data Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRoleResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRoleResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRoleResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRoleResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRole
instance Data.Data.Data Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRole
instance GHC.Show.Show Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRole
instance GHC.Read.Read Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRole
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRole
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRole
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRoleResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRole
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRole
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRole
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRole
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.DeleteElasticsearchServiceRole.DeleteElasticsearchServiceRole


-- | Permanently deletes the specified Elasticsearch domain and all of its
--   data. Once a domain is deleted, it cannot be recovered.
module Network.AWS.ElasticSearch.DeleteElasticsearchDomain

-- | Creates a value of <a>DeleteElasticsearchDomain</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDomainName</a> - The name of the Elasticsearch domain that you
--   want to permanently delete.</li>
--   </ul>
deleteElasticsearchDomain :: Text -> DeleteElasticsearchDomain

-- | Container for the parameters to the
--   <tt><a>DeleteElasticsearchDomain</a> </tt> operation. Specifies the
--   name of the Elasticsearch domain that you want to delete.
--   
--   <i>See:</i> <a>deleteElasticsearchDomain</a> smart constructor.
data DeleteElasticsearchDomain

-- | The name of the Elasticsearch domain that you want to permanently
--   delete.
dDomainName :: Lens' DeleteElasticsearchDomain Text

-- | Creates a value of <a>DeleteElasticsearchDomainResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delrsDomainStatus</a> - The status of the Elasticsearch domain
--   being deleted.</li>
--   <li><a>delrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteElasticsearchDomainResponse :: Int -> DeleteElasticsearchDomainResponse

-- | The result of a <tt>DeleteElasticsearchDomain</tt> request. Contains
--   the status of the pending deletion, or no status if the domain and all
--   of its resources have been deleted.
--   
--   <i>See:</i> <a>deleteElasticsearchDomainResponse</a> smart
--   constructor.
data DeleteElasticsearchDomainResponse

-- | The status of the Elasticsearch domain being deleted.
delrsDomainStatus :: Lens' DeleteElasticsearchDomainResponse (Maybe ElasticsearchDomainStatus)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
delrsResponseStatus :: Lens' DeleteElasticsearchDomainResponse Int
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomainResponse
instance Data.Data.Data Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomainResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomainResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomainResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomainResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomain
instance Data.Data.Data Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomain
instance GHC.Show.Show Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomain
instance GHC.Read.Read Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomain
instance GHC.Classes.Eq Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomain
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomain
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomainResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomain
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomain
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomain
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomain
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomain


-- | Creates a new Elasticsearch domain. For more information, see
--   <a>Creating Elasticsearch Domains</a> in the <i>Amazon Elasticsearch
--   Service Developer Guide</i> .
module Network.AWS.ElasticSearch.CreateElasticsearchDomain

-- | Creates a value of <a>CreateElasticsearchDomain</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cedEBSOptions</a> - Options to enable, disable and specify the
--   type and size of EBS storage volumes.</li>
--   <li><a>cedAccessPolicies</a> - IAM access policy as a JSON-formatted
--   string.</li>
--   <li><a>cedLogPublishingOptions</a> - Map of <tt>LogType</tt> and
--   <tt>LogPublishingOption</tt> , each containing options to publish a
--   given type of Elasticsearch log.</li>
--   <li><a>cedElasticsearchClusterConfig</a> - Configuration options for
--   an Elasticsearch domain. Specifies the instance type and number of
--   instances in the domain cluster.</li>
--   <li><a>cedSnapshotOptions</a> - Option to set time, in UTC format, of
--   the daily automated snapshot. Default value is 0 hours.</li>
--   <li><a>cedCognitoOptions</a> - Options to specify the Cognito user and
--   identity pools for Kibana authentication. For more information, see
--   <a>Amazon Cognito Authentication for Kibana</a> .</li>
--   <li><a>cedEncryptionAtRestOptions</a> - Specifies the Encryption At
--   Rest Options.</li>
--   <li><a>cedVPCOptions</a> - Options to specify the subnets and security
--   groups for VPC endpoint. For more information, see <a>Creating a
--   VPC</a> in <i>VPC Endpoints for Amazon Elasticsearch Service
--   Domains</i></li>
--   <li><a>cedAdvancedOptions</a> - Option to allow references to indices
--   in an HTTP request body. Must be <tt>false</tt> when configuring
--   access to individual sub-resources. By default, the value is
--   <tt>true</tt> . See <a>Configuration Advanced Options</a> for more
--   information.</li>
--   <li><a>cedElasticsearchVersion</a> - String of format X.Y to specify
--   version for the Elasticsearch domain eg. "1.5" or "2.3". For more
--   information, see <a>Creating Elasticsearch Domains</a> in the
--   <i>Amazon Elasticsearch Service Developer Guide</i> .</li>
--   <li><a>cedDomainName</a> - 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 letter
--   or number and can contain the following characters: a-z (lowercase),
--   0-9, and - (hyphen).</li>
--   </ul>
createElasticsearchDomain :: Text -> CreateElasticsearchDomain

-- | <i>See:</i> <a>createElasticsearchDomain</a> smart constructor.
data CreateElasticsearchDomain

-- | Options to enable, disable and specify the type and size of EBS
--   storage volumes.
cedEBSOptions :: Lens' CreateElasticsearchDomain (Maybe EBSOptions)

-- | IAM access policy as a JSON-formatted string.
cedAccessPolicies :: Lens' CreateElasticsearchDomain (Maybe Text)

-- | Map of <tt>LogType</tt> and <tt>LogPublishingOption</tt> , each
--   containing options to publish a given type of Elasticsearch log.
cedLogPublishingOptions :: Lens' CreateElasticsearchDomain (HashMap LogType LogPublishingOption)

-- | Configuration options for an Elasticsearch domain. Specifies the
--   instance type and number of instances in the domain cluster.
cedElasticsearchClusterConfig :: Lens' CreateElasticsearchDomain (Maybe ElasticsearchClusterConfig)

-- | Option to set time, in UTC format, of the daily automated snapshot.
--   Default value is 0 hours.
cedSnapshotOptions :: Lens' CreateElasticsearchDomain (Maybe SnapshotOptions)

-- | Options to specify the Cognito user and identity pools for Kibana
--   authentication. For more information, see <a>Amazon Cognito
--   Authentication for Kibana</a> .
cedCognitoOptions :: Lens' CreateElasticsearchDomain (Maybe CognitoOptions)

-- | Specifies the Encryption At Rest Options.
cedEncryptionAtRestOptions :: Lens' CreateElasticsearchDomain (Maybe EncryptionAtRestOptions)

-- | Options to specify the subnets and security groups for VPC endpoint.
--   For more information, see <a>Creating a VPC</a> in <i>VPC Endpoints
--   for Amazon Elasticsearch Service Domains</i>
cedVPCOptions :: Lens' CreateElasticsearchDomain (Maybe VPCOptions)

-- | Option to allow references to indices in an HTTP request body. Must be
--   <tt>false</tt> when configuring access to individual sub-resources. By
--   default, the value is <tt>true</tt> . See <a>Configuration Advanced
--   Options</a> for more information.
cedAdvancedOptions :: Lens' CreateElasticsearchDomain (HashMap Text Text)

-- | String of format X.Y to specify version for the Elasticsearch domain
--   eg. "1.5" or "2.3". For more information, see <a>Creating
--   Elasticsearch Domains</a> in the <i>Amazon Elasticsearch Service
--   Developer Guide</i> .
cedElasticsearchVersion :: Lens' CreateElasticsearchDomain (Maybe Text)

-- | 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 letter or number and can
--   contain the following characters: a-z (lowercase), 0-9, and -
--   (hyphen).
cedDomainName :: Lens' CreateElasticsearchDomain Text

-- | Creates a value of <a>CreateElasticsearchDomainResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cedrsDomainStatus</a> - The status of the newly created
--   Elasticsearch domain.</li>
--   <li><a>cedrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createElasticsearchDomainResponse :: Int -> CreateElasticsearchDomainResponse

-- | The result of a <tt>CreateElasticsearchDomain</tt> operation. Contains
--   the status of the newly created Elasticsearch domain.
--   
--   <i>See:</i> <a>createElasticsearchDomainResponse</a> smart
--   constructor.
data CreateElasticsearchDomainResponse

-- | The status of the newly created Elasticsearch domain.
cedrsDomainStatus :: Lens' CreateElasticsearchDomainResponse (Maybe ElasticsearchDomainStatus)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cedrsResponseStatus :: Lens' CreateElasticsearchDomainResponse Int
instance GHC.Generics.Generic Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomainResponse
instance Data.Data.Data Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomainResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomainResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomainResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomainResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain
instance Data.Data.Data Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain
instance GHC.Show.Show Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain
instance GHC.Read.Read Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain
instance GHC.Classes.Eq Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomainResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomain


-- | Attaches tags to an existing Elasticsearch domain. Tags are a set of
--   case-sensitive key value pairs. An Elasticsearch domain may have up to
--   10 tags. See <a>Tagging Amazon Elasticsearch Service Domains for more
--   information.</a>
module Network.AWS.ElasticSearch.AddTags

-- | Creates a value of <a>AddTags</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>atARN</a> - Specify the <tt>ARN</tt> for which you want to add
--   the tags.</li>
--   <li><a>atTagList</a> - List of <tt>Tag</tt> that need to be added for
--   the Elasticsearch domain.</li>
--   </ul>
addTags :: Text -> AddTags

-- | Container for the parameters to the <tt><a>AddTags</a> </tt>
--   operation. Specify the tags that you want to attach to the
--   Elasticsearch domain.
--   
--   <i>See:</i> <a>addTags</a> smart constructor.
data AddTags

-- | Specify the <tt>ARN</tt> for which you want to add the tags.
atARN :: Lens' AddTags Text

-- | List of <tt>Tag</tt> that need to be added for the Elasticsearch
--   domain.
atTagList :: Lens' AddTags [Tag]

-- | Creates a value of <a>AddTagsResponse</a> with the minimum fields
--   required to make a request.
addTagsResponse :: AddTagsResponse

-- | <i>See:</i> <a>addTagsResponse</a> smart constructor.
data AddTagsResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.AddTags.AddTagsResponse
instance Data.Data.Data Network.AWS.ElasticSearch.AddTags.AddTagsResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.AddTags.AddTagsResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.AddTags.AddTagsResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.AddTags.AddTagsResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.AddTags.AddTags
instance Data.Data.Data Network.AWS.ElasticSearch.AddTags.AddTags
instance GHC.Show.Show Network.AWS.ElasticSearch.AddTags.AddTags
instance GHC.Read.Read Network.AWS.ElasticSearch.AddTags.AddTags
instance GHC.Classes.Eq Network.AWS.ElasticSearch.AddTags.AddTags
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.AddTags.AddTags
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.AddTags.AddTagsResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.AddTags.AddTags
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.AddTags.AddTags
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.AddTags.AddTags
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ElasticSearch.AddTags.AddTags
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.AddTags.AddTags
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.AddTags.AddTags


-- | Modifies the cluster configuration of the specified Elasticsearch
--   domain, setting as setting the instance type and the number of
--   instances.
module Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig

-- | Creates a value of <a>UpdateElasticsearchDomainConfig</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uedcEBSOptions</a> - Specify the type and size of the EBS
--   volume that you want to use.</li>
--   <li><a>uedcAccessPolicies</a> - IAM access policy as a JSON-formatted
--   string.</li>
--   <li><a>uedcLogPublishingOptions</a> - Map of <tt>LogType</tt> and
--   <tt>LogPublishingOption</tt> , each containing options to publish a
--   given type of Elasticsearch log.</li>
--   <li><a>uedcElasticsearchClusterConfig</a> - The type and number of
--   instances to instantiate for the domain cluster.</li>
--   <li><a>uedcSnapshotOptions</a> - Option to set the time, in UTC
--   format, for the daily automated snapshot. Default value is <tt>0</tt>
--   hours.</li>
--   <li><a>uedcCognitoOptions</a> - Options to specify the Cognito user
--   and identity pools for Kibana authentication. For more information,
--   see <a>Amazon Cognito Authentication for Kibana</a> .</li>
--   <li><a>uedcVPCOptions</a> - Options to specify the subnets and
--   security groups for VPC endpoint. For more information, see
--   <a>Creating a VPC</a> in <i>VPC Endpoints for Amazon Elasticsearch
--   Service Domains</i></li>
--   <li><a>uedcAdvancedOptions</a> - Modifies the advanced option to allow
--   references to indices in an HTTP request body. Must be <tt>false</tt>
--   when configuring access to individual sub-resources. By default, the
--   value is <tt>true</tt> . See <a>Configuration Advanced Options</a> for
--   more information.</li>
--   <li><a>uedcDomainName</a> - The name of the Elasticsearch domain that
--   you are updating.</li>
--   </ul>
updateElasticsearchDomainConfig :: Text -> UpdateElasticsearchDomainConfig

-- | Container for the parameters to the
--   <tt><tt>UpdateElasticsearchDomain</tt> </tt> operation. Specifies the
--   type and number of instances in the domain cluster.
--   
--   <i>See:</i> <a>updateElasticsearchDomainConfig</a> smart constructor.
data UpdateElasticsearchDomainConfig

-- | Specify the type and size of the EBS volume that you want to use.
uedcEBSOptions :: Lens' UpdateElasticsearchDomainConfig (Maybe EBSOptions)

-- | IAM access policy as a JSON-formatted string.
uedcAccessPolicies :: Lens' UpdateElasticsearchDomainConfig (Maybe Text)

-- | Map of <tt>LogType</tt> and <tt>LogPublishingOption</tt> , each
--   containing options to publish a given type of Elasticsearch log.
uedcLogPublishingOptions :: Lens' UpdateElasticsearchDomainConfig (HashMap LogType LogPublishingOption)

-- | The type and number of instances to instantiate for the domain
--   cluster.
uedcElasticsearchClusterConfig :: Lens' UpdateElasticsearchDomainConfig (Maybe ElasticsearchClusterConfig)

-- | Option to set the time, in UTC format, for the daily automated
--   snapshot. Default value is <tt>0</tt> hours.
uedcSnapshotOptions :: Lens' UpdateElasticsearchDomainConfig (Maybe SnapshotOptions)

-- | Options to specify the Cognito user and identity pools for Kibana
--   authentication. For more information, see <a>Amazon Cognito
--   Authentication for Kibana</a> .
uedcCognitoOptions :: Lens' UpdateElasticsearchDomainConfig (Maybe CognitoOptions)

-- | Options to specify the subnets and security groups for VPC endpoint.
--   For more information, see <a>Creating a VPC</a> in <i>VPC Endpoints
--   for Amazon Elasticsearch Service Domains</i>
uedcVPCOptions :: Lens' UpdateElasticsearchDomainConfig (Maybe VPCOptions)

-- | Modifies the advanced option to allow references to indices in an HTTP
--   request body. Must be <tt>false</tt> when configuring access to
--   individual sub-resources. By default, the value is <tt>true</tt> . See
--   <a>Configuration Advanced Options</a> for more information.
uedcAdvancedOptions :: Lens' UpdateElasticsearchDomainConfig (HashMap Text Text)

-- | The name of the Elasticsearch domain that you are updating.
uedcDomainName :: Lens' UpdateElasticsearchDomainConfig Text

-- | Creates a value of <a>UpdateElasticsearchDomainConfigResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uedcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>uedcrsDomainConfig</a> - The status of the updated
--   Elasticsearch domain.</li>
--   </ul>
updateElasticsearchDomainConfigResponse :: Int -> ElasticsearchDomainConfig -> UpdateElasticsearchDomainConfigResponse

-- | The result of an <tt>UpdateElasticsearchDomain</tt> request. Contains
--   the status of the Elasticsearch domain being updated.
--   
--   <i>See:</i> <a>updateElasticsearchDomainConfigResponse</a> smart
--   constructor.
data UpdateElasticsearchDomainConfigResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
uedcrsResponseStatus :: Lens' UpdateElasticsearchDomainConfigResponse Int

-- | The status of the updated Elasticsearch domain.
uedcrsDomainConfig :: Lens' UpdateElasticsearchDomainConfigResponse ElasticsearchDomainConfig
instance GHC.Generics.Generic Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfigResponse
instance Data.Data.Data Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfigResponse
instance GHC.Show.Show Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfigResponse
instance GHC.Read.Read Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfigResponse
instance GHC.Classes.Eq Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfigResponse
instance GHC.Generics.Generic Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig
instance Data.Data.Data Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig
instance GHC.Show.Show Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig
instance GHC.Read.Read Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig
instance GHC.Classes.Eq Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig
instance Network.AWS.Types.AWSRequest Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfigResponse
instance Data.Hashable.Class.Hashable Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig
instance Network.AWS.Data.Path.ToPath Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig
instance Network.AWS.Data.Query.ToQuery Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfig


module Network.AWS.ElasticSearch.Waiters


-- | <b>Amazon Elasticsearch Configuration Service</b>
--   
--   Use the Amazon Elasticsearch configuration API to create, configure,
--   and manage Elasticsearch domains.
--   
--   The endpoint for configuration service requests is region-specific:
--   es.<i>region</i> .amazonaws.com. For example,
--   es.us-east-1.amazonaws.com. For a current list of supported regions
--   and endpoints, see <a>Regions and Endpoints</a> .
module Network.AWS.ElasticSearch

-- | API version <tt>2015-01-01</tt> of the Amazon Elasticsearch Service
--   SDK configuration.
elasticSearch :: Service

-- | An exception for missing / invalid input fields. Gives http status
--   code of 400.
_ValidationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An exception for creating a resource that already exists. Gives http
--   status code of 400.
_ResourceAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An error occurred while processing the request.
_BaseException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An error occured because the client wanted to access a not supported
--   operation. Gives http status code of 409.
_DisabledOperationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The request processing has failed because of an unknown error,
--   exception or failure (the failure is internal to the service) . Gives
--   http status code of 500.
_InternalException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An exception for trying to create or access sub-resource that is
--   either invalid or not supported. Gives http status code of 409.
_InvalidTypeException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An exception for accessing or deleting a resource that does not exist.
--   Gives http status code of 400.
_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An exception for trying to create more than allowed resources or
--   sub-resources. Gives http status code of 409.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data ESPartitionInstanceType
C4_2XLarge_Elasticsearch :: ESPartitionInstanceType
C4_4XLarge_Elasticsearch :: ESPartitionInstanceType
C4_8XLarge_Elasticsearch :: ESPartitionInstanceType
C4_Large_Elasticsearch :: ESPartitionInstanceType
C4_XLarge_Elasticsearch :: ESPartitionInstanceType
D2_2XLarge_Elasticsearch :: ESPartitionInstanceType
D2_4XLarge_Elasticsearch :: ESPartitionInstanceType
D2_8XLarge_Elasticsearch :: ESPartitionInstanceType
D2_XLarge_Elasticsearch :: ESPartitionInstanceType
I2_2XLarge_Elasticsearch :: ESPartitionInstanceType
I2_XLarge_Elasticsearch :: ESPartitionInstanceType
I3_16XLarge_Elasticsearch :: ESPartitionInstanceType
I3_2XLarge_Elasticsearch :: ESPartitionInstanceType
I3_4XLarge_Elasticsearch :: ESPartitionInstanceType
I3_8XLarge_Elasticsearch :: ESPartitionInstanceType
I3_Large_Elasticsearch :: ESPartitionInstanceType
I3_XLarge_Elasticsearch :: ESPartitionInstanceType
M3_2XLarge_Elasticsearch :: ESPartitionInstanceType
M3_Large_Elasticsearch :: ESPartitionInstanceType
M3_Medium_Elasticsearch :: ESPartitionInstanceType
M3_XLarge_Elasticsearch :: ESPartitionInstanceType
M4_10XLarge_Elasticsearch :: ESPartitionInstanceType
M4_2XLarge_Elasticsearch :: ESPartitionInstanceType
M4_4XLarge_Elasticsearch :: ESPartitionInstanceType
M4_Large_Elasticsearch :: ESPartitionInstanceType
M4_XLarge_Elasticsearch :: ESPartitionInstanceType
R3_2XLarge_Elasticsearch :: ESPartitionInstanceType
R3_4XLarge_Elasticsearch :: ESPartitionInstanceType
R3_8XLarge_Elasticsearch :: ESPartitionInstanceType
R3_Large_Elasticsearch :: ESPartitionInstanceType
R3_XLarge_Elasticsearch :: ESPartitionInstanceType
R4_16XLarge_Elasticsearch :: ESPartitionInstanceType
R4_2XLarge_Elasticsearch :: ESPartitionInstanceType
R4_4XLarge_Elasticsearch :: ESPartitionInstanceType
R4_8XLarge_Elasticsearch :: ESPartitionInstanceType
R4_Large_Elasticsearch :: ESPartitionInstanceType
R4_XLarge_Elasticsearch :: ESPartitionInstanceType
T2_Medium_Elasticsearch :: ESPartitionInstanceType
T2_Micro_Elasticsearch :: ESPartitionInstanceType
T2_Small_Elasticsearch :: ESPartitionInstanceType

-- | Type of Log File, it can be one of the following: * INDEX_SLOW_LOGS:
--   Index slow logs contains insert requests that took more time than
--   configured index query log threshold to execute. * SEARCH_SLOW_LOGS:
--   Search slow logs contains search queries that took more time than
--   configured search query log threshold to execute.
data LogType
IndexSlowLogs :: LogType
SearchSlowLogs :: LogType

-- | The state of a requested change. One of the following:
--   
--   <ul>
--   <li>Processing: The request change is still in-process. * Active: The
--   request change is processed and deployed to the Elasticsearch
--   domain.</li>
--   </ul>
data OptionState
Active :: OptionState
Processing :: OptionState
RequiresIndexDocuments :: OptionState
data ReservedElasticsearchInstancePaymentOption
AllUpfront :: ReservedElasticsearchInstancePaymentOption
NoUpfront :: ReservedElasticsearchInstancePaymentOption
PartialUpfront :: ReservedElasticsearchInstancePaymentOption

-- | The type of EBS volume, standard, gp2, or io1. See <a>Configuring
--   EBS-based Storage</a> for more information.
data VolumeType
GP2 :: VolumeType
IO1 :: VolumeType
Standard :: VolumeType

-- | The configured access rules for the domain's document and search
--   endpoints, and the current status of those rules.
--   
--   <i>See:</i> <a>accessPoliciesStatus</a> smart constructor.
data AccessPoliciesStatus

-- | Creates a value of <a>AccessPoliciesStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>apsOptions</a> - The access policy configured for the
--   Elasticsearch domain. Access policies may be resource-based, IP-based,
--   or IAM-based. See <a>Configuring Access Policies</a> for more
--   information.</li>
--   <li><a>apsStatus</a> - The status of the access policy for the
--   Elasticsearch domain. See <tt>OptionStatus</tt> for the status
--   information that's included.</li>
--   </ul>
accessPoliciesStatus :: Text -> OptionStatus -> AccessPoliciesStatus

-- | The access policy configured for the Elasticsearch domain. Access
--   policies may be resource-based, IP-based, or IAM-based. See
--   <a>Configuring Access Policies</a> for more information.
apsOptions :: Lens' AccessPoliciesStatus Text

-- | The status of the access policy for the Elasticsearch domain. See
--   <tt>OptionStatus</tt> for the status information that's included.
apsStatus :: Lens' AccessPoliciesStatus OptionStatus

-- | List of limits that are specific to a given InstanceType and for each
--   of it's <tt><tt>InstanceRole</tt> </tt> .
--   
--   <i>See:</i> <a>additionalLimit</a> smart constructor.
data AdditionalLimit

-- | Creates a value of <a>AdditionalLimit</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>alLimitName</a> - Name of Additional Limit is specific to a
--   given InstanceType and for each of it's <tt><tt>InstanceRole</tt>
--   </tt> etc. Attributes and their details: *
--   MaximumNumberOfDataNodesSupportedThis attribute will be present in
--   Master node only to specify how much data nodes upto which given
--   <tt><a>ESPartitionInstanceType</a> </tt> can support as master node. *
--   MaximumNumberOfDataNodesWithoutMasterNodeThis attribute will be
--   present in Data node only to specify how much data nodes of given
--   <tt><a>ESPartitionInstanceType</a> </tt> upto which you don't need any
--   master nodes to govern them.</li>
--   <li><a>alLimitValues</a> - Value for given
--   <tt>'AdditionalLimit$LimitName' </tt> .</li>
--   </ul>
additionalLimit :: AdditionalLimit

-- | Name of Additional Limit is specific to a given InstanceType and for
--   each of it's <tt><tt>InstanceRole</tt> </tt> etc. Attributes and their
--   details: * MaximumNumberOfDataNodesSupportedThis attribute will be
--   present in Master node only to specify how much data nodes upto which
--   given <tt><a>ESPartitionInstanceType</a> </tt> can support as master
--   node. * MaximumNumberOfDataNodesWithoutMasterNodeThis attribute will
--   be present in Data node only to specify how much data nodes of given
--   <tt><a>ESPartitionInstanceType</a> </tt> upto which you don't need any
--   master nodes to govern them.
alLimitName :: Lens' AdditionalLimit (Maybe Text)

-- | Value for given <tt>'AdditionalLimit$LimitName' </tt> .
alLimitValues :: Lens' AdditionalLimit [Text]

-- | Status of the advanced options for the specified Elasticsearch domain.
--   Currently, the following advanced options are available:
--   
--   <ul>
--   <li>Option to allow references to indices in an HTTP request body.
--   Must be <tt>false</tt> when configuring access to individual
--   sub-resources. By default, the value is <tt>true</tt> . See
--   <a>Configuration Advanced Options</a> for more information. * Option
--   to specify the percentage of heap space that is allocated to field
--   data. By default, this setting is unbounded.</li>
--   </ul>
--   
--   For more information, see <a>Configuring Advanced Options</a> .
--   
--   <i>See:</i> <a>advancedOptionsStatus</a> smart constructor.
data AdvancedOptionsStatus

-- | Creates a value of <a>AdvancedOptionsStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aosOptions</a> - Specifies the status of advanced options for
--   the specified Elasticsearch domain.</li>
--   <li><a>aosStatus</a> - Specifies the status of <tt>OptionStatus</tt>
--   for advanced options for the specified Elasticsearch domain.</li>
--   </ul>
advancedOptionsStatus :: OptionStatus -> AdvancedOptionsStatus

-- | Specifies the status of advanced options for the specified
--   Elasticsearch domain.
aosOptions :: Lens' AdvancedOptionsStatus (HashMap Text Text)

-- | Specifies the status of <tt>OptionStatus</tt> for advanced options for
--   the specified Elasticsearch domain.
aosStatus :: Lens' AdvancedOptionsStatus OptionStatus

-- | Options to specify the Cognito user and identity pools for Kibana
--   authentication. For more information, see <a>Amazon Cognito
--   Authentication for Kibana</a> .
--   
--   <i>See:</i> <a>cognitoOptions</a> smart constructor.
data CognitoOptions

-- | Creates a value of <a>CognitoOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coIdentityPoolId</a> - Specifies the Cognito identity pool ID
--   for Kibana authentication.</li>
--   <li><a>coEnabled</a> - Specifies the option to enable Cognito for
--   Kibana authentication.</li>
--   <li><a>coUserPoolId</a> - Specifies the Cognito user pool ID for
--   Kibana authentication.</li>
--   <li><a>coRoleARN</a> - Specifies the role ARN that provides
--   Elasticsearch permissions for accessing Cognito resources.</li>
--   </ul>
cognitoOptions :: CognitoOptions

-- | Specifies the Cognito identity pool ID for Kibana authentication.
coIdentityPoolId :: Lens' CognitoOptions (Maybe Text)

-- | Specifies the option to enable Cognito for Kibana authentication.
coEnabled :: Lens' CognitoOptions (Maybe Bool)

-- | Specifies the Cognito user pool ID for Kibana authentication.
coUserPoolId :: Lens' CognitoOptions (Maybe Text)

-- | Specifies the role ARN that provides Elasticsearch permissions for
--   accessing Cognito resources.
coRoleARN :: Lens' CognitoOptions (Maybe Text)

-- | Status of the Cognito options for the specified Elasticsearch domain.
--   
--   <i>See:</i> <a>cognitoOptionsStatus</a> smart constructor.
data CognitoOptionsStatus

-- | Creates a value of <a>CognitoOptionsStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cosOptions</a> - Specifies the Cognito options for the
--   specified Elasticsearch domain.</li>
--   <li><a>cosStatus</a> - Specifies the status of the Cognito options for
--   the specified Elasticsearch domain.</li>
--   </ul>
cognitoOptionsStatus :: CognitoOptions -> OptionStatus -> CognitoOptionsStatus

-- | Specifies the Cognito options for the specified Elasticsearch domain.
cosOptions :: Lens' CognitoOptionsStatus CognitoOptions

-- | Specifies the status of the Cognito options for the specified
--   Elasticsearch domain.
cosStatus :: Lens' CognitoOptionsStatus OptionStatus

-- | <i>See:</i> <a>domainInfo</a> smart constructor.
data DomainInfo

-- | Creates a value of <a>DomainInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diDomainName</a> - Specifies the <tt>DomainName</tt> .</li>
--   </ul>
domainInfo :: DomainInfo

-- | Specifies the <tt>DomainName</tt> .
diDomainName :: Lens' DomainInfo (Maybe Text)

-- | Options to enable, disable, and specify the properties of EBS storage
--   volumes. For more information, see <a>Configuring EBS-based
--   Storage</a> .
--   
--   <i>See:</i> <a>ebsOptions</a> smart constructor.
data EBSOptions

-- | Creates a value of <a>EBSOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eoVolumeSize</a> - Integer to specify the size of an EBS
--   volume.</li>
--   <li><a>eoIOPS</a> - Specifies the IOPD for a Provisioned IOPS EBS
--   volume (SSD).</li>
--   <li><a>eoVolumeType</a> - Specifies the volume type for EBS-based
--   storage.</li>
--   <li><a>eoEBSEnabled</a> - Specifies whether EBS-based storage is
--   enabled.</li>
--   </ul>
ebsOptions :: EBSOptions

-- | Integer to specify the size of an EBS volume.
eoVolumeSize :: Lens' EBSOptions (Maybe Int)

-- | Specifies the IOPD for a Provisioned IOPS EBS volume (SSD).
eoIOPS :: Lens' EBSOptions (Maybe Int)

-- | Specifies the volume type for EBS-based storage.
eoVolumeType :: Lens' EBSOptions (Maybe VolumeType)

-- | Specifies whether EBS-based storage is enabled.
eoEBSEnabled :: Lens' EBSOptions (Maybe Bool)

-- | Status of the EBS options for the specified Elasticsearch domain.
--   
--   <i>See:</i> <a>ebsOptionsStatus</a> smart constructor.
data EBSOptionsStatus

-- | Creates a value of <a>EBSOptionsStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eosOptions</a> - Specifies the EBS options for the specified
--   Elasticsearch domain.</li>
--   <li><a>eosStatus</a> - Specifies the status of the EBS options for the
--   specified Elasticsearch domain.</li>
--   </ul>
ebsOptionsStatus :: EBSOptions -> OptionStatus -> EBSOptionsStatus

-- | Specifies the EBS options for the specified Elasticsearch domain.
eosOptions :: Lens' EBSOptionsStatus EBSOptions

-- | Specifies the status of the EBS options for the specified
--   Elasticsearch domain.
eosStatus :: Lens' EBSOptionsStatus OptionStatus

-- | Specifies the configuration for the domain cluster, such as the type
--   and number of instances.
--   
--   <i>See:</i> <a>elasticsearchClusterConfig</a> smart constructor.
data ElasticsearchClusterConfig

-- | Creates a value of <a>ElasticsearchClusterConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eccDedicatedMasterCount</a> - Total number of dedicated master
--   nodes, active and on standby, for the cluster.</li>
--   <li><a>eccDedicatedMasterType</a> - The instance type for a dedicated
--   master node.</li>
--   <li><a>eccDedicatedMasterEnabled</a> - A boolean value to indicate
--   whether a dedicated master node is enabled. See <a>About Dedicated
--   Master Nodes</a> for more information.</li>
--   <li><a>eccInstanceCount</a> - The number of instances in the specified
--   domain cluster.</li>
--   <li><a>eccZoneAwarenessEnabled</a> - A boolean value to indicate
--   whether zone awareness is enabled. See <a>About Zone Awareness</a> for
--   more information.</li>
--   <li><a>eccInstanceType</a> - The instance type for an Elasticsearch
--   cluster.</li>
--   </ul>
elasticsearchClusterConfig :: ElasticsearchClusterConfig

-- | Total number of dedicated master nodes, active and on standby, for the
--   cluster.
eccDedicatedMasterCount :: Lens' ElasticsearchClusterConfig (Maybe Int)

-- | The instance type for a dedicated master node.
eccDedicatedMasterType :: Lens' ElasticsearchClusterConfig (Maybe ESPartitionInstanceType)

-- | A boolean value to indicate whether a dedicated master node is
--   enabled. See <a>About Dedicated Master Nodes</a> for more information.
eccDedicatedMasterEnabled :: Lens' ElasticsearchClusterConfig (Maybe Bool)

-- | The number of instances in the specified domain cluster.
eccInstanceCount :: Lens' ElasticsearchClusterConfig (Maybe Int)

-- | A boolean value to indicate whether zone awareness is enabled. See
--   <a>About Zone Awareness</a> for more information.
eccZoneAwarenessEnabled :: Lens' ElasticsearchClusterConfig (Maybe Bool)

-- | The instance type for an Elasticsearch cluster.
eccInstanceType :: Lens' ElasticsearchClusterConfig (Maybe ESPartitionInstanceType)

-- | Specifies the configuration status for the specified Elasticsearch
--   domain.
--   
--   <i>See:</i> <a>elasticsearchClusterConfigStatus</a> smart constructor.
data ElasticsearchClusterConfigStatus

-- | Creates a value of <a>ElasticsearchClusterConfigStatus</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eccsOptions</a> - Specifies the cluster configuration for the
--   specified Elasticsearch domain.</li>
--   <li><a>eccsStatus</a> - Specifies the status of the configuration for
--   the specified Elasticsearch domain.</li>
--   </ul>
elasticsearchClusterConfigStatus :: ElasticsearchClusterConfig -> OptionStatus -> ElasticsearchClusterConfigStatus

-- | Specifies the cluster configuration for the specified Elasticsearch
--   domain.
eccsOptions :: Lens' ElasticsearchClusterConfigStatus ElasticsearchClusterConfig

-- | Specifies the status of the configuration for the specified
--   Elasticsearch domain.
eccsStatus :: Lens' ElasticsearchClusterConfigStatus OptionStatus

-- | The configuration of an Elasticsearch domain.
--   
--   <i>See:</i> <a>elasticsearchDomainConfig</a> smart constructor.
data ElasticsearchDomainConfig

-- | Creates a value of <a>ElasticsearchDomainConfig</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edcEBSOptions</a> - Specifies the <tt>EBSOptions</tt> for the
--   Elasticsearch domain.</li>
--   <li><a>edcAccessPolicies</a> - IAM access policy as a JSON-formatted
--   string.</li>
--   <li><a>edcLogPublishingOptions</a> - Log publishing options for the
--   given domain.</li>
--   <li><a>edcElasticsearchClusterConfig</a> - Specifies the
--   <tt>ElasticsearchClusterConfig</tt> for the Elasticsearch domain.</li>
--   <li><a>edcSnapshotOptions</a> - Specifies the <tt>SnapshotOptions</tt>
--   for the Elasticsearch domain.</li>
--   <li><a>edcCognitoOptions</a> - The <tt>CognitoOptions</tt> for the
--   specified domain. For more information, see <a>Amazon Cognito
--   Authentication for Kibana</a> .</li>
--   <li><a>edcEncryptionAtRestOptions</a> - Specifies the
--   <tt>EncryptionAtRestOptions</tt> for the Elasticsearch domain.</li>
--   <li><a>edcVPCOptions</a> - The <tt>VPCOptions</tt> for the specified
--   domain. For more information, see <a>VPC Endpoints for Amazon
--   Elasticsearch Service Domains</a> .</li>
--   <li><a>edcAdvancedOptions</a> - Specifies the <tt>AdvancedOptions</tt>
--   for the domain. See <a>Configuring Advanced Options</a> for more
--   information.</li>
--   <li><a>edcElasticsearchVersion</a> - String of format X.Y to specify
--   version for the Elasticsearch domain.</li>
--   </ul>
elasticsearchDomainConfig :: ElasticsearchDomainConfig

-- | Specifies the <tt>EBSOptions</tt> for the Elasticsearch domain.
edcEBSOptions :: Lens' ElasticsearchDomainConfig (Maybe EBSOptionsStatus)

-- | IAM access policy as a JSON-formatted string.
edcAccessPolicies :: Lens' ElasticsearchDomainConfig (Maybe AccessPoliciesStatus)

-- | Log publishing options for the given domain.
edcLogPublishingOptions :: Lens' ElasticsearchDomainConfig (Maybe LogPublishingOptionsStatus)

-- | Specifies the <tt>ElasticsearchClusterConfig</tt> for the
--   Elasticsearch domain.
edcElasticsearchClusterConfig :: Lens' ElasticsearchDomainConfig (Maybe ElasticsearchClusterConfigStatus)

-- | Specifies the <tt>SnapshotOptions</tt> for the Elasticsearch domain.
edcSnapshotOptions :: Lens' ElasticsearchDomainConfig (Maybe SnapshotOptionsStatus)

-- | The <tt>CognitoOptions</tt> for the specified domain. For more
--   information, see <a>Amazon Cognito Authentication for Kibana</a> .
edcCognitoOptions :: Lens' ElasticsearchDomainConfig (Maybe CognitoOptionsStatus)

-- | Specifies the <tt>EncryptionAtRestOptions</tt> for the Elasticsearch
--   domain.
edcEncryptionAtRestOptions :: Lens' ElasticsearchDomainConfig (Maybe EncryptionAtRestOptionsStatus)

-- | The <tt>VPCOptions</tt> for the specified domain. For more
--   information, see <a>VPC Endpoints for Amazon Elasticsearch Service
--   Domains</a> .
edcVPCOptions :: Lens' ElasticsearchDomainConfig (Maybe VPCDerivedInfoStatus)

-- | Specifies the <tt>AdvancedOptions</tt> for the domain. See
--   <a>Configuring Advanced Options</a> for more information.
edcAdvancedOptions :: Lens' ElasticsearchDomainConfig (Maybe AdvancedOptionsStatus)

-- | String of format X.Y to specify version for the Elasticsearch domain.
edcElasticsearchVersion :: Lens' ElasticsearchDomainConfig (Maybe ElasticsearchVersionStatus)

-- | The current status of an Elasticsearch domain.
--   
--   <i>See:</i> <a>elasticsearchDomainStatus</a> smart constructor.
data ElasticsearchDomainStatus

-- | Creates a value of <a>ElasticsearchDomainStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edsEBSOptions</a> - The <tt>EBSOptions</tt> for the specified
--   domain. See <a>Configuring EBS-based Storage</a> for more
--   information.</li>
--   <li><a>edsAccessPolicies</a> - IAM access policy as a JSON-formatted
--   string.</li>
--   <li><a>edsLogPublishingOptions</a> - Log publishing options for the
--   given domain.</li>
--   <li><a>edsCreated</a> - The domain creation status. <tt>True</tt> if
--   the creation of an Elasticsearch domain is complete. <tt>False</tt> if
--   domain creation is still in progress.</li>
--   <li><a>edsSnapshotOptions</a> - Specifies the status of the
--   <tt>SnapshotOptions</tt></li>
--   <li><a>edsCognitoOptions</a> - The <tt>CognitoOptions</tt> for the
--   specified domain. For more information, see <a>Amazon Cognito
--   Authentication for Kibana</a> .</li>
--   <li><a>edsEncryptionAtRestOptions</a> - Specifies the status of the
--   <tt>EncryptionAtRestOptions</tt> .</li>
--   <li><a>edsDeleted</a> - The domain deletion status. <tt>True</tt> if a
--   delete request has been received for the domain but resource cleanup
--   is still in progress. <tt>False</tt> if the domain has not been
--   deleted. Once domain deletion is complete, the status of the domain is
--   no longer returned.</li>
--   <li><a>edsVPCOptions</a> - The <tt>VPCOptions</tt> for the specified
--   domain. For more information, see <a>VPC Endpoints for Amazon
--   Elasticsearch Service Domains</a> .</li>
--   <li><a>edsEndpoints</a> - Map containing the Elasticsearch domain
--   endpoints used to submit index and search requests. Example <tt>key,
--   value</tt> :
--   <tt><tt>vpc</tt>,'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'</tt>
--   .</li>
--   <li><a>edsProcessing</a> - The status of the Elasticsearch domain
--   configuration. <tt>True</tt> if Amazon Elasticsearch Service is
--   processing configuration changes. <tt>False</tt> if the configuration
--   is active.</li>
--   <li><a>edsEndpoint</a> - The Elasticsearch domain endpoint that you
--   use to submit index and search requests.</li>
--   <li><a>edsAdvancedOptions</a> - Specifies the status of the
--   <tt>AdvancedOptions</tt></li>
--   <li><a>edsElasticsearchVersion</a> - Undocumented member.</li>
--   <li><a>edsDomainId</a> - The unique identifier for the specified
--   Elasticsearch domain.</li>
--   <li><a>edsDomainName</a> - The name of an Elasticsearch domain. Domain
--   names are unique across the domains owned by an account within an AWS
--   region. Domain names start with a letter or number and can contain the
--   following characters: a-z (lowercase), 0-9, and - (hyphen).</li>
--   <li><a>edsARN</a> - The Amazon resource name (ARN) of an Elasticsearch
--   domain. See <a>Identifiers for IAM Entities</a> in <i>Using AWS
--   Identity and Access Management</i> for more information.</li>
--   <li><a>edsElasticsearchClusterConfig</a> - The type and number of
--   instances in the domain cluster.</li>
--   </ul>
elasticsearchDomainStatus :: Text -> Text -> Text -> ElasticsearchClusterConfig -> ElasticsearchDomainStatus

-- | The <tt>EBSOptions</tt> for the specified domain. See <a>Configuring
--   EBS-based Storage</a> for more information.
edsEBSOptions :: Lens' ElasticsearchDomainStatus (Maybe EBSOptions)

-- | IAM access policy as a JSON-formatted string.
edsAccessPolicies :: Lens' ElasticsearchDomainStatus (Maybe Text)

-- | Log publishing options for the given domain.
edsLogPublishingOptions :: Lens' ElasticsearchDomainStatus (HashMap LogType LogPublishingOption)

-- | The domain creation status. <tt>True</tt> if the creation of an
--   Elasticsearch domain is complete. <tt>False</tt> if domain creation is
--   still in progress.
edsCreated :: Lens' ElasticsearchDomainStatus (Maybe Bool)

-- | Specifies the status of the <tt>SnapshotOptions</tt>
edsSnapshotOptions :: Lens' ElasticsearchDomainStatus (Maybe SnapshotOptions)

-- | The <tt>CognitoOptions</tt> for the specified domain. For more
--   information, see <a>Amazon Cognito Authentication for Kibana</a> .
edsCognitoOptions :: Lens' ElasticsearchDomainStatus (Maybe CognitoOptions)

-- | Specifies the status of the <tt>EncryptionAtRestOptions</tt> .
edsEncryptionAtRestOptions :: Lens' ElasticsearchDomainStatus (Maybe EncryptionAtRestOptions)

-- | The domain deletion status. <tt>True</tt> if a delete request has been
--   received for the domain but resource cleanup is still in progress.
--   <tt>False</tt> if the domain has not been deleted. Once domain
--   deletion is complete, the status of the domain is no longer returned.
edsDeleted :: Lens' ElasticsearchDomainStatus (Maybe Bool)

-- | The <tt>VPCOptions</tt> for the specified domain. For more
--   information, see <a>VPC Endpoints for Amazon Elasticsearch Service
--   Domains</a> .
edsVPCOptions :: Lens' ElasticsearchDomainStatus (Maybe VPCDerivedInfo)

-- | Map containing the Elasticsearch domain endpoints used to submit index
--   and search requests. Example <tt>key, value</tt> :
--   <tt><tt>vpc</tt>,'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'</tt>
--   .
edsEndpoints :: Lens' ElasticsearchDomainStatus (HashMap Text Text)

-- | The status of the Elasticsearch domain configuration. <tt>True</tt> if
--   Amazon Elasticsearch Service is processing configuration changes.
--   <tt>False</tt> if the configuration is active.
edsProcessing :: Lens' ElasticsearchDomainStatus (Maybe Bool)

-- | The Elasticsearch domain endpoint that you use to submit index and
--   search requests.
edsEndpoint :: Lens' ElasticsearchDomainStatus (Maybe Text)

-- | Specifies the status of the <tt>AdvancedOptions</tt>
edsAdvancedOptions :: Lens' ElasticsearchDomainStatus (HashMap Text Text)

-- | Undocumented member.
edsElasticsearchVersion :: Lens' ElasticsearchDomainStatus (Maybe Text)

-- | The unique identifier for the specified Elasticsearch domain.
edsDomainId :: Lens' ElasticsearchDomainStatus Text

-- | The name of an Elasticsearch domain. Domain names are unique across
--   the domains owned by an account within an AWS region. Domain names
--   start with a letter or number and can contain the following
--   characters: a-z (lowercase), 0-9, and - (hyphen).
edsDomainName :: Lens' ElasticsearchDomainStatus Text

-- | The Amazon resource name (ARN) of an Elasticsearch domain. See
--   <a>Identifiers for IAM Entities</a> in <i>Using AWS Identity and
--   Access Management</i> for more information.
edsARN :: Lens' ElasticsearchDomainStatus Text

-- | The type and number of instances in the domain cluster.
edsElasticsearchClusterConfig :: Lens' ElasticsearchDomainStatus ElasticsearchClusterConfig

-- | Status of the Elasticsearch version options for the specified
--   Elasticsearch domain.
--   
--   <i>See:</i> <a>elasticsearchVersionStatus</a> smart constructor.
data ElasticsearchVersionStatus

-- | Creates a value of <a>ElasticsearchVersionStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>evsOptions</a> - Specifies the Elasticsearch version for the
--   specified Elasticsearch domain.</li>
--   <li><a>evsStatus</a> - Specifies the status of the Elasticsearch
--   version options for the specified Elasticsearch domain.</li>
--   </ul>
elasticsearchVersionStatus :: Text -> OptionStatus -> ElasticsearchVersionStatus

-- | Specifies the Elasticsearch version for the specified Elasticsearch
--   domain.
evsOptions :: Lens' ElasticsearchVersionStatus Text

-- | Specifies the status of the Elasticsearch version options for the
--   specified Elasticsearch domain.
evsStatus :: Lens' ElasticsearchVersionStatus OptionStatus

-- | Specifies the Encryption At Rest Options.
--   
--   <i>See:</i> <a>encryptionAtRestOptions</a> smart constructor.
data EncryptionAtRestOptions

-- | Creates a value of <a>EncryptionAtRestOptions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>earoEnabled</a> - Specifies the option to enable Encryption At
--   Rest.</li>
--   <li><a>earoKMSKeyId</a> - Specifies the KMS Key ID for Encryption At
--   Rest options.</li>
--   </ul>
encryptionAtRestOptions :: EncryptionAtRestOptions

-- | Specifies the option to enable Encryption At Rest.
earoEnabled :: Lens' EncryptionAtRestOptions (Maybe Bool)

-- | Specifies the KMS Key ID for Encryption At Rest options.
earoKMSKeyId :: Lens' EncryptionAtRestOptions (Maybe Text)

-- | Status of the Encryption At Rest options for the specified
--   Elasticsearch domain.
--   
--   <i>See:</i> <a>encryptionAtRestOptionsStatus</a> smart constructor.
data EncryptionAtRestOptionsStatus

-- | Creates a value of <a>EncryptionAtRestOptionsStatus</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>earosOptions</a> - Specifies the Encryption At Rest options for
--   the specified Elasticsearch domain.</li>
--   <li><a>earosStatus</a> - Specifies the status of the Encryption At
--   Rest options for the specified Elasticsearch domain.</li>
--   </ul>
encryptionAtRestOptionsStatus :: EncryptionAtRestOptions -> OptionStatus -> EncryptionAtRestOptionsStatus

-- | Specifies the Encryption At Rest options for the specified
--   Elasticsearch domain.
earosOptions :: Lens' EncryptionAtRestOptionsStatus EncryptionAtRestOptions

-- | Specifies the status of the Encryption At Rest options for the
--   specified Elasticsearch domain.
earosStatus :: Lens' EncryptionAtRestOptionsStatus OptionStatus

-- | InstanceCountLimits represents the limits on number of instances that
--   be created in Amazon Elasticsearch for given InstanceType.
--   
--   <i>See:</i> <a>instanceCountLimits</a> smart constructor.
data InstanceCountLimits

-- | Creates a value of <a>InstanceCountLimits</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iclMaximumInstanceCount</a> - Undocumented member.</li>
--   <li><a>iclMinimumInstanceCount</a> - Undocumented member.</li>
--   </ul>
instanceCountLimits :: InstanceCountLimits

-- | Undocumented member.
iclMaximumInstanceCount :: Lens' InstanceCountLimits (Maybe Int)

-- | Undocumented member.
iclMinimumInstanceCount :: Lens' InstanceCountLimits (Maybe Int)

-- | InstanceLimits represents the list of instance related attributes that
--   are available for given InstanceType.
--   
--   <i>See:</i> <a>instanceLimits</a> smart constructor.
data InstanceLimits

-- | Creates a value of <a>InstanceLimits</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ilInstanceCountLimits</a> - Undocumented member.</li>
--   </ul>
instanceLimits :: InstanceLimits

-- | Undocumented member.
ilInstanceCountLimits :: Lens' InstanceLimits (Maybe InstanceCountLimits)

-- | Limits for given InstanceType and for each of it's role.
--   
--   Limits contains following <tt>'StorageTypes,' </tt>
--   <tt><a>InstanceLimits</a> </tt> and <tt><tt>AdditionalLimits</tt>
--   </tt>
--   
--   <i>See:</i> <a>limits</a> smart constructor.
data Limits

-- | Creates a value of <a>Limits</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lInstanceLimits</a> - Undocumented member.</li>
--   <li><a>lAdditionalLimits</a> - List of additional limits that are
--   specific to a given InstanceType and for each of it's
--   <tt><tt>InstanceRole</tt> </tt> .</li>
--   <li><a>lStorageTypes</a> - StorageType represents the list of storage
--   related types and attributes that are available for given
--   InstanceType.</li>
--   </ul>
limits :: Limits

-- | Undocumented member.
lInstanceLimits :: Lens' Limits (Maybe InstanceLimits)

-- | List of additional limits that are specific to a given InstanceType
--   and for each of it's <tt><tt>InstanceRole</tt> </tt> .
lAdditionalLimits :: Lens' Limits [AdditionalLimit]

-- | StorageType represents the list of storage related types and
--   attributes that are available for given InstanceType.
lStorageTypes :: Lens' Limits [StorageType]

-- | Log Publishing option that is set for given domain.
--   
--   Attributes and their details: * CloudWatchLogsLogGroupArn: ARN of the
--   Cloudwatch log group to which log needs to be published. * Enabled:
--   Whether the log publishing for given log type is enabled or not
--   
--   <i>See:</i> <a>logPublishingOption</a> smart constructor.
data LogPublishingOption

-- | Creates a value of <a>LogPublishingOption</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpoEnabled</a> - Specifies whether given log publishing option
--   is enabled or not.</li>
--   <li><a>lpoCloudWatchLogsLogGroupARN</a> - Undocumented member.</li>
--   </ul>
logPublishingOption :: LogPublishingOption

-- | Specifies whether given log publishing option is enabled or not.
lpoEnabled :: Lens' LogPublishingOption (Maybe Bool)

-- | Undocumented member.
lpoCloudWatchLogsLogGroupARN :: Lens' LogPublishingOption (Maybe Text)

-- | The configured log publishing options for the domain and their current
--   status.
--   
--   <i>See:</i> <a>logPublishingOptionsStatus</a> smart constructor.
data LogPublishingOptionsStatus

-- | Creates a value of <a>LogPublishingOptionsStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lposStatus</a> - The status of the log publishing options for
--   the Elasticsearch domain. See <tt>OptionStatus</tt> for the status
--   information that's included.</li>
--   <li><a>lposOptions</a> - The log publishing options configured for the
--   Elasticsearch domain.</li>
--   </ul>
logPublishingOptionsStatus :: LogPublishingOptionsStatus

-- | The status of the log publishing options for the Elasticsearch domain.
--   See <tt>OptionStatus</tt> for the status information that's included.
lposStatus :: Lens' LogPublishingOptionsStatus (Maybe OptionStatus)

-- | The log publishing options configured for the Elasticsearch domain.
lposOptions :: Lens' LogPublishingOptionsStatus (HashMap LogType LogPublishingOption)

-- | Provides the current status of the entity.
--   
--   <i>See:</i> <a>optionStatus</a> smart constructor.
data OptionStatus

-- | Creates a value of <a>OptionStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>osPendingDeletion</a> - Indicates whether the Elasticsearch
--   domain is being deleted.</li>
--   <li><a>osUpdateVersion</a> - Specifies the latest version for the
--   entity.</li>
--   <li><a>osCreationDate</a> - Timestamp which tells the creation date
--   for the entity.</li>
--   <li><a>osUpdateDate</a> - Timestamp which tells the last updated time
--   for the entity.</li>
--   <li><a>osState</a> - Provides the <tt>OptionState</tt> for the
--   Elasticsearch domain.</li>
--   </ul>
optionStatus :: UTCTime -> UTCTime -> OptionState -> OptionStatus

-- | Indicates whether the Elasticsearch domain is being deleted.
osPendingDeletion :: Lens' OptionStatus (Maybe Bool)

-- | Specifies the latest version for the entity.
osUpdateVersion :: Lens' OptionStatus (Maybe Natural)

-- | Timestamp which tells the creation date for the entity.
osCreationDate :: Lens' OptionStatus UTCTime

-- | Timestamp which tells the last updated time for the entity.
osUpdateDate :: Lens' OptionStatus UTCTime

-- | Provides the <tt>OptionState</tt> for the Elasticsearch domain.
osState :: Lens' OptionStatus OptionState

-- | Contains the specific price and frequency of a recurring charges for a
--   reserved Elasticsearch instance, or for a reserved Elasticsearch
--   instance offering.
--   
--   <i>See:</i> <a>recurringCharge</a> smart constructor.
data RecurringCharge

-- | Creates a value of <a>RecurringCharge</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcRecurringChargeFrequency</a> - The frequency of the recurring
--   charge.</li>
--   <li><a>rcRecurringChargeAmount</a> - The monetary amount of the
--   recurring charge.</li>
--   </ul>
recurringCharge :: RecurringCharge

-- | The frequency of the recurring charge.
rcRecurringChargeFrequency :: Lens' RecurringCharge (Maybe Text)

-- | The monetary amount of the recurring charge.
rcRecurringChargeAmount :: Lens' RecurringCharge (Maybe Double)

-- | Details of a reserved Elasticsearch instance.
--   
--   <i>See:</i> <a>reservedElasticsearchInstance</a> smart constructor.
data ReservedElasticsearchInstance

-- | Creates a value of <a>ReservedElasticsearchInstance</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>reiState</a> - The state of the reserved Elasticsearch
--   instance.</li>
--   <li><a>reiCurrencyCode</a> - The currency code for the reserved
--   Elasticsearch instance offering.</li>
--   <li><a>reiStartTime</a> - The time the reservation started.</li>
--   <li><a>reiReservedElasticsearchInstanceOfferingId</a> - The offering
--   identifier.</li>
--   <li><a>reiReservedElasticsearchInstanceId</a> - The unique identifier
--   for the reservation.</li>
--   <li><a>reiElasticsearchInstanceCount</a> - The number of Elasticsearch
--   instances that have been reserved.</li>
--   <li><a>reiReservationName</a> - The customer-specified identifier to
--   track this reservation.</li>
--   <li><a>reiElasticsearchInstanceType</a> - The Elasticsearch instance
--   type offered by the reserved instance offering.</li>
--   <li><a>reiRecurringCharges</a> - The charge to your account regardless
--   of whether you are creating any domains using the instance
--   offering.</li>
--   <li><a>reiUsagePrice</a> - The rate you are charged for each hour for
--   the domain that is using this reserved instance.</li>
--   <li><a>reiFixedPrice</a> - The upfront fixed charge you will paid to
--   purchase the specific reserved Elasticsearch instance offering.</li>
--   <li><a>reiDuration</a> - The duration, in seconds, for which the
--   Elasticsearch instance is reserved.</li>
--   <li><a>reiPaymentOption</a> - The payment option as defined in the
--   reserved Elasticsearch instance offering.</li>
--   </ul>
reservedElasticsearchInstance :: ReservedElasticsearchInstance

-- | The state of the reserved Elasticsearch instance.
reiState :: Lens' ReservedElasticsearchInstance (Maybe Text)

-- | The currency code for the reserved Elasticsearch instance offering.
reiCurrencyCode :: Lens' ReservedElasticsearchInstance (Maybe Text)

-- | The time the reservation started.
reiStartTime :: Lens' ReservedElasticsearchInstance (Maybe UTCTime)

-- | The offering identifier.
reiReservedElasticsearchInstanceOfferingId :: Lens' ReservedElasticsearchInstance (Maybe Text)

-- | The unique identifier for the reservation.
reiReservedElasticsearchInstanceId :: Lens' ReservedElasticsearchInstance (Maybe Text)

-- | The number of Elasticsearch instances that have been reserved.
reiElasticsearchInstanceCount :: Lens' ReservedElasticsearchInstance (Maybe Int)

-- | The customer-specified identifier to track this reservation.
reiReservationName :: Lens' ReservedElasticsearchInstance (Maybe Text)

-- | The Elasticsearch instance type offered by the reserved instance
--   offering.
reiElasticsearchInstanceType :: Lens' ReservedElasticsearchInstance (Maybe ESPartitionInstanceType)

-- | The charge to your account regardless of whether you are creating any
--   domains using the instance offering.
reiRecurringCharges :: Lens' ReservedElasticsearchInstance [RecurringCharge]

-- | The rate you are charged for each hour for the domain that is using
--   this reserved instance.
reiUsagePrice :: Lens' ReservedElasticsearchInstance (Maybe Double)

-- | The upfront fixed charge you will paid to purchase the specific
--   reserved Elasticsearch instance offering.
reiFixedPrice :: Lens' ReservedElasticsearchInstance (Maybe Double)

-- | The duration, in seconds, for which the Elasticsearch instance is
--   reserved.
reiDuration :: Lens' ReservedElasticsearchInstance (Maybe Int)

-- | The payment option as defined in the reserved Elasticsearch instance
--   offering.
reiPaymentOption :: Lens' ReservedElasticsearchInstance (Maybe ReservedElasticsearchInstancePaymentOption)

-- | Details of a reserved Elasticsearch instance offering.
--   
--   <i>See:</i> <a>reservedElasticsearchInstanceOffering</a> smart
--   constructor.
data ReservedElasticsearchInstanceOffering

-- | Creates a value of <a>ReservedElasticsearchInstanceOffering</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>reioCurrencyCode</a> - The currency code for the reserved
--   Elasticsearch instance offering.</li>
--   <li><a>reioReservedElasticsearchInstanceOfferingId</a> - The
--   Elasticsearch reserved instance offering identifier.</li>
--   <li><a>reioElasticsearchInstanceType</a> - The Elasticsearch instance
--   type offered by the reserved instance offering.</li>
--   <li><a>reioRecurringCharges</a> - The charge to your account
--   regardless of whether you are creating any domains using the instance
--   offering.</li>
--   <li><a>reioUsagePrice</a> - The rate you are charged for each hour the
--   domain that is using the offering is running.</li>
--   <li><a>reioFixedPrice</a> - The upfront fixed charge you will pay to
--   purchase the specific reserved Elasticsearch instance offering.</li>
--   <li><a>reioDuration</a> - The duration, in seconds, for which the
--   offering will reserve the Elasticsearch instance.</li>
--   <li><a>reioPaymentOption</a> - Payment option for the reserved
--   Elasticsearch instance offering</li>
--   </ul>
reservedElasticsearchInstanceOffering :: ReservedElasticsearchInstanceOffering

-- | The currency code for the reserved Elasticsearch instance offering.
reioCurrencyCode :: Lens' ReservedElasticsearchInstanceOffering (Maybe Text)

-- | The Elasticsearch reserved instance offering identifier.
reioReservedElasticsearchInstanceOfferingId :: Lens' ReservedElasticsearchInstanceOffering (Maybe Text)

-- | The Elasticsearch instance type offered by the reserved instance
--   offering.
reioElasticsearchInstanceType :: Lens' ReservedElasticsearchInstanceOffering (Maybe ESPartitionInstanceType)

-- | The charge to your account regardless of whether you are creating any
--   domains using the instance offering.
reioRecurringCharges :: Lens' ReservedElasticsearchInstanceOffering [RecurringCharge]

-- | The rate you are charged for each hour the domain that is using the
--   offering is running.
reioUsagePrice :: Lens' ReservedElasticsearchInstanceOffering (Maybe Double)

-- | The upfront fixed charge you will pay to purchase the specific
--   reserved Elasticsearch instance offering.
reioFixedPrice :: Lens' ReservedElasticsearchInstanceOffering (Maybe Double)

-- | The duration, in seconds, for which the offering will reserve the
--   Elasticsearch instance.
reioDuration :: Lens' ReservedElasticsearchInstanceOffering (Maybe Int)

-- | Payment option for the reserved Elasticsearch instance offering
reioPaymentOption :: Lens' ReservedElasticsearchInstanceOffering (Maybe ReservedElasticsearchInstancePaymentOption)

-- | Specifies the time, in UTC format, when the service takes a daily
--   automated snapshot of the specified Elasticsearch domain. Default
--   value is <tt>0</tt> hours.
--   
--   <i>See:</i> <a>snapshotOptions</a> smart constructor.
data SnapshotOptions

-- | Creates a value of <a>SnapshotOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>soAutomatedSnapshotStartHour</a> - Specifies the time, in UTC
--   format, when the service takes a daily automated snapshot of the
--   specified Elasticsearch domain. Default value is <tt>0</tt>
--   hours.</li>
--   </ul>
snapshotOptions :: SnapshotOptions

-- | Specifies the time, in UTC format, when the service takes a daily
--   automated snapshot of the specified Elasticsearch domain. Default
--   value is <tt>0</tt> hours.
soAutomatedSnapshotStartHour :: Lens' SnapshotOptions (Maybe Int)

-- | Status of a daily automated snapshot.
--   
--   <i>See:</i> <a>snapshotOptionsStatus</a> smart constructor.
data SnapshotOptionsStatus

-- | Creates a value of <a>SnapshotOptionsStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sosOptions</a> - Specifies the daily snapshot options specified
--   for the Elasticsearch domain.</li>
--   <li><a>sosStatus</a> - Specifies the status of a daily automated
--   snapshot.</li>
--   </ul>
snapshotOptionsStatus :: SnapshotOptions -> OptionStatus -> SnapshotOptionsStatus

-- | Specifies the daily snapshot options specified for the Elasticsearch
--   domain.
sosOptions :: Lens' SnapshotOptionsStatus SnapshotOptions

-- | Specifies the status of a daily automated snapshot.
sosStatus :: Lens' SnapshotOptionsStatus OptionStatus

-- | StorageTypes represents the list of storage related types and their
--   attributes that are available for given InstanceType.
--   
--   <i>See:</i> <a>storageType</a> smart constructor.
data StorageType

-- | Creates a value of <a>StorageType</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stStorageTypeLimits</a> - List of limits that are applicable
--   for given storage type.</li>
--   <li><a>stStorageSubTypeName</a> - Undocumented member.</li>
--   <li><a>stStorageTypeName</a> - Undocumented member.</li>
--   </ul>
storageType :: StorageType

-- | List of limits that are applicable for given storage type.
stStorageTypeLimits :: Lens' StorageType [StorageTypeLimit]

-- | Undocumented member.
stStorageSubTypeName :: Lens' StorageType (Maybe Text)

-- | Undocumented member.
stStorageTypeName :: Lens' StorageType (Maybe Text)

-- | Limits that are applicable for given storage type.
--   
--   <i>See:</i> <a>storageTypeLimit</a> smart constructor.
data StorageTypeLimit

-- | Creates a value of <a>StorageTypeLimit</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stlLimitName</a> - Name of storage limits that are applicable
--   for given storage type. If <tt><a>StorageType</a> </tt> is ebs,
--   following storage options are applicable * MinimumVolumeSizeMinimum
--   amount of volume size that is applicable for given storage type.It can
--   be empty if it is not applicable. * MaximumVolumeSizeMaximum amount of
--   volume size that is applicable for given storage type.It can be empty
--   if it is not applicable. * MaximumIopsMaximum amount of Iops that is
--   applicable for given storage type.It can be empty if it is not
--   applicable. * MinimumIopsMinimum amount of Iops that is applicable for
--   given storage type.It can be empty if it is not applicable.</li>
--   <li><a>stlLimitValues</a> - Values for the
--   <tt>'StorageTypeLimit$LimitName' </tt> .</li>
--   </ul>
storageTypeLimit :: StorageTypeLimit

-- | Name of storage limits that are applicable for given storage type. If
--   <tt><a>StorageType</a> </tt> is ebs, following storage options are
--   applicable * MinimumVolumeSizeMinimum amount of volume size that is
--   applicable for given storage type.It can be empty if it is not
--   applicable. * MaximumVolumeSizeMaximum amount of volume size that is
--   applicable for given storage type.It can be empty if it is not
--   applicable. * MaximumIopsMaximum amount of Iops that is applicable for
--   given storage type.It can be empty if it is not applicable. *
--   MinimumIopsMinimum amount of Iops that is applicable for given storage
--   type.It can be empty if it is not applicable.
stlLimitName :: Lens' StorageTypeLimit (Maybe Text)

-- | Values for the <tt>'StorageTypeLimit$LimitName' </tt> .
stlLimitValues :: Lens' StorageTypeLimit [Text]

-- | Specifies a key value pair for a resource tag.
--   
--   <i>See:</i> <a>tag</a> smart constructor.
data Tag

-- | Creates a value of <a>Tag</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tagKey</a> - Specifies the <tt>TagKey</tt> , the name of the
--   tag. Tag keys must be unique for the Elasticsearch domain to which
--   they are attached.</li>
--   <li><a>tagValue</a> - Specifies the <tt>TagValue</tt> , 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 <tt>project : Trinity</tt> and
--   <tt>cost-center : Trinity</tt></li>
--   </ul>
tag :: Text -> Text -> Tag

-- | Specifies the <tt>TagKey</tt> , the name of the tag. Tag keys must be
--   unique for the Elasticsearch domain to which they are attached.
tagKey :: Lens' Tag Text

-- | Specifies the <tt>TagValue</tt> , 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 <tt>project : Trinity</tt> and <tt>cost-center :
--   Trinity</tt>
tagValue :: Lens' Tag Text

-- | Options to specify the subnets and security groups for VPC endpoint.
--   For more information, see <a>VPC Endpoints for Amazon Elasticsearch
--   Service Domains</a> .
--   
--   <i>See:</i> <a>vpcDerivedInfo</a> smart constructor.
data VPCDerivedInfo

-- | Creates a value of <a>VPCDerivedInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vdiSecurityGroupIds</a> - Specifies the security groups for VPC
--   endpoint.</li>
--   <li><a>vdiSubnetIds</a> - Specifies the subnets for VPC endpoint.</li>
--   <li><a>vdiVPCId</a> - The VPC Id for the Elasticsearch domain. Exists
--   only if the domain was created with VPCOptions.</li>
--   <li><a>vdiAvailabilityZones</a> - The availability zones for the
--   Elasticsearch domain. Exists only if the domain was created with
--   VPCOptions.</li>
--   </ul>
vpcDerivedInfo :: VPCDerivedInfo

-- | Specifies the security groups for VPC endpoint.
vdiSecurityGroupIds :: Lens' VPCDerivedInfo [Text]

-- | Specifies the subnets for VPC endpoint.
vdiSubnetIds :: Lens' VPCDerivedInfo [Text]

-- | The VPC Id for the Elasticsearch domain. Exists only if the domain was
--   created with VPCOptions.
vdiVPCId :: Lens' VPCDerivedInfo (Maybe Text)

-- | The availability zones for the Elasticsearch domain. Exists only if
--   the domain was created with VPCOptions.
vdiAvailabilityZones :: Lens' VPCDerivedInfo [Text]

-- | Status of the VPC options for the specified Elasticsearch domain.
--   
--   <i>See:</i> <a>vpcDerivedInfoStatus</a> smart constructor.
data VPCDerivedInfoStatus

-- | Creates a value of <a>VPCDerivedInfoStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vdisOptions</a> - Specifies the VPC options for the specified
--   Elasticsearch domain.</li>
--   <li><a>vdisStatus</a> - Specifies the status of the VPC options for
--   the specified Elasticsearch domain.</li>
--   </ul>
vpcDerivedInfoStatus :: VPCDerivedInfo -> OptionStatus -> VPCDerivedInfoStatus

-- | Specifies the VPC options for the specified Elasticsearch domain.
vdisOptions :: Lens' VPCDerivedInfoStatus VPCDerivedInfo

-- | Specifies the status of the VPC options for the specified
--   Elasticsearch domain.
vdisStatus :: Lens' VPCDerivedInfoStatus OptionStatus

-- | Options to specify the subnets and security groups for VPC endpoint.
--   For more information, see <a>VPC Endpoints for Amazon Elasticsearch
--   Service Domains</a> .
--   
--   <i>See:</i> <a>vpcOptions</a> smart constructor.
data VPCOptions

-- | Creates a value of <a>VPCOptions</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>voSecurityGroupIds</a> - Specifies the security groups for VPC
--   endpoint.</li>
--   <li><a>voSubnetIds</a> - Specifies the subnets for VPC endpoint.</li>
--   </ul>
vpcOptions :: VPCOptions

-- | Specifies the security groups for VPC endpoint.
voSecurityGroupIds :: Lens' VPCOptions [Text]

-- | Specifies the subnets for VPC endpoint.
voSubnetIds :: Lens' VPCOptions [Text]
