{-# 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.KPIOptions 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.ComparisonConfiguration
import Amazonka.QuickSight.Types.FontConfiguration
import Amazonka.QuickSight.Types.PrimaryValueDisplayType
import Amazonka.QuickSight.Types.ProgressBarOptions
import Amazonka.QuickSight.Types.SecondaryValueOptions
import Amazonka.QuickSight.Types.TrendArrowOptions
data KPIOptions = KPIOptions'
{
KPIOptions -> Maybe ComparisonConfiguration
comparison :: Prelude.Maybe ComparisonConfiguration,
KPIOptions -> Maybe PrimaryValueDisplayType
primaryValueDisplayType :: Prelude.Maybe PrimaryValueDisplayType,
KPIOptions -> Maybe FontConfiguration
primaryValueFontConfiguration :: Prelude.Maybe FontConfiguration,
KPIOptions -> Maybe ProgressBarOptions
progressBar :: Prelude.Maybe ProgressBarOptions,
KPIOptions -> Maybe SecondaryValueOptions
secondaryValue :: Prelude.Maybe SecondaryValueOptions,
KPIOptions -> Maybe FontConfiguration
secondaryValueFontConfiguration :: Prelude.Maybe FontConfiguration,
KPIOptions -> Maybe TrendArrowOptions
trendArrows :: Prelude.Maybe TrendArrowOptions
}
deriving (KPIOptions -> KPIOptions -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: KPIOptions -> KPIOptions -> Bool
$c/= :: KPIOptions -> KPIOptions -> Bool
== :: KPIOptions -> KPIOptions -> Bool
$c== :: KPIOptions -> KPIOptions -> Bool
Prelude.Eq, Int -> KPIOptions -> ShowS
[KPIOptions] -> ShowS
KPIOptions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [KPIOptions] -> ShowS
$cshowList :: [KPIOptions] -> ShowS
show :: KPIOptions -> String
$cshow :: KPIOptions -> String
showsPrec :: Int -> KPIOptions -> ShowS
$cshowsPrec :: Int -> KPIOptions -> ShowS
Prelude.Show, forall x. Rep KPIOptions x -> KPIOptions
forall x. KPIOptions -> Rep KPIOptions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep KPIOptions x -> KPIOptions
$cfrom :: forall x. KPIOptions -> Rep KPIOptions x
Prelude.Generic)
newKPIOptions ::
KPIOptions
newKPIOptions :: KPIOptions
newKPIOptions =
KPIOptions'
{ $sel:comparison:KPIOptions' :: Maybe ComparisonConfiguration
comparison = forall a. Maybe a
Prelude.Nothing,
$sel:primaryValueDisplayType:KPIOptions' :: Maybe PrimaryValueDisplayType
primaryValueDisplayType = forall a. Maybe a
Prelude.Nothing,
$sel:primaryValueFontConfiguration:KPIOptions' :: Maybe FontConfiguration
primaryValueFontConfiguration = forall a. Maybe a
Prelude.Nothing,
$sel:progressBar:KPIOptions' :: Maybe ProgressBarOptions
progressBar = forall a. Maybe a
Prelude.Nothing,
$sel:secondaryValue:KPIOptions' :: Maybe SecondaryValueOptions
secondaryValue = forall a. Maybe a
Prelude.Nothing,
$sel:secondaryValueFontConfiguration:KPIOptions' :: Maybe FontConfiguration
secondaryValueFontConfiguration = forall a. Maybe a
Prelude.Nothing,
$sel:trendArrows:KPIOptions' :: Maybe TrendArrowOptions
trendArrows = forall a. Maybe a
Prelude.Nothing
}
kPIOptions_comparison :: Lens.Lens' KPIOptions (Prelude.Maybe ComparisonConfiguration)
kPIOptions_comparison :: Lens' KPIOptions (Maybe ComparisonConfiguration)
kPIOptions_comparison = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KPIOptions' {Maybe ComparisonConfiguration
comparison :: Maybe ComparisonConfiguration
$sel:comparison:KPIOptions' :: KPIOptions -> Maybe ComparisonConfiguration
comparison} -> Maybe ComparisonConfiguration
comparison) (\s :: KPIOptions
s@KPIOptions' {} Maybe ComparisonConfiguration
a -> KPIOptions
s {$sel:comparison:KPIOptions' :: Maybe ComparisonConfiguration
comparison = Maybe ComparisonConfiguration
a} :: KPIOptions)
kPIOptions_primaryValueDisplayType :: Lens.Lens' KPIOptions (Prelude.Maybe PrimaryValueDisplayType)
kPIOptions_primaryValueDisplayType :: Lens' KPIOptions (Maybe PrimaryValueDisplayType)
kPIOptions_primaryValueDisplayType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KPIOptions' {Maybe PrimaryValueDisplayType
primaryValueDisplayType :: Maybe PrimaryValueDisplayType
$sel:primaryValueDisplayType:KPIOptions' :: KPIOptions -> Maybe PrimaryValueDisplayType
primaryValueDisplayType} -> Maybe PrimaryValueDisplayType
primaryValueDisplayType) (\s :: KPIOptions
s@KPIOptions' {} Maybe PrimaryValueDisplayType
a -> KPIOptions
s {$sel:primaryValueDisplayType:KPIOptions' :: Maybe PrimaryValueDisplayType
primaryValueDisplayType = Maybe PrimaryValueDisplayType
a} :: KPIOptions)
kPIOptions_primaryValueFontConfiguration :: Lens.Lens' KPIOptions (Prelude.Maybe FontConfiguration)
kPIOptions_primaryValueFontConfiguration :: Lens' KPIOptions (Maybe FontConfiguration)
kPIOptions_primaryValueFontConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KPIOptions' {Maybe FontConfiguration
primaryValueFontConfiguration :: Maybe FontConfiguration
$sel:primaryValueFontConfiguration:KPIOptions' :: KPIOptions -> Maybe FontConfiguration
primaryValueFontConfiguration} -> Maybe FontConfiguration
primaryValueFontConfiguration) (\s :: KPIOptions
s@KPIOptions' {} Maybe FontConfiguration
a -> KPIOptions
s {$sel:primaryValueFontConfiguration:KPIOptions' :: Maybe FontConfiguration
primaryValueFontConfiguration = Maybe FontConfiguration
a} :: KPIOptions)
kPIOptions_progressBar :: Lens.Lens' KPIOptions (Prelude.Maybe ProgressBarOptions)
kPIOptions_progressBar :: Lens' KPIOptions (Maybe ProgressBarOptions)
kPIOptions_progressBar = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KPIOptions' {Maybe ProgressBarOptions
progressBar :: Maybe ProgressBarOptions
$sel:progressBar:KPIOptions' :: KPIOptions -> Maybe ProgressBarOptions
progressBar} -> Maybe ProgressBarOptions
progressBar) (\s :: KPIOptions
s@KPIOptions' {} Maybe ProgressBarOptions
a -> KPIOptions
s {$sel:progressBar:KPIOptions' :: Maybe ProgressBarOptions
progressBar = Maybe ProgressBarOptions
a} :: KPIOptions)
kPIOptions_secondaryValue :: Lens.Lens' KPIOptions (Prelude.Maybe SecondaryValueOptions)
kPIOptions_secondaryValue :: Lens' KPIOptions (Maybe SecondaryValueOptions)
kPIOptions_secondaryValue = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KPIOptions' {Maybe SecondaryValueOptions
secondaryValue :: Maybe SecondaryValueOptions
$sel:secondaryValue:KPIOptions' :: KPIOptions -> Maybe SecondaryValueOptions
secondaryValue} -> Maybe SecondaryValueOptions
secondaryValue) (\s :: KPIOptions
s@KPIOptions' {} Maybe SecondaryValueOptions
a -> KPIOptions
s {$sel:secondaryValue:KPIOptions' :: Maybe SecondaryValueOptions
secondaryValue = Maybe SecondaryValueOptions
a} :: KPIOptions)
kPIOptions_secondaryValueFontConfiguration :: Lens.Lens' KPIOptions (Prelude.Maybe FontConfiguration)
kPIOptions_secondaryValueFontConfiguration :: Lens' KPIOptions (Maybe FontConfiguration)
kPIOptions_secondaryValueFontConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KPIOptions' {Maybe FontConfiguration
secondaryValueFontConfiguration :: Maybe FontConfiguration
$sel:secondaryValueFontConfiguration:KPIOptions' :: KPIOptions -> Maybe FontConfiguration
secondaryValueFontConfiguration} -> Maybe FontConfiguration
secondaryValueFontConfiguration) (\s :: KPIOptions
s@KPIOptions' {} Maybe FontConfiguration
a -> KPIOptions
s {$sel:secondaryValueFontConfiguration:KPIOptions' :: Maybe FontConfiguration
secondaryValueFontConfiguration = Maybe FontConfiguration
a} :: KPIOptions)
kPIOptions_trendArrows :: Lens.Lens' KPIOptions (Prelude.Maybe TrendArrowOptions)
kPIOptions_trendArrows :: Lens' KPIOptions (Maybe TrendArrowOptions)
kPIOptions_trendArrows = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KPIOptions' {Maybe TrendArrowOptions
trendArrows :: Maybe TrendArrowOptions
$sel:trendArrows:KPIOptions' :: KPIOptions -> Maybe TrendArrowOptions
trendArrows} -> Maybe TrendArrowOptions
trendArrows) (\s :: KPIOptions
s@KPIOptions' {} Maybe TrendArrowOptions
a -> KPIOptions
s {$sel:trendArrows:KPIOptions' :: Maybe TrendArrowOptions
trendArrows = Maybe TrendArrowOptions
a} :: KPIOptions)
instance Data.FromJSON KPIOptions where
parseJSON :: Value -> Parser KPIOptions
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"KPIOptions"
( \Object
x ->
Maybe ComparisonConfiguration
-> Maybe PrimaryValueDisplayType
-> Maybe FontConfiguration
-> Maybe ProgressBarOptions
-> Maybe SecondaryValueOptions
-> Maybe FontConfiguration
-> Maybe TrendArrowOptions
-> KPIOptions
KPIOptions'
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
"Comparison")
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
"PrimaryValueDisplayType")
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
"PrimaryValueFontConfiguration")
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
"ProgressBar")
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
"SecondaryValue")
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
"SecondaryValueFontConfiguration")
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
"TrendArrows")
)
instance Prelude.Hashable KPIOptions where
hashWithSalt :: Int -> KPIOptions -> Int
hashWithSalt Int
_salt KPIOptions' {Maybe PrimaryValueDisplayType
Maybe FontConfiguration
Maybe TrendArrowOptions
Maybe ComparisonConfiguration
Maybe SecondaryValueOptions
Maybe ProgressBarOptions
trendArrows :: Maybe TrendArrowOptions
secondaryValueFontConfiguration :: Maybe FontConfiguration
secondaryValue :: Maybe SecondaryValueOptions
progressBar :: Maybe ProgressBarOptions
primaryValueFontConfiguration :: Maybe FontConfiguration
primaryValueDisplayType :: Maybe PrimaryValueDisplayType
comparison :: Maybe ComparisonConfiguration
$sel:trendArrows:KPIOptions' :: KPIOptions -> Maybe TrendArrowOptions
$sel:secondaryValueFontConfiguration:KPIOptions' :: KPIOptions -> Maybe FontConfiguration
$sel:secondaryValue:KPIOptions' :: KPIOptions -> Maybe SecondaryValueOptions
$sel:progressBar:KPIOptions' :: KPIOptions -> Maybe ProgressBarOptions
$sel:primaryValueFontConfiguration:KPIOptions' :: KPIOptions -> Maybe FontConfiguration
$sel:primaryValueDisplayType:KPIOptions' :: KPIOptions -> Maybe PrimaryValueDisplayType
$sel:comparison:KPIOptions' :: KPIOptions -> Maybe ComparisonConfiguration
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ComparisonConfiguration
comparison
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PrimaryValueDisplayType
primaryValueDisplayType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FontConfiguration
primaryValueFontConfiguration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ProgressBarOptions
progressBar
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SecondaryValueOptions
secondaryValue
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FontConfiguration
secondaryValueFontConfiguration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TrendArrowOptions
trendArrows
instance Prelude.NFData KPIOptions where
rnf :: KPIOptions -> ()
rnf KPIOptions' {Maybe PrimaryValueDisplayType
Maybe FontConfiguration
Maybe TrendArrowOptions
Maybe ComparisonConfiguration
Maybe SecondaryValueOptions
Maybe ProgressBarOptions
trendArrows :: Maybe TrendArrowOptions
secondaryValueFontConfiguration :: Maybe FontConfiguration
secondaryValue :: Maybe SecondaryValueOptions
progressBar :: Maybe ProgressBarOptions
primaryValueFontConfiguration :: Maybe FontConfiguration
primaryValueDisplayType :: Maybe PrimaryValueDisplayType
comparison :: Maybe ComparisonConfiguration
$sel:trendArrows:KPIOptions' :: KPIOptions -> Maybe TrendArrowOptions
$sel:secondaryValueFontConfiguration:KPIOptions' :: KPIOptions -> Maybe FontConfiguration
$sel:secondaryValue:KPIOptions' :: KPIOptions -> Maybe SecondaryValueOptions
$sel:progressBar:KPIOptions' :: KPIOptions -> Maybe ProgressBarOptions
$sel:primaryValueFontConfiguration:KPIOptions' :: KPIOptions -> Maybe FontConfiguration
$sel:primaryValueDisplayType:KPIOptions' :: KPIOptions -> Maybe PrimaryValueDisplayType
$sel:comparison:KPIOptions' :: KPIOptions -> Maybe ComparisonConfiguration
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ComparisonConfiguration
comparison
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PrimaryValueDisplayType
primaryValueDisplayType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FontConfiguration
primaryValueFontConfiguration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ProgressBarOptions
progressBar
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SecondaryValueOptions
secondaryValue
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FontConfiguration
secondaryValueFontConfiguration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TrendArrowOptions
trendArrows
instance Data.ToJSON KPIOptions where
toJSON :: KPIOptions -> Value
toJSON KPIOptions' {Maybe PrimaryValueDisplayType
Maybe FontConfiguration
Maybe TrendArrowOptions
Maybe ComparisonConfiguration
Maybe SecondaryValueOptions
Maybe ProgressBarOptions
trendArrows :: Maybe TrendArrowOptions
secondaryValueFontConfiguration :: Maybe FontConfiguration
secondaryValue :: Maybe SecondaryValueOptions
progressBar :: Maybe ProgressBarOptions
primaryValueFontConfiguration :: Maybe FontConfiguration
primaryValueDisplayType :: Maybe PrimaryValueDisplayType
comparison :: Maybe ComparisonConfiguration
$sel:trendArrows:KPIOptions' :: KPIOptions -> Maybe TrendArrowOptions
$sel:secondaryValueFontConfiguration:KPIOptions' :: KPIOptions -> Maybe FontConfiguration
$sel:secondaryValue:KPIOptions' :: KPIOptions -> Maybe SecondaryValueOptions
$sel:progressBar:KPIOptions' :: KPIOptions -> Maybe ProgressBarOptions
$sel:primaryValueFontConfiguration:KPIOptions' :: KPIOptions -> Maybe FontConfiguration
$sel:primaryValueDisplayType:KPIOptions' :: KPIOptions -> Maybe PrimaryValueDisplayType
$sel:comparison:KPIOptions' :: KPIOptions -> Maybe ComparisonConfiguration
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Comparison" 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 ComparisonConfiguration
comparison,
(Key
"PrimaryValueDisplayType" 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 PrimaryValueDisplayType
primaryValueDisplayType,
(Key
"PrimaryValueFontConfiguration" 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 FontConfiguration
primaryValueFontConfiguration,
(Key
"ProgressBar" 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 ProgressBarOptions
progressBar,
(Key
"SecondaryValue" 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 SecondaryValueOptions
secondaryValue,
(Key
"SecondaryValueFontConfiguration" 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 FontConfiguration
secondaryValueFontConfiguration,
(Key
"TrendArrows" 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 TrendArrowOptions
trendArrows
]
)