{-# 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.IVS.GetStream
(
GetStream (..),
newGetStream,
getStream_channelArn,
GetStreamResponse (..),
newGetStreamResponse,
getStreamResponse_stream,
getStreamResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IVS.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetStream = GetStream'
{
GetStream -> Text
channelArn :: Prelude.Text
}
deriving (GetStream -> GetStream -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetStream -> GetStream -> Bool
$c/= :: GetStream -> GetStream -> Bool
== :: GetStream -> GetStream -> Bool
$c== :: GetStream -> GetStream -> Bool
Prelude.Eq, ReadPrec [GetStream]
ReadPrec GetStream
Int -> ReadS GetStream
ReadS [GetStream]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetStream]
$creadListPrec :: ReadPrec [GetStream]
readPrec :: ReadPrec GetStream
$creadPrec :: ReadPrec GetStream
readList :: ReadS [GetStream]
$creadList :: ReadS [GetStream]
readsPrec :: Int -> ReadS GetStream
$creadsPrec :: Int -> ReadS GetStream
Prelude.Read, Int -> GetStream -> ShowS
[GetStream] -> ShowS
GetStream -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetStream] -> ShowS
$cshowList :: [GetStream] -> ShowS
show :: GetStream -> String
$cshow :: GetStream -> String
showsPrec :: Int -> GetStream -> ShowS
$cshowsPrec :: Int -> GetStream -> ShowS
Prelude.Show, forall x. Rep GetStream x -> GetStream
forall x. GetStream -> Rep GetStream x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetStream x -> GetStream
$cfrom :: forall x. GetStream -> Rep GetStream x
Prelude.Generic)
newGetStream ::
Prelude.Text ->
GetStream
newGetStream :: Text -> GetStream
newGetStream Text
pChannelArn_ =
GetStream' {$sel:channelArn:GetStream' :: Text
channelArn = Text
pChannelArn_}
getStream_channelArn :: Lens.Lens' GetStream Prelude.Text
getStream_channelArn :: Lens' GetStream Text
getStream_channelArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStream' {Text
channelArn :: Text
$sel:channelArn:GetStream' :: GetStream -> Text
channelArn} -> Text
channelArn) (\s :: GetStream
s@GetStream' {} Text
a -> GetStream
s {$sel:channelArn:GetStream' :: Text
channelArn = Text
a} :: GetStream)
instance Core.AWSRequest GetStream where
type AWSResponse GetStream = GetStreamResponse
request :: (Service -> Service) -> GetStream -> Request GetStream
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 GetStream
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetStream)))
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 Stream -> Int -> GetStreamResponse
GetStreamResponse'
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
"stream")
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 GetStream where
hashWithSalt :: Int -> GetStream -> Int
hashWithSalt Int
_salt GetStream' {Text
channelArn :: Text
$sel:channelArn:GetStream' :: GetStream -> Text
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
channelArn
instance Prelude.NFData GetStream where
rnf :: GetStream -> ()
rnf GetStream' {Text
channelArn :: Text
$sel:channelArn:GetStream' :: GetStream -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
channelArn
instance Data.ToHeaders GetStream where
toHeaders :: GetStream -> 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.ToJSON GetStream where
toJSON :: GetStream -> Value
toJSON GetStream' {Text
channelArn :: Text
$sel:channelArn:GetStream' :: GetStream -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[forall a. a -> Maybe a
Prelude.Just (Key
"channelArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
channelArn)]
)
instance Data.ToPath GetStream where
toPath :: GetStream -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/GetStream"
instance Data.ToQuery GetStream where
toQuery :: GetStream -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetStreamResponse = GetStreamResponse'
{ GetStreamResponse -> Maybe Stream
stream :: Prelude.Maybe Stream,
GetStreamResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetStreamResponse -> GetStreamResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetStreamResponse -> GetStreamResponse -> Bool
$c/= :: GetStreamResponse -> GetStreamResponse -> Bool
== :: GetStreamResponse -> GetStreamResponse -> Bool
$c== :: GetStreamResponse -> GetStreamResponse -> Bool
Prelude.Eq, ReadPrec [GetStreamResponse]
ReadPrec GetStreamResponse
Int -> ReadS GetStreamResponse
ReadS [GetStreamResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetStreamResponse]
$creadListPrec :: ReadPrec [GetStreamResponse]
readPrec :: ReadPrec GetStreamResponse
$creadPrec :: ReadPrec GetStreamResponse
readList :: ReadS [GetStreamResponse]
$creadList :: ReadS [GetStreamResponse]
readsPrec :: Int -> ReadS GetStreamResponse
$creadsPrec :: Int -> ReadS GetStreamResponse
Prelude.Read, Int -> GetStreamResponse -> ShowS
[GetStreamResponse] -> ShowS
GetStreamResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetStreamResponse] -> ShowS
$cshowList :: [GetStreamResponse] -> ShowS
show :: GetStreamResponse -> String
$cshow :: GetStreamResponse -> String
showsPrec :: Int -> GetStreamResponse -> ShowS
$cshowsPrec :: Int -> GetStreamResponse -> ShowS
Prelude.Show, forall x. Rep GetStreamResponse x -> GetStreamResponse
forall x. GetStreamResponse -> Rep GetStreamResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetStreamResponse x -> GetStreamResponse
$cfrom :: forall x. GetStreamResponse -> Rep GetStreamResponse x
Prelude.Generic)
newGetStreamResponse ::
Prelude.Int ->
GetStreamResponse
newGetStreamResponse :: Int -> GetStreamResponse
newGetStreamResponse Int
pHttpStatus_ =
GetStreamResponse'
{ $sel:stream:GetStreamResponse' :: Maybe Stream
stream = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetStreamResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getStreamResponse_stream :: Lens.Lens' GetStreamResponse (Prelude.Maybe Stream)
getStreamResponse_stream :: Lens' GetStreamResponse (Maybe Stream)
getStreamResponse_stream = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStreamResponse' {Maybe Stream
stream :: Maybe Stream
$sel:stream:GetStreamResponse' :: GetStreamResponse -> Maybe Stream
stream} -> Maybe Stream
stream) (\s :: GetStreamResponse
s@GetStreamResponse' {} Maybe Stream
a -> GetStreamResponse
s {$sel:stream:GetStreamResponse' :: Maybe Stream
stream = Maybe Stream
a} :: GetStreamResponse)
getStreamResponse_httpStatus :: Lens.Lens' GetStreamResponse Prelude.Int
getStreamResponse_httpStatus :: Lens' GetStreamResponse Int
getStreamResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStreamResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetStreamResponse' :: GetStreamResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetStreamResponse
s@GetStreamResponse' {} Int
a -> GetStreamResponse
s {$sel:httpStatus:GetStreamResponse' :: Int
httpStatus = Int
a} :: GetStreamResponse)
instance Prelude.NFData GetStreamResponse where
rnf :: GetStreamResponse -> ()
rnf GetStreamResponse' {Int
Maybe Stream
httpStatus :: Int
stream :: Maybe Stream
$sel:httpStatus:GetStreamResponse' :: GetStreamResponse -> Int
$sel:stream:GetStreamResponse' :: GetStreamResponse -> Maybe Stream
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Stream
stream
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus