{-# 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.Route53RecoveryReadiness.GetRecoveryGroupReadinessSummary
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Displays a summary of information about a recovery group\'s readiness
-- status. Includes the readiness checks for resources in the recovery
-- group and the readiness status of each one.
--
-- This operation returns paginated results.
module Amazonka.Route53RecoveryReadiness.GetRecoveryGroupReadinessSummary
  ( -- * Creating a Request
    GetRecoveryGroupReadinessSummary (..),
    newGetRecoveryGroupReadinessSummary,

    -- * Request Lenses
    getRecoveryGroupReadinessSummary_maxResults,
    getRecoveryGroupReadinessSummary_nextToken,
    getRecoveryGroupReadinessSummary_recoveryGroupName,

    -- * Destructuring the Response
    GetRecoveryGroupReadinessSummaryResponse (..),
    newGetRecoveryGroupReadinessSummaryResponse,

    -- * Response Lenses
    getRecoveryGroupReadinessSummaryResponse_nextToken,
    getRecoveryGroupReadinessSummaryResponse_readiness,
    getRecoveryGroupReadinessSummaryResponse_readinessChecks,
    getRecoveryGroupReadinessSummaryResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetRecoveryGroupReadinessSummary' smart constructor.
data GetRecoveryGroupReadinessSummary = GetRecoveryGroupReadinessSummary'
  { -- | The number of objects that you want to return with this call.
    GetRecoveryGroupReadinessSummary -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | The token that identifies which batch of results you want to see.
    GetRecoveryGroupReadinessSummary -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The name of a recovery group.
    GetRecoveryGroupReadinessSummary -> Text
recoveryGroupName :: Prelude.Text
  }
  deriving (GetRecoveryGroupReadinessSummary
-> GetRecoveryGroupReadinessSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecoveryGroupReadinessSummary
-> GetRecoveryGroupReadinessSummary -> Bool
$c/= :: GetRecoveryGroupReadinessSummary
-> GetRecoveryGroupReadinessSummary -> Bool
== :: GetRecoveryGroupReadinessSummary
-> GetRecoveryGroupReadinessSummary -> Bool
$c== :: GetRecoveryGroupReadinessSummary
-> GetRecoveryGroupReadinessSummary -> Bool
Prelude.Eq, ReadPrec [GetRecoveryGroupReadinessSummary]
ReadPrec GetRecoveryGroupReadinessSummary
Int -> ReadS GetRecoveryGroupReadinessSummary
ReadS [GetRecoveryGroupReadinessSummary]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetRecoveryGroupReadinessSummary]
$creadListPrec :: ReadPrec [GetRecoveryGroupReadinessSummary]
readPrec :: ReadPrec GetRecoveryGroupReadinessSummary
$creadPrec :: ReadPrec GetRecoveryGroupReadinessSummary
readList :: ReadS [GetRecoveryGroupReadinessSummary]
$creadList :: ReadS [GetRecoveryGroupReadinessSummary]
readsPrec :: Int -> ReadS GetRecoveryGroupReadinessSummary
$creadsPrec :: Int -> ReadS GetRecoveryGroupReadinessSummary
Prelude.Read, Int -> GetRecoveryGroupReadinessSummary -> ShowS
[GetRecoveryGroupReadinessSummary] -> ShowS
GetRecoveryGroupReadinessSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetRecoveryGroupReadinessSummary] -> ShowS
$cshowList :: [GetRecoveryGroupReadinessSummary] -> ShowS
show :: GetRecoveryGroupReadinessSummary -> String
$cshow :: GetRecoveryGroupReadinessSummary -> String
showsPrec :: Int -> GetRecoveryGroupReadinessSummary -> ShowS
$cshowsPrec :: Int -> GetRecoveryGroupReadinessSummary -> ShowS
Prelude.Show, forall x.
Rep GetRecoveryGroupReadinessSummary x
-> GetRecoveryGroupReadinessSummary
forall x.
GetRecoveryGroupReadinessSummary
-> Rep GetRecoveryGroupReadinessSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetRecoveryGroupReadinessSummary x
-> GetRecoveryGroupReadinessSummary
$cfrom :: forall x.
GetRecoveryGroupReadinessSummary
-> Rep GetRecoveryGroupReadinessSummary x
Prelude.Generic)

-- |
-- Create a value of 'GetRecoveryGroupReadinessSummary' 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:
--
-- 'maxResults', 'getRecoveryGroupReadinessSummary_maxResults' - The number of objects that you want to return with this call.
--
-- 'nextToken', 'getRecoveryGroupReadinessSummary_nextToken' - The token that identifies which batch of results you want to see.
--
-- 'recoveryGroupName', 'getRecoveryGroupReadinessSummary_recoveryGroupName' - The name of a recovery group.
newGetRecoveryGroupReadinessSummary ::
  -- | 'recoveryGroupName'
  Prelude.Text ->
  GetRecoveryGroupReadinessSummary
newGetRecoveryGroupReadinessSummary :: Text -> GetRecoveryGroupReadinessSummary
newGetRecoveryGroupReadinessSummary
  Text
pRecoveryGroupName_ =
    GetRecoveryGroupReadinessSummary'
      { $sel:maxResults:GetRecoveryGroupReadinessSummary' :: Maybe Natural
maxResults =
          forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:GetRecoveryGroupReadinessSummary' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:recoveryGroupName:GetRecoveryGroupReadinessSummary' :: Text
recoveryGroupName = Text
pRecoveryGroupName_
      }

-- | The number of objects that you want to return with this call.
getRecoveryGroupReadinessSummary_maxResults :: Lens.Lens' GetRecoveryGroupReadinessSummary (Prelude.Maybe Prelude.Natural)
getRecoveryGroupReadinessSummary_maxResults :: Lens' GetRecoveryGroupReadinessSummary (Maybe Natural)
getRecoveryGroupReadinessSummary_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRecoveryGroupReadinessSummary' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: GetRecoveryGroupReadinessSummary
s@GetRecoveryGroupReadinessSummary' {} Maybe Natural
a -> GetRecoveryGroupReadinessSummary
s {$sel:maxResults:GetRecoveryGroupReadinessSummary' :: Maybe Natural
maxResults = Maybe Natural
a} :: GetRecoveryGroupReadinessSummary)

-- | The token that identifies which batch of results you want to see.
getRecoveryGroupReadinessSummary_nextToken :: Lens.Lens' GetRecoveryGroupReadinessSummary (Prelude.Maybe Prelude.Text)
getRecoveryGroupReadinessSummary_nextToken :: Lens' GetRecoveryGroupReadinessSummary (Maybe Text)
getRecoveryGroupReadinessSummary_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRecoveryGroupReadinessSummary' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetRecoveryGroupReadinessSummary
s@GetRecoveryGroupReadinessSummary' {} Maybe Text
a -> GetRecoveryGroupReadinessSummary
s {$sel:nextToken:GetRecoveryGroupReadinessSummary' :: Maybe Text
nextToken = Maybe Text
a} :: GetRecoveryGroupReadinessSummary)

-- | The name of a recovery group.
getRecoveryGroupReadinessSummary_recoveryGroupName :: Lens.Lens' GetRecoveryGroupReadinessSummary Prelude.Text
getRecoveryGroupReadinessSummary_recoveryGroupName :: Lens' GetRecoveryGroupReadinessSummary Text
getRecoveryGroupReadinessSummary_recoveryGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRecoveryGroupReadinessSummary' {Text
recoveryGroupName :: Text
$sel:recoveryGroupName:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Text
recoveryGroupName} -> Text
recoveryGroupName) (\s :: GetRecoveryGroupReadinessSummary
s@GetRecoveryGroupReadinessSummary' {} Text
a -> GetRecoveryGroupReadinessSummary
s {$sel:recoveryGroupName:GetRecoveryGroupReadinessSummary' :: Text
recoveryGroupName = Text
a} :: GetRecoveryGroupReadinessSummary)

instance
  Core.AWSPager
    GetRecoveryGroupReadinessSummary
  where
  page :: GetRecoveryGroupReadinessSummary
-> AWSResponse GetRecoveryGroupReadinessSummary
-> Maybe GetRecoveryGroupReadinessSummary
page GetRecoveryGroupReadinessSummary
rq AWSResponse GetRecoveryGroupReadinessSummary
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse GetRecoveryGroupReadinessSummary
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetRecoveryGroupReadinessSummaryResponse (Maybe Text)
getRecoveryGroupReadinessSummaryResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse GetRecoveryGroupReadinessSummary
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  GetRecoveryGroupReadinessSummaryResponse
  (Maybe [ReadinessCheckSummary])
getRecoveryGroupReadinessSummaryResponse_readinessChecks
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ GetRecoveryGroupReadinessSummary
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' GetRecoveryGroupReadinessSummary (Maybe Text)
getRecoveryGroupReadinessSummary_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse GetRecoveryGroupReadinessSummary
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetRecoveryGroupReadinessSummaryResponse (Maybe Text)
getRecoveryGroupReadinessSummaryResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance
  Core.AWSRequest
    GetRecoveryGroupReadinessSummary
  where
  type
    AWSResponse GetRecoveryGroupReadinessSummary =
      GetRecoveryGroupReadinessSummaryResponse
  request :: (Service -> Service)
-> GetRecoveryGroupReadinessSummary
-> Request GetRecoveryGroupReadinessSummary
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetRecoveryGroupReadinessSummary
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse GetRecoveryGroupReadinessSummary)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Readiness
-> Maybe [ReadinessCheckSummary]
-> Int
-> GetRecoveryGroupReadinessSummaryResponse
GetRecoveryGroupReadinessSummaryResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"nextToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"readiness")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"readinessChecks"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            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
    GetRecoveryGroupReadinessSummary
  where
  hashWithSalt :: Int -> GetRecoveryGroupReadinessSummary -> Int
hashWithSalt
    Int
_salt
    GetRecoveryGroupReadinessSummary' {Maybe Natural
Maybe Text
Text
recoveryGroupName :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:recoveryGroupName:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Text
$sel:nextToken:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Maybe Text
$sel:maxResults:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Maybe Natural
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
recoveryGroupName

instance
  Prelude.NFData
    GetRecoveryGroupReadinessSummary
  where
  rnf :: GetRecoveryGroupReadinessSummary -> ()
rnf GetRecoveryGroupReadinessSummary' {Maybe Natural
Maybe Text
Text
recoveryGroupName :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:recoveryGroupName:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Text
$sel:nextToken:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Maybe Text
$sel:maxResults:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Maybe Natural
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
recoveryGroupName

instance
  Data.ToHeaders
    GetRecoveryGroupReadinessSummary
  where
  toHeaders :: GetRecoveryGroupReadinessSummary -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath GetRecoveryGroupReadinessSummary where
  toPath :: GetRecoveryGroupReadinessSummary -> ByteString
toPath GetRecoveryGroupReadinessSummary' {Maybe Natural
Maybe Text
Text
recoveryGroupName :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:recoveryGroupName:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Text
$sel:nextToken:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Maybe Text
$sel:maxResults:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Maybe Natural
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/recoverygroupreadiness/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
recoveryGroupName
      ]

instance
  Data.ToQuery
    GetRecoveryGroupReadinessSummary
  where
  toQuery :: GetRecoveryGroupReadinessSummary -> QueryString
toQuery GetRecoveryGroupReadinessSummary' {Maybe Natural
Maybe Text
Text
recoveryGroupName :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:recoveryGroupName:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Text
$sel:nextToken:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Maybe Text
$sel:maxResults:GetRecoveryGroupReadinessSummary' :: GetRecoveryGroupReadinessSummary -> Maybe Natural
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"maxResults" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
maxResults,
        ByteString
"nextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken
      ]

-- | /See:/ 'newGetRecoveryGroupReadinessSummaryResponse' smart constructor.
data GetRecoveryGroupReadinessSummaryResponse = GetRecoveryGroupReadinessSummaryResponse'
  { -- | The token that identifies which batch of results you want to see.
    GetRecoveryGroupReadinessSummaryResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The readiness status at a recovery group level.
    GetRecoveryGroupReadinessSummaryResponse -> Maybe Readiness
readiness :: Prelude.Maybe Readiness,
    -- | Summaries of the readiness checks for the recovery group.
    GetRecoveryGroupReadinessSummaryResponse
-> Maybe [ReadinessCheckSummary]
readinessChecks :: Prelude.Maybe [ReadinessCheckSummary],
    -- | The response's http status code.
    GetRecoveryGroupReadinessSummaryResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetRecoveryGroupReadinessSummaryResponse
-> GetRecoveryGroupReadinessSummaryResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecoveryGroupReadinessSummaryResponse
-> GetRecoveryGroupReadinessSummaryResponse -> Bool
$c/= :: GetRecoveryGroupReadinessSummaryResponse
-> GetRecoveryGroupReadinessSummaryResponse -> Bool
== :: GetRecoveryGroupReadinessSummaryResponse
-> GetRecoveryGroupReadinessSummaryResponse -> Bool
$c== :: GetRecoveryGroupReadinessSummaryResponse
-> GetRecoveryGroupReadinessSummaryResponse -> Bool
Prelude.Eq, ReadPrec [GetRecoveryGroupReadinessSummaryResponse]
ReadPrec GetRecoveryGroupReadinessSummaryResponse
Int -> ReadS GetRecoveryGroupReadinessSummaryResponse
ReadS [GetRecoveryGroupReadinessSummaryResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetRecoveryGroupReadinessSummaryResponse]
$creadListPrec :: ReadPrec [GetRecoveryGroupReadinessSummaryResponse]
readPrec :: ReadPrec GetRecoveryGroupReadinessSummaryResponse
$creadPrec :: ReadPrec GetRecoveryGroupReadinessSummaryResponse
readList :: ReadS [GetRecoveryGroupReadinessSummaryResponse]
$creadList :: ReadS [GetRecoveryGroupReadinessSummaryResponse]
readsPrec :: Int -> ReadS GetRecoveryGroupReadinessSummaryResponse
$creadsPrec :: Int -> ReadS GetRecoveryGroupReadinessSummaryResponse
Prelude.Read, Int -> GetRecoveryGroupReadinessSummaryResponse -> ShowS
[GetRecoveryGroupReadinessSummaryResponse] -> ShowS
GetRecoveryGroupReadinessSummaryResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetRecoveryGroupReadinessSummaryResponse] -> ShowS
$cshowList :: [GetRecoveryGroupReadinessSummaryResponse] -> ShowS
show :: GetRecoveryGroupReadinessSummaryResponse -> String
$cshow :: GetRecoveryGroupReadinessSummaryResponse -> String
showsPrec :: Int -> GetRecoveryGroupReadinessSummaryResponse -> ShowS
$cshowsPrec :: Int -> GetRecoveryGroupReadinessSummaryResponse -> ShowS
Prelude.Show, forall x.
Rep GetRecoveryGroupReadinessSummaryResponse x
-> GetRecoveryGroupReadinessSummaryResponse
forall x.
GetRecoveryGroupReadinessSummaryResponse
-> Rep GetRecoveryGroupReadinessSummaryResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetRecoveryGroupReadinessSummaryResponse x
-> GetRecoveryGroupReadinessSummaryResponse
$cfrom :: forall x.
GetRecoveryGroupReadinessSummaryResponse
-> Rep GetRecoveryGroupReadinessSummaryResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetRecoveryGroupReadinessSummaryResponse' 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:
--
-- 'nextToken', 'getRecoveryGroupReadinessSummaryResponse_nextToken' - The token that identifies which batch of results you want to see.
--
-- 'readiness', 'getRecoveryGroupReadinessSummaryResponse_readiness' - The readiness status at a recovery group level.
--
-- 'readinessChecks', 'getRecoveryGroupReadinessSummaryResponse_readinessChecks' - Summaries of the readiness checks for the recovery group.
--
-- 'httpStatus', 'getRecoveryGroupReadinessSummaryResponse_httpStatus' - The response's http status code.
newGetRecoveryGroupReadinessSummaryResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetRecoveryGroupReadinessSummaryResponse
newGetRecoveryGroupReadinessSummaryResponse :: Int -> GetRecoveryGroupReadinessSummaryResponse
newGetRecoveryGroupReadinessSummaryResponse
  Int
pHttpStatus_ =
    GetRecoveryGroupReadinessSummaryResponse'
      { $sel:nextToken:GetRecoveryGroupReadinessSummaryResponse' :: Maybe Text
nextToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:readiness:GetRecoveryGroupReadinessSummaryResponse' :: Maybe Readiness
readiness = forall a. Maybe a
Prelude.Nothing,
        $sel:readinessChecks:GetRecoveryGroupReadinessSummaryResponse' :: Maybe [ReadinessCheckSummary]
readinessChecks = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:GetRecoveryGroupReadinessSummaryResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The token that identifies which batch of results you want to see.
getRecoveryGroupReadinessSummaryResponse_nextToken :: Lens.Lens' GetRecoveryGroupReadinessSummaryResponse (Prelude.Maybe Prelude.Text)
getRecoveryGroupReadinessSummaryResponse_nextToken :: Lens' GetRecoveryGroupReadinessSummaryResponse (Maybe Text)
getRecoveryGroupReadinessSummaryResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRecoveryGroupReadinessSummaryResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetRecoveryGroupReadinessSummaryResponse' :: GetRecoveryGroupReadinessSummaryResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetRecoveryGroupReadinessSummaryResponse
s@GetRecoveryGroupReadinessSummaryResponse' {} Maybe Text
a -> GetRecoveryGroupReadinessSummaryResponse
s {$sel:nextToken:GetRecoveryGroupReadinessSummaryResponse' :: Maybe Text
nextToken = Maybe Text
a} :: GetRecoveryGroupReadinessSummaryResponse)

-- | The readiness status at a recovery group level.
getRecoveryGroupReadinessSummaryResponse_readiness :: Lens.Lens' GetRecoveryGroupReadinessSummaryResponse (Prelude.Maybe Readiness)
getRecoveryGroupReadinessSummaryResponse_readiness :: Lens' GetRecoveryGroupReadinessSummaryResponse (Maybe Readiness)
getRecoveryGroupReadinessSummaryResponse_readiness = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRecoveryGroupReadinessSummaryResponse' {Maybe Readiness
readiness :: Maybe Readiness
$sel:readiness:GetRecoveryGroupReadinessSummaryResponse' :: GetRecoveryGroupReadinessSummaryResponse -> Maybe Readiness
readiness} -> Maybe Readiness
readiness) (\s :: GetRecoveryGroupReadinessSummaryResponse
s@GetRecoveryGroupReadinessSummaryResponse' {} Maybe Readiness
a -> GetRecoveryGroupReadinessSummaryResponse
s {$sel:readiness:GetRecoveryGroupReadinessSummaryResponse' :: Maybe Readiness
readiness = Maybe Readiness
a} :: GetRecoveryGroupReadinessSummaryResponse)

-- | Summaries of the readiness checks for the recovery group.
getRecoveryGroupReadinessSummaryResponse_readinessChecks :: Lens.Lens' GetRecoveryGroupReadinessSummaryResponse (Prelude.Maybe [ReadinessCheckSummary])
getRecoveryGroupReadinessSummaryResponse_readinessChecks :: Lens'
  GetRecoveryGroupReadinessSummaryResponse
  (Maybe [ReadinessCheckSummary])
getRecoveryGroupReadinessSummaryResponse_readinessChecks = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRecoveryGroupReadinessSummaryResponse' {Maybe [ReadinessCheckSummary]
readinessChecks :: Maybe [ReadinessCheckSummary]
$sel:readinessChecks:GetRecoveryGroupReadinessSummaryResponse' :: GetRecoveryGroupReadinessSummaryResponse
-> Maybe [ReadinessCheckSummary]
readinessChecks} -> Maybe [ReadinessCheckSummary]
readinessChecks) (\s :: GetRecoveryGroupReadinessSummaryResponse
s@GetRecoveryGroupReadinessSummaryResponse' {} Maybe [ReadinessCheckSummary]
a -> GetRecoveryGroupReadinessSummaryResponse
s {$sel:readinessChecks:GetRecoveryGroupReadinessSummaryResponse' :: Maybe [ReadinessCheckSummary]
readinessChecks = Maybe [ReadinessCheckSummary]
a} :: GetRecoveryGroupReadinessSummaryResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

instance
  Prelude.NFData
    GetRecoveryGroupReadinessSummaryResponse
  where
  rnf :: GetRecoveryGroupReadinessSummaryResponse -> ()
rnf GetRecoveryGroupReadinessSummaryResponse' {Int
Maybe [ReadinessCheckSummary]
Maybe Text
Maybe Readiness
httpStatus :: Int
readinessChecks :: Maybe [ReadinessCheckSummary]
readiness :: Maybe Readiness
nextToken :: Maybe Text
$sel:httpStatus:GetRecoveryGroupReadinessSummaryResponse' :: GetRecoveryGroupReadinessSummaryResponse -> Int
$sel:readinessChecks:GetRecoveryGroupReadinessSummaryResponse' :: GetRecoveryGroupReadinessSummaryResponse
-> Maybe [ReadinessCheckSummary]
$sel:readiness:GetRecoveryGroupReadinessSummaryResponse' :: GetRecoveryGroupReadinessSummaryResponse -> Maybe Readiness
$sel:nextToken:GetRecoveryGroupReadinessSummaryResponse' :: GetRecoveryGroupReadinessSummaryResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Readiness
readiness
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ReadinessCheckSummary]
readinessChecks
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus