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

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

-- |
-- Module      : Amazonka.ElastiCache.DisassociateGlobalReplicationGroup
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Remove a secondary cluster from the Global datastore using the Global
-- datastore name. The secondary cluster will no longer receive updates
-- from the primary cluster, but will remain as a standalone cluster in
-- that Amazon region.
module Amazonka.ElastiCache.DisassociateGlobalReplicationGroup
  ( -- * Creating a Request
    DisassociateGlobalReplicationGroup (..),
    newDisassociateGlobalReplicationGroup,

    -- * Request Lenses
    disassociateGlobalReplicationGroup_globalReplicationGroupId,
    disassociateGlobalReplicationGroup_replicationGroupId,
    disassociateGlobalReplicationGroup_replicationGroupRegion,

    -- * Destructuring the Response
    DisassociateGlobalReplicationGroupResponse (..),
    newDisassociateGlobalReplicationGroupResponse,

    -- * Response Lenses
    disassociateGlobalReplicationGroupResponse_globalReplicationGroup,
    disassociateGlobalReplicationGroupResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ElastiCache.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newDisassociateGlobalReplicationGroup' smart constructor.
data DisassociateGlobalReplicationGroup = DisassociateGlobalReplicationGroup'
  { -- | The name of the Global datastore
    DisassociateGlobalReplicationGroup -> Text
globalReplicationGroupId :: Prelude.Text,
    -- | The name of the secondary cluster you wish to remove from the Global
    -- datastore
    DisassociateGlobalReplicationGroup -> Text
replicationGroupId :: Prelude.Text,
    -- | The Amazon region of secondary cluster you wish to remove from the
    -- Global datastore
    DisassociateGlobalReplicationGroup -> Text
replicationGroupRegion :: Prelude.Text
  }
  deriving (DisassociateGlobalReplicationGroup
-> DisassociateGlobalReplicationGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DisassociateGlobalReplicationGroup
-> DisassociateGlobalReplicationGroup -> Bool
$c/= :: DisassociateGlobalReplicationGroup
-> DisassociateGlobalReplicationGroup -> Bool
== :: DisassociateGlobalReplicationGroup
-> DisassociateGlobalReplicationGroup -> Bool
$c== :: DisassociateGlobalReplicationGroup
-> DisassociateGlobalReplicationGroup -> Bool
Prelude.Eq, ReadPrec [DisassociateGlobalReplicationGroup]
ReadPrec DisassociateGlobalReplicationGroup
Int -> ReadS DisassociateGlobalReplicationGroup
ReadS [DisassociateGlobalReplicationGroup]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DisassociateGlobalReplicationGroup]
$creadListPrec :: ReadPrec [DisassociateGlobalReplicationGroup]
readPrec :: ReadPrec DisassociateGlobalReplicationGroup
$creadPrec :: ReadPrec DisassociateGlobalReplicationGroup
readList :: ReadS [DisassociateGlobalReplicationGroup]
$creadList :: ReadS [DisassociateGlobalReplicationGroup]
readsPrec :: Int -> ReadS DisassociateGlobalReplicationGroup
$creadsPrec :: Int -> ReadS DisassociateGlobalReplicationGroup
Prelude.Read, Int -> DisassociateGlobalReplicationGroup -> ShowS
[DisassociateGlobalReplicationGroup] -> ShowS
DisassociateGlobalReplicationGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DisassociateGlobalReplicationGroup] -> ShowS
$cshowList :: [DisassociateGlobalReplicationGroup] -> ShowS
show :: DisassociateGlobalReplicationGroup -> String
$cshow :: DisassociateGlobalReplicationGroup -> String
showsPrec :: Int -> DisassociateGlobalReplicationGroup -> ShowS
$cshowsPrec :: Int -> DisassociateGlobalReplicationGroup -> ShowS
Prelude.Show, forall x.
Rep DisassociateGlobalReplicationGroup x
-> DisassociateGlobalReplicationGroup
forall x.
DisassociateGlobalReplicationGroup
-> Rep DisassociateGlobalReplicationGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DisassociateGlobalReplicationGroup x
-> DisassociateGlobalReplicationGroup
$cfrom :: forall x.
DisassociateGlobalReplicationGroup
-> Rep DisassociateGlobalReplicationGroup x
Prelude.Generic)

-- |
-- Create a value of 'DisassociateGlobalReplicationGroup' 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:
--
-- 'globalReplicationGroupId', 'disassociateGlobalReplicationGroup_globalReplicationGroupId' - The name of the Global datastore
--
-- 'replicationGroupId', 'disassociateGlobalReplicationGroup_replicationGroupId' - The name of the secondary cluster you wish to remove from the Global
-- datastore
--
-- 'replicationGroupRegion', 'disassociateGlobalReplicationGroup_replicationGroupRegion' - The Amazon region of secondary cluster you wish to remove from the
-- Global datastore
newDisassociateGlobalReplicationGroup ::
  -- | 'globalReplicationGroupId'
  Prelude.Text ->
  -- | 'replicationGroupId'
  Prelude.Text ->
  -- | 'replicationGroupRegion'
  Prelude.Text ->
  DisassociateGlobalReplicationGroup
newDisassociateGlobalReplicationGroup :: Text -> Text -> Text -> DisassociateGlobalReplicationGroup
newDisassociateGlobalReplicationGroup
  Text
pGlobalReplicationGroupId_
  Text
pReplicationGroupId_
  Text
pReplicationGroupRegion_ =
    DisassociateGlobalReplicationGroup'
      { $sel:globalReplicationGroupId:DisassociateGlobalReplicationGroup' :: Text
globalReplicationGroupId =
          Text
pGlobalReplicationGroupId_,
        $sel:replicationGroupId:DisassociateGlobalReplicationGroup' :: Text
replicationGroupId =
          Text
pReplicationGroupId_,
        $sel:replicationGroupRegion:DisassociateGlobalReplicationGroup' :: Text
replicationGroupRegion =
          Text
pReplicationGroupRegion_
      }

-- | The name of the Global datastore
disassociateGlobalReplicationGroup_globalReplicationGroupId :: Lens.Lens' DisassociateGlobalReplicationGroup Prelude.Text
disassociateGlobalReplicationGroup_globalReplicationGroupId :: Lens' DisassociateGlobalReplicationGroup Text
disassociateGlobalReplicationGroup_globalReplicationGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateGlobalReplicationGroup' {Text
globalReplicationGroupId :: Text
$sel:globalReplicationGroupId:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
globalReplicationGroupId} -> Text
globalReplicationGroupId) (\s :: DisassociateGlobalReplicationGroup
s@DisassociateGlobalReplicationGroup' {} Text
a -> DisassociateGlobalReplicationGroup
s {$sel:globalReplicationGroupId:DisassociateGlobalReplicationGroup' :: Text
globalReplicationGroupId = Text
a} :: DisassociateGlobalReplicationGroup)

-- | The name of the secondary cluster you wish to remove from the Global
-- datastore
disassociateGlobalReplicationGroup_replicationGroupId :: Lens.Lens' DisassociateGlobalReplicationGroup Prelude.Text
disassociateGlobalReplicationGroup_replicationGroupId :: Lens' DisassociateGlobalReplicationGroup Text
disassociateGlobalReplicationGroup_replicationGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateGlobalReplicationGroup' {Text
replicationGroupId :: Text
$sel:replicationGroupId:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
replicationGroupId} -> Text
replicationGroupId) (\s :: DisassociateGlobalReplicationGroup
s@DisassociateGlobalReplicationGroup' {} Text
a -> DisassociateGlobalReplicationGroup
s {$sel:replicationGroupId:DisassociateGlobalReplicationGroup' :: Text
replicationGroupId = Text
a} :: DisassociateGlobalReplicationGroup)

-- | The Amazon region of secondary cluster you wish to remove from the
-- Global datastore
disassociateGlobalReplicationGroup_replicationGroupRegion :: Lens.Lens' DisassociateGlobalReplicationGroup Prelude.Text
disassociateGlobalReplicationGroup_replicationGroupRegion :: Lens' DisassociateGlobalReplicationGroup Text
disassociateGlobalReplicationGroup_replicationGroupRegion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateGlobalReplicationGroup' {Text
replicationGroupRegion :: Text
$sel:replicationGroupRegion:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
replicationGroupRegion} -> Text
replicationGroupRegion) (\s :: DisassociateGlobalReplicationGroup
s@DisassociateGlobalReplicationGroup' {} Text
a -> DisassociateGlobalReplicationGroup
s {$sel:replicationGroupRegion:DisassociateGlobalReplicationGroup' :: Text
replicationGroupRegion = Text
a} :: DisassociateGlobalReplicationGroup)

instance
  Core.AWSRequest
    DisassociateGlobalReplicationGroup
  where
  type
    AWSResponse DisassociateGlobalReplicationGroup =
      DisassociateGlobalReplicationGroupResponse
  request :: (Service -> Service)
-> DisassociateGlobalReplicationGroup
-> Request DisassociateGlobalReplicationGroup
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DisassociateGlobalReplicationGroup
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DisassociateGlobalReplicationGroup)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
    -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
      Text
"DisassociateGlobalReplicationGroupResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe GlobalReplicationGroup
-> Int -> DisassociateGlobalReplicationGroupResponse
DisassociateGlobalReplicationGroupResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"GlobalReplicationGroup")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    DisassociateGlobalReplicationGroup
  where
  hashWithSalt :: Int -> DisassociateGlobalReplicationGroup -> Int
hashWithSalt
    Int
_salt
    DisassociateGlobalReplicationGroup' {Text
replicationGroupRegion :: Text
replicationGroupId :: Text
globalReplicationGroupId :: Text
$sel:replicationGroupRegion:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
$sel:replicationGroupId:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
$sel:globalReplicationGroupId:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
globalReplicationGroupId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
replicationGroupId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
replicationGroupRegion

instance
  Prelude.NFData
    DisassociateGlobalReplicationGroup
  where
  rnf :: DisassociateGlobalReplicationGroup -> ()
rnf DisassociateGlobalReplicationGroup' {Text
replicationGroupRegion :: Text
replicationGroupId :: Text
globalReplicationGroupId :: Text
$sel:replicationGroupRegion:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
$sel:replicationGroupId:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
$sel:globalReplicationGroupId:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
globalReplicationGroupId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
replicationGroupId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
replicationGroupRegion

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

instance
  Data.ToPath
    DisassociateGlobalReplicationGroup
  where
  toPath :: DisassociateGlobalReplicationGroup -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance
  Data.ToQuery
    DisassociateGlobalReplicationGroup
  where
  toQuery :: DisassociateGlobalReplicationGroup -> QueryString
toQuery DisassociateGlobalReplicationGroup' {Text
replicationGroupRegion :: Text
replicationGroupId :: Text
globalReplicationGroupId :: Text
$sel:replicationGroupRegion:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
$sel:replicationGroupId:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
$sel:globalReplicationGroupId:DisassociateGlobalReplicationGroup' :: DisassociateGlobalReplicationGroup -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"DisassociateGlobalReplicationGroup" ::
                      Prelude.ByteString
                  ),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2015-02-02" :: Prelude.ByteString),
        ByteString
"GlobalReplicationGroupId"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
globalReplicationGroupId,
        ByteString
"ReplicationGroupId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
replicationGroupId,
        ByteString
"ReplicationGroupRegion"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
replicationGroupRegion
      ]

-- | /See:/ 'newDisassociateGlobalReplicationGroupResponse' smart constructor.
data DisassociateGlobalReplicationGroupResponse = DisassociateGlobalReplicationGroupResponse'
  { DisassociateGlobalReplicationGroupResponse
-> Maybe GlobalReplicationGroup
globalReplicationGroup :: Prelude.Maybe GlobalReplicationGroup,
    -- | The response's http status code.
    DisassociateGlobalReplicationGroupResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DisassociateGlobalReplicationGroupResponse
-> DisassociateGlobalReplicationGroupResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DisassociateGlobalReplicationGroupResponse
-> DisassociateGlobalReplicationGroupResponse -> Bool
$c/= :: DisassociateGlobalReplicationGroupResponse
-> DisassociateGlobalReplicationGroupResponse -> Bool
== :: DisassociateGlobalReplicationGroupResponse
-> DisassociateGlobalReplicationGroupResponse -> Bool
$c== :: DisassociateGlobalReplicationGroupResponse
-> DisassociateGlobalReplicationGroupResponse -> Bool
Prelude.Eq, ReadPrec [DisassociateGlobalReplicationGroupResponse]
ReadPrec DisassociateGlobalReplicationGroupResponse
Int -> ReadS DisassociateGlobalReplicationGroupResponse
ReadS [DisassociateGlobalReplicationGroupResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DisassociateGlobalReplicationGroupResponse]
$creadListPrec :: ReadPrec [DisassociateGlobalReplicationGroupResponse]
readPrec :: ReadPrec DisassociateGlobalReplicationGroupResponse
$creadPrec :: ReadPrec DisassociateGlobalReplicationGroupResponse
readList :: ReadS [DisassociateGlobalReplicationGroupResponse]
$creadList :: ReadS [DisassociateGlobalReplicationGroupResponse]
readsPrec :: Int -> ReadS DisassociateGlobalReplicationGroupResponse
$creadsPrec :: Int -> ReadS DisassociateGlobalReplicationGroupResponse
Prelude.Read, Int -> DisassociateGlobalReplicationGroupResponse -> ShowS
[DisassociateGlobalReplicationGroupResponse] -> ShowS
DisassociateGlobalReplicationGroupResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DisassociateGlobalReplicationGroupResponse] -> ShowS
$cshowList :: [DisassociateGlobalReplicationGroupResponse] -> ShowS
show :: DisassociateGlobalReplicationGroupResponse -> String
$cshow :: DisassociateGlobalReplicationGroupResponse -> String
showsPrec :: Int -> DisassociateGlobalReplicationGroupResponse -> ShowS
$cshowsPrec :: Int -> DisassociateGlobalReplicationGroupResponse -> ShowS
Prelude.Show, forall x.
Rep DisassociateGlobalReplicationGroupResponse x
-> DisassociateGlobalReplicationGroupResponse
forall x.
DisassociateGlobalReplicationGroupResponse
-> Rep DisassociateGlobalReplicationGroupResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DisassociateGlobalReplicationGroupResponse x
-> DisassociateGlobalReplicationGroupResponse
$cfrom :: forall x.
DisassociateGlobalReplicationGroupResponse
-> Rep DisassociateGlobalReplicationGroupResponse x
Prelude.Generic)

-- |
-- Create a value of 'DisassociateGlobalReplicationGroupResponse' 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:
--
-- 'globalReplicationGroup', 'disassociateGlobalReplicationGroupResponse_globalReplicationGroup' - Undocumented member.
--
-- 'httpStatus', 'disassociateGlobalReplicationGroupResponse_httpStatus' - The response's http status code.
newDisassociateGlobalReplicationGroupResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DisassociateGlobalReplicationGroupResponse
newDisassociateGlobalReplicationGroupResponse :: Int -> DisassociateGlobalReplicationGroupResponse
newDisassociateGlobalReplicationGroupResponse
  Int
pHttpStatus_ =
    DisassociateGlobalReplicationGroupResponse'
      { $sel:globalReplicationGroup:DisassociateGlobalReplicationGroupResponse' :: Maybe GlobalReplicationGroup
globalReplicationGroup =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DisassociateGlobalReplicationGroupResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | Undocumented member.
disassociateGlobalReplicationGroupResponse_globalReplicationGroup :: Lens.Lens' DisassociateGlobalReplicationGroupResponse (Prelude.Maybe GlobalReplicationGroup)
disassociateGlobalReplicationGroupResponse_globalReplicationGroup :: Lens'
  DisassociateGlobalReplicationGroupResponse
  (Maybe GlobalReplicationGroup)
disassociateGlobalReplicationGroupResponse_globalReplicationGroup = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateGlobalReplicationGroupResponse' {Maybe GlobalReplicationGroup
globalReplicationGroup :: Maybe GlobalReplicationGroup
$sel:globalReplicationGroup:DisassociateGlobalReplicationGroupResponse' :: DisassociateGlobalReplicationGroupResponse
-> Maybe GlobalReplicationGroup
globalReplicationGroup} -> Maybe GlobalReplicationGroup
globalReplicationGroup) (\s :: DisassociateGlobalReplicationGroupResponse
s@DisassociateGlobalReplicationGroupResponse' {} Maybe GlobalReplicationGroup
a -> DisassociateGlobalReplicationGroupResponse
s {$sel:globalReplicationGroup:DisassociateGlobalReplicationGroupResponse' :: Maybe GlobalReplicationGroup
globalReplicationGroup = Maybe GlobalReplicationGroup
a} :: DisassociateGlobalReplicationGroupResponse)

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

instance
  Prelude.NFData
    DisassociateGlobalReplicationGroupResponse
  where
  rnf :: DisassociateGlobalReplicationGroupResponse -> ()
rnf DisassociateGlobalReplicationGroupResponse' {Int
Maybe GlobalReplicationGroup
httpStatus :: Int
globalReplicationGroup :: Maybe GlobalReplicationGroup
$sel:httpStatus:DisassociateGlobalReplicationGroupResponse' :: DisassociateGlobalReplicationGroupResponse -> Int
$sel:globalReplicationGroup:DisassociateGlobalReplicationGroupResponse' :: DisassociateGlobalReplicationGroupResponse
-> Maybe GlobalReplicationGroup
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe GlobalReplicationGroup
globalReplicationGroup
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus