{-# 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.TransformOperation 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.CastColumnTypeOperation
import Amazonka.QuickSight.Types.CreateColumnsOperation
import Amazonka.QuickSight.Types.FilterOperation
import Amazonka.QuickSight.Types.ProjectOperation
import Amazonka.QuickSight.Types.RenameColumnOperation
import Amazonka.QuickSight.Types.TagColumnOperation
import Amazonka.QuickSight.Types.UntagColumnOperation
data TransformOperation = TransformOperation'
{
TransformOperation -> Maybe CastColumnTypeOperation
castColumnTypeOperation :: Prelude.Maybe CastColumnTypeOperation,
TransformOperation -> Maybe CreateColumnsOperation
createColumnsOperation :: Prelude.Maybe CreateColumnsOperation,
TransformOperation -> Maybe FilterOperation
filterOperation :: Prelude.Maybe FilterOperation,
TransformOperation -> Maybe ProjectOperation
projectOperation :: Prelude.Maybe ProjectOperation,
TransformOperation -> Maybe RenameColumnOperation
renameColumnOperation :: Prelude.Maybe RenameColumnOperation,
TransformOperation -> Maybe TagColumnOperation
tagColumnOperation :: Prelude.Maybe TagColumnOperation,
TransformOperation -> Maybe UntagColumnOperation
untagColumnOperation :: Prelude.Maybe UntagColumnOperation
}
deriving (TransformOperation -> TransformOperation -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TransformOperation -> TransformOperation -> Bool
$c/= :: TransformOperation -> TransformOperation -> Bool
== :: TransformOperation -> TransformOperation -> Bool
$c== :: TransformOperation -> TransformOperation -> Bool
Prelude.Eq, Int -> TransformOperation -> ShowS
[TransformOperation] -> ShowS
TransformOperation -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TransformOperation] -> ShowS
$cshowList :: [TransformOperation] -> ShowS
show :: TransformOperation -> String
$cshow :: TransformOperation -> String
showsPrec :: Int -> TransformOperation -> ShowS
$cshowsPrec :: Int -> TransformOperation -> ShowS
Prelude.Show, forall x. Rep TransformOperation x -> TransformOperation
forall x. TransformOperation -> Rep TransformOperation x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TransformOperation x -> TransformOperation
$cfrom :: forall x. TransformOperation -> Rep TransformOperation x
Prelude.Generic)
newTransformOperation ::
TransformOperation
newTransformOperation :: TransformOperation
newTransformOperation =
TransformOperation'
{ $sel:castColumnTypeOperation:TransformOperation' :: Maybe CastColumnTypeOperation
castColumnTypeOperation =
forall a. Maybe a
Prelude.Nothing,
$sel:createColumnsOperation:TransformOperation' :: Maybe CreateColumnsOperation
createColumnsOperation = forall a. Maybe a
Prelude.Nothing,
$sel:filterOperation:TransformOperation' :: Maybe FilterOperation
filterOperation = forall a. Maybe a
Prelude.Nothing,
$sel:projectOperation:TransformOperation' :: Maybe ProjectOperation
projectOperation = forall a. Maybe a
Prelude.Nothing,
$sel:renameColumnOperation:TransformOperation' :: Maybe RenameColumnOperation
renameColumnOperation = forall a. Maybe a
Prelude.Nothing,
$sel:tagColumnOperation:TransformOperation' :: Maybe TagColumnOperation
tagColumnOperation = forall a. Maybe a
Prelude.Nothing,
$sel:untagColumnOperation:TransformOperation' :: Maybe UntagColumnOperation
untagColumnOperation = forall a. Maybe a
Prelude.Nothing
}
transformOperation_castColumnTypeOperation :: Lens.Lens' TransformOperation (Prelude.Maybe CastColumnTypeOperation)
transformOperation_castColumnTypeOperation :: Lens' TransformOperation (Maybe CastColumnTypeOperation)
transformOperation_castColumnTypeOperation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformOperation' {Maybe CastColumnTypeOperation
castColumnTypeOperation :: Maybe CastColumnTypeOperation
$sel:castColumnTypeOperation:TransformOperation' :: TransformOperation -> Maybe CastColumnTypeOperation
castColumnTypeOperation} -> Maybe CastColumnTypeOperation
castColumnTypeOperation) (\s :: TransformOperation
s@TransformOperation' {} Maybe CastColumnTypeOperation
a -> TransformOperation
s {$sel:castColumnTypeOperation:TransformOperation' :: Maybe CastColumnTypeOperation
castColumnTypeOperation = Maybe CastColumnTypeOperation
a} :: TransformOperation)
transformOperation_createColumnsOperation :: Lens.Lens' TransformOperation (Prelude.Maybe CreateColumnsOperation)
transformOperation_createColumnsOperation :: Lens' TransformOperation (Maybe CreateColumnsOperation)
transformOperation_createColumnsOperation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformOperation' {Maybe CreateColumnsOperation
createColumnsOperation :: Maybe CreateColumnsOperation
$sel:createColumnsOperation:TransformOperation' :: TransformOperation -> Maybe CreateColumnsOperation
createColumnsOperation} -> Maybe CreateColumnsOperation
createColumnsOperation) (\s :: TransformOperation
s@TransformOperation' {} Maybe CreateColumnsOperation
a -> TransformOperation
s {$sel:createColumnsOperation:TransformOperation' :: Maybe CreateColumnsOperation
createColumnsOperation = Maybe CreateColumnsOperation
a} :: TransformOperation)
transformOperation_filterOperation :: Lens.Lens' TransformOperation (Prelude.Maybe FilterOperation)
transformOperation_filterOperation :: Lens' TransformOperation (Maybe FilterOperation)
transformOperation_filterOperation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformOperation' {Maybe FilterOperation
filterOperation :: Maybe FilterOperation
$sel:filterOperation:TransformOperation' :: TransformOperation -> Maybe FilterOperation
filterOperation} -> Maybe FilterOperation
filterOperation) (\s :: TransformOperation
s@TransformOperation' {} Maybe FilterOperation
a -> TransformOperation
s {$sel:filterOperation:TransformOperation' :: Maybe FilterOperation
filterOperation = Maybe FilterOperation
a} :: TransformOperation)
transformOperation_projectOperation :: Lens.Lens' TransformOperation (Prelude.Maybe ProjectOperation)
transformOperation_projectOperation :: Lens' TransformOperation (Maybe ProjectOperation)
transformOperation_projectOperation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformOperation' {Maybe ProjectOperation
projectOperation :: Maybe ProjectOperation
$sel:projectOperation:TransformOperation' :: TransformOperation -> Maybe ProjectOperation
projectOperation} -> Maybe ProjectOperation
projectOperation) (\s :: TransformOperation
s@TransformOperation' {} Maybe ProjectOperation
a -> TransformOperation
s {$sel:projectOperation:TransformOperation' :: Maybe ProjectOperation
projectOperation = Maybe ProjectOperation
a} :: TransformOperation)
transformOperation_renameColumnOperation :: Lens.Lens' TransformOperation (Prelude.Maybe RenameColumnOperation)
transformOperation_renameColumnOperation :: Lens' TransformOperation (Maybe RenameColumnOperation)
transformOperation_renameColumnOperation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformOperation' {Maybe RenameColumnOperation
renameColumnOperation :: Maybe RenameColumnOperation
$sel:renameColumnOperation:TransformOperation' :: TransformOperation -> Maybe RenameColumnOperation
renameColumnOperation} -> Maybe RenameColumnOperation
renameColumnOperation) (\s :: TransformOperation
s@TransformOperation' {} Maybe RenameColumnOperation
a -> TransformOperation
s {$sel:renameColumnOperation:TransformOperation' :: Maybe RenameColumnOperation
renameColumnOperation = Maybe RenameColumnOperation
a} :: TransformOperation)
transformOperation_tagColumnOperation :: Lens.Lens' TransformOperation (Prelude.Maybe TagColumnOperation)
transformOperation_tagColumnOperation :: Lens' TransformOperation (Maybe TagColumnOperation)
transformOperation_tagColumnOperation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformOperation' {Maybe TagColumnOperation
tagColumnOperation :: Maybe TagColumnOperation
$sel:tagColumnOperation:TransformOperation' :: TransformOperation -> Maybe TagColumnOperation
tagColumnOperation} -> Maybe TagColumnOperation
tagColumnOperation) (\s :: TransformOperation
s@TransformOperation' {} Maybe TagColumnOperation
a -> TransformOperation
s {$sel:tagColumnOperation:TransformOperation' :: Maybe TagColumnOperation
tagColumnOperation = Maybe TagColumnOperation
a} :: TransformOperation)
transformOperation_untagColumnOperation :: Lens.Lens' TransformOperation (Prelude.Maybe UntagColumnOperation)
transformOperation_untagColumnOperation :: Lens' TransformOperation (Maybe UntagColumnOperation)
transformOperation_untagColumnOperation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformOperation' {Maybe UntagColumnOperation
untagColumnOperation :: Maybe UntagColumnOperation
$sel:untagColumnOperation:TransformOperation' :: TransformOperation -> Maybe UntagColumnOperation
untagColumnOperation} -> Maybe UntagColumnOperation
untagColumnOperation) (\s :: TransformOperation
s@TransformOperation' {} Maybe UntagColumnOperation
a -> TransformOperation
s {$sel:untagColumnOperation:TransformOperation' :: Maybe UntagColumnOperation
untagColumnOperation = Maybe UntagColumnOperation
a} :: TransformOperation)
instance Data.FromJSON TransformOperation where
parseJSON :: Value -> Parser TransformOperation
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"TransformOperation"
( \Object
x ->
Maybe CastColumnTypeOperation
-> Maybe CreateColumnsOperation
-> Maybe FilterOperation
-> Maybe ProjectOperation
-> Maybe RenameColumnOperation
-> Maybe TagColumnOperation
-> Maybe UntagColumnOperation
-> TransformOperation
TransformOperation'
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
"CastColumnTypeOperation")
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
"CreateColumnsOperation")
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
"FilterOperation")
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
"ProjectOperation")
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
"RenameColumnOperation")
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
"TagColumnOperation")
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
"UntagColumnOperation")
)
instance Prelude.Hashable TransformOperation where
hashWithSalt :: Int -> TransformOperation -> Int
hashWithSalt Int
_salt TransformOperation' {Maybe CastColumnTypeOperation
Maybe CreateColumnsOperation
Maybe FilterOperation
Maybe ProjectOperation
Maybe RenameColumnOperation
Maybe TagColumnOperation
Maybe UntagColumnOperation
untagColumnOperation :: Maybe UntagColumnOperation
tagColumnOperation :: Maybe TagColumnOperation
renameColumnOperation :: Maybe RenameColumnOperation
projectOperation :: Maybe ProjectOperation
filterOperation :: Maybe FilterOperation
createColumnsOperation :: Maybe CreateColumnsOperation
castColumnTypeOperation :: Maybe CastColumnTypeOperation
$sel:untagColumnOperation:TransformOperation' :: TransformOperation -> Maybe UntagColumnOperation
$sel:tagColumnOperation:TransformOperation' :: TransformOperation -> Maybe TagColumnOperation
$sel:renameColumnOperation:TransformOperation' :: TransformOperation -> Maybe RenameColumnOperation
$sel:projectOperation:TransformOperation' :: TransformOperation -> Maybe ProjectOperation
$sel:filterOperation:TransformOperation' :: TransformOperation -> Maybe FilterOperation
$sel:createColumnsOperation:TransformOperation' :: TransformOperation -> Maybe CreateColumnsOperation
$sel:castColumnTypeOperation:TransformOperation' :: TransformOperation -> Maybe CastColumnTypeOperation
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CastColumnTypeOperation
castColumnTypeOperation
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CreateColumnsOperation
createColumnsOperation
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FilterOperation
filterOperation
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ProjectOperation
projectOperation
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RenameColumnOperation
renameColumnOperation
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TagColumnOperation
tagColumnOperation
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UntagColumnOperation
untagColumnOperation
instance Prelude.NFData TransformOperation where
rnf :: TransformOperation -> ()
rnf TransformOperation' {Maybe CastColumnTypeOperation
Maybe CreateColumnsOperation
Maybe FilterOperation
Maybe ProjectOperation
Maybe RenameColumnOperation
Maybe TagColumnOperation
Maybe UntagColumnOperation
untagColumnOperation :: Maybe UntagColumnOperation
tagColumnOperation :: Maybe TagColumnOperation
renameColumnOperation :: Maybe RenameColumnOperation
projectOperation :: Maybe ProjectOperation
filterOperation :: Maybe FilterOperation
createColumnsOperation :: Maybe CreateColumnsOperation
castColumnTypeOperation :: Maybe CastColumnTypeOperation
$sel:untagColumnOperation:TransformOperation' :: TransformOperation -> Maybe UntagColumnOperation
$sel:tagColumnOperation:TransformOperation' :: TransformOperation -> Maybe TagColumnOperation
$sel:renameColumnOperation:TransformOperation' :: TransformOperation -> Maybe RenameColumnOperation
$sel:projectOperation:TransformOperation' :: TransformOperation -> Maybe ProjectOperation
$sel:filterOperation:TransformOperation' :: TransformOperation -> Maybe FilterOperation
$sel:createColumnsOperation:TransformOperation' :: TransformOperation -> Maybe CreateColumnsOperation
$sel:castColumnTypeOperation:TransformOperation' :: TransformOperation -> Maybe CastColumnTypeOperation
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe CastColumnTypeOperation
castColumnTypeOperation
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CreateColumnsOperation
createColumnsOperation
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FilterOperation
filterOperation
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ProjectOperation
projectOperation
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RenameColumnOperation
renameColumnOperation
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TagColumnOperation
tagColumnOperation
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UntagColumnOperation
untagColumnOperation
instance Data.ToJSON TransformOperation where
toJSON :: TransformOperation -> Value
toJSON TransformOperation' {Maybe CastColumnTypeOperation
Maybe CreateColumnsOperation
Maybe FilterOperation
Maybe ProjectOperation
Maybe RenameColumnOperation
Maybe TagColumnOperation
Maybe UntagColumnOperation
untagColumnOperation :: Maybe UntagColumnOperation
tagColumnOperation :: Maybe TagColumnOperation
renameColumnOperation :: Maybe RenameColumnOperation
projectOperation :: Maybe ProjectOperation
filterOperation :: Maybe FilterOperation
createColumnsOperation :: Maybe CreateColumnsOperation
castColumnTypeOperation :: Maybe CastColumnTypeOperation
$sel:untagColumnOperation:TransformOperation' :: TransformOperation -> Maybe UntagColumnOperation
$sel:tagColumnOperation:TransformOperation' :: TransformOperation -> Maybe TagColumnOperation
$sel:renameColumnOperation:TransformOperation' :: TransformOperation -> Maybe RenameColumnOperation
$sel:projectOperation:TransformOperation' :: TransformOperation -> Maybe ProjectOperation
$sel:filterOperation:TransformOperation' :: TransformOperation -> Maybe FilterOperation
$sel:createColumnsOperation:TransformOperation' :: TransformOperation -> Maybe CreateColumnsOperation
$sel:castColumnTypeOperation:TransformOperation' :: TransformOperation -> Maybe CastColumnTypeOperation
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"CastColumnTypeOperation" 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 CastColumnTypeOperation
castColumnTypeOperation,
(Key
"CreateColumnsOperation" 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 CreateColumnsOperation
createColumnsOperation,
(Key
"FilterOperation" 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 FilterOperation
filterOperation,
(Key
"ProjectOperation" 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 ProjectOperation
projectOperation,
(Key
"RenameColumnOperation" 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 RenameColumnOperation
renameColumnOperation,
(Key
"TagColumnOperation" 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 TagColumnOperation
tagColumnOperation,
(Key
"UntagColumnOperation" 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 UntagColumnOperation
untagColumnOperation
]
)