{-# 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.Nimble.CreateStreamingSessionStream
(
CreateStreamingSessionStream (..),
newCreateStreamingSessionStream,
createStreamingSessionStream_clientToken,
createStreamingSessionStream_expirationInSeconds,
createStreamingSessionStream_sessionId,
createStreamingSessionStream_studioId,
CreateStreamingSessionStreamResponse (..),
newCreateStreamingSessionStreamResponse,
createStreamingSessionStreamResponse_stream,
createStreamingSessionStreamResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Nimble.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateStreamingSessionStream = CreateStreamingSessionStream'
{
CreateStreamingSessionStream -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
CreateStreamingSessionStream -> Maybe Natural
expirationInSeconds :: Prelude.Maybe Prelude.Natural,
CreateStreamingSessionStream -> Text
sessionId :: Prelude.Text,
CreateStreamingSessionStream -> Text
studioId :: Prelude.Text
}
deriving (CreateStreamingSessionStream
-> CreateStreamingSessionStream -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateStreamingSessionStream
-> CreateStreamingSessionStream -> Bool
$c/= :: CreateStreamingSessionStream
-> CreateStreamingSessionStream -> Bool
== :: CreateStreamingSessionStream
-> CreateStreamingSessionStream -> Bool
$c== :: CreateStreamingSessionStream
-> CreateStreamingSessionStream -> Bool
Prelude.Eq, ReadPrec [CreateStreamingSessionStream]
ReadPrec CreateStreamingSessionStream
Int -> ReadS CreateStreamingSessionStream
ReadS [CreateStreamingSessionStream]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateStreamingSessionStream]
$creadListPrec :: ReadPrec [CreateStreamingSessionStream]
readPrec :: ReadPrec CreateStreamingSessionStream
$creadPrec :: ReadPrec CreateStreamingSessionStream
readList :: ReadS [CreateStreamingSessionStream]
$creadList :: ReadS [CreateStreamingSessionStream]
readsPrec :: Int -> ReadS CreateStreamingSessionStream
$creadsPrec :: Int -> ReadS CreateStreamingSessionStream
Prelude.Read, Int -> CreateStreamingSessionStream -> ShowS
[CreateStreamingSessionStream] -> ShowS
CreateStreamingSessionStream -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateStreamingSessionStream] -> ShowS
$cshowList :: [CreateStreamingSessionStream] -> ShowS
show :: CreateStreamingSessionStream -> String
$cshow :: CreateStreamingSessionStream -> String
showsPrec :: Int -> CreateStreamingSessionStream -> ShowS
$cshowsPrec :: Int -> CreateStreamingSessionStream -> ShowS
Prelude.Show, forall x.
Rep CreateStreamingSessionStream x -> CreateStreamingSessionStream
forall x.
CreateStreamingSessionStream -> Rep CreateStreamingSessionStream x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateStreamingSessionStream x -> CreateStreamingSessionStream
$cfrom :: forall x.
CreateStreamingSessionStream -> Rep CreateStreamingSessionStream x
Prelude.Generic)
newCreateStreamingSessionStream ::
Prelude.Text ->
Prelude.Text ->
CreateStreamingSessionStream
newCreateStreamingSessionStream :: Text -> Text -> CreateStreamingSessionStream
newCreateStreamingSessionStream
Text
pSessionId_
Text
pStudioId_ =
CreateStreamingSessionStream'
{ $sel:clientToken:CreateStreamingSessionStream' :: Maybe Text
clientToken =
forall a. Maybe a
Prelude.Nothing,
$sel:expirationInSeconds:CreateStreamingSessionStream' :: Maybe Natural
expirationInSeconds = forall a. Maybe a
Prelude.Nothing,
$sel:sessionId:CreateStreamingSessionStream' :: Text
sessionId = Text
pSessionId_,
$sel:studioId:CreateStreamingSessionStream' :: Text
studioId = Text
pStudioId_
}
createStreamingSessionStream_clientToken :: Lens.Lens' CreateStreamingSessionStream (Prelude.Maybe Prelude.Text)
createStreamingSessionStream_clientToken :: Lens' CreateStreamingSessionStream (Maybe Text)
createStreamingSessionStream_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStreamingSessionStream' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateStreamingSessionStream
s@CreateStreamingSessionStream' {} Maybe Text
a -> CreateStreamingSessionStream
s {$sel:clientToken:CreateStreamingSessionStream' :: Maybe Text
clientToken = Maybe Text
a} :: CreateStreamingSessionStream)
createStreamingSessionStream_expirationInSeconds :: Lens.Lens' CreateStreamingSessionStream (Prelude.Maybe Prelude.Natural)
createStreamingSessionStream_expirationInSeconds :: Lens' CreateStreamingSessionStream (Maybe Natural)
createStreamingSessionStream_expirationInSeconds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStreamingSessionStream' {Maybe Natural
expirationInSeconds :: Maybe Natural
$sel:expirationInSeconds:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Natural
expirationInSeconds} -> Maybe Natural
expirationInSeconds) (\s :: CreateStreamingSessionStream
s@CreateStreamingSessionStream' {} Maybe Natural
a -> CreateStreamingSessionStream
s {$sel:expirationInSeconds:CreateStreamingSessionStream' :: Maybe Natural
expirationInSeconds = Maybe Natural
a} :: CreateStreamingSessionStream)
createStreamingSessionStream_sessionId :: Lens.Lens' CreateStreamingSessionStream Prelude.Text
createStreamingSessionStream_sessionId :: Lens' CreateStreamingSessionStream Text
createStreamingSessionStream_sessionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStreamingSessionStream' {Text
sessionId :: Text
$sel:sessionId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
sessionId} -> Text
sessionId) (\s :: CreateStreamingSessionStream
s@CreateStreamingSessionStream' {} Text
a -> CreateStreamingSessionStream
s {$sel:sessionId:CreateStreamingSessionStream' :: Text
sessionId = Text
a} :: CreateStreamingSessionStream)
createStreamingSessionStream_studioId :: Lens.Lens' CreateStreamingSessionStream Prelude.Text
createStreamingSessionStream_studioId :: Lens' CreateStreamingSessionStream Text
createStreamingSessionStream_studioId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStreamingSessionStream' {Text
studioId :: Text
$sel:studioId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
studioId} -> Text
studioId) (\s :: CreateStreamingSessionStream
s@CreateStreamingSessionStream' {} Text
a -> CreateStreamingSessionStream
s {$sel:studioId:CreateStreamingSessionStream' :: Text
studioId = Text
a} :: CreateStreamingSessionStream)
instance Core.AWSRequest CreateStreamingSessionStream where
type
AWSResponse CreateStreamingSessionStream =
CreateStreamingSessionStreamResponse
request :: (Service -> Service)
-> CreateStreamingSessionStream
-> Request CreateStreamingSessionStream
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 CreateStreamingSessionStream
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateStreamingSessionStream)))
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 StreamingSessionStream
-> Int -> CreateStreamingSessionStreamResponse
CreateStreamingSessionStreamResponse'
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
CreateStreamingSessionStream
where
hashWithSalt :: Int -> CreateStreamingSessionStream -> Int
hashWithSalt Int
_salt CreateStreamingSessionStream' {Maybe Natural
Maybe Text
Text
studioId :: Text
sessionId :: Text
expirationInSeconds :: Maybe Natural
clientToken :: Maybe Text
$sel:studioId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
$sel:sessionId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
$sel:expirationInSeconds:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Natural
$sel:clientToken:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
expirationInSeconds
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
sessionId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
studioId
instance Prelude.NFData CreateStreamingSessionStream where
rnf :: CreateStreamingSessionStream -> ()
rnf CreateStreamingSessionStream' {Maybe Natural
Maybe Text
Text
studioId :: Text
sessionId :: Text
expirationInSeconds :: Maybe Natural
clientToken :: Maybe Text
$sel:studioId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
$sel:sessionId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
$sel:expirationInSeconds:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Natural
$sel:clientToken:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
expirationInSeconds
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
sessionId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
studioId
instance Data.ToHeaders CreateStreamingSessionStream where
toHeaders :: CreateStreamingSessionStream -> ResponseHeaders
toHeaders CreateStreamingSessionStream' {Maybe Natural
Maybe Text
Text
studioId :: Text
sessionId :: Text
expirationInSeconds :: Maybe Natural
clientToken :: Maybe Text
$sel:studioId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
$sel:sessionId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
$sel:expirationInSeconds:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Natural
$sel:clientToken:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Client-Token" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe Text
clientToken,
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# (ByteString
"application/x-amz-json-1.1" :: Prelude.ByteString)
]
instance Data.ToJSON CreateStreamingSessionStream where
toJSON :: CreateStreamingSessionStream -> Value
toJSON CreateStreamingSessionStream' {Maybe Natural
Maybe Text
Text
studioId :: Text
sessionId :: Text
expirationInSeconds :: Maybe Natural
clientToken :: Maybe Text
$sel:studioId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
$sel:sessionId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
$sel:expirationInSeconds:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Natural
$sel:clientToken:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"expirationInSeconds" 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 Natural
expirationInSeconds
]
)
instance Data.ToPath CreateStreamingSessionStream where
toPath :: CreateStreamingSessionStream -> ByteString
toPath CreateStreamingSessionStream' {Maybe Natural
Maybe Text
Text
studioId :: Text
sessionId :: Text
expirationInSeconds :: Maybe Natural
clientToken :: Maybe Text
$sel:studioId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
$sel:sessionId:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Text
$sel:expirationInSeconds:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Natural
$sel:clientToken:CreateStreamingSessionStream' :: CreateStreamingSessionStream -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/2020-08-01/studios/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
studioId,
ByteString
"/streaming-sessions/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
sessionId,
ByteString
"/streams"
]
instance Data.ToQuery CreateStreamingSessionStream where
toQuery :: CreateStreamingSessionStream -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateStreamingSessionStreamResponse = CreateStreamingSessionStreamResponse'
{
CreateStreamingSessionStreamResponse
-> Maybe StreamingSessionStream
stream :: Prelude.Maybe StreamingSessionStream,
CreateStreamingSessionStreamResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateStreamingSessionStreamResponse
-> CreateStreamingSessionStreamResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateStreamingSessionStreamResponse
-> CreateStreamingSessionStreamResponse -> Bool
$c/= :: CreateStreamingSessionStreamResponse
-> CreateStreamingSessionStreamResponse -> Bool
== :: CreateStreamingSessionStreamResponse
-> CreateStreamingSessionStreamResponse -> Bool
$c== :: CreateStreamingSessionStreamResponse
-> CreateStreamingSessionStreamResponse -> Bool
Prelude.Eq, Int -> CreateStreamingSessionStreamResponse -> ShowS
[CreateStreamingSessionStreamResponse] -> ShowS
CreateStreamingSessionStreamResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateStreamingSessionStreamResponse] -> ShowS
$cshowList :: [CreateStreamingSessionStreamResponse] -> ShowS
show :: CreateStreamingSessionStreamResponse -> String
$cshow :: CreateStreamingSessionStreamResponse -> String
showsPrec :: Int -> CreateStreamingSessionStreamResponse -> ShowS
$cshowsPrec :: Int -> CreateStreamingSessionStreamResponse -> ShowS
Prelude.Show, forall x.
Rep CreateStreamingSessionStreamResponse x
-> CreateStreamingSessionStreamResponse
forall x.
CreateStreamingSessionStreamResponse
-> Rep CreateStreamingSessionStreamResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateStreamingSessionStreamResponse x
-> CreateStreamingSessionStreamResponse
$cfrom :: forall x.
CreateStreamingSessionStreamResponse
-> Rep CreateStreamingSessionStreamResponse x
Prelude.Generic)
newCreateStreamingSessionStreamResponse ::
Prelude.Int ->
CreateStreamingSessionStreamResponse
newCreateStreamingSessionStreamResponse :: Int -> CreateStreamingSessionStreamResponse
newCreateStreamingSessionStreamResponse Int
pHttpStatus_ =
CreateStreamingSessionStreamResponse'
{ $sel:stream:CreateStreamingSessionStreamResponse' :: Maybe StreamingSessionStream
stream =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateStreamingSessionStreamResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createStreamingSessionStreamResponse_stream :: Lens.Lens' CreateStreamingSessionStreamResponse (Prelude.Maybe StreamingSessionStream)
createStreamingSessionStreamResponse_stream :: Lens'
CreateStreamingSessionStreamResponse (Maybe StreamingSessionStream)
createStreamingSessionStreamResponse_stream = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStreamingSessionStreamResponse' {Maybe StreamingSessionStream
stream :: Maybe StreamingSessionStream
$sel:stream:CreateStreamingSessionStreamResponse' :: CreateStreamingSessionStreamResponse
-> Maybe StreamingSessionStream
stream} -> Maybe StreamingSessionStream
stream) (\s :: CreateStreamingSessionStreamResponse
s@CreateStreamingSessionStreamResponse' {} Maybe StreamingSessionStream
a -> CreateStreamingSessionStreamResponse
s {$sel:stream:CreateStreamingSessionStreamResponse' :: Maybe StreamingSessionStream
stream = Maybe StreamingSessionStream
a} :: CreateStreamingSessionStreamResponse)
createStreamingSessionStreamResponse_httpStatus :: Lens.Lens' CreateStreamingSessionStreamResponse Prelude.Int
createStreamingSessionStreamResponse_httpStatus :: Lens' CreateStreamingSessionStreamResponse Int
createStreamingSessionStreamResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStreamingSessionStreamResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateStreamingSessionStreamResponse' :: CreateStreamingSessionStreamResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateStreamingSessionStreamResponse
s@CreateStreamingSessionStreamResponse' {} Int
a -> CreateStreamingSessionStreamResponse
s {$sel:httpStatus:CreateStreamingSessionStreamResponse' :: Int
httpStatus = Int
a} :: CreateStreamingSessionStreamResponse)
instance
Prelude.NFData
CreateStreamingSessionStreamResponse
where
rnf :: CreateStreamingSessionStreamResponse -> ()
rnf CreateStreamingSessionStreamResponse' {Int
Maybe StreamingSessionStream
httpStatus :: Int
stream :: Maybe StreamingSessionStream
$sel:httpStatus:CreateStreamingSessionStreamResponse' :: CreateStreamingSessionStreamResponse -> Int
$sel:stream:CreateStreamingSessionStreamResponse' :: CreateStreamingSessionStreamResponse
-> Maybe StreamingSessionStream
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe StreamingSessionStream
stream
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus