{-# 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.QuickSight.Types.MeasureField where
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
import Amazonka.QuickSight.Types.CalculatedMeasureField
import Amazonka.QuickSight.Types.CategoricalMeasureField
import Amazonka.QuickSight.Types.DateMeasureField
import Amazonka.QuickSight.Types.NumericalMeasureField
data MeasureField = MeasureField'
{
MeasureField -> Maybe CalculatedMeasureField
calculatedMeasureField :: Prelude.Maybe CalculatedMeasureField,
MeasureField -> Maybe CategoricalMeasureField
categoricalMeasureField :: Prelude.Maybe CategoricalMeasureField,
MeasureField -> Maybe DateMeasureField
dateMeasureField :: Prelude.Maybe DateMeasureField,
MeasureField -> Maybe NumericalMeasureField
numericalMeasureField :: Prelude.Maybe NumericalMeasureField
}
deriving (MeasureField -> MeasureField -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MeasureField -> MeasureField -> Bool
$c/= :: MeasureField -> MeasureField -> Bool
== :: MeasureField -> MeasureField -> Bool
$c== :: MeasureField -> MeasureField -> Bool
Prelude.Eq, Int -> MeasureField -> ShowS
[MeasureField] -> ShowS
MeasureField -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MeasureField] -> ShowS
$cshowList :: [MeasureField] -> ShowS
show :: MeasureField -> String
$cshow :: MeasureField -> String
showsPrec :: Int -> MeasureField -> ShowS
$cshowsPrec :: Int -> MeasureField -> ShowS
Prelude.Show, forall x. Rep MeasureField x -> MeasureField
forall x. MeasureField -> Rep MeasureField x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep MeasureField x -> MeasureField
$cfrom :: forall x. MeasureField -> Rep MeasureField x
Prelude.Generic)
newMeasureField ::
MeasureField
newMeasureField :: MeasureField
newMeasureField =
MeasureField'
{ $sel:calculatedMeasureField:MeasureField' :: Maybe CalculatedMeasureField
calculatedMeasureField =
forall a. Maybe a
Prelude.Nothing,
$sel:categoricalMeasureField:MeasureField' :: Maybe CategoricalMeasureField
categoricalMeasureField = forall a. Maybe a
Prelude.Nothing,
$sel:dateMeasureField:MeasureField' :: Maybe DateMeasureField
dateMeasureField = forall a. Maybe a
Prelude.Nothing,
$sel:numericalMeasureField:MeasureField' :: Maybe NumericalMeasureField
numericalMeasureField = forall a. Maybe a
Prelude.Nothing
}
measureField_calculatedMeasureField :: Lens.Lens' MeasureField (Prelude.Maybe CalculatedMeasureField)
measureField_calculatedMeasureField :: Lens' MeasureField (Maybe CalculatedMeasureField)
measureField_calculatedMeasureField = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MeasureField' {Maybe CalculatedMeasureField
calculatedMeasureField :: Maybe CalculatedMeasureField
$sel:calculatedMeasureField:MeasureField' :: MeasureField -> Maybe CalculatedMeasureField
calculatedMeasureField} -> Maybe CalculatedMeasureField
calculatedMeasureField) (\s :: MeasureField
s@MeasureField' {} Maybe CalculatedMeasureField
a -> MeasureField
s {$sel:calculatedMeasureField:MeasureField' :: Maybe CalculatedMeasureField
calculatedMeasureField = Maybe CalculatedMeasureField
a} :: MeasureField)
measureField_categoricalMeasureField :: Lens.Lens' MeasureField (Prelude.Maybe CategoricalMeasureField)
measureField_categoricalMeasureField :: Lens' MeasureField (Maybe CategoricalMeasureField)
measureField_categoricalMeasureField = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MeasureField' {Maybe CategoricalMeasureField
categoricalMeasureField :: Maybe CategoricalMeasureField
$sel:categoricalMeasureField:MeasureField' :: MeasureField -> Maybe CategoricalMeasureField
categoricalMeasureField} -> Maybe CategoricalMeasureField
categoricalMeasureField) (\s :: MeasureField
s@MeasureField' {} Maybe CategoricalMeasureField
a -> MeasureField
s {$sel:categoricalMeasureField:MeasureField' :: Maybe CategoricalMeasureField
categoricalMeasureField = Maybe CategoricalMeasureField
a} :: MeasureField)
measureField_dateMeasureField :: Lens.Lens' MeasureField (Prelude.Maybe DateMeasureField)
measureField_dateMeasureField :: Lens' MeasureField (Maybe DateMeasureField)
measureField_dateMeasureField = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MeasureField' {Maybe DateMeasureField
dateMeasureField :: Maybe DateMeasureField
$sel:dateMeasureField:MeasureField' :: MeasureField -> Maybe DateMeasureField
dateMeasureField} -> Maybe DateMeasureField
dateMeasureField) (\s :: MeasureField
s@MeasureField' {} Maybe DateMeasureField
a -> MeasureField
s {$sel:dateMeasureField:MeasureField' :: Maybe DateMeasureField
dateMeasureField = Maybe DateMeasureField
a} :: MeasureField)
measureField_numericalMeasureField :: Lens.Lens' MeasureField (Prelude.Maybe NumericalMeasureField)
measureField_numericalMeasureField :: Lens' MeasureField (Maybe NumericalMeasureField)
measureField_numericalMeasureField = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MeasureField' {Maybe NumericalMeasureField
numericalMeasureField :: Maybe NumericalMeasureField
$sel:numericalMeasureField:MeasureField' :: MeasureField -> Maybe NumericalMeasureField
numericalMeasureField} -> Maybe NumericalMeasureField
numericalMeasureField) (\s :: MeasureField
s@MeasureField' {} Maybe NumericalMeasureField
a -> MeasureField
s {$sel:numericalMeasureField:MeasureField' :: Maybe NumericalMeasureField
numericalMeasureField = Maybe NumericalMeasureField
a} :: MeasureField)
instance Data.FromJSON MeasureField where
parseJSON :: Value -> Parser MeasureField
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"MeasureField"
( \Object
x ->
Maybe CalculatedMeasureField
-> Maybe CategoricalMeasureField
-> Maybe DateMeasureField
-> Maybe NumericalMeasureField
-> MeasureField
MeasureField'
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
"CalculatedMeasureField")
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
"CategoricalMeasureField")
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
"DateMeasureField")
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
"NumericalMeasureField")
)
instance Prelude.Hashable MeasureField where
hashWithSalt :: Int -> MeasureField -> Int
hashWithSalt Int
_salt MeasureField' {Maybe CalculatedMeasureField
Maybe CategoricalMeasureField
Maybe NumericalMeasureField
Maybe DateMeasureField
numericalMeasureField :: Maybe NumericalMeasureField
dateMeasureField :: Maybe DateMeasureField
categoricalMeasureField :: Maybe CategoricalMeasureField
calculatedMeasureField :: Maybe CalculatedMeasureField
$sel:numericalMeasureField:MeasureField' :: MeasureField -> Maybe NumericalMeasureField
$sel:dateMeasureField:MeasureField' :: MeasureField -> Maybe DateMeasureField
$sel:categoricalMeasureField:MeasureField' :: MeasureField -> Maybe CategoricalMeasureField
$sel:calculatedMeasureField:MeasureField' :: MeasureField -> Maybe CalculatedMeasureField
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CalculatedMeasureField
calculatedMeasureField
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CategoricalMeasureField
categoricalMeasureField
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DateMeasureField
dateMeasureField
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NumericalMeasureField
numericalMeasureField
instance Prelude.NFData MeasureField where
rnf :: MeasureField -> ()
rnf MeasureField' {Maybe CalculatedMeasureField
Maybe CategoricalMeasureField
Maybe NumericalMeasureField
Maybe DateMeasureField
numericalMeasureField :: Maybe NumericalMeasureField
dateMeasureField :: Maybe DateMeasureField
categoricalMeasureField :: Maybe CategoricalMeasureField
calculatedMeasureField :: Maybe CalculatedMeasureField
$sel:numericalMeasureField:MeasureField' :: MeasureField -> Maybe NumericalMeasureField
$sel:dateMeasureField:MeasureField' :: MeasureField -> Maybe DateMeasureField
$sel:categoricalMeasureField:MeasureField' :: MeasureField -> Maybe CategoricalMeasureField
$sel:calculatedMeasureField:MeasureField' :: MeasureField -> Maybe CalculatedMeasureField
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe CalculatedMeasureField
calculatedMeasureField
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CategoricalMeasureField
categoricalMeasureField
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DateMeasureField
dateMeasureField
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe NumericalMeasureField
numericalMeasureField
instance Data.ToJSON MeasureField where
toJSON :: MeasureField -> Value
toJSON MeasureField' {Maybe CalculatedMeasureField
Maybe CategoricalMeasureField
Maybe NumericalMeasureField
Maybe DateMeasureField
numericalMeasureField :: Maybe NumericalMeasureField
dateMeasureField :: Maybe DateMeasureField
categoricalMeasureField :: Maybe CategoricalMeasureField
calculatedMeasureField :: Maybe CalculatedMeasureField
$sel:numericalMeasureField:MeasureField' :: MeasureField -> Maybe NumericalMeasureField
$sel:dateMeasureField:MeasureField' :: MeasureField -> Maybe DateMeasureField
$sel:categoricalMeasureField:MeasureField' :: MeasureField -> Maybe CategoricalMeasureField
$sel:calculatedMeasureField:MeasureField' :: MeasureField -> Maybe CalculatedMeasureField
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"CalculatedMeasureField" 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 CalculatedMeasureField
calculatedMeasureField,
(Key
"CategoricalMeasureField" 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 CategoricalMeasureField
categoricalMeasureField,
(Key
"DateMeasureField" 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 DateMeasureField
dateMeasureField,
(Key
"NumericalMeasureField" 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 NumericalMeasureField
numericalMeasureField
]
)