{-# 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.ColumnHierarchy 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.DateTimeHierarchy
import Amazonka.QuickSight.Types.ExplicitHierarchy
import Amazonka.QuickSight.Types.PredefinedHierarchy
data ColumnHierarchy = ColumnHierarchy'
{
ColumnHierarchy -> Maybe DateTimeHierarchy
dateTimeHierarchy :: Prelude.Maybe DateTimeHierarchy,
ColumnHierarchy -> Maybe ExplicitHierarchy
explicitHierarchy :: Prelude.Maybe ExplicitHierarchy,
ColumnHierarchy -> Maybe PredefinedHierarchy
predefinedHierarchy :: Prelude.Maybe PredefinedHierarchy
}
deriving (ColumnHierarchy -> ColumnHierarchy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ColumnHierarchy -> ColumnHierarchy -> Bool
$c/= :: ColumnHierarchy -> ColumnHierarchy -> Bool
== :: ColumnHierarchy -> ColumnHierarchy -> Bool
$c== :: ColumnHierarchy -> ColumnHierarchy -> Bool
Prelude.Eq, ReadPrec [ColumnHierarchy]
ReadPrec ColumnHierarchy
Int -> ReadS ColumnHierarchy
ReadS [ColumnHierarchy]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ColumnHierarchy]
$creadListPrec :: ReadPrec [ColumnHierarchy]
readPrec :: ReadPrec ColumnHierarchy
$creadPrec :: ReadPrec ColumnHierarchy
readList :: ReadS [ColumnHierarchy]
$creadList :: ReadS [ColumnHierarchy]
readsPrec :: Int -> ReadS ColumnHierarchy
$creadsPrec :: Int -> ReadS ColumnHierarchy
Prelude.Read, Int -> ColumnHierarchy -> ShowS
[ColumnHierarchy] -> ShowS
ColumnHierarchy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ColumnHierarchy] -> ShowS
$cshowList :: [ColumnHierarchy] -> ShowS
show :: ColumnHierarchy -> String
$cshow :: ColumnHierarchy -> String
showsPrec :: Int -> ColumnHierarchy -> ShowS
$cshowsPrec :: Int -> ColumnHierarchy -> ShowS
Prelude.Show, forall x. Rep ColumnHierarchy x -> ColumnHierarchy
forall x. ColumnHierarchy -> Rep ColumnHierarchy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ColumnHierarchy x -> ColumnHierarchy
$cfrom :: forall x. ColumnHierarchy -> Rep ColumnHierarchy x
Prelude.Generic)
newColumnHierarchy ::
ColumnHierarchy
newColumnHierarchy :: ColumnHierarchy
newColumnHierarchy =
ColumnHierarchy'
{ $sel:dateTimeHierarchy:ColumnHierarchy' :: Maybe DateTimeHierarchy
dateTimeHierarchy =
forall a. Maybe a
Prelude.Nothing,
$sel:explicitHierarchy:ColumnHierarchy' :: Maybe ExplicitHierarchy
explicitHierarchy = forall a. Maybe a
Prelude.Nothing,
$sel:predefinedHierarchy:ColumnHierarchy' :: Maybe PredefinedHierarchy
predefinedHierarchy = forall a. Maybe a
Prelude.Nothing
}
columnHierarchy_dateTimeHierarchy :: Lens.Lens' ColumnHierarchy (Prelude.Maybe DateTimeHierarchy)
columnHierarchy_dateTimeHierarchy :: Lens' ColumnHierarchy (Maybe DateTimeHierarchy)
columnHierarchy_dateTimeHierarchy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ColumnHierarchy' {Maybe DateTimeHierarchy
dateTimeHierarchy :: Maybe DateTimeHierarchy
$sel:dateTimeHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe DateTimeHierarchy
dateTimeHierarchy} -> Maybe DateTimeHierarchy
dateTimeHierarchy) (\s :: ColumnHierarchy
s@ColumnHierarchy' {} Maybe DateTimeHierarchy
a -> ColumnHierarchy
s {$sel:dateTimeHierarchy:ColumnHierarchy' :: Maybe DateTimeHierarchy
dateTimeHierarchy = Maybe DateTimeHierarchy
a} :: ColumnHierarchy)
columnHierarchy_explicitHierarchy :: Lens.Lens' ColumnHierarchy (Prelude.Maybe ExplicitHierarchy)
columnHierarchy_explicitHierarchy :: Lens' ColumnHierarchy (Maybe ExplicitHierarchy)
columnHierarchy_explicitHierarchy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ColumnHierarchy' {Maybe ExplicitHierarchy
explicitHierarchy :: Maybe ExplicitHierarchy
$sel:explicitHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe ExplicitHierarchy
explicitHierarchy} -> Maybe ExplicitHierarchy
explicitHierarchy) (\s :: ColumnHierarchy
s@ColumnHierarchy' {} Maybe ExplicitHierarchy
a -> ColumnHierarchy
s {$sel:explicitHierarchy:ColumnHierarchy' :: Maybe ExplicitHierarchy
explicitHierarchy = Maybe ExplicitHierarchy
a} :: ColumnHierarchy)
columnHierarchy_predefinedHierarchy :: Lens.Lens' ColumnHierarchy (Prelude.Maybe PredefinedHierarchy)
columnHierarchy_predefinedHierarchy :: Lens' ColumnHierarchy (Maybe PredefinedHierarchy)
columnHierarchy_predefinedHierarchy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ColumnHierarchy' {Maybe PredefinedHierarchy
predefinedHierarchy :: Maybe PredefinedHierarchy
$sel:predefinedHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe PredefinedHierarchy
predefinedHierarchy} -> Maybe PredefinedHierarchy
predefinedHierarchy) (\s :: ColumnHierarchy
s@ColumnHierarchy' {} Maybe PredefinedHierarchy
a -> ColumnHierarchy
s {$sel:predefinedHierarchy:ColumnHierarchy' :: Maybe PredefinedHierarchy
predefinedHierarchy = Maybe PredefinedHierarchy
a} :: ColumnHierarchy)
instance Data.FromJSON ColumnHierarchy where
parseJSON :: Value -> Parser ColumnHierarchy
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"ColumnHierarchy"
( \Object
x ->
Maybe DateTimeHierarchy
-> Maybe ExplicitHierarchy
-> Maybe PredefinedHierarchy
-> ColumnHierarchy
ColumnHierarchy'
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
"DateTimeHierarchy")
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
"ExplicitHierarchy")
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
"PredefinedHierarchy")
)
instance Prelude.Hashable ColumnHierarchy where
hashWithSalt :: Int -> ColumnHierarchy -> Int
hashWithSalt Int
_salt ColumnHierarchy' {Maybe PredefinedHierarchy
Maybe ExplicitHierarchy
Maybe DateTimeHierarchy
predefinedHierarchy :: Maybe PredefinedHierarchy
explicitHierarchy :: Maybe ExplicitHierarchy
dateTimeHierarchy :: Maybe DateTimeHierarchy
$sel:predefinedHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe PredefinedHierarchy
$sel:explicitHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe ExplicitHierarchy
$sel:dateTimeHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe DateTimeHierarchy
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DateTimeHierarchy
dateTimeHierarchy
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExplicitHierarchy
explicitHierarchy
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PredefinedHierarchy
predefinedHierarchy
instance Prelude.NFData ColumnHierarchy where
rnf :: ColumnHierarchy -> ()
rnf ColumnHierarchy' {Maybe PredefinedHierarchy
Maybe ExplicitHierarchy
Maybe DateTimeHierarchy
predefinedHierarchy :: Maybe PredefinedHierarchy
explicitHierarchy :: Maybe ExplicitHierarchy
dateTimeHierarchy :: Maybe DateTimeHierarchy
$sel:predefinedHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe PredefinedHierarchy
$sel:explicitHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe ExplicitHierarchy
$sel:dateTimeHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe DateTimeHierarchy
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe DateTimeHierarchy
dateTimeHierarchy
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExplicitHierarchy
explicitHierarchy
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PredefinedHierarchy
predefinedHierarchy
instance Data.ToJSON ColumnHierarchy where
toJSON :: ColumnHierarchy -> Value
toJSON ColumnHierarchy' {Maybe PredefinedHierarchy
Maybe ExplicitHierarchy
Maybe DateTimeHierarchy
predefinedHierarchy :: Maybe PredefinedHierarchy
explicitHierarchy :: Maybe ExplicitHierarchy
dateTimeHierarchy :: Maybe DateTimeHierarchy
$sel:predefinedHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe PredefinedHierarchy
$sel:explicitHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe ExplicitHierarchy
$sel:dateTimeHierarchy:ColumnHierarchy' :: ColumnHierarchy -> Maybe DateTimeHierarchy
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"DateTimeHierarchy" 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 DateTimeHierarchy
dateTimeHierarchy,
(Key
"ExplicitHierarchy" 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 ExplicitHierarchy
explicitHierarchy,
(Key
"PredefinedHierarchy" 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 PredefinedHierarchy
predefinedHierarchy
]
)