{-# 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.OpenSearch.Types.DomainStatus
-- 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.OpenSearch.Types.DomainStatus where

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

-- | The current status of a domain.
--
-- /See:/ 'newDomainStatus' smart constructor.
data DomainStatus = DomainStatus'
  { -- | The @EBSOptions@ for the specified domain.
    DomainStatus -> Maybe EBSOptions
eBSOptions :: Prelude.Maybe EBSOptions,
    DomainStatus -> Maybe Text
engineVersion :: Prelude.Maybe Prelude.Text,
    -- | The status of the @NodeToNodeEncryptionOptions@.
    DomainStatus -> Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions :: Prelude.Maybe NodeToNodeEncryptionOptions,
    -- | IAM access policy as a JSON-formatted string.
    DomainStatus -> Maybe Text
accessPolicies :: Prelude.Maybe Prelude.Text,
    -- | The current status of the domain\'s service software.
    DomainStatus -> Maybe ServiceSoftwareOptions
serviceSoftwareOptions :: Prelude.Maybe ServiceSoftwareOptions,
    -- | The current status of the domain\'s Auto-Tune options.
    DomainStatus -> Maybe AutoTuneOptionsOutput
autoTuneOptions :: Prelude.Maybe AutoTuneOptionsOutput,
    -- | Log publishing options for the given domain.
    DomainStatus -> Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions :: Prelude.Maybe (Prelude.HashMap LogType LogPublishingOption),
    -- | The current status of the domain\'s advanced security options.
    DomainStatus -> Maybe AdvancedSecurityOptions
advancedSecurityOptions :: Prelude.Maybe AdvancedSecurityOptions,
    -- | The domain creation status. @True@ if the creation of a domain is
    -- complete. @ False @ if domain creation is still in progress.
    DomainStatus -> Maybe Bool
created :: Prelude.Maybe Prelude.Bool,
    -- | The status of the @SnapshotOptions@.
    DomainStatus -> Maybe SnapshotOptions
snapshotOptions :: Prelude.Maybe SnapshotOptions,
    -- | The @CognitoOptions@ for the specified domain. For more information, see
    -- <http://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html Configuring Amazon Cognito authentication for OpenSearch Dashboards>.
    DomainStatus -> Maybe CognitoOptions
cognitoOptions :: Prelude.Maybe CognitoOptions,
    -- | The status of the @EncryptionAtRestOptions@.
    DomainStatus -> Maybe EncryptionAtRestOptions
encryptionAtRestOptions :: Prelude.Maybe EncryptionAtRestOptions,
    -- | The domain deletion status. @True@ if a delete request has been received
    -- for the domain but resource cleanup is still in progress. @False@ if the
    -- domain has not been deleted. Once domain deletion is complete, the
    -- status of the domain is no longer returned.
    DomainStatus -> Maybe Bool
deleted :: Prelude.Maybe Prelude.Bool,
    -- | The @VPCOptions@ for the specified domain. For more information, see
    -- <http://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html Launching your Amazon OpenSearch Service domains using a VPC>.
    DomainStatus -> Maybe VPCDerivedInfo
vPCOptions :: Prelude.Maybe VPCDerivedInfo,
    -- | Map containing the domain endpoints used to submit index and search
    -- requests. Example @key, value@:
    -- @\'vpc\',\'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com\'@.
    DomainStatus -> Maybe (HashMap Text Text)
endpoints :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The current status of the domain\'s endpoint options.
    DomainStatus -> Maybe DomainEndpointOptions
domainEndpointOptions :: Prelude.Maybe DomainEndpointOptions,
    -- | The status of the domain configuration. @True@ if Amazon OpenSearch
    -- Service is processing configuration changes. @False@ if the
    -- configuration is active.
    DomainStatus -> Maybe Bool
processing :: Prelude.Maybe Prelude.Bool,
    -- | The domain endpoint that you use to submit index and search requests.
    DomainStatus -> Maybe Text
endpoint :: Prelude.Maybe Prelude.Text,
    -- | The status of a domain version upgrade. @True@ if Amazon OpenSearch
    -- Service is undergoing a version upgrade. @False@ if the configuration is
    -- active.
    DomainStatus -> Maybe Bool
upgradeProcessing :: Prelude.Maybe Prelude.Bool,
    -- | The status of the @AdvancedOptions@.
    DomainStatus -> Maybe (HashMap Text Text)
advancedOptions :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The unique identifier for the specified domain.
    DomainStatus -> Text
domainId :: Prelude.Text,
    -- | The name of a domain. Domain names are unique across the domains owned
    -- by an account within an AWS region. Domain names start with a letter or
    -- number and can contain the following characters: a-z (lowercase), 0-9,
    -- and - (hyphen).
    DomainStatus -> Text
domainName :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of a domain. See
    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM identifiers>
    -- in the /AWS Identity and Access Management User Guide/ for more
    -- information.
    DomainStatus -> Text
arn :: Prelude.Text,
    -- | The type and number of instances in the domain.
    DomainStatus -> ClusterConfig
clusterConfig :: ClusterConfig
  }
  deriving (DomainStatus -> DomainStatus -> Bool
(DomainStatus -> DomainStatus -> Bool)
-> (DomainStatus -> DomainStatus -> Bool) -> Eq DomainStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DomainStatus -> DomainStatus -> Bool
$c/= :: DomainStatus -> DomainStatus -> Bool
== :: DomainStatus -> DomainStatus -> Bool
$c== :: DomainStatus -> DomainStatus -> Bool
Prelude.Eq, ReadPrec [DomainStatus]
ReadPrec DomainStatus
Int -> ReadS DomainStatus
ReadS [DomainStatus]
(Int -> ReadS DomainStatus)
-> ReadS [DomainStatus]
-> ReadPrec DomainStatus
-> ReadPrec [DomainStatus]
-> Read DomainStatus
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DomainStatus]
$creadListPrec :: ReadPrec [DomainStatus]
readPrec :: ReadPrec DomainStatus
$creadPrec :: ReadPrec DomainStatus
readList :: ReadS [DomainStatus]
$creadList :: ReadS [DomainStatus]
readsPrec :: Int -> ReadS DomainStatus
$creadsPrec :: Int -> ReadS DomainStatus
Prelude.Read, Int -> DomainStatus -> ShowS
[DomainStatus] -> ShowS
DomainStatus -> String
(Int -> DomainStatus -> ShowS)
-> (DomainStatus -> String)
-> ([DomainStatus] -> ShowS)
-> Show DomainStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DomainStatus] -> ShowS
$cshowList :: [DomainStatus] -> ShowS
show :: DomainStatus -> String
$cshow :: DomainStatus -> String
showsPrec :: Int -> DomainStatus -> ShowS
$cshowsPrec :: Int -> DomainStatus -> ShowS
Prelude.Show, (forall x. DomainStatus -> Rep DomainStatus x)
-> (forall x. Rep DomainStatus x -> DomainStatus)
-> Generic DomainStatus
forall x. Rep DomainStatus x -> DomainStatus
forall x. DomainStatus -> Rep DomainStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DomainStatus x -> DomainStatus
$cfrom :: forall x. DomainStatus -> Rep DomainStatus x
Prelude.Generic)

-- |
-- Create a value of 'DomainStatus' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'eBSOptions', 'domainStatus_eBSOptions' - The @EBSOptions@ for the specified domain.
--
-- 'engineVersion', 'domainStatus_engineVersion' - Undocumented member.
--
-- 'nodeToNodeEncryptionOptions', 'domainStatus_nodeToNodeEncryptionOptions' - The status of the @NodeToNodeEncryptionOptions@.
--
-- 'accessPolicies', 'domainStatus_accessPolicies' - IAM access policy as a JSON-formatted string.
--
-- 'serviceSoftwareOptions', 'domainStatus_serviceSoftwareOptions' - The current status of the domain\'s service software.
--
-- 'autoTuneOptions', 'domainStatus_autoTuneOptions' - The current status of the domain\'s Auto-Tune options.
--
-- 'logPublishingOptions', 'domainStatus_logPublishingOptions' - Log publishing options for the given domain.
--
-- 'advancedSecurityOptions', 'domainStatus_advancedSecurityOptions' - The current status of the domain\'s advanced security options.
--
-- 'created', 'domainStatus_created' - The domain creation status. @True@ if the creation of a domain is
-- complete. @ False @ if domain creation is still in progress.
--
-- 'snapshotOptions', 'domainStatus_snapshotOptions' - The status of the @SnapshotOptions@.
--
-- 'cognitoOptions', 'domainStatus_cognitoOptions' - The @CognitoOptions@ for the specified domain. For more information, see
-- <http://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html Configuring Amazon Cognito authentication for OpenSearch Dashboards>.
--
-- 'encryptionAtRestOptions', 'domainStatus_encryptionAtRestOptions' - The status of the @EncryptionAtRestOptions@.
--
-- 'deleted', 'domainStatus_deleted' - The domain deletion status. @True@ if a delete request has been received
-- for the domain but resource cleanup is still in progress. @False@ if the
-- domain has not been deleted. Once domain deletion is complete, the
-- status of the domain is no longer returned.
--
-- 'vPCOptions', 'domainStatus_vPCOptions' - The @VPCOptions@ for the specified domain. For more information, see
-- <http://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html Launching your Amazon OpenSearch Service domains using a VPC>.
--
-- 'endpoints', 'domainStatus_endpoints' - Map containing the domain endpoints used to submit index and search
-- requests. Example @key, value@:
-- @\'vpc\',\'vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com\'@.
--
-- 'domainEndpointOptions', 'domainStatus_domainEndpointOptions' - The current status of the domain\'s endpoint options.
--
-- 'processing', 'domainStatus_processing' - The status of the domain configuration. @True@ if Amazon OpenSearch
-- Service is processing configuration changes. @False@ if the
-- configuration is active.
--
-- 'endpoint', 'domainStatus_endpoint' - The domain endpoint that you use to submit index and search requests.
--
-- 'upgradeProcessing', 'domainStatus_upgradeProcessing' - The status of a domain version upgrade. @True@ if Amazon OpenSearch
-- Service is undergoing a version upgrade. @False@ if the configuration is
-- active.
--
-- 'advancedOptions', 'domainStatus_advancedOptions' - The status of the @AdvancedOptions@.
--
-- 'domainId', 'domainStatus_domainId' - The unique identifier for the specified domain.
--
-- 'domainName', 'domainStatus_domainName' - The name of a domain. Domain names are unique across the domains owned
-- by an account within an AWS region. Domain names start with a letter or
-- number and can contain the following characters: a-z (lowercase), 0-9,
-- and - (hyphen).
--
-- 'arn', 'domainStatus_arn' - The Amazon Resource Name (ARN) of a domain. See
-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM identifiers>
-- in the /AWS Identity and Access Management User Guide/ for more
-- information.
--
-- 'clusterConfig', 'domainStatus_clusterConfig' - The type and number of instances in the domain.
newDomainStatus ::
  -- | 'domainId'
  Prelude.Text ->
  -- | 'domainName'
  Prelude.Text ->
  -- | 'arn'
  Prelude.Text ->
  -- | 'clusterConfig'
  ClusterConfig ->
  DomainStatus
newDomainStatus :: Text -> Text -> Text -> ClusterConfig -> DomainStatus
newDomainStatus
  Text
pDomainId_
  Text
pDomainName_
  Text
pARN_
  ClusterConfig
pClusterConfig_ =
    DomainStatus' :: Maybe EBSOptions
-> Maybe Text
-> Maybe NodeToNodeEncryptionOptions
-> Maybe Text
-> Maybe ServiceSoftwareOptions
-> Maybe AutoTuneOptionsOutput
-> Maybe (HashMap LogType LogPublishingOption)
-> Maybe AdvancedSecurityOptions
-> Maybe Bool
-> Maybe SnapshotOptions
-> Maybe CognitoOptions
-> Maybe EncryptionAtRestOptions
-> Maybe Bool
-> Maybe VPCDerivedInfo
-> Maybe (HashMap Text Text)
-> Maybe DomainEndpointOptions
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe (HashMap Text Text)
-> Text
-> Text
-> Text
-> ClusterConfig
-> DomainStatus
DomainStatus'
      { $sel:eBSOptions:DomainStatus' :: Maybe EBSOptions
eBSOptions = Maybe EBSOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:engineVersion:DomainStatus' :: Maybe Text
engineVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:nodeToNodeEncryptionOptions:DomainStatus' :: Maybe NodeToNodeEncryptionOptions
nodeToNodeEncryptionOptions = Maybe NodeToNodeEncryptionOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:accessPolicies:DomainStatus' :: Maybe Text
accessPolicies = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:serviceSoftwareOptions:DomainStatus' :: Maybe ServiceSoftwareOptions
serviceSoftwareOptions = Maybe ServiceSoftwareOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:autoTuneOptions:DomainStatus' :: Maybe AutoTuneOptionsOutput
autoTuneOptions = Maybe AutoTuneOptionsOutput
forall a. Maybe a
Prelude.Nothing,
        $sel:logPublishingOptions:DomainStatus' :: Maybe (HashMap LogType LogPublishingOption)
logPublishingOptions = Maybe (HashMap LogType LogPublishingOption)
forall a. Maybe a
Prelude.Nothing,
        $sel:advancedSecurityOptions:DomainStatus' :: Maybe AdvancedSecurityOptions
advancedSecurityOptions = Maybe AdvancedSecurityOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:created:DomainStatus' :: Maybe Bool
created = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:snapshotOptions:DomainStatus' :: Maybe SnapshotOptions
snapshotOptions = Maybe SnapshotOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:cognitoOptions:DomainStatus' :: Maybe CognitoOptions
cognitoOptions = Maybe CognitoOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:encryptionAtRestOptions:DomainStatus' :: Maybe EncryptionAtRestOptions
encryptionAtRestOptions = Maybe EncryptionAtRestOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:deleted:DomainStatus' :: Maybe Bool
deleted = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:vPCOptions:DomainStatus' :: Maybe VPCDerivedInfo
vPCOptions = Maybe VPCDerivedInfo
forall a. Maybe a
Prelude.Nothing,
        $sel:endpoints:DomainStatus' :: Maybe (HashMap Text Text)
endpoints = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
        $sel:domainEndpointOptions:DomainStatus' :: Maybe DomainEndpointOptions
domainEndpointOptions = Maybe DomainEndpointOptions
forall a. Maybe a
Prelude.Nothing,
        $sel:processing:DomainStatus' :: Maybe Bool
processing = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:endpoint:DomainStatus' :: Maybe Text
endpoint = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:upgradeProcessing:DomainStatus' :: Maybe Bool
upgradeProcessing = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:advancedOptions:DomainStatus' :: Maybe (HashMap Text Text)
advancedOptions = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
        $sel:domainId:DomainStatus' :: Text
domainId = Text
pDomainId_,
        $sel:domainName:DomainStatus' :: Text
domainName = Text
pDomainName_,
        $sel:arn:DomainStatus' :: Text
arn = Text
pARN_,
        $sel:clusterConfig:DomainStatus' :: ClusterConfig
clusterConfig = ClusterConfig
pClusterConfig_
      }

-- | The @EBSOptions@ for the specified domain.
domainStatus_eBSOptions :: Lens.Lens' DomainStatus (Prelude.Maybe EBSOptions)
domainStatus_eBSOptions :: (Maybe EBSOptions -> f (Maybe EBSOptions))
-> DomainStatus -> f DomainStatus
domainStatus_eBSOptions = (DomainStatus -> Maybe EBSOptions)
-> (DomainStatus -> Maybe EBSOptions -> DomainStatus)
-> Lens
     DomainStatus DomainStatus (Maybe EBSOptions) (Maybe EBSOptions)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DomainStatus' {Maybe EBSOptions
eBSOptions :: Maybe EBSOptions
$sel:eBSOptions:DomainStatus' :: DomainStatus -> Maybe EBSOptions
eBSOptions} -> Maybe EBSOptions
eBSOptions) (\s :: DomainStatus
s@DomainStatus' {} Maybe EBSOptions
a -> DomainStatus
s {$sel:eBSOptions:DomainStatus' :: Maybe EBSOptions
eBSOptions = Maybe EBSOptions
a} :: DomainStatus)

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

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

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

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

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

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

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

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

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

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

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

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

-- | The @VPCOptions@ for the specified domain. For more information, see
-- <http://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html Launching your Amazon OpenSearch Service domains using a VPC>.
domainStatus_vPCOptions :: Lens.Lens' DomainStatus (Prelude.Maybe VPCDerivedInfo)
domainStatus_vPCOptions :: (Maybe VPCDerivedInfo -> f (Maybe VPCDerivedInfo))
-> DomainStatus -> f DomainStatus
domainStatus_vPCOptions = (DomainStatus -> Maybe VPCDerivedInfo)
-> (DomainStatus -> Maybe VPCDerivedInfo -> DomainStatus)
-> Lens
     DomainStatus
     DomainStatus
     (Maybe VPCDerivedInfo)
     (Maybe VPCDerivedInfo)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DomainStatus' {Maybe VPCDerivedInfo
vPCOptions :: Maybe VPCDerivedInfo
$sel:vPCOptions:DomainStatus' :: DomainStatus -> Maybe VPCDerivedInfo
vPCOptions} -> Maybe VPCDerivedInfo
vPCOptions) (\s :: DomainStatus
s@DomainStatus' {} Maybe VPCDerivedInfo
a -> DomainStatus
s {$sel:vPCOptions:DomainStatus' :: Maybe VPCDerivedInfo
vPCOptions = Maybe VPCDerivedInfo
a} :: DomainStatus)

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

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

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

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

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

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

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

-- | The name of a domain. Domain names are unique across the domains owned
-- by an account within an AWS region. Domain names start with a letter or
-- number and can contain the following characters: a-z (lowercase), 0-9,
-- and - (hyphen).
domainStatus_domainName :: Lens.Lens' DomainStatus Prelude.Text
domainStatus_domainName :: (Text -> f Text) -> DomainStatus -> f DomainStatus
domainStatus_domainName = (DomainStatus -> Text)
-> (DomainStatus -> Text -> DomainStatus)
-> Lens DomainStatus DomainStatus Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DomainStatus' {Text
domainName :: Text
$sel:domainName:DomainStatus' :: DomainStatus -> Text
domainName} -> Text
domainName) (\s :: DomainStatus
s@DomainStatus' {} Text
a -> DomainStatus
s {$sel:domainName:DomainStatus' :: Text
domainName = Text
a} :: DomainStatus)

-- | The Amazon Resource Name (ARN) of a domain. See
-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM identifiers>
-- in the /AWS Identity and Access Management User Guide/ for more
-- information.
domainStatus_arn :: Lens.Lens' DomainStatus Prelude.Text
domainStatus_arn :: (Text -> f Text) -> DomainStatus -> f DomainStatus
domainStatus_arn = (DomainStatus -> Text)
-> (DomainStatus -> Text -> DomainStatus)
-> Lens DomainStatus DomainStatus Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DomainStatus' {Text
arn :: Text
$sel:arn:DomainStatus' :: DomainStatus -> Text
arn} -> Text
arn) (\s :: DomainStatus
s@DomainStatus' {} Text
a -> DomainStatus
s {$sel:arn:DomainStatus' :: Text
arn = Text
a} :: DomainStatus)

-- | The type and number of instances in the domain.
domainStatus_clusterConfig :: Lens.Lens' DomainStatus ClusterConfig
domainStatus_clusterConfig :: (ClusterConfig -> f ClusterConfig)
-> DomainStatus -> f DomainStatus
domainStatus_clusterConfig = (DomainStatus -> ClusterConfig)
-> (DomainStatus -> ClusterConfig -> DomainStatus)
-> Lens DomainStatus DomainStatus ClusterConfig ClusterConfig
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DomainStatus' {ClusterConfig
clusterConfig :: ClusterConfig
$sel:clusterConfig:DomainStatus' :: DomainStatus -> ClusterConfig
clusterConfig} -> ClusterConfig
clusterConfig) (\s :: DomainStatus
s@DomainStatus' {} ClusterConfig
a -> DomainStatus
s {$sel:clusterConfig:DomainStatus' :: ClusterConfig
clusterConfig = ClusterConfig
a} :: DomainStatus)

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

instance Prelude.Hashable DomainStatus

instance Prelude.NFData DomainStatus