{-# 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.Comprehend.Types.DocumentReaderConfig where
import Amazonka.Comprehend.Types.DocumentReadAction
import Amazonka.Comprehend.Types.DocumentReadFeatureTypes
import Amazonka.Comprehend.Types.DocumentReadMode
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
data DocumentReaderConfig = DocumentReaderConfig'
{
DocumentReaderConfig -> Maybe DocumentReadMode
documentReadMode :: Prelude.Maybe DocumentReadMode,
DocumentReaderConfig -> Maybe (NonEmpty DocumentReadFeatureTypes)
featureTypes :: Prelude.Maybe (Prelude.NonEmpty DocumentReadFeatureTypes),
DocumentReaderConfig -> DocumentReadAction
documentReadAction :: DocumentReadAction
}
deriving (DocumentReaderConfig -> DocumentReaderConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DocumentReaderConfig -> DocumentReaderConfig -> Bool
$c/= :: DocumentReaderConfig -> DocumentReaderConfig -> Bool
== :: DocumentReaderConfig -> DocumentReaderConfig -> Bool
$c== :: DocumentReaderConfig -> DocumentReaderConfig -> Bool
Prelude.Eq, ReadPrec [DocumentReaderConfig]
ReadPrec DocumentReaderConfig
Int -> ReadS DocumentReaderConfig
ReadS [DocumentReaderConfig]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DocumentReaderConfig]
$creadListPrec :: ReadPrec [DocumentReaderConfig]
readPrec :: ReadPrec DocumentReaderConfig
$creadPrec :: ReadPrec DocumentReaderConfig
readList :: ReadS [DocumentReaderConfig]
$creadList :: ReadS [DocumentReaderConfig]
readsPrec :: Int -> ReadS DocumentReaderConfig
$creadsPrec :: Int -> ReadS DocumentReaderConfig
Prelude.Read, Int -> DocumentReaderConfig -> ShowS
[DocumentReaderConfig] -> ShowS
DocumentReaderConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DocumentReaderConfig] -> ShowS
$cshowList :: [DocumentReaderConfig] -> ShowS
show :: DocumentReaderConfig -> String
$cshow :: DocumentReaderConfig -> String
showsPrec :: Int -> DocumentReaderConfig -> ShowS
$cshowsPrec :: Int -> DocumentReaderConfig -> ShowS
Prelude.Show, forall x. Rep DocumentReaderConfig x -> DocumentReaderConfig
forall x. DocumentReaderConfig -> Rep DocumentReaderConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DocumentReaderConfig x -> DocumentReaderConfig
$cfrom :: forall x. DocumentReaderConfig -> Rep DocumentReaderConfig x
Prelude.Generic)
newDocumentReaderConfig ::
DocumentReadAction ->
DocumentReaderConfig
newDocumentReaderConfig :: DocumentReadAction -> DocumentReaderConfig
newDocumentReaderConfig DocumentReadAction
pDocumentReadAction_ =
DocumentReaderConfig'
{ $sel:documentReadMode:DocumentReaderConfig' :: Maybe DocumentReadMode
documentReadMode =
forall a. Maybe a
Prelude.Nothing,
$sel:featureTypes:DocumentReaderConfig' :: Maybe (NonEmpty DocumentReadFeatureTypes)
featureTypes = forall a. Maybe a
Prelude.Nothing,
$sel:documentReadAction:DocumentReaderConfig' :: DocumentReadAction
documentReadAction = DocumentReadAction
pDocumentReadAction_
}
documentReaderConfig_documentReadMode :: Lens.Lens' DocumentReaderConfig (Prelude.Maybe DocumentReadMode)
documentReaderConfig_documentReadMode :: Lens' DocumentReaderConfig (Maybe DocumentReadMode)
documentReaderConfig_documentReadMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentReaderConfig' {Maybe DocumentReadMode
documentReadMode :: Maybe DocumentReadMode
$sel:documentReadMode:DocumentReaderConfig' :: DocumentReaderConfig -> Maybe DocumentReadMode
documentReadMode} -> Maybe DocumentReadMode
documentReadMode) (\s :: DocumentReaderConfig
s@DocumentReaderConfig' {} Maybe DocumentReadMode
a -> DocumentReaderConfig
s {$sel:documentReadMode:DocumentReaderConfig' :: Maybe DocumentReadMode
documentReadMode = Maybe DocumentReadMode
a} :: DocumentReaderConfig)
documentReaderConfig_featureTypes :: Lens.Lens' DocumentReaderConfig (Prelude.Maybe (Prelude.NonEmpty DocumentReadFeatureTypes))
documentReaderConfig_featureTypes :: Lens'
DocumentReaderConfig (Maybe (NonEmpty DocumentReadFeatureTypes))
documentReaderConfig_featureTypes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentReaderConfig' {Maybe (NonEmpty DocumentReadFeatureTypes)
featureTypes :: Maybe (NonEmpty DocumentReadFeatureTypes)
$sel:featureTypes:DocumentReaderConfig' :: DocumentReaderConfig -> Maybe (NonEmpty DocumentReadFeatureTypes)
featureTypes} -> Maybe (NonEmpty DocumentReadFeatureTypes)
featureTypes) (\s :: DocumentReaderConfig
s@DocumentReaderConfig' {} Maybe (NonEmpty DocumentReadFeatureTypes)
a -> DocumentReaderConfig
s {$sel:featureTypes:DocumentReaderConfig' :: Maybe (NonEmpty DocumentReadFeatureTypes)
featureTypes = Maybe (NonEmpty DocumentReadFeatureTypes)
a} :: DocumentReaderConfig) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
documentReaderConfig_documentReadAction :: Lens.Lens' DocumentReaderConfig DocumentReadAction
documentReaderConfig_documentReadAction :: Lens' DocumentReaderConfig DocumentReadAction
documentReaderConfig_documentReadAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DocumentReaderConfig' {DocumentReadAction
documentReadAction :: DocumentReadAction
$sel:documentReadAction:DocumentReaderConfig' :: DocumentReaderConfig -> DocumentReadAction
documentReadAction} -> DocumentReadAction
documentReadAction) (\s :: DocumentReaderConfig
s@DocumentReaderConfig' {} DocumentReadAction
a -> DocumentReaderConfig
s {$sel:documentReadAction:DocumentReaderConfig' :: DocumentReadAction
documentReadAction = DocumentReadAction
a} :: DocumentReaderConfig)
instance Data.FromJSON DocumentReaderConfig where
parseJSON :: Value -> Parser DocumentReaderConfig
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"DocumentReaderConfig"
( \Object
x ->
Maybe DocumentReadMode
-> Maybe (NonEmpty DocumentReadFeatureTypes)
-> DocumentReadAction
-> DocumentReaderConfig
DocumentReaderConfig'
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
"DocumentReadMode")
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
"FeatureTypes")
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
"DocumentReadAction")
)
instance Prelude.Hashable DocumentReaderConfig where
hashWithSalt :: Int -> DocumentReaderConfig -> Int
hashWithSalt Int
_salt DocumentReaderConfig' {Maybe (NonEmpty DocumentReadFeatureTypes)
Maybe DocumentReadMode
DocumentReadAction
documentReadAction :: DocumentReadAction
featureTypes :: Maybe (NonEmpty DocumentReadFeatureTypes)
documentReadMode :: Maybe DocumentReadMode
$sel:documentReadAction:DocumentReaderConfig' :: DocumentReaderConfig -> DocumentReadAction
$sel:featureTypes:DocumentReaderConfig' :: DocumentReaderConfig -> Maybe (NonEmpty DocumentReadFeatureTypes)
$sel:documentReadMode:DocumentReaderConfig' :: DocumentReaderConfig -> Maybe DocumentReadMode
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DocumentReadMode
documentReadMode
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty DocumentReadFeatureTypes)
featureTypes
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` DocumentReadAction
documentReadAction
instance Prelude.NFData DocumentReaderConfig where
rnf :: DocumentReaderConfig -> ()
rnf DocumentReaderConfig' {Maybe (NonEmpty DocumentReadFeatureTypes)
Maybe DocumentReadMode
DocumentReadAction
documentReadAction :: DocumentReadAction
featureTypes :: Maybe (NonEmpty DocumentReadFeatureTypes)
documentReadMode :: Maybe DocumentReadMode
$sel:documentReadAction:DocumentReaderConfig' :: DocumentReaderConfig -> DocumentReadAction
$sel:featureTypes:DocumentReaderConfig' :: DocumentReaderConfig -> Maybe (NonEmpty DocumentReadFeatureTypes)
$sel:documentReadMode:DocumentReaderConfig' :: DocumentReaderConfig -> Maybe DocumentReadMode
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe DocumentReadMode
documentReadMode
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty DocumentReadFeatureTypes)
featureTypes
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf DocumentReadAction
documentReadAction
instance Data.ToJSON DocumentReaderConfig where
toJSON :: DocumentReaderConfig -> Value
toJSON DocumentReaderConfig' {Maybe (NonEmpty DocumentReadFeatureTypes)
Maybe DocumentReadMode
DocumentReadAction
documentReadAction :: DocumentReadAction
featureTypes :: Maybe (NonEmpty DocumentReadFeatureTypes)
documentReadMode :: Maybe DocumentReadMode
$sel:documentReadAction:DocumentReaderConfig' :: DocumentReaderConfig -> DocumentReadAction
$sel:featureTypes:DocumentReaderConfig' :: DocumentReaderConfig -> Maybe (NonEmpty DocumentReadFeatureTypes)
$sel:documentReadMode:DocumentReaderConfig' :: DocumentReaderConfig -> Maybe DocumentReadMode
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"DocumentReadMode" 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 DocumentReadMode
documentReadMode,
(Key
"FeatureTypes" 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 (NonEmpty DocumentReadFeatureTypes)
featureTypes,
forall a. a -> Maybe a
Prelude.Just
(Key
"DocumentReadAction" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= DocumentReadAction
documentReadAction)
]
)