{-# 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.ELB.DeregisterInstancesFromLoadBalancer
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Deregisters the specified instances from the specified load balancer.
-- After the instance is deregistered, it no longer receives traffic from
-- the load balancer.
--
-- You can use DescribeLoadBalancers to verify that the instance is
-- deregistered from the load balancer.
--
-- For more information, see
-- <https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-deregister-register-instances.html Register or De-Register EC2 Instances>
-- in the /Classic Load Balancers Guide/.
module Amazonka.ELB.DeregisterInstancesFromLoadBalancer
  ( -- * Creating a Request
    DeregisterInstancesFromLoadBalancer (..),
    newDeregisterInstancesFromLoadBalancer,

    -- * Request Lenses
    deregisterInstancesFromLoadBalancer_loadBalancerName,
    deregisterInstancesFromLoadBalancer_instances,

    -- * Destructuring the Response
    DeregisterInstancesFromLoadBalancerResponse (..),
    newDeregisterInstancesFromLoadBalancerResponse,

    -- * Response Lenses
    deregisterInstancesFromLoadBalancerResponse_instances,
    deregisterInstancesFromLoadBalancerResponse_httpStatus,
  )
where

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

-- | Contains the parameters for DeregisterInstancesFromLoadBalancer.
--
-- /See:/ 'newDeregisterInstancesFromLoadBalancer' smart constructor.
data DeregisterInstancesFromLoadBalancer = DeregisterInstancesFromLoadBalancer'
  { -- | The name of the load balancer.
    DeregisterInstancesFromLoadBalancer -> Text
loadBalancerName :: Prelude.Text,
    -- | The IDs of the instances.
    DeregisterInstancesFromLoadBalancer -> [Instance]
instances :: [Instance]
  }
  deriving (DeregisterInstancesFromLoadBalancer
-> DeregisterInstancesFromLoadBalancer -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeregisterInstancesFromLoadBalancer
-> DeregisterInstancesFromLoadBalancer -> Bool
$c/= :: DeregisterInstancesFromLoadBalancer
-> DeregisterInstancesFromLoadBalancer -> Bool
== :: DeregisterInstancesFromLoadBalancer
-> DeregisterInstancesFromLoadBalancer -> Bool
$c== :: DeregisterInstancesFromLoadBalancer
-> DeregisterInstancesFromLoadBalancer -> Bool
Prelude.Eq, ReadPrec [DeregisterInstancesFromLoadBalancer]
ReadPrec DeregisterInstancesFromLoadBalancer
Int -> ReadS DeregisterInstancesFromLoadBalancer
ReadS [DeregisterInstancesFromLoadBalancer]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeregisterInstancesFromLoadBalancer]
$creadListPrec :: ReadPrec [DeregisterInstancesFromLoadBalancer]
readPrec :: ReadPrec DeregisterInstancesFromLoadBalancer
$creadPrec :: ReadPrec DeregisterInstancesFromLoadBalancer
readList :: ReadS [DeregisterInstancesFromLoadBalancer]
$creadList :: ReadS [DeregisterInstancesFromLoadBalancer]
readsPrec :: Int -> ReadS DeregisterInstancesFromLoadBalancer
$creadsPrec :: Int -> ReadS DeregisterInstancesFromLoadBalancer
Prelude.Read, Int -> DeregisterInstancesFromLoadBalancer -> ShowS
[DeregisterInstancesFromLoadBalancer] -> ShowS
DeregisterInstancesFromLoadBalancer -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeregisterInstancesFromLoadBalancer] -> ShowS
$cshowList :: [DeregisterInstancesFromLoadBalancer] -> ShowS
show :: DeregisterInstancesFromLoadBalancer -> String
$cshow :: DeregisterInstancesFromLoadBalancer -> String
showsPrec :: Int -> DeregisterInstancesFromLoadBalancer -> ShowS
$cshowsPrec :: Int -> DeregisterInstancesFromLoadBalancer -> ShowS
Prelude.Show, forall x.
Rep DeregisterInstancesFromLoadBalancer x
-> DeregisterInstancesFromLoadBalancer
forall x.
DeregisterInstancesFromLoadBalancer
-> Rep DeregisterInstancesFromLoadBalancer x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeregisterInstancesFromLoadBalancer x
-> DeregisterInstancesFromLoadBalancer
$cfrom :: forall x.
DeregisterInstancesFromLoadBalancer
-> Rep DeregisterInstancesFromLoadBalancer x
Prelude.Generic)

-- |
-- Create a value of 'DeregisterInstancesFromLoadBalancer' 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:
--
-- 'loadBalancerName', 'deregisterInstancesFromLoadBalancer_loadBalancerName' - The name of the load balancer.
--
-- 'instances', 'deregisterInstancesFromLoadBalancer_instances' - The IDs of the instances.
newDeregisterInstancesFromLoadBalancer ::
  -- | 'loadBalancerName'
  Prelude.Text ->
  DeregisterInstancesFromLoadBalancer
newDeregisterInstancesFromLoadBalancer :: Text -> DeregisterInstancesFromLoadBalancer
newDeregisterInstancesFromLoadBalancer
  Text
pLoadBalancerName_ =
    DeregisterInstancesFromLoadBalancer'
      { $sel:loadBalancerName:DeregisterInstancesFromLoadBalancer' :: Text
loadBalancerName =
          Text
pLoadBalancerName_,
        $sel:instances:DeregisterInstancesFromLoadBalancer' :: [Instance]
instances = forall a. Monoid a => a
Prelude.mempty
      }

-- | The name of the load balancer.
deregisterInstancesFromLoadBalancer_loadBalancerName :: Lens.Lens' DeregisterInstancesFromLoadBalancer Prelude.Text
deregisterInstancesFromLoadBalancer_loadBalancerName :: Lens' DeregisterInstancesFromLoadBalancer Text
deregisterInstancesFromLoadBalancer_loadBalancerName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeregisterInstancesFromLoadBalancer' {Text
loadBalancerName :: Text
$sel:loadBalancerName:DeregisterInstancesFromLoadBalancer' :: DeregisterInstancesFromLoadBalancer -> Text
loadBalancerName} -> Text
loadBalancerName) (\s :: DeregisterInstancesFromLoadBalancer
s@DeregisterInstancesFromLoadBalancer' {} Text
a -> DeregisterInstancesFromLoadBalancer
s {$sel:loadBalancerName:DeregisterInstancesFromLoadBalancer' :: Text
loadBalancerName = Text
a} :: DeregisterInstancesFromLoadBalancer)

-- | The IDs of the instances.
deregisterInstancesFromLoadBalancer_instances :: Lens.Lens' DeregisterInstancesFromLoadBalancer [Instance]
deregisterInstancesFromLoadBalancer_instances :: Lens' DeregisterInstancesFromLoadBalancer [Instance]
deregisterInstancesFromLoadBalancer_instances = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeregisterInstancesFromLoadBalancer' {[Instance]
instances :: [Instance]
$sel:instances:DeregisterInstancesFromLoadBalancer' :: DeregisterInstancesFromLoadBalancer -> [Instance]
instances} -> [Instance]
instances) (\s :: DeregisterInstancesFromLoadBalancer
s@DeregisterInstancesFromLoadBalancer' {} [Instance]
a -> DeregisterInstancesFromLoadBalancer
s {$sel:instances:DeregisterInstancesFromLoadBalancer' :: [Instance]
instances = [Instance]
a} :: DeregisterInstancesFromLoadBalancer) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance
  Core.AWSRequest
    DeregisterInstancesFromLoadBalancer
  where
  type
    AWSResponse DeregisterInstancesFromLoadBalancer =
      DeregisterInstancesFromLoadBalancerResponse
  request :: (Service -> Service)
-> DeregisterInstancesFromLoadBalancer
-> Request DeregisterInstancesFromLoadBalancer
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 DeregisterInstancesFromLoadBalancer
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DeregisterInstancesFromLoadBalancer)))
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
"DeregisterInstancesFromLoadBalancerResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe [Instance]
-> Int -> DeregisterInstancesFromLoadBalancerResponse
DeregisterInstancesFromLoadBalancerResponse'
            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
"Instances"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            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
    DeregisterInstancesFromLoadBalancer
  where
  hashWithSalt :: Int -> DeregisterInstancesFromLoadBalancer -> Int
hashWithSalt
    Int
_salt
    DeregisterInstancesFromLoadBalancer' {[Instance]
Text
instances :: [Instance]
loadBalancerName :: Text
$sel:instances:DeregisterInstancesFromLoadBalancer' :: DeregisterInstancesFromLoadBalancer -> [Instance]
$sel:loadBalancerName:DeregisterInstancesFromLoadBalancer' :: DeregisterInstancesFromLoadBalancer -> Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
loadBalancerName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [Instance]
instances

instance
  Prelude.NFData
    DeregisterInstancesFromLoadBalancer
  where
  rnf :: DeregisterInstancesFromLoadBalancer -> ()
rnf DeregisterInstancesFromLoadBalancer' {[Instance]
Text
instances :: [Instance]
loadBalancerName :: Text
$sel:instances:DeregisterInstancesFromLoadBalancer' :: DeregisterInstancesFromLoadBalancer -> [Instance]
$sel:loadBalancerName:DeregisterInstancesFromLoadBalancer' :: DeregisterInstancesFromLoadBalancer -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
loadBalancerName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [Instance]
instances

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

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

instance
  Data.ToQuery
    DeregisterInstancesFromLoadBalancer
  where
  toQuery :: DeregisterInstancesFromLoadBalancer -> QueryString
toQuery DeregisterInstancesFromLoadBalancer' {[Instance]
Text
instances :: [Instance]
loadBalancerName :: Text
$sel:instances:DeregisterInstancesFromLoadBalancer' :: DeregisterInstancesFromLoadBalancer -> [Instance]
$sel:loadBalancerName:DeregisterInstancesFromLoadBalancer' :: DeregisterInstancesFromLoadBalancer -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"DeregisterInstancesFromLoadBalancer" ::
                      Prelude.ByteString
                  ),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2012-06-01" :: Prelude.ByteString),
        ByteString
"LoadBalancerName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
loadBalancerName,
        ByteString
"Instances"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"member" [Instance]
instances
      ]

-- | Contains the output of DeregisterInstancesFromLoadBalancer.
--
-- /See:/ 'newDeregisterInstancesFromLoadBalancerResponse' smart constructor.
data DeregisterInstancesFromLoadBalancerResponse = DeregisterInstancesFromLoadBalancerResponse'
  { -- | The remaining instances registered with the load balancer.
    DeregisterInstancesFromLoadBalancerResponse -> Maybe [Instance]
instances :: Prelude.Maybe [Instance],
    -- | The response's http status code.
    DeregisterInstancesFromLoadBalancerResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DeregisterInstancesFromLoadBalancerResponse
-> DeregisterInstancesFromLoadBalancerResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeregisterInstancesFromLoadBalancerResponse
-> DeregisterInstancesFromLoadBalancerResponse -> Bool
$c/= :: DeregisterInstancesFromLoadBalancerResponse
-> DeregisterInstancesFromLoadBalancerResponse -> Bool
== :: DeregisterInstancesFromLoadBalancerResponse
-> DeregisterInstancesFromLoadBalancerResponse -> Bool
$c== :: DeregisterInstancesFromLoadBalancerResponse
-> DeregisterInstancesFromLoadBalancerResponse -> Bool
Prelude.Eq, ReadPrec [DeregisterInstancesFromLoadBalancerResponse]
ReadPrec DeregisterInstancesFromLoadBalancerResponse
Int -> ReadS DeregisterInstancesFromLoadBalancerResponse
ReadS [DeregisterInstancesFromLoadBalancerResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeregisterInstancesFromLoadBalancerResponse]
$creadListPrec :: ReadPrec [DeregisterInstancesFromLoadBalancerResponse]
readPrec :: ReadPrec DeregisterInstancesFromLoadBalancerResponse
$creadPrec :: ReadPrec DeregisterInstancesFromLoadBalancerResponse
readList :: ReadS [DeregisterInstancesFromLoadBalancerResponse]
$creadList :: ReadS [DeregisterInstancesFromLoadBalancerResponse]
readsPrec :: Int -> ReadS DeregisterInstancesFromLoadBalancerResponse
$creadsPrec :: Int -> ReadS DeregisterInstancesFromLoadBalancerResponse
Prelude.Read, Int -> DeregisterInstancesFromLoadBalancerResponse -> ShowS
[DeregisterInstancesFromLoadBalancerResponse] -> ShowS
DeregisterInstancesFromLoadBalancerResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeregisterInstancesFromLoadBalancerResponse] -> ShowS
$cshowList :: [DeregisterInstancesFromLoadBalancerResponse] -> ShowS
show :: DeregisterInstancesFromLoadBalancerResponse -> String
$cshow :: DeregisterInstancesFromLoadBalancerResponse -> String
showsPrec :: Int -> DeregisterInstancesFromLoadBalancerResponse -> ShowS
$cshowsPrec :: Int -> DeregisterInstancesFromLoadBalancerResponse -> ShowS
Prelude.Show, forall x.
Rep DeregisterInstancesFromLoadBalancerResponse x
-> DeregisterInstancesFromLoadBalancerResponse
forall x.
DeregisterInstancesFromLoadBalancerResponse
-> Rep DeregisterInstancesFromLoadBalancerResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeregisterInstancesFromLoadBalancerResponse x
-> DeregisterInstancesFromLoadBalancerResponse
$cfrom :: forall x.
DeregisterInstancesFromLoadBalancerResponse
-> Rep DeregisterInstancesFromLoadBalancerResponse x
Prelude.Generic)

-- |
-- Create a value of 'DeregisterInstancesFromLoadBalancerResponse' 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:
--
-- 'instances', 'deregisterInstancesFromLoadBalancerResponse_instances' - The remaining instances registered with the load balancer.
--
-- 'httpStatus', 'deregisterInstancesFromLoadBalancerResponse_httpStatus' - The response's http status code.
newDeregisterInstancesFromLoadBalancerResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DeregisterInstancesFromLoadBalancerResponse
newDeregisterInstancesFromLoadBalancerResponse :: Int -> DeregisterInstancesFromLoadBalancerResponse
newDeregisterInstancesFromLoadBalancerResponse
  Int
pHttpStatus_ =
    DeregisterInstancesFromLoadBalancerResponse'
      { $sel:instances:DeregisterInstancesFromLoadBalancerResponse' :: Maybe [Instance]
instances =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DeregisterInstancesFromLoadBalancerResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The remaining instances registered with the load balancer.
deregisterInstancesFromLoadBalancerResponse_instances :: Lens.Lens' DeregisterInstancesFromLoadBalancerResponse (Prelude.Maybe [Instance])
deregisterInstancesFromLoadBalancerResponse_instances :: Lens'
  DeregisterInstancesFromLoadBalancerResponse (Maybe [Instance])
deregisterInstancesFromLoadBalancerResponse_instances = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeregisterInstancesFromLoadBalancerResponse' {Maybe [Instance]
instances :: Maybe [Instance]
$sel:instances:DeregisterInstancesFromLoadBalancerResponse' :: DeregisterInstancesFromLoadBalancerResponse -> Maybe [Instance]
instances} -> Maybe [Instance]
instances) (\s :: DeregisterInstancesFromLoadBalancerResponse
s@DeregisterInstancesFromLoadBalancerResponse' {} Maybe [Instance]
a -> DeregisterInstancesFromLoadBalancerResponse
s {$sel:instances:DeregisterInstancesFromLoadBalancerResponse' :: Maybe [Instance]
instances = Maybe [Instance]
a} :: DeregisterInstancesFromLoadBalancerResponse) 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.
deregisterInstancesFromLoadBalancerResponse_httpStatus :: Lens.Lens' DeregisterInstancesFromLoadBalancerResponse Prelude.Int
deregisterInstancesFromLoadBalancerResponse_httpStatus :: Lens' DeregisterInstancesFromLoadBalancerResponse Int
deregisterInstancesFromLoadBalancerResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeregisterInstancesFromLoadBalancerResponse' {Int
httpStatus :: Int
$sel:httpStatus:DeregisterInstancesFromLoadBalancerResponse' :: DeregisterInstancesFromLoadBalancerResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DeregisterInstancesFromLoadBalancerResponse
s@DeregisterInstancesFromLoadBalancerResponse' {} Int
a -> DeregisterInstancesFromLoadBalancerResponse
s {$sel:httpStatus:DeregisterInstancesFromLoadBalancerResponse' :: Int
httpStatus = Int
a} :: DeregisterInstancesFromLoadBalancerResponse)

instance
  Prelude.NFData
    DeregisterInstancesFromLoadBalancerResponse
  where
  rnf :: DeregisterInstancesFromLoadBalancerResponse -> ()
rnf DeregisterInstancesFromLoadBalancerResponse' {Int
Maybe [Instance]
httpStatus :: Int
instances :: Maybe [Instance]
$sel:httpStatus:DeregisterInstancesFromLoadBalancerResponse' :: DeregisterInstancesFromLoadBalancerResponse -> Int
$sel:instances:DeregisterInstancesFromLoadBalancerResponse' :: DeregisterInstancesFromLoadBalancerResponse -> Maybe [Instance]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Instance]
instances
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus