{-# 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.DataLabelType 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.DataPathLabelType
import Amazonka.QuickSight.Types.FieldLabelType
import Amazonka.QuickSight.Types.MaximumLabelType
import Amazonka.QuickSight.Types.MinimumLabelType
import Amazonka.QuickSight.Types.RangeEndsLabelType
data DataLabelType = DataLabelType'
{
DataLabelType -> Maybe DataPathLabelType
dataPathLabelType :: Prelude.Maybe DataPathLabelType,
DataLabelType -> Maybe FieldLabelType
fieldLabelType :: Prelude.Maybe FieldLabelType,
DataLabelType -> Maybe MaximumLabelType
maximumLabelType :: Prelude.Maybe MaximumLabelType,
DataLabelType -> Maybe MinimumLabelType
minimumLabelType :: Prelude.Maybe MinimumLabelType,
DataLabelType -> Maybe RangeEndsLabelType
rangeEndsLabelType :: Prelude.Maybe RangeEndsLabelType
}
deriving (DataLabelType -> DataLabelType -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DataLabelType -> DataLabelType -> Bool
$c/= :: DataLabelType -> DataLabelType -> Bool
== :: DataLabelType -> DataLabelType -> Bool
$c== :: DataLabelType -> DataLabelType -> Bool
Prelude.Eq, Int -> DataLabelType -> ShowS
[DataLabelType] -> ShowS
DataLabelType -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DataLabelType] -> ShowS
$cshowList :: [DataLabelType] -> ShowS
show :: DataLabelType -> String
$cshow :: DataLabelType -> String
showsPrec :: Int -> DataLabelType -> ShowS
$cshowsPrec :: Int -> DataLabelType -> ShowS
Prelude.Show, forall x. Rep DataLabelType x -> DataLabelType
forall x. DataLabelType -> Rep DataLabelType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DataLabelType x -> DataLabelType
$cfrom :: forall x. DataLabelType -> Rep DataLabelType x
Prelude.Generic)
newDataLabelType ::
DataLabelType
newDataLabelType :: DataLabelType
newDataLabelType =
DataLabelType'
{ $sel:dataPathLabelType:DataLabelType' :: Maybe DataPathLabelType
dataPathLabelType = forall a. Maybe a
Prelude.Nothing,
$sel:fieldLabelType:DataLabelType' :: Maybe FieldLabelType
fieldLabelType = forall a. Maybe a
Prelude.Nothing,
$sel:maximumLabelType:DataLabelType' :: Maybe MaximumLabelType
maximumLabelType = forall a. Maybe a
Prelude.Nothing,
$sel:minimumLabelType:DataLabelType' :: Maybe MinimumLabelType
minimumLabelType = forall a. Maybe a
Prelude.Nothing,
$sel:rangeEndsLabelType:DataLabelType' :: Maybe RangeEndsLabelType
rangeEndsLabelType = forall a. Maybe a
Prelude.Nothing
}
dataLabelType_dataPathLabelType :: Lens.Lens' DataLabelType (Prelude.Maybe DataPathLabelType)
dataLabelType_dataPathLabelType :: Lens' DataLabelType (Maybe DataPathLabelType)
dataLabelType_dataPathLabelType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataLabelType' {Maybe DataPathLabelType
dataPathLabelType :: Maybe DataPathLabelType
$sel:dataPathLabelType:DataLabelType' :: DataLabelType -> Maybe DataPathLabelType
dataPathLabelType} -> Maybe DataPathLabelType
dataPathLabelType) (\s :: DataLabelType
s@DataLabelType' {} Maybe DataPathLabelType
a -> DataLabelType
s {$sel:dataPathLabelType:DataLabelType' :: Maybe DataPathLabelType
dataPathLabelType = Maybe DataPathLabelType
a} :: DataLabelType)
dataLabelType_fieldLabelType :: Lens.Lens' DataLabelType (Prelude.Maybe FieldLabelType)
dataLabelType_fieldLabelType :: Lens' DataLabelType (Maybe FieldLabelType)
dataLabelType_fieldLabelType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataLabelType' {Maybe FieldLabelType
fieldLabelType :: Maybe FieldLabelType
$sel:fieldLabelType:DataLabelType' :: DataLabelType -> Maybe FieldLabelType
fieldLabelType} -> Maybe FieldLabelType
fieldLabelType) (\s :: DataLabelType
s@DataLabelType' {} Maybe FieldLabelType
a -> DataLabelType
s {$sel:fieldLabelType:DataLabelType' :: Maybe FieldLabelType
fieldLabelType = Maybe FieldLabelType
a} :: DataLabelType)
dataLabelType_maximumLabelType :: Lens.Lens' DataLabelType (Prelude.Maybe MaximumLabelType)
dataLabelType_maximumLabelType :: Lens' DataLabelType (Maybe MaximumLabelType)
dataLabelType_maximumLabelType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataLabelType' {Maybe MaximumLabelType
maximumLabelType :: Maybe MaximumLabelType
$sel:maximumLabelType:DataLabelType' :: DataLabelType -> Maybe MaximumLabelType
maximumLabelType} -> Maybe MaximumLabelType
maximumLabelType) (\s :: DataLabelType
s@DataLabelType' {} Maybe MaximumLabelType
a -> DataLabelType
s {$sel:maximumLabelType:DataLabelType' :: Maybe MaximumLabelType
maximumLabelType = Maybe MaximumLabelType
a} :: DataLabelType)
dataLabelType_minimumLabelType :: Lens.Lens' DataLabelType (Prelude.Maybe MinimumLabelType)
dataLabelType_minimumLabelType :: Lens' DataLabelType (Maybe MinimumLabelType)
dataLabelType_minimumLabelType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataLabelType' {Maybe MinimumLabelType
minimumLabelType :: Maybe MinimumLabelType
$sel:minimumLabelType:DataLabelType' :: DataLabelType -> Maybe MinimumLabelType
minimumLabelType} -> Maybe MinimumLabelType
minimumLabelType) (\s :: DataLabelType
s@DataLabelType' {} Maybe MinimumLabelType
a -> DataLabelType
s {$sel:minimumLabelType:DataLabelType' :: Maybe MinimumLabelType
minimumLabelType = Maybe MinimumLabelType
a} :: DataLabelType)
dataLabelType_rangeEndsLabelType :: Lens.Lens' DataLabelType (Prelude.Maybe RangeEndsLabelType)
dataLabelType_rangeEndsLabelType :: Lens' DataLabelType (Maybe RangeEndsLabelType)
dataLabelType_rangeEndsLabelType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataLabelType' {Maybe RangeEndsLabelType
rangeEndsLabelType :: Maybe RangeEndsLabelType
$sel:rangeEndsLabelType:DataLabelType' :: DataLabelType -> Maybe RangeEndsLabelType
rangeEndsLabelType} -> Maybe RangeEndsLabelType
rangeEndsLabelType) (\s :: DataLabelType
s@DataLabelType' {} Maybe RangeEndsLabelType
a -> DataLabelType
s {$sel:rangeEndsLabelType:DataLabelType' :: Maybe RangeEndsLabelType
rangeEndsLabelType = Maybe RangeEndsLabelType
a} :: DataLabelType)
instance Data.FromJSON DataLabelType where
parseJSON :: Value -> Parser DataLabelType
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"DataLabelType"
( \Object
x ->
Maybe DataPathLabelType
-> Maybe FieldLabelType
-> Maybe MaximumLabelType
-> Maybe MinimumLabelType
-> Maybe RangeEndsLabelType
-> DataLabelType
DataLabelType'
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
"DataPathLabelType")
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
"FieldLabelType")
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
"MaximumLabelType")
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
"MinimumLabelType")
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
"RangeEndsLabelType")
)
instance Prelude.Hashable DataLabelType where
hashWithSalt :: Int -> DataLabelType -> Int
hashWithSalt Int
_salt DataLabelType' {Maybe RangeEndsLabelType
Maybe MinimumLabelType
Maybe MaximumLabelType
Maybe FieldLabelType
Maybe DataPathLabelType
rangeEndsLabelType :: Maybe RangeEndsLabelType
minimumLabelType :: Maybe MinimumLabelType
maximumLabelType :: Maybe MaximumLabelType
fieldLabelType :: Maybe FieldLabelType
dataPathLabelType :: Maybe DataPathLabelType
$sel:rangeEndsLabelType:DataLabelType' :: DataLabelType -> Maybe RangeEndsLabelType
$sel:minimumLabelType:DataLabelType' :: DataLabelType -> Maybe MinimumLabelType
$sel:maximumLabelType:DataLabelType' :: DataLabelType -> Maybe MaximumLabelType
$sel:fieldLabelType:DataLabelType' :: DataLabelType -> Maybe FieldLabelType
$sel:dataPathLabelType:DataLabelType' :: DataLabelType -> Maybe DataPathLabelType
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataPathLabelType
dataPathLabelType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FieldLabelType
fieldLabelType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MaximumLabelType
maximumLabelType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MinimumLabelType
minimumLabelType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RangeEndsLabelType
rangeEndsLabelType
instance Prelude.NFData DataLabelType where
rnf :: DataLabelType -> ()
rnf DataLabelType' {Maybe RangeEndsLabelType
Maybe MinimumLabelType
Maybe MaximumLabelType
Maybe FieldLabelType
Maybe DataPathLabelType
rangeEndsLabelType :: Maybe RangeEndsLabelType
minimumLabelType :: Maybe MinimumLabelType
maximumLabelType :: Maybe MaximumLabelType
fieldLabelType :: Maybe FieldLabelType
dataPathLabelType :: Maybe DataPathLabelType
$sel:rangeEndsLabelType:DataLabelType' :: DataLabelType -> Maybe RangeEndsLabelType
$sel:minimumLabelType:DataLabelType' :: DataLabelType -> Maybe MinimumLabelType
$sel:maximumLabelType:DataLabelType' :: DataLabelType -> Maybe MaximumLabelType
$sel:fieldLabelType:DataLabelType' :: DataLabelType -> Maybe FieldLabelType
$sel:dataPathLabelType:DataLabelType' :: DataLabelType -> Maybe DataPathLabelType
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe DataPathLabelType
dataPathLabelType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FieldLabelType
fieldLabelType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MaximumLabelType
maximumLabelType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MinimumLabelType
minimumLabelType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RangeEndsLabelType
rangeEndsLabelType
instance Data.ToJSON DataLabelType where
toJSON :: DataLabelType -> Value
toJSON DataLabelType' {Maybe RangeEndsLabelType
Maybe MinimumLabelType
Maybe MaximumLabelType
Maybe FieldLabelType
Maybe DataPathLabelType
rangeEndsLabelType :: Maybe RangeEndsLabelType
minimumLabelType :: Maybe MinimumLabelType
maximumLabelType :: Maybe MaximumLabelType
fieldLabelType :: Maybe FieldLabelType
dataPathLabelType :: Maybe DataPathLabelType
$sel:rangeEndsLabelType:DataLabelType' :: DataLabelType -> Maybe RangeEndsLabelType
$sel:minimumLabelType:DataLabelType' :: DataLabelType -> Maybe MinimumLabelType
$sel:maximumLabelType:DataLabelType' :: DataLabelType -> Maybe MaximumLabelType
$sel:fieldLabelType:DataLabelType' :: DataLabelType -> Maybe FieldLabelType
$sel:dataPathLabelType:DataLabelType' :: DataLabelType -> Maybe DataPathLabelType
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"DataPathLabelType" 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 DataPathLabelType
dataPathLabelType,
(Key
"FieldLabelType" 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 FieldLabelType
fieldLabelType,
(Key
"MaximumLabelType" 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 MaximumLabelType
maximumLabelType,
(Key
"MinimumLabelType" 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 MinimumLabelType
minimumLabelType,
(Key
"RangeEndsLabelType" 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 RangeEndsLabelType
rangeEndsLabelType
]
)