{-# 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.IoT.ListRoleAliases
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists the role aliases registered in your account.
--
-- Requires permission to access the
-- <https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions ListRoleAliases>
-- action.
--
-- This operation returns paginated results.
module Amazonka.IoT.ListRoleAliases
  ( -- * Creating a Request
    ListRoleAliases (..),
    newListRoleAliases,

    -- * Request Lenses
    listRoleAliases_ascendingOrder,
    listRoleAliases_marker,
    listRoleAliases_pageSize,

    -- * Destructuring the Response
    ListRoleAliasesResponse (..),
    newListRoleAliasesResponse,

    -- * Response Lenses
    listRoleAliasesResponse_nextMarker,
    listRoleAliasesResponse_roleAliases,
    listRoleAliasesResponse_httpStatus,
  )
where

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

-- | /See:/ 'newListRoleAliases' smart constructor.
data ListRoleAliases = ListRoleAliases'
  { -- | Return the list of role aliases in ascending alphabetical order.
    ListRoleAliases -> Maybe Bool
ascendingOrder :: Prelude.Maybe Prelude.Bool,
    -- | A marker used to get the next set of results.
    ListRoleAliases -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of results to return at one time.
    ListRoleAliases -> Maybe Natural
pageSize :: Prelude.Maybe Prelude.Natural
  }
  deriving (ListRoleAliases -> ListRoleAliases -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListRoleAliases -> ListRoleAliases -> Bool
$c/= :: ListRoleAliases -> ListRoleAliases -> Bool
== :: ListRoleAliases -> ListRoleAliases -> Bool
$c== :: ListRoleAliases -> ListRoleAliases -> Bool
Prelude.Eq, ReadPrec [ListRoleAliases]
ReadPrec ListRoleAliases
Int -> ReadS ListRoleAliases
ReadS [ListRoleAliases]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListRoleAliases]
$creadListPrec :: ReadPrec [ListRoleAliases]
readPrec :: ReadPrec ListRoleAliases
$creadPrec :: ReadPrec ListRoleAliases
readList :: ReadS [ListRoleAliases]
$creadList :: ReadS [ListRoleAliases]
readsPrec :: Int -> ReadS ListRoleAliases
$creadsPrec :: Int -> ReadS ListRoleAliases
Prelude.Read, Int -> ListRoleAliases -> ShowS
[ListRoleAliases] -> ShowS
ListRoleAliases -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListRoleAliases] -> ShowS
$cshowList :: [ListRoleAliases] -> ShowS
show :: ListRoleAliases -> String
$cshow :: ListRoleAliases -> String
showsPrec :: Int -> ListRoleAliases -> ShowS
$cshowsPrec :: Int -> ListRoleAliases -> ShowS
Prelude.Show, forall x. Rep ListRoleAliases x -> ListRoleAliases
forall x. ListRoleAliases -> Rep ListRoleAliases x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListRoleAliases x -> ListRoleAliases
$cfrom :: forall x. ListRoleAliases -> Rep ListRoleAliases x
Prelude.Generic)

-- |
-- Create a value of 'ListRoleAliases' 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:
--
-- 'ascendingOrder', 'listRoleAliases_ascendingOrder' - Return the list of role aliases in ascending alphabetical order.
--
-- 'marker', 'listRoleAliases_marker' - A marker used to get the next set of results.
--
-- 'pageSize', 'listRoleAliases_pageSize' - The maximum number of results to return at one time.
newListRoleAliases ::
  ListRoleAliases
newListRoleAliases :: ListRoleAliases
newListRoleAliases =
  ListRoleAliases'
    { $sel:ascendingOrder:ListRoleAliases' :: Maybe Bool
ascendingOrder = forall a. Maybe a
Prelude.Nothing,
      $sel:marker:ListRoleAliases' :: Maybe Text
marker = forall a. Maybe a
Prelude.Nothing,
      $sel:pageSize:ListRoleAliases' :: Maybe Natural
pageSize = forall a. Maybe a
Prelude.Nothing
    }

-- | Return the list of role aliases in ascending alphabetical order.
listRoleAliases_ascendingOrder :: Lens.Lens' ListRoleAliases (Prelude.Maybe Prelude.Bool)
listRoleAliases_ascendingOrder :: Lens' ListRoleAliases (Maybe Bool)
listRoleAliases_ascendingOrder = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRoleAliases' {Maybe Bool
ascendingOrder :: Maybe Bool
$sel:ascendingOrder:ListRoleAliases' :: ListRoleAliases -> Maybe Bool
ascendingOrder} -> Maybe Bool
ascendingOrder) (\s :: ListRoleAliases
s@ListRoleAliases' {} Maybe Bool
a -> ListRoleAliases
s {$sel:ascendingOrder:ListRoleAliases' :: Maybe Bool
ascendingOrder = Maybe Bool
a} :: ListRoleAliases)

-- | A marker used to get the next set of results.
listRoleAliases_marker :: Lens.Lens' ListRoleAliases (Prelude.Maybe Prelude.Text)
listRoleAliases_marker :: Lens' ListRoleAliases (Maybe Text)
listRoleAliases_marker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRoleAliases' {Maybe Text
marker :: Maybe Text
$sel:marker:ListRoleAliases' :: ListRoleAliases -> Maybe Text
marker} -> Maybe Text
marker) (\s :: ListRoleAliases
s@ListRoleAliases' {} Maybe Text
a -> ListRoleAliases
s {$sel:marker:ListRoleAliases' :: Maybe Text
marker = Maybe Text
a} :: ListRoleAliases)

-- | The maximum number of results to return at one time.
listRoleAliases_pageSize :: Lens.Lens' ListRoleAliases (Prelude.Maybe Prelude.Natural)
listRoleAliases_pageSize :: Lens' ListRoleAliases (Maybe Natural)
listRoleAliases_pageSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRoleAliases' {Maybe Natural
pageSize :: Maybe Natural
$sel:pageSize:ListRoleAliases' :: ListRoleAliases -> Maybe Natural
pageSize} -> Maybe Natural
pageSize) (\s :: ListRoleAliases
s@ListRoleAliases' {} Maybe Natural
a -> ListRoleAliases
s {$sel:pageSize:ListRoleAliases' :: Maybe Natural
pageSize = Maybe Natural
a} :: ListRoleAliases)

instance Core.AWSPager ListRoleAliases where
  page :: ListRoleAliases
-> AWSResponse ListRoleAliases -> Maybe ListRoleAliases
page ListRoleAliases
rq AWSResponse ListRoleAliases
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListRoleAliases
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListRoleAliasesResponse (Maybe Text)
listRoleAliasesResponse_nextMarker
            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 ListRoleAliases
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListRoleAliasesResponse (Maybe [Text])
listRoleAliasesResponse_roleAliases
            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.$ ListRoleAliases
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListRoleAliases (Maybe Text)
listRoleAliases_marker
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListRoleAliases
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListRoleAliasesResponse (Maybe Text)
listRoleAliasesResponse_nextMarker
          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 ListRoleAliases where
  type
    AWSResponse ListRoleAliases =
      ListRoleAliasesResponse
  request :: (Service -> Service) -> ListRoleAliases -> Request ListRoleAliases
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 ListRoleAliases
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse ListRoleAliases)))
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 [Text] -> Int -> ListRoleAliasesResponse
ListRoleAliasesResponse'
            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
"nextMarker")
            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
"roleAliases" 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 ListRoleAliases where
  hashWithSalt :: Int -> ListRoleAliases -> Int
hashWithSalt Int
_salt ListRoleAliases' {Maybe Bool
Maybe Natural
Maybe Text
pageSize :: Maybe Natural
marker :: Maybe Text
ascendingOrder :: Maybe Bool
$sel:pageSize:ListRoleAliases' :: ListRoleAliases -> Maybe Natural
$sel:marker:ListRoleAliases' :: ListRoleAliases -> Maybe Text
$sel:ascendingOrder:ListRoleAliases' :: ListRoleAliases -> Maybe Bool
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
ascendingOrder
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
marker
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
pageSize

instance Prelude.NFData ListRoleAliases where
  rnf :: ListRoleAliases -> ()
rnf ListRoleAliases' {Maybe Bool
Maybe Natural
Maybe Text
pageSize :: Maybe Natural
marker :: Maybe Text
ascendingOrder :: Maybe Bool
$sel:pageSize:ListRoleAliases' :: ListRoleAliases -> Maybe Natural
$sel:marker:ListRoleAliases' :: ListRoleAliases -> Maybe Text
$sel:ascendingOrder:ListRoleAliases' :: ListRoleAliases -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
ascendingOrder
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
marker
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
pageSize

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

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

instance Data.ToQuery ListRoleAliases where
  toQuery :: ListRoleAliases -> QueryString
toQuery ListRoleAliases' {Maybe Bool
Maybe Natural
Maybe Text
pageSize :: Maybe Natural
marker :: Maybe Text
ascendingOrder :: Maybe Bool
$sel:pageSize:ListRoleAliases' :: ListRoleAliases -> Maybe Natural
$sel:marker:ListRoleAliases' :: ListRoleAliases -> Maybe Text
$sel:ascendingOrder:ListRoleAliases' :: ListRoleAliases -> Maybe Bool
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"isAscendingOrder" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
ascendingOrder,
        ByteString
"marker" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
marker,
        ByteString
"pageSize" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
pageSize
      ]

-- | /See:/ 'newListRoleAliasesResponse' smart constructor.
data ListRoleAliasesResponse = ListRoleAliasesResponse'
  { -- | A marker used to get the next set of results.
    ListRoleAliasesResponse -> Maybe Text
nextMarker :: Prelude.Maybe Prelude.Text,
    -- | The role aliases.
    ListRoleAliasesResponse -> Maybe [Text]
roleAliases :: Prelude.Maybe [Prelude.Text],
    -- | The response's http status code.
    ListRoleAliasesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListRoleAliasesResponse -> ListRoleAliasesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListRoleAliasesResponse -> ListRoleAliasesResponse -> Bool
$c/= :: ListRoleAliasesResponse -> ListRoleAliasesResponse -> Bool
== :: ListRoleAliasesResponse -> ListRoleAliasesResponse -> Bool
$c== :: ListRoleAliasesResponse -> ListRoleAliasesResponse -> Bool
Prelude.Eq, ReadPrec [ListRoleAliasesResponse]
ReadPrec ListRoleAliasesResponse
Int -> ReadS ListRoleAliasesResponse
ReadS [ListRoleAliasesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListRoleAliasesResponse]
$creadListPrec :: ReadPrec [ListRoleAliasesResponse]
readPrec :: ReadPrec ListRoleAliasesResponse
$creadPrec :: ReadPrec ListRoleAliasesResponse
readList :: ReadS [ListRoleAliasesResponse]
$creadList :: ReadS [ListRoleAliasesResponse]
readsPrec :: Int -> ReadS ListRoleAliasesResponse
$creadsPrec :: Int -> ReadS ListRoleAliasesResponse
Prelude.Read, Int -> ListRoleAliasesResponse -> ShowS
[ListRoleAliasesResponse] -> ShowS
ListRoleAliasesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListRoleAliasesResponse] -> ShowS
$cshowList :: [ListRoleAliasesResponse] -> ShowS
show :: ListRoleAliasesResponse -> String
$cshow :: ListRoleAliasesResponse -> String
showsPrec :: Int -> ListRoleAliasesResponse -> ShowS
$cshowsPrec :: Int -> ListRoleAliasesResponse -> ShowS
Prelude.Show, forall x. Rep ListRoleAliasesResponse x -> ListRoleAliasesResponse
forall x. ListRoleAliasesResponse -> Rep ListRoleAliasesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListRoleAliasesResponse x -> ListRoleAliasesResponse
$cfrom :: forall x. ListRoleAliasesResponse -> Rep ListRoleAliasesResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListRoleAliasesResponse' 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:
--
-- 'nextMarker', 'listRoleAliasesResponse_nextMarker' - A marker used to get the next set of results.
--
-- 'roleAliases', 'listRoleAliasesResponse_roleAliases' - The role aliases.
--
-- 'httpStatus', 'listRoleAliasesResponse_httpStatus' - The response's http status code.
newListRoleAliasesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListRoleAliasesResponse
newListRoleAliasesResponse :: Int -> ListRoleAliasesResponse
newListRoleAliasesResponse Int
pHttpStatus_ =
  ListRoleAliasesResponse'
    { $sel:nextMarker:ListRoleAliasesResponse' :: Maybe Text
nextMarker =
        forall a. Maybe a
Prelude.Nothing,
      $sel:roleAliases:ListRoleAliasesResponse' :: Maybe [Text]
roleAliases = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListRoleAliasesResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A marker used to get the next set of results.
listRoleAliasesResponse_nextMarker :: Lens.Lens' ListRoleAliasesResponse (Prelude.Maybe Prelude.Text)
listRoleAliasesResponse_nextMarker :: Lens' ListRoleAliasesResponse (Maybe Text)
listRoleAliasesResponse_nextMarker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRoleAliasesResponse' {Maybe Text
nextMarker :: Maybe Text
$sel:nextMarker:ListRoleAliasesResponse' :: ListRoleAliasesResponse -> Maybe Text
nextMarker} -> Maybe Text
nextMarker) (\s :: ListRoleAliasesResponse
s@ListRoleAliasesResponse' {} Maybe Text
a -> ListRoleAliasesResponse
s {$sel:nextMarker:ListRoleAliasesResponse' :: Maybe Text
nextMarker = Maybe Text
a} :: ListRoleAliasesResponse)

-- | The role aliases.
listRoleAliasesResponse_roleAliases :: Lens.Lens' ListRoleAliasesResponse (Prelude.Maybe [Prelude.Text])
listRoleAliasesResponse_roleAliases :: Lens' ListRoleAliasesResponse (Maybe [Text])
listRoleAliasesResponse_roleAliases = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRoleAliasesResponse' {Maybe [Text]
roleAliases :: Maybe [Text]
$sel:roleAliases:ListRoleAliasesResponse' :: ListRoleAliasesResponse -> Maybe [Text]
roleAliases} -> Maybe [Text]
roleAliases) (\s :: ListRoleAliasesResponse
s@ListRoleAliasesResponse' {} Maybe [Text]
a -> ListRoleAliasesResponse
s {$sel:roleAliases:ListRoleAliasesResponse' :: Maybe [Text]
roleAliases = Maybe [Text]
a} :: ListRoleAliasesResponse) 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.
listRoleAliasesResponse_httpStatus :: Lens.Lens' ListRoleAliasesResponse Prelude.Int
listRoleAliasesResponse_httpStatus :: Lens' ListRoleAliasesResponse Int
listRoleAliasesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRoleAliasesResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListRoleAliasesResponse' :: ListRoleAliasesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListRoleAliasesResponse
s@ListRoleAliasesResponse' {} Int
a -> ListRoleAliasesResponse
s {$sel:httpStatus:ListRoleAliasesResponse' :: Int
httpStatus = Int
a} :: ListRoleAliasesResponse)

instance Prelude.NFData ListRoleAliasesResponse where
  rnf :: ListRoleAliasesResponse -> ()
rnf ListRoleAliasesResponse' {Int
Maybe [Text]
Maybe Text
httpStatus :: Int
roleAliases :: Maybe [Text]
nextMarker :: Maybe Text
$sel:httpStatus:ListRoleAliasesResponse' :: ListRoleAliasesResponse -> Int
$sel:roleAliases:ListRoleAliasesResponse' :: ListRoleAliasesResponse -> Maybe [Text]
$sel:nextMarker:ListRoleAliasesResponse' :: ListRoleAliasesResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextMarker
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
roleAliases
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus