{-# 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.EMR.Types.CloudWatchAlarmDefinition where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EMR.Types.ComparisonOperator
import Amazonka.EMR.Types.MetricDimension
import Amazonka.EMR.Types.Statistic
import Amazonka.EMR.Types.Unit
import qualified Amazonka.Prelude as Prelude
data CloudWatchAlarmDefinition = CloudWatchAlarmDefinition'
{
CloudWatchAlarmDefinition -> Maybe [MetricDimension]
dimensions :: Prelude.Maybe [MetricDimension],
CloudWatchAlarmDefinition -> Maybe Int
evaluationPeriods :: Prelude.Maybe Prelude.Int,
CloudWatchAlarmDefinition -> Maybe Text
namespace :: Prelude.Maybe Prelude.Text,
CloudWatchAlarmDefinition -> Maybe Statistic
statistic :: Prelude.Maybe Statistic,
CloudWatchAlarmDefinition -> Maybe Unit
unit :: Prelude.Maybe Unit,
CloudWatchAlarmDefinition -> ComparisonOperator
comparisonOperator :: ComparisonOperator,
CloudWatchAlarmDefinition -> Text
metricName :: Prelude.Text,
CloudWatchAlarmDefinition -> Int
period :: Prelude.Int,
CloudWatchAlarmDefinition -> Double
threshold :: Prelude.Double
}
deriving (CloudWatchAlarmDefinition -> CloudWatchAlarmDefinition -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CloudWatchAlarmDefinition -> CloudWatchAlarmDefinition -> Bool
$c/= :: CloudWatchAlarmDefinition -> CloudWatchAlarmDefinition -> Bool
== :: CloudWatchAlarmDefinition -> CloudWatchAlarmDefinition -> Bool
$c== :: CloudWatchAlarmDefinition -> CloudWatchAlarmDefinition -> Bool
Prelude.Eq, ReadPrec [CloudWatchAlarmDefinition]
ReadPrec CloudWatchAlarmDefinition
Int -> ReadS CloudWatchAlarmDefinition
ReadS [CloudWatchAlarmDefinition]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CloudWatchAlarmDefinition]
$creadListPrec :: ReadPrec [CloudWatchAlarmDefinition]
readPrec :: ReadPrec CloudWatchAlarmDefinition
$creadPrec :: ReadPrec CloudWatchAlarmDefinition
readList :: ReadS [CloudWatchAlarmDefinition]
$creadList :: ReadS [CloudWatchAlarmDefinition]
readsPrec :: Int -> ReadS CloudWatchAlarmDefinition
$creadsPrec :: Int -> ReadS CloudWatchAlarmDefinition
Prelude.Read, Int -> CloudWatchAlarmDefinition -> ShowS
[CloudWatchAlarmDefinition] -> ShowS
CloudWatchAlarmDefinition -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CloudWatchAlarmDefinition] -> ShowS
$cshowList :: [CloudWatchAlarmDefinition] -> ShowS
show :: CloudWatchAlarmDefinition -> String
$cshow :: CloudWatchAlarmDefinition -> String
showsPrec :: Int -> CloudWatchAlarmDefinition -> ShowS
$cshowsPrec :: Int -> CloudWatchAlarmDefinition -> ShowS
Prelude.Show, forall x.
Rep CloudWatchAlarmDefinition x -> CloudWatchAlarmDefinition
forall x.
CloudWatchAlarmDefinition -> Rep CloudWatchAlarmDefinition x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CloudWatchAlarmDefinition x -> CloudWatchAlarmDefinition
$cfrom :: forall x.
CloudWatchAlarmDefinition -> Rep CloudWatchAlarmDefinition x
Prelude.Generic)
newCloudWatchAlarmDefinition ::
ComparisonOperator ->
Prelude.Text ->
Prelude.Int ->
Prelude.Double ->
CloudWatchAlarmDefinition
newCloudWatchAlarmDefinition :: ComparisonOperator
-> Text -> Int -> Double -> CloudWatchAlarmDefinition
newCloudWatchAlarmDefinition
ComparisonOperator
pComparisonOperator_
Text
pMetricName_
Int
pPeriod_
Double
pThreshold_ =
CloudWatchAlarmDefinition'
{ $sel:dimensions:CloudWatchAlarmDefinition' :: Maybe [MetricDimension]
dimensions =
forall a. Maybe a
Prelude.Nothing,
$sel:evaluationPeriods:CloudWatchAlarmDefinition' :: Maybe Int
evaluationPeriods = forall a. Maybe a
Prelude.Nothing,
$sel:namespace:CloudWatchAlarmDefinition' :: Maybe Text
namespace = forall a. Maybe a
Prelude.Nothing,
$sel:statistic:CloudWatchAlarmDefinition' :: Maybe Statistic
statistic = forall a. Maybe a
Prelude.Nothing,
$sel:unit:CloudWatchAlarmDefinition' :: Maybe Unit
unit = forall a. Maybe a
Prelude.Nothing,
$sel:comparisonOperator:CloudWatchAlarmDefinition' :: ComparisonOperator
comparisonOperator = ComparisonOperator
pComparisonOperator_,
$sel:metricName:CloudWatchAlarmDefinition' :: Text
metricName = Text
pMetricName_,
$sel:period:CloudWatchAlarmDefinition' :: Int
period = Int
pPeriod_,
$sel:threshold:CloudWatchAlarmDefinition' :: Double
threshold = Double
pThreshold_
}
cloudWatchAlarmDefinition_dimensions :: Lens.Lens' CloudWatchAlarmDefinition (Prelude.Maybe [MetricDimension])
cloudWatchAlarmDefinition_dimensions :: Lens' CloudWatchAlarmDefinition (Maybe [MetricDimension])
cloudWatchAlarmDefinition_dimensions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CloudWatchAlarmDefinition' {Maybe [MetricDimension]
dimensions :: Maybe [MetricDimension]
$sel:dimensions:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe [MetricDimension]
dimensions} -> Maybe [MetricDimension]
dimensions) (\s :: CloudWatchAlarmDefinition
s@CloudWatchAlarmDefinition' {} Maybe [MetricDimension]
a -> CloudWatchAlarmDefinition
s {$sel:dimensions:CloudWatchAlarmDefinition' :: Maybe [MetricDimension]
dimensions = Maybe [MetricDimension]
a} :: CloudWatchAlarmDefinition) 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
cloudWatchAlarmDefinition_evaluationPeriods :: Lens.Lens' CloudWatchAlarmDefinition (Prelude.Maybe Prelude.Int)
cloudWatchAlarmDefinition_evaluationPeriods :: Lens' CloudWatchAlarmDefinition (Maybe Int)
cloudWatchAlarmDefinition_evaluationPeriods = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CloudWatchAlarmDefinition' {Maybe Int
evaluationPeriods :: Maybe Int
$sel:evaluationPeriods:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Int
evaluationPeriods} -> Maybe Int
evaluationPeriods) (\s :: CloudWatchAlarmDefinition
s@CloudWatchAlarmDefinition' {} Maybe Int
a -> CloudWatchAlarmDefinition
s {$sel:evaluationPeriods:CloudWatchAlarmDefinition' :: Maybe Int
evaluationPeriods = Maybe Int
a} :: CloudWatchAlarmDefinition)
cloudWatchAlarmDefinition_namespace :: Lens.Lens' CloudWatchAlarmDefinition (Prelude.Maybe Prelude.Text)
cloudWatchAlarmDefinition_namespace :: Lens' CloudWatchAlarmDefinition (Maybe Text)
cloudWatchAlarmDefinition_namespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CloudWatchAlarmDefinition' {Maybe Text
namespace :: Maybe Text
$sel:namespace:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Text
namespace} -> Maybe Text
namespace) (\s :: CloudWatchAlarmDefinition
s@CloudWatchAlarmDefinition' {} Maybe Text
a -> CloudWatchAlarmDefinition
s {$sel:namespace:CloudWatchAlarmDefinition' :: Maybe Text
namespace = Maybe Text
a} :: CloudWatchAlarmDefinition)
cloudWatchAlarmDefinition_statistic :: Lens.Lens' CloudWatchAlarmDefinition (Prelude.Maybe Statistic)
cloudWatchAlarmDefinition_statistic :: Lens' CloudWatchAlarmDefinition (Maybe Statistic)
cloudWatchAlarmDefinition_statistic = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CloudWatchAlarmDefinition' {Maybe Statistic
statistic :: Maybe Statistic
$sel:statistic:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Statistic
statistic} -> Maybe Statistic
statistic) (\s :: CloudWatchAlarmDefinition
s@CloudWatchAlarmDefinition' {} Maybe Statistic
a -> CloudWatchAlarmDefinition
s {$sel:statistic:CloudWatchAlarmDefinition' :: Maybe Statistic
statistic = Maybe Statistic
a} :: CloudWatchAlarmDefinition)
cloudWatchAlarmDefinition_unit :: Lens.Lens' CloudWatchAlarmDefinition (Prelude.Maybe Unit)
cloudWatchAlarmDefinition_unit :: Lens' CloudWatchAlarmDefinition (Maybe Unit)
cloudWatchAlarmDefinition_unit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CloudWatchAlarmDefinition' {Maybe Unit
unit :: Maybe Unit
$sel:unit:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Unit
unit} -> Maybe Unit
unit) (\s :: CloudWatchAlarmDefinition
s@CloudWatchAlarmDefinition' {} Maybe Unit
a -> CloudWatchAlarmDefinition
s {$sel:unit:CloudWatchAlarmDefinition' :: Maybe Unit
unit = Maybe Unit
a} :: CloudWatchAlarmDefinition)
cloudWatchAlarmDefinition_comparisonOperator :: Lens.Lens' CloudWatchAlarmDefinition ComparisonOperator
cloudWatchAlarmDefinition_comparisonOperator :: Lens' CloudWatchAlarmDefinition ComparisonOperator
cloudWatchAlarmDefinition_comparisonOperator = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CloudWatchAlarmDefinition' {ComparisonOperator
comparisonOperator :: ComparisonOperator
$sel:comparisonOperator:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> ComparisonOperator
comparisonOperator} -> ComparisonOperator
comparisonOperator) (\s :: CloudWatchAlarmDefinition
s@CloudWatchAlarmDefinition' {} ComparisonOperator
a -> CloudWatchAlarmDefinition
s {$sel:comparisonOperator:CloudWatchAlarmDefinition' :: ComparisonOperator
comparisonOperator = ComparisonOperator
a} :: CloudWatchAlarmDefinition)
cloudWatchAlarmDefinition_metricName :: Lens.Lens' CloudWatchAlarmDefinition Prelude.Text
cloudWatchAlarmDefinition_metricName :: Lens' CloudWatchAlarmDefinition Text
cloudWatchAlarmDefinition_metricName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CloudWatchAlarmDefinition' {Text
metricName :: Text
$sel:metricName:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Text
metricName} -> Text
metricName) (\s :: CloudWatchAlarmDefinition
s@CloudWatchAlarmDefinition' {} Text
a -> CloudWatchAlarmDefinition
s {$sel:metricName:CloudWatchAlarmDefinition' :: Text
metricName = Text
a} :: CloudWatchAlarmDefinition)
cloudWatchAlarmDefinition_period :: Lens.Lens' CloudWatchAlarmDefinition Prelude.Int
cloudWatchAlarmDefinition_period :: Lens' CloudWatchAlarmDefinition Int
cloudWatchAlarmDefinition_period = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CloudWatchAlarmDefinition' {Int
period :: Int
$sel:period:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Int
period} -> Int
period) (\s :: CloudWatchAlarmDefinition
s@CloudWatchAlarmDefinition' {} Int
a -> CloudWatchAlarmDefinition
s {$sel:period:CloudWatchAlarmDefinition' :: Int
period = Int
a} :: CloudWatchAlarmDefinition)
cloudWatchAlarmDefinition_threshold :: Lens.Lens' CloudWatchAlarmDefinition Prelude.Double
cloudWatchAlarmDefinition_threshold :: Lens' CloudWatchAlarmDefinition Double
cloudWatchAlarmDefinition_threshold = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CloudWatchAlarmDefinition' {Double
threshold :: Double
$sel:threshold:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Double
threshold} -> Double
threshold) (\s :: CloudWatchAlarmDefinition
s@CloudWatchAlarmDefinition' {} Double
a -> CloudWatchAlarmDefinition
s {$sel:threshold:CloudWatchAlarmDefinition' :: Double
threshold = Double
a} :: CloudWatchAlarmDefinition)
instance Data.FromJSON CloudWatchAlarmDefinition where
parseJSON :: Value -> Parser CloudWatchAlarmDefinition
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"CloudWatchAlarmDefinition"
( \Object
x ->
Maybe [MetricDimension]
-> Maybe Int
-> Maybe Text
-> Maybe Statistic
-> Maybe Unit
-> ComparisonOperator
-> Text
-> Int
-> Double
-> CloudWatchAlarmDefinition
CloudWatchAlarmDefinition'
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
"Dimensions" 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
"EvaluationPeriods")
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
"Namespace")
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
"Statistic")
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
"Unit")
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
"ComparisonOperator")
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
"MetricName")
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
"Period")
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
"Threshold")
)
instance Prelude.Hashable CloudWatchAlarmDefinition where
hashWithSalt :: Int -> CloudWatchAlarmDefinition -> Int
hashWithSalt Int
_salt CloudWatchAlarmDefinition' {Double
Int
Maybe Int
Maybe [MetricDimension]
Maybe Text
Maybe Statistic
Maybe Unit
Text
ComparisonOperator
threshold :: Double
period :: Int
metricName :: Text
comparisonOperator :: ComparisonOperator
unit :: Maybe Unit
statistic :: Maybe Statistic
namespace :: Maybe Text
evaluationPeriods :: Maybe Int
dimensions :: Maybe [MetricDimension]
$sel:threshold:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Double
$sel:period:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Int
$sel:metricName:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Text
$sel:comparisonOperator:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> ComparisonOperator
$sel:unit:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Unit
$sel:statistic:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Statistic
$sel:namespace:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Text
$sel:evaluationPeriods:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Int
$sel:dimensions:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe [MetricDimension]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [MetricDimension]
dimensions
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
evaluationPeriods
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
namespace
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Statistic
statistic
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Unit
unit
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ComparisonOperator
comparisonOperator
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
metricName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Int
period
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Double
threshold
instance Prelude.NFData CloudWatchAlarmDefinition where
rnf :: CloudWatchAlarmDefinition -> ()
rnf CloudWatchAlarmDefinition' {Double
Int
Maybe Int
Maybe [MetricDimension]
Maybe Text
Maybe Statistic
Maybe Unit
Text
ComparisonOperator
threshold :: Double
period :: Int
metricName :: Text
comparisonOperator :: ComparisonOperator
unit :: Maybe Unit
statistic :: Maybe Statistic
namespace :: Maybe Text
evaluationPeriods :: Maybe Int
dimensions :: Maybe [MetricDimension]
$sel:threshold:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Double
$sel:period:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Int
$sel:metricName:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Text
$sel:comparisonOperator:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> ComparisonOperator
$sel:unit:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Unit
$sel:statistic:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Statistic
$sel:namespace:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Text
$sel:evaluationPeriods:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Int
$sel:dimensions:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe [MetricDimension]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [MetricDimension]
dimensions
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
evaluationPeriods
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
namespace
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Statistic
statistic
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Unit
unit
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ComparisonOperator
comparisonOperator
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
metricName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
period
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Double
threshold
instance Data.ToJSON CloudWatchAlarmDefinition where
toJSON :: CloudWatchAlarmDefinition -> Value
toJSON CloudWatchAlarmDefinition' {Double
Int
Maybe Int
Maybe [MetricDimension]
Maybe Text
Maybe Statistic
Maybe Unit
Text
ComparisonOperator
threshold :: Double
period :: Int
metricName :: Text
comparisonOperator :: ComparisonOperator
unit :: Maybe Unit
statistic :: Maybe Statistic
namespace :: Maybe Text
evaluationPeriods :: Maybe Int
dimensions :: Maybe [MetricDimension]
$sel:threshold:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Double
$sel:period:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Int
$sel:metricName:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Text
$sel:comparisonOperator:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> ComparisonOperator
$sel:unit:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Unit
$sel:statistic:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Statistic
$sel:namespace:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Text
$sel:evaluationPeriods:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe Int
$sel:dimensions:CloudWatchAlarmDefinition' :: CloudWatchAlarmDefinition -> Maybe [MetricDimension]
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Dimensions" 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 [MetricDimension]
dimensions,
(Key
"EvaluationPeriods" 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 Int
evaluationPeriods,
(Key
"Namespace" 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 Text
namespace,
(Key
"Statistic" 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 Statistic
statistic,
(Key
"Unit" 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 Unit
unit,
forall a. a -> Maybe a
Prelude.Just
(Key
"ComparisonOperator" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ComparisonOperator
comparisonOperator),
forall a. a -> Maybe a
Prelude.Just (Key
"MetricName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
metricName),
forall a. a -> Maybe a
Prelude.Just (Key
"Period" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Int
period),
forall a. a -> Maybe a
Prelude.Just (Key
"Threshold" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Double
threshold)
]
)