{-# 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.S3.Types.SelectParameters 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.S3.Internal
import Amazonka.S3.Types.ExpressionType
import Amazonka.S3.Types.InputSerialization
import Amazonka.S3.Types.OutputSerialization
data SelectParameters = SelectParameters'
{
SelectParameters -> InputSerialization
inputSerialization :: InputSerialization,
SelectParameters -> ExpressionType
expressionType :: ExpressionType,
SelectParameters -> Text
expression :: Prelude.Text,
SelectParameters -> OutputSerialization
outputSerialization :: OutputSerialization
}
deriving (SelectParameters -> SelectParameters -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SelectParameters -> SelectParameters -> Bool
$c/= :: SelectParameters -> SelectParameters -> Bool
== :: SelectParameters -> SelectParameters -> Bool
$c== :: SelectParameters -> SelectParameters -> Bool
Prelude.Eq, ReadPrec [SelectParameters]
ReadPrec SelectParameters
Int -> ReadS SelectParameters
ReadS [SelectParameters]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SelectParameters]
$creadListPrec :: ReadPrec [SelectParameters]
readPrec :: ReadPrec SelectParameters
$creadPrec :: ReadPrec SelectParameters
readList :: ReadS [SelectParameters]
$creadList :: ReadS [SelectParameters]
readsPrec :: Int -> ReadS SelectParameters
$creadsPrec :: Int -> ReadS SelectParameters
Prelude.Read, Int -> SelectParameters -> ShowS
[SelectParameters] -> ShowS
SelectParameters -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SelectParameters] -> ShowS
$cshowList :: [SelectParameters] -> ShowS
show :: SelectParameters -> String
$cshow :: SelectParameters -> String
showsPrec :: Int -> SelectParameters -> ShowS
$cshowsPrec :: Int -> SelectParameters -> ShowS
Prelude.Show, forall x. Rep SelectParameters x -> SelectParameters
forall x. SelectParameters -> Rep SelectParameters x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SelectParameters x -> SelectParameters
$cfrom :: forall x. SelectParameters -> Rep SelectParameters x
Prelude.Generic)
newSelectParameters ::
InputSerialization ->
ExpressionType ->
Prelude.Text ->
OutputSerialization ->
SelectParameters
newSelectParameters :: InputSerialization
-> ExpressionType
-> Text
-> OutputSerialization
-> SelectParameters
newSelectParameters
InputSerialization
pInputSerialization_
ExpressionType
pExpressionType_
Text
pExpression_
OutputSerialization
pOutputSerialization_ =
SelectParameters'
{ $sel:inputSerialization:SelectParameters' :: InputSerialization
inputSerialization =
InputSerialization
pInputSerialization_,
$sel:expressionType:SelectParameters' :: ExpressionType
expressionType = ExpressionType
pExpressionType_,
$sel:expression:SelectParameters' :: Text
expression = Text
pExpression_,
$sel:outputSerialization:SelectParameters' :: OutputSerialization
outputSerialization = OutputSerialization
pOutputSerialization_
}
selectParameters_inputSerialization :: Lens.Lens' SelectParameters InputSerialization
selectParameters_inputSerialization :: Lens' SelectParameters InputSerialization
selectParameters_inputSerialization = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SelectParameters' {InputSerialization
inputSerialization :: InputSerialization
$sel:inputSerialization:SelectParameters' :: SelectParameters -> InputSerialization
inputSerialization} -> InputSerialization
inputSerialization) (\s :: SelectParameters
s@SelectParameters' {} InputSerialization
a -> SelectParameters
s {$sel:inputSerialization:SelectParameters' :: InputSerialization
inputSerialization = InputSerialization
a} :: SelectParameters)
selectParameters_expressionType :: Lens.Lens' SelectParameters ExpressionType
selectParameters_expressionType :: Lens' SelectParameters ExpressionType
selectParameters_expressionType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SelectParameters' {ExpressionType
expressionType :: ExpressionType
$sel:expressionType:SelectParameters' :: SelectParameters -> ExpressionType
expressionType} -> ExpressionType
expressionType) (\s :: SelectParameters
s@SelectParameters' {} ExpressionType
a -> SelectParameters
s {$sel:expressionType:SelectParameters' :: ExpressionType
expressionType = ExpressionType
a} :: SelectParameters)
selectParameters_expression :: Lens.Lens' SelectParameters Prelude.Text
selectParameters_expression :: Lens' SelectParameters Text
selectParameters_expression = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SelectParameters' {Text
expression :: Text
$sel:expression:SelectParameters' :: SelectParameters -> Text
expression} -> Text
expression) (\s :: SelectParameters
s@SelectParameters' {} Text
a -> SelectParameters
s {$sel:expression:SelectParameters' :: Text
expression = Text
a} :: SelectParameters)
selectParameters_outputSerialization :: Lens.Lens' SelectParameters OutputSerialization
selectParameters_outputSerialization :: Lens' SelectParameters OutputSerialization
selectParameters_outputSerialization = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SelectParameters' {OutputSerialization
outputSerialization :: OutputSerialization
$sel:outputSerialization:SelectParameters' :: SelectParameters -> OutputSerialization
outputSerialization} -> OutputSerialization
outputSerialization) (\s :: SelectParameters
s@SelectParameters' {} OutputSerialization
a -> SelectParameters
s {$sel:outputSerialization:SelectParameters' :: OutputSerialization
outputSerialization = OutputSerialization
a} :: SelectParameters)
instance Prelude.Hashable SelectParameters where
hashWithSalt :: Int -> SelectParameters -> Int
hashWithSalt Int
_salt SelectParameters' {Text
ExpressionType
InputSerialization
OutputSerialization
outputSerialization :: OutputSerialization
expression :: Text
expressionType :: ExpressionType
inputSerialization :: InputSerialization
$sel:outputSerialization:SelectParameters' :: SelectParameters -> OutputSerialization
$sel:expression:SelectParameters' :: SelectParameters -> Text
$sel:expressionType:SelectParameters' :: SelectParameters -> ExpressionType
$sel:inputSerialization:SelectParameters' :: SelectParameters -> InputSerialization
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` InputSerialization
inputSerialization
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ExpressionType
expressionType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
expression
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` OutputSerialization
outputSerialization
instance Prelude.NFData SelectParameters where
rnf :: SelectParameters -> ()
rnf SelectParameters' {Text
ExpressionType
InputSerialization
OutputSerialization
outputSerialization :: OutputSerialization
expression :: Text
expressionType :: ExpressionType
inputSerialization :: InputSerialization
$sel:outputSerialization:SelectParameters' :: SelectParameters -> OutputSerialization
$sel:expression:SelectParameters' :: SelectParameters -> Text
$sel:expressionType:SelectParameters' :: SelectParameters -> ExpressionType
$sel:inputSerialization:SelectParameters' :: SelectParameters -> InputSerialization
..} =
forall a. NFData a => a -> ()
Prelude.rnf InputSerialization
inputSerialization
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ExpressionType
expressionType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
expression
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf OutputSerialization
outputSerialization
instance Data.ToXML SelectParameters where
toXML :: SelectParameters -> XML
toXML SelectParameters' {Text
ExpressionType
InputSerialization
OutputSerialization
outputSerialization :: OutputSerialization
expression :: Text
expressionType :: ExpressionType
inputSerialization :: InputSerialization
$sel:outputSerialization:SelectParameters' :: SelectParameters -> OutputSerialization
$sel:expression:SelectParameters' :: SelectParameters -> Text
$sel:expressionType:SelectParameters' :: SelectParameters -> ExpressionType
$sel:inputSerialization:SelectParameters' :: SelectParameters -> InputSerialization
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ Name
"InputSerialization" forall a. ToXML a => Name -> a -> XML
Data.@= InputSerialization
inputSerialization,
Name
"ExpressionType" forall a. ToXML a => Name -> a -> XML
Data.@= ExpressionType
expressionType,
Name
"Expression" forall a. ToXML a => Name -> a -> XML
Data.@= Text
expression,
Name
"OutputSerialization" forall a. ToXML a => Name -> a -> XML
Data.@= OutputSerialization
outputSerialization
]