{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# 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.UpdateElasticsearchDomainConfig
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Modifies the cluster configuration of the specified Elasticsearch
-- domain, setting as setting the instance type and the number of
-- instances.
module Amazonka.ElasticSearch.UpdateElasticsearchDomainConfig
  ( -- * Creating a Request
    UpdateElasticsearchDomainConfig (..),
    newUpdateElasticsearchDomainConfig,

    -- * Request Lenses
    updateElasticsearchDomainConfig_accessPolicies,
    updateElasticsearchDomainConfig_advancedOptions,
    updateElasticsearchDomainConfig_advancedSecurityOptions,
    updateElasticsearchDomainConfig_autoTuneOptions,
    updateElasticsearchDomainConfig_cognitoOptions,
    updateElasticsearchDomainConfig_domainEndpointOptions,
    updateElasticsearchDomainConfig_dryRun,
    updateElasticsearchDomainConfig_eBSOptions,
    updateElasticsearchDomainConfig_elasticsearchClusterConfig,
    updateElasticsearchDomainConfig_encryptionAtRestOptions,
    updateElasticsearchDomainConfig_logPublishingOptions,
    updateElasticsearchDomainConfig_nodeToNodeEncryptionOptions,
    updateElasticsearchDomainConfig_snapshotOptions,
    updateElasticsearchDomainConfig_vPCOptions,
    updateElasticsearchDomainConfig_domainName,

    -- * Destructuring the Response
    UpdateElasticsearchDomainConfigResponse (..),
    newUpdateElasticsearchDomainConfigResponse,

    -- * Response Lenses
    updateElasticsearchDomainConfigResponse_dryRunResults,
    updateElasticsearchDomainConfigResponse_httpStatus,
    updateElasticsearchDomainConfigResponse_domainConfig,
  )
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
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | Container for the parameters to the @UpdateElasticsearchDomain@
-- operation. Specifies the type and number of instances in the domain
-- cluster.
--
-- /See:/ 'newUpdateElasticsearchDomainConfig' smart constructor.
data UpdateElasticsearchDomainConfig = UpdateElasticsearchDomainConfig'
  { -- | IAM access policy as a JSON-formatted string.
    UpdateElasticsearchDomainConfig -> Maybe Text
accessPolicies :: Prelude.Maybe Prelude.Text,
    -- | Modifies the advanced option to allow references to indices in an HTTP
    -- request body. Must be @false@ when configuring access to individual
    -- sub-resources. By default, the value is @true@. See
    -- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options Configuration Advanced Options>
    -- for more information.
    UpdateElasticsearchDomainConfig -> Maybe (HashMap Text Text)
advancedOptions :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | Specifies advanced security options.
    UpdateElasticsearchDomainConfig
-> Maybe AdvancedSecurityOptionsInput
advancedSecurityOptions :: Prelude.Maybe AdvancedSecurityOptionsInput,
    -- | Specifies Auto-Tune options.
    UpdateElasticsearchDomainConfig -> Maybe AutoTuneOptions
autoTuneOptions :: Prelude.Maybe AutoTuneOptions,
    -- | Options to specify the Cognito user and identity pools for Kibana
    -- authentication. For more information, see
    -- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html Amazon Cognito Authentication for Kibana>.
    UpdateElasticsearchDomainConfig -> Maybe CognitoOptions
cognitoOptions :: Prelude.Maybe CognitoOptions,
    -- | Options to specify configuration that will be applied to the domain
    -- endpoint.
    UpdateElasticsearchDomainConfig -> Maybe DomainEndpointOptions
domainEndpointOptions :: Prelude.Maybe DomainEndpointOptions,
    -- | This flag, when set to True, specifies whether the
    -- @UpdateElasticsearchDomain@ request should return the results of
    -- validation checks without actually applying the change. This flag, when
    -- set to True, specifies the deployment mechanism through which the update
    -- shall be applied on the domain. This will not actually perform the
    -- Update.
    UpdateElasticsearchDomainConfig -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | Specify the type and size of the EBS volume that you want to use.
    UpdateElasticsearchDomainConfig -> Maybe EBSOptions
eBSOptions :: Prelude.Maybe EBSOptions,
    -- | The type and number of instances to instantiate for the domain cluster.
    UpdateElasticsearchDomainConfig -> Maybe ElasticsearchClusterConfig
elasticsearchClusterConfig :: Prelude.Maybe ElasticsearchClusterConfig,
    -- | Specifies the Encryption At Rest Options.
    UpdateElasticsearchDomainConfig -> Maybe EncryptionAtRestOptions
encryptionAtRestOptions :: Prelude.Maybe EncryptionAtRestOptions,
    -- | Map of @LogType@ and @LogPublishingOption@, each containing options to
    -- publish a given type of Elasticsearch log.
    UpdateElasticsearchDomainConfig
-> Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions :: Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption),
    -- | Specifies the NodeToNodeEncryptionOptions.
    UpdateElasticsearchDomainConfig
-> Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions :: Prelude.Maybe NodeToNodeEncryptionOptions,
    -- | Option to set the time, in UTC format, for the daily automated snapshot.
    -- Default value is @0@ hours.
    UpdateElasticsearchDomainConfig -> Maybe SnapshotOptions
snapshotOptions :: Prelude.Maybe SnapshotOptions,
    -- | Options to specify the subnets and security groups for VPC endpoint. For
    -- more information, see
    -- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-creating-vpc Creating a VPC>
    -- in /VPC Endpoints for Amazon Elasticsearch Service Domains/
    UpdateElasticsearchDomainConfig -> Maybe VPCOptions
vPCOptions :: Prelude.Maybe VPCOptions,
    -- | The name of the Elasticsearch domain that you are updating.
    UpdateElasticsearchDomainConfig -> Text
domainName :: Prelude.Text
  }
  deriving (UpdateElasticsearchDomainConfig
-> UpdateElasticsearchDomainConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateElasticsearchDomainConfig
-> UpdateElasticsearchDomainConfig -> Bool
$c/= :: UpdateElasticsearchDomainConfig
-> UpdateElasticsearchDomainConfig -> Bool
== :: UpdateElasticsearchDomainConfig
-> UpdateElasticsearchDomainConfig -> Bool
$c== :: UpdateElasticsearchDomainConfig
-> UpdateElasticsearchDomainConfig -> Bool
Prelude.Eq, Int -> UpdateElasticsearchDomainConfig -> ShowS
[UpdateElasticsearchDomainConfig] -> ShowS
UpdateElasticsearchDomainConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateElasticsearchDomainConfig] -> ShowS
$cshowList :: [UpdateElasticsearchDomainConfig] -> ShowS
show :: UpdateElasticsearchDomainConfig -> String
$cshow :: UpdateElasticsearchDomainConfig -> String
showsPrec :: Int -> UpdateElasticsearchDomainConfig -> ShowS
$cshowsPrec :: Int -> UpdateElasticsearchDomainConfig -> ShowS
Prelude.Show, forall x.
Rep UpdateElasticsearchDomainConfig x
-> UpdateElasticsearchDomainConfig
forall x.
UpdateElasticsearchDomainConfig
-> Rep UpdateElasticsearchDomainConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateElasticsearchDomainConfig x
-> UpdateElasticsearchDomainConfig
$cfrom :: forall x.
UpdateElasticsearchDomainConfig
-> Rep UpdateElasticsearchDomainConfig x
Prelude.Generic)

-- |
-- Create a value of 'UpdateElasticsearchDomainConfig' 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', 'updateElasticsearchDomainConfig_accessPolicies' - IAM access policy as a JSON-formatted string.
--
-- 'advancedOptions', 'updateElasticsearchDomainConfig_advancedOptions' - Modifies the advanced option to allow references to indices in an HTTP
-- request body. Must be @false@ when configuring access to individual
-- sub-resources. By default, the value is @true@. See
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options Configuration Advanced Options>
-- for more information.
--
-- 'advancedSecurityOptions', 'updateElasticsearchDomainConfig_advancedSecurityOptions' - Specifies advanced security options.
--
-- 'autoTuneOptions', 'updateElasticsearchDomainConfig_autoTuneOptions' - Specifies Auto-Tune options.
--
-- 'cognitoOptions', 'updateElasticsearchDomainConfig_cognitoOptions' - Options to specify the Cognito user and identity pools for Kibana
-- authentication. For more information, see
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html Amazon Cognito Authentication for Kibana>.
--
-- 'domainEndpointOptions', 'updateElasticsearchDomainConfig_domainEndpointOptions' - Options to specify configuration that will be applied to the domain
-- endpoint.
--
-- 'dryRun', 'updateElasticsearchDomainConfig_dryRun' - This flag, when set to True, specifies whether the
-- @UpdateElasticsearchDomain@ request should return the results of
-- validation checks without actually applying the change. This flag, when
-- set to True, specifies the deployment mechanism through which the update
-- shall be applied on the domain. This will not actually perform the
-- Update.
--
-- 'eBSOptions', 'updateElasticsearchDomainConfig_eBSOptions' - Specify the type and size of the EBS volume that you want to use.
--
-- 'elasticsearchClusterConfig', 'updateElasticsearchDomainConfig_elasticsearchClusterConfig' - The type and number of instances to instantiate for the domain cluster.
--
-- 'encryptionAtRestOptions', 'updateElasticsearchDomainConfig_encryptionAtRestOptions' - Specifies the Encryption At Rest Options.
--
-- 'logPublishingOptions', 'updateElasticsearchDomainConfig_logPublishingOptions' - Map of @LogType@ and @LogPublishingOption@, each containing options to
-- publish a given type of Elasticsearch log.
--
-- 'nodeToNodeEncryptionOptions', 'updateElasticsearchDomainConfig_nodeToNodeEncryptionOptions' - Specifies the NodeToNodeEncryptionOptions.
--
-- 'snapshotOptions', 'updateElasticsearchDomainConfig_snapshotOptions' - Option to set the time, in UTC format, for the daily automated snapshot.
-- Default value is @0@ hours.
--
-- 'vPCOptions', 'updateElasticsearchDomainConfig_vPCOptions' - Options to specify the subnets and security groups for VPC endpoint. For
-- more information, see
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-creating-vpc Creating a VPC>
-- in /VPC Endpoints for Amazon Elasticsearch Service Domains/
--
-- 'domainName', 'updateElasticsearchDomainConfig_domainName' - The name of the Elasticsearch domain that you are updating.
newUpdateElasticsearchDomainConfig ::
  -- | 'domainName'
  Prelude.Text ->
  UpdateElasticsearchDomainConfig
newUpdateElasticsearchDomainConfig :: Text -> UpdateElasticsearchDomainConfig
newUpdateElasticsearchDomainConfig Text
pDomainName_ =
  UpdateElasticsearchDomainConfig'
    { $sel:accessPolicies:UpdateElasticsearchDomainConfig' :: Maybe Text
accessPolicies =
        forall a. Maybe a
Prelude.Nothing,
      $sel:advancedOptions:UpdateElasticsearchDomainConfig' :: Maybe (HashMap Text Text)
advancedOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:advancedSecurityOptions:UpdateElasticsearchDomainConfig' :: Maybe AdvancedSecurityOptionsInput
advancedSecurityOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:autoTuneOptions:UpdateElasticsearchDomainConfig' :: Maybe AutoTuneOptions
autoTuneOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:cognitoOptions:UpdateElasticsearchDomainConfig' :: Maybe CognitoOptions
cognitoOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:domainEndpointOptions:UpdateElasticsearchDomainConfig' :: Maybe DomainEndpointOptions
domainEndpointOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:dryRun:UpdateElasticsearchDomainConfig' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
      $sel:eBSOptions:UpdateElasticsearchDomainConfig' :: Maybe EBSOptions
eBSOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:elasticsearchClusterConfig:UpdateElasticsearchDomainConfig' :: Maybe ElasticsearchClusterConfig
elasticsearchClusterConfig =
        forall a. Maybe a
Prelude.Nothing,
      $sel:encryptionAtRestOptions:UpdateElasticsearchDomainConfig' :: Maybe EncryptionAtRestOptions
encryptionAtRestOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:logPublishingOptions:UpdateElasticsearchDomainConfig' :: Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:nodeToNodeEncryptionOptions:UpdateElasticsearchDomainConfig' :: Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions =
        forall a. Maybe a
Prelude.Nothing,
      $sel:snapshotOptions:UpdateElasticsearchDomainConfig' :: Maybe SnapshotOptions
snapshotOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:vPCOptions:UpdateElasticsearchDomainConfig' :: Maybe VPCOptions
vPCOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:domainName:UpdateElasticsearchDomainConfig' :: Text
domainName = Text
pDomainName_
    }

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

-- | Modifies the advanced option to allow references to indices in an HTTP
-- request body. Must be @false@ when configuring access to individual
-- sub-resources. By default, the value is @true@. See
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options Configuration Advanced Options>
-- for more information.
updateElasticsearchDomainConfig_advancedOptions :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
updateElasticsearchDomainConfig_advancedOptions :: Lens' UpdateElasticsearchDomainConfig (Maybe (HashMap Text Text))
updateElasticsearchDomainConfig_advancedOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe (HashMap Text Text)
advancedOptions :: Maybe (HashMap Text Text)
$sel:advancedOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe (HashMap Text Text)
advancedOptions} -> Maybe (HashMap Text Text)
advancedOptions) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe (HashMap Text Text)
a -> UpdateElasticsearchDomainConfig
s {$sel:advancedOptions:UpdateElasticsearchDomainConfig' :: Maybe (HashMap Text Text)
advancedOptions = Maybe (HashMap Text Text)
a} :: UpdateElasticsearchDomainConfig) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Specifies advanced security options.
updateElasticsearchDomainConfig_advancedSecurityOptions :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe AdvancedSecurityOptionsInput)
updateElasticsearchDomainConfig_advancedSecurityOptions :: Lens'
  UpdateElasticsearchDomainConfig
  (Maybe AdvancedSecurityOptionsInput)
updateElasticsearchDomainConfig_advancedSecurityOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe AdvancedSecurityOptionsInput
advancedSecurityOptions :: Maybe AdvancedSecurityOptionsInput
$sel:advancedSecurityOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe AdvancedSecurityOptionsInput
advancedSecurityOptions} -> Maybe AdvancedSecurityOptionsInput
advancedSecurityOptions) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe AdvancedSecurityOptionsInput
a -> UpdateElasticsearchDomainConfig
s {$sel:advancedSecurityOptions:UpdateElasticsearchDomainConfig' :: Maybe AdvancedSecurityOptionsInput
advancedSecurityOptions = Maybe AdvancedSecurityOptionsInput
a} :: UpdateElasticsearchDomainConfig)

-- | Specifies Auto-Tune options.
updateElasticsearchDomainConfig_autoTuneOptions :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe AutoTuneOptions)
updateElasticsearchDomainConfig_autoTuneOptions :: Lens' UpdateElasticsearchDomainConfig (Maybe AutoTuneOptions)
updateElasticsearchDomainConfig_autoTuneOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe AutoTuneOptions
autoTuneOptions :: Maybe AutoTuneOptions
$sel:autoTuneOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe AutoTuneOptions
autoTuneOptions} -> Maybe AutoTuneOptions
autoTuneOptions) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe AutoTuneOptions
a -> UpdateElasticsearchDomainConfig
s {$sel:autoTuneOptions:UpdateElasticsearchDomainConfig' :: Maybe AutoTuneOptions
autoTuneOptions = Maybe AutoTuneOptions
a} :: UpdateElasticsearchDomainConfig)

-- | Options to specify the Cognito user and identity pools for Kibana
-- authentication. For more information, see
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html Amazon Cognito Authentication for Kibana>.
updateElasticsearchDomainConfig_cognitoOptions :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe CognitoOptions)
updateElasticsearchDomainConfig_cognitoOptions :: Lens' UpdateElasticsearchDomainConfig (Maybe CognitoOptions)
updateElasticsearchDomainConfig_cognitoOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe CognitoOptions
cognitoOptions :: Maybe CognitoOptions
$sel:cognitoOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe CognitoOptions
cognitoOptions} -> Maybe CognitoOptions
cognitoOptions) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe CognitoOptions
a -> UpdateElasticsearchDomainConfig
s {$sel:cognitoOptions:UpdateElasticsearchDomainConfig' :: Maybe CognitoOptions
cognitoOptions = Maybe CognitoOptions
a} :: UpdateElasticsearchDomainConfig)

-- | Options to specify configuration that will be applied to the domain
-- endpoint.
updateElasticsearchDomainConfig_domainEndpointOptions :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe DomainEndpointOptions)
updateElasticsearchDomainConfig_domainEndpointOptions :: Lens' UpdateElasticsearchDomainConfig (Maybe DomainEndpointOptions)
updateElasticsearchDomainConfig_domainEndpointOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe DomainEndpointOptions
domainEndpointOptions :: Maybe DomainEndpointOptions
$sel:domainEndpointOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe DomainEndpointOptions
domainEndpointOptions} -> Maybe DomainEndpointOptions
domainEndpointOptions) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe DomainEndpointOptions
a -> UpdateElasticsearchDomainConfig
s {$sel:domainEndpointOptions:UpdateElasticsearchDomainConfig' :: Maybe DomainEndpointOptions
domainEndpointOptions = Maybe DomainEndpointOptions
a} :: UpdateElasticsearchDomainConfig)

-- | This flag, when set to True, specifies whether the
-- @UpdateElasticsearchDomain@ request should return the results of
-- validation checks without actually applying the change. This flag, when
-- set to True, specifies the deployment mechanism through which the update
-- shall be applied on the domain. This will not actually perform the
-- Update.
updateElasticsearchDomainConfig_dryRun :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe Prelude.Bool)
updateElasticsearchDomainConfig_dryRun :: Lens' UpdateElasticsearchDomainConfig (Maybe Bool)
updateElasticsearchDomainConfig_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe Bool
a -> UpdateElasticsearchDomainConfig
s {$sel:dryRun:UpdateElasticsearchDomainConfig' :: Maybe Bool
dryRun = Maybe Bool
a} :: UpdateElasticsearchDomainConfig)

-- | Specify the type and size of the EBS volume that you want to use.
updateElasticsearchDomainConfig_eBSOptions :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe EBSOptions)
updateElasticsearchDomainConfig_eBSOptions :: Lens' UpdateElasticsearchDomainConfig (Maybe EBSOptions)
updateElasticsearchDomainConfig_eBSOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe EBSOptions
eBSOptions :: Maybe EBSOptions
$sel:eBSOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe EBSOptions
eBSOptions} -> Maybe EBSOptions
eBSOptions) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe EBSOptions
a -> UpdateElasticsearchDomainConfig
s {$sel:eBSOptions:UpdateElasticsearchDomainConfig' :: Maybe EBSOptions
eBSOptions = Maybe EBSOptions
a} :: UpdateElasticsearchDomainConfig)

-- | The type and number of instances to instantiate for the domain cluster.
updateElasticsearchDomainConfig_elasticsearchClusterConfig :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe ElasticsearchClusterConfig)
updateElasticsearchDomainConfig_elasticsearchClusterConfig :: Lens'
  UpdateElasticsearchDomainConfig (Maybe ElasticsearchClusterConfig)
updateElasticsearchDomainConfig_elasticsearchClusterConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe ElasticsearchClusterConfig
elasticsearchClusterConfig :: Maybe ElasticsearchClusterConfig
$sel:elasticsearchClusterConfig:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe ElasticsearchClusterConfig
elasticsearchClusterConfig} -> Maybe ElasticsearchClusterConfig
elasticsearchClusterConfig) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe ElasticsearchClusterConfig
a -> UpdateElasticsearchDomainConfig
s {$sel:elasticsearchClusterConfig:UpdateElasticsearchDomainConfig' :: Maybe ElasticsearchClusterConfig
elasticsearchClusterConfig = Maybe ElasticsearchClusterConfig
a} :: UpdateElasticsearchDomainConfig)

-- | Specifies the Encryption At Rest Options.
updateElasticsearchDomainConfig_encryptionAtRestOptions :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe EncryptionAtRestOptions)
updateElasticsearchDomainConfig_encryptionAtRestOptions :: Lens'
  UpdateElasticsearchDomainConfig (Maybe EncryptionAtRestOptions)
updateElasticsearchDomainConfig_encryptionAtRestOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe EncryptionAtRestOptions
encryptionAtRestOptions :: Maybe EncryptionAtRestOptions
$sel:encryptionAtRestOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe EncryptionAtRestOptions
encryptionAtRestOptions} -> Maybe EncryptionAtRestOptions
encryptionAtRestOptions) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe EncryptionAtRestOptions
a -> UpdateElasticsearchDomainConfig
s {$sel:encryptionAtRestOptions:UpdateElasticsearchDomainConfig' :: Maybe EncryptionAtRestOptions
encryptionAtRestOptions = Maybe EncryptionAtRestOptions
a} :: UpdateElasticsearchDomainConfig)

-- | Map of @LogType@ and @LogPublishingOption@, each containing options to
-- publish a given type of Elasticsearch log.
updateElasticsearchDomainConfig_logPublishingOptions :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption))
updateElasticsearchDomainConfig_logPublishingOptions :: Lens'
  UpdateElasticsearchDomainConfig
  (Maybe (HashMap LogType LogPublishingOption))
updateElasticsearchDomainConfig_logPublishingOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions :: Maybe (HashMap LogType LogPublishingOption)
$sel:logPublishingOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions} -> Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe (HashMap LogType LogPublishingOption)
a -> UpdateElasticsearchDomainConfig
s {$sel:logPublishingOptions:UpdateElasticsearchDomainConfig' :: Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions = Maybe (HashMap LogType LogPublishingOption)
a} :: UpdateElasticsearchDomainConfig) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

-- | Option to set the time, in UTC format, for the daily automated snapshot.
-- Default value is @0@ hours.
updateElasticsearchDomainConfig_snapshotOptions :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe SnapshotOptions)
updateElasticsearchDomainConfig_snapshotOptions :: Lens' UpdateElasticsearchDomainConfig (Maybe SnapshotOptions)
updateElasticsearchDomainConfig_snapshotOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe SnapshotOptions
snapshotOptions :: Maybe SnapshotOptions
$sel:snapshotOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe SnapshotOptions
snapshotOptions} -> Maybe SnapshotOptions
snapshotOptions) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe SnapshotOptions
a -> UpdateElasticsearchDomainConfig
s {$sel:snapshotOptions:UpdateElasticsearchDomainConfig' :: Maybe SnapshotOptions
snapshotOptions = Maybe SnapshotOptions
a} :: UpdateElasticsearchDomainConfig)

-- | Options to specify the subnets and security groups for VPC endpoint. For
-- more information, see
-- <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-creating-vpc Creating a VPC>
-- in /VPC Endpoints for Amazon Elasticsearch Service Domains/
updateElasticsearchDomainConfig_vPCOptions :: Lens.Lens' UpdateElasticsearchDomainConfig (Prelude.Maybe VPCOptions)
updateElasticsearchDomainConfig_vPCOptions :: Lens' UpdateElasticsearchDomainConfig (Maybe VPCOptions)
updateElasticsearchDomainConfig_vPCOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Maybe VPCOptions
vPCOptions :: Maybe VPCOptions
$sel:vPCOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe VPCOptions
vPCOptions} -> Maybe VPCOptions
vPCOptions) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Maybe VPCOptions
a -> UpdateElasticsearchDomainConfig
s {$sel:vPCOptions:UpdateElasticsearchDomainConfig' :: Maybe VPCOptions
vPCOptions = Maybe VPCOptions
a} :: UpdateElasticsearchDomainConfig)

-- | The name of the Elasticsearch domain that you are updating.
updateElasticsearchDomainConfig_domainName :: Lens.Lens' UpdateElasticsearchDomainConfig Prelude.Text
updateElasticsearchDomainConfig_domainName :: Lens' UpdateElasticsearchDomainConfig Text
updateElasticsearchDomainConfig_domainName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfig' {Text
domainName :: Text
$sel:domainName:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Text
domainName} -> Text
domainName) (\s :: UpdateElasticsearchDomainConfig
s@UpdateElasticsearchDomainConfig' {} Text
a -> UpdateElasticsearchDomainConfig
s {$sel:domainName:UpdateElasticsearchDomainConfig' :: Text
domainName = Text
a} :: UpdateElasticsearchDomainConfig)

instance
  Core.AWSRequest
    UpdateElasticsearchDomainConfig
  where
  type
    AWSResponse UpdateElasticsearchDomainConfig =
      UpdateElasticsearchDomainConfigResponse
  request :: (Service -> Service)
-> UpdateElasticsearchDomainConfig
-> Request UpdateElasticsearchDomainConfig
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateElasticsearchDomainConfig
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse UpdateElasticsearchDomainConfig)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe DryRunResults
-> Int
-> ElasticsearchDomainConfig
-> UpdateElasticsearchDomainConfigResponse
UpdateElasticsearchDomainConfigResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"DryRunResults")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"DomainConfig")
      )

instance
  Prelude.Hashable
    UpdateElasticsearchDomainConfig
  where
  hashWithSalt :: Int -> UpdateElasticsearchDomainConfig -> Int
hashWithSalt
    Int
_salt
    UpdateElasticsearchDomainConfig' {Maybe Bool
Maybe Text
Maybe (HashMap Text Text)
Maybe (HashMap LogType LogPublishingOption)
Maybe CognitoOptions
Maybe EncryptionAtRestOptions
Maybe NodeToNodeEncryptionOptions
Maybe AdvancedSecurityOptionsInput
Maybe SnapshotOptions
Maybe DomainEndpointOptions
Maybe AutoTuneOptions
Maybe VPCOptions
Maybe EBSOptions
Maybe ElasticsearchClusterConfig
Text
domainName :: Text
vPCOptions :: Maybe VPCOptions
snapshotOptions :: Maybe SnapshotOptions
nodeToNodeEncryptionOptions :: Maybe NodeToNodeEncryptionOptions
logPublishingOptions :: Maybe (HashMap LogType LogPublishingOption)
encryptionAtRestOptions :: Maybe EncryptionAtRestOptions
elasticsearchClusterConfig :: Maybe ElasticsearchClusterConfig
eBSOptions :: Maybe EBSOptions
dryRun :: Maybe Bool
domainEndpointOptions :: Maybe DomainEndpointOptions
cognitoOptions :: Maybe CognitoOptions
autoTuneOptions :: Maybe AutoTuneOptions
advancedSecurityOptions :: Maybe AdvancedSecurityOptionsInput
advancedOptions :: Maybe (HashMap Text Text)
accessPolicies :: Maybe Text
$sel:domainName:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Text
$sel:vPCOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe VPCOptions
$sel:snapshotOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe SnapshotOptions
$sel:nodeToNodeEncryptionOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe NodeToNodeEncryptionOptions
$sel:logPublishingOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe (HashMap LogType LogPublishingOption)
$sel:encryptionAtRestOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe EncryptionAtRestOptions
$sel:elasticsearchClusterConfig:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe ElasticsearchClusterConfig
$sel:eBSOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe EBSOptions
$sel:dryRun:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe Bool
$sel:domainEndpointOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe DomainEndpointOptions
$sel:cognitoOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe CognitoOptions
$sel:autoTuneOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe AutoTuneOptions
$sel:advancedSecurityOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe AdvancedSecurityOptionsInput
$sel:advancedOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe (HashMap Text Text)
$sel:accessPolicies:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
accessPolicies
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
advancedOptions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AdvancedSecurityOptionsInput
advancedSecurityOptions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AutoTuneOptions
autoTuneOptions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CognitoOptions
cognitoOptions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DomainEndpointOptions
domainEndpointOptions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EBSOptions
eBSOptions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ElasticsearchClusterConfig
elasticsearchClusterConfig
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EncryptionAtRestOptions
encryptionAtRestOptions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SnapshotOptions
snapshotOptions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VPCOptions
vPCOptions
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
domainName

instance
  Prelude.NFData
    UpdateElasticsearchDomainConfig
  where
  rnf :: UpdateElasticsearchDomainConfig -> ()
rnf UpdateElasticsearchDomainConfig' {Maybe Bool
Maybe Text
Maybe (HashMap Text Text)
Maybe (HashMap LogType LogPublishingOption)
Maybe CognitoOptions
Maybe EncryptionAtRestOptions
Maybe NodeToNodeEncryptionOptions
Maybe AdvancedSecurityOptionsInput
Maybe SnapshotOptions
Maybe DomainEndpointOptions
Maybe AutoTuneOptions
Maybe VPCOptions
Maybe EBSOptions
Maybe ElasticsearchClusterConfig
Text
domainName :: Text
vPCOptions :: Maybe VPCOptions
snapshotOptions :: Maybe SnapshotOptions
nodeToNodeEncryptionOptions :: Maybe NodeToNodeEncryptionOptions
logPublishingOptions :: Maybe (HashMap LogType LogPublishingOption)
encryptionAtRestOptions :: Maybe EncryptionAtRestOptions
elasticsearchClusterConfig :: Maybe ElasticsearchClusterConfig
eBSOptions :: Maybe EBSOptions
dryRun :: Maybe Bool
domainEndpointOptions :: Maybe DomainEndpointOptions
cognitoOptions :: Maybe CognitoOptions
autoTuneOptions :: Maybe AutoTuneOptions
advancedSecurityOptions :: Maybe AdvancedSecurityOptionsInput
advancedOptions :: Maybe (HashMap Text Text)
accessPolicies :: Maybe Text
$sel:domainName:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Text
$sel:vPCOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe VPCOptions
$sel:snapshotOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe SnapshotOptions
$sel:nodeToNodeEncryptionOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe NodeToNodeEncryptionOptions
$sel:logPublishingOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe (HashMap LogType LogPublishingOption)
$sel:encryptionAtRestOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe EncryptionAtRestOptions
$sel:elasticsearchClusterConfig:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe ElasticsearchClusterConfig
$sel:eBSOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe EBSOptions
$sel:dryRun:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe Bool
$sel:domainEndpointOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe DomainEndpointOptions
$sel:cognitoOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe CognitoOptions
$sel:autoTuneOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe AutoTuneOptions
$sel:advancedSecurityOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe AdvancedSecurityOptionsInput
$sel:advancedOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe (HashMap Text Text)
$sel:accessPolicies:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
accessPolicies
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
advancedOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AdvancedSecurityOptionsInput
advancedSecurityOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AutoTuneOptions
autoTuneOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CognitoOptions
cognitoOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DomainEndpointOptions
domainEndpointOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
dryRun
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EBSOptions
eBSOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ElasticsearchClusterConfig
elasticsearchClusterConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EncryptionAtRestOptions
encryptionAtRestOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SnapshotOptions
snapshotOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VPCOptions
vPCOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
domainName

instance
  Data.ToHeaders
    UpdateElasticsearchDomainConfig
  where
  toHeaders :: UpdateElasticsearchDomainConfig -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToJSON UpdateElasticsearchDomainConfig where
  toJSON :: UpdateElasticsearchDomainConfig -> Value
toJSON UpdateElasticsearchDomainConfig' {Maybe Bool
Maybe Text
Maybe (HashMap Text Text)
Maybe (HashMap LogType LogPublishingOption)
Maybe CognitoOptions
Maybe EncryptionAtRestOptions
Maybe NodeToNodeEncryptionOptions
Maybe AdvancedSecurityOptionsInput
Maybe SnapshotOptions
Maybe DomainEndpointOptions
Maybe AutoTuneOptions
Maybe VPCOptions
Maybe EBSOptions
Maybe ElasticsearchClusterConfig
Text
domainName :: Text
vPCOptions :: Maybe VPCOptions
snapshotOptions :: Maybe SnapshotOptions
nodeToNodeEncryptionOptions :: Maybe NodeToNodeEncryptionOptions
logPublishingOptions :: Maybe (HashMap LogType LogPublishingOption)
encryptionAtRestOptions :: Maybe EncryptionAtRestOptions
elasticsearchClusterConfig :: Maybe ElasticsearchClusterConfig
eBSOptions :: Maybe EBSOptions
dryRun :: Maybe Bool
domainEndpointOptions :: Maybe DomainEndpointOptions
cognitoOptions :: Maybe CognitoOptions
autoTuneOptions :: Maybe AutoTuneOptions
advancedSecurityOptions :: Maybe AdvancedSecurityOptionsInput
advancedOptions :: Maybe (HashMap Text Text)
accessPolicies :: Maybe Text
$sel:domainName:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Text
$sel:vPCOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe VPCOptions
$sel:snapshotOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe SnapshotOptions
$sel:nodeToNodeEncryptionOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe NodeToNodeEncryptionOptions
$sel:logPublishingOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe (HashMap LogType LogPublishingOption)
$sel:encryptionAtRestOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe EncryptionAtRestOptions
$sel:elasticsearchClusterConfig:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe ElasticsearchClusterConfig
$sel:eBSOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe EBSOptions
$sel:dryRun:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe Bool
$sel:domainEndpointOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe DomainEndpointOptions
$sel:cognitoOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe CognitoOptions
$sel:autoTuneOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe AutoTuneOptions
$sel:advancedSecurityOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe AdvancedSecurityOptionsInput
$sel:advancedOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe (HashMap Text Text)
$sel:accessPolicies:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"AccessPolicies" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
accessPolicies,
            (Key
"AdvancedOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text Text)
advancedOptions,
            (Key
"AdvancedSecurityOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AdvancedSecurityOptionsInput
advancedSecurityOptions,
            (Key
"AutoTuneOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AutoTuneOptions
autoTuneOptions,
            (Key
"CognitoOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CognitoOptions
cognitoOptions,
            (Key
"DomainEndpointOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DomainEndpointOptions
domainEndpointOptions,
            (Key
"DryRun" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
dryRun,
            (Key
"EBSOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe EBSOptions
eBSOptions,
            (Key
"ElasticsearchClusterConfig" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ElasticsearchClusterConfig
elasticsearchClusterConfig,
            (Key
"EncryptionAtRestOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe EncryptionAtRestOptions
encryptionAtRestOptions,
            (Key
"LogPublishingOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions,
            (Key
"NodeToNodeEncryptionOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions,
            (Key
"SnapshotOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SnapshotOptions
snapshotOptions,
            (Key
"VPCOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe VPCOptions
vPCOptions
          ]
      )

instance Data.ToPath UpdateElasticsearchDomainConfig where
  toPath :: UpdateElasticsearchDomainConfig -> ByteString
toPath UpdateElasticsearchDomainConfig' {Maybe Bool
Maybe Text
Maybe (HashMap Text Text)
Maybe (HashMap LogType LogPublishingOption)
Maybe CognitoOptions
Maybe EncryptionAtRestOptions
Maybe NodeToNodeEncryptionOptions
Maybe AdvancedSecurityOptionsInput
Maybe SnapshotOptions
Maybe DomainEndpointOptions
Maybe AutoTuneOptions
Maybe VPCOptions
Maybe EBSOptions
Maybe ElasticsearchClusterConfig
Text
domainName :: Text
vPCOptions :: Maybe VPCOptions
snapshotOptions :: Maybe SnapshotOptions
nodeToNodeEncryptionOptions :: Maybe NodeToNodeEncryptionOptions
logPublishingOptions :: Maybe (HashMap LogType LogPublishingOption)
encryptionAtRestOptions :: Maybe EncryptionAtRestOptions
elasticsearchClusterConfig :: Maybe ElasticsearchClusterConfig
eBSOptions :: Maybe EBSOptions
dryRun :: Maybe Bool
domainEndpointOptions :: Maybe DomainEndpointOptions
cognitoOptions :: Maybe CognitoOptions
autoTuneOptions :: Maybe AutoTuneOptions
advancedSecurityOptions :: Maybe AdvancedSecurityOptionsInput
advancedOptions :: Maybe (HashMap Text Text)
accessPolicies :: Maybe Text
$sel:domainName:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Text
$sel:vPCOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe VPCOptions
$sel:snapshotOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe SnapshotOptions
$sel:nodeToNodeEncryptionOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe NodeToNodeEncryptionOptions
$sel:logPublishingOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe (HashMap LogType LogPublishingOption)
$sel:encryptionAtRestOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe EncryptionAtRestOptions
$sel:elasticsearchClusterConfig:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe ElasticsearchClusterConfig
$sel:eBSOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe EBSOptions
$sel:dryRun:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe Bool
$sel:domainEndpointOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe DomainEndpointOptions
$sel:cognitoOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe CognitoOptions
$sel:autoTuneOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe AutoTuneOptions
$sel:advancedSecurityOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig
-> Maybe AdvancedSecurityOptionsInput
$sel:advancedOptions:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe (HashMap Text Text)
$sel:accessPolicies:UpdateElasticsearchDomainConfig' :: UpdateElasticsearchDomainConfig -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/2015-01-01/es/domain/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
domainName,
        ByteString
"/config"
      ]

instance Data.ToQuery UpdateElasticsearchDomainConfig where
  toQuery :: UpdateElasticsearchDomainConfig -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | The result of an @UpdateElasticsearchDomain@ request. Contains the
-- status of the Elasticsearch domain being updated.
--
-- /See:/ 'newUpdateElasticsearchDomainConfigResponse' smart constructor.
data UpdateElasticsearchDomainConfigResponse = UpdateElasticsearchDomainConfigResponse'
  { -- | Contains result of DryRun.
    UpdateElasticsearchDomainConfigResponse -> Maybe DryRunResults
dryRunResults :: Prelude.Maybe DryRunResults,
    -- | The response's http status code.
    UpdateElasticsearchDomainConfigResponse -> Int
httpStatus :: Prelude.Int,
    -- | The status of the updated Elasticsearch domain.
    UpdateElasticsearchDomainConfigResponse
-> ElasticsearchDomainConfig
domainConfig :: ElasticsearchDomainConfig
  }
  deriving (UpdateElasticsearchDomainConfigResponse
-> UpdateElasticsearchDomainConfigResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateElasticsearchDomainConfigResponse
-> UpdateElasticsearchDomainConfigResponse -> Bool
$c/= :: UpdateElasticsearchDomainConfigResponse
-> UpdateElasticsearchDomainConfigResponse -> Bool
== :: UpdateElasticsearchDomainConfigResponse
-> UpdateElasticsearchDomainConfigResponse -> Bool
$c== :: UpdateElasticsearchDomainConfigResponse
-> UpdateElasticsearchDomainConfigResponse -> Bool
Prelude.Eq, ReadPrec [UpdateElasticsearchDomainConfigResponse]
ReadPrec UpdateElasticsearchDomainConfigResponse
Int -> ReadS UpdateElasticsearchDomainConfigResponse
ReadS [UpdateElasticsearchDomainConfigResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateElasticsearchDomainConfigResponse]
$creadListPrec :: ReadPrec [UpdateElasticsearchDomainConfigResponse]
readPrec :: ReadPrec UpdateElasticsearchDomainConfigResponse
$creadPrec :: ReadPrec UpdateElasticsearchDomainConfigResponse
readList :: ReadS [UpdateElasticsearchDomainConfigResponse]
$creadList :: ReadS [UpdateElasticsearchDomainConfigResponse]
readsPrec :: Int -> ReadS UpdateElasticsearchDomainConfigResponse
$creadsPrec :: Int -> ReadS UpdateElasticsearchDomainConfigResponse
Prelude.Read, Int -> UpdateElasticsearchDomainConfigResponse -> ShowS
[UpdateElasticsearchDomainConfigResponse] -> ShowS
UpdateElasticsearchDomainConfigResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateElasticsearchDomainConfigResponse] -> ShowS
$cshowList :: [UpdateElasticsearchDomainConfigResponse] -> ShowS
show :: UpdateElasticsearchDomainConfigResponse -> String
$cshow :: UpdateElasticsearchDomainConfigResponse -> String
showsPrec :: Int -> UpdateElasticsearchDomainConfigResponse -> ShowS
$cshowsPrec :: Int -> UpdateElasticsearchDomainConfigResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateElasticsearchDomainConfigResponse x
-> UpdateElasticsearchDomainConfigResponse
forall x.
UpdateElasticsearchDomainConfigResponse
-> Rep UpdateElasticsearchDomainConfigResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateElasticsearchDomainConfigResponse x
-> UpdateElasticsearchDomainConfigResponse
$cfrom :: forall x.
UpdateElasticsearchDomainConfigResponse
-> Rep UpdateElasticsearchDomainConfigResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateElasticsearchDomainConfigResponse' 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:
--
-- 'dryRunResults', 'updateElasticsearchDomainConfigResponse_dryRunResults' - Contains result of DryRun.
--
-- 'httpStatus', 'updateElasticsearchDomainConfigResponse_httpStatus' - The response's http status code.
--
-- 'domainConfig', 'updateElasticsearchDomainConfigResponse_domainConfig' - The status of the updated Elasticsearch domain.
newUpdateElasticsearchDomainConfigResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'domainConfig'
  ElasticsearchDomainConfig ->
  UpdateElasticsearchDomainConfigResponse
newUpdateElasticsearchDomainConfigResponse :: Int
-> ElasticsearchDomainConfig
-> UpdateElasticsearchDomainConfigResponse
newUpdateElasticsearchDomainConfigResponse
  Int
pHttpStatus_
  ElasticsearchDomainConfig
pDomainConfig_ =
    UpdateElasticsearchDomainConfigResponse'
      { $sel:dryRunResults:UpdateElasticsearchDomainConfigResponse' :: Maybe DryRunResults
dryRunResults =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:UpdateElasticsearchDomainConfigResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:domainConfig:UpdateElasticsearchDomainConfigResponse' :: ElasticsearchDomainConfig
domainConfig = ElasticsearchDomainConfig
pDomainConfig_
      }

-- | Contains result of DryRun.
updateElasticsearchDomainConfigResponse_dryRunResults :: Lens.Lens' UpdateElasticsearchDomainConfigResponse (Prelude.Maybe DryRunResults)
updateElasticsearchDomainConfigResponse_dryRunResults :: Lens' UpdateElasticsearchDomainConfigResponse (Maybe DryRunResults)
updateElasticsearchDomainConfigResponse_dryRunResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfigResponse' {Maybe DryRunResults
dryRunResults :: Maybe DryRunResults
$sel:dryRunResults:UpdateElasticsearchDomainConfigResponse' :: UpdateElasticsearchDomainConfigResponse -> Maybe DryRunResults
dryRunResults} -> Maybe DryRunResults
dryRunResults) (\s :: UpdateElasticsearchDomainConfigResponse
s@UpdateElasticsearchDomainConfigResponse' {} Maybe DryRunResults
a -> UpdateElasticsearchDomainConfigResponse
s {$sel:dryRunResults:UpdateElasticsearchDomainConfigResponse' :: Maybe DryRunResults
dryRunResults = Maybe DryRunResults
a} :: UpdateElasticsearchDomainConfigResponse)

-- | The response's http status code.
updateElasticsearchDomainConfigResponse_httpStatus :: Lens.Lens' UpdateElasticsearchDomainConfigResponse Prelude.Int
updateElasticsearchDomainConfigResponse_httpStatus :: Lens' UpdateElasticsearchDomainConfigResponse Int
updateElasticsearchDomainConfigResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfigResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateElasticsearchDomainConfigResponse' :: UpdateElasticsearchDomainConfigResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateElasticsearchDomainConfigResponse
s@UpdateElasticsearchDomainConfigResponse' {} Int
a -> UpdateElasticsearchDomainConfigResponse
s {$sel:httpStatus:UpdateElasticsearchDomainConfigResponse' :: Int
httpStatus = Int
a} :: UpdateElasticsearchDomainConfigResponse)

-- | The status of the updated Elasticsearch domain.
updateElasticsearchDomainConfigResponse_domainConfig :: Lens.Lens' UpdateElasticsearchDomainConfigResponse ElasticsearchDomainConfig
updateElasticsearchDomainConfigResponse_domainConfig :: Lens'
  UpdateElasticsearchDomainConfigResponse ElasticsearchDomainConfig
updateElasticsearchDomainConfigResponse_domainConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateElasticsearchDomainConfigResponse' {ElasticsearchDomainConfig
domainConfig :: ElasticsearchDomainConfig
$sel:domainConfig:UpdateElasticsearchDomainConfigResponse' :: UpdateElasticsearchDomainConfigResponse
-> ElasticsearchDomainConfig
domainConfig} -> ElasticsearchDomainConfig
domainConfig) (\s :: UpdateElasticsearchDomainConfigResponse
s@UpdateElasticsearchDomainConfigResponse' {} ElasticsearchDomainConfig
a -> UpdateElasticsearchDomainConfigResponse
s {$sel:domainConfig:UpdateElasticsearchDomainConfigResponse' :: ElasticsearchDomainConfig
domainConfig = ElasticsearchDomainConfig
a} :: UpdateElasticsearchDomainConfigResponse)

instance
  Prelude.NFData
    UpdateElasticsearchDomainConfigResponse
  where
  rnf :: UpdateElasticsearchDomainConfigResponse -> ()
rnf UpdateElasticsearchDomainConfigResponse' {Int
Maybe DryRunResults
ElasticsearchDomainConfig
domainConfig :: ElasticsearchDomainConfig
httpStatus :: Int
dryRunResults :: Maybe DryRunResults
$sel:domainConfig:UpdateElasticsearchDomainConfigResponse' :: UpdateElasticsearchDomainConfigResponse
-> ElasticsearchDomainConfig
$sel:httpStatus:UpdateElasticsearchDomainConfigResponse' :: UpdateElasticsearchDomainConfigResponse -> Int
$sel:dryRunResults:UpdateElasticsearchDomainConfigResponse' :: UpdateElasticsearchDomainConfigResponse -> Maybe DryRunResults
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe DryRunResults
dryRunResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ElasticsearchDomainConfig
domainConfig