{-# 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.InputSerialization 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.CSVInput
import Amazonka.S3.Types.CompressionType
import Amazonka.S3.Types.JSONInput
import Amazonka.S3.Types.ParquetInput
data InputSerialization = InputSerialization'
{
InputSerialization -> Maybe CSVInput
csv :: Prelude.Maybe CSVInput,
InputSerialization -> Maybe CompressionType
compressionType :: Prelude.Maybe CompressionType,
InputSerialization -> Maybe JSONInput
json :: Prelude.Maybe JSONInput,
InputSerialization -> Maybe ParquetInput
parquet :: Prelude.Maybe ParquetInput
}
deriving (InputSerialization -> InputSerialization -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InputSerialization -> InputSerialization -> Bool
$c/= :: InputSerialization -> InputSerialization -> Bool
== :: InputSerialization -> InputSerialization -> Bool
$c== :: InputSerialization -> InputSerialization -> Bool
Prelude.Eq, ReadPrec [InputSerialization]
ReadPrec InputSerialization
Int -> ReadS InputSerialization
ReadS [InputSerialization]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InputSerialization]
$creadListPrec :: ReadPrec [InputSerialization]
readPrec :: ReadPrec InputSerialization
$creadPrec :: ReadPrec InputSerialization
readList :: ReadS [InputSerialization]
$creadList :: ReadS [InputSerialization]
readsPrec :: Int -> ReadS InputSerialization
$creadsPrec :: Int -> ReadS InputSerialization
Prelude.Read, Int -> InputSerialization -> ShowS
[InputSerialization] -> ShowS
InputSerialization -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InputSerialization] -> ShowS
$cshowList :: [InputSerialization] -> ShowS
show :: InputSerialization -> String
$cshow :: InputSerialization -> String
showsPrec :: Int -> InputSerialization -> ShowS
$cshowsPrec :: Int -> InputSerialization -> ShowS
Prelude.Show, forall x. Rep InputSerialization x -> InputSerialization
forall x. InputSerialization -> Rep InputSerialization x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InputSerialization x -> InputSerialization
$cfrom :: forall x. InputSerialization -> Rep InputSerialization x
Prelude.Generic)
newInputSerialization ::
InputSerialization
newInputSerialization :: InputSerialization
newInputSerialization =
InputSerialization'
{ $sel:csv:InputSerialization' :: Maybe CSVInput
csv = forall a. Maybe a
Prelude.Nothing,
$sel:compressionType:InputSerialization' :: Maybe CompressionType
compressionType = forall a. Maybe a
Prelude.Nothing,
$sel:json:InputSerialization' :: Maybe JSONInput
json = forall a. Maybe a
Prelude.Nothing,
$sel:parquet:InputSerialization' :: Maybe ParquetInput
parquet = forall a. Maybe a
Prelude.Nothing
}
inputSerialization_csv :: Lens.Lens' InputSerialization (Prelude.Maybe CSVInput)
inputSerialization_csv :: Lens' InputSerialization (Maybe CSVInput)
inputSerialization_csv = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InputSerialization' {Maybe CSVInput
csv :: Maybe CSVInput
$sel:csv:InputSerialization' :: InputSerialization -> Maybe CSVInput
csv} -> Maybe CSVInput
csv) (\s :: InputSerialization
s@InputSerialization' {} Maybe CSVInput
a -> InputSerialization
s {$sel:csv:InputSerialization' :: Maybe CSVInput
csv = Maybe CSVInput
a} :: InputSerialization)
inputSerialization_compressionType :: Lens.Lens' InputSerialization (Prelude.Maybe CompressionType)
inputSerialization_compressionType :: Lens' InputSerialization (Maybe CompressionType)
inputSerialization_compressionType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InputSerialization' {Maybe CompressionType
compressionType :: Maybe CompressionType
$sel:compressionType:InputSerialization' :: InputSerialization -> Maybe CompressionType
compressionType} -> Maybe CompressionType
compressionType) (\s :: InputSerialization
s@InputSerialization' {} Maybe CompressionType
a -> InputSerialization
s {$sel:compressionType:InputSerialization' :: Maybe CompressionType
compressionType = Maybe CompressionType
a} :: InputSerialization)
inputSerialization_json :: Lens.Lens' InputSerialization (Prelude.Maybe JSONInput)
inputSerialization_json :: Lens' InputSerialization (Maybe JSONInput)
inputSerialization_json = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InputSerialization' {Maybe JSONInput
json :: Maybe JSONInput
$sel:json:InputSerialization' :: InputSerialization -> Maybe JSONInput
json} -> Maybe JSONInput
json) (\s :: InputSerialization
s@InputSerialization' {} Maybe JSONInput
a -> InputSerialization
s {$sel:json:InputSerialization' :: Maybe JSONInput
json = Maybe JSONInput
a} :: InputSerialization)
inputSerialization_parquet :: Lens.Lens' InputSerialization (Prelude.Maybe ParquetInput)
inputSerialization_parquet :: Lens' InputSerialization (Maybe ParquetInput)
inputSerialization_parquet = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InputSerialization' {Maybe ParquetInput
parquet :: Maybe ParquetInput
$sel:parquet:InputSerialization' :: InputSerialization -> Maybe ParquetInput
parquet} -> Maybe ParquetInput
parquet) (\s :: InputSerialization
s@InputSerialization' {} Maybe ParquetInput
a -> InputSerialization
s {$sel:parquet:InputSerialization' :: Maybe ParquetInput
parquet = Maybe ParquetInput
a} :: InputSerialization)
instance Prelude.Hashable InputSerialization where
hashWithSalt :: Int -> InputSerialization -> Int
hashWithSalt Int
_salt InputSerialization' {Maybe CompressionType
Maybe CSVInput
Maybe JSONInput
Maybe ParquetInput
parquet :: Maybe ParquetInput
json :: Maybe JSONInput
compressionType :: Maybe CompressionType
csv :: Maybe CSVInput
$sel:parquet:InputSerialization' :: InputSerialization -> Maybe ParquetInput
$sel:json:InputSerialization' :: InputSerialization -> Maybe JSONInput
$sel:compressionType:InputSerialization' :: InputSerialization -> Maybe CompressionType
$sel:csv:InputSerialization' :: InputSerialization -> Maybe CSVInput
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CSVInput
csv
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CompressionType
compressionType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe JSONInput
json
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ParquetInput
parquet
instance Prelude.NFData InputSerialization where
rnf :: InputSerialization -> ()
rnf InputSerialization' {Maybe CompressionType
Maybe CSVInput
Maybe JSONInput
Maybe ParquetInput
parquet :: Maybe ParquetInput
json :: Maybe JSONInput
compressionType :: Maybe CompressionType
csv :: Maybe CSVInput
$sel:parquet:InputSerialization' :: InputSerialization -> Maybe ParquetInput
$sel:json:InputSerialization' :: InputSerialization -> Maybe JSONInput
$sel:compressionType:InputSerialization' :: InputSerialization -> Maybe CompressionType
$sel:csv:InputSerialization' :: InputSerialization -> Maybe CSVInput
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe CSVInput
csv
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CompressionType
compressionType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe JSONInput
json
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ParquetInput
parquet
instance Data.ToXML InputSerialization where
toXML :: InputSerialization -> XML
toXML InputSerialization' {Maybe CompressionType
Maybe CSVInput
Maybe JSONInput
Maybe ParquetInput
parquet :: Maybe ParquetInput
json :: Maybe JSONInput
compressionType :: Maybe CompressionType
csv :: Maybe CSVInput
$sel:parquet:InputSerialization' :: InputSerialization -> Maybe ParquetInput
$sel:json:InputSerialization' :: InputSerialization -> Maybe JSONInput
$sel:compressionType:InputSerialization' :: InputSerialization -> Maybe CompressionType
$sel:csv:InputSerialization' :: InputSerialization -> Maybe CSVInput
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ Name
"CSV" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe CSVInput
csv,
Name
"CompressionType" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe CompressionType
compressionType,
Name
"JSON" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe JSONInput
json,
Name
"Parquet" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe ParquetInput
parquet
]