{-# 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 #-}
module Amazonka.IVS.Types.RecordingConfiguration 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.DestinationConfiguration
import Amazonka.IVS.Types.RecordingConfigurationState
import Amazonka.IVS.Types.ThumbnailConfiguration
import qualified Amazonka.Prelude as Prelude
data RecordingConfiguration = RecordingConfiguration'
{
RecordingConfiguration -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
RecordingConfiguration -> Maybe Natural
recordingReconnectWindowSeconds :: Prelude.Maybe Prelude.Natural,
RecordingConfiguration -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
RecordingConfiguration -> Maybe ThumbnailConfiguration
thumbnailConfiguration :: Prelude.Maybe ThumbnailConfiguration,
RecordingConfiguration -> Text
arn :: Prelude.Text,
RecordingConfiguration -> DestinationConfiguration
destinationConfiguration :: DestinationConfiguration,
RecordingConfiguration -> RecordingConfigurationState
state :: RecordingConfigurationState
}
deriving (RecordingConfiguration -> RecordingConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RecordingConfiguration -> RecordingConfiguration -> Bool
$c/= :: RecordingConfiguration -> RecordingConfiguration -> Bool
== :: RecordingConfiguration -> RecordingConfiguration -> Bool
$c== :: RecordingConfiguration -> RecordingConfiguration -> Bool
Prelude.Eq, ReadPrec [RecordingConfiguration]
ReadPrec RecordingConfiguration
Int -> ReadS RecordingConfiguration
ReadS [RecordingConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [RecordingConfiguration]
$creadListPrec :: ReadPrec [RecordingConfiguration]
readPrec :: ReadPrec RecordingConfiguration
$creadPrec :: ReadPrec RecordingConfiguration
readList :: ReadS [RecordingConfiguration]
$creadList :: ReadS [RecordingConfiguration]
readsPrec :: Int -> ReadS RecordingConfiguration
$creadsPrec :: Int -> ReadS RecordingConfiguration
Prelude.Read, Int -> RecordingConfiguration -> ShowS
[RecordingConfiguration] -> ShowS
RecordingConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RecordingConfiguration] -> ShowS
$cshowList :: [RecordingConfiguration] -> ShowS
show :: RecordingConfiguration -> String
$cshow :: RecordingConfiguration -> String
showsPrec :: Int -> RecordingConfiguration -> ShowS
$cshowsPrec :: Int -> RecordingConfiguration -> ShowS
Prelude.Show, forall x. Rep RecordingConfiguration x -> RecordingConfiguration
forall x. RecordingConfiguration -> Rep RecordingConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RecordingConfiguration x -> RecordingConfiguration
$cfrom :: forall x. RecordingConfiguration -> Rep RecordingConfiguration x
Prelude.Generic)
newRecordingConfiguration ::
Prelude.Text ->
DestinationConfiguration ->
RecordingConfigurationState ->
RecordingConfiguration
newRecordingConfiguration :: Text
-> DestinationConfiguration
-> RecordingConfigurationState
-> RecordingConfiguration
newRecordingConfiguration
Text
pArn_
DestinationConfiguration
pDestinationConfiguration_
RecordingConfigurationState
pState_ =
RecordingConfiguration'
{ $sel:name:RecordingConfiguration' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:recordingReconnectWindowSeconds:RecordingConfiguration' :: Maybe Natural
recordingReconnectWindowSeconds = forall a. Maybe a
Prelude.Nothing,
$sel:tags:RecordingConfiguration' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
$sel:thumbnailConfiguration:RecordingConfiguration' :: Maybe ThumbnailConfiguration
thumbnailConfiguration = forall a. Maybe a
Prelude.Nothing,
$sel:arn:RecordingConfiguration' :: Text
arn = Text
pArn_,
$sel:destinationConfiguration:RecordingConfiguration' :: DestinationConfiguration
destinationConfiguration =
DestinationConfiguration
pDestinationConfiguration_,
$sel:state:RecordingConfiguration' :: RecordingConfigurationState
state = RecordingConfigurationState
pState_
}
recordingConfiguration_name :: Lens.Lens' RecordingConfiguration (Prelude.Maybe Prelude.Text)
recordingConfiguration_name :: Lens' RecordingConfiguration (Maybe Text)
recordingConfiguration_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RecordingConfiguration' {Maybe Text
name :: Maybe Text
$sel:name:RecordingConfiguration' :: RecordingConfiguration -> Maybe Text
name} -> Maybe Text
name) (\s :: RecordingConfiguration
s@RecordingConfiguration' {} Maybe Text
a -> RecordingConfiguration
s {$sel:name:RecordingConfiguration' :: Maybe Text
name = Maybe Text
a} :: RecordingConfiguration)
recordingConfiguration_recordingReconnectWindowSeconds :: Lens.Lens' RecordingConfiguration (Prelude.Maybe Prelude.Natural)
recordingConfiguration_recordingReconnectWindowSeconds :: Lens' RecordingConfiguration (Maybe Natural)
recordingConfiguration_recordingReconnectWindowSeconds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RecordingConfiguration' {Maybe Natural
recordingReconnectWindowSeconds :: Maybe Natural
$sel:recordingReconnectWindowSeconds:RecordingConfiguration' :: RecordingConfiguration -> Maybe Natural
recordingReconnectWindowSeconds} -> Maybe Natural
recordingReconnectWindowSeconds) (\s :: RecordingConfiguration
s@RecordingConfiguration' {} Maybe Natural
a -> RecordingConfiguration
s {$sel:recordingReconnectWindowSeconds:RecordingConfiguration' :: Maybe Natural
recordingReconnectWindowSeconds = Maybe Natural
a} :: RecordingConfiguration)
recordingConfiguration_tags :: Lens.Lens' RecordingConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
recordingConfiguration_tags :: Lens' RecordingConfiguration (Maybe (HashMap Text Text))
recordingConfiguration_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RecordingConfiguration' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:RecordingConfiguration' :: RecordingConfiguration -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: RecordingConfiguration
s@RecordingConfiguration' {} Maybe (HashMap Text Text)
a -> RecordingConfiguration
s {$sel:tags:RecordingConfiguration' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: RecordingConfiguration) 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
recordingConfiguration_thumbnailConfiguration :: Lens.Lens' RecordingConfiguration (Prelude.Maybe ThumbnailConfiguration)
recordingConfiguration_thumbnailConfiguration :: Lens' RecordingConfiguration (Maybe ThumbnailConfiguration)
recordingConfiguration_thumbnailConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RecordingConfiguration' {Maybe ThumbnailConfiguration
thumbnailConfiguration :: Maybe ThumbnailConfiguration
$sel:thumbnailConfiguration:RecordingConfiguration' :: RecordingConfiguration -> Maybe ThumbnailConfiguration
thumbnailConfiguration} -> Maybe ThumbnailConfiguration
thumbnailConfiguration) (\s :: RecordingConfiguration
s@RecordingConfiguration' {} Maybe ThumbnailConfiguration
a -> RecordingConfiguration
s {$sel:thumbnailConfiguration:RecordingConfiguration' :: Maybe ThumbnailConfiguration
thumbnailConfiguration = Maybe ThumbnailConfiguration
a} :: RecordingConfiguration)
recordingConfiguration_arn :: Lens.Lens' RecordingConfiguration Prelude.Text
recordingConfiguration_arn :: Lens' RecordingConfiguration Text
recordingConfiguration_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RecordingConfiguration' {Text
arn :: Text
$sel:arn:RecordingConfiguration' :: RecordingConfiguration -> Text
arn} -> Text
arn) (\s :: RecordingConfiguration
s@RecordingConfiguration' {} Text
a -> RecordingConfiguration
s {$sel:arn:RecordingConfiguration' :: Text
arn = Text
a} :: RecordingConfiguration)
recordingConfiguration_destinationConfiguration :: Lens.Lens' RecordingConfiguration DestinationConfiguration
recordingConfiguration_destinationConfiguration :: Lens' RecordingConfiguration DestinationConfiguration
recordingConfiguration_destinationConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RecordingConfiguration' {DestinationConfiguration
destinationConfiguration :: DestinationConfiguration
$sel:destinationConfiguration:RecordingConfiguration' :: RecordingConfiguration -> DestinationConfiguration
destinationConfiguration} -> DestinationConfiguration
destinationConfiguration) (\s :: RecordingConfiguration
s@RecordingConfiguration' {} DestinationConfiguration
a -> RecordingConfiguration
s {$sel:destinationConfiguration:RecordingConfiguration' :: DestinationConfiguration
destinationConfiguration = DestinationConfiguration
a} :: RecordingConfiguration)
recordingConfiguration_state :: Lens.Lens' RecordingConfiguration RecordingConfigurationState
recordingConfiguration_state :: Lens' RecordingConfiguration RecordingConfigurationState
recordingConfiguration_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RecordingConfiguration' {RecordingConfigurationState
state :: RecordingConfigurationState
$sel:state:RecordingConfiguration' :: RecordingConfiguration -> RecordingConfigurationState
state} -> RecordingConfigurationState
state) (\s :: RecordingConfiguration
s@RecordingConfiguration' {} RecordingConfigurationState
a -> RecordingConfiguration
s {$sel:state:RecordingConfiguration' :: RecordingConfigurationState
state = RecordingConfigurationState
a} :: RecordingConfiguration)
instance Data.FromJSON RecordingConfiguration where
parseJSON :: Value -> Parser RecordingConfiguration
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"RecordingConfiguration"
( \Object
x ->
Maybe Text
-> Maybe Natural
-> Maybe (HashMap Text Text)
-> Maybe ThumbnailConfiguration
-> Text
-> DestinationConfiguration
-> RecordingConfigurationState
-> RecordingConfiguration
RecordingConfiguration'
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
"name")
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
"recordingReconnectWindowSeconds")
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
"tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"thumbnailConfiguration")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"arn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"destinationConfiguration")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"state")
)
instance Prelude.Hashable RecordingConfiguration where
hashWithSalt :: Int -> RecordingConfiguration -> Int
hashWithSalt Int
_salt RecordingConfiguration' {Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Maybe ThumbnailConfiguration
Text
RecordingConfigurationState
DestinationConfiguration
state :: RecordingConfigurationState
destinationConfiguration :: DestinationConfiguration
arn :: Text
thumbnailConfiguration :: Maybe ThumbnailConfiguration
tags :: Maybe (HashMap Text Text)
recordingReconnectWindowSeconds :: Maybe Natural
name :: Maybe Text
$sel:state:RecordingConfiguration' :: RecordingConfiguration -> RecordingConfigurationState
$sel:destinationConfiguration:RecordingConfiguration' :: RecordingConfiguration -> DestinationConfiguration
$sel:arn:RecordingConfiguration' :: RecordingConfiguration -> Text
$sel:thumbnailConfiguration:RecordingConfiguration' :: RecordingConfiguration -> Maybe ThumbnailConfiguration
$sel:tags:RecordingConfiguration' :: RecordingConfiguration -> Maybe (HashMap Text Text)
$sel:recordingReconnectWindowSeconds:RecordingConfiguration' :: RecordingConfiguration -> Maybe Natural
$sel:name:RecordingConfiguration' :: RecordingConfiguration -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
recordingReconnectWindowSeconds
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ThumbnailConfiguration
thumbnailConfiguration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
arn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` DestinationConfiguration
destinationConfiguration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` RecordingConfigurationState
state
instance Prelude.NFData RecordingConfiguration where
rnf :: RecordingConfiguration -> ()
rnf RecordingConfiguration' {Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Maybe ThumbnailConfiguration
Text
RecordingConfigurationState
DestinationConfiguration
state :: RecordingConfigurationState
destinationConfiguration :: DestinationConfiguration
arn :: Text
thumbnailConfiguration :: Maybe ThumbnailConfiguration
tags :: Maybe (HashMap Text Text)
recordingReconnectWindowSeconds :: Maybe Natural
name :: Maybe Text
$sel:state:RecordingConfiguration' :: RecordingConfiguration -> RecordingConfigurationState
$sel:destinationConfiguration:RecordingConfiguration' :: RecordingConfiguration -> DestinationConfiguration
$sel:arn:RecordingConfiguration' :: RecordingConfiguration -> Text
$sel:thumbnailConfiguration:RecordingConfiguration' :: RecordingConfiguration -> Maybe ThumbnailConfiguration
$sel:tags:RecordingConfiguration' :: RecordingConfiguration -> Maybe (HashMap Text Text)
$sel:recordingReconnectWindowSeconds:RecordingConfiguration' :: RecordingConfiguration -> Maybe Natural
$sel:name:RecordingConfiguration' :: RecordingConfiguration -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
recordingReconnectWindowSeconds
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ThumbnailConfiguration
thumbnailConfiguration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf DestinationConfiguration
destinationConfiguration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf RecordingConfigurationState
state