{-# 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.Chime.Types.MediaCapturePipeline
-- 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.Chime.Types.MediaCapturePipeline where

import Amazonka.Chime.Types.ChimeSdkMeetingConfiguration
import Amazonka.Chime.Types.MediaPipelineSinkType
import Amazonka.Chime.Types.MediaPipelineSourceType
import Amazonka.Chime.Types.MediaPipelineStatus
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

-- | A media capture pipeline object consisting of an ID, source type, source
-- ARN, a sink type, a sink ARN, and a configuration object.
--
-- /See:/ 'newMediaCapturePipeline' smart constructor.
data MediaCapturePipeline = MediaCapturePipeline'
  { -- | The configuration for a specified media capture pipeline. @SourceType@
    -- must be @ChimeSdkMeeting@.
    MediaCapturePipeline -> Maybe ChimeSdkMeetingConfiguration
chimeSdkMeetingConfiguration :: Prelude.Maybe ChimeSdkMeetingConfiguration,
    -- | The time at which the capture pipeline was created, in ISO 8601 format.
    MediaCapturePipeline -> Maybe ISO8601
createdTimestamp :: Prelude.Maybe Data.ISO8601,
    -- | The ID of a media capture pipeline.
    MediaCapturePipeline -> Maybe Text
mediaPipelineId :: Prelude.Maybe Prelude.Text,
    -- | ARN of the destination to which the media artifacts are saved.
    MediaCapturePipeline -> Maybe (Sensitive Text)
sinkArn :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | Destination type to which the media artifacts are saved. You must use an
    -- S3 Bucket.
    MediaCapturePipeline -> Maybe MediaPipelineSinkType
sinkType :: Prelude.Maybe MediaPipelineSinkType,
    -- | ARN of the source from which the media artifacts will be saved.
    MediaCapturePipeline -> Maybe (Sensitive Text)
sourceArn :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | Source type from which media artifacts are saved. You must use
    -- @ChimeMeeting@.
    MediaCapturePipeline -> Maybe MediaPipelineSourceType
sourceType :: Prelude.Maybe MediaPipelineSourceType,
    -- | The status of the media capture pipeline.
    MediaCapturePipeline -> Maybe MediaPipelineStatus
status :: Prelude.Maybe MediaPipelineStatus,
    -- | The time at which the capture pipeline was updated, in ISO 8601 format.
    MediaCapturePipeline -> Maybe ISO8601
updatedTimestamp :: Prelude.Maybe Data.ISO8601
  }
  deriving (MediaCapturePipeline -> MediaCapturePipeline -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MediaCapturePipeline -> MediaCapturePipeline -> Bool
$c/= :: MediaCapturePipeline -> MediaCapturePipeline -> Bool
== :: MediaCapturePipeline -> MediaCapturePipeline -> Bool
$c== :: MediaCapturePipeline -> MediaCapturePipeline -> Bool
Prelude.Eq, Int -> MediaCapturePipeline -> ShowS
[MediaCapturePipeline] -> ShowS
MediaCapturePipeline -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MediaCapturePipeline] -> ShowS
$cshowList :: [MediaCapturePipeline] -> ShowS
show :: MediaCapturePipeline -> String
$cshow :: MediaCapturePipeline -> String
showsPrec :: Int -> MediaCapturePipeline -> ShowS
$cshowsPrec :: Int -> MediaCapturePipeline -> ShowS
Prelude.Show, forall x. Rep MediaCapturePipeline x -> MediaCapturePipeline
forall x. MediaCapturePipeline -> Rep MediaCapturePipeline x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep MediaCapturePipeline x -> MediaCapturePipeline
$cfrom :: forall x. MediaCapturePipeline -> Rep MediaCapturePipeline x
Prelude.Generic)

-- |
-- Create a value of 'MediaCapturePipeline' 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:
--
-- 'chimeSdkMeetingConfiguration', 'mediaCapturePipeline_chimeSdkMeetingConfiguration' - The configuration for a specified media capture pipeline. @SourceType@
-- must be @ChimeSdkMeeting@.
--
-- 'createdTimestamp', 'mediaCapturePipeline_createdTimestamp' - The time at which the capture pipeline was created, in ISO 8601 format.
--
-- 'mediaPipelineId', 'mediaCapturePipeline_mediaPipelineId' - The ID of a media capture pipeline.
--
-- 'sinkArn', 'mediaCapturePipeline_sinkArn' - ARN of the destination to which the media artifacts are saved.
--
-- 'sinkType', 'mediaCapturePipeline_sinkType' - Destination type to which the media artifacts are saved. You must use an
-- S3 Bucket.
--
-- 'sourceArn', 'mediaCapturePipeline_sourceArn' - ARN of the source from which the media artifacts will be saved.
--
-- 'sourceType', 'mediaCapturePipeline_sourceType' - Source type from which media artifacts are saved. You must use
-- @ChimeMeeting@.
--
-- 'status', 'mediaCapturePipeline_status' - The status of the media capture pipeline.
--
-- 'updatedTimestamp', 'mediaCapturePipeline_updatedTimestamp' - The time at which the capture pipeline was updated, in ISO 8601 format.
newMediaCapturePipeline ::
  MediaCapturePipeline
newMediaCapturePipeline :: MediaCapturePipeline
newMediaCapturePipeline =
  MediaCapturePipeline'
    { $sel:chimeSdkMeetingConfiguration:MediaCapturePipeline' :: Maybe ChimeSdkMeetingConfiguration
chimeSdkMeetingConfiguration =
        forall a. Maybe a
Prelude.Nothing,
      $sel:createdTimestamp:MediaCapturePipeline' :: Maybe ISO8601
createdTimestamp = forall a. Maybe a
Prelude.Nothing,
      $sel:mediaPipelineId:MediaCapturePipeline' :: Maybe Text
mediaPipelineId = forall a. Maybe a
Prelude.Nothing,
      $sel:sinkArn:MediaCapturePipeline' :: Maybe (Sensitive Text)
sinkArn = forall a. Maybe a
Prelude.Nothing,
      $sel:sinkType:MediaCapturePipeline' :: Maybe MediaPipelineSinkType
sinkType = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceArn:MediaCapturePipeline' :: Maybe (Sensitive Text)
sourceArn = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceType:MediaCapturePipeline' :: Maybe MediaPipelineSourceType
sourceType = forall a. Maybe a
Prelude.Nothing,
      $sel:status:MediaCapturePipeline' :: Maybe MediaPipelineStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:updatedTimestamp:MediaCapturePipeline' :: Maybe ISO8601
updatedTimestamp = forall a. Maybe a
Prelude.Nothing
    }

-- | The configuration for a specified media capture pipeline. @SourceType@
-- must be @ChimeSdkMeeting@.
mediaCapturePipeline_chimeSdkMeetingConfiguration :: Lens.Lens' MediaCapturePipeline (Prelude.Maybe ChimeSdkMeetingConfiguration)
mediaCapturePipeline_chimeSdkMeetingConfiguration :: Lens' MediaCapturePipeline (Maybe ChimeSdkMeetingConfiguration)
mediaCapturePipeline_chimeSdkMeetingConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MediaCapturePipeline' {Maybe ChimeSdkMeetingConfiguration
chimeSdkMeetingConfiguration :: Maybe ChimeSdkMeetingConfiguration
$sel:chimeSdkMeetingConfiguration:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe ChimeSdkMeetingConfiguration
chimeSdkMeetingConfiguration} -> Maybe ChimeSdkMeetingConfiguration
chimeSdkMeetingConfiguration) (\s :: MediaCapturePipeline
s@MediaCapturePipeline' {} Maybe ChimeSdkMeetingConfiguration
a -> MediaCapturePipeline
s {$sel:chimeSdkMeetingConfiguration:MediaCapturePipeline' :: Maybe ChimeSdkMeetingConfiguration
chimeSdkMeetingConfiguration = Maybe ChimeSdkMeetingConfiguration
a} :: MediaCapturePipeline)

-- | The time at which the capture pipeline was created, in ISO 8601 format.
mediaCapturePipeline_createdTimestamp :: Lens.Lens' MediaCapturePipeline (Prelude.Maybe Prelude.UTCTime)
mediaCapturePipeline_createdTimestamp :: Lens' MediaCapturePipeline (Maybe UTCTime)
mediaCapturePipeline_createdTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MediaCapturePipeline' {Maybe ISO8601
createdTimestamp :: Maybe ISO8601
$sel:createdTimestamp:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe ISO8601
createdTimestamp} -> Maybe ISO8601
createdTimestamp) (\s :: MediaCapturePipeline
s@MediaCapturePipeline' {} Maybe ISO8601
a -> MediaCapturePipeline
s {$sel:createdTimestamp:MediaCapturePipeline' :: Maybe ISO8601
createdTimestamp = Maybe ISO8601
a} :: MediaCapturePipeline) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The ID of a media capture pipeline.
mediaCapturePipeline_mediaPipelineId :: Lens.Lens' MediaCapturePipeline (Prelude.Maybe Prelude.Text)
mediaCapturePipeline_mediaPipelineId :: Lens' MediaCapturePipeline (Maybe Text)
mediaCapturePipeline_mediaPipelineId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MediaCapturePipeline' {Maybe Text
mediaPipelineId :: Maybe Text
$sel:mediaPipelineId:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe Text
mediaPipelineId} -> Maybe Text
mediaPipelineId) (\s :: MediaCapturePipeline
s@MediaCapturePipeline' {} Maybe Text
a -> MediaCapturePipeline
s {$sel:mediaPipelineId:MediaCapturePipeline' :: Maybe Text
mediaPipelineId = Maybe Text
a} :: MediaCapturePipeline)

-- | ARN of the destination to which the media artifacts are saved.
mediaCapturePipeline_sinkArn :: Lens.Lens' MediaCapturePipeline (Prelude.Maybe Prelude.Text)
mediaCapturePipeline_sinkArn :: Lens' MediaCapturePipeline (Maybe Text)
mediaCapturePipeline_sinkArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MediaCapturePipeline' {Maybe (Sensitive Text)
sinkArn :: Maybe (Sensitive Text)
$sel:sinkArn:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe (Sensitive Text)
sinkArn} -> Maybe (Sensitive Text)
sinkArn) (\s :: MediaCapturePipeline
s@MediaCapturePipeline' {} Maybe (Sensitive Text)
a -> MediaCapturePipeline
s {$sel:sinkArn:MediaCapturePipeline' :: Maybe (Sensitive Text)
sinkArn = Maybe (Sensitive Text)
a} :: MediaCapturePipeline) 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 a. Iso' (Sensitive a) a
Data._Sensitive

-- | Destination type to which the media artifacts are saved. You must use an
-- S3 Bucket.
mediaCapturePipeline_sinkType :: Lens.Lens' MediaCapturePipeline (Prelude.Maybe MediaPipelineSinkType)
mediaCapturePipeline_sinkType :: Lens' MediaCapturePipeline (Maybe MediaPipelineSinkType)
mediaCapturePipeline_sinkType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MediaCapturePipeline' {Maybe MediaPipelineSinkType
sinkType :: Maybe MediaPipelineSinkType
$sel:sinkType:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe MediaPipelineSinkType
sinkType} -> Maybe MediaPipelineSinkType
sinkType) (\s :: MediaCapturePipeline
s@MediaCapturePipeline' {} Maybe MediaPipelineSinkType
a -> MediaCapturePipeline
s {$sel:sinkType:MediaCapturePipeline' :: Maybe MediaPipelineSinkType
sinkType = Maybe MediaPipelineSinkType
a} :: MediaCapturePipeline)

-- | ARN of the source from which the media artifacts will be saved.
mediaCapturePipeline_sourceArn :: Lens.Lens' MediaCapturePipeline (Prelude.Maybe Prelude.Text)
mediaCapturePipeline_sourceArn :: Lens' MediaCapturePipeline (Maybe Text)
mediaCapturePipeline_sourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MediaCapturePipeline' {Maybe (Sensitive Text)
sourceArn :: Maybe (Sensitive Text)
$sel:sourceArn:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe (Sensitive Text)
sourceArn} -> Maybe (Sensitive Text)
sourceArn) (\s :: MediaCapturePipeline
s@MediaCapturePipeline' {} Maybe (Sensitive Text)
a -> MediaCapturePipeline
s {$sel:sourceArn:MediaCapturePipeline' :: Maybe (Sensitive Text)
sourceArn = Maybe (Sensitive Text)
a} :: MediaCapturePipeline) 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 a. Iso' (Sensitive a) a
Data._Sensitive

-- | Source type from which media artifacts are saved. You must use
-- @ChimeMeeting@.
mediaCapturePipeline_sourceType :: Lens.Lens' MediaCapturePipeline (Prelude.Maybe MediaPipelineSourceType)
mediaCapturePipeline_sourceType :: Lens' MediaCapturePipeline (Maybe MediaPipelineSourceType)
mediaCapturePipeline_sourceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MediaCapturePipeline' {Maybe MediaPipelineSourceType
sourceType :: Maybe MediaPipelineSourceType
$sel:sourceType:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe MediaPipelineSourceType
sourceType} -> Maybe MediaPipelineSourceType
sourceType) (\s :: MediaCapturePipeline
s@MediaCapturePipeline' {} Maybe MediaPipelineSourceType
a -> MediaCapturePipeline
s {$sel:sourceType:MediaCapturePipeline' :: Maybe MediaPipelineSourceType
sourceType = Maybe MediaPipelineSourceType
a} :: MediaCapturePipeline)

-- | The status of the media capture pipeline.
mediaCapturePipeline_status :: Lens.Lens' MediaCapturePipeline (Prelude.Maybe MediaPipelineStatus)
mediaCapturePipeline_status :: Lens' MediaCapturePipeline (Maybe MediaPipelineStatus)
mediaCapturePipeline_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MediaCapturePipeline' {Maybe MediaPipelineStatus
status :: Maybe MediaPipelineStatus
$sel:status:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe MediaPipelineStatus
status} -> Maybe MediaPipelineStatus
status) (\s :: MediaCapturePipeline
s@MediaCapturePipeline' {} Maybe MediaPipelineStatus
a -> MediaCapturePipeline
s {$sel:status:MediaCapturePipeline' :: Maybe MediaPipelineStatus
status = Maybe MediaPipelineStatus
a} :: MediaCapturePipeline)

-- | The time at which the capture pipeline was updated, in ISO 8601 format.
mediaCapturePipeline_updatedTimestamp :: Lens.Lens' MediaCapturePipeline (Prelude.Maybe Prelude.UTCTime)
mediaCapturePipeline_updatedTimestamp :: Lens' MediaCapturePipeline (Maybe UTCTime)
mediaCapturePipeline_updatedTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MediaCapturePipeline' {Maybe ISO8601
updatedTimestamp :: Maybe ISO8601
$sel:updatedTimestamp:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe ISO8601
updatedTimestamp} -> Maybe ISO8601
updatedTimestamp) (\s :: MediaCapturePipeline
s@MediaCapturePipeline' {} Maybe ISO8601
a -> MediaCapturePipeline
s {$sel:updatedTimestamp:MediaCapturePipeline' :: Maybe ISO8601
updatedTimestamp = Maybe ISO8601
a} :: MediaCapturePipeline) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

instance Data.FromJSON MediaCapturePipeline where
  parseJSON :: Value -> Parser MediaCapturePipeline
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"MediaCapturePipeline"
      ( \Object
x ->
          Maybe ChimeSdkMeetingConfiguration
-> Maybe ISO8601
-> Maybe Text
-> Maybe (Sensitive Text)
-> Maybe MediaPipelineSinkType
-> Maybe (Sensitive Text)
-> Maybe MediaPipelineSourceType
-> Maybe MediaPipelineStatus
-> Maybe ISO8601
-> MediaCapturePipeline
MediaCapturePipeline'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ChimeSdkMeetingConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CreatedTimestamp")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MediaPipelineId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SinkArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SinkType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SourceArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SourceType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"UpdatedTimestamp")
      )

instance Prelude.Hashable MediaCapturePipeline where
  hashWithSalt :: Int -> MediaCapturePipeline -> Int
hashWithSalt Int
_salt MediaCapturePipeline' {Maybe Text
Maybe (Sensitive Text)
Maybe ISO8601
Maybe MediaPipelineSinkType
Maybe MediaPipelineSourceType
Maybe MediaPipelineStatus
Maybe ChimeSdkMeetingConfiguration
updatedTimestamp :: Maybe ISO8601
status :: Maybe MediaPipelineStatus
sourceType :: Maybe MediaPipelineSourceType
sourceArn :: Maybe (Sensitive Text)
sinkType :: Maybe MediaPipelineSinkType
sinkArn :: Maybe (Sensitive Text)
mediaPipelineId :: Maybe Text
createdTimestamp :: Maybe ISO8601
chimeSdkMeetingConfiguration :: Maybe ChimeSdkMeetingConfiguration
$sel:updatedTimestamp:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe ISO8601
$sel:status:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe MediaPipelineStatus
$sel:sourceType:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe MediaPipelineSourceType
$sel:sourceArn:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe (Sensitive Text)
$sel:sinkType:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe MediaPipelineSinkType
$sel:sinkArn:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe (Sensitive Text)
$sel:mediaPipelineId:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe Text
$sel:createdTimestamp:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe ISO8601
$sel:chimeSdkMeetingConfiguration:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe ChimeSdkMeetingConfiguration
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChimeSdkMeetingConfiguration
chimeSdkMeetingConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
createdTimestamp
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
mediaPipelineId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
sinkArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MediaPipelineSinkType
sinkType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
sourceArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MediaPipelineSourceType
sourceType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MediaPipelineStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
updatedTimestamp

instance Prelude.NFData MediaCapturePipeline where
  rnf :: MediaCapturePipeline -> ()
rnf MediaCapturePipeline' {Maybe Text
Maybe (Sensitive Text)
Maybe ISO8601
Maybe MediaPipelineSinkType
Maybe MediaPipelineSourceType
Maybe MediaPipelineStatus
Maybe ChimeSdkMeetingConfiguration
updatedTimestamp :: Maybe ISO8601
status :: Maybe MediaPipelineStatus
sourceType :: Maybe MediaPipelineSourceType
sourceArn :: Maybe (Sensitive Text)
sinkType :: Maybe MediaPipelineSinkType
sinkArn :: Maybe (Sensitive Text)
mediaPipelineId :: Maybe Text
createdTimestamp :: Maybe ISO8601
chimeSdkMeetingConfiguration :: Maybe ChimeSdkMeetingConfiguration
$sel:updatedTimestamp:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe ISO8601
$sel:status:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe MediaPipelineStatus
$sel:sourceType:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe MediaPipelineSourceType
$sel:sourceArn:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe (Sensitive Text)
$sel:sinkType:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe MediaPipelineSinkType
$sel:sinkArn:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe (Sensitive Text)
$sel:mediaPipelineId:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe Text
$sel:createdTimestamp:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe ISO8601
$sel:chimeSdkMeetingConfiguration:MediaCapturePipeline' :: MediaCapturePipeline -> Maybe ChimeSdkMeetingConfiguration
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ChimeSdkMeetingConfiguration
chimeSdkMeetingConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
createdTimestamp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
mediaPipelineId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
sinkArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MediaPipelineSinkType
sinkType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
sourceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MediaPipelineSourceType
sourceType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MediaPipelineStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
updatedTimestamp