{-# 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.MacieV2.Types.JobScheduleFrequency where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MacieV2.Types.DailySchedule
import Amazonka.MacieV2.Types.MonthlySchedule
import Amazonka.MacieV2.Types.WeeklySchedule
import qualified Amazonka.Prelude as Prelude
data JobScheduleFrequency = JobScheduleFrequency'
{
JobScheduleFrequency -> Maybe DailySchedule
dailySchedule :: Prelude.Maybe DailySchedule,
JobScheduleFrequency -> Maybe MonthlySchedule
monthlySchedule :: Prelude.Maybe MonthlySchedule,
JobScheduleFrequency -> Maybe WeeklySchedule
weeklySchedule :: Prelude.Maybe WeeklySchedule
}
deriving (JobScheduleFrequency -> JobScheduleFrequency -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: JobScheduleFrequency -> JobScheduleFrequency -> Bool
$c/= :: JobScheduleFrequency -> JobScheduleFrequency -> Bool
== :: JobScheduleFrequency -> JobScheduleFrequency -> Bool
$c== :: JobScheduleFrequency -> JobScheduleFrequency -> Bool
Prelude.Eq, ReadPrec [JobScheduleFrequency]
ReadPrec JobScheduleFrequency
Int -> ReadS JobScheduleFrequency
ReadS [JobScheduleFrequency]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [JobScheduleFrequency]
$creadListPrec :: ReadPrec [JobScheduleFrequency]
readPrec :: ReadPrec JobScheduleFrequency
$creadPrec :: ReadPrec JobScheduleFrequency
readList :: ReadS [JobScheduleFrequency]
$creadList :: ReadS [JobScheduleFrequency]
readsPrec :: Int -> ReadS JobScheduleFrequency
$creadsPrec :: Int -> ReadS JobScheduleFrequency
Prelude.Read, Int -> JobScheduleFrequency -> ShowS
[JobScheduleFrequency] -> ShowS
JobScheduleFrequency -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [JobScheduleFrequency] -> ShowS
$cshowList :: [JobScheduleFrequency] -> ShowS
show :: JobScheduleFrequency -> String
$cshow :: JobScheduleFrequency -> String
showsPrec :: Int -> JobScheduleFrequency -> ShowS
$cshowsPrec :: Int -> JobScheduleFrequency -> ShowS
Prelude.Show, forall x. Rep JobScheduleFrequency x -> JobScheduleFrequency
forall x. JobScheduleFrequency -> Rep JobScheduleFrequency x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep JobScheduleFrequency x -> JobScheduleFrequency
$cfrom :: forall x. JobScheduleFrequency -> Rep JobScheduleFrequency x
Prelude.Generic)
newJobScheduleFrequency ::
JobScheduleFrequency
newJobScheduleFrequency :: JobScheduleFrequency
newJobScheduleFrequency =
JobScheduleFrequency'
{ $sel:dailySchedule:JobScheduleFrequency' :: Maybe DailySchedule
dailySchedule =
forall a. Maybe a
Prelude.Nothing,
$sel:monthlySchedule:JobScheduleFrequency' :: Maybe MonthlySchedule
monthlySchedule = forall a. Maybe a
Prelude.Nothing,
$sel:weeklySchedule:JobScheduleFrequency' :: Maybe WeeklySchedule
weeklySchedule = forall a. Maybe a
Prelude.Nothing
}
jobScheduleFrequency_dailySchedule :: Lens.Lens' JobScheduleFrequency (Prelude.Maybe DailySchedule)
jobScheduleFrequency_dailySchedule :: Lens' JobScheduleFrequency (Maybe DailySchedule)
jobScheduleFrequency_dailySchedule = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobScheduleFrequency' {Maybe DailySchedule
dailySchedule :: Maybe DailySchedule
$sel:dailySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe DailySchedule
dailySchedule} -> Maybe DailySchedule
dailySchedule) (\s :: JobScheduleFrequency
s@JobScheduleFrequency' {} Maybe DailySchedule
a -> JobScheduleFrequency
s {$sel:dailySchedule:JobScheduleFrequency' :: Maybe DailySchedule
dailySchedule = Maybe DailySchedule
a} :: JobScheduleFrequency)
jobScheduleFrequency_monthlySchedule :: Lens.Lens' JobScheduleFrequency (Prelude.Maybe MonthlySchedule)
jobScheduleFrequency_monthlySchedule :: Lens' JobScheduleFrequency (Maybe MonthlySchedule)
jobScheduleFrequency_monthlySchedule = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobScheduleFrequency' {Maybe MonthlySchedule
monthlySchedule :: Maybe MonthlySchedule
$sel:monthlySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe MonthlySchedule
monthlySchedule} -> Maybe MonthlySchedule
monthlySchedule) (\s :: JobScheduleFrequency
s@JobScheduleFrequency' {} Maybe MonthlySchedule
a -> JobScheduleFrequency
s {$sel:monthlySchedule:JobScheduleFrequency' :: Maybe MonthlySchedule
monthlySchedule = Maybe MonthlySchedule
a} :: JobScheduleFrequency)
jobScheduleFrequency_weeklySchedule :: Lens.Lens' JobScheduleFrequency (Prelude.Maybe WeeklySchedule)
jobScheduleFrequency_weeklySchedule :: Lens' JobScheduleFrequency (Maybe WeeklySchedule)
jobScheduleFrequency_weeklySchedule = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobScheduleFrequency' {Maybe WeeklySchedule
weeklySchedule :: Maybe WeeklySchedule
$sel:weeklySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe WeeklySchedule
weeklySchedule} -> Maybe WeeklySchedule
weeklySchedule) (\s :: JobScheduleFrequency
s@JobScheduleFrequency' {} Maybe WeeklySchedule
a -> JobScheduleFrequency
s {$sel:weeklySchedule:JobScheduleFrequency' :: Maybe WeeklySchedule
weeklySchedule = Maybe WeeklySchedule
a} :: JobScheduleFrequency)
instance Data.FromJSON JobScheduleFrequency where
parseJSON :: Value -> Parser JobScheduleFrequency
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"JobScheduleFrequency"
( \Object
x ->
Maybe DailySchedule
-> Maybe MonthlySchedule
-> Maybe WeeklySchedule
-> JobScheduleFrequency
JobScheduleFrequency'
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
"dailySchedule")
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
"monthlySchedule")
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
"weeklySchedule")
)
instance Prelude.Hashable JobScheduleFrequency where
hashWithSalt :: Int -> JobScheduleFrequency -> Int
hashWithSalt Int
_salt JobScheduleFrequency' {Maybe DailySchedule
Maybe MonthlySchedule
Maybe WeeklySchedule
weeklySchedule :: Maybe WeeklySchedule
monthlySchedule :: Maybe MonthlySchedule
dailySchedule :: Maybe DailySchedule
$sel:weeklySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe WeeklySchedule
$sel:monthlySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe MonthlySchedule
$sel:dailySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe DailySchedule
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DailySchedule
dailySchedule
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MonthlySchedule
monthlySchedule
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WeeklySchedule
weeklySchedule
instance Prelude.NFData JobScheduleFrequency where
rnf :: JobScheduleFrequency -> ()
rnf JobScheduleFrequency' {Maybe DailySchedule
Maybe MonthlySchedule
Maybe WeeklySchedule
weeklySchedule :: Maybe WeeklySchedule
monthlySchedule :: Maybe MonthlySchedule
dailySchedule :: Maybe DailySchedule
$sel:weeklySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe WeeklySchedule
$sel:monthlySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe MonthlySchedule
$sel:dailySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe DailySchedule
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe DailySchedule
dailySchedule
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MonthlySchedule
monthlySchedule
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WeeklySchedule
weeklySchedule
instance Data.ToJSON JobScheduleFrequency where
toJSON :: JobScheduleFrequency -> Value
toJSON JobScheduleFrequency' {Maybe DailySchedule
Maybe MonthlySchedule
Maybe WeeklySchedule
weeklySchedule :: Maybe WeeklySchedule
monthlySchedule :: Maybe MonthlySchedule
dailySchedule :: Maybe DailySchedule
$sel:weeklySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe WeeklySchedule
$sel:monthlySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe MonthlySchedule
$sel:dailySchedule:JobScheduleFrequency' :: JobScheduleFrequency -> Maybe DailySchedule
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"dailySchedule" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DailySchedule
dailySchedule,
(Key
"monthlySchedule" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe MonthlySchedule
monthlySchedule,
(Key
"weeklySchedule" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe WeeklySchedule
weeklySchedule
]
)