packages feed

amazonka-medialive-2.0: gen/Amazonka/MediaLive/Types/PipelineDetail.hs

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# 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.Types.PipelineDetail
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.MediaLive.Types.PipelineDetail where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | Runtime details of a pipeline when a channel is running.
--
-- /See:/ 'newPipelineDetail' smart constructor.
data PipelineDetail = PipelineDetail'
  { -- | The name of the active input attachment currently being ingested by this
    -- pipeline.
    activeInputAttachmentName :: Prelude.Maybe Prelude.Text,
    -- | The name of the input switch schedule action that occurred most recently
    -- and that resulted in the switch to the current input attachment for this
    -- pipeline.
    activeInputSwitchActionName :: Prelude.Maybe Prelude.Text,
    -- | The name of the motion graphics activate action that occurred most
    -- recently and that resulted in the current graphics URI for this
    -- pipeline.
    activeMotionGraphicsActionName :: Prelude.Maybe Prelude.Text,
    -- | The current URI being used for HTML5 motion graphics for this pipeline.
    activeMotionGraphicsUri :: Prelude.Maybe Prelude.Text,
    -- | Pipeline ID
    pipelineId :: Prelude.Maybe Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'PipelineDetail' 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:
--
-- 'activeInputAttachmentName', 'pipelineDetail_activeInputAttachmentName' - The name of the active input attachment currently being ingested by this
-- pipeline.
--
-- 'activeInputSwitchActionName', 'pipelineDetail_activeInputSwitchActionName' - The name of the input switch schedule action that occurred most recently
-- and that resulted in the switch to the current input attachment for this
-- pipeline.
--
-- 'activeMotionGraphicsActionName', 'pipelineDetail_activeMotionGraphicsActionName' - The name of the motion graphics activate action that occurred most
-- recently and that resulted in the current graphics URI for this
-- pipeline.
--
-- 'activeMotionGraphicsUri', 'pipelineDetail_activeMotionGraphicsUri' - The current URI being used for HTML5 motion graphics for this pipeline.
--
-- 'pipelineId', 'pipelineDetail_pipelineId' - Pipeline ID
newPipelineDetail ::
  PipelineDetail
newPipelineDetail =
  PipelineDetail'
    { activeInputAttachmentName =
        Prelude.Nothing,
      activeInputSwitchActionName = Prelude.Nothing,
      activeMotionGraphicsActionName = Prelude.Nothing,
      activeMotionGraphicsUri = Prelude.Nothing,
      pipelineId = Prelude.Nothing
    }

-- | The name of the active input attachment currently being ingested by this
-- pipeline.
pipelineDetail_activeInputAttachmentName :: Lens.Lens' PipelineDetail (Prelude.Maybe Prelude.Text)
pipelineDetail_activeInputAttachmentName = Lens.lens (\PipelineDetail' {activeInputAttachmentName} -> activeInputAttachmentName) (\s@PipelineDetail' {} a -> s {activeInputAttachmentName = a} :: PipelineDetail)

-- | The name of the input switch schedule action that occurred most recently
-- and that resulted in the switch to the current input attachment for this
-- pipeline.
pipelineDetail_activeInputSwitchActionName :: Lens.Lens' PipelineDetail (Prelude.Maybe Prelude.Text)
pipelineDetail_activeInputSwitchActionName = Lens.lens (\PipelineDetail' {activeInputSwitchActionName} -> activeInputSwitchActionName) (\s@PipelineDetail' {} a -> s {activeInputSwitchActionName = a} :: PipelineDetail)

-- | The name of the motion graphics activate action that occurred most
-- recently and that resulted in the current graphics URI for this
-- pipeline.
pipelineDetail_activeMotionGraphicsActionName :: Lens.Lens' PipelineDetail (Prelude.Maybe Prelude.Text)
pipelineDetail_activeMotionGraphicsActionName = Lens.lens (\PipelineDetail' {activeMotionGraphicsActionName} -> activeMotionGraphicsActionName) (\s@PipelineDetail' {} a -> s {activeMotionGraphicsActionName = a} :: PipelineDetail)

-- | The current URI being used for HTML5 motion graphics for this pipeline.
pipelineDetail_activeMotionGraphicsUri :: Lens.Lens' PipelineDetail (Prelude.Maybe Prelude.Text)
pipelineDetail_activeMotionGraphicsUri = Lens.lens (\PipelineDetail' {activeMotionGraphicsUri} -> activeMotionGraphicsUri) (\s@PipelineDetail' {} a -> s {activeMotionGraphicsUri = a} :: PipelineDetail)

-- | Pipeline ID
pipelineDetail_pipelineId :: Lens.Lens' PipelineDetail (Prelude.Maybe Prelude.Text)
pipelineDetail_pipelineId = Lens.lens (\PipelineDetail' {pipelineId} -> pipelineId) (\s@PipelineDetail' {} a -> s {pipelineId = a} :: PipelineDetail)

instance Data.FromJSON PipelineDetail where
  parseJSON =
    Data.withObject
      "PipelineDetail"
      ( \x ->
          PipelineDetail'
            Prelude.<$> (x Data..:? "activeInputAttachmentName")
            Prelude.<*> (x Data..:? "activeInputSwitchActionName")
            Prelude.<*> (x Data..:? "activeMotionGraphicsActionName")
            Prelude.<*> (x Data..:? "activeMotionGraphicsUri")
            Prelude.<*> (x Data..:? "pipelineId")
      )

instance Prelude.Hashable PipelineDetail where
  hashWithSalt _salt PipelineDetail' {..} =
    _salt
      `Prelude.hashWithSalt` activeInputAttachmentName
      `Prelude.hashWithSalt` activeInputSwitchActionName
      `Prelude.hashWithSalt` activeMotionGraphicsActionName
      `Prelude.hashWithSalt` activeMotionGraphicsUri
      `Prelude.hashWithSalt` pipelineId

instance Prelude.NFData PipelineDetail where
  rnf PipelineDetail' {..} =
    Prelude.rnf activeInputAttachmentName
      `Prelude.seq` Prelude.rnf activeInputSwitchActionName
      `Prelude.seq` Prelude.rnf activeMotionGraphicsActionName
      `Prelude.seq` Prelude.rnf activeMotionGraphicsUri
      `Prelude.seq` Prelude.rnf pipelineId