{-# 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.RedshiftServerLess.ListTableRestoreStatus
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns information about an array of @TableRestoreStatus@ objects.
--
-- This operation returns paginated results.
module Amazonka.RedshiftServerLess.ListTableRestoreStatus
  ( -- * Creating a Request
    ListTableRestoreStatus (..),
    newListTableRestoreStatus,

    -- * Request Lenses
    listTableRestoreStatus_maxResults,
    listTableRestoreStatus_namespaceName,
    listTableRestoreStatus_nextToken,
    listTableRestoreStatus_workgroupName,

    -- * Destructuring the Response
    ListTableRestoreStatusResponse (..),
    newListTableRestoreStatusResponse,

    -- * Response Lenses
    listTableRestoreStatusResponse_nextToken,
    listTableRestoreStatusResponse_tableRestoreStatuses,
    listTableRestoreStatusResponse_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 Amazonka.RedshiftServerLess.Types
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newListTableRestoreStatus' smart constructor.
data ListTableRestoreStatus = ListTableRestoreStatus'
  { -- | An optional parameter that specifies the maximum number of results to
    -- return. You can use nextToken to display the next page of results.
    ListTableRestoreStatus -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | The namespace from which to list all of the statuses of
    -- @RestoreTableFromSnapshot@ operations .
    ListTableRestoreStatus -> Maybe Text
namespaceName :: Prelude.Maybe Prelude.Text,
    -- | If your initial @ListTableRestoreStatus@ operation returns a nextToken,
    -- you can include the returned @nextToken@ in following
    -- @ListTableRestoreStatus@ operations. This will return results on the
    -- next page.
    ListTableRestoreStatus -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The workgroup from which to list all of the statuses of
    -- @RestoreTableFromSnapshot@ operations.
    ListTableRestoreStatus -> Maybe Text
workgroupName :: Prelude.Maybe Prelude.Text
  }
  deriving (ListTableRestoreStatus -> ListTableRestoreStatus -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListTableRestoreStatus -> ListTableRestoreStatus -> Bool
$c/= :: ListTableRestoreStatus -> ListTableRestoreStatus -> Bool
== :: ListTableRestoreStatus -> ListTableRestoreStatus -> Bool
$c== :: ListTableRestoreStatus -> ListTableRestoreStatus -> Bool
Prelude.Eq, ReadPrec [ListTableRestoreStatus]
ReadPrec ListTableRestoreStatus
Int -> ReadS ListTableRestoreStatus
ReadS [ListTableRestoreStatus]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListTableRestoreStatus]
$creadListPrec :: ReadPrec [ListTableRestoreStatus]
readPrec :: ReadPrec ListTableRestoreStatus
$creadPrec :: ReadPrec ListTableRestoreStatus
readList :: ReadS [ListTableRestoreStatus]
$creadList :: ReadS [ListTableRestoreStatus]
readsPrec :: Int -> ReadS ListTableRestoreStatus
$creadsPrec :: Int -> ReadS ListTableRestoreStatus
Prelude.Read, Int -> ListTableRestoreStatus -> ShowS
[ListTableRestoreStatus] -> ShowS
ListTableRestoreStatus -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListTableRestoreStatus] -> ShowS
$cshowList :: [ListTableRestoreStatus] -> ShowS
show :: ListTableRestoreStatus -> String
$cshow :: ListTableRestoreStatus -> String
showsPrec :: Int -> ListTableRestoreStatus -> ShowS
$cshowsPrec :: Int -> ListTableRestoreStatus -> ShowS
Prelude.Show, forall x. Rep ListTableRestoreStatus x -> ListTableRestoreStatus
forall x. ListTableRestoreStatus -> Rep ListTableRestoreStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListTableRestoreStatus x -> ListTableRestoreStatus
$cfrom :: forall x. ListTableRestoreStatus -> Rep ListTableRestoreStatus x
Prelude.Generic)

-- |
-- Create a value of 'ListTableRestoreStatus' 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', 'listTableRestoreStatus_maxResults' - An optional parameter that specifies the maximum number of results to
-- return. You can use nextToken to display the next page of results.
--
-- 'namespaceName', 'listTableRestoreStatus_namespaceName' - The namespace from which to list all of the statuses of
-- @RestoreTableFromSnapshot@ operations .
--
-- 'nextToken', 'listTableRestoreStatus_nextToken' - If your initial @ListTableRestoreStatus@ operation returns a nextToken,
-- you can include the returned @nextToken@ in following
-- @ListTableRestoreStatus@ operations. This will return results on the
-- next page.
--
-- 'workgroupName', 'listTableRestoreStatus_workgroupName' - The workgroup from which to list all of the statuses of
-- @RestoreTableFromSnapshot@ operations.
newListTableRestoreStatus ::
  ListTableRestoreStatus
newListTableRestoreStatus :: ListTableRestoreStatus
newListTableRestoreStatus =
  ListTableRestoreStatus'
    { $sel:maxResults:ListTableRestoreStatus' :: Maybe Natural
maxResults =
        forall a. Maybe a
Prelude.Nothing,
      $sel:namespaceName:ListTableRestoreStatus' :: Maybe Text
namespaceName = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListTableRestoreStatus' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:workgroupName:ListTableRestoreStatus' :: Maybe Text
workgroupName = forall a. Maybe a
Prelude.Nothing
    }

-- | An optional parameter that specifies the maximum number of results to
-- return. You can use nextToken to display the next page of results.
listTableRestoreStatus_maxResults :: Lens.Lens' ListTableRestoreStatus (Prelude.Maybe Prelude.Natural)
listTableRestoreStatus_maxResults :: Lens' ListTableRestoreStatus (Maybe Natural)
listTableRestoreStatus_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTableRestoreStatus' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListTableRestoreStatus
s@ListTableRestoreStatus' {} Maybe Natural
a -> ListTableRestoreStatus
s {$sel:maxResults:ListTableRestoreStatus' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListTableRestoreStatus)

-- | The namespace from which to list all of the statuses of
-- @RestoreTableFromSnapshot@ operations .
listTableRestoreStatus_namespaceName :: Lens.Lens' ListTableRestoreStatus (Prelude.Maybe Prelude.Text)
listTableRestoreStatus_namespaceName :: Lens' ListTableRestoreStatus (Maybe Text)
listTableRestoreStatus_namespaceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTableRestoreStatus' {Maybe Text
namespaceName :: Maybe Text
$sel:namespaceName:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
namespaceName} -> Maybe Text
namespaceName) (\s :: ListTableRestoreStatus
s@ListTableRestoreStatus' {} Maybe Text
a -> ListTableRestoreStatus
s {$sel:namespaceName:ListTableRestoreStatus' :: Maybe Text
namespaceName = Maybe Text
a} :: ListTableRestoreStatus)

-- | If your initial @ListTableRestoreStatus@ operation returns a nextToken,
-- you can include the returned @nextToken@ in following
-- @ListTableRestoreStatus@ operations. This will return results on the
-- next page.
listTableRestoreStatus_nextToken :: Lens.Lens' ListTableRestoreStatus (Prelude.Maybe Prelude.Text)
listTableRestoreStatus_nextToken :: Lens' ListTableRestoreStatus (Maybe Text)
listTableRestoreStatus_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTableRestoreStatus' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListTableRestoreStatus
s@ListTableRestoreStatus' {} Maybe Text
a -> ListTableRestoreStatus
s {$sel:nextToken:ListTableRestoreStatus' :: Maybe Text
nextToken = Maybe Text
a} :: ListTableRestoreStatus)

-- | The workgroup from which to list all of the statuses of
-- @RestoreTableFromSnapshot@ operations.
listTableRestoreStatus_workgroupName :: Lens.Lens' ListTableRestoreStatus (Prelude.Maybe Prelude.Text)
listTableRestoreStatus_workgroupName :: Lens' ListTableRestoreStatus (Maybe Text)
listTableRestoreStatus_workgroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTableRestoreStatus' {Maybe Text
workgroupName :: Maybe Text
$sel:workgroupName:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
workgroupName} -> Maybe Text
workgroupName) (\s :: ListTableRestoreStatus
s@ListTableRestoreStatus' {} Maybe Text
a -> ListTableRestoreStatus
s {$sel:workgroupName:ListTableRestoreStatus' :: Maybe Text
workgroupName = Maybe Text
a} :: ListTableRestoreStatus)

instance Core.AWSPager ListTableRestoreStatus where
  page :: ListTableRestoreStatus
-> AWSResponse ListTableRestoreStatus
-> Maybe ListTableRestoreStatus
page ListTableRestoreStatus
rq AWSResponse ListTableRestoreStatus
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListTableRestoreStatus
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListTableRestoreStatusResponse (Maybe Text)
listTableRestoreStatusResponse_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 ListTableRestoreStatus
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListTableRestoreStatusResponse (Maybe [TableRestoreStatus])
listTableRestoreStatusResponse_tableRestoreStatuses
            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.$ ListTableRestoreStatus
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListTableRestoreStatus (Maybe Text)
listTableRestoreStatus_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListTableRestoreStatus
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListTableRestoreStatusResponse (Maybe Text)
listTableRestoreStatusResponse_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 ListTableRestoreStatus where
  type
    AWSResponse ListTableRestoreStatus =
      ListTableRestoreStatusResponse
  request :: (Service -> Service)
-> ListTableRestoreStatus -> Request ListTableRestoreStatus
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ListTableRestoreStatus
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListTableRestoreStatus)))
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 [TableRestoreStatus]
-> Int
-> ListTableRestoreStatusResponse
ListTableRestoreStatusResponse'
            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
"tableRestoreStatuses"
                            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 ListTableRestoreStatus where
  hashWithSalt :: Int -> ListTableRestoreStatus -> Int
hashWithSalt Int
_salt ListTableRestoreStatus' {Maybe Natural
Maybe Text
workgroupName :: Maybe Text
nextToken :: Maybe Text
namespaceName :: Maybe Text
maxResults :: Maybe Natural
$sel:workgroupName:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
$sel:nextToken:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
$sel:namespaceName:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
$sel:maxResults:ListTableRestoreStatus' :: ListTableRestoreStatus -> 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
namespaceName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
workgroupName

instance Prelude.NFData ListTableRestoreStatus where
  rnf :: ListTableRestoreStatus -> ()
rnf ListTableRestoreStatus' {Maybe Natural
Maybe Text
workgroupName :: Maybe Text
nextToken :: Maybe Text
namespaceName :: Maybe Text
maxResults :: Maybe Natural
$sel:workgroupName:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
$sel:nextToken:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
$sel:namespaceName:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
$sel:maxResults:ListTableRestoreStatus' :: ListTableRestoreStatus -> 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
namespaceName
      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 Maybe Text
workgroupName

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

instance Data.ToJSON ListTableRestoreStatus where
  toJSON :: ListTableRestoreStatus -> Value
toJSON ListTableRestoreStatus' {Maybe Natural
Maybe Text
workgroupName :: Maybe Text
nextToken :: Maybe Text
namespaceName :: Maybe Text
maxResults :: Maybe Natural
$sel:workgroupName:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
$sel:nextToken:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
$sel:namespaceName:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Text
$sel:maxResults:ListTableRestoreStatus' :: ListTableRestoreStatus -> Maybe Natural
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"maxResults" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
maxResults,
            (Key
"namespaceName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
namespaceName,
            (Key
"nextToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken,
            (Key
"workgroupName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
workgroupName
          ]
      )

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

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

-- | /See:/ 'newListTableRestoreStatusResponse' smart constructor.
data ListTableRestoreStatusResponse = ListTableRestoreStatusResponse'
  { -- | If your initial @ListTableRestoreStatus@ operation returns a
    -- @nextToken@, you can include the returned @nextToken@ in following
    -- @ListTableRestoreStatus@ operations. This will returns results on the
    -- next page.
    ListTableRestoreStatusResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The array of returned @TableRestoreStatus@ objects.
    ListTableRestoreStatusResponse -> Maybe [TableRestoreStatus]
tableRestoreStatuses :: Prelude.Maybe [TableRestoreStatus],
    -- | The response's http status code.
    ListTableRestoreStatusResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListTableRestoreStatusResponse
-> ListTableRestoreStatusResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListTableRestoreStatusResponse
-> ListTableRestoreStatusResponse -> Bool
$c/= :: ListTableRestoreStatusResponse
-> ListTableRestoreStatusResponse -> Bool
== :: ListTableRestoreStatusResponse
-> ListTableRestoreStatusResponse -> Bool
$c== :: ListTableRestoreStatusResponse
-> ListTableRestoreStatusResponse -> Bool
Prelude.Eq, ReadPrec [ListTableRestoreStatusResponse]
ReadPrec ListTableRestoreStatusResponse
Int -> ReadS ListTableRestoreStatusResponse
ReadS [ListTableRestoreStatusResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListTableRestoreStatusResponse]
$creadListPrec :: ReadPrec [ListTableRestoreStatusResponse]
readPrec :: ReadPrec ListTableRestoreStatusResponse
$creadPrec :: ReadPrec ListTableRestoreStatusResponse
readList :: ReadS [ListTableRestoreStatusResponse]
$creadList :: ReadS [ListTableRestoreStatusResponse]
readsPrec :: Int -> ReadS ListTableRestoreStatusResponse
$creadsPrec :: Int -> ReadS ListTableRestoreStatusResponse
Prelude.Read, Int -> ListTableRestoreStatusResponse -> ShowS
[ListTableRestoreStatusResponse] -> ShowS
ListTableRestoreStatusResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListTableRestoreStatusResponse] -> ShowS
$cshowList :: [ListTableRestoreStatusResponse] -> ShowS
show :: ListTableRestoreStatusResponse -> String
$cshow :: ListTableRestoreStatusResponse -> String
showsPrec :: Int -> ListTableRestoreStatusResponse -> ShowS
$cshowsPrec :: Int -> ListTableRestoreStatusResponse -> ShowS
Prelude.Show, forall x.
Rep ListTableRestoreStatusResponse x
-> ListTableRestoreStatusResponse
forall x.
ListTableRestoreStatusResponse
-> Rep ListTableRestoreStatusResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListTableRestoreStatusResponse x
-> ListTableRestoreStatusResponse
$cfrom :: forall x.
ListTableRestoreStatusResponse
-> Rep ListTableRestoreStatusResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListTableRestoreStatusResponse' 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', 'listTableRestoreStatusResponse_nextToken' - If your initial @ListTableRestoreStatus@ operation returns a
-- @nextToken@, you can include the returned @nextToken@ in following
-- @ListTableRestoreStatus@ operations. This will returns results on the
-- next page.
--
-- 'tableRestoreStatuses', 'listTableRestoreStatusResponse_tableRestoreStatuses' - The array of returned @TableRestoreStatus@ objects.
--
-- 'httpStatus', 'listTableRestoreStatusResponse_httpStatus' - The response's http status code.
newListTableRestoreStatusResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListTableRestoreStatusResponse
newListTableRestoreStatusResponse :: Int -> ListTableRestoreStatusResponse
newListTableRestoreStatusResponse Int
pHttpStatus_ =
  ListTableRestoreStatusResponse'
    { $sel:nextToken:ListTableRestoreStatusResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:tableRestoreStatuses:ListTableRestoreStatusResponse' :: Maybe [TableRestoreStatus]
tableRestoreStatuses = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListTableRestoreStatusResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | If your initial @ListTableRestoreStatus@ operation returns a
-- @nextToken@, you can include the returned @nextToken@ in following
-- @ListTableRestoreStatus@ operations. This will returns results on the
-- next page.
listTableRestoreStatusResponse_nextToken :: Lens.Lens' ListTableRestoreStatusResponse (Prelude.Maybe Prelude.Text)
listTableRestoreStatusResponse_nextToken :: Lens' ListTableRestoreStatusResponse (Maybe Text)
listTableRestoreStatusResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTableRestoreStatusResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListTableRestoreStatusResponse' :: ListTableRestoreStatusResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListTableRestoreStatusResponse
s@ListTableRestoreStatusResponse' {} Maybe Text
a -> ListTableRestoreStatusResponse
s {$sel:nextToken:ListTableRestoreStatusResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListTableRestoreStatusResponse)

-- | The array of returned @TableRestoreStatus@ objects.
listTableRestoreStatusResponse_tableRestoreStatuses :: Lens.Lens' ListTableRestoreStatusResponse (Prelude.Maybe [TableRestoreStatus])
listTableRestoreStatusResponse_tableRestoreStatuses :: Lens' ListTableRestoreStatusResponse (Maybe [TableRestoreStatus])
listTableRestoreStatusResponse_tableRestoreStatuses = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTableRestoreStatusResponse' {Maybe [TableRestoreStatus]
tableRestoreStatuses :: Maybe [TableRestoreStatus]
$sel:tableRestoreStatuses:ListTableRestoreStatusResponse' :: ListTableRestoreStatusResponse -> Maybe [TableRestoreStatus]
tableRestoreStatuses} -> Maybe [TableRestoreStatus]
tableRestoreStatuses) (\s :: ListTableRestoreStatusResponse
s@ListTableRestoreStatusResponse' {} Maybe [TableRestoreStatus]
a -> ListTableRestoreStatusResponse
s {$sel:tableRestoreStatuses:ListTableRestoreStatusResponse' :: Maybe [TableRestoreStatus]
tableRestoreStatuses = Maybe [TableRestoreStatus]
a} :: ListTableRestoreStatusResponse) 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.
listTableRestoreStatusResponse_httpStatus :: Lens.Lens' ListTableRestoreStatusResponse Prelude.Int
listTableRestoreStatusResponse_httpStatus :: Lens' ListTableRestoreStatusResponse Int
listTableRestoreStatusResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListTableRestoreStatusResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListTableRestoreStatusResponse' :: ListTableRestoreStatusResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListTableRestoreStatusResponse
s@ListTableRestoreStatusResponse' {} Int
a -> ListTableRestoreStatusResponse
s {$sel:httpStatus:ListTableRestoreStatusResponse' :: Int
httpStatus = Int
a} :: ListTableRestoreStatusResponse)

instance
  Prelude.NFData
    ListTableRestoreStatusResponse
  where
  rnf :: ListTableRestoreStatusResponse -> ()
rnf ListTableRestoreStatusResponse' {Int
Maybe [TableRestoreStatus]
Maybe Text
httpStatus :: Int
tableRestoreStatuses :: Maybe [TableRestoreStatus]
nextToken :: Maybe Text
$sel:httpStatus:ListTableRestoreStatusResponse' :: ListTableRestoreStatusResponse -> Int
$sel:tableRestoreStatuses:ListTableRestoreStatusResponse' :: ListTableRestoreStatusResponse -> Maybe [TableRestoreStatus]
$sel:nextToken:ListTableRestoreStatusResponse' :: ListTableRestoreStatusResponse -> 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 [TableRestoreStatus]
tableRestoreStatuses
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus