amazonka-chime-2.0: gen/Amazonka/Chime/Types/MediaCapturePipeline.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.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@.
chimeSdkMeetingConfiguration :: Prelude.Maybe ChimeSdkMeetingConfiguration,
-- | The time at which the capture pipeline was created, in ISO 8601 format.
createdTimestamp :: Prelude.Maybe Data.ISO8601,
-- | The ID of a media capture pipeline.
mediaPipelineId :: Prelude.Maybe Prelude.Text,
-- | ARN of the destination to which the media artifacts are saved.
sinkArn :: Prelude.Maybe (Data.Sensitive Prelude.Text),
-- | Destination type to which the media artifacts are saved. You must use an
-- S3 Bucket.
sinkType :: Prelude.Maybe MediaPipelineSinkType,
-- | ARN of the source from which the media artifacts will be saved.
sourceArn :: Prelude.Maybe (Data.Sensitive Prelude.Text),
-- | Source type from which media artifacts are saved. You must use
-- @ChimeMeeting@.
sourceType :: Prelude.Maybe MediaPipelineSourceType,
-- | The status of the media capture pipeline.
status :: Prelude.Maybe MediaPipelineStatus,
-- | The time at which the capture pipeline was updated, in ISO 8601 format.
updatedTimestamp :: Prelude.Maybe Data.ISO8601
}
deriving (Prelude.Eq, Prelude.Show, 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'
{ chimeSdkMeetingConfiguration =
Prelude.Nothing,
createdTimestamp = Prelude.Nothing,
mediaPipelineId = Prelude.Nothing,
sinkArn = Prelude.Nothing,
sinkType = Prelude.Nothing,
sourceArn = Prelude.Nothing,
sourceType = Prelude.Nothing,
status = Prelude.Nothing,
updatedTimestamp = 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.lens (\MediaCapturePipeline' {chimeSdkMeetingConfiguration} -> chimeSdkMeetingConfiguration) (\s@MediaCapturePipeline' {} a -> s {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.lens (\MediaCapturePipeline' {createdTimestamp} -> createdTimestamp) (\s@MediaCapturePipeline' {} a -> s {createdTimestamp = a} :: MediaCapturePipeline) Prelude.. Lens.mapping Data._Time
-- | The ID of a media capture pipeline.
mediaCapturePipeline_mediaPipelineId :: Lens.Lens' MediaCapturePipeline (Prelude.Maybe Prelude.Text)
mediaCapturePipeline_mediaPipelineId = Lens.lens (\MediaCapturePipeline' {mediaPipelineId} -> mediaPipelineId) (\s@MediaCapturePipeline' {} a -> s {mediaPipelineId = 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.lens (\MediaCapturePipeline' {sinkArn} -> sinkArn) (\s@MediaCapturePipeline' {} a -> s {sinkArn = a} :: MediaCapturePipeline) Prelude.. Lens.mapping 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.lens (\MediaCapturePipeline' {sinkType} -> sinkType) (\s@MediaCapturePipeline' {} a -> s {sinkType = 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.lens (\MediaCapturePipeline' {sourceArn} -> sourceArn) (\s@MediaCapturePipeline' {} a -> s {sourceArn = a} :: MediaCapturePipeline) Prelude.. Lens.mapping 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.lens (\MediaCapturePipeline' {sourceType} -> sourceType) (\s@MediaCapturePipeline' {} a -> s {sourceType = a} :: MediaCapturePipeline)
-- | The status of the media capture pipeline.
mediaCapturePipeline_status :: Lens.Lens' MediaCapturePipeline (Prelude.Maybe MediaPipelineStatus)
mediaCapturePipeline_status = Lens.lens (\MediaCapturePipeline' {status} -> status) (\s@MediaCapturePipeline' {} a -> s {status = 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.lens (\MediaCapturePipeline' {updatedTimestamp} -> updatedTimestamp) (\s@MediaCapturePipeline' {} a -> s {updatedTimestamp = a} :: MediaCapturePipeline) Prelude.. Lens.mapping Data._Time
instance Data.FromJSON MediaCapturePipeline where
parseJSON =
Data.withObject
"MediaCapturePipeline"
( \x ->
MediaCapturePipeline'
Prelude.<$> (x Data..:? "ChimeSdkMeetingConfiguration")
Prelude.<*> (x Data..:? "CreatedTimestamp")
Prelude.<*> (x Data..:? "MediaPipelineId")
Prelude.<*> (x Data..:? "SinkArn")
Prelude.<*> (x Data..:? "SinkType")
Prelude.<*> (x Data..:? "SourceArn")
Prelude.<*> (x Data..:? "SourceType")
Prelude.<*> (x Data..:? "Status")
Prelude.<*> (x Data..:? "UpdatedTimestamp")
)
instance Prelude.Hashable MediaCapturePipeline where
hashWithSalt _salt MediaCapturePipeline' {..} =
_salt
`Prelude.hashWithSalt` chimeSdkMeetingConfiguration
`Prelude.hashWithSalt` createdTimestamp
`Prelude.hashWithSalt` mediaPipelineId
`Prelude.hashWithSalt` sinkArn
`Prelude.hashWithSalt` sinkType
`Prelude.hashWithSalt` sourceArn
`Prelude.hashWithSalt` sourceType
`Prelude.hashWithSalt` status
`Prelude.hashWithSalt` updatedTimestamp
instance Prelude.NFData MediaCapturePipeline where
rnf MediaCapturePipeline' {..} =
Prelude.rnf chimeSdkMeetingConfiguration
`Prelude.seq` Prelude.rnf createdTimestamp
`Prelude.seq` Prelude.rnf mediaPipelineId
`Prelude.seq` Prelude.rnf sinkArn
`Prelude.seq` Prelude.rnf sinkType
`Prelude.seq` Prelude.rnf sourceArn
`Prelude.seq` Prelude.rnf sourceType
`Prelude.seq` Prelude.rnf status
`Prelude.seq` Prelude.rnf updatedTimestamp