{-# 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.Kendra.Types.DatabaseConfiguration where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Kendra.Types.AclConfiguration
import Amazonka.Kendra.Types.ColumnConfiguration
import Amazonka.Kendra.Types.ConnectionConfiguration
import Amazonka.Kendra.Types.DataSourceVpcConfiguration
import Amazonka.Kendra.Types.DatabaseEngineType
import Amazonka.Kendra.Types.SqlConfiguration
import qualified Amazonka.Prelude as Prelude
data DatabaseConfiguration = DatabaseConfiguration'
{
DatabaseConfiguration -> Maybe AclConfiguration
aclConfiguration :: Prelude.Maybe AclConfiguration,
DatabaseConfiguration -> Maybe SqlConfiguration
sqlConfiguration :: Prelude.Maybe SqlConfiguration,
DatabaseConfiguration -> Maybe DataSourceVpcConfiguration
vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,
DatabaseConfiguration -> DatabaseEngineType
databaseEngineType :: DatabaseEngineType,
DatabaseConfiguration -> ConnectionConfiguration
connectionConfiguration :: ConnectionConfiguration,
DatabaseConfiguration -> ColumnConfiguration
columnConfiguration :: ColumnConfiguration
}
deriving (DatabaseConfiguration -> DatabaseConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DatabaseConfiguration -> DatabaseConfiguration -> Bool
$c/= :: DatabaseConfiguration -> DatabaseConfiguration -> Bool
== :: DatabaseConfiguration -> DatabaseConfiguration -> Bool
$c== :: DatabaseConfiguration -> DatabaseConfiguration -> Bool
Prelude.Eq, ReadPrec [DatabaseConfiguration]
ReadPrec DatabaseConfiguration
Int -> ReadS DatabaseConfiguration
ReadS [DatabaseConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DatabaseConfiguration]
$creadListPrec :: ReadPrec [DatabaseConfiguration]
readPrec :: ReadPrec DatabaseConfiguration
$creadPrec :: ReadPrec DatabaseConfiguration
readList :: ReadS [DatabaseConfiguration]
$creadList :: ReadS [DatabaseConfiguration]
readsPrec :: Int -> ReadS DatabaseConfiguration
$creadsPrec :: Int -> ReadS DatabaseConfiguration
Prelude.Read, Int -> DatabaseConfiguration -> ShowS
[DatabaseConfiguration] -> ShowS
DatabaseConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DatabaseConfiguration] -> ShowS
$cshowList :: [DatabaseConfiguration] -> ShowS
show :: DatabaseConfiguration -> String
$cshow :: DatabaseConfiguration -> String
showsPrec :: Int -> DatabaseConfiguration -> ShowS
$cshowsPrec :: Int -> DatabaseConfiguration -> ShowS
Prelude.Show, forall x. Rep DatabaseConfiguration x -> DatabaseConfiguration
forall x. DatabaseConfiguration -> Rep DatabaseConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DatabaseConfiguration x -> DatabaseConfiguration
$cfrom :: forall x. DatabaseConfiguration -> Rep DatabaseConfiguration x
Prelude.Generic)
newDatabaseConfiguration ::
DatabaseEngineType ->
ConnectionConfiguration ->
ColumnConfiguration ->
DatabaseConfiguration
newDatabaseConfiguration :: DatabaseEngineType
-> ConnectionConfiguration
-> ColumnConfiguration
-> DatabaseConfiguration
newDatabaseConfiguration
DatabaseEngineType
pDatabaseEngineType_
ConnectionConfiguration
pConnectionConfiguration_
ColumnConfiguration
pColumnConfiguration_ =
DatabaseConfiguration'
{ $sel:aclConfiguration:DatabaseConfiguration' :: Maybe AclConfiguration
aclConfiguration =
forall a. Maybe a
Prelude.Nothing,
$sel:sqlConfiguration:DatabaseConfiguration' :: Maybe SqlConfiguration
sqlConfiguration = forall a. Maybe a
Prelude.Nothing,
$sel:vpcConfiguration:DatabaseConfiguration' :: Maybe DataSourceVpcConfiguration
vpcConfiguration = forall a. Maybe a
Prelude.Nothing,
$sel:databaseEngineType:DatabaseConfiguration' :: DatabaseEngineType
databaseEngineType = DatabaseEngineType
pDatabaseEngineType_,
$sel:connectionConfiguration:DatabaseConfiguration' :: ConnectionConfiguration
connectionConfiguration = ConnectionConfiguration
pConnectionConfiguration_,
$sel:columnConfiguration:DatabaseConfiguration' :: ColumnConfiguration
columnConfiguration = ColumnConfiguration
pColumnConfiguration_
}
databaseConfiguration_aclConfiguration :: Lens.Lens' DatabaseConfiguration (Prelude.Maybe AclConfiguration)
databaseConfiguration_aclConfiguration :: Lens' DatabaseConfiguration (Maybe AclConfiguration)
databaseConfiguration_aclConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DatabaseConfiguration' {Maybe AclConfiguration
aclConfiguration :: Maybe AclConfiguration
$sel:aclConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe AclConfiguration
aclConfiguration} -> Maybe AclConfiguration
aclConfiguration) (\s :: DatabaseConfiguration
s@DatabaseConfiguration' {} Maybe AclConfiguration
a -> DatabaseConfiguration
s {$sel:aclConfiguration:DatabaseConfiguration' :: Maybe AclConfiguration
aclConfiguration = Maybe AclConfiguration
a} :: DatabaseConfiguration)
databaseConfiguration_sqlConfiguration :: Lens.Lens' DatabaseConfiguration (Prelude.Maybe SqlConfiguration)
databaseConfiguration_sqlConfiguration :: Lens' DatabaseConfiguration (Maybe SqlConfiguration)
databaseConfiguration_sqlConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DatabaseConfiguration' {Maybe SqlConfiguration
sqlConfiguration :: Maybe SqlConfiguration
$sel:sqlConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe SqlConfiguration
sqlConfiguration} -> Maybe SqlConfiguration
sqlConfiguration) (\s :: DatabaseConfiguration
s@DatabaseConfiguration' {} Maybe SqlConfiguration
a -> DatabaseConfiguration
s {$sel:sqlConfiguration:DatabaseConfiguration' :: Maybe SqlConfiguration
sqlConfiguration = Maybe SqlConfiguration
a} :: DatabaseConfiguration)
databaseConfiguration_vpcConfiguration :: Lens.Lens' DatabaseConfiguration (Prelude.Maybe DataSourceVpcConfiguration)
databaseConfiguration_vpcConfiguration :: Lens' DatabaseConfiguration (Maybe DataSourceVpcConfiguration)
databaseConfiguration_vpcConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DatabaseConfiguration' {Maybe DataSourceVpcConfiguration
vpcConfiguration :: Maybe DataSourceVpcConfiguration
$sel:vpcConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe DataSourceVpcConfiguration
vpcConfiguration} -> Maybe DataSourceVpcConfiguration
vpcConfiguration) (\s :: DatabaseConfiguration
s@DatabaseConfiguration' {} Maybe DataSourceVpcConfiguration
a -> DatabaseConfiguration
s {$sel:vpcConfiguration:DatabaseConfiguration' :: Maybe DataSourceVpcConfiguration
vpcConfiguration = Maybe DataSourceVpcConfiguration
a} :: DatabaseConfiguration)
databaseConfiguration_databaseEngineType :: Lens.Lens' DatabaseConfiguration DatabaseEngineType
databaseConfiguration_databaseEngineType :: Lens' DatabaseConfiguration DatabaseEngineType
databaseConfiguration_databaseEngineType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DatabaseConfiguration' {DatabaseEngineType
databaseEngineType :: DatabaseEngineType
$sel:databaseEngineType:DatabaseConfiguration' :: DatabaseConfiguration -> DatabaseEngineType
databaseEngineType} -> DatabaseEngineType
databaseEngineType) (\s :: DatabaseConfiguration
s@DatabaseConfiguration' {} DatabaseEngineType
a -> DatabaseConfiguration
s {$sel:databaseEngineType:DatabaseConfiguration' :: DatabaseEngineType
databaseEngineType = DatabaseEngineType
a} :: DatabaseConfiguration)
databaseConfiguration_connectionConfiguration :: Lens.Lens' DatabaseConfiguration ConnectionConfiguration
databaseConfiguration_connectionConfiguration :: Lens' DatabaseConfiguration ConnectionConfiguration
databaseConfiguration_connectionConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DatabaseConfiguration' {ConnectionConfiguration
connectionConfiguration :: ConnectionConfiguration
$sel:connectionConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> ConnectionConfiguration
connectionConfiguration} -> ConnectionConfiguration
connectionConfiguration) (\s :: DatabaseConfiguration
s@DatabaseConfiguration' {} ConnectionConfiguration
a -> DatabaseConfiguration
s {$sel:connectionConfiguration:DatabaseConfiguration' :: ConnectionConfiguration
connectionConfiguration = ConnectionConfiguration
a} :: DatabaseConfiguration)
databaseConfiguration_columnConfiguration :: Lens.Lens' DatabaseConfiguration ColumnConfiguration
databaseConfiguration_columnConfiguration :: Lens' DatabaseConfiguration ColumnConfiguration
databaseConfiguration_columnConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DatabaseConfiguration' {ColumnConfiguration
columnConfiguration :: ColumnConfiguration
$sel:columnConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> ColumnConfiguration
columnConfiguration} -> ColumnConfiguration
columnConfiguration) (\s :: DatabaseConfiguration
s@DatabaseConfiguration' {} ColumnConfiguration
a -> DatabaseConfiguration
s {$sel:columnConfiguration:DatabaseConfiguration' :: ColumnConfiguration
columnConfiguration = ColumnConfiguration
a} :: DatabaseConfiguration)
instance Data.FromJSON DatabaseConfiguration where
parseJSON :: Value -> Parser DatabaseConfiguration
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"DatabaseConfiguration"
( \Object
x ->
Maybe AclConfiguration
-> Maybe SqlConfiguration
-> Maybe DataSourceVpcConfiguration
-> DatabaseEngineType
-> ConnectionConfiguration
-> ColumnConfiguration
-> DatabaseConfiguration
DatabaseConfiguration'
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
"AclConfiguration")
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
"SqlConfiguration")
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
"VpcConfiguration")
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
"DatabaseEngineType")
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
"ConnectionConfiguration")
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
"ColumnConfiguration")
)
instance Prelude.Hashable DatabaseConfiguration where
hashWithSalt :: Int -> DatabaseConfiguration -> Int
hashWithSalt Int
_salt DatabaseConfiguration' {Maybe AclConfiguration
Maybe DataSourceVpcConfiguration
Maybe SqlConfiguration
ConnectionConfiguration
ColumnConfiguration
DatabaseEngineType
columnConfiguration :: ColumnConfiguration
connectionConfiguration :: ConnectionConfiguration
databaseEngineType :: DatabaseEngineType
vpcConfiguration :: Maybe DataSourceVpcConfiguration
sqlConfiguration :: Maybe SqlConfiguration
aclConfiguration :: Maybe AclConfiguration
$sel:columnConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> ColumnConfiguration
$sel:connectionConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> ConnectionConfiguration
$sel:databaseEngineType:DatabaseConfiguration' :: DatabaseConfiguration -> DatabaseEngineType
$sel:vpcConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe DataSourceVpcConfiguration
$sel:sqlConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe SqlConfiguration
$sel:aclConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe AclConfiguration
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AclConfiguration
aclConfiguration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SqlConfiguration
sqlConfiguration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataSourceVpcConfiguration
vpcConfiguration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` DatabaseEngineType
databaseEngineType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ConnectionConfiguration
connectionConfiguration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ColumnConfiguration
columnConfiguration
instance Prelude.NFData DatabaseConfiguration where
rnf :: DatabaseConfiguration -> ()
rnf DatabaseConfiguration' {Maybe AclConfiguration
Maybe DataSourceVpcConfiguration
Maybe SqlConfiguration
ConnectionConfiguration
ColumnConfiguration
DatabaseEngineType
columnConfiguration :: ColumnConfiguration
connectionConfiguration :: ConnectionConfiguration
databaseEngineType :: DatabaseEngineType
vpcConfiguration :: Maybe DataSourceVpcConfiguration
sqlConfiguration :: Maybe SqlConfiguration
aclConfiguration :: Maybe AclConfiguration
$sel:columnConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> ColumnConfiguration
$sel:connectionConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> ConnectionConfiguration
$sel:databaseEngineType:DatabaseConfiguration' :: DatabaseConfiguration -> DatabaseEngineType
$sel:vpcConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe DataSourceVpcConfiguration
$sel:sqlConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe SqlConfiguration
$sel:aclConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe AclConfiguration
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe AclConfiguration
aclConfiguration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SqlConfiguration
sqlConfiguration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataSourceVpcConfiguration
vpcConfiguration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf DatabaseEngineType
databaseEngineType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ConnectionConfiguration
connectionConfiguration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ColumnConfiguration
columnConfiguration
instance Data.ToJSON DatabaseConfiguration where
toJSON :: DatabaseConfiguration -> Value
toJSON DatabaseConfiguration' {Maybe AclConfiguration
Maybe DataSourceVpcConfiguration
Maybe SqlConfiguration
ConnectionConfiguration
ColumnConfiguration
DatabaseEngineType
columnConfiguration :: ColumnConfiguration
connectionConfiguration :: ConnectionConfiguration
databaseEngineType :: DatabaseEngineType
vpcConfiguration :: Maybe DataSourceVpcConfiguration
sqlConfiguration :: Maybe SqlConfiguration
aclConfiguration :: Maybe AclConfiguration
$sel:columnConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> ColumnConfiguration
$sel:connectionConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> ConnectionConfiguration
$sel:databaseEngineType:DatabaseConfiguration' :: DatabaseConfiguration -> DatabaseEngineType
$sel:vpcConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe DataSourceVpcConfiguration
$sel:sqlConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe SqlConfiguration
$sel:aclConfiguration:DatabaseConfiguration' :: DatabaseConfiguration -> Maybe AclConfiguration
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"AclConfiguration" 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 AclConfiguration
aclConfiguration,
(Key
"SqlConfiguration" 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 SqlConfiguration
sqlConfiguration,
(Key
"VpcConfiguration" 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 DataSourceVpcConfiguration
vpcConfiguration,
forall a. a -> Maybe a
Prelude.Just
(Key
"DatabaseEngineType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= DatabaseEngineType
databaseEngineType),
forall a. a -> Maybe a
Prelude.Just
( Key
"ConnectionConfiguration"
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ConnectionConfiguration
connectionConfiguration
),
forall a. a -> Maybe a
Prelude.Just
(Key
"ColumnConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ColumnConfiguration
columnConfiguration)
]
)