{-# 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.MediaLive.DescribeMultiplexProgram
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Get the details for a program in a multiplex.
module Amazonka.MediaLive.DescribeMultiplexProgram
  ( -- * Creating a Request
    DescribeMultiplexProgram (..),
    newDescribeMultiplexProgram,

    -- * Request Lenses
    describeMultiplexProgram_multiplexId,
    describeMultiplexProgram_programName,

    -- * Destructuring the Response
    DescribeMultiplexProgramResponse (..),
    newDescribeMultiplexProgramResponse,

    -- * Response Lenses
    describeMultiplexProgramResponse_channelId,
    describeMultiplexProgramResponse_multiplexProgramSettings,
    describeMultiplexProgramResponse_packetIdentifiersMap,
    describeMultiplexProgramResponse_pipelineDetails,
    describeMultiplexProgramResponse_programName,
    describeMultiplexProgramResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MediaLive.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | Placeholder documentation for DescribeMultiplexProgramRequest
--
-- /See:/ 'newDescribeMultiplexProgram' smart constructor.
data DescribeMultiplexProgram = DescribeMultiplexProgram'
  { -- | The ID of the multiplex that the program belongs to.
    DescribeMultiplexProgram -> Text
multiplexId :: Prelude.Text,
    -- | The name of the program.
    DescribeMultiplexProgram -> Text
programName :: Prelude.Text
  }
  deriving (DescribeMultiplexProgram -> DescribeMultiplexProgram -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeMultiplexProgram -> DescribeMultiplexProgram -> Bool
$c/= :: DescribeMultiplexProgram -> DescribeMultiplexProgram -> Bool
== :: DescribeMultiplexProgram -> DescribeMultiplexProgram -> Bool
$c== :: DescribeMultiplexProgram -> DescribeMultiplexProgram -> Bool
Prelude.Eq, ReadPrec [DescribeMultiplexProgram]
ReadPrec DescribeMultiplexProgram
Int -> ReadS DescribeMultiplexProgram
ReadS [DescribeMultiplexProgram]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeMultiplexProgram]
$creadListPrec :: ReadPrec [DescribeMultiplexProgram]
readPrec :: ReadPrec DescribeMultiplexProgram
$creadPrec :: ReadPrec DescribeMultiplexProgram
readList :: ReadS [DescribeMultiplexProgram]
$creadList :: ReadS [DescribeMultiplexProgram]
readsPrec :: Int -> ReadS DescribeMultiplexProgram
$creadsPrec :: Int -> ReadS DescribeMultiplexProgram
Prelude.Read, Int -> DescribeMultiplexProgram -> ShowS
[DescribeMultiplexProgram] -> ShowS
DescribeMultiplexProgram -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeMultiplexProgram] -> ShowS
$cshowList :: [DescribeMultiplexProgram] -> ShowS
show :: DescribeMultiplexProgram -> String
$cshow :: DescribeMultiplexProgram -> String
showsPrec :: Int -> DescribeMultiplexProgram -> ShowS
$cshowsPrec :: Int -> DescribeMultiplexProgram -> ShowS
Prelude.Show, forall x.
Rep DescribeMultiplexProgram x -> DescribeMultiplexProgram
forall x.
DescribeMultiplexProgram -> Rep DescribeMultiplexProgram x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeMultiplexProgram x -> DescribeMultiplexProgram
$cfrom :: forall x.
DescribeMultiplexProgram -> Rep DescribeMultiplexProgram x
Prelude.Generic)

-- |
-- Create a value of 'DescribeMultiplexProgram' 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:
--
-- 'multiplexId', 'describeMultiplexProgram_multiplexId' - The ID of the multiplex that the program belongs to.
--
-- 'programName', 'describeMultiplexProgram_programName' - The name of the program.
newDescribeMultiplexProgram ::
  -- | 'multiplexId'
  Prelude.Text ->
  -- | 'programName'
  Prelude.Text ->
  DescribeMultiplexProgram
newDescribeMultiplexProgram :: Text -> Text -> DescribeMultiplexProgram
newDescribeMultiplexProgram
  Text
pMultiplexId_
  Text
pProgramName_ =
    DescribeMultiplexProgram'
      { $sel:multiplexId:DescribeMultiplexProgram' :: Text
multiplexId =
          Text
pMultiplexId_,
        $sel:programName:DescribeMultiplexProgram' :: Text
programName = Text
pProgramName_
      }

-- | The ID of the multiplex that the program belongs to.
describeMultiplexProgram_multiplexId :: Lens.Lens' DescribeMultiplexProgram Prelude.Text
describeMultiplexProgram_multiplexId :: Lens' DescribeMultiplexProgram Text
describeMultiplexProgram_multiplexId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMultiplexProgram' {Text
multiplexId :: Text
$sel:multiplexId:DescribeMultiplexProgram' :: DescribeMultiplexProgram -> Text
multiplexId} -> Text
multiplexId) (\s :: DescribeMultiplexProgram
s@DescribeMultiplexProgram' {} Text
a -> DescribeMultiplexProgram
s {$sel:multiplexId:DescribeMultiplexProgram' :: Text
multiplexId = Text
a} :: DescribeMultiplexProgram)

-- | The name of the program.
describeMultiplexProgram_programName :: Lens.Lens' DescribeMultiplexProgram Prelude.Text
describeMultiplexProgram_programName :: Lens' DescribeMultiplexProgram Text
describeMultiplexProgram_programName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMultiplexProgram' {Text
programName :: Text
$sel:programName:DescribeMultiplexProgram' :: DescribeMultiplexProgram -> Text
programName} -> Text
programName) (\s :: DescribeMultiplexProgram
s@DescribeMultiplexProgram' {} Text
a -> DescribeMultiplexProgram
s {$sel:programName:DescribeMultiplexProgram' :: Text
programName = Text
a} :: DescribeMultiplexProgram)

instance Core.AWSRequest DescribeMultiplexProgram where
  type
    AWSResponse DescribeMultiplexProgram =
      DescribeMultiplexProgramResponse
  request :: (Service -> Service)
-> DescribeMultiplexProgram -> Request DescribeMultiplexProgram
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeMultiplexProgram
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeMultiplexProgram)))
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 Text
-> Maybe MultiplexProgramSettings
-> Maybe MultiplexProgramPacketIdentifiersMap
-> Maybe [MultiplexProgramPipelineDetail]
-> Maybe Text
-> Int
-> DescribeMultiplexProgramResponse
DescribeMultiplexProgramResponse'
            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
"channelId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"multiplexProgramSettings")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"packetIdentifiersMap")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"pipelineDetails"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"programName")
            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 DescribeMultiplexProgram where
  hashWithSalt :: Int -> DescribeMultiplexProgram -> Int
hashWithSalt Int
_salt DescribeMultiplexProgram' {Text
programName :: Text
multiplexId :: Text
$sel:programName:DescribeMultiplexProgram' :: DescribeMultiplexProgram -> Text
$sel:multiplexId:DescribeMultiplexProgram' :: DescribeMultiplexProgram -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
multiplexId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
programName

instance Prelude.NFData DescribeMultiplexProgram where
  rnf :: DescribeMultiplexProgram -> ()
rnf DescribeMultiplexProgram' {Text
programName :: Text
multiplexId :: Text
$sel:programName:DescribeMultiplexProgram' :: DescribeMultiplexProgram -> Text
$sel:multiplexId:DescribeMultiplexProgram' :: DescribeMultiplexProgram -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
multiplexId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
programName

instance Data.ToHeaders DescribeMultiplexProgram where
  toHeaders :: DescribeMultiplexProgram -> 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.ToPath DescribeMultiplexProgram where
  toPath :: DescribeMultiplexProgram -> ByteString
toPath DescribeMultiplexProgram' {Text
programName :: Text
multiplexId :: Text
$sel:programName:DescribeMultiplexProgram' :: DescribeMultiplexProgram -> Text
$sel:multiplexId:DescribeMultiplexProgram' :: DescribeMultiplexProgram -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/prod/multiplexes/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
multiplexId,
        ByteString
"/programs/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
programName
      ]

instance Data.ToQuery DescribeMultiplexProgram where
  toQuery :: DescribeMultiplexProgram -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | Placeholder documentation for DescribeMultiplexProgramResponse
--
-- /See:/ 'newDescribeMultiplexProgramResponse' smart constructor.
data DescribeMultiplexProgramResponse = DescribeMultiplexProgramResponse'
  { -- | The MediaLive channel associated with the program.
    DescribeMultiplexProgramResponse -> Maybe Text
channelId :: Prelude.Maybe Prelude.Text,
    -- | The settings for this multiplex program.
    DescribeMultiplexProgramResponse -> Maybe MultiplexProgramSettings
multiplexProgramSettings :: Prelude.Maybe MultiplexProgramSettings,
    -- | The packet identifier map for this multiplex program.
    DescribeMultiplexProgramResponse
-> Maybe MultiplexProgramPacketIdentifiersMap
packetIdentifiersMap :: Prelude.Maybe MultiplexProgramPacketIdentifiersMap,
    -- | Contains information about the current sources for the specified program
    -- in the specified multiplex. Keep in mind that each multiplex pipeline
    -- connects to both pipelines in a given source channel (the channel
    -- identified by the program). But only one of those channel pipelines is
    -- ever active at one time.
    DescribeMultiplexProgramResponse
-> Maybe [MultiplexProgramPipelineDetail]
pipelineDetails :: Prelude.Maybe [MultiplexProgramPipelineDetail],
    -- | The name of the multiplex program.
    DescribeMultiplexProgramResponse -> Maybe Text
programName :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeMultiplexProgramResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeMultiplexProgramResponse
-> DescribeMultiplexProgramResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeMultiplexProgramResponse
-> DescribeMultiplexProgramResponse -> Bool
$c/= :: DescribeMultiplexProgramResponse
-> DescribeMultiplexProgramResponse -> Bool
== :: DescribeMultiplexProgramResponse
-> DescribeMultiplexProgramResponse -> Bool
$c== :: DescribeMultiplexProgramResponse
-> DescribeMultiplexProgramResponse -> Bool
Prelude.Eq, ReadPrec [DescribeMultiplexProgramResponse]
ReadPrec DescribeMultiplexProgramResponse
Int -> ReadS DescribeMultiplexProgramResponse
ReadS [DescribeMultiplexProgramResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeMultiplexProgramResponse]
$creadListPrec :: ReadPrec [DescribeMultiplexProgramResponse]
readPrec :: ReadPrec DescribeMultiplexProgramResponse
$creadPrec :: ReadPrec DescribeMultiplexProgramResponse
readList :: ReadS [DescribeMultiplexProgramResponse]
$creadList :: ReadS [DescribeMultiplexProgramResponse]
readsPrec :: Int -> ReadS DescribeMultiplexProgramResponse
$creadsPrec :: Int -> ReadS DescribeMultiplexProgramResponse
Prelude.Read, Int -> DescribeMultiplexProgramResponse -> ShowS
[DescribeMultiplexProgramResponse] -> ShowS
DescribeMultiplexProgramResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeMultiplexProgramResponse] -> ShowS
$cshowList :: [DescribeMultiplexProgramResponse] -> ShowS
show :: DescribeMultiplexProgramResponse -> String
$cshow :: DescribeMultiplexProgramResponse -> String
showsPrec :: Int -> DescribeMultiplexProgramResponse -> ShowS
$cshowsPrec :: Int -> DescribeMultiplexProgramResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeMultiplexProgramResponse x
-> DescribeMultiplexProgramResponse
forall x.
DescribeMultiplexProgramResponse
-> Rep DescribeMultiplexProgramResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeMultiplexProgramResponse x
-> DescribeMultiplexProgramResponse
$cfrom :: forall x.
DescribeMultiplexProgramResponse
-> Rep DescribeMultiplexProgramResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeMultiplexProgramResponse' 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:
--
-- 'channelId', 'describeMultiplexProgramResponse_channelId' - The MediaLive channel associated with the program.
--
-- 'multiplexProgramSettings', 'describeMultiplexProgramResponse_multiplexProgramSettings' - The settings for this multiplex program.
--
-- 'packetIdentifiersMap', 'describeMultiplexProgramResponse_packetIdentifiersMap' - The packet identifier map for this multiplex program.
--
-- 'pipelineDetails', 'describeMultiplexProgramResponse_pipelineDetails' - Contains information about the current sources for the specified program
-- in the specified multiplex. Keep in mind that each multiplex pipeline
-- connects to both pipelines in a given source channel (the channel
-- identified by the program). But only one of those channel pipelines is
-- ever active at one time.
--
-- 'programName', 'describeMultiplexProgramResponse_programName' - The name of the multiplex program.
--
-- 'httpStatus', 'describeMultiplexProgramResponse_httpStatus' - The response's http status code.
newDescribeMultiplexProgramResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeMultiplexProgramResponse
newDescribeMultiplexProgramResponse :: Int -> DescribeMultiplexProgramResponse
newDescribeMultiplexProgramResponse Int
pHttpStatus_ =
  DescribeMultiplexProgramResponse'
    { $sel:channelId:DescribeMultiplexProgramResponse' :: Maybe Text
channelId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:multiplexProgramSettings:DescribeMultiplexProgramResponse' :: Maybe MultiplexProgramSettings
multiplexProgramSettings =
        forall a. Maybe a
Prelude.Nothing,
      $sel:packetIdentifiersMap:DescribeMultiplexProgramResponse' :: Maybe MultiplexProgramPacketIdentifiersMap
packetIdentifiersMap = forall a. Maybe a
Prelude.Nothing,
      $sel:pipelineDetails:DescribeMultiplexProgramResponse' :: Maybe [MultiplexProgramPipelineDetail]
pipelineDetails = forall a. Maybe a
Prelude.Nothing,
      $sel:programName:DescribeMultiplexProgramResponse' :: Maybe Text
programName = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeMultiplexProgramResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The MediaLive channel associated with the program.
describeMultiplexProgramResponse_channelId :: Lens.Lens' DescribeMultiplexProgramResponse (Prelude.Maybe Prelude.Text)
describeMultiplexProgramResponse_channelId :: Lens' DescribeMultiplexProgramResponse (Maybe Text)
describeMultiplexProgramResponse_channelId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMultiplexProgramResponse' {Maybe Text
channelId :: Maybe Text
$sel:channelId:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse -> Maybe Text
channelId} -> Maybe Text
channelId) (\s :: DescribeMultiplexProgramResponse
s@DescribeMultiplexProgramResponse' {} Maybe Text
a -> DescribeMultiplexProgramResponse
s {$sel:channelId:DescribeMultiplexProgramResponse' :: Maybe Text
channelId = Maybe Text
a} :: DescribeMultiplexProgramResponse)

-- | The settings for this multiplex program.
describeMultiplexProgramResponse_multiplexProgramSettings :: Lens.Lens' DescribeMultiplexProgramResponse (Prelude.Maybe MultiplexProgramSettings)
describeMultiplexProgramResponse_multiplexProgramSettings :: Lens'
  DescribeMultiplexProgramResponse (Maybe MultiplexProgramSettings)
describeMultiplexProgramResponse_multiplexProgramSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMultiplexProgramResponse' {Maybe MultiplexProgramSettings
multiplexProgramSettings :: Maybe MultiplexProgramSettings
$sel:multiplexProgramSettings:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse -> Maybe MultiplexProgramSettings
multiplexProgramSettings} -> Maybe MultiplexProgramSettings
multiplexProgramSettings) (\s :: DescribeMultiplexProgramResponse
s@DescribeMultiplexProgramResponse' {} Maybe MultiplexProgramSettings
a -> DescribeMultiplexProgramResponse
s {$sel:multiplexProgramSettings:DescribeMultiplexProgramResponse' :: Maybe MultiplexProgramSettings
multiplexProgramSettings = Maybe MultiplexProgramSettings
a} :: DescribeMultiplexProgramResponse)

-- | The packet identifier map for this multiplex program.
describeMultiplexProgramResponse_packetIdentifiersMap :: Lens.Lens' DescribeMultiplexProgramResponse (Prelude.Maybe MultiplexProgramPacketIdentifiersMap)
describeMultiplexProgramResponse_packetIdentifiersMap :: Lens'
  DescribeMultiplexProgramResponse
  (Maybe MultiplexProgramPacketIdentifiersMap)
describeMultiplexProgramResponse_packetIdentifiersMap = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMultiplexProgramResponse' {Maybe MultiplexProgramPacketIdentifiersMap
packetIdentifiersMap :: Maybe MultiplexProgramPacketIdentifiersMap
$sel:packetIdentifiersMap:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse
-> Maybe MultiplexProgramPacketIdentifiersMap
packetIdentifiersMap} -> Maybe MultiplexProgramPacketIdentifiersMap
packetIdentifiersMap) (\s :: DescribeMultiplexProgramResponse
s@DescribeMultiplexProgramResponse' {} Maybe MultiplexProgramPacketIdentifiersMap
a -> DescribeMultiplexProgramResponse
s {$sel:packetIdentifiersMap:DescribeMultiplexProgramResponse' :: Maybe MultiplexProgramPacketIdentifiersMap
packetIdentifiersMap = Maybe MultiplexProgramPacketIdentifiersMap
a} :: DescribeMultiplexProgramResponse)

-- | Contains information about the current sources for the specified program
-- in the specified multiplex. Keep in mind that each multiplex pipeline
-- connects to both pipelines in a given source channel (the channel
-- identified by the program). But only one of those channel pipelines is
-- ever active at one time.
describeMultiplexProgramResponse_pipelineDetails :: Lens.Lens' DescribeMultiplexProgramResponse (Prelude.Maybe [MultiplexProgramPipelineDetail])
describeMultiplexProgramResponse_pipelineDetails :: Lens'
  DescribeMultiplexProgramResponse
  (Maybe [MultiplexProgramPipelineDetail])
describeMultiplexProgramResponse_pipelineDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMultiplexProgramResponse' {Maybe [MultiplexProgramPipelineDetail]
pipelineDetails :: Maybe [MultiplexProgramPipelineDetail]
$sel:pipelineDetails:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse
-> Maybe [MultiplexProgramPipelineDetail]
pipelineDetails} -> Maybe [MultiplexProgramPipelineDetail]
pipelineDetails) (\s :: DescribeMultiplexProgramResponse
s@DescribeMultiplexProgramResponse' {} Maybe [MultiplexProgramPipelineDetail]
a -> DescribeMultiplexProgramResponse
s {$sel:pipelineDetails:DescribeMultiplexProgramResponse' :: Maybe [MultiplexProgramPipelineDetail]
pipelineDetails = Maybe [MultiplexProgramPipelineDetail]
a} :: DescribeMultiplexProgramResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The name of the multiplex program.
describeMultiplexProgramResponse_programName :: Lens.Lens' DescribeMultiplexProgramResponse (Prelude.Maybe Prelude.Text)
describeMultiplexProgramResponse_programName :: Lens' DescribeMultiplexProgramResponse (Maybe Text)
describeMultiplexProgramResponse_programName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMultiplexProgramResponse' {Maybe Text
programName :: Maybe Text
$sel:programName:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse -> Maybe Text
programName} -> Maybe Text
programName) (\s :: DescribeMultiplexProgramResponse
s@DescribeMultiplexProgramResponse' {} Maybe Text
a -> DescribeMultiplexProgramResponse
s {$sel:programName:DescribeMultiplexProgramResponse' :: Maybe Text
programName = Maybe Text
a} :: DescribeMultiplexProgramResponse)

-- | The response's http status code.
describeMultiplexProgramResponse_httpStatus :: Lens.Lens' DescribeMultiplexProgramResponse Prelude.Int
describeMultiplexProgramResponse_httpStatus :: Lens' DescribeMultiplexProgramResponse Int
describeMultiplexProgramResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMultiplexProgramResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeMultiplexProgramResponse
s@DescribeMultiplexProgramResponse' {} Int
a -> DescribeMultiplexProgramResponse
s {$sel:httpStatus:DescribeMultiplexProgramResponse' :: Int
httpStatus = Int
a} :: DescribeMultiplexProgramResponse)

instance
  Prelude.NFData
    DescribeMultiplexProgramResponse
  where
  rnf :: DescribeMultiplexProgramResponse -> ()
rnf DescribeMultiplexProgramResponse' {Int
Maybe [MultiplexProgramPipelineDetail]
Maybe Text
Maybe MultiplexProgramPacketIdentifiersMap
Maybe MultiplexProgramSettings
httpStatus :: Int
programName :: Maybe Text
pipelineDetails :: Maybe [MultiplexProgramPipelineDetail]
packetIdentifiersMap :: Maybe MultiplexProgramPacketIdentifiersMap
multiplexProgramSettings :: Maybe MultiplexProgramSettings
channelId :: Maybe Text
$sel:httpStatus:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse -> Int
$sel:programName:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse -> Maybe Text
$sel:pipelineDetails:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse
-> Maybe [MultiplexProgramPipelineDetail]
$sel:packetIdentifiersMap:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse
-> Maybe MultiplexProgramPacketIdentifiersMap
$sel:multiplexProgramSettings:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse -> Maybe MultiplexProgramSettings
$sel:channelId:DescribeMultiplexProgramResponse' :: DescribeMultiplexProgramResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
channelId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MultiplexProgramSettings
multiplexProgramSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MultiplexProgramPacketIdentifiersMap
packetIdentifiersMap
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [MultiplexProgramPipelineDetail]
pipelineDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
programName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus