{-# 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.NumericEqualityFilter 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.AggregationFunction
import Amazonka.QuickSight.Types.ColumnIdentifier
import Amazonka.QuickSight.Types.FilterNullOption
import Amazonka.QuickSight.Types.NumericEqualityMatchOperator
import Amazonka.QuickSight.Types.NumericFilterSelectAllOptions
data NumericEqualityFilter = NumericEqualityFilter'
{
NumericEqualityFilter -> Maybe AggregationFunction
aggregationFunction :: Prelude.Maybe AggregationFunction,
NumericEqualityFilter -> Maybe Text
parameterName :: Prelude.Maybe Prelude.Text,
NumericEqualityFilter -> Maybe NumericFilterSelectAllOptions
selectAllOptions :: Prelude.Maybe NumericFilterSelectAllOptions,
NumericEqualityFilter -> Maybe Double
value :: Prelude.Maybe Prelude.Double,
NumericEqualityFilter -> Text
filterId :: Prelude.Text,
NumericEqualityFilter -> ColumnIdentifier
column :: ColumnIdentifier,
NumericEqualityFilter -> NumericEqualityMatchOperator
matchOperator :: NumericEqualityMatchOperator,
NumericEqualityFilter -> FilterNullOption
nullOption :: FilterNullOption
}
deriving (NumericEqualityFilter -> NumericEqualityFilter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NumericEqualityFilter -> NumericEqualityFilter -> Bool
$c/= :: NumericEqualityFilter -> NumericEqualityFilter -> Bool
== :: NumericEqualityFilter -> NumericEqualityFilter -> Bool
$c== :: NumericEqualityFilter -> NumericEqualityFilter -> Bool
Prelude.Eq, ReadPrec [NumericEqualityFilter]
ReadPrec NumericEqualityFilter
Int -> ReadS NumericEqualityFilter
ReadS [NumericEqualityFilter]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [NumericEqualityFilter]
$creadListPrec :: ReadPrec [NumericEqualityFilter]
readPrec :: ReadPrec NumericEqualityFilter
$creadPrec :: ReadPrec NumericEqualityFilter
readList :: ReadS [NumericEqualityFilter]
$creadList :: ReadS [NumericEqualityFilter]
readsPrec :: Int -> ReadS NumericEqualityFilter
$creadsPrec :: Int -> ReadS NumericEqualityFilter
Prelude.Read, Int -> NumericEqualityFilter -> ShowS
[NumericEqualityFilter] -> ShowS
NumericEqualityFilter -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NumericEqualityFilter] -> ShowS
$cshowList :: [NumericEqualityFilter] -> ShowS
show :: NumericEqualityFilter -> String
$cshow :: NumericEqualityFilter -> String
showsPrec :: Int -> NumericEqualityFilter -> ShowS
$cshowsPrec :: Int -> NumericEqualityFilter -> ShowS
Prelude.Show, forall x. Rep NumericEqualityFilter x -> NumericEqualityFilter
forall x. NumericEqualityFilter -> Rep NumericEqualityFilter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep NumericEqualityFilter x -> NumericEqualityFilter
$cfrom :: forall x. NumericEqualityFilter -> Rep NumericEqualityFilter x
Prelude.Generic)
newNumericEqualityFilter ::
Prelude.Text ->
ColumnIdentifier ->
NumericEqualityMatchOperator ->
FilterNullOption ->
NumericEqualityFilter
newNumericEqualityFilter :: Text
-> ColumnIdentifier
-> NumericEqualityMatchOperator
-> FilterNullOption
-> NumericEqualityFilter
newNumericEqualityFilter
Text
pFilterId_
ColumnIdentifier
pColumn_
NumericEqualityMatchOperator
pMatchOperator_
FilterNullOption
pNullOption_ =
NumericEqualityFilter'
{ $sel:aggregationFunction:NumericEqualityFilter' :: Maybe AggregationFunction
aggregationFunction =
forall a. Maybe a
Prelude.Nothing,
$sel:parameterName:NumericEqualityFilter' :: Maybe Text
parameterName = forall a. Maybe a
Prelude.Nothing,
$sel:selectAllOptions:NumericEqualityFilter' :: Maybe NumericFilterSelectAllOptions
selectAllOptions = forall a. Maybe a
Prelude.Nothing,
$sel:value:NumericEqualityFilter' :: Maybe Double
value = forall a. Maybe a
Prelude.Nothing,
$sel:filterId:NumericEqualityFilter' :: Text
filterId = Text
pFilterId_,
$sel:column:NumericEqualityFilter' :: ColumnIdentifier
column = ColumnIdentifier
pColumn_,
$sel:matchOperator:NumericEqualityFilter' :: NumericEqualityMatchOperator
matchOperator = NumericEqualityMatchOperator
pMatchOperator_,
$sel:nullOption:NumericEqualityFilter' :: FilterNullOption
nullOption = FilterNullOption
pNullOption_
}
numericEqualityFilter_aggregationFunction :: Lens.Lens' NumericEqualityFilter (Prelude.Maybe AggregationFunction)
numericEqualityFilter_aggregationFunction :: Lens' NumericEqualityFilter (Maybe AggregationFunction)
numericEqualityFilter_aggregationFunction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NumericEqualityFilter' {Maybe AggregationFunction
aggregationFunction :: Maybe AggregationFunction
$sel:aggregationFunction:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe AggregationFunction
aggregationFunction} -> Maybe AggregationFunction
aggregationFunction) (\s :: NumericEqualityFilter
s@NumericEqualityFilter' {} Maybe AggregationFunction
a -> NumericEqualityFilter
s {$sel:aggregationFunction:NumericEqualityFilter' :: Maybe AggregationFunction
aggregationFunction = Maybe AggregationFunction
a} :: NumericEqualityFilter)
numericEqualityFilter_parameterName :: Lens.Lens' NumericEqualityFilter (Prelude.Maybe Prelude.Text)
numericEqualityFilter_parameterName :: Lens' NumericEqualityFilter (Maybe Text)
numericEqualityFilter_parameterName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NumericEqualityFilter' {Maybe Text
parameterName :: Maybe Text
$sel:parameterName:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe Text
parameterName} -> Maybe Text
parameterName) (\s :: NumericEqualityFilter
s@NumericEqualityFilter' {} Maybe Text
a -> NumericEqualityFilter
s {$sel:parameterName:NumericEqualityFilter' :: Maybe Text
parameterName = Maybe Text
a} :: NumericEqualityFilter)
numericEqualityFilter_selectAllOptions :: Lens.Lens' NumericEqualityFilter (Prelude.Maybe NumericFilterSelectAllOptions)
numericEqualityFilter_selectAllOptions :: Lens' NumericEqualityFilter (Maybe NumericFilterSelectAllOptions)
numericEqualityFilter_selectAllOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NumericEqualityFilter' {Maybe NumericFilterSelectAllOptions
selectAllOptions :: Maybe NumericFilterSelectAllOptions
$sel:selectAllOptions:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe NumericFilterSelectAllOptions
selectAllOptions} -> Maybe NumericFilterSelectAllOptions
selectAllOptions) (\s :: NumericEqualityFilter
s@NumericEqualityFilter' {} Maybe NumericFilterSelectAllOptions
a -> NumericEqualityFilter
s {$sel:selectAllOptions:NumericEqualityFilter' :: Maybe NumericFilterSelectAllOptions
selectAllOptions = Maybe NumericFilterSelectAllOptions
a} :: NumericEqualityFilter)
numericEqualityFilter_value :: Lens.Lens' NumericEqualityFilter (Prelude.Maybe Prelude.Double)
numericEqualityFilter_value :: Lens' NumericEqualityFilter (Maybe Double)
numericEqualityFilter_value = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NumericEqualityFilter' {Maybe Double
value :: Maybe Double
$sel:value:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe Double
value} -> Maybe Double
value) (\s :: NumericEqualityFilter
s@NumericEqualityFilter' {} Maybe Double
a -> NumericEqualityFilter
s {$sel:value:NumericEqualityFilter' :: Maybe Double
value = Maybe Double
a} :: NumericEqualityFilter)
numericEqualityFilter_filterId :: Lens.Lens' NumericEqualityFilter Prelude.Text
numericEqualityFilter_filterId :: Lens' NumericEqualityFilter Text
numericEqualityFilter_filterId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NumericEqualityFilter' {Text
filterId :: Text
$sel:filterId:NumericEqualityFilter' :: NumericEqualityFilter -> Text
filterId} -> Text
filterId) (\s :: NumericEqualityFilter
s@NumericEqualityFilter' {} Text
a -> NumericEqualityFilter
s {$sel:filterId:NumericEqualityFilter' :: Text
filterId = Text
a} :: NumericEqualityFilter)
numericEqualityFilter_column :: Lens.Lens' NumericEqualityFilter ColumnIdentifier
numericEqualityFilter_column :: Lens' NumericEqualityFilter ColumnIdentifier
numericEqualityFilter_column = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NumericEqualityFilter' {ColumnIdentifier
column :: ColumnIdentifier
$sel:column:NumericEqualityFilter' :: NumericEqualityFilter -> ColumnIdentifier
column} -> ColumnIdentifier
column) (\s :: NumericEqualityFilter
s@NumericEqualityFilter' {} ColumnIdentifier
a -> NumericEqualityFilter
s {$sel:column:NumericEqualityFilter' :: ColumnIdentifier
column = ColumnIdentifier
a} :: NumericEqualityFilter)
numericEqualityFilter_matchOperator :: Lens.Lens' NumericEqualityFilter NumericEqualityMatchOperator
numericEqualityFilter_matchOperator :: Lens' NumericEqualityFilter NumericEqualityMatchOperator
numericEqualityFilter_matchOperator = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NumericEqualityFilter' {NumericEqualityMatchOperator
matchOperator :: NumericEqualityMatchOperator
$sel:matchOperator:NumericEqualityFilter' :: NumericEqualityFilter -> NumericEqualityMatchOperator
matchOperator} -> NumericEqualityMatchOperator
matchOperator) (\s :: NumericEqualityFilter
s@NumericEqualityFilter' {} NumericEqualityMatchOperator
a -> NumericEqualityFilter
s {$sel:matchOperator:NumericEqualityFilter' :: NumericEqualityMatchOperator
matchOperator = NumericEqualityMatchOperator
a} :: NumericEqualityFilter)
numericEqualityFilter_nullOption :: Lens.Lens' NumericEqualityFilter FilterNullOption
numericEqualityFilter_nullOption :: Lens' NumericEqualityFilter FilterNullOption
numericEqualityFilter_nullOption = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NumericEqualityFilter' {FilterNullOption
nullOption :: FilterNullOption
$sel:nullOption:NumericEqualityFilter' :: NumericEqualityFilter -> FilterNullOption
nullOption} -> FilterNullOption
nullOption) (\s :: NumericEqualityFilter
s@NumericEqualityFilter' {} FilterNullOption
a -> NumericEqualityFilter
s {$sel:nullOption:NumericEqualityFilter' :: FilterNullOption
nullOption = FilterNullOption
a} :: NumericEqualityFilter)
instance Data.FromJSON NumericEqualityFilter where
parseJSON :: Value -> Parser NumericEqualityFilter
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"NumericEqualityFilter"
( \Object
x ->
Maybe AggregationFunction
-> Maybe Text
-> Maybe NumericFilterSelectAllOptions
-> Maybe Double
-> Text
-> ColumnIdentifier
-> NumericEqualityMatchOperator
-> FilterNullOption
-> NumericEqualityFilter
NumericEqualityFilter'
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
"AggregationFunction")
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
"ParameterName")
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
"SelectAllOptions")
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
"Value")
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
"FilterId")
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
"Column")
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
"MatchOperator")
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
"NullOption")
)
instance Prelude.Hashable NumericEqualityFilter where
hashWithSalt :: Int -> NumericEqualityFilter -> Int
hashWithSalt Int
_salt NumericEqualityFilter' {Maybe Double
Maybe Text
Maybe NumericFilterSelectAllOptions
Maybe AggregationFunction
Text
ColumnIdentifier
FilterNullOption
NumericEqualityMatchOperator
nullOption :: FilterNullOption
matchOperator :: NumericEqualityMatchOperator
column :: ColumnIdentifier
filterId :: Text
value :: Maybe Double
selectAllOptions :: Maybe NumericFilterSelectAllOptions
parameterName :: Maybe Text
aggregationFunction :: Maybe AggregationFunction
$sel:nullOption:NumericEqualityFilter' :: NumericEqualityFilter -> FilterNullOption
$sel:matchOperator:NumericEqualityFilter' :: NumericEqualityFilter -> NumericEqualityMatchOperator
$sel:column:NumericEqualityFilter' :: NumericEqualityFilter -> ColumnIdentifier
$sel:filterId:NumericEqualityFilter' :: NumericEqualityFilter -> Text
$sel:value:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe Double
$sel:selectAllOptions:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe NumericFilterSelectAllOptions
$sel:parameterName:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe Text
$sel:aggregationFunction:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe AggregationFunction
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AggregationFunction
aggregationFunction
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
parameterName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NumericFilterSelectAllOptions
selectAllOptions
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
value
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
filterId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ColumnIdentifier
column
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NumericEqualityMatchOperator
matchOperator
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` FilterNullOption
nullOption
instance Prelude.NFData NumericEqualityFilter where
rnf :: NumericEqualityFilter -> ()
rnf NumericEqualityFilter' {Maybe Double
Maybe Text
Maybe NumericFilterSelectAllOptions
Maybe AggregationFunction
Text
ColumnIdentifier
FilterNullOption
NumericEqualityMatchOperator
nullOption :: FilterNullOption
matchOperator :: NumericEqualityMatchOperator
column :: ColumnIdentifier
filterId :: Text
value :: Maybe Double
selectAllOptions :: Maybe NumericFilterSelectAllOptions
parameterName :: Maybe Text
aggregationFunction :: Maybe AggregationFunction
$sel:nullOption:NumericEqualityFilter' :: NumericEqualityFilter -> FilterNullOption
$sel:matchOperator:NumericEqualityFilter' :: NumericEqualityFilter -> NumericEqualityMatchOperator
$sel:column:NumericEqualityFilter' :: NumericEqualityFilter -> ColumnIdentifier
$sel:filterId:NumericEqualityFilter' :: NumericEqualityFilter -> Text
$sel:value:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe Double
$sel:selectAllOptions:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe NumericFilterSelectAllOptions
$sel:parameterName:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe Text
$sel:aggregationFunction:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe AggregationFunction
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe AggregationFunction
aggregationFunction
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
parameterName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe NumericFilterSelectAllOptions
selectAllOptions
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Double
value
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
filterId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ColumnIdentifier
column
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NumericEqualityMatchOperator
matchOperator
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf FilterNullOption
nullOption
instance Data.ToJSON NumericEqualityFilter where
toJSON :: NumericEqualityFilter -> Value
toJSON NumericEqualityFilter' {Maybe Double
Maybe Text
Maybe NumericFilterSelectAllOptions
Maybe AggregationFunction
Text
ColumnIdentifier
FilterNullOption
NumericEqualityMatchOperator
nullOption :: FilterNullOption
matchOperator :: NumericEqualityMatchOperator
column :: ColumnIdentifier
filterId :: Text
value :: Maybe Double
selectAllOptions :: Maybe NumericFilterSelectAllOptions
parameterName :: Maybe Text
aggregationFunction :: Maybe AggregationFunction
$sel:nullOption:NumericEqualityFilter' :: NumericEqualityFilter -> FilterNullOption
$sel:matchOperator:NumericEqualityFilter' :: NumericEqualityFilter -> NumericEqualityMatchOperator
$sel:column:NumericEqualityFilter' :: NumericEqualityFilter -> ColumnIdentifier
$sel:filterId:NumericEqualityFilter' :: NumericEqualityFilter -> Text
$sel:value:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe Double
$sel:selectAllOptions:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe NumericFilterSelectAllOptions
$sel:parameterName:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe Text
$sel:aggregationFunction:NumericEqualityFilter' :: NumericEqualityFilter -> Maybe AggregationFunction
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"AggregationFunction" 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 AggregationFunction
aggregationFunction,
(Key
"ParameterName" 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
parameterName,
(Key
"SelectAllOptions" 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 NumericFilterSelectAllOptions
selectAllOptions,
(Key
"Value" 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 Double
value,
forall a. a -> Maybe a
Prelude.Just (Key
"FilterId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
filterId),
forall a. a -> Maybe a
Prelude.Just (Key
"Column" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ColumnIdentifier
column),
forall a. a -> Maybe a
Prelude.Just (Key
"MatchOperator" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NumericEqualityMatchOperator
matchOperator),
forall a. a -> Maybe a
Prelude.Just (Key
"NullOption" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= FilterNullOption
nullOption)
]
)