{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.ElasticSearch.Types.ElasticsearchDomainStatus
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ElasticSearch.Types.ElasticsearchDomainStatus where

import qualified Amazonka.Core as Core
import Amazonka.ElasticSearch.Types.AdvancedSecurityOptions
import Amazonka.ElasticSearch.Types.AutoTuneOptionsOutput
import Amazonka.ElasticSearch.Types.CognitoOptions
import Amazonka.ElasticSearch.Types.DomainEndpointOptions
import Amazonka.ElasticSearch.Types.EBSOptions
import Amazonka.ElasticSearch.Types.ElasticsearchClusterConfig
import Amazonka.ElasticSearch.Types.EncryptionAtRestOptions
import Amazonka.ElasticSearch.Types.LogPublishingOption
import Amazonka.ElasticSearch.Types.LogType
import Amazonka.ElasticSearch.Types.NodeToNodeEncryptionOptions
import Amazonka.ElasticSearch.Types.ServiceSoftwareOptions
import Amazonka.ElasticSearch.Types.SnapshotOptions
import Amazonka.ElasticSearch.Types.VPCDerivedInfo
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | The current status of an Elasticsearch domain.
--
-- /See:/ 'newElasticsearchDomainStatus' smart constructor.
data ElasticsearchDomainStatus = ElasticsearchDomainStatus'
  { -- | The @EBSOptions@ for the specified domain. See
    -- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs Configuring EBS-based Storage>
    -- for more information.
    ElasticsearchDomainStatus -> Maybe EBSOptions
eBSOptions :: Prelude.Maybe EBSOptions,
    -- | Specifies the status of the @NodeToNodeEncryptionOptions@.
    ElasticsearchDomainStatus -> Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions :: Prelude.Maybe NodeToNodeEncryptionOptions,
    -- | IAM access policy as a JSON-formatted string.
    ElasticsearchDomainStatus -> Maybe Text
accessPolicies :: Prelude.Maybe Prelude.Text,
    -- | The current status of the Elasticsearch domain\'s service software.
    ElasticsearchDomainStatus -> Maybe ServiceSoftwareOptions
serviceSoftwareOptions :: Prelude.Maybe ServiceSoftwareOptions,
    -- | The current status of the Elasticsearch domain\'s Auto-Tune options.
    ElasticsearchDomainStatus -> Maybe AutoTuneOptionsOutput
autoTuneOptions :: Prelude.Maybe AutoTuneOptionsOutput,
    -- | Log publishing options for the given domain.
    ElasticsearchDomainStatus
-> Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions :: Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption),
    -- | The current status of the Elasticsearch domain\'s advanced security
    -- options.
    ElasticsearchDomainStatus -> Maybe AdvancedSecurityOptions
advancedSecurityOptions :: Prelude.Maybe AdvancedSecurityOptions,
    -- | The domain creation status. @True@ if the creation of an Elasticsearch
    -- domain is complete. @False@ if domain creation is still in progress.
    ElasticsearchDomainStatus -> Maybe Bool
created :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the status of the @SnapshotOptions@
    ElasticsearchDomainStatus -> Maybe SnapshotOptions
snapshotOptions :: Prelude.Maybe SnapshotOptions,
    -- | The @CognitoOptions@ for the specified domain. For more information, see
    -- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html Amazon Cognito Authentication for Kibana>.
    ElasticsearchDomainStatus -> Maybe CognitoOptions
cognitoOptions :: Prelude.Maybe CognitoOptions,
    -- | Specifies the status of the @EncryptionAtRestOptions@.
    ElasticsearchDomainStatus -> Maybe EncryptionAtRestOptions
encryptionAtRestOptions :: Prelude.Maybe EncryptionAtRestOptions,
    -- | The domain deletion status. @True@ if a delete request has been received
    -- for the domain but resource cleanup is still in progress. @False@ if the
    -- domain has not been deleted. Once domain deletion is complete, the
    -- status of the domain is no longer returned.
    ElasticsearchDomainStatus -> Maybe Bool
deleted :: Prelude.Maybe Prelude.Bool,
    -- | The @VPCOptions@ for the specified domain. For more information, see
    -- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html VPC Endpoints for Amazon Elasticsearch Service Domains>.
    ElasticsearchDomainStatus -> Maybe VPCDerivedInfo
vPCOptions :: Prelude.Maybe VPCDerivedInfo,
    -- | Map containing the Elasticsearch domain endpoints used to submit index
    -- and search requests. Example @key, value@:
    -- @\'vpc\',\'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com\'@.
    ElasticsearchDomainStatus -> Maybe (HashMap Text Text)
endpoints :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The current status of the Elasticsearch domain\'s endpoint options.
    ElasticsearchDomainStatus -> Maybe DomainEndpointOptions
domainEndpointOptions :: Prelude.Maybe DomainEndpointOptions,
    -- | The status of the Elasticsearch domain configuration. @True@ if Amazon
    -- Elasticsearch Service is processing configuration changes. @False@ if
    -- the configuration is active.
    ElasticsearchDomainStatus -> Maybe Bool
processing :: Prelude.Maybe Prelude.Bool,
    -- | The Elasticsearch domain endpoint that you use to submit index and
    -- search requests.
    ElasticsearchDomainStatus -> Maybe Text
endpoint :: Prelude.Maybe Prelude.Text,
    -- | The status of an Elasticsearch domain version upgrade. @True@ if Amazon
    -- Elasticsearch Service is undergoing a version upgrade. @False@ if the
    -- configuration is active.
    ElasticsearchDomainStatus -> Maybe Bool
upgradeProcessing :: Prelude.Maybe Prelude.Bool,
    -- | Specifies the status of the @AdvancedOptions@
    ElasticsearchDomainStatus -> Maybe (HashMap Text Text)
advancedOptions :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    ElasticsearchDomainStatus -> Maybe Text
elasticsearchVersion :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier for the specified Elasticsearch domain.
    ElasticsearchDomainStatus -> Text
domainId :: Prelude.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).
    ElasticsearchDomainStatus -> Text
domainName :: Prelude.Text,
    -- | The Amazon resource name (ARN) of an Elasticsearch domain. See
    -- <http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html Identifiers for IAM Entities>
    -- in /Using AWS Identity and Access Management/ for more information.
    ElasticsearchDomainStatus -> Text
arn :: Prelude.Text,
    -- | The type and number of instances in the domain cluster.
    ElasticsearchDomainStatus -> ElasticsearchClusterConfig
elasticsearchClusterConfig :: ElasticsearchClusterConfig
  }
  deriving (ElasticsearchDomainStatus -> ElasticsearchDomainStatus -> Bool
(ElasticsearchDomainStatus -> ElasticsearchDomainStatus -> Bool)
-> (ElasticsearchDomainStatus -> ElasticsearchDomainStatus -> Bool)
-> Eq ElasticsearchDomainStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ElasticsearchDomainStatus -> ElasticsearchDomainStatus -> Bool
$c/= :: ElasticsearchDomainStatus -> ElasticsearchDomainStatus -> Bool
== :: ElasticsearchDomainStatus -> ElasticsearchDomainStatus -> Bool
$c== :: ElasticsearchDomainStatus -> ElasticsearchDomainStatus -> Bool
Prelude.Eq, ReadPrec [ElasticsearchDomainStatus]
ReadPrec ElasticsearchDomainStatus
Int -> ReadS ElasticsearchDomainStatus
ReadS [ElasticsearchDomainStatus]
(Int -> ReadS ElasticsearchDomainStatus)
-> ReadS [ElasticsearchDomainStatus]
-> ReadPrec ElasticsearchDomainStatus
-> ReadPrec [ElasticsearchDomainStatus]
-> Read ElasticsearchDomainStatus
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ElasticsearchDomainStatus]
$creadListPrec :: ReadPrec [ElasticsearchDomainStatus]
readPrec :: ReadPrec ElasticsearchDomainStatus
$creadPrec :: ReadPrec ElasticsearchDomainStatus
readList :: ReadS [ElasticsearchDomainStatus]
$creadList :: ReadS [ElasticsearchDomainStatus]
readsPrec :: Int -> ReadS ElasticsearchDomainStatus
$creadsPrec :: Int -> ReadS ElasticsearchDomainStatus
Prelude.Read, Int -> ElasticsearchDomainStatus -> ShowS
[ElasticsearchDomainStatus] -> ShowS
ElasticsearchDomainStatus -> String
(Int -> ElasticsearchDomainStatus -> ShowS)
-> (ElasticsearchDomainStatus -> String)
-> ([ElasticsearchDomainStatus] -> ShowS)
-> Show ElasticsearchDomainStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ElasticsearchDomainStatus] -> ShowS
$cshowList :: [ElasticsearchDomainStatus] -> ShowS
show :: ElasticsearchDomainStatus -> String
$cshow :: ElasticsearchDomainStatus -> String
showsPrec :: Int -> ElasticsearchDomainStatus -> ShowS
$cshowsPrec :: Int -> ElasticsearchDomainStatus -> ShowS
Prelude.Show, (forall x.
 ElasticsearchDomainStatus -> Rep ElasticsearchDomainStatus x)
-> (forall x.
    Rep ElasticsearchDomainStatus x -> ElasticsearchDomainStatus)
-> Generic ElasticsearchDomainStatus
forall x.
Rep ElasticsearchDomainStatus x -> ElasticsearchDomainStatus
forall x.
ElasticsearchDomainStatus -> Rep ElasticsearchDomainStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ElasticsearchDomainStatus x -> ElasticsearchDomainStatus
$cfrom :: forall x.
ElasticsearchDomainStatus -> Rep ElasticsearchDomainStatus x
Prelude.Generic)

-- |
-- Create a value of 'ElasticsearchDomainStatus' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'eBSOptions', 'elasticsearchDomainStatus_eBSOptions' - The @EBSOptions@ for the specified domain. See
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs Configuring EBS-based Storage>
-- for more information.
--
-- 'nodeToNodeEncryptionOptions', 'elasticsearchDomainStatus_nodeToNodeEncryptionOptions' - Specifies the status of the @NodeToNodeEncryptionOptions@.
--
-- 'accessPolicies', 'elasticsearchDomainStatus_accessPolicies' - IAM access policy as a JSON-formatted string.
--
-- 'serviceSoftwareOptions', 'elasticsearchDomainStatus_serviceSoftwareOptions' - The current status of the Elasticsearch domain\'s service software.
--
-- 'autoTuneOptions', 'elasticsearchDomainStatus_autoTuneOptions' - The current status of the Elasticsearch domain\'s Auto-Tune options.
--
-- 'logPublishingOptions', 'elasticsearchDomainStatus_logPublishingOptions' - Log publishing options for the given domain.
--
-- 'advancedSecurityOptions', 'elasticsearchDomainStatus_advancedSecurityOptions' - The current status of the Elasticsearch domain\'s advanced security
-- options.
--
-- 'created', 'elasticsearchDomainStatus_created' - The domain creation status. @True@ if the creation of an Elasticsearch
-- domain is complete. @False@ if domain creation is still in progress.
--
-- 'snapshotOptions', 'elasticsearchDomainStatus_snapshotOptions' - Specifies the status of the @SnapshotOptions@
--
-- 'cognitoOptions', 'elasticsearchDomainStatus_cognitoOptions' - The @CognitoOptions@ for the specified domain. For more information, see
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html Amazon Cognito Authentication for Kibana>.
--
-- 'encryptionAtRestOptions', 'elasticsearchDomainStatus_encryptionAtRestOptions' - Specifies the status of the @EncryptionAtRestOptions@.
--
-- 'deleted', 'elasticsearchDomainStatus_deleted' - The domain deletion status. @True@ if a delete request has been received
-- for the domain but resource cleanup is still in progress. @False@ if the
-- domain has not been deleted. Once domain deletion is complete, the
-- status of the domain is no longer returned.
--
-- 'vPCOptions', 'elasticsearchDomainStatus_vPCOptions' - The @VPCOptions@ for the specified domain. For more information, see
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html VPC Endpoints for Amazon Elasticsearch Service Domains>.
--
-- 'endpoints', 'elasticsearchDomainStatus_endpoints' - Map containing the Elasticsearch domain endpoints used to submit index
-- and search requests. Example @key, value@:
-- @\'vpc\',\'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com\'@.
--
-- 'domainEndpointOptions', 'elasticsearchDomainStatus_domainEndpointOptions' - The current status of the Elasticsearch domain\'s endpoint options.
--
-- 'processing', 'elasticsearchDomainStatus_processing' - The status of the Elasticsearch domain configuration. @True@ if Amazon
-- Elasticsearch Service is processing configuration changes. @False@ if
-- the configuration is active.
--
-- 'endpoint', 'elasticsearchDomainStatus_endpoint' - The Elasticsearch domain endpoint that you use to submit index and
-- search requests.
--
-- 'upgradeProcessing', 'elasticsearchDomainStatus_upgradeProcessing' - The status of an Elasticsearch domain version upgrade. @True@ if Amazon
-- Elasticsearch Service is undergoing a version upgrade. @False@ if the
-- configuration is active.
--
-- 'advancedOptions', 'elasticsearchDomainStatus_advancedOptions' - Specifies the status of the @AdvancedOptions@
--
-- 'elasticsearchVersion', 'elasticsearchDomainStatus_elasticsearchVersion' - Undocumented member.
--
-- 'domainId', 'elasticsearchDomainStatus_domainId' - The unique identifier for the specified Elasticsearch domain.
--
-- 'domainName', 'elasticsearchDomainStatus_domainName' - 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).
--
-- 'arn', 'elasticsearchDomainStatus_arn' - The Amazon resource name (ARN) of an Elasticsearch domain. See
-- <http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html Identifiers for IAM Entities>
-- in /Using AWS Identity and Access Management/ for more information.
--
-- 'elasticsearchClusterConfig', 'elasticsearchDomainStatus_elasticsearchClusterConfig' - The type and number of instances in the domain cluster.
newElasticsearchDomainStatus ::
  -- | 'domainId'
  Prelude.Text ->
  -- | 'domainName'
  Prelude.Text ->
  -- | 'arn'
  Prelude.Text ->
  -- | 'elasticsearchClusterConfig'
  ElasticsearchClusterConfig ->
  ElasticsearchDomainStatus
newElasticsearchDomainStatus :: Text
-> Text
-> Text
-> ElasticsearchClusterConfig
-> ElasticsearchDomainStatus
newElasticsearchDomainStatus
  Text
pDomainId_
  Text
pDomainName_
  Text
pARN_
  ElasticsearchClusterConfig
pElasticsearchClusterConfig_ =
    ElasticsearchDomainStatus' :: Maybe EBSOptions
-> Maybe NodeToNodeEncryptionOptions
-> Maybe Text
-> Maybe ServiceSoftwareOptions
-> Maybe AutoTuneOptionsOutput
-> Maybe (HashMap LogType LogPublishingOption)
-> Maybe AdvancedSecurityOptions
-> Maybe Bool
-> Maybe SnapshotOptions
-> Maybe CognitoOptions
-> Maybe EncryptionAtRestOptions
-> Maybe Bool
-> Maybe VPCDerivedInfo
-> Maybe (HashMap Text Text)
-> Maybe DomainEndpointOptions
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Text
-> Text
-> Text
-> ElasticsearchClusterConfig
-> ElasticsearchDomainStatus
ElasticsearchDomainStatus'
      { $sel:eBSOptions:ElasticsearchDomainStatus' :: Maybe EBSOptions
eBSOptions =
          Maybe EBSOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:nodeToNodeEncryptionOptions:ElasticsearchDomainStatus' :: Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions = Maybe NodeToNodeEncryptionOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:accessPolicies:ElasticsearchDomainStatus' :: Maybe Text
accessPolicies = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:serviceSoftwareOptions:ElasticsearchDomainStatus' :: Maybe ServiceSoftwareOptions
serviceSoftwareOptions = Maybe ServiceSoftwareOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:autoTuneOptions:ElasticsearchDomainStatus' :: Maybe AutoTuneOptionsOutput
autoTuneOptions = Maybe AutoTuneOptionsOutput
forall a. Maybe a
Prelude.Nothing,
        $sel:logPublishingOptions:ElasticsearchDomainStatus' :: Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions = Maybe (HashMap LogType LogPublishingOption)
forall a. Maybe a
Prelude.Nothing,
        $sel:advancedSecurityOptions:ElasticsearchDomainStatus' :: Maybe AdvancedSecurityOptions
advancedSecurityOptions = Maybe AdvancedSecurityOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:created:ElasticsearchDomainStatus' :: Maybe Bool
created = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:snapshotOptions:ElasticsearchDomainStatus' :: Maybe SnapshotOptions
snapshotOptions = Maybe SnapshotOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:cognitoOptions:ElasticsearchDomainStatus' :: Maybe CognitoOptions
cognitoOptions = Maybe CognitoOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:encryptionAtRestOptions:ElasticsearchDomainStatus' :: Maybe EncryptionAtRestOptions
encryptionAtRestOptions = Maybe EncryptionAtRestOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:deleted:ElasticsearchDomainStatus' :: Maybe Bool
deleted = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:vPCOptions:ElasticsearchDomainStatus' :: Maybe VPCDerivedInfo
vPCOptions = Maybe VPCDerivedInfo
forall a. Maybe a
Prelude.Nothing,
        $sel:endpoints:ElasticsearchDomainStatus' :: Maybe (HashMap Text Text)
endpoints = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
        $sel:domainEndpointOptions:ElasticsearchDomainStatus' :: Maybe DomainEndpointOptions
domainEndpointOptions = Maybe DomainEndpointOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:processing:ElasticsearchDomainStatus' :: Maybe Bool
processing = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:endpoint:ElasticsearchDomainStatus' :: Maybe Text
endpoint = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:upgradeProcessing:ElasticsearchDomainStatus' :: Maybe Bool
upgradeProcessing = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:advancedOptions:ElasticsearchDomainStatus' :: Maybe (HashMap Text Text)
advancedOptions = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
        $sel:elasticsearchVersion:ElasticsearchDomainStatus' :: Maybe Text
elasticsearchVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:domainId:ElasticsearchDomainStatus' :: Text
domainId = Text
pDomainId_,
        $sel:domainName:ElasticsearchDomainStatus' :: Text
domainName = Text
pDomainName_,
        $sel:arn:ElasticsearchDomainStatus' :: Text
arn = Text
pARN_,
        $sel:elasticsearchClusterConfig:ElasticsearchDomainStatus' :: ElasticsearchClusterConfig
elasticsearchClusterConfig =
          ElasticsearchClusterConfig
pElasticsearchClusterConfig_
      }

-- | The @EBSOptions@ for the specified domain. See
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs Configuring EBS-based Storage>
-- for more information.
elasticsearchDomainStatus_eBSOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe EBSOptions)
elasticsearchDomainStatus_eBSOptions :: (Maybe EBSOptions -> f (Maybe EBSOptions))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_eBSOptions = (ElasticsearchDomainStatus -> Maybe EBSOptions)
-> (ElasticsearchDomainStatus
    -> Maybe EBSOptions -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe EBSOptions)
     (Maybe EBSOptions)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe EBSOptions
eBSOptions :: Maybe EBSOptions
$sel:eBSOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe EBSOptions
eBSOptions} -> Maybe EBSOptions
eBSOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe EBSOptions
a -> ElasticsearchDomainStatus
s {$sel:eBSOptions:ElasticsearchDomainStatus' :: Maybe EBSOptions
eBSOptions = Maybe EBSOptions
a} :: ElasticsearchDomainStatus)

-- | Specifies the status of the @NodeToNodeEncryptionOptions@.
elasticsearchDomainStatus_nodeToNodeEncryptionOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe NodeToNodeEncryptionOptions)
elasticsearchDomainStatus_nodeToNodeEncryptionOptions :: (Maybe NodeToNodeEncryptionOptions
 -> f (Maybe NodeToNodeEncryptionOptions))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_nodeToNodeEncryptionOptions = (ElasticsearchDomainStatus -> Maybe NodeToNodeEncryptionOptions)
-> (ElasticsearchDomainStatus
    -> Maybe NodeToNodeEncryptionOptions -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe NodeToNodeEncryptionOptions)
     (Maybe NodeToNodeEncryptionOptions)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions :: Maybe NodeToNodeEncryptionOptions
$sel:nodeToNodeEncryptionOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions} -> Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe NodeToNodeEncryptionOptions
a -> ElasticsearchDomainStatus
s {$sel:nodeToNodeEncryptionOptions:ElasticsearchDomainStatus' :: Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions = Maybe NodeToNodeEncryptionOptions
a} :: ElasticsearchDomainStatus)

-- | IAM access policy as a JSON-formatted string.
elasticsearchDomainStatus_accessPolicies :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe Prelude.Text)
elasticsearchDomainStatus_accessPolicies :: (Maybe Text -> f (Maybe Text))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_accessPolicies = (ElasticsearchDomainStatus -> Maybe Text)
-> (ElasticsearchDomainStatus
    -> Maybe Text -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe Text
accessPolicies :: Maybe Text
$sel:accessPolicies:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe Text
accessPolicies} -> Maybe Text
accessPolicies) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe Text
a -> ElasticsearchDomainStatus
s {$sel:accessPolicies:ElasticsearchDomainStatus' :: Maybe Text
accessPolicies = Maybe Text
a} :: ElasticsearchDomainStatus)

-- | The current status of the Elasticsearch domain\'s service software.
elasticsearchDomainStatus_serviceSoftwareOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe ServiceSoftwareOptions)
elasticsearchDomainStatus_serviceSoftwareOptions :: (Maybe ServiceSoftwareOptions -> f (Maybe ServiceSoftwareOptions))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_serviceSoftwareOptions = (ElasticsearchDomainStatus -> Maybe ServiceSoftwareOptions)
-> (ElasticsearchDomainStatus
    -> Maybe ServiceSoftwareOptions -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe ServiceSoftwareOptions)
     (Maybe ServiceSoftwareOptions)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe ServiceSoftwareOptions
serviceSoftwareOptions :: Maybe ServiceSoftwareOptions
$sel:serviceSoftwareOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe ServiceSoftwareOptions
serviceSoftwareOptions} -> Maybe ServiceSoftwareOptions
serviceSoftwareOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe ServiceSoftwareOptions
a -> ElasticsearchDomainStatus
s {$sel:serviceSoftwareOptions:ElasticsearchDomainStatus' :: Maybe ServiceSoftwareOptions
serviceSoftwareOptions = Maybe ServiceSoftwareOptions
a} :: ElasticsearchDomainStatus)

-- | The current status of the Elasticsearch domain\'s Auto-Tune options.
elasticsearchDomainStatus_autoTuneOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe AutoTuneOptionsOutput)
elasticsearchDomainStatus_autoTuneOptions :: (Maybe AutoTuneOptionsOutput -> f (Maybe AutoTuneOptionsOutput))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_autoTuneOptions = (ElasticsearchDomainStatus -> Maybe AutoTuneOptionsOutput)
-> (ElasticsearchDomainStatus
    -> Maybe AutoTuneOptionsOutput -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe AutoTuneOptionsOutput)
     (Maybe AutoTuneOptionsOutput)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe AutoTuneOptionsOutput
autoTuneOptions :: Maybe AutoTuneOptionsOutput
$sel:autoTuneOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe AutoTuneOptionsOutput
autoTuneOptions} -> Maybe AutoTuneOptionsOutput
autoTuneOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe AutoTuneOptionsOutput
a -> ElasticsearchDomainStatus
s {$sel:autoTuneOptions:ElasticsearchDomainStatus' :: Maybe AutoTuneOptionsOutput
autoTuneOptions = Maybe AutoTuneOptionsOutput
a} :: ElasticsearchDomainStatus)

-- | Log publishing options for the given domain.
elasticsearchDomainStatus_logPublishingOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption))
elasticsearchDomainStatus_logPublishingOptions :: (Maybe (HashMap LogType LogPublishingOption)
 -> f (Maybe (HashMap LogType LogPublishingOption)))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_logPublishingOptions = (ElasticsearchDomainStatus
 -> Maybe (HashMap LogType LogPublishingOption))
-> (ElasticsearchDomainStatus
    -> Maybe (HashMap LogType LogPublishingOption)
    -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe (HashMap LogType LogPublishingOption))
     (Maybe (HashMap LogType LogPublishingOption))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions :: Maybe (HashMap LogType LogPublishingOption)
$sel:logPublishingOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus
-> Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions} -> Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe (HashMap LogType LogPublishingOption)
a -> ElasticsearchDomainStatus
s {$sel:logPublishingOptions:ElasticsearchDomainStatus' :: Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions = Maybe (HashMap LogType LogPublishingOption)
a} :: ElasticsearchDomainStatus) ((Maybe (HashMap LogType LogPublishingOption)
  -> f (Maybe (HashMap LogType LogPublishingOption)))
 -> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus)
-> ((Maybe (HashMap LogType LogPublishingOption)
     -> f (Maybe (HashMap LogType LogPublishingOption)))
    -> Maybe (HashMap LogType LogPublishingOption)
    -> f (Maybe (HashMap LogType LogPublishingOption)))
-> (Maybe (HashMap LogType LogPublishingOption)
    -> f (Maybe (HashMap LogType LogPublishingOption)))
-> ElasticsearchDomainStatus
-> f ElasticsearchDomainStatus
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap LogType LogPublishingOption)
  (HashMap LogType LogPublishingOption)
  (HashMap LogType LogPublishingOption)
  (HashMap LogType LogPublishingOption)
-> Iso
     (Maybe (HashMap LogType LogPublishingOption))
     (Maybe (HashMap LogType LogPublishingOption))
     (Maybe (HashMap LogType LogPublishingOption))
     (Maybe (HashMap LogType LogPublishingOption))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  (HashMap LogType LogPublishingOption)
  (HashMap LogType LogPublishingOption)
  (HashMap LogType LogPublishingOption)
  (HashMap LogType LogPublishingOption)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The current status of the Elasticsearch domain\'s advanced security
-- options.
elasticsearchDomainStatus_advancedSecurityOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe AdvancedSecurityOptions)
elasticsearchDomainStatus_advancedSecurityOptions :: (Maybe AdvancedSecurityOptions
 -> f (Maybe AdvancedSecurityOptions))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_advancedSecurityOptions = (ElasticsearchDomainStatus -> Maybe AdvancedSecurityOptions)
-> (ElasticsearchDomainStatus
    -> Maybe AdvancedSecurityOptions -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe AdvancedSecurityOptions)
     (Maybe AdvancedSecurityOptions)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe AdvancedSecurityOptions
advancedSecurityOptions :: Maybe AdvancedSecurityOptions
$sel:advancedSecurityOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe AdvancedSecurityOptions
advancedSecurityOptions} -> Maybe AdvancedSecurityOptions
advancedSecurityOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe AdvancedSecurityOptions
a -> ElasticsearchDomainStatus
s {$sel:advancedSecurityOptions:ElasticsearchDomainStatus' :: Maybe AdvancedSecurityOptions
advancedSecurityOptions = Maybe AdvancedSecurityOptions
a} :: ElasticsearchDomainStatus)

-- | The domain creation status. @True@ if the creation of an Elasticsearch
-- domain is complete. @False@ if domain creation is still in progress.
elasticsearchDomainStatus_created :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe Prelude.Bool)
elasticsearchDomainStatus_created :: (Maybe Bool -> f (Maybe Bool))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_created = (ElasticsearchDomainStatus -> Maybe Bool)
-> (ElasticsearchDomainStatus
    -> Maybe Bool -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe Bool
created :: Maybe Bool
$sel:created:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe Bool
created} -> Maybe Bool
created) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe Bool
a -> ElasticsearchDomainStatus
s {$sel:created:ElasticsearchDomainStatus' :: Maybe Bool
created = Maybe Bool
a} :: ElasticsearchDomainStatus)

-- | Specifies the status of the @SnapshotOptions@
elasticsearchDomainStatus_snapshotOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe SnapshotOptions)
elasticsearchDomainStatus_snapshotOptions :: (Maybe SnapshotOptions -> f (Maybe SnapshotOptions))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_snapshotOptions = (ElasticsearchDomainStatus -> Maybe SnapshotOptions)
-> (ElasticsearchDomainStatus
    -> Maybe SnapshotOptions -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe SnapshotOptions)
     (Maybe SnapshotOptions)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe SnapshotOptions
snapshotOptions :: Maybe SnapshotOptions
$sel:snapshotOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe SnapshotOptions
snapshotOptions} -> Maybe SnapshotOptions
snapshotOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe SnapshotOptions
a -> ElasticsearchDomainStatus
s {$sel:snapshotOptions:ElasticsearchDomainStatus' :: Maybe SnapshotOptions
snapshotOptions = Maybe SnapshotOptions
a} :: ElasticsearchDomainStatus)

-- | The @CognitoOptions@ for the specified domain. For more information, see
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html Amazon Cognito Authentication for Kibana>.
elasticsearchDomainStatus_cognitoOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe CognitoOptions)
elasticsearchDomainStatus_cognitoOptions :: (Maybe CognitoOptions -> f (Maybe CognitoOptions))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_cognitoOptions = (ElasticsearchDomainStatus -> Maybe CognitoOptions)
-> (ElasticsearchDomainStatus
    -> Maybe CognitoOptions -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe CognitoOptions)
     (Maybe CognitoOptions)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe CognitoOptions
cognitoOptions :: Maybe CognitoOptions
$sel:cognitoOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe CognitoOptions
cognitoOptions} -> Maybe CognitoOptions
cognitoOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe CognitoOptions
a -> ElasticsearchDomainStatus
s {$sel:cognitoOptions:ElasticsearchDomainStatus' :: Maybe CognitoOptions
cognitoOptions = Maybe CognitoOptions
a} :: ElasticsearchDomainStatus)

-- | Specifies the status of the @EncryptionAtRestOptions@.
elasticsearchDomainStatus_encryptionAtRestOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe EncryptionAtRestOptions)
elasticsearchDomainStatus_encryptionAtRestOptions :: (Maybe EncryptionAtRestOptions
 -> f (Maybe EncryptionAtRestOptions))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_encryptionAtRestOptions = (ElasticsearchDomainStatus -> Maybe EncryptionAtRestOptions)
-> (ElasticsearchDomainStatus
    -> Maybe EncryptionAtRestOptions -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe EncryptionAtRestOptions)
     (Maybe EncryptionAtRestOptions)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe EncryptionAtRestOptions
encryptionAtRestOptions :: Maybe EncryptionAtRestOptions
$sel:encryptionAtRestOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe EncryptionAtRestOptions
encryptionAtRestOptions} -> Maybe EncryptionAtRestOptions
encryptionAtRestOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe EncryptionAtRestOptions
a -> ElasticsearchDomainStatus
s {$sel:encryptionAtRestOptions:ElasticsearchDomainStatus' :: Maybe EncryptionAtRestOptions
encryptionAtRestOptions = Maybe EncryptionAtRestOptions
a} :: ElasticsearchDomainStatus)

-- | The domain deletion status. @True@ if a delete request has been received
-- for the domain but resource cleanup is still in progress. @False@ if the
-- domain has not been deleted. Once domain deletion is complete, the
-- status of the domain is no longer returned.
elasticsearchDomainStatus_deleted :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe Prelude.Bool)
elasticsearchDomainStatus_deleted :: (Maybe Bool -> f (Maybe Bool))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_deleted = (ElasticsearchDomainStatus -> Maybe Bool)
-> (ElasticsearchDomainStatus
    -> Maybe Bool -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe Bool
deleted :: Maybe Bool
$sel:deleted:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe Bool
deleted} -> Maybe Bool
deleted) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe Bool
a -> ElasticsearchDomainStatus
s {$sel:deleted:ElasticsearchDomainStatus' :: Maybe Bool
deleted = Maybe Bool
a} :: ElasticsearchDomainStatus)

-- | The @VPCOptions@ for the specified domain. For more information, see
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html VPC Endpoints for Amazon Elasticsearch Service Domains>.
elasticsearchDomainStatus_vPCOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe VPCDerivedInfo)
elasticsearchDomainStatus_vPCOptions :: (Maybe VPCDerivedInfo -> f (Maybe VPCDerivedInfo))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_vPCOptions = (ElasticsearchDomainStatus -> Maybe VPCDerivedInfo)
-> (ElasticsearchDomainStatus
    -> Maybe VPCDerivedInfo -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe VPCDerivedInfo)
     (Maybe VPCDerivedInfo)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe VPCDerivedInfo
vPCOptions :: Maybe VPCDerivedInfo
$sel:vPCOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe VPCDerivedInfo
vPCOptions} -> Maybe VPCDerivedInfo
vPCOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe VPCDerivedInfo
a -> ElasticsearchDomainStatus
s {$sel:vPCOptions:ElasticsearchDomainStatus' :: Maybe VPCDerivedInfo
vPCOptions = Maybe VPCDerivedInfo
a} :: ElasticsearchDomainStatus)

-- | Map containing the Elasticsearch domain endpoints used to submit index
-- and search requests. Example @key, value@:
-- @\'vpc\',\'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com\'@.
elasticsearchDomainStatus_endpoints :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
elasticsearchDomainStatus_endpoints :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_endpoints = (ElasticsearchDomainStatus -> Maybe (HashMap Text Text))
-> (ElasticsearchDomainStatus
    -> Maybe (HashMap Text Text) -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe (HashMap Text Text)
endpoints :: Maybe (HashMap Text Text)
$sel:endpoints:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe (HashMap Text Text)
endpoints} -> Maybe (HashMap Text Text)
endpoints) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe (HashMap Text Text)
a -> ElasticsearchDomainStatus
s {$sel:endpoints:ElasticsearchDomainStatus' :: Maybe (HashMap Text Text)
endpoints = Maybe (HashMap Text Text)
a} :: ElasticsearchDomainStatus) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> ElasticsearchDomainStatus
-> f ElasticsearchDomainStatus
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The current status of the Elasticsearch domain\'s endpoint options.
elasticsearchDomainStatus_domainEndpointOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe DomainEndpointOptions)
elasticsearchDomainStatus_domainEndpointOptions :: (Maybe DomainEndpointOptions -> f (Maybe DomainEndpointOptions))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_domainEndpointOptions = (ElasticsearchDomainStatus -> Maybe DomainEndpointOptions)
-> (ElasticsearchDomainStatus
    -> Maybe DomainEndpointOptions -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe DomainEndpointOptions)
     (Maybe DomainEndpointOptions)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe DomainEndpointOptions
domainEndpointOptions :: Maybe DomainEndpointOptions
$sel:domainEndpointOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe DomainEndpointOptions
domainEndpointOptions} -> Maybe DomainEndpointOptions
domainEndpointOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe DomainEndpointOptions
a -> ElasticsearchDomainStatus
s {$sel:domainEndpointOptions:ElasticsearchDomainStatus' :: Maybe DomainEndpointOptions
domainEndpointOptions = Maybe DomainEndpointOptions
a} :: ElasticsearchDomainStatus)

-- | The status of the Elasticsearch domain configuration. @True@ if Amazon
-- Elasticsearch Service is processing configuration changes. @False@ if
-- the configuration is active.
elasticsearchDomainStatus_processing :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe Prelude.Bool)
elasticsearchDomainStatus_processing :: (Maybe Bool -> f (Maybe Bool))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_processing = (ElasticsearchDomainStatus -> Maybe Bool)
-> (ElasticsearchDomainStatus
    -> Maybe Bool -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe Bool
processing :: Maybe Bool
$sel:processing:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe Bool
processing} -> Maybe Bool
processing) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe Bool
a -> ElasticsearchDomainStatus
s {$sel:processing:ElasticsearchDomainStatus' :: Maybe Bool
processing = Maybe Bool
a} :: ElasticsearchDomainStatus)

-- | The Elasticsearch domain endpoint that you use to submit index and
-- search requests.
elasticsearchDomainStatus_endpoint :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe Prelude.Text)
elasticsearchDomainStatus_endpoint :: (Maybe Text -> f (Maybe Text))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_endpoint = (ElasticsearchDomainStatus -> Maybe Text)
-> (ElasticsearchDomainStatus
    -> Maybe Text -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe Text
endpoint :: Maybe Text
$sel:endpoint:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe Text
endpoint} -> Maybe Text
endpoint) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe Text
a -> ElasticsearchDomainStatus
s {$sel:endpoint:ElasticsearchDomainStatus' :: Maybe Text
endpoint = Maybe Text
a} :: ElasticsearchDomainStatus)

-- | The status of an Elasticsearch domain version upgrade. @True@ if Amazon
-- Elasticsearch Service is undergoing a version upgrade. @False@ if the
-- configuration is active.
elasticsearchDomainStatus_upgradeProcessing :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe Prelude.Bool)
elasticsearchDomainStatus_upgradeProcessing :: (Maybe Bool -> f (Maybe Bool))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_upgradeProcessing = (ElasticsearchDomainStatus -> Maybe Bool)
-> (ElasticsearchDomainStatus
    -> Maybe Bool -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe Bool
upgradeProcessing :: Maybe Bool
$sel:upgradeProcessing:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe Bool
upgradeProcessing} -> Maybe Bool
upgradeProcessing) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe Bool
a -> ElasticsearchDomainStatus
s {$sel:upgradeProcessing:ElasticsearchDomainStatus' :: Maybe Bool
upgradeProcessing = Maybe Bool
a} :: ElasticsearchDomainStatus)

-- | Specifies the status of the @AdvancedOptions@
elasticsearchDomainStatus_advancedOptions :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
elasticsearchDomainStatus_advancedOptions :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_advancedOptions = (ElasticsearchDomainStatus -> Maybe (HashMap Text Text))
-> (ElasticsearchDomainStatus
    -> Maybe (HashMap Text Text) -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe (HashMap Text Text)
advancedOptions :: Maybe (HashMap Text Text)
$sel:advancedOptions:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe (HashMap Text Text)
advancedOptions} -> Maybe (HashMap Text Text)
advancedOptions) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe (HashMap Text Text)
a -> ElasticsearchDomainStatus
s {$sel:advancedOptions:ElasticsearchDomainStatus' :: Maybe (HashMap Text Text)
advancedOptions = Maybe (HashMap Text Text)
a} :: ElasticsearchDomainStatus) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> ElasticsearchDomainStatus
-> f ElasticsearchDomainStatus
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Undocumented member.
elasticsearchDomainStatus_elasticsearchVersion :: Lens.Lens' ElasticsearchDomainStatus (Prelude.Maybe Prelude.Text)
elasticsearchDomainStatus_elasticsearchVersion :: (Maybe Text -> f (Maybe Text))
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_elasticsearchVersion = (ElasticsearchDomainStatus -> Maybe Text)
-> (ElasticsearchDomainStatus
    -> Maybe Text -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Maybe Text
elasticsearchVersion :: Maybe Text
$sel:elasticsearchVersion:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Maybe Text
elasticsearchVersion} -> Maybe Text
elasticsearchVersion) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Maybe Text
a -> ElasticsearchDomainStatus
s {$sel:elasticsearchVersion:ElasticsearchDomainStatus' :: Maybe Text
elasticsearchVersion = Maybe Text
a} :: ElasticsearchDomainStatus)

-- | The unique identifier for the specified Elasticsearch domain.
elasticsearchDomainStatus_domainId :: Lens.Lens' ElasticsearchDomainStatus Prelude.Text
elasticsearchDomainStatus_domainId :: (Text -> f Text)
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_domainId = (ElasticsearchDomainStatus -> Text)
-> (ElasticsearchDomainStatus -> Text -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus ElasticsearchDomainStatus Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Text
domainId :: Text
$sel:domainId:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Text
domainId} -> Text
domainId) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Text
a -> ElasticsearchDomainStatus
s {$sel:domainId:ElasticsearchDomainStatus' :: Text
domainId = Text
a} :: ElasticsearchDomainStatus)

-- | 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).
elasticsearchDomainStatus_domainName :: Lens.Lens' ElasticsearchDomainStatus Prelude.Text
elasticsearchDomainStatus_domainName :: (Text -> f Text)
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_domainName = (ElasticsearchDomainStatus -> Text)
-> (ElasticsearchDomainStatus -> Text -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus ElasticsearchDomainStatus Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Text
domainName :: Text
$sel:domainName:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Text
domainName} -> Text
domainName) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Text
a -> ElasticsearchDomainStatus
s {$sel:domainName:ElasticsearchDomainStatus' :: Text
domainName = Text
a} :: ElasticsearchDomainStatus)

-- | The Amazon resource name (ARN) of an Elasticsearch domain. See
-- <http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html Identifiers for IAM Entities>
-- in /Using AWS Identity and Access Management/ for more information.
elasticsearchDomainStatus_arn :: Lens.Lens' ElasticsearchDomainStatus Prelude.Text
elasticsearchDomainStatus_arn :: (Text -> f Text)
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_arn = (ElasticsearchDomainStatus -> Text)
-> (ElasticsearchDomainStatus -> Text -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus ElasticsearchDomainStatus Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {Text
arn :: Text
$sel:arn:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> Text
arn} -> Text
arn) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} Text
a -> ElasticsearchDomainStatus
s {$sel:arn:ElasticsearchDomainStatus' :: Text
arn = Text
a} :: ElasticsearchDomainStatus)

-- | The type and number of instances in the domain cluster.
elasticsearchDomainStatus_elasticsearchClusterConfig :: Lens.Lens' ElasticsearchDomainStatus ElasticsearchClusterConfig
elasticsearchDomainStatus_elasticsearchClusterConfig :: (ElasticsearchClusterConfig -> f ElasticsearchClusterConfig)
-> ElasticsearchDomainStatus -> f ElasticsearchDomainStatus
elasticsearchDomainStatus_elasticsearchClusterConfig = (ElasticsearchDomainStatus -> ElasticsearchClusterConfig)
-> (ElasticsearchDomainStatus
    -> ElasticsearchClusterConfig -> ElasticsearchDomainStatus)
-> Lens
     ElasticsearchDomainStatus
     ElasticsearchDomainStatus
     ElasticsearchClusterConfig
     ElasticsearchClusterConfig
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainStatus' {ElasticsearchClusterConfig
elasticsearchClusterConfig :: ElasticsearchClusterConfig
$sel:elasticsearchClusterConfig:ElasticsearchDomainStatus' :: ElasticsearchDomainStatus -> ElasticsearchClusterConfig
elasticsearchClusterConfig} -> ElasticsearchClusterConfig
elasticsearchClusterConfig) (\s :: ElasticsearchDomainStatus
s@ElasticsearchDomainStatus' {} ElasticsearchClusterConfig
a -> ElasticsearchDomainStatus
s {$sel:elasticsearchClusterConfig:ElasticsearchDomainStatus' :: ElasticsearchClusterConfig
elasticsearchClusterConfig = ElasticsearchClusterConfig
a} :: ElasticsearchDomainStatus)

instance Core.FromJSON ElasticsearchDomainStatus where
  parseJSON :: Value -> Parser ElasticsearchDomainStatus
parseJSON =
    String
-> (Object -> Parser ElasticsearchDomainStatus)
-> Value
-> Parser ElasticsearchDomainStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"ElasticsearchDomainStatus"
      ( \Object
x ->
          Maybe EBSOptions
-> Maybe NodeToNodeEncryptionOptions
-> Maybe Text
-> Maybe ServiceSoftwareOptions
-> Maybe AutoTuneOptionsOutput
-> Maybe (HashMap LogType LogPublishingOption)
-> Maybe AdvancedSecurityOptions
-> Maybe Bool
-> Maybe SnapshotOptions
-> Maybe CognitoOptions
-> Maybe EncryptionAtRestOptions
-> Maybe Bool
-> Maybe VPCDerivedInfo
-> Maybe (HashMap Text Text)
-> Maybe DomainEndpointOptions
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Text
-> Text
-> Text
-> ElasticsearchClusterConfig
-> ElasticsearchDomainStatus
ElasticsearchDomainStatus'
            (Maybe EBSOptions
 -> Maybe NodeToNodeEncryptionOptions
 -> Maybe Text
 -> Maybe ServiceSoftwareOptions
 -> Maybe AutoTuneOptionsOutput
 -> Maybe (HashMap LogType LogPublishingOption)
 -> Maybe AdvancedSecurityOptions
 -> Maybe Bool
 -> Maybe SnapshotOptions
 -> Maybe CognitoOptions
 -> Maybe EncryptionAtRestOptions
 -> Maybe Bool
 -> Maybe VPCDerivedInfo
 -> Maybe (HashMap Text Text)
 -> Maybe DomainEndpointOptions
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Bool
 -> Maybe (HashMap Text Text)
 -> Maybe Text
 -> Text
 -> Text
 -> Text
 -> ElasticsearchClusterConfig
 -> ElasticsearchDomainStatus)
-> Parser (Maybe EBSOptions)
-> Parser
     (Maybe NodeToNodeEncryptionOptions
      -> Maybe Text
      -> Maybe ServiceSoftwareOptions
      -> Maybe AutoTuneOptionsOutput
      -> Maybe (HashMap LogType LogPublishingOption)
      -> Maybe AdvancedSecurityOptions
      -> Maybe Bool
      -> Maybe SnapshotOptions
      -> Maybe CognitoOptions
      -> Maybe EncryptionAtRestOptions
      -> Maybe Bool
      -> Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe EBSOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"EBSOptions")
            Parser
  (Maybe NodeToNodeEncryptionOptions
   -> Maybe Text
   -> Maybe ServiceSoftwareOptions
   -> Maybe AutoTuneOptionsOutput
   -> Maybe (HashMap LogType LogPublishingOption)
   -> Maybe AdvancedSecurityOptions
   -> Maybe Bool
   -> Maybe SnapshotOptions
   -> Maybe CognitoOptions
   -> Maybe EncryptionAtRestOptions
   -> Maybe Bool
   -> Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe NodeToNodeEncryptionOptions)
-> Parser
     (Maybe Text
      -> Maybe ServiceSoftwareOptions
      -> Maybe AutoTuneOptionsOutput
      -> Maybe (HashMap LogType LogPublishingOption)
      -> Maybe AdvancedSecurityOptions
      -> Maybe Bool
      -> Maybe SnapshotOptions
      -> Maybe CognitoOptions
      -> Maybe EncryptionAtRestOptions
      -> Maybe Bool
      -> Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe NodeToNodeEncryptionOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"NodeToNodeEncryptionOptions")
            Parser
  (Maybe Text
   -> Maybe ServiceSoftwareOptions
   -> Maybe AutoTuneOptionsOutput
   -> Maybe (HashMap LogType LogPublishingOption)
   -> Maybe AdvancedSecurityOptions
   -> Maybe Bool
   -> Maybe SnapshotOptions
   -> Maybe CognitoOptions
   -> Maybe EncryptionAtRestOptions
   -> Maybe Bool
   -> Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe ServiceSoftwareOptions
      -> Maybe AutoTuneOptionsOutput
      -> Maybe (HashMap LogType LogPublishingOption)
      -> Maybe AdvancedSecurityOptions
      -> Maybe Bool
      -> Maybe SnapshotOptions
      -> Maybe CognitoOptions
      -> Maybe EncryptionAtRestOptions
      -> Maybe Bool
      -> Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AccessPolicies")
            Parser
  (Maybe ServiceSoftwareOptions
   -> Maybe AutoTuneOptionsOutput
   -> Maybe (HashMap LogType LogPublishingOption)
   -> Maybe AdvancedSecurityOptions
   -> Maybe Bool
   -> Maybe SnapshotOptions
   -> Maybe CognitoOptions
   -> Maybe EncryptionAtRestOptions
   -> Maybe Bool
   -> Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe ServiceSoftwareOptions)
-> Parser
     (Maybe AutoTuneOptionsOutput
      -> Maybe (HashMap LogType LogPublishingOption)
      -> Maybe AdvancedSecurityOptions
      -> Maybe Bool
      -> Maybe SnapshotOptions
      -> Maybe CognitoOptions
      -> Maybe EncryptionAtRestOptions
      -> Maybe Bool
      -> Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ServiceSoftwareOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ServiceSoftwareOptions")
            Parser
  (Maybe AutoTuneOptionsOutput
   -> Maybe (HashMap LogType LogPublishingOption)
   -> Maybe AdvancedSecurityOptions
   -> Maybe Bool
   -> Maybe SnapshotOptions
   -> Maybe CognitoOptions
   -> Maybe EncryptionAtRestOptions
   -> Maybe Bool
   -> Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe AutoTuneOptionsOutput)
-> Parser
     (Maybe (HashMap LogType LogPublishingOption)
      -> Maybe AdvancedSecurityOptions
      -> Maybe Bool
      -> Maybe SnapshotOptions
      -> Maybe CognitoOptions
      -> Maybe EncryptionAtRestOptions
      -> Maybe Bool
      -> Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AutoTuneOptionsOutput)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AutoTuneOptions")
            Parser
  (Maybe (HashMap LogType LogPublishingOption)
   -> Maybe AdvancedSecurityOptions
   -> Maybe Bool
   -> Maybe SnapshotOptions
   -> Maybe CognitoOptions
   -> Maybe EncryptionAtRestOptions
   -> Maybe Bool
   -> Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe (HashMap LogType LogPublishingOption))
-> Parser
     (Maybe AdvancedSecurityOptions
      -> Maybe Bool
      -> Maybe SnapshotOptions
      -> Maybe CognitoOptions
      -> Maybe EncryptionAtRestOptions
      -> Maybe Bool
      -> Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Parser (Maybe (Maybe (HashMap LogType LogPublishingOption)))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"LogPublishingOptions"
                            Parser (Maybe (Maybe (HashMap LogType LogPublishingOption)))
-> Maybe (HashMap LogType LogPublishingOption)
-> Parser (Maybe (HashMap LogType LogPublishingOption))
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe (HashMap LogType LogPublishingOption)
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe AdvancedSecurityOptions
   -> Maybe Bool
   -> Maybe SnapshotOptions
   -> Maybe CognitoOptions
   -> Maybe EncryptionAtRestOptions
   -> Maybe Bool
   -> Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe AdvancedSecurityOptions)
-> Parser
     (Maybe Bool
      -> Maybe SnapshotOptions
      -> Maybe CognitoOptions
      -> Maybe EncryptionAtRestOptions
      -> Maybe Bool
      -> Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AdvancedSecurityOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AdvancedSecurityOptions")
            Parser
  (Maybe Bool
   -> Maybe SnapshotOptions
   -> Maybe CognitoOptions
   -> Maybe EncryptionAtRestOptions
   -> Maybe Bool
   -> Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe Bool)
-> Parser
     (Maybe SnapshotOptions
      -> Maybe CognitoOptions
      -> Maybe EncryptionAtRestOptions
      -> Maybe Bool
      -> Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Created")
            Parser
  (Maybe SnapshotOptions
   -> Maybe CognitoOptions
   -> Maybe EncryptionAtRestOptions
   -> Maybe Bool
   -> Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe SnapshotOptions)
-> Parser
     (Maybe CognitoOptions
      -> Maybe EncryptionAtRestOptions
      -> Maybe Bool
      -> Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe SnapshotOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"SnapshotOptions")
            Parser
  (Maybe CognitoOptions
   -> Maybe EncryptionAtRestOptions
   -> Maybe Bool
   -> Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe CognitoOptions)
-> Parser
     (Maybe EncryptionAtRestOptions
      -> Maybe Bool
      -> Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe CognitoOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CognitoOptions")
            Parser
  (Maybe EncryptionAtRestOptions
   -> Maybe Bool
   -> Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe EncryptionAtRestOptions)
-> Parser
     (Maybe Bool
      -> Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe EncryptionAtRestOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"EncryptionAtRestOptions")
            Parser
  (Maybe Bool
   -> Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe Bool)
-> Parser
     (Maybe VPCDerivedInfo
      -> Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Deleted")
            Parser
  (Maybe VPCDerivedInfo
   -> Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe VPCDerivedInfo)
-> Parser
     (Maybe (HashMap Text Text)
      -> Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe VPCDerivedInfo)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"VPCOptions")
            Parser
  (Maybe (HashMap Text Text)
   -> Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe (HashMap Text Text))
-> Parser
     (Maybe DomainEndpointOptions
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe (HashMap Text Text)))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Endpoints" Parser (Maybe (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text) -> Parser (Maybe (HashMap Text Text))
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe (HashMap Text Text)
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe DomainEndpointOptions
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe DomainEndpointOptions)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DomainEndpointOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DomainEndpointOptions")
            Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Processing")
            Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Endpoint")
            Parser
  (Maybe Bool
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe Bool)
-> Parser
     (Maybe (HashMap Text Text)
      -> Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"UpgradeProcessing")
            Parser
  (Maybe (HashMap Text Text)
   -> Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe (HashMap Text Text))
-> Parser
     (Maybe Text
      -> Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe (HashMap Text Text)))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AdvancedOptions"
                            Parser (Maybe (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text) -> Parser (Maybe (HashMap Text Text))
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe (HashMap Text Text)
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Text
      -> Text
      -> ElasticsearchClusterConfig
      -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ElasticsearchVersion")
            Parser
  (Text
   -> Text
   -> Text
   -> ElasticsearchClusterConfig
   -> ElasticsearchDomainStatus)
-> Parser Text
-> Parser
     (Text
      -> Text -> ElasticsearchClusterConfig -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"DomainId")
            Parser
  (Text
   -> Text -> ElasticsearchClusterConfig -> ElasticsearchDomainStatus)
-> Parser Text
-> Parser
     (Text -> ElasticsearchClusterConfig -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"DomainName")
            Parser
  (Text -> ElasticsearchClusterConfig -> ElasticsearchDomainStatus)
-> Parser Text
-> Parser (ElasticsearchClusterConfig -> ElasticsearchDomainStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"ARN")
            Parser (ElasticsearchClusterConfig -> ElasticsearchDomainStatus)
-> Parser ElasticsearchClusterConfig
-> Parser ElasticsearchDomainStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser ElasticsearchClusterConfig
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"ElasticsearchClusterConfig")
      )

instance Prelude.Hashable ElasticsearchDomainStatus

instance Prelude.NFData ElasticsearchDomainStatus