{-# 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.FilterGroup 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.CrossDatasetTypes
import Amazonka.QuickSight.Types.Filter
import Amazonka.QuickSight.Types.FilterScopeConfiguration
import Amazonka.QuickSight.Types.WidgetStatus
data FilterGroup = FilterGroup'
{
FilterGroup -> Maybe WidgetStatus
status :: Prelude.Maybe WidgetStatus,
FilterGroup -> Text
filterGroupId :: Prelude.Text,
FilterGroup -> [Filter]
filters :: [Filter],
FilterGroup -> FilterScopeConfiguration
scopeConfiguration :: FilterScopeConfiguration,
FilterGroup -> CrossDatasetTypes
crossDataset :: CrossDatasetTypes
}
deriving (FilterGroup -> FilterGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FilterGroup -> FilterGroup -> Bool
$c/= :: FilterGroup -> FilterGroup -> Bool
== :: FilterGroup -> FilterGroup -> Bool
$c== :: FilterGroup -> FilterGroup -> Bool
Prelude.Eq, Int -> FilterGroup -> ShowS
[FilterGroup] -> ShowS
FilterGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FilterGroup] -> ShowS
$cshowList :: [FilterGroup] -> ShowS
show :: FilterGroup -> String
$cshow :: FilterGroup -> String
showsPrec :: Int -> FilterGroup -> ShowS
$cshowsPrec :: Int -> FilterGroup -> ShowS
Prelude.Show, forall x. Rep FilterGroup x -> FilterGroup
forall x. FilterGroup -> Rep FilterGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep FilterGroup x -> FilterGroup
$cfrom :: forall x. FilterGroup -> Rep FilterGroup x
Prelude.Generic)
newFilterGroup ::
Prelude.Text ->
FilterScopeConfiguration ->
CrossDatasetTypes ->
FilterGroup
newFilterGroup :: Text
-> FilterScopeConfiguration -> CrossDatasetTypes -> FilterGroup
newFilterGroup
Text
pFilterGroupId_
FilterScopeConfiguration
pScopeConfiguration_
CrossDatasetTypes
pCrossDataset_ =
FilterGroup'
{ $sel:status:FilterGroup' :: Maybe WidgetStatus
status = forall a. Maybe a
Prelude.Nothing,
$sel:filterGroupId:FilterGroup' :: Text
filterGroupId = Text
pFilterGroupId_,
$sel:filters:FilterGroup' :: [Filter]
filters = forall a. Monoid a => a
Prelude.mempty,
$sel:scopeConfiguration:FilterGroup' :: FilterScopeConfiguration
scopeConfiguration = FilterScopeConfiguration
pScopeConfiguration_,
$sel:crossDataset:FilterGroup' :: CrossDatasetTypes
crossDataset = CrossDatasetTypes
pCrossDataset_
}
filterGroup_status :: Lens.Lens' FilterGroup (Prelude.Maybe WidgetStatus)
filterGroup_status :: Lens' FilterGroup (Maybe WidgetStatus)
filterGroup_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FilterGroup' {Maybe WidgetStatus
status :: Maybe WidgetStatus
$sel:status:FilterGroup' :: FilterGroup -> Maybe WidgetStatus
status} -> Maybe WidgetStatus
status) (\s :: FilterGroup
s@FilterGroup' {} Maybe WidgetStatus
a -> FilterGroup
s {$sel:status:FilterGroup' :: Maybe WidgetStatus
status = Maybe WidgetStatus
a} :: FilterGroup)
filterGroup_filterGroupId :: Lens.Lens' FilterGroup Prelude.Text
filterGroup_filterGroupId :: Lens' FilterGroup Text
filterGroup_filterGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FilterGroup' {Text
filterGroupId :: Text
$sel:filterGroupId:FilterGroup' :: FilterGroup -> Text
filterGroupId} -> Text
filterGroupId) (\s :: FilterGroup
s@FilterGroup' {} Text
a -> FilterGroup
s {$sel:filterGroupId:FilterGroup' :: Text
filterGroupId = Text
a} :: FilterGroup)
filterGroup_filters :: Lens.Lens' FilterGroup [Filter]
filterGroup_filters :: Lens' FilterGroup [Filter]
filterGroup_filters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FilterGroup' {[Filter]
filters :: [Filter]
$sel:filters:FilterGroup' :: FilterGroup -> [Filter]
filters} -> [Filter]
filters) (\s :: FilterGroup
s@FilterGroup' {} [Filter]
a -> FilterGroup
s {$sel:filters:FilterGroup' :: [Filter]
filters = [Filter]
a} :: FilterGroup) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
filterGroup_scopeConfiguration :: Lens.Lens' FilterGroup FilterScopeConfiguration
filterGroup_scopeConfiguration :: Lens' FilterGroup FilterScopeConfiguration
filterGroup_scopeConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FilterGroup' {FilterScopeConfiguration
scopeConfiguration :: FilterScopeConfiguration
$sel:scopeConfiguration:FilterGroup' :: FilterGroup -> FilterScopeConfiguration
scopeConfiguration} -> FilterScopeConfiguration
scopeConfiguration) (\s :: FilterGroup
s@FilterGroup' {} FilterScopeConfiguration
a -> FilterGroup
s {$sel:scopeConfiguration:FilterGroup' :: FilterScopeConfiguration
scopeConfiguration = FilterScopeConfiguration
a} :: FilterGroup)
filterGroup_crossDataset :: Lens.Lens' FilterGroup CrossDatasetTypes
filterGroup_crossDataset :: Lens' FilterGroup CrossDatasetTypes
filterGroup_crossDataset = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FilterGroup' {CrossDatasetTypes
crossDataset :: CrossDatasetTypes
$sel:crossDataset:FilterGroup' :: FilterGroup -> CrossDatasetTypes
crossDataset} -> CrossDatasetTypes
crossDataset) (\s :: FilterGroup
s@FilterGroup' {} CrossDatasetTypes
a -> FilterGroup
s {$sel:crossDataset:FilterGroup' :: CrossDatasetTypes
crossDataset = CrossDatasetTypes
a} :: FilterGroup)
instance Data.FromJSON FilterGroup where
parseJSON :: Value -> Parser FilterGroup
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"FilterGroup"
( \Object
x ->
Maybe WidgetStatus
-> Text
-> [Filter]
-> FilterScopeConfiguration
-> CrossDatasetTypes
-> FilterGroup
FilterGroup'
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
"Status")
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
"FilterGroupId")
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
"Filters" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
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
"ScopeConfiguration")
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
"CrossDataset")
)
instance Prelude.Hashable FilterGroup where
hashWithSalt :: Int -> FilterGroup -> Int
hashWithSalt Int
_salt FilterGroup' {[Filter]
Maybe WidgetStatus
Text
CrossDatasetTypes
FilterScopeConfiguration
crossDataset :: CrossDatasetTypes
scopeConfiguration :: FilterScopeConfiguration
filters :: [Filter]
filterGroupId :: Text
status :: Maybe WidgetStatus
$sel:crossDataset:FilterGroup' :: FilterGroup -> CrossDatasetTypes
$sel:scopeConfiguration:FilterGroup' :: FilterGroup -> FilterScopeConfiguration
$sel:filters:FilterGroup' :: FilterGroup -> [Filter]
$sel:filterGroupId:FilterGroup' :: FilterGroup -> Text
$sel:status:FilterGroup' :: FilterGroup -> Maybe WidgetStatus
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WidgetStatus
status
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
filterGroupId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [Filter]
filters
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` FilterScopeConfiguration
scopeConfiguration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` CrossDatasetTypes
crossDataset
instance Prelude.NFData FilterGroup where
rnf :: FilterGroup -> ()
rnf FilterGroup' {[Filter]
Maybe WidgetStatus
Text
CrossDatasetTypes
FilterScopeConfiguration
crossDataset :: CrossDatasetTypes
scopeConfiguration :: FilterScopeConfiguration
filters :: [Filter]
filterGroupId :: Text
status :: Maybe WidgetStatus
$sel:crossDataset:FilterGroup' :: FilterGroup -> CrossDatasetTypes
$sel:scopeConfiguration:FilterGroup' :: FilterGroup -> FilterScopeConfiguration
$sel:filters:FilterGroup' :: FilterGroup -> [Filter]
$sel:filterGroupId:FilterGroup' :: FilterGroup -> Text
$sel:status:FilterGroup' :: FilterGroup -> Maybe WidgetStatus
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe WidgetStatus
status
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
filterGroupId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [Filter]
filters
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf FilterScopeConfiguration
scopeConfiguration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf CrossDatasetTypes
crossDataset
instance Data.ToJSON FilterGroup where
toJSON :: FilterGroup -> Value
toJSON FilterGroup' {[Filter]
Maybe WidgetStatus
Text
CrossDatasetTypes
FilterScopeConfiguration
crossDataset :: CrossDatasetTypes
scopeConfiguration :: FilterScopeConfiguration
filters :: [Filter]
filterGroupId :: Text
status :: Maybe WidgetStatus
$sel:crossDataset:FilterGroup' :: FilterGroup -> CrossDatasetTypes
$sel:scopeConfiguration:FilterGroup' :: FilterGroup -> FilterScopeConfiguration
$sel:filters:FilterGroup' :: FilterGroup -> [Filter]
$sel:filterGroupId:FilterGroup' :: FilterGroup -> Text
$sel:status:FilterGroup' :: FilterGroup -> Maybe WidgetStatus
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Status" 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 WidgetStatus
status,
forall a. a -> Maybe a
Prelude.Just (Key
"FilterGroupId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
filterGroupId),
forall a. a -> Maybe a
Prelude.Just (Key
"Filters" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= [Filter]
filters),
forall a. a -> Maybe a
Prelude.Just
(Key
"ScopeConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= FilterScopeConfiguration
scopeConfiguration),
forall a. a -> Maybe a
Prelude.Just (Key
"CrossDataset" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= CrossDatasetTypes
crossDataset)
]
)