amazonka-ivs-2.0: gen/Amazonka/IVS/GetStream.hs
{-# 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.IVS.GetStream
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets information about the active (live) stream on a specified channel.
module Amazonka.IVS.GetStream
( -- * Creating a Request
GetStream (..),
newGetStream,
-- * Request Lenses
getStream_channelArn,
-- * Destructuring the Response
GetStreamResponse (..),
newGetStreamResponse,
-- * Response Lenses
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
-- | /See:/ 'newGetStream' smart constructor.
data GetStream = GetStream'
{ -- | Channel ARN for stream to be accessed.
channelArn :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'GetStream' 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:
--
-- 'channelArn', 'getStream_channelArn' - Channel ARN for stream to be accessed.
newGetStream ::
-- | 'channelArn'
Prelude.Text ->
GetStream
newGetStream pChannelArn_ =
GetStream' {channelArn = pChannelArn_}
-- | Channel ARN for stream to be accessed.
getStream_channelArn :: Lens.Lens' GetStream Prelude.Text
getStream_channelArn = Lens.lens (\GetStream' {channelArn} -> channelArn) (\s@GetStream' {} a -> s {channelArn = a} :: GetStream)
instance Core.AWSRequest GetStream where
type AWSResponse GetStream = GetStreamResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
GetStreamResponse'
Prelude.<$> (x Data..?> "stream")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable GetStream where
hashWithSalt _salt GetStream' {..} =
_salt `Prelude.hashWithSalt` channelArn
instance Prelude.NFData GetStream where
rnf GetStream' {..} = Prelude.rnf channelArn
instance Data.ToHeaders GetStream where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GetStream where
toJSON GetStream' {..} =
Data.object
( Prelude.catMaybes
[Prelude.Just ("channelArn" Data..= channelArn)]
)
instance Data.ToPath GetStream where
toPath = Prelude.const "/GetStream"
instance Data.ToQuery GetStream where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newGetStreamResponse' smart constructor.
data GetStreamResponse = GetStreamResponse'
{ stream :: Prelude.Maybe Stream,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'GetStreamResponse' 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', 'getStreamResponse_stream' -
--
-- 'httpStatus', 'getStreamResponse_httpStatus' - The response's http status code.
newGetStreamResponse ::
-- | 'httpStatus'
Prelude.Int ->
GetStreamResponse
newGetStreamResponse pHttpStatus_ =
GetStreamResponse'
{ stream = Prelude.Nothing,
httpStatus = pHttpStatus_
}
getStreamResponse_stream :: Lens.Lens' GetStreamResponse (Prelude.Maybe Stream)
getStreamResponse_stream = Lens.lens (\GetStreamResponse' {stream} -> stream) (\s@GetStreamResponse' {} a -> s {stream = a} :: GetStreamResponse)
-- | The response's http status code.
getStreamResponse_httpStatus :: Lens.Lens' GetStreamResponse Prelude.Int
getStreamResponse_httpStatus = Lens.lens (\GetStreamResponse' {httpStatus} -> httpStatus) (\s@GetStreamResponse' {} a -> s {httpStatus = a} :: GetStreamResponse)
instance Prelude.NFData GetStreamResponse where
rnf GetStreamResponse' {..} =
Prelude.rnf stream
`Prelude.seq` Prelude.rnf httpStatus