{-# 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.GetStreamSession
(
GetStreamSession (..),
newGetStreamSession,
getStreamSession_streamId,
getStreamSession_channelArn,
GetStreamSessionResponse (..),
newGetStreamSessionResponse,
getStreamSessionResponse_streamSession,
getStreamSessionResponse_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 GetStreamSession = GetStreamSession'
{
GetStreamSession -> Maybe Text
streamId :: Prelude.Maybe Prelude.Text,
GetStreamSession -> Text
channelArn :: Prelude.Text
}
deriving (GetStreamSession -> GetStreamSession -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetStreamSession -> GetStreamSession -> Bool
$c/= :: GetStreamSession -> GetStreamSession -> Bool
== :: GetStreamSession -> GetStreamSession -> Bool
$c== :: GetStreamSession -> GetStreamSession -> Bool
Prelude.Eq, ReadPrec [GetStreamSession]
ReadPrec GetStreamSession
Int -> ReadS GetStreamSession
ReadS [GetStreamSession]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetStreamSession]
$creadListPrec :: ReadPrec [GetStreamSession]
readPrec :: ReadPrec GetStreamSession
$creadPrec :: ReadPrec GetStreamSession
readList :: ReadS [GetStreamSession]
$creadList :: ReadS [GetStreamSession]
readsPrec :: Int -> ReadS GetStreamSession
$creadsPrec :: Int -> ReadS GetStreamSession
Prelude.Read, Int -> GetStreamSession -> ShowS
[GetStreamSession] -> ShowS
GetStreamSession -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetStreamSession] -> ShowS
$cshowList :: [GetStreamSession] -> ShowS
show :: GetStreamSession -> String
$cshow :: GetStreamSession -> String
showsPrec :: Int -> GetStreamSession -> ShowS
$cshowsPrec :: Int -> GetStreamSession -> ShowS
Prelude.Show, forall x. Rep GetStreamSession x -> GetStreamSession
forall x. GetStreamSession -> Rep GetStreamSession x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetStreamSession x -> GetStreamSession
$cfrom :: forall x. GetStreamSession -> Rep GetStreamSession x
Prelude.Generic)
newGetStreamSession ::
Prelude.Text ->
GetStreamSession
newGetStreamSession :: Text -> GetStreamSession
newGetStreamSession Text
pChannelArn_ =
GetStreamSession'
{ $sel:streamId:GetStreamSession' :: Maybe Text
streamId = forall a. Maybe a
Prelude.Nothing,
$sel:channelArn:GetStreamSession' :: Text
channelArn = Text
pChannelArn_
}
getStreamSession_streamId :: Lens.Lens' GetStreamSession (Prelude.Maybe Prelude.Text)
getStreamSession_streamId :: Lens' GetStreamSession (Maybe Text)
getStreamSession_streamId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStreamSession' {Maybe Text
streamId :: Maybe Text
$sel:streamId:GetStreamSession' :: GetStreamSession -> Maybe Text
streamId} -> Maybe Text
streamId) (\s :: GetStreamSession
s@GetStreamSession' {} Maybe Text
a -> GetStreamSession
s {$sel:streamId:GetStreamSession' :: Maybe Text
streamId = Maybe Text
a} :: GetStreamSession)
getStreamSession_channelArn :: Lens.Lens' GetStreamSession Prelude.Text
getStreamSession_channelArn :: Lens' GetStreamSession Text
getStreamSession_channelArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStreamSession' {Text
channelArn :: Text
$sel:channelArn:GetStreamSession' :: GetStreamSession -> Text
channelArn} -> Text
channelArn) (\s :: GetStreamSession
s@GetStreamSession' {} Text
a -> GetStreamSession
s {$sel:channelArn:GetStreamSession' :: Text
channelArn = Text
a} :: GetStreamSession)
instance Core.AWSRequest GetStreamSession where
type
AWSResponse GetStreamSession =
GetStreamSessionResponse
request :: (Service -> Service)
-> GetStreamSession -> Request GetStreamSession
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 GetStreamSession
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetStreamSession)))
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 StreamSession -> Int -> GetStreamSessionResponse
GetStreamSessionResponse'
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
"streamSession")
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 GetStreamSession where
hashWithSalt :: Int -> GetStreamSession -> Int
hashWithSalt Int
_salt GetStreamSession' {Maybe Text
Text
channelArn :: Text
streamId :: Maybe Text
$sel:channelArn:GetStreamSession' :: GetStreamSession -> Text
$sel:streamId:GetStreamSession' :: GetStreamSession -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
streamId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
channelArn
instance Prelude.NFData GetStreamSession where
rnf :: GetStreamSession -> ()
rnf GetStreamSession' {Maybe Text
Text
channelArn :: Text
streamId :: Maybe Text
$sel:channelArn:GetStreamSession' :: GetStreamSession -> Text
$sel:streamId:GetStreamSession' :: GetStreamSession -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
streamId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
channelArn
instance Data.ToHeaders GetStreamSession where
toHeaders :: GetStreamSession -> 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 GetStreamSession where
toJSON :: GetStreamSession -> Value
toJSON GetStreamSession' {Maybe Text
Text
channelArn :: Text
streamId :: Maybe Text
$sel:channelArn:GetStreamSession' :: GetStreamSession -> Text
$sel:streamId:GetStreamSession' :: GetStreamSession -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"streamId" 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
streamId,
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 GetStreamSession where
toPath :: GetStreamSession -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/GetStreamSession"
instance Data.ToQuery GetStreamSession where
toQuery :: GetStreamSession -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetStreamSessionResponse = GetStreamSessionResponse'
{
GetStreamSessionResponse -> Maybe StreamSession
streamSession :: Prelude.Maybe StreamSession,
GetStreamSessionResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetStreamSessionResponse -> GetStreamSessionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetStreamSessionResponse -> GetStreamSessionResponse -> Bool
$c/= :: GetStreamSessionResponse -> GetStreamSessionResponse -> Bool
== :: GetStreamSessionResponse -> GetStreamSessionResponse -> Bool
$c== :: GetStreamSessionResponse -> GetStreamSessionResponse -> Bool
Prelude.Eq, ReadPrec [GetStreamSessionResponse]
ReadPrec GetStreamSessionResponse
Int -> ReadS GetStreamSessionResponse
ReadS [GetStreamSessionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetStreamSessionResponse]
$creadListPrec :: ReadPrec [GetStreamSessionResponse]
readPrec :: ReadPrec GetStreamSessionResponse
$creadPrec :: ReadPrec GetStreamSessionResponse
readList :: ReadS [GetStreamSessionResponse]
$creadList :: ReadS [GetStreamSessionResponse]
readsPrec :: Int -> ReadS GetStreamSessionResponse
$creadsPrec :: Int -> ReadS GetStreamSessionResponse
Prelude.Read, Int -> GetStreamSessionResponse -> ShowS
[GetStreamSessionResponse] -> ShowS
GetStreamSessionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetStreamSessionResponse] -> ShowS
$cshowList :: [GetStreamSessionResponse] -> ShowS
show :: GetStreamSessionResponse -> String
$cshow :: GetStreamSessionResponse -> String
showsPrec :: Int -> GetStreamSessionResponse -> ShowS
$cshowsPrec :: Int -> GetStreamSessionResponse -> ShowS
Prelude.Show, forall x.
Rep GetStreamSessionResponse x -> GetStreamSessionResponse
forall x.
GetStreamSessionResponse -> Rep GetStreamSessionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetStreamSessionResponse x -> GetStreamSessionResponse
$cfrom :: forall x.
GetStreamSessionResponse -> Rep GetStreamSessionResponse x
Prelude.Generic)
newGetStreamSessionResponse ::
Prelude.Int ->
GetStreamSessionResponse
newGetStreamSessionResponse :: Int -> GetStreamSessionResponse
newGetStreamSessionResponse Int
pHttpStatus_ =
GetStreamSessionResponse'
{ $sel:streamSession:GetStreamSessionResponse' :: Maybe StreamSession
streamSession =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetStreamSessionResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getStreamSessionResponse_streamSession :: Lens.Lens' GetStreamSessionResponse (Prelude.Maybe StreamSession)
getStreamSessionResponse_streamSession :: Lens' GetStreamSessionResponse (Maybe StreamSession)
getStreamSessionResponse_streamSession = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStreamSessionResponse' {Maybe StreamSession
streamSession :: Maybe StreamSession
$sel:streamSession:GetStreamSessionResponse' :: GetStreamSessionResponse -> Maybe StreamSession
streamSession} -> Maybe StreamSession
streamSession) (\s :: GetStreamSessionResponse
s@GetStreamSessionResponse' {} Maybe StreamSession
a -> GetStreamSessionResponse
s {$sel:streamSession:GetStreamSessionResponse' :: Maybe StreamSession
streamSession = Maybe StreamSession
a} :: GetStreamSessionResponse)
getStreamSessionResponse_httpStatus :: Lens.Lens' GetStreamSessionResponse Prelude.Int
getStreamSessionResponse_httpStatus :: Lens' GetStreamSessionResponse Int
getStreamSessionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStreamSessionResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetStreamSessionResponse' :: GetStreamSessionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetStreamSessionResponse
s@GetStreamSessionResponse' {} Int
a -> GetStreamSessionResponse
s {$sel:httpStatus:GetStreamSessionResponse' :: Int
httpStatus = Int
a} :: GetStreamSessionResponse)
instance Prelude.NFData GetStreamSessionResponse where
rnf :: GetStreamSessionResponse -> ()
rnf GetStreamSessionResponse' {Int
Maybe StreamSession
httpStatus :: Int
streamSession :: Maybe StreamSession
$sel:httpStatus:GetStreamSessionResponse' :: GetStreamSessionResponse -> Int
$sel:streamSession:GetStreamSessionResponse' :: GetStreamSessionResponse -> Maybe StreamSession
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe StreamSession
streamSession
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus