{-# 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.ElasticsearchDomainConfig
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ElasticSearch.Types.ElasticsearchDomainConfig where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ElasticSearch.Types.AccessPoliciesStatus
import Amazonka.ElasticSearch.Types.AdvancedOptionsStatus
import Amazonka.ElasticSearch.Types.AdvancedSecurityOptionsStatus
import Amazonka.ElasticSearch.Types.AutoTuneOptionsStatus
import Amazonka.ElasticSearch.Types.ChangeProgressDetails
import Amazonka.ElasticSearch.Types.CognitoOptionsStatus
import Amazonka.ElasticSearch.Types.DomainEndpointOptionsStatus
import Amazonka.ElasticSearch.Types.EBSOptionsStatus
import Amazonka.ElasticSearch.Types.ElasticsearchClusterConfigStatus
import Amazonka.ElasticSearch.Types.ElasticsearchVersionStatus
import Amazonka.ElasticSearch.Types.EncryptionAtRestOptionsStatus
import Amazonka.ElasticSearch.Types.LogPublishingOptionsStatus
import Amazonka.ElasticSearch.Types.NodeToNodeEncryptionOptionsStatus
import Amazonka.ElasticSearch.Types.SnapshotOptionsStatus
import Amazonka.ElasticSearch.Types.VPCDerivedInfoStatus
import qualified Amazonka.Prelude as Prelude

-- | The configuration of an Elasticsearch domain.
--
-- /See:/ 'newElasticsearchDomainConfig' smart constructor.
data ElasticsearchDomainConfig = ElasticsearchDomainConfig'
  { -- | IAM access policy as a JSON-formatted string.
    ElasticsearchDomainConfig -> Maybe AccessPoliciesStatus
accessPolicies :: Prelude.Maybe AccessPoliciesStatus,
    -- | Specifies the @AdvancedOptions@ for the domain. See
    -- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options Configuring Advanced Options>
    -- for more information.
    ElasticsearchDomainConfig -> Maybe AdvancedOptionsStatus
advancedOptions :: Prelude.Maybe AdvancedOptionsStatus,
    -- | Specifies @AdvancedSecurityOptions@ for the domain.
    ElasticsearchDomainConfig -> Maybe AdvancedSecurityOptionsStatus
advancedSecurityOptions :: Prelude.Maybe AdvancedSecurityOptionsStatus,
    -- | Specifies @AutoTuneOptions@ for the domain.
    ElasticsearchDomainConfig -> Maybe AutoTuneOptionsStatus
autoTuneOptions :: Prelude.Maybe AutoTuneOptionsStatus,
    -- | Specifies change details of the domain configuration change.
    ElasticsearchDomainConfig -> Maybe ChangeProgressDetails
changeProgressDetails :: Prelude.Maybe ChangeProgressDetails,
    -- | 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>.
    ElasticsearchDomainConfig -> Maybe CognitoOptionsStatus
cognitoOptions :: Prelude.Maybe CognitoOptionsStatus,
    -- | Specifies the @DomainEndpointOptions@ for the Elasticsearch domain.
    ElasticsearchDomainConfig -> Maybe DomainEndpointOptionsStatus
domainEndpointOptions :: Prelude.Maybe DomainEndpointOptionsStatus,
    -- | Specifies the @EBSOptions@ for the Elasticsearch domain.
    ElasticsearchDomainConfig -> Maybe EBSOptionsStatus
eBSOptions :: Prelude.Maybe EBSOptionsStatus,
    -- | Specifies the @ElasticsearchClusterConfig@ for the Elasticsearch domain.
    ElasticsearchDomainConfig -> Maybe ElasticsearchClusterConfigStatus
elasticsearchClusterConfig :: Prelude.Maybe ElasticsearchClusterConfigStatus,
    -- | String of format X.Y to specify version for the Elasticsearch domain.
    ElasticsearchDomainConfig -> Maybe ElasticsearchVersionStatus
elasticsearchVersion :: Prelude.Maybe ElasticsearchVersionStatus,
    -- | Specifies the @EncryptionAtRestOptions@ for the Elasticsearch domain.
    ElasticsearchDomainConfig -> Maybe EncryptionAtRestOptionsStatus
encryptionAtRestOptions :: Prelude.Maybe EncryptionAtRestOptionsStatus,
    -- | Log publishing options for the given domain.
    ElasticsearchDomainConfig -> Maybe LogPublishingOptionsStatus
logPublishingOptions :: Prelude.Maybe LogPublishingOptionsStatus,
    -- | Specifies the @NodeToNodeEncryptionOptions@ for the Elasticsearch
    -- domain.
    ElasticsearchDomainConfig
-> Maybe NodeToNodeEncryptionOptionsStatus
nodeToNodeEncryptionOptions :: Prelude.Maybe NodeToNodeEncryptionOptionsStatus,
    -- | Specifies the @SnapshotOptions@ for the Elasticsearch domain.
    ElasticsearchDomainConfig -> Maybe SnapshotOptionsStatus
snapshotOptions :: Prelude.Maybe SnapshotOptionsStatus,
    -- | 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>.
    ElasticsearchDomainConfig -> Maybe VPCDerivedInfoStatus
vPCOptions :: Prelude.Maybe VPCDerivedInfoStatus
  }
  deriving (ElasticsearchDomainConfig -> ElasticsearchDomainConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ElasticsearchDomainConfig -> ElasticsearchDomainConfig -> Bool
$c/= :: ElasticsearchDomainConfig -> ElasticsearchDomainConfig -> Bool
== :: ElasticsearchDomainConfig -> ElasticsearchDomainConfig -> Bool
$c== :: ElasticsearchDomainConfig -> ElasticsearchDomainConfig -> Bool
Prelude.Eq, ReadPrec [ElasticsearchDomainConfig]
ReadPrec ElasticsearchDomainConfig
Int -> ReadS ElasticsearchDomainConfig
ReadS [ElasticsearchDomainConfig]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ElasticsearchDomainConfig]
$creadListPrec :: ReadPrec [ElasticsearchDomainConfig]
readPrec :: ReadPrec ElasticsearchDomainConfig
$creadPrec :: ReadPrec ElasticsearchDomainConfig
readList :: ReadS [ElasticsearchDomainConfig]
$creadList :: ReadS [ElasticsearchDomainConfig]
readsPrec :: Int -> ReadS ElasticsearchDomainConfig
$creadsPrec :: Int -> ReadS ElasticsearchDomainConfig
Prelude.Read, Int -> ElasticsearchDomainConfig -> ShowS
[ElasticsearchDomainConfig] -> ShowS
ElasticsearchDomainConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ElasticsearchDomainConfig] -> ShowS
$cshowList :: [ElasticsearchDomainConfig] -> ShowS
show :: ElasticsearchDomainConfig -> String
$cshow :: ElasticsearchDomainConfig -> String
showsPrec :: Int -> ElasticsearchDomainConfig -> ShowS
$cshowsPrec :: Int -> ElasticsearchDomainConfig -> ShowS
Prelude.Show, forall x.
Rep ElasticsearchDomainConfig x -> ElasticsearchDomainConfig
forall x.
ElasticsearchDomainConfig -> Rep ElasticsearchDomainConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ElasticsearchDomainConfig x -> ElasticsearchDomainConfig
$cfrom :: forall x.
ElasticsearchDomainConfig -> Rep ElasticsearchDomainConfig x
Prelude.Generic)

-- |
-- Create a value of 'ElasticsearchDomainConfig' 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:
--
-- 'accessPolicies', 'elasticsearchDomainConfig_accessPolicies' - IAM access policy as a JSON-formatted string.
--
-- 'advancedOptions', 'elasticsearchDomainConfig_advancedOptions' - Specifies the @AdvancedOptions@ for the domain. See
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options Configuring Advanced Options>
-- for more information.
--
-- 'advancedSecurityOptions', 'elasticsearchDomainConfig_advancedSecurityOptions' - Specifies @AdvancedSecurityOptions@ for the domain.
--
-- 'autoTuneOptions', 'elasticsearchDomainConfig_autoTuneOptions' - Specifies @AutoTuneOptions@ for the domain.
--
-- 'changeProgressDetails', 'elasticsearchDomainConfig_changeProgressDetails' - Specifies change details of the domain configuration change.
--
-- 'cognitoOptions', 'elasticsearchDomainConfig_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>.
--
-- 'domainEndpointOptions', 'elasticsearchDomainConfig_domainEndpointOptions' - Specifies the @DomainEndpointOptions@ for the Elasticsearch domain.
--
-- 'eBSOptions', 'elasticsearchDomainConfig_eBSOptions' - Specifies the @EBSOptions@ for the Elasticsearch domain.
--
-- 'elasticsearchClusterConfig', 'elasticsearchDomainConfig_elasticsearchClusterConfig' - Specifies the @ElasticsearchClusterConfig@ for the Elasticsearch domain.
--
-- 'elasticsearchVersion', 'elasticsearchDomainConfig_elasticsearchVersion' - String of format X.Y to specify version for the Elasticsearch domain.
--
-- 'encryptionAtRestOptions', 'elasticsearchDomainConfig_encryptionAtRestOptions' - Specifies the @EncryptionAtRestOptions@ for the Elasticsearch domain.
--
-- 'logPublishingOptions', 'elasticsearchDomainConfig_logPublishingOptions' - Log publishing options for the given domain.
--
-- 'nodeToNodeEncryptionOptions', 'elasticsearchDomainConfig_nodeToNodeEncryptionOptions' - Specifies the @NodeToNodeEncryptionOptions@ for the Elasticsearch
-- domain.
--
-- 'snapshotOptions', 'elasticsearchDomainConfig_snapshotOptions' - Specifies the @SnapshotOptions@ for the Elasticsearch domain.
--
-- 'vPCOptions', 'elasticsearchDomainConfig_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>.
newElasticsearchDomainConfig ::
  ElasticsearchDomainConfig
newElasticsearchDomainConfig :: ElasticsearchDomainConfig
newElasticsearchDomainConfig =
  ElasticsearchDomainConfig'
    { $sel:accessPolicies:ElasticsearchDomainConfig' :: Maybe AccessPoliciesStatus
accessPolicies =
        forall a. Maybe a
Prelude.Nothing,
      $sel:advancedOptions:ElasticsearchDomainConfig' :: Maybe AdvancedOptionsStatus
advancedOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:advancedSecurityOptions:ElasticsearchDomainConfig' :: Maybe AdvancedSecurityOptionsStatus
advancedSecurityOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:autoTuneOptions:ElasticsearchDomainConfig' :: Maybe AutoTuneOptionsStatus
autoTuneOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:changeProgressDetails:ElasticsearchDomainConfig' :: Maybe ChangeProgressDetails
changeProgressDetails = forall a. Maybe a
Prelude.Nothing,
      $sel:cognitoOptions:ElasticsearchDomainConfig' :: Maybe CognitoOptionsStatus
cognitoOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:domainEndpointOptions:ElasticsearchDomainConfig' :: Maybe DomainEndpointOptionsStatus
domainEndpointOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:eBSOptions:ElasticsearchDomainConfig' :: Maybe EBSOptionsStatus
eBSOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:elasticsearchClusterConfig:ElasticsearchDomainConfig' :: Maybe ElasticsearchClusterConfigStatus
elasticsearchClusterConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:elasticsearchVersion:ElasticsearchDomainConfig' :: Maybe ElasticsearchVersionStatus
elasticsearchVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:encryptionAtRestOptions:ElasticsearchDomainConfig' :: Maybe EncryptionAtRestOptionsStatus
encryptionAtRestOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:logPublishingOptions:ElasticsearchDomainConfig' :: Maybe LogPublishingOptionsStatus
logPublishingOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:nodeToNodeEncryptionOptions:ElasticsearchDomainConfig' :: Maybe NodeToNodeEncryptionOptionsStatus
nodeToNodeEncryptionOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:snapshotOptions:ElasticsearchDomainConfig' :: Maybe SnapshotOptionsStatus
snapshotOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:vPCOptions:ElasticsearchDomainConfig' :: Maybe VPCDerivedInfoStatus
vPCOptions = forall a. Maybe a
Prelude.Nothing
    }

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

-- | Specifies the @AdvancedOptions@ for the domain. See
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options Configuring Advanced Options>
-- for more information.
elasticsearchDomainConfig_advancedOptions :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe AdvancedOptionsStatus)
elasticsearchDomainConfig_advancedOptions :: Lens' ElasticsearchDomainConfig (Maybe AdvancedOptionsStatus)
elasticsearchDomainConfig_advancedOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe AdvancedOptionsStatus
advancedOptions :: Maybe AdvancedOptionsStatus
$sel:advancedOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe AdvancedOptionsStatus
advancedOptions} -> Maybe AdvancedOptionsStatus
advancedOptions) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe AdvancedOptionsStatus
a -> ElasticsearchDomainConfig
s {$sel:advancedOptions:ElasticsearchDomainConfig' :: Maybe AdvancedOptionsStatus
advancedOptions = Maybe AdvancedOptionsStatus
a} :: ElasticsearchDomainConfig)

-- | Specifies @AdvancedSecurityOptions@ for the domain.
elasticsearchDomainConfig_advancedSecurityOptions :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe AdvancedSecurityOptionsStatus)
elasticsearchDomainConfig_advancedSecurityOptions :: Lens'
  ElasticsearchDomainConfig (Maybe AdvancedSecurityOptionsStatus)
elasticsearchDomainConfig_advancedSecurityOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe AdvancedSecurityOptionsStatus
advancedSecurityOptions :: Maybe AdvancedSecurityOptionsStatus
$sel:advancedSecurityOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe AdvancedSecurityOptionsStatus
advancedSecurityOptions} -> Maybe AdvancedSecurityOptionsStatus
advancedSecurityOptions) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe AdvancedSecurityOptionsStatus
a -> ElasticsearchDomainConfig
s {$sel:advancedSecurityOptions:ElasticsearchDomainConfig' :: Maybe AdvancedSecurityOptionsStatus
advancedSecurityOptions = Maybe AdvancedSecurityOptionsStatus
a} :: ElasticsearchDomainConfig)

-- | Specifies @AutoTuneOptions@ for the domain.
elasticsearchDomainConfig_autoTuneOptions :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe AutoTuneOptionsStatus)
elasticsearchDomainConfig_autoTuneOptions :: Lens' ElasticsearchDomainConfig (Maybe AutoTuneOptionsStatus)
elasticsearchDomainConfig_autoTuneOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe AutoTuneOptionsStatus
autoTuneOptions :: Maybe AutoTuneOptionsStatus
$sel:autoTuneOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe AutoTuneOptionsStatus
autoTuneOptions} -> Maybe AutoTuneOptionsStatus
autoTuneOptions) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe AutoTuneOptionsStatus
a -> ElasticsearchDomainConfig
s {$sel:autoTuneOptions:ElasticsearchDomainConfig' :: Maybe AutoTuneOptionsStatus
autoTuneOptions = Maybe AutoTuneOptionsStatus
a} :: ElasticsearchDomainConfig)

-- | Specifies change details of the domain configuration change.
elasticsearchDomainConfig_changeProgressDetails :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe ChangeProgressDetails)
elasticsearchDomainConfig_changeProgressDetails :: Lens' ElasticsearchDomainConfig (Maybe ChangeProgressDetails)
elasticsearchDomainConfig_changeProgressDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe ChangeProgressDetails
changeProgressDetails :: Maybe ChangeProgressDetails
$sel:changeProgressDetails:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe ChangeProgressDetails
changeProgressDetails} -> Maybe ChangeProgressDetails
changeProgressDetails) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe ChangeProgressDetails
a -> ElasticsearchDomainConfig
s {$sel:changeProgressDetails:ElasticsearchDomainConfig' :: Maybe ChangeProgressDetails
changeProgressDetails = Maybe ChangeProgressDetails
a} :: ElasticsearchDomainConfig)

-- | 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>.
elasticsearchDomainConfig_cognitoOptions :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe CognitoOptionsStatus)
elasticsearchDomainConfig_cognitoOptions :: Lens' ElasticsearchDomainConfig (Maybe CognitoOptionsStatus)
elasticsearchDomainConfig_cognitoOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe CognitoOptionsStatus
cognitoOptions :: Maybe CognitoOptionsStatus
$sel:cognitoOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe CognitoOptionsStatus
cognitoOptions} -> Maybe CognitoOptionsStatus
cognitoOptions) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe CognitoOptionsStatus
a -> ElasticsearchDomainConfig
s {$sel:cognitoOptions:ElasticsearchDomainConfig' :: Maybe CognitoOptionsStatus
cognitoOptions = Maybe CognitoOptionsStatus
a} :: ElasticsearchDomainConfig)

-- | Specifies the @DomainEndpointOptions@ for the Elasticsearch domain.
elasticsearchDomainConfig_domainEndpointOptions :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe DomainEndpointOptionsStatus)
elasticsearchDomainConfig_domainEndpointOptions :: Lens' ElasticsearchDomainConfig (Maybe DomainEndpointOptionsStatus)
elasticsearchDomainConfig_domainEndpointOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe DomainEndpointOptionsStatus
domainEndpointOptions :: Maybe DomainEndpointOptionsStatus
$sel:domainEndpointOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe DomainEndpointOptionsStatus
domainEndpointOptions} -> Maybe DomainEndpointOptionsStatus
domainEndpointOptions) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe DomainEndpointOptionsStatus
a -> ElasticsearchDomainConfig
s {$sel:domainEndpointOptions:ElasticsearchDomainConfig' :: Maybe DomainEndpointOptionsStatus
domainEndpointOptions = Maybe DomainEndpointOptionsStatus
a} :: ElasticsearchDomainConfig)

-- | Specifies the @EBSOptions@ for the Elasticsearch domain.
elasticsearchDomainConfig_eBSOptions :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe EBSOptionsStatus)
elasticsearchDomainConfig_eBSOptions :: Lens' ElasticsearchDomainConfig (Maybe EBSOptionsStatus)
elasticsearchDomainConfig_eBSOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe EBSOptionsStatus
eBSOptions :: Maybe EBSOptionsStatus
$sel:eBSOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe EBSOptionsStatus
eBSOptions} -> Maybe EBSOptionsStatus
eBSOptions) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe EBSOptionsStatus
a -> ElasticsearchDomainConfig
s {$sel:eBSOptions:ElasticsearchDomainConfig' :: Maybe EBSOptionsStatus
eBSOptions = Maybe EBSOptionsStatus
a} :: ElasticsearchDomainConfig)

-- | Specifies the @ElasticsearchClusterConfig@ for the Elasticsearch domain.
elasticsearchDomainConfig_elasticsearchClusterConfig :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe ElasticsearchClusterConfigStatus)
elasticsearchDomainConfig_elasticsearchClusterConfig :: Lens'
  ElasticsearchDomainConfig (Maybe ElasticsearchClusterConfigStatus)
elasticsearchDomainConfig_elasticsearchClusterConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe ElasticsearchClusterConfigStatus
elasticsearchClusterConfig :: Maybe ElasticsearchClusterConfigStatus
$sel:elasticsearchClusterConfig:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe ElasticsearchClusterConfigStatus
elasticsearchClusterConfig} -> Maybe ElasticsearchClusterConfigStatus
elasticsearchClusterConfig) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe ElasticsearchClusterConfigStatus
a -> ElasticsearchDomainConfig
s {$sel:elasticsearchClusterConfig:ElasticsearchDomainConfig' :: Maybe ElasticsearchClusterConfigStatus
elasticsearchClusterConfig = Maybe ElasticsearchClusterConfigStatus
a} :: ElasticsearchDomainConfig)

-- | String of format X.Y to specify version for the Elasticsearch domain.
elasticsearchDomainConfig_elasticsearchVersion :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe ElasticsearchVersionStatus)
elasticsearchDomainConfig_elasticsearchVersion :: Lens' ElasticsearchDomainConfig (Maybe ElasticsearchVersionStatus)
elasticsearchDomainConfig_elasticsearchVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe ElasticsearchVersionStatus
elasticsearchVersion :: Maybe ElasticsearchVersionStatus
$sel:elasticsearchVersion:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe ElasticsearchVersionStatus
elasticsearchVersion} -> Maybe ElasticsearchVersionStatus
elasticsearchVersion) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe ElasticsearchVersionStatus
a -> ElasticsearchDomainConfig
s {$sel:elasticsearchVersion:ElasticsearchDomainConfig' :: Maybe ElasticsearchVersionStatus
elasticsearchVersion = Maybe ElasticsearchVersionStatus
a} :: ElasticsearchDomainConfig)

-- | Specifies the @EncryptionAtRestOptions@ for the Elasticsearch domain.
elasticsearchDomainConfig_encryptionAtRestOptions :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe EncryptionAtRestOptionsStatus)
elasticsearchDomainConfig_encryptionAtRestOptions :: Lens'
  ElasticsearchDomainConfig (Maybe EncryptionAtRestOptionsStatus)
elasticsearchDomainConfig_encryptionAtRestOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe EncryptionAtRestOptionsStatus
encryptionAtRestOptions :: Maybe EncryptionAtRestOptionsStatus
$sel:encryptionAtRestOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe EncryptionAtRestOptionsStatus
encryptionAtRestOptions} -> Maybe EncryptionAtRestOptionsStatus
encryptionAtRestOptions) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe EncryptionAtRestOptionsStatus
a -> ElasticsearchDomainConfig
s {$sel:encryptionAtRestOptions:ElasticsearchDomainConfig' :: Maybe EncryptionAtRestOptionsStatus
encryptionAtRestOptions = Maybe EncryptionAtRestOptionsStatus
a} :: ElasticsearchDomainConfig)

-- | Log publishing options for the given domain.
elasticsearchDomainConfig_logPublishingOptions :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe LogPublishingOptionsStatus)
elasticsearchDomainConfig_logPublishingOptions :: Lens' ElasticsearchDomainConfig (Maybe LogPublishingOptionsStatus)
elasticsearchDomainConfig_logPublishingOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe LogPublishingOptionsStatus
logPublishingOptions :: Maybe LogPublishingOptionsStatus
$sel:logPublishingOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe LogPublishingOptionsStatus
logPublishingOptions} -> Maybe LogPublishingOptionsStatus
logPublishingOptions) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe LogPublishingOptionsStatus
a -> ElasticsearchDomainConfig
s {$sel:logPublishingOptions:ElasticsearchDomainConfig' :: Maybe LogPublishingOptionsStatus
logPublishingOptions = Maybe LogPublishingOptionsStatus
a} :: ElasticsearchDomainConfig)

-- | Specifies the @NodeToNodeEncryptionOptions@ for the Elasticsearch
-- domain.
elasticsearchDomainConfig_nodeToNodeEncryptionOptions :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe NodeToNodeEncryptionOptionsStatus)
elasticsearchDomainConfig_nodeToNodeEncryptionOptions :: Lens'
  ElasticsearchDomainConfig (Maybe NodeToNodeEncryptionOptionsStatus)
elasticsearchDomainConfig_nodeToNodeEncryptionOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe NodeToNodeEncryptionOptionsStatus
nodeToNodeEncryptionOptions :: Maybe NodeToNodeEncryptionOptionsStatus
$sel:nodeToNodeEncryptionOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig
-> Maybe NodeToNodeEncryptionOptionsStatus
nodeToNodeEncryptionOptions} -> Maybe NodeToNodeEncryptionOptionsStatus
nodeToNodeEncryptionOptions) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe NodeToNodeEncryptionOptionsStatus
a -> ElasticsearchDomainConfig
s {$sel:nodeToNodeEncryptionOptions:ElasticsearchDomainConfig' :: Maybe NodeToNodeEncryptionOptionsStatus
nodeToNodeEncryptionOptions = Maybe NodeToNodeEncryptionOptionsStatus
a} :: ElasticsearchDomainConfig)

-- | Specifies the @SnapshotOptions@ for the Elasticsearch domain.
elasticsearchDomainConfig_snapshotOptions :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe SnapshotOptionsStatus)
elasticsearchDomainConfig_snapshotOptions :: Lens' ElasticsearchDomainConfig (Maybe SnapshotOptionsStatus)
elasticsearchDomainConfig_snapshotOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe SnapshotOptionsStatus
snapshotOptions :: Maybe SnapshotOptionsStatus
$sel:snapshotOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe SnapshotOptionsStatus
snapshotOptions} -> Maybe SnapshotOptionsStatus
snapshotOptions) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe SnapshotOptionsStatus
a -> ElasticsearchDomainConfig
s {$sel:snapshotOptions:ElasticsearchDomainConfig' :: Maybe SnapshotOptionsStatus
snapshotOptions = Maybe SnapshotOptionsStatus
a} :: ElasticsearchDomainConfig)

-- | 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>.
elasticsearchDomainConfig_vPCOptions :: Lens.Lens' ElasticsearchDomainConfig (Prelude.Maybe VPCDerivedInfoStatus)
elasticsearchDomainConfig_vPCOptions :: Lens' ElasticsearchDomainConfig (Maybe VPCDerivedInfoStatus)
elasticsearchDomainConfig_vPCOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ElasticsearchDomainConfig' {Maybe VPCDerivedInfoStatus
vPCOptions :: Maybe VPCDerivedInfoStatus
$sel:vPCOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe VPCDerivedInfoStatus
vPCOptions} -> Maybe VPCDerivedInfoStatus
vPCOptions) (\s :: ElasticsearchDomainConfig
s@ElasticsearchDomainConfig' {} Maybe VPCDerivedInfoStatus
a -> ElasticsearchDomainConfig
s {$sel:vPCOptions:ElasticsearchDomainConfig' :: Maybe VPCDerivedInfoStatus
vPCOptions = Maybe VPCDerivedInfoStatus
a} :: ElasticsearchDomainConfig)

instance Data.FromJSON ElasticsearchDomainConfig where
  parseJSON :: Value -> Parser ElasticsearchDomainConfig
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ElasticsearchDomainConfig"
      ( \Object
x ->
          Maybe AccessPoliciesStatus
-> Maybe AdvancedOptionsStatus
-> Maybe AdvancedSecurityOptionsStatus
-> Maybe AutoTuneOptionsStatus
-> Maybe ChangeProgressDetails
-> Maybe CognitoOptionsStatus
-> Maybe DomainEndpointOptionsStatus
-> Maybe EBSOptionsStatus
-> Maybe ElasticsearchClusterConfigStatus
-> Maybe ElasticsearchVersionStatus
-> Maybe EncryptionAtRestOptionsStatus
-> Maybe LogPublishingOptionsStatus
-> Maybe NodeToNodeEncryptionOptionsStatus
-> Maybe SnapshotOptionsStatus
-> Maybe VPCDerivedInfoStatus
-> ElasticsearchDomainConfig
ElasticsearchDomainConfig'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AccessPolicies")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AdvancedOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AdvancedSecurityOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AutoTuneOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ChangeProgressDetails")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CognitoOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DomainEndpointOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EBSOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ElasticsearchClusterConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ElasticsearchVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EncryptionAtRestOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LogPublishingOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"NodeToNodeEncryptionOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SnapshotOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"VPCOptions")
      )

instance Prelude.Hashable ElasticsearchDomainConfig where
  hashWithSalt :: Int -> ElasticsearchDomainConfig -> Int
hashWithSalt Int
_salt ElasticsearchDomainConfig' {Maybe ChangeProgressDetails
Maybe NodeToNodeEncryptionOptionsStatus
Maybe LogPublishingOptionsStatus
Maybe EncryptionAtRestOptionsStatus
Maybe ElasticsearchVersionStatus
Maybe CognitoOptionsStatus
Maybe AdvancedOptionsStatus
Maybe AccessPoliciesStatus
Maybe AdvancedSecurityOptionsStatus
Maybe SnapshotOptionsStatus
Maybe DomainEndpointOptionsStatus
Maybe AutoTuneOptionsStatus
Maybe VPCDerivedInfoStatus
Maybe EBSOptionsStatus
Maybe ElasticsearchClusterConfigStatus
vPCOptions :: Maybe VPCDerivedInfoStatus
snapshotOptions :: Maybe SnapshotOptionsStatus
nodeToNodeEncryptionOptions :: Maybe NodeToNodeEncryptionOptionsStatus
logPublishingOptions :: Maybe LogPublishingOptionsStatus
encryptionAtRestOptions :: Maybe EncryptionAtRestOptionsStatus
elasticsearchVersion :: Maybe ElasticsearchVersionStatus
elasticsearchClusterConfig :: Maybe ElasticsearchClusterConfigStatus
eBSOptions :: Maybe EBSOptionsStatus
domainEndpointOptions :: Maybe DomainEndpointOptionsStatus
cognitoOptions :: Maybe CognitoOptionsStatus
changeProgressDetails :: Maybe ChangeProgressDetails
autoTuneOptions :: Maybe AutoTuneOptionsStatus
advancedSecurityOptions :: Maybe AdvancedSecurityOptionsStatus
advancedOptions :: Maybe AdvancedOptionsStatus
accessPolicies :: Maybe AccessPoliciesStatus
$sel:vPCOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe VPCDerivedInfoStatus
$sel:snapshotOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe SnapshotOptionsStatus
$sel:nodeToNodeEncryptionOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig
-> Maybe NodeToNodeEncryptionOptionsStatus
$sel:logPublishingOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe LogPublishingOptionsStatus
$sel:encryptionAtRestOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe EncryptionAtRestOptionsStatus
$sel:elasticsearchVersion:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe ElasticsearchVersionStatus
$sel:elasticsearchClusterConfig:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe ElasticsearchClusterConfigStatus
$sel:eBSOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe EBSOptionsStatus
$sel:domainEndpointOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe DomainEndpointOptionsStatus
$sel:cognitoOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe CognitoOptionsStatus
$sel:changeProgressDetails:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe ChangeProgressDetails
$sel:autoTuneOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe AutoTuneOptionsStatus
$sel:advancedSecurityOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe AdvancedSecurityOptionsStatus
$sel:advancedOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe AdvancedOptionsStatus
$sel:accessPolicies:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe AccessPoliciesStatus
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AccessPoliciesStatus
accessPolicies
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AdvancedOptionsStatus
advancedOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AdvancedSecurityOptionsStatus
advancedSecurityOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AutoTuneOptionsStatus
autoTuneOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChangeProgressDetails
changeProgressDetails
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CognitoOptionsStatus
cognitoOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DomainEndpointOptionsStatus
domainEndpointOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EBSOptionsStatus
eBSOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ElasticsearchClusterConfigStatus
elasticsearchClusterConfig
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ElasticsearchVersionStatus
elasticsearchVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EncryptionAtRestOptionsStatus
encryptionAtRestOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LogPublishingOptionsStatus
logPublishingOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NodeToNodeEncryptionOptionsStatus
nodeToNodeEncryptionOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SnapshotOptionsStatus
snapshotOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VPCDerivedInfoStatus
vPCOptions

instance Prelude.NFData ElasticsearchDomainConfig where
  rnf :: ElasticsearchDomainConfig -> ()
rnf ElasticsearchDomainConfig' {Maybe ChangeProgressDetails
Maybe NodeToNodeEncryptionOptionsStatus
Maybe LogPublishingOptionsStatus
Maybe EncryptionAtRestOptionsStatus
Maybe ElasticsearchVersionStatus
Maybe CognitoOptionsStatus
Maybe AdvancedOptionsStatus
Maybe AccessPoliciesStatus
Maybe AdvancedSecurityOptionsStatus
Maybe SnapshotOptionsStatus
Maybe DomainEndpointOptionsStatus
Maybe AutoTuneOptionsStatus
Maybe VPCDerivedInfoStatus
Maybe EBSOptionsStatus
Maybe ElasticsearchClusterConfigStatus
vPCOptions :: Maybe VPCDerivedInfoStatus
snapshotOptions :: Maybe SnapshotOptionsStatus
nodeToNodeEncryptionOptions :: Maybe NodeToNodeEncryptionOptionsStatus
logPublishingOptions :: Maybe LogPublishingOptionsStatus
encryptionAtRestOptions :: Maybe EncryptionAtRestOptionsStatus
elasticsearchVersion :: Maybe ElasticsearchVersionStatus
elasticsearchClusterConfig :: Maybe ElasticsearchClusterConfigStatus
eBSOptions :: Maybe EBSOptionsStatus
domainEndpointOptions :: Maybe DomainEndpointOptionsStatus
cognitoOptions :: Maybe CognitoOptionsStatus
changeProgressDetails :: Maybe ChangeProgressDetails
autoTuneOptions :: Maybe AutoTuneOptionsStatus
advancedSecurityOptions :: Maybe AdvancedSecurityOptionsStatus
advancedOptions :: Maybe AdvancedOptionsStatus
accessPolicies :: Maybe AccessPoliciesStatus
$sel:vPCOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe VPCDerivedInfoStatus
$sel:snapshotOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe SnapshotOptionsStatus
$sel:nodeToNodeEncryptionOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig
-> Maybe NodeToNodeEncryptionOptionsStatus
$sel:logPublishingOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe LogPublishingOptionsStatus
$sel:encryptionAtRestOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe EncryptionAtRestOptionsStatus
$sel:elasticsearchVersion:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe ElasticsearchVersionStatus
$sel:elasticsearchClusterConfig:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe ElasticsearchClusterConfigStatus
$sel:eBSOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe EBSOptionsStatus
$sel:domainEndpointOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe DomainEndpointOptionsStatus
$sel:cognitoOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe CognitoOptionsStatus
$sel:changeProgressDetails:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe ChangeProgressDetails
$sel:autoTuneOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe AutoTuneOptionsStatus
$sel:advancedSecurityOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe AdvancedSecurityOptionsStatus
$sel:advancedOptions:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe AdvancedOptionsStatus
$sel:accessPolicies:ElasticsearchDomainConfig' :: ElasticsearchDomainConfig -> Maybe AccessPoliciesStatus
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AccessPoliciesStatus
accessPolicies
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AdvancedOptionsStatus
advancedOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AdvancedSecurityOptionsStatus
advancedSecurityOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AutoTuneOptionsStatus
autoTuneOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChangeProgressDetails
changeProgressDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CognitoOptionsStatus
cognitoOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DomainEndpointOptionsStatus
domainEndpointOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EBSOptionsStatus
eBSOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ElasticsearchClusterConfigStatus
elasticsearchClusterConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ElasticsearchVersionStatus
elasticsearchVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EncryptionAtRestOptionsStatus
encryptionAtRestOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LogPublishingOptionsStatus
logPublishingOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe NodeToNodeEncryptionOptionsStatus
nodeToNodeEncryptionOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SnapshotOptionsStatus
snapshotOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VPCDerivedInfoStatus
vPCOptions