{-# 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.SecurityHub.Types.AwsOpenSearchServiceDomainClusterConfigDetails
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SecurityHub.Types.AwsOpenSearchServiceDomainClusterConfigDetails where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.SecurityHub.Types.AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails

-- | Details about the configuration of an OpenSearch cluster.
--
-- /See:/ 'newAwsOpenSearchServiceDomainClusterConfigDetails' smart constructor.
data AwsOpenSearchServiceDomainClusterConfigDetails = AwsOpenSearchServiceDomainClusterConfigDetails'
  { -- | The number of instances to use for the master node. If this attribute is
    -- specified, then @DedicatedMasterEnabled@ must be @true@.
    AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int
dedicatedMasterCount :: Prelude.Maybe Prelude.Int,
    -- | The hardware configuration of the computer that hosts the dedicated
    -- master node.
    --
    -- If this attribute is specified, then @DedicatedMasterEnabled@ must be
    -- @true@.
    AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text
dedicatedMasterType :: Prelude.Maybe Prelude.Text,
    -- | Whether to use a dedicated master node for the OpenSearch domain. A
    -- dedicated master node performs cluster management tasks, but does not
    -- hold data or respond to data upload requests.
    AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool
dedicatedMasterEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The number of data nodes to use in the OpenSearch domain.
    AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int
instanceCount :: Prelude.Maybe Prelude.Int,
    -- | Whether to enable zone awareness for the OpenSearch domain. When zone
    -- awareness is enabled, OpenSearch Service allocates the cluster\'s nodes
    -- and replica index shards across Availability Zones (AZs) in the same
    -- Region. This prevents data loss and minimizes downtime if a node or data
    -- center fails.
    AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool
zoneAwarenessEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The instance type for your data nodes.
    AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text
instanceType :: Prelude.Maybe Prelude.Text,
    -- | Whether UltraWarm is enabled.
    AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool
warmEnabled :: Prelude.Maybe Prelude.Bool,
    -- | Configuration options for zone awareness. Provided if
    -- @ZoneAwarenessEnabled@ is @true@.
    AwsOpenSearchServiceDomainClusterConfigDetails
-> Maybe
     AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
zoneAwarenessConfig :: Prelude.Maybe AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails,
    -- | The number of UltraWarm instances.
    AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int
warmCount :: Prelude.Maybe Prelude.Int,
    -- | The type of UltraWarm instance.
    AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text
warmType :: Prelude.Maybe Prelude.Text
  }
  deriving (AwsOpenSearchServiceDomainClusterConfigDetails
-> AwsOpenSearchServiceDomainClusterConfigDetails -> Bool
(AwsOpenSearchServiceDomainClusterConfigDetails
 -> AwsOpenSearchServiceDomainClusterConfigDetails -> Bool)
-> (AwsOpenSearchServiceDomainClusterConfigDetails
    -> AwsOpenSearchServiceDomainClusterConfigDetails -> Bool)
-> Eq AwsOpenSearchServiceDomainClusterConfigDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AwsOpenSearchServiceDomainClusterConfigDetails
-> AwsOpenSearchServiceDomainClusterConfigDetails -> Bool
$c/= :: AwsOpenSearchServiceDomainClusterConfigDetails
-> AwsOpenSearchServiceDomainClusterConfigDetails -> Bool
== :: AwsOpenSearchServiceDomainClusterConfigDetails
-> AwsOpenSearchServiceDomainClusterConfigDetails -> Bool
$c== :: AwsOpenSearchServiceDomainClusterConfigDetails
-> AwsOpenSearchServiceDomainClusterConfigDetails -> Bool
Prelude.Eq, ReadPrec [AwsOpenSearchServiceDomainClusterConfigDetails]
ReadPrec AwsOpenSearchServiceDomainClusterConfigDetails
Int -> ReadS AwsOpenSearchServiceDomainClusterConfigDetails
ReadS [AwsOpenSearchServiceDomainClusterConfigDetails]
(Int -> ReadS AwsOpenSearchServiceDomainClusterConfigDetails)
-> ReadS [AwsOpenSearchServiceDomainClusterConfigDetails]
-> ReadPrec AwsOpenSearchServiceDomainClusterConfigDetails
-> ReadPrec [AwsOpenSearchServiceDomainClusterConfigDetails]
-> Read AwsOpenSearchServiceDomainClusterConfigDetails
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AwsOpenSearchServiceDomainClusterConfigDetails]
$creadListPrec :: ReadPrec [AwsOpenSearchServiceDomainClusterConfigDetails]
readPrec :: ReadPrec AwsOpenSearchServiceDomainClusterConfigDetails
$creadPrec :: ReadPrec AwsOpenSearchServiceDomainClusterConfigDetails
readList :: ReadS [AwsOpenSearchServiceDomainClusterConfigDetails]
$creadList :: ReadS [AwsOpenSearchServiceDomainClusterConfigDetails]
readsPrec :: Int -> ReadS AwsOpenSearchServiceDomainClusterConfigDetails
$creadsPrec :: Int -> ReadS AwsOpenSearchServiceDomainClusterConfigDetails
Prelude.Read, Int -> AwsOpenSearchServiceDomainClusterConfigDetails -> ShowS
[AwsOpenSearchServiceDomainClusterConfigDetails] -> ShowS
AwsOpenSearchServiceDomainClusterConfigDetails -> String
(Int -> AwsOpenSearchServiceDomainClusterConfigDetails -> ShowS)
-> (AwsOpenSearchServiceDomainClusterConfigDetails -> String)
-> ([AwsOpenSearchServiceDomainClusterConfigDetails] -> ShowS)
-> Show AwsOpenSearchServiceDomainClusterConfigDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AwsOpenSearchServiceDomainClusterConfigDetails] -> ShowS
$cshowList :: [AwsOpenSearchServiceDomainClusterConfigDetails] -> ShowS
show :: AwsOpenSearchServiceDomainClusterConfigDetails -> String
$cshow :: AwsOpenSearchServiceDomainClusterConfigDetails -> String
showsPrec :: Int -> AwsOpenSearchServiceDomainClusterConfigDetails -> ShowS
$cshowsPrec :: Int -> AwsOpenSearchServiceDomainClusterConfigDetails -> ShowS
Prelude.Show, (forall x.
 AwsOpenSearchServiceDomainClusterConfigDetails
 -> Rep AwsOpenSearchServiceDomainClusterConfigDetails x)
-> (forall x.
    Rep AwsOpenSearchServiceDomainClusterConfigDetails x
    -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Generic AwsOpenSearchServiceDomainClusterConfigDetails
forall x.
Rep AwsOpenSearchServiceDomainClusterConfigDetails x
-> AwsOpenSearchServiceDomainClusterConfigDetails
forall x.
AwsOpenSearchServiceDomainClusterConfigDetails
-> Rep AwsOpenSearchServiceDomainClusterConfigDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AwsOpenSearchServiceDomainClusterConfigDetails x
-> AwsOpenSearchServiceDomainClusterConfigDetails
$cfrom :: forall x.
AwsOpenSearchServiceDomainClusterConfigDetails
-> Rep AwsOpenSearchServiceDomainClusterConfigDetails x
Prelude.Generic)

-- |
-- Create a value of 'AwsOpenSearchServiceDomainClusterConfigDetails' 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:
--
-- 'dedicatedMasterCount', 'awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterCount' - The number of instances to use for the master node. If this attribute is
-- specified, then @DedicatedMasterEnabled@ must be @true@.
--
-- 'dedicatedMasterType', 'awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterType' - The hardware configuration of the computer that hosts the dedicated
-- master node.
--
-- If this attribute is specified, then @DedicatedMasterEnabled@ must be
-- @true@.
--
-- 'dedicatedMasterEnabled', 'awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterEnabled' - Whether to use a dedicated master node for the OpenSearch domain. A
-- dedicated master node performs cluster management tasks, but does not
-- hold data or respond to data upload requests.
--
-- 'instanceCount', 'awsOpenSearchServiceDomainClusterConfigDetails_instanceCount' - The number of data nodes to use in the OpenSearch domain.
--
-- 'zoneAwarenessEnabled', 'awsOpenSearchServiceDomainClusterConfigDetails_zoneAwarenessEnabled' - Whether to enable zone awareness for the OpenSearch domain. When zone
-- awareness is enabled, OpenSearch Service allocates the cluster\'s nodes
-- and replica index shards across Availability Zones (AZs) in the same
-- Region. This prevents data loss and minimizes downtime if a node or data
-- center fails.
--
-- 'instanceType', 'awsOpenSearchServiceDomainClusterConfigDetails_instanceType' - The instance type for your data nodes.
--
-- 'warmEnabled', 'awsOpenSearchServiceDomainClusterConfigDetails_warmEnabled' - Whether UltraWarm is enabled.
--
-- 'zoneAwarenessConfig', 'awsOpenSearchServiceDomainClusterConfigDetails_zoneAwarenessConfig' - Configuration options for zone awareness. Provided if
-- @ZoneAwarenessEnabled@ is @true@.
--
-- 'warmCount', 'awsOpenSearchServiceDomainClusterConfigDetails_warmCount' - The number of UltraWarm instances.
--
-- 'warmType', 'awsOpenSearchServiceDomainClusterConfigDetails_warmType' - The type of UltraWarm instance.
newAwsOpenSearchServiceDomainClusterConfigDetails ::
  AwsOpenSearchServiceDomainClusterConfigDetails
newAwsOpenSearchServiceDomainClusterConfigDetails :: AwsOpenSearchServiceDomainClusterConfigDetails
newAwsOpenSearchServiceDomainClusterConfigDetails =
  AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Int
-> Maybe Text
-> Maybe Bool
-> Maybe Int
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe
     AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
-> Maybe Int
-> Maybe Text
-> AwsOpenSearchServiceDomainClusterConfigDetails
AwsOpenSearchServiceDomainClusterConfigDetails'
    { $sel:dedicatedMasterCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Int
dedicatedMasterCount =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:dedicatedMasterType:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Text
dedicatedMasterType =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dedicatedMasterEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Bool
dedicatedMasterEnabled =
        Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:instanceCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Int
instanceCount =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:zoneAwarenessEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Bool
zoneAwarenessEnabled =
        Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:instanceType:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Text
instanceType =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:warmEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Bool
warmEnabled =
        Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:zoneAwarenessConfig:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe
  AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
zoneAwarenessConfig =
        Maybe
  AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
forall a. Maybe a
Prelude.Nothing,
      $sel:warmCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Int
warmCount = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:warmType:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Text
warmType = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | The number of instances to use for the master node. If this attribute is
-- specified, then @DedicatedMasterEnabled@ must be @true@.
awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterCount :: Lens.Lens' AwsOpenSearchServiceDomainClusterConfigDetails (Prelude.Maybe Prelude.Int)
awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterCount :: (Maybe Int -> f (Maybe Int))
-> AwsOpenSearchServiceDomainClusterConfigDetails
-> f AwsOpenSearchServiceDomainClusterConfigDetails
awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterCount = (AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int)
-> (AwsOpenSearchServiceDomainClusterConfigDetails
    -> Maybe Int -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Lens
     AwsOpenSearchServiceDomainClusterConfigDetails
     AwsOpenSearchServiceDomainClusterConfigDetails
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsOpenSearchServiceDomainClusterConfigDetails' {Maybe Int
dedicatedMasterCount :: Maybe Int
$sel:dedicatedMasterCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int
dedicatedMasterCount} -> Maybe Int
dedicatedMasterCount) (\s :: AwsOpenSearchServiceDomainClusterConfigDetails
s@AwsOpenSearchServiceDomainClusterConfigDetails' {} Maybe Int
a -> AwsOpenSearchServiceDomainClusterConfigDetails
s {$sel:dedicatedMasterCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Int
dedicatedMasterCount = Maybe Int
a} :: AwsOpenSearchServiceDomainClusterConfigDetails)

-- | The hardware configuration of the computer that hosts the dedicated
-- master node.
--
-- If this attribute is specified, then @DedicatedMasterEnabled@ must be
-- @true@.
awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterType :: Lens.Lens' AwsOpenSearchServiceDomainClusterConfigDetails (Prelude.Maybe Prelude.Text)
awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterType :: (Maybe Text -> f (Maybe Text))
-> AwsOpenSearchServiceDomainClusterConfigDetails
-> f AwsOpenSearchServiceDomainClusterConfigDetails
awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterType = (AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text)
-> (AwsOpenSearchServiceDomainClusterConfigDetails
    -> Maybe Text -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Lens
     AwsOpenSearchServiceDomainClusterConfigDetails
     AwsOpenSearchServiceDomainClusterConfigDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsOpenSearchServiceDomainClusterConfigDetails' {Maybe Text
dedicatedMasterType :: Maybe Text
$sel:dedicatedMasterType:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text
dedicatedMasterType} -> Maybe Text
dedicatedMasterType) (\s :: AwsOpenSearchServiceDomainClusterConfigDetails
s@AwsOpenSearchServiceDomainClusterConfigDetails' {} Maybe Text
a -> AwsOpenSearchServiceDomainClusterConfigDetails
s {$sel:dedicatedMasterType:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Text
dedicatedMasterType = Maybe Text
a} :: AwsOpenSearchServiceDomainClusterConfigDetails)

-- | Whether to use a dedicated master node for the OpenSearch domain. A
-- dedicated master node performs cluster management tasks, but does not
-- hold data or respond to data upload requests.
awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterEnabled :: Lens.Lens' AwsOpenSearchServiceDomainClusterConfigDetails (Prelude.Maybe Prelude.Bool)
awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterEnabled :: (Maybe Bool -> f (Maybe Bool))
-> AwsOpenSearchServiceDomainClusterConfigDetails
-> f AwsOpenSearchServiceDomainClusterConfigDetails
awsOpenSearchServiceDomainClusterConfigDetails_dedicatedMasterEnabled = (AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool)
-> (AwsOpenSearchServiceDomainClusterConfigDetails
    -> Maybe Bool -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Lens
     AwsOpenSearchServiceDomainClusterConfigDetails
     AwsOpenSearchServiceDomainClusterConfigDetails
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsOpenSearchServiceDomainClusterConfigDetails' {Maybe Bool
dedicatedMasterEnabled :: Maybe Bool
$sel:dedicatedMasterEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool
dedicatedMasterEnabled} -> Maybe Bool
dedicatedMasterEnabled) (\s :: AwsOpenSearchServiceDomainClusterConfigDetails
s@AwsOpenSearchServiceDomainClusterConfigDetails' {} Maybe Bool
a -> AwsOpenSearchServiceDomainClusterConfigDetails
s {$sel:dedicatedMasterEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Bool
dedicatedMasterEnabled = Maybe Bool
a} :: AwsOpenSearchServiceDomainClusterConfigDetails)

-- | The number of data nodes to use in the OpenSearch domain.
awsOpenSearchServiceDomainClusterConfigDetails_instanceCount :: Lens.Lens' AwsOpenSearchServiceDomainClusterConfigDetails (Prelude.Maybe Prelude.Int)
awsOpenSearchServiceDomainClusterConfigDetails_instanceCount :: (Maybe Int -> f (Maybe Int))
-> AwsOpenSearchServiceDomainClusterConfigDetails
-> f AwsOpenSearchServiceDomainClusterConfigDetails
awsOpenSearchServiceDomainClusterConfigDetails_instanceCount = (AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int)
-> (AwsOpenSearchServiceDomainClusterConfigDetails
    -> Maybe Int -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Lens
     AwsOpenSearchServiceDomainClusterConfigDetails
     AwsOpenSearchServiceDomainClusterConfigDetails
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsOpenSearchServiceDomainClusterConfigDetails' {Maybe Int
instanceCount :: Maybe Int
$sel:instanceCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int
instanceCount} -> Maybe Int
instanceCount) (\s :: AwsOpenSearchServiceDomainClusterConfigDetails
s@AwsOpenSearchServiceDomainClusterConfigDetails' {} Maybe Int
a -> AwsOpenSearchServiceDomainClusterConfigDetails
s {$sel:instanceCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Int
instanceCount = Maybe Int
a} :: AwsOpenSearchServiceDomainClusterConfigDetails)

-- | Whether to enable zone awareness for the OpenSearch domain. When zone
-- awareness is enabled, OpenSearch Service allocates the cluster\'s nodes
-- and replica index shards across Availability Zones (AZs) in the same
-- Region. This prevents data loss and minimizes downtime if a node or data
-- center fails.
awsOpenSearchServiceDomainClusterConfigDetails_zoneAwarenessEnabled :: Lens.Lens' AwsOpenSearchServiceDomainClusterConfigDetails (Prelude.Maybe Prelude.Bool)
awsOpenSearchServiceDomainClusterConfigDetails_zoneAwarenessEnabled :: (Maybe Bool -> f (Maybe Bool))
-> AwsOpenSearchServiceDomainClusterConfigDetails
-> f AwsOpenSearchServiceDomainClusterConfigDetails
awsOpenSearchServiceDomainClusterConfigDetails_zoneAwarenessEnabled = (AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool)
-> (AwsOpenSearchServiceDomainClusterConfigDetails
    -> Maybe Bool -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Lens
     AwsOpenSearchServiceDomainClusterConfigDetails
     AwsOpenSearchServiceDomainClusterConfigDetails
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsOpenSearchServiceDomainClusterConfigDetails' {Maybe Bool
zoneAwarenessEnabled :: Maybe Bool
$sel:zoneAwarenessEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool
zoneAwarenessEnabled} -> Maybe Bool
zoneAwarenessEnabled) (\s :: AwsOpenSearchServiceDomainClusterConfigDetails
s@AwsOpenSearchServiceDomainClusterConfigDetails' {} Maybe Bool
a -> AwsOpenSearchServiceDomainClusterConfigDetails
s {$sel:zoneAwarenessEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Bool
zoneAwarenessEnabled = Maybe Bool
a} :: AwsOpenSearchServiceDomainClusterConfigDetails)

-- | The instance type for your data nodes.
awsOpenSearchServiceDomainClusterConfigDetails_instanceType :: Lens.Lens' AwsOpenSearchServiceDomainClusterConfigDetails (Prelude.Maybe Prelude.Text)
awsOpenSearchServiceDomainClusterConfigDetails_instanceType :: (Maybe Text -> f (Maybe Text))
-> AwsOpenSearchServiceDomainClusterConfigDetails
-> f AwsOpenSearchServiceDomainClusterConfigDetails
awsOpenSearchServiceDomainClusterConfigDetails_instanceType = (AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text)
-> (AwsOpenSearchServiceDomainClusterConfigDetails
    -> Maybe Text -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Lens
     AwsOpenSearchServiceDomainClusterConfigDetails
     AwsOpenSearchServiceDomainClusterConfigDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsOpenSearchServiceDomainClusterConfigDetails' {Maybe Text
instanceType :: Maybe Text
$sel:instanceType:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text
instanceType} -> Maybe Text
instanceType) (\s :: AwsOpenSearchServiceDomainClusterConfigDetails
s@AwsOpenSearchServiceDomainClusterConfigDetails' {} Maybe Text
a -> AwsOpenSearchServiceDomainClusterConfigDetails
s {$sel:instanceType:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Text
instanceType = Maybe Text
a} :: AwsOpenSearchServiceDomainClusterConfigDetails)

-- | Whether UltraWarm is enabled.
awsOpenSearchServiceDomainClusterConfigDetails_warmEnabled :: Lens.Lens' AwsOpenSearchServiceDomainClusterConfigDetails (Prelude.Maybe Prelude.Bool)
awsOpenSearchServiceDomainClusterConfigDetails_warmEnabled :: (Maybe Bool -> f (Maybe Bool))
-> AwsOpenSearchServiceDomainClusterConfigDetails
-> f AwsOpenSearchServiceDomainClusterConfigDetails
awsOpenSearchServiceDomainClusterConfigDetails_warmEnabled = (AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool)
-> (AwsOpenSearchServiceDomainClusterConfigDetails
    -> Maybe Bool -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Lens
     AwsOpenSearchServiceDomainClusterConfigDetails
     AwsOpenSearchServiceDomainClusterConfigDetails
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsOpenSearchServiceDomainClusterConfigDetails' {Maybe Bool
warmEnabled :: Maybe Bool
$sel:warmEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool
warmEnabled} -> Maybe Bool
warmEnabled) (\s :: AwsOpenSearchServiceDomainClusterConfigDetails
s@AwsOpenSearchServiceDomainClusterConfigDetails' {} Maybe Bool
a -> AwsOpenSearchServiceDomainClusterConfigDetails
s {$sel:warmEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Bool
warmEnabled = Maybe Bool
a} :: AwsOpenSearchServiceDomainClusterConfigDetails)

-- | Configuration options for zone awareness. Provided if
-- @ZoneAwarenessEnabled@ is @true@.
awsOpenSearchServiceDomainClusterConfigDetails_zoneAwarenessConfig :: Lens.Lens' AwsOpenSearchServiceDomainClusterConfigDetails (Prelude.Maybe AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails)
awsOpenSearchServiceDomainClusterConfigDetails_zoneAwarenessConfig :: (Maybe
   AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
 -> f (Maybe
         AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails))
-> AwsOpenSearchServiceDomainClusterConfigDetails
-> f AwsOpenSearchServiceDomainClusterConfigDetails
awsOpenSearchServiceDomainClusterConfigDetails_zoneAwarenessConfig = (AwsOpenSearchServiceDomainClusterConfigDetails
 -> Maybe
      AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails)
-> (AwsOpenSearchServiceDomainClusterConfigDetails
    -> Maybe
         AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
    -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Lens
     AwsOpenSearchServiceDomainClusterConfigDetails
     AwsOpenSearchServiceDomainClusterConfigDetails
     (Maybe
        AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails)
     (Maybe
        AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsOpenSearchServiceDomainClusterConfigDetails' {Maybe
  AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
zoneAwarenessConfig :: Maybe
  AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
$sel:zoneAwarenessConfig:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails
-> Maybe
     AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
zoneAwarenessConfig} -> Maybe
  AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
zoneAwarenessConfig) (\s :: AwsOpenSearchServiceDomainClusterConfigDetails
s@AwsOpenSearchServiceDomainClusterConfigDetails' {} Maybe
  AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
a -> AwsOpenSearchServiceDomainClusterConfigDetails
s {$sel:zoneAwarenessConfig:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe
  AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
zoneAwarenessConfig = Maybe
  AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
a} :: AwsOpenSearchServiceDomainClusterConfigDetails)

-- | The number of UltraWarm instances.
awsOpenSearchServiceDomainClusterConfigDetails_warmCount :: Lens.Lens' AwsOpenSearchServiceDomainClusterConfigDetails (Prelude.Maybe Prelude.Int)
awsOpenSearchServiceDomainClusterConfigDetails_warmCount :: (Maybe Int -> f (Maybe Int))
-> AwsOpenSearchServiceDomainClusterConfigDetails
-> f AwsOpenSearchServiceDomainClusterConfigDetails
awsOpenSearchServiceDomainClusterConfigDetails_warmCount = (AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int)
-> (AwsOpenSearchServiceDomainClusterConfigDetails
    -> Maybe Int -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Lens
     AwsOpenSearchServiceDomainClusterConfigDetails
     AwsOpenSearchServiceDomainClusterConfigDetails
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsOpenSearchServiceDomainClusterConfigDetails' {Maybe Int
warmCount :: Maybe Int
$sel:warmCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int
warmCount} -> Maybe Int
warmCount) (\s :: AwsOpenSearchServiceDomainClusterConfigDetails
s@AwsOpenSearchServiceDomainClusterConfigDetails' {} Maybe Int
a -> AwsOpenSearchServiceDomainClusterConfigDetails
s {$sel:warmCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Int
warmCount = Maybe Int
a} :: AwsOpenSearchServiceDomainClusterConfigDetails)

-- | The type of UltraWarm instance.
awsOpenSearchServiceDomainClusterConfigDetails_warmType :: Lens.Lens' AwsOpenSearchServiceDomainClusterConfigDetails (Prelude.Maybe Prelude.Text)
awsOpenSearchServiceDomainClusterConfigDetails_warmType :: (Maybe Text -> f (Maybe Text))
-> AwsOpenSearchServiceDomainClusterConfigDetails
-> f AwsOpenSearchServiceDomainClusterConfigDetails
awsOpenSearchServiceDomainClusterConfigDetails_warmType = (AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text)
-> (AwsOpenSearchServiceDomainClusterConfigDetails
    -> Maybe Text -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Lens
     AwsOpenSearchServiceDomainClusterConfigDetails
     AwsOpenSearchServiceDomainClusterConfigDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsOpenSearchServiceDomainClusterConfigDetails' {Maybe Text
warmType :: Maybe Text
$sel:warmType:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text
warmType} -> Maybe Text
warmType) (\s :: AwsOpenSearchServiceDomainClusterConfigDetails
s@AwsOpenSearchServiceDomainClusterConfigDetails' {} Maybe Text
a -> AwsOpenSearchServiceDomainClusterConfigDetails
s {$sel:warmType:AwsOpenSearchServiceDomainClusterConfigDetails' :: Maybe Text
warmType = Maybe Text
a} :: AwsOpenSearchServiceDomainClusterConfigDetails)

instance
  Core.FromJSON
    AwsOpenSearchServiceDomainClusterConfigDetails
  where
  parseJSON :: Value -> Parser AwsOpenSearchServiceDomainClusterConfigDetails
parseJSON =
    String
-> (Object
    -> Parser AwsOpenSearchServiceDomainClusterConfigDetails)
-> Value
-> Parser AwsOpenSearchServiceDomainClusterConfigDetails
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"AwsOpenSearchServiceDomainClusterConfigDetails"
      ( \Object
x ->
          Maybe Int
-> Maybe Text
-> Maybe Bool
-> Maybe Int
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe
     AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
-> Maybe Int
-> Maybe Text
-> AwsOpenSearchServiceDomainClusterConfigDetails
AwsOpenSearchServiceDomainClusterConfigDetails'
            (Maybe Int
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Int
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Bool
 -> Maybe
      AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
 -> Maybe Int
 -> Maybe Text
 -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe
           AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
      -> Maybe Int
      -> Maybe Text
      -> AwsOpenSearchServiceDomainClusterConfigDetails)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DedicatedMasterCount")
              Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe
        AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
   -> Maybe Int
   -> Maybe Text
   -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe
           AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
      -> Maybe Int
      -> Maybe Text
      -> AwsOpenSearchServiceDomainClusterConfigDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DedicatedMasterType")
              Parser
  (Maybe Bool
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe
        AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
   -> Maybe Int
   -> Maybe Text
   -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe
           AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
      -> Maybe Int
      -> Maybe Text
      -> AwsOpenSearchServiceDomainClusterConfigDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DedicatedMasterEnabled")
              Parser
  (Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe
        AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
   -> Maybe Int
   -> Maybe Text
   -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe
           AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
      -> Maybe Int
      -> Maybe Text
      -> AwsOpenSearchServiceDomainClusterConfigDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"InstanceCount")
              Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe
        AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
   -> Maybe Int
   -> Maybe Text
   -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe
           AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
      -> Maybe Int
      -> Maybe Text
      -> AwsOpenSearchServiceDomainClusterConfigDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ZoneAwarenessEnabled")
              Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe
        AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
   -> Maybe Int
   -> Maybe Text
   -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe
           AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
      -> Maybe Int
      -> Maybe Text
      -> AwsOpenSearchServiceDomainClusterConfigDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"InstanceType")
              Parser
  (Maybe Bool
   -> Maybe
        AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
   -> Maybe Int
   -> Maybe Text
   -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Parser (Maybe Bool)
-> Parser
     (Maybe
        AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
      -> Maybe Int
      -> Maybe Text
      -> AwsOpenSearchServiceDomainClusterConfigDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"WarmEnabled")
              Parser
  (Maybe
     AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
   -> Maybe Int
   -> Maybe Text
   -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Parser
     (Maybe
        AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails)
-> Parser
     (Maybe Int
      -> Maybe Text -> AwsOpenSearchServiceDomainClusterConfigDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text
-> Parser
     (Maybe
        AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ZoneAwarenessConfig")
              Parser
  (Maybe Int
   -> Maybe Text -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text -> AwsOpenSearchServiceDomainClusterConfigDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"WarmCount")
              Parser
  (Maybe Text -> AwsOpenSearchServiceDomainClusterConfigDetails)
-> Parser (Maybe Text)
-> Parser AwsOpenSearchServiceDomainClusterConfigDetails
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"WarmType")
      )

instance
  Prelude.Hashable
    AwsOpenSearchServiceDomainClusterConfigDetails

instance
  Prelude.NFData
    AwsOpenSearchServiceDomainClusterConfigDetails

instance
  Core.ToJSON
    AwsOpenSearchServiceDomainClusterConfigDetails
  where
  toJSON :: AwsOpenSearchServiceDomainClusterConfigDetails -> Value
toJSON
    AwsOpenSearchServiceDomainClusterConfigDetails' {Maybe Bool
Maybe Int
Maybe Text
Maybe
  AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
warmType :: Maybe Text
warmCount :: Maybe Int
zoneAwarenessConfig :: Maybe
  AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
warmEnabled :: Maybe Bool
instanceType :: Maybe Text
zoneAwarenessEnabled :: Maybe Bool
instanceCount :: Maybe Int
dedicatedMasterEnabled :: Maybe Bool
dedicatedMasterType :: Maybe Text
dedicatedMasterCount :: Maybe Int
$sel:warmType:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text
$sel:warmCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int
$sel:zoneAwarenessConfig:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails
-> Maybe
     AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
$sel:warmEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool
$sel:instanceType:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text
$sel:zoneAwarenessEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool
$sel:instanceCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int
$sel:dedicatedMasterEnabled:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Bool
$sel:dedicatedMasterType:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Text
$sel:dedicatedMasterCount:AwsOpenSearchServiceDomainClusterConfigDetails' :: AwsOpenSearchServiceDomainClusterConfigDetails -> Maybe Int
..} =
      [Pair] -> Value
Core.object
        ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
            [ (Text
"DedicatedMasterCount" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
                (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
dedicatedMasterCount,
              (Text
"DedicatedMasterType" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
                (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
dedicatedMasterType,
              (Text
"DedicatedMasterEnabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
                (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
dedicatedMasterEnabled,
              (Text
"InstanceCount" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
instanceCount,
              (Text
"ZoneAwarenessEnabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
                (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
zoneAwarenessEnabled,
              (Text
"InstanceType" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
instanceType,
              (Text
"WarmEnabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
warmEnabled,
              (Text
"ZoneAwarenessConfig" Text
-> AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
                (AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
 -> Pair)
-> Maybe
     AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
-> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe
  AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails
zoneAwarenessConfig,
              (Text
"WarmCount" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
warmCount,
              (Text
"WarmType" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
warmType
            ]
        )