{-# 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 #-}
module Amazonka.Kinesis.RegisterStreamConsumer
(
RegisterStreamConsumer (..),
newRegisterStreamConsumer,
registerStreamConsumer_streamARN,
registerStreamConsumer_consumerName,
RegisterStreamConsumerResponse (..),
newRegisterStreamConsumerResponse,
registerStreamConsumerResponse_httpStatus,
registerStreamConsumerResponse_consumer,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Kinesis.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data RegisterStreamConsumer = RegisterStreamConsumer'
{
RegisterStreamConsumer -> Text
streamARN :: Prelude.Text,
RegisterStreamConsumer -> Text
consumerName :: Prelude.Text
}
deriving (RegisterStreamConsumer -> RegisterStreamConsumer -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RegisterStreamConsumer -> RegisterStreamConsumer -> Bool
$c/= :: RegisterStreamConsumer -> RegisterStreamConsumer -> Bool
== :: RegisterStreamConsumer -> RegisterStreamConsumer -> Bool
$c== :: RegisterStreamConsumer -> RegisterStreamConsumer -> Bool
Prelude.Eq, ReadPrec [RegisterStreamConsumer]
ReadPrec RegisterStreamConsumer
Int -> ReadS RegisterStreamConsumer
ReadS [RegisterStreamConsumer]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [RegisterStreamConsumer]
$creadListPrec :: ReadPrec [RegisterStreamConsumer]
readPrec :: ReadPrec RegisterStreamConsumer
$creadPrec :: ReadPrec RegisterStreamConsumer
readList :: ReadS [RegisterStreamConsumer]
$creadList :: ReadS [RegisterStreamConsumer]
readsPrec :: Int -> ReadS RegisterStreamConsumer
$creadsPrec :: Int -> ReadS RegisterStreamConsumer
Prelude.Read, Int -> RegisterStreamConsumer -> ShowS
[RegisterStreamConsumer] -> ShowS
RegisterStreamConsumer -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RegisterStreamConsumer] -> ShowS
$cshowList :: [RegisterStreamConsumer] -> ShowS
show :: RegisterStreamConsumer -> String
$cshow :: RegisterStreamConsumer -> String
showsPrec :: Int -> RegisterStreamConsumer -> ShowS
$cshowsPrec :: Int -> RegisterStreamConsumer -> ShowS
Prelude.Show, forall x. Rep RegisterStreamConsumer x -> RegisterStreamConsumer
forall x. RegisterStreamConsumer -> Rep RegisterStreamConsumer x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RegisterStreamConsumer x -> RegisterStreamConsumer
$cfrom :: forall x. RegisterStreamConsumer -> Rep RegisterStreamConsumer x
Prelude.Generic)
newRegisterStreamConsumer ::
Prelude.Text ->
Prelude.Text ->
RegisterStreamConsumer
newRegisterStreamConsumer :: Text -> Text -> RegisterStreamConsumer
newRegisterStreamConsumer Text
pStreamARN_ Text
pConsumerName_ =
RegisterStreamConsumer'
{ $sel:streamARN:RegisterStreamConsumer' :: Text
streamARN = Text
pStreamARN_,
$sel:consumerName:RegisterStreamConsumer' :: Text
consumerName = Text
pConsumerName_
}
registerStreamConsumer_streamARN :: Lens.Lens' RegisterStreamConsumer Prelude.Text
registerStreamConsumer_streamARN :: Lens' RegisterStreamConsumer Text
registerStreamConsumer_streamARN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RegisterStreamConsumer' {Text
streamARN :: Text
$sel:streamARN:RegisterStreamConsumer' :: RegisterStreamConsumer -> Text
streamARN} -> Text
streamARN) (\s :: RegisterStreamConsumer
s@RegisterStreamConsumer' {} Text
a -> RegisterStreamConsumer
s {$sel:streamARN:RegisterStreamConsumer' :: Text
streamARN = Text
a} :: RegisterStreamConsumer)
registerStreamConsumer_consumerName :: Lens.Lens' RegisterStreamConsumer Prelude.Text
registerStreamConsumer_consumerName :: Lens' RegisterStreamConsumer Text
registerStreamConsumer_consumerName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RegisterStreamConsumer' {Text
consumerName :: Text
$sel:consumerName:RegisterStreamConsumer' :: RegisterStreamConsumer -> Text
consumerName} -> Text
consumerName) (\s :: RegisterStreamConsumer
s@RegisterStreamConsumer' {} Text
a -> RegisterStreamConsumer
s {$sel:consumerName:RegisterStreamConsumer' :: Text
consumerName = Text
a} :: RegisterStreamConsumer)
instance Core.AWSRequest RegisterStreamConsumer where
type
AWSResponse RegisterStreamConsumer =
RegisterStreamConsumerResponse
request :: (Service -> Service)
-> RegisterStreamConsumer -> Request RegisterStreamConsumer
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 RegisterStreamConsumer
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse RegisterStreamConsumer)))
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 ->
Int -> Consumer -> RegisterStreamConsumerResponse
RegisterStreamConsumerResponse'
forall (f :: * -> *) a b. Functor 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))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"Consumer")
)
instance Prelude.Hashable RegisterStreamConsumer where
hashWithSalt :: Int -> RegisterStreamConsumer -> Int
hashWithSalt Int
_salt RegisterStreamConsumer' {Text
consumerName :: Text
streamARN :: Text
$sel:consumerName:RegisterStreamConsumer' :: RegisterStreamConsumer -> Text
$sel:streamARN:RegisterStreamConsumer' :: RegisterStreamConsumer -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
streamARN
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
consumerName
instance Prelude.NFData RegisterStreamConsumer where
rnf :: RegisterStreamConsumer -> ()
rnf RegisterStreamConsumer' {Text
consumerName :: Text
streamARN :: Text
$sel:consumerName:RegisterStreamConsumer' :: RegisterStreamConsumer -> Text
$sel:streamARN:RegisterStreamConsumer' :: RegisterStreamConsumer -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
streamARN
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
consumerName
instance Data.ToHeaders RegisterStreamConsumer where
toHeaders :: RegisterStreamConsumer -> 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
"Kinesis_20131202.RegisterStreamConsumer" ::
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 RegisterStreamConsumer where
toJSON :: RegisterStreamConsumer -> Value
toJSON RegisterStreamConsumer' {Text
consumerName :: Text
streamARN :: Text
$sel:consumerName:RegisterStreamConsumer' :: RegisterStreamConsumer -> Text
$sel:streamARN:RegisterStreamConsumer' :: RegisterStreamConsumer -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"StreamARN" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
streamARN),
forall a. a -> Maybe a
Prelude.Just (Key
"ConsumerName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
consumerName)
]
)
instance Data.ToPath RegisterStreamConsumer where
toPath :: RegisterStreamConsumer -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery RegisterStreamConsumer where
toQuery :: RegisterStreamConsumer -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data RegisterStreamConsumerResponse = RegisterStreamConsumerResponse'
{
RegisterStreamConsumerResponse -> Int
httpStatus :: Prelude.Int,
RegisterStreamConsumerResponse -> Consumer
consumer :: Consumer
}
deriving (RegisterStreamConsumerResponse
-> RegisterStreamConsumerResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RegisterStreamConsumerResponse
-> RegisterStreamConsumerResponse -> Bool
$c/= :: RegisterStreamConsumerResponse
-> RegisterStreamConsumerResponse -> Bool
== :: RegisterStreamConsumerResponse
-> RegisterStreamConsumerResponse -> Bool
$c== :: RegisterStreamConsumerResponse
-> RegisterStreamConsumerResponse -> Bool
Prelude.Eq, ReadPrec [RegisterStreamConsumerResponse]
ReadPrec RegisterStreamConsumerResponse
Int -> ReadS RegisterStreamConsumerResponse
ReadS [RegisterStreamConsumerResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [RegisterStreamConsumerResponse]
$creadListPrec :: ReadPrec [RegisterStreamConsumerResponse]
readPrec :: ReadPrec RegisterStreamConsumerResponse
$creadPrec :: ReadPrec RegisterStreamConsumerResponse
readList :: ReadS [RegisterStreamConsumerResponse]
$creadList :: ReadS [RegisterStreamConsumerResponse]
readsPrec :: Int -> ReadS RegisterStreamConsumerResponse
$creadsPrec :: Int -> ReadS RegisterStreamConsumerResponse
Prelude.Read, Int -> RegisterStreamConsumerResponse -> ShowS
[RegisterStreamConsumerResponse] -> ShowS
RegisterStreamConsumerResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RegisterStreamConsumerResponse] -> ShowS
$cshowList :: [RegisterStreamConsumerResponse] -> ShowS
show :: RegisterStreamConsumerResponse -> String
$cshow :: RegisterStreamConsumerResponse -> String
showsPrec :: Int -> RegisterStreamConsumerResponse -> ShowS
$cshowsPrec :: Int -> RegisterStreamConsumerResponse -> ShowS
Prelude.Show, forall x.
Rep RegisterStreamConsumerResponse x
-> RegisterStreamConsumerResponse
forall x.
RegisterStreamConsumerResponse
-> Rep RegisterStreamConsumerResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep RegisterStreamConsumerResponse x
-> RegisterStreamConsumerResponse
$cfrom :: forall x.
RegisterStreamConsumerResponse
-> Rep RegisterStreamConsumerResponse x
Prelude.Generic)
newRegisterStreamConsumerResponse ::
Prelude.Int ->
Consumer ->
RegisterStreamConsumerResponse
newRegisterStreamConsumerResponse :: Int -> Consumer -> RegisterStreamConsumerResponse
newRegisterStreamConsumerResponse
Int
pHttpStatus_
Consumer
pConsumer_ =
RegisterStreamConsumerResponse'
{ $sel:httpStatus:RegisterStreamConsumerResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:consumer:RegisterStreamConsumerResponse' :: Consumer
consumer = Consumer
pConsumer_
}
registerStreamConsumerResponse_httpStatus :: Lens.Lens' RegisterStreamConsumerResponse Prelude.Int
registerStreamConsumerResponse_httpStatus :: Lens' RegisterStreamConsumerResponse Int
registerStreamConsumerResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RegisterStreamConsumerResponse' {Int
httpStatus :: Int
$sel:httpStatus:RegisterStreamConsumerResponse' :: RegisterStreamConsumerResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: RegisterStreamConsumerResponse
s@RegisterStreamConsumerResponse' {} Int
a -> RegisterStreamConsumerResponse
s {$sel:httpStatus:RegisterStreamConsumerResponse' :: Int
httpStatus = Int
a} :: RegisterStreamConsumerResponse)
registerStreamConsumerResponse_consumer :: Lens.Lens' RegisterStreamConsumerResponse Consumer
registerStreamConsumerResponse_consumer :: Lens' RegisterStreamConsumerResponse Consumer
registerStreamConsumerResponse_consumer = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RegisterStreamConsumerResponse' {Consumer
consumer :: Consumer
$sel:consumer:RegisterStreamConsumerResponse' :: RegisterStreamConsumerResponse -> Consumer
consumer} -> Consumer
consumer) (\s :: RegisterStreamConsumerResponse
s@RegisterStreamConsumerResponse' {} Consumer
a -> RegisterStreamConsumerResponse
s {$sel:consumer:RegisterStreamConsumerResponse' :: Consumer
consumer = Consumer
a} :: RegisterStreamConsumerResponse)
instance
Prelude.NFData
RegisterStreamConsumerResponse
where
rnf :: RegisterStreamConsumerResponse -> ()
rnf RegisterStreamConsumerResponse' {Int
Consumer
consumer :: Consumer
httpStatus :: Int
$sel:consumer:RegisterStreamConsumerResponse' :: RegisterStreamConsumerResponse -> Consumer
$sel:httpStatus:RegisterStreamConsumerResponse' :: RegisterStreamConsumerResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Consumer
consumer