{-# 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.Nimble.CreateStreamingSessionStream
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a streaming session stream for a streaming session.
--
-- After invoking this API, invoke GetStreamingSessionStream with the
-- returned streamId to poll the resource until it is in the @READY@ state.
module Amazonka.Nimble.CreateStreamingSessionStream
  ( -- * Creating a Request
    CreateStreamingSessionStream (..),
    newCreateStreamingSessionStream,

    -- * Request Lenses
    createStreamingSessionStream_clientToken,
    createStreamingSessionStream_expirationInSeconds,
    createStreamingSessionStream_sessionId,
    createStreamingSessionStream_studioId,

    -- * Destructuring the Response
    CreateStreamingSessionStreamResponse (..),
    newCreateStreamingSessionStreamResponse,

    -- * Response Lenses
    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

-- | /See:/ 'newCreateStreamingSessionStream' smart constructor.
data CreateStreamingSessionStream = CreateStreamingSessionStream'
  { -- | Unique, case-sensitive identifier that you provide to ensure the
    -- idempotency of the request. If you don’t specify a client token, the
    -- Amazon Web Services SDK automatically generates a client token and uses
    -- it for the request to ensure idempotency.
    CreateStreamingSessionStream -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
    -- | The expiration time in seconds.
    CreateStreamingSessionStream -> Maybe Natural
expirationInSeconds :: Prelude.Maybe Prelude.Natural,
    -- | The streaming session ID.
    CreateStreamingSessionStream -> Text
sessionId :: Prelude.Text,
    -- | The studio ID.
    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)

-- |
-- Create a value of 'CreateStreamingSessionStream' 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:
--
-- 'clientToken', 'createStreamingSessionStream_clientToken' - Unique, case-sensitive identifier that you provide to ensure the
-- idempotency of the request. If you don’t specify a client token, the
-- Amazon Web Services SDK automatically generates a client token and uses
-- it for the request to ensure idempotency.
--
-- 'expirationInSeconds', 'createStreamingSessionStream_expirationInSeconds' - The expiration time in seconds.
--
-- 'sessionId', 'createStreamingSessionStream_sessionId' - The streaming session ID.
--
-- 'studioId', 'createStreamingSessionStream_studioId' - The studio ID.
newCreateStreamingSessionStream ::
  -- | 'sessionId'
  Prelude.Text ->
  -- | 'studioId'
  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_
      }

-- | Unique, case-sensitive identifier that you provide to ensure the
-- idempotency of the request. If you don’t specify a client token, the
-- Amazon Web Services SDK automatically generates a client token and uses
-- it for the request to ensure idempotency.
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)

-- | The expiration time in seconds.
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)

-- | The streaming session ID.
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)

-- | The studio ID.
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

-- | /See:/ 'newCreateStreamingSessionStreamResponse' smart constructor.
data CreateStreamingSessionStreamResponse = CreateStreamingSessionStreamResponse'
  { -- | The stream.
    CreateStreamingSessionStreamResponse
-> Maybe StreamingSessionStream
stream :: Prelude.Maybe StreamingSessionStream,
    -- | The response's http status code.
    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)

-- |
-- Create a value of 'CreateStreamingSessionStreamResponse' 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:
--
-- 'stream', 'createStreamingSessionStreamResponse_stream' - The stream.
--
-- 'httpStatus', 'createStreamingSessionStreamResponse_httpStatus' - The response's http status code.
newCreateStreamingSessionStreamResponse ::
  -- | 'httpStatus'
  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_
    }

-- | The stream.
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)

-- | The response's http status code.
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