-- 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.4.5


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
I2_2XLarge_Elasticsearch :: ESPartitionInstanceType
I2_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
T2_Medium_Elasticsearch :: ESPartitionInstanceType
T2_Micro_Elasticsearch :: ESPartitionInstanceType
T2_Small_Elasticsearch :: ESPartitionInstanceType

-- | 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

-- | 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

-- | 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

-- | <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>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>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)

-- | 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)

-- | 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>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>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>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)

-- | 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 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 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

-- | 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

-- | 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

-- | 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


-- | 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>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>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)

-- | 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)

-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.UpdateElasticsearchDomainConfig.UpdateElasticsearchDomainConfigResponse


module Network.AWS.ElasticSearch.Waiters


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.RemoveTags.RemoveTagsResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.ListTags.ListTagsResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.ListDomainNames.ListDomainNamesResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeElasticsearchDomains.DescribeElasticsearchDomainsResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeElasticsearchDomainConfig.DescribeElasticsearchDomainConfigResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DescribeElasticsearchDomain.DescribeElasticsearchDomainResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.DeleteElasticsearchDomain.DeleteElasticsearchDomainResponse


-- | 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>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>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)

-- | 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)

-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.CreateElasticsearchDomain.CreateElasticsearchDomainResponse


-- | 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 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
instance Control.DeepSeq.NFData Network.AWS.ElasticSearch.AddTags.AddTagsResponse


-- | <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
I2_2XLarge_Elasticsearch :: ESPartitionInstanceType
I2_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
T2_Medium_Elasticsearch :: ESPartitionInstanceType
T2_Micro_Elasticsearch :: ESPartitionInstanceType
T2_Small_Elasticsearch :: ESPartitionInstanceType

-- | 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

-- | 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

-- | 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

-- | <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>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>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)

-- | 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)

-- | 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>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>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>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)

-- | 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 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 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

-- | 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

-- | 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

-- | 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
