{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Wisdom.Types.KnowledgeBaseData
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Wisdom.Types.KnowledgeBaseData 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.Wisdom.Types.KnowledgeBaseStatus
import Amazonka.Wisdom.Types.KnowledgeBaseType
import Amazonka.Wisdom.Types.RenderingConfiguration
import Amazonka.Wisdom.Types.ServerSideEncryptionConfiguration
import Amazonka.Wisdom.Types.SourceConfiguration

-- | Information about the knowledge base.
--
-- /See:/ 'newKnowledgeBaseData' smart constructor.
data KnowledgeBaseData = KnowledgeBaseData'
  { -- | The description.
    KnowledgeBaseData -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | An epoch timestamp indicating the most recent content modification
    -- inside the knowledge base. If no content exists in a knowledge base,
    -- this value is unset.
    KnowledgeBaseData -> Maybe POSIX
lastContentModificationTime :: Prelude.Maybe Data.POSIX,
    -- | Information about how to render the content.
    KnowledgeBaseData -> Maybe RenderingConfiguration
renderingConfiguration :: Prelude.Maybe RenderingConfiguration,
    -- | The KMS key used for encryption.
    KnowledgeBaseData -> Maybe ServerSideEncryptionConfiguration
serverSideEncryptionConfiguration :: Prelude.Maybe ServerSideEncryptionConfiguration,
    -- | Source configuration information about the knowledge base.
    KnowledgeBaseData -> Maybe SourceConfiguration
sourceConfiguration :: Prelude.Maybe SourceConfiguration,
    -- | The tags used to organize, track, or control access for this resource.
    KnowledgeBaseData -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The Amazon Resource Name (ARN) of the knowledge base.
    KnowledgeBaseData -> Text
knowledgeBaseArn :: Prelude.Text,
    -- | The identifier of the knowledge base.
    KnowledgeBaseData -> Text
knowledgeBaseId :: Prelude.Text,
    -- | The type of knowledge base.
    KnowledgeBaseData -> KnowledgeBaseType
knowledgeBaseType :: KnowledgeBaseType,
    -- | The name of the knowledge base.
    KnowledgeBaseData -> Text
name :: Prelude.Text,
    -- | The status of the knowledge base.
    KnowledgeBaseData -> KnowledgeBaseStatus
status :: KnowledgeBaseStatus
  }
  deriving (KnowledgeBaseData -> KnowledgeBaseData -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: KnowledgeBaseData -> KnowledgeBaseData -> Bool
$c/= :: KnowledgeBaseData -> KnowledgeBaseData -> Bool
== :: KnowledgeBaseData -> KnowledgeBaseData -> Bool
$c== :: KnowledgeBaseData -> KnowledgeBaseData -> Bool
Prelude.Eq, ReadPrec [KnowledgeBaseData]
ReadPrec KnowledgeBaseData
Int -> ReadS KnowledgeBaseData
ReadS [KnowledgeBaseData]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [KnowledgeBaseData]
$creadListPrec :: ReadPrec [KnowledgeBaseData]
readPrec :: ReadPrec KnowledgeBaseData
$creadPrec :: ReadPrec KnowledgeBaseData
readList :: ReadS [KnowledgeBaseData]
$creadList :: ReadS [KnowledgeBaseData]
readsPrec :: Int -> ReadS KnowledgeBaseData
$creadsPrec :: Int -> ReadS KnowledgeBaseData
Prelude.Read, Int -> KnowledgeBaseData -> ShowS
[KnowledgeBaseData] -> ShowS
KnowledgeBaseData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [KnowledgeBaseData] -> ShowS
$cshowList :: [KnowledgeBaseData] -> ShowS
show :: KnowledgeBaseData -> String
$cshow :: KnowledgeBaseData -> String
showsPrec :: Int -> KnowledgeBaseData -> ShowS
$cshowsPrec :: Int -> KnowledgeBaseData -> ShowS
Prelude.Show, forall x. Rep KnowledgeBaseData x -> KnowledgeBaseData
forall x. KnowledgeBaseData -> Rep KnowledgeBaseData x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep KnowledgeBaseData x -> KnowledgeBaseData
$cfrom :: forall x. KnowledgeBaseData -> Rep KnowledgeBaseData x
Prelude.Generic)

-- |
-- Create a value of 'KnowledgeBaseData' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'description', 'knowledgeBaseData_description' - The description.
--
-- 'lastContentModificationTime', 'knowledgeBaseData_lastContentModificationTime' - An epoch timestamp indicating the most recent content modification
-- inside the knowledge base. If no content exists in a knowledge base,
-- this value is unset.
--
-- 'renderingConfiguration', 'knowledgeBaseData_renderingConfiguration' - Information about how to render the content.
--
-- 'serverSideEncryptionConfiguration', 'knowledgeBaseData_serverSideEncryptionConfiguration' - The KMS key used for encryption.
--
-- 'sourceConfiguration', 'knowledgeBaseData_sourceConfiguration' - Source configuration information about the knowledge base.
--
-- 'tags', 'knowledgeBaseData_tags' - The tags used to organize, track, or control access for this resource.
--
-- 'knowledgeBaseArn', 'knowledgeBaseData_knowledgeBaseArn' - The Amazon Resource Name (ARN) of the knowledge base.
--
-- 'knowledgeBaseId', 'knowledgeBaseData_knowledgeBaseId' - The identifier of the knowledge base.
--
-- 'knowledgeBaseType', 'knowledgeBaseData_knowledgeBaseType' - The type of knowledge base.
--
-- 'name', 'knowledgeBaseData_name' - The name of the knowledge base.
--
-- 'status', 'knowledgeBaseData_status' - The status of the knowledge base.
newKnowledgeBaseData ::
  -- | 'knowledgeBaseArn'
  Prelude.Text ->
  -- | 'knowledgeBaseId'
  Prelude.Text ->
  -- | 'knowledgeBaseType'
  KnowledgeBaseType ->
  -- | 'name'
  Prelude.Text ->
  -- | 'status'
  KnowledgeBaseStatus ->
  KnowledgeBaseData
newKnowledgeBaseData :: Text
-> Text
-> KnowledgeBaseType
-> Text
-> KnowledgeBaseStatus
-> KnowledgeBaseData
newKnowledgeBaseData
  Text
pKnowledgeBaseArn_
  Text
pKnowledgeBaseId_
  KnowledgeBaseType
pKnowledgeBaseType_
  Text
pName_
  KnowledgeBaseStatus
pStatus_ =
    KnowledgeBaseData'
      { $sel:description:KnowledgeBaseData' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
        $sel:lastContentModificationTime:KnowledgeBaseData' :: Maybe POSIX
lastContentModificationTime = forall a. Maybe a
Prelude.Nothing,
        $sel:renderingConfiguration:KnowledgeBaseData' :: Maybe RenderingConfiguration
renderingConfiguration = forall a. Maybe a
Prelude.Nothing,
        $sel:serverSideEncryptionConfiguration:KnowledgeBaseData' :: Maybe ServerSideEncryptionConfiguration
serverSideEncryptionConfiguration = forall a. Maybe a
Prelude.Nothing,
        $sel:sourceConfiguration:KnowledgeBaseData' :: Maybe SourceConfiguration
sourceConfiguration = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:KnowledgeBaseData' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:knowledgeBaseArn:KnowledgeBaseData' :: Text
knowledgeBaseArn = Text
pKnowledgeBaseArn_,
        $sel:knowledgeBaseId:KnowledgeBaseData' :: Text
knowledgeBaseId = Text
pKnowledgeBaseId_,
        $sel:knowledgeBaseType:KnowledgeBaseData' :: KnowledgeBaseType
knowledgeBaseType = KnowledgeBaseType
pKnowledgeBaseType_,
        $sel:name:KnowledgeBaseData' :: Text
name = Text
pName_,
        $sel:status:KnowledgeBaseData' :: KnowledgeBaseStatus
status = KnowledgeBaseStatus
pStatus_
      }

-- | The description.
knowledgeBaseData_description :: Lens.Lens' KnowledgeBaseData (Prelude.Maybe Prelude.Text)
knowledgeBaseData_description :: Lens' KnowledgeBaseData (Maybe Text)
knowledgeBaseData_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KnowledgeBaseData' {Maybe Text
description :: Maybe Text
$sel:description:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe Text
description} -> Maybe Text
description) (\s :: KnowledgeBaseData
s@KnowledgeBaseData' {} Maybe Text
a -> KnowledgeBaseData
s {$sel:description:KnowledgeBaseData' :: Maybe Text
description = Maybe Text
a} :: KnowledgeBaseData)

-- | An epoch timestamp indicating the most recent content modification
-- inside the knowledge base. If no content exists in a knowledge base,
-- this value is unset.
knowledgeBaseData_lastContentModificationTime :: Lens.Lens' KnowledgeBaseData (Prelude.Maybe Prelude.UTCTime)
knowledgeBaseData_lastContentModificationTime :: Lens' KnowledgeBaseData (Maybe UTCTime)
knowledgeBaseData_lastContentModificationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KnowledgeBaseData' {Maybe POSIX
lastContentModificationTime :: Maybe POSIX
$sel:lastContentModificationTime:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe POSIX
lastContentModificationTime} -> Maybe POSIX
lastContentModificationTime) (\s :: KnowledgeBaseData
s@KnowledgeBaseData' {} Maybe POSIX
a -> KnowledgeBaseData
s {$sel:lastContentModificationTime:KnowledgeBaseData' :: Maybe POSIX
lastContentModificationTime = Maybe POSIX
a} :: KnowledgeBaseData) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | Information about how to render the content.
knowledgeBaseData_renderingConfiguration :: Lens.Lens' KnowledgeBaseData (Prelude.Maybe RenderingConfiguration)
knowledgeBaseData_renderingConfiguration :: Lens' KnowledgeBaseData (Maybe RenderingConfiguration)
knowledgeBaseData_renderingConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KnowledgeBaseData' {Maybe RenderingConfiguration
renderingConfiguration :: Maybe RenderingConfiguration
$sel:renderingConfiguration:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe RenderingConfiguration
renderingConfiguration} -> Maybe RenderingConfiguration
renderingConfiguration) (\s :: KnowledgeBaseData
s@KnowledgeBaseData' {} Maybe RenderingConfiguration
a -> KnowledgeBaseData
s {$sel:renderingConfiguration:KnowledgeBaseData' :: Maybe RenderingConfiguration
renderingConfiguration = Maybe RenderingConfiguration
a} :: KnowledgeBaseData)

-- | The KMS key used for encryption.
knowledgeBaseData_serverSideEncryptionConfiguration :: Lens.Lens' KnowledgeBaseData (Prelude.Maybe ServerSideEncryptionConfiguration)
knowledgeBaseData_serverSideEncryptionConfiguration :: Lens' KnowledgeBaseData (Maybe ServerSideEncryptionConfiguration)
knowledgeBaseData_serverSideEncryptionConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KnowledgeBaseData' {Maybe ServerSideEncryptionConfiguration
serverSideEncryptionConfiguration :: Maybe ServerSideEncryptionConfiguration
$sel:serverSideEncryptionConfiguration:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe ServerSideEncryptionConfiguration
serverSideEncryptionConfiguration} -> Maybe ServerSideEncryptionConfiguration
serverSideEncryptionConfiguration) (\s :: KnowledgeBaseData
s@KnowledgeBaseData' {} Maybe ServerSideEncryptionConfiguration
a -> KnowledgeBaseData
s {$sel:serverSideEncryptionConfiguration:KnowledgeBaseData' :: Maybe ServerSideEncryptionConfiguration
serverSideEncryptionConfiguration = Maybe ServerSideEncryptionConfiguration
a} :: KnowledgeBaseData)

-- | Source configuration information about the knowledge base.
knowledgeBaseData_sourceConfiguration :: Lens.Lens' KnowledgeBaseData (Prelude.Maybe SourceConfiguration)
knowledgeBaseData_sourceConfiguration :: Lens' KnowledgeBaseData (Maybe SourceConfiguration)
knowledgeBaseData_sourceConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KnowledgeBaseData' {Maybe SourceConfiguration
sourceConfiguration :: Maybe SourceConfiguration
$sel:sourceConfiguration:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe SourceConfiguration
sourceConfiguration} -> Maybe SourceConfiguration
sourceConfiguration) (\s :: KnowledgeBaseData
s@KnowledgeBaseData' {} Maybe SourceConfiguration
a -> KnowledgeBaseData
s {$sel:sourceConfiguration:KnowledgeBaseData' :: Maybe SourceConfiguration
sourceConfiguration = Maybe SourceConfiguration
a} :: KnowledgeBaseData)

-- | The tags used to organize, track, or control access for this resource.
knowledgeBaseData_tags :: Lens.Lens' KnowledgeBaseData (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
knowledgeBaseData_tags :: Lens' KnowledgeBaseData (Maybe (HashMap Text Text))
knowledgeBaseData_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KnowledgeBaseData' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: KnowledgeBaseData
s@KnowledgeBaseData' {} Maybe (HashMap Text Text)
a -> KnowledgeBaseData
s {$sel:tags:KnowledgeBaseData' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: KnowledgeBaseData) 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

-- | The Amazon Resource Name (ARN) of the knowledge base.
knowledgeBaseData_knowledgeBaseArn :: Lens.Lens' KnowledgeBaseData Prelude.Text
knowledgeBaseData_knowledgeBaseArn :: Lens' KnowledgeBaseData Text
knowledgeBaseData_knowledgeBaseArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KnowledgeBaseData' {Text
knowledgeBaseArn :: Text
$sel:knowledgeBaseArn:KnowledgeBaseData' :: KnowledgeBaseData -> Text
knowledgeBaseArn} -> Text
knowledgeBaseArn) (\s :: KnowledgeBaseData
s@KnowledgeBaseData' {} Text
a -> KnowledgeBaseData
s {$sel:knowledgeBaseArn:KnowledgeBaseData' :: Text
knowledgeBaseArn = Text
a} :: KnowledgeBaseData)

-- | The identifier of the knowledge base.
knowledgeBaseData_knowledgeBaseId :: Lens.Lens' KnowledgeBaseData Prelude.Text
knowledgeBaseData_knowledgeBaseId :: Lens' KnowledgeBaseData Text
knowledgeBaseData_knowledgeBaseId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KnowledgeBaseData' {Text
knowledgeBaseId :: Text
$sel:knowledgeBaseId:KnowledgeBaseData' :: KnowledgeBaseData -> Text
knowledgeBaseId} -> Text
knowledgeBaseId) (\s :: KnowledgeBaseData
s@KnowledgeBaseData' {} Text
a -> KnowledgeBaseData
s {$sel:knowledgeBaseId:KnowledgeBaseData' :: Text
knowledgeBaseId = Text
a} :: KnowledgeBaseData)

-- | The type of knowledge base.
knowledgeBaseData_knowledgeBaseType :: Lens.Lens' KnowledgeBaseData KnowledgeBaseType
knowledgeBaseData_knowledgeBaseType :: Lens' KnowledgeBaseData KnowledgeBaseType
knowledgeBaseData_knowledgeBaseType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KnowledgeBaseData' {KnowledgeBaseType
knowledgeBaseType :: KnowledgeBaseType
$sel:knowledgeBaseType:KnowledgeBaseData' :: KnowledgeBaseData -> KnowledgeBaseType
knowledgeBaseType} -> KnowledgeBaseType
knowledgeBaseType) (\s :: KnowledgeBaseData
s@KnowledgeBaseData' {} KnowledgeBaseType
a -> KnowledgeBaseData
s {$sel:knowledgeBaseType:KnowledgeBaseData' :: KnowledgeBaseType
knowledgeBaseType = KnowledgeBaseType
a} :: KnowledgeBaseData)

-- | The name of the knowledge base.
knowledgeBaseData_name :: Lens.Lens' KnowledgeBaseData Prelude.Text
knowledgeBaseData_name :: Lens' KnowledgeBaseData Text
knowledgeBaseData_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KnowledgeBaseData' {Text
name :: Text
$sel:name:KnowledgeBaseData' :: KnowledgeBaseData -> Text
name} -> Text
name) (\s :: KnowledgeBaseData
s@KnowledgeBaseData' {} Text
a -> KnowledgeBaseData
s {$sel:name:KnowledgeBaseData' :: Text
name = Text
a} :: KnowledgeBaseData)

-- | The status of the knowledge base.
knowledgeBaseData_status :: Lens.Lens' KnowledgeBaseData KnowledgeBaseStatus
knowledgeBaseData_status :: Lens' KnowledgeBaseData KnowledgeBaseStatus
knowledgeBaseData_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\KnowledgeBaseData' {KnowledgeBaseStatus
status :: KnowledgeBaseStatus
$sel:status:KnowledgeBaseData' :: KnowledgeBaseData -> KnowledgeBaseStatus
status} -> KnowledgeBaseStatus
status) (\s :: KnowledgeBaseData
s@KnowledgeBaseData' {} KnowledgeBaseStatus
a -> KnowledgeBaseData
s {$sel:status:KnowledgeBaseData' :: KnowledgeBaseStatus
status = KnowledgeBaseStatus
a} :: KnowledgeBaseData)

instance Data.FromJSON KnowledgeBaseData where
  parseJSON :: Value -> Parser KnowledgeBaseData
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"KnowledgeBaseData"
      ( \Object
x ->
          Maybe Text
-> Maybe POSIX
-> Maybe RenderingConfiguration
-> Maybe ServerSideEncryptionConfiguration
-> Maybe SourceConfiguration
-> Maybe (HashMap Text Text)
-> Text
-> Text
-> KnowledgeBaseType
-> Text
-> KnowledgeBaseStatus
-> KnowledgeBaseData
KnowledgeBaseData'
            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
"description")
            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
"lastContentModificationTime")
            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
"renderingConfiguration")
            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
"serverSideEncryptionConfiguration")
            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
"sourceConfiguration")
            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
"tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            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
"knowledgeBaseArn")
            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
"knowledgeBaseId")
            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
"knowledgeBaseType")
            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
"name")
            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
"status")
      )

instance Prelude.Hashable KnowledgeBaseData where
  hashWithSalt :: Int -> KnowledgeBaseData -> Int
hashWithSalt Int
_salt KnowledgeBaseData' {Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe RenderingConfiguration
Maybe ServerSideEncryptionConfiguration
Maybe SourceConfiguration
Text
KnowledgeBaseStatus
KnowledgeBaseType
status :: KnowledgeBaseStatus
name :: Text
knowledgeBaseType :: KnowledgeBaseType
knowledgeBaseId :: Text
knowledgeBaseArn :: Text
tags :: Maybe (HashMap Text Text)
sourceConfiguration :: Maybe SourceConfiguration
serverSideEncryptionConfiguration :: Maybe ServerSideEncryptionConfiguration
renderingConfiguration :: Maybe RenderingConfiguration
lastContentModificationTime :: Maybe POSIX
description :: Maybe Text
$sel:status:KnowledgeBaseData' :: KnowledgeBaseData -> KnowledgeBaseStatus
$sel:name:KnowledgeBaseData' :: KnowledgeBaseData -> Text
$sel:knowledgeBaseType:KnowledgeBaseData' :: KnowledgeBaseData -> KnowledgeBaseType
$sel:knowledgeBaseId:KnowledgeBaseData' :: KnowledgeBaseData -> Text
$sel:knowledgeBaseArn:KnowledgeBaseData' :: KnowledgeBaseData -> Text
$sel:tags:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe (HashMap Text Text)
$sel:sourceConfiguration:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe SourceConfiguration
$sel:serverSideEncryptionConfiguration:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe ServerSideEncryptionConfiguration
$sel:renderingConfiguration:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe RenderingConfiguration
$sel:lastContentModificationTime:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe POSIX
$sel:description:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastContentModificationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RenderingConfiguration
renderingConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ServerSideEncryptionConfiguration
serverSideEncryptionConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SourceConfiguration
sourceConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
knowledgeBaseArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
knowledgeBaseId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` KnowledgeBaseType
knowledgeBaseType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` KnowledgeBaseStatus
status

instance Prelude.NFData KnowledgeBaseData where
  rnf :: KnowledgeBaseData -> ()
rnf KnowledgeBaseData' {Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe RenderingConfiguration
Maybe ServerSideEncryptionConfiguration
Maybe SourceConfiguration
Text
KnowledgeBaseStatus
KnowledgeBaseType
status :: KnowledgeBaseStatus
name :: Text
knowledgeBaseType :: KnowledgeBaseType
knowledgeBaseId :: Text
knowledgeBaseArn :: Text
tags :: Maybe (HashMap Text Text)
sourceConfiguration :: Maybe SourceConfiguration
serverSideEncryptionConfiguration :: Maybe ServerSideEncryptionConfiguration
renderingConfiguration :: Maybe RenderingConfiguration
lastContentModificationTime :: Maybe POSIX
description :: Maybe Text
$sel:status:KnowledgeBaseData' :: KnowledgeBaseData -> KnowledgeBaseStatus
$sel:name:KnowledgeBaseData' :: KnowledgeBaseData -> Text
$sel:knowledgeBaseType:KnowledgeBaseData' :: KnowledgeBaseData -> KnowledgeBaseType
$sel:knowledgeBaseId:KnowledgeBaseData' :: KnowledgeBaseData -> Text
$sel:knowledgeBaseArn:KnowledgeBaseData' :: KnowledgeBaseData -> Text
$sel:tags:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe (HashMap Text Text)
$sel:sourceConfiguration:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe SourceConfiguration
$sel:serverSideEncryptionConfiguration:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe ServerSideEncryptionConfiguration
$sel:renderingConfiguration:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe RenderingConfiguration
$sel:lastContentModificationTime:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe POSIX
$sel:description:KnowledgeBaseData' :: KnowledgeBaseData -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastContentModificationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RenderingConfiguration
renderingConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ServerSideEncryptionConfiguration
serverSideEncryptionConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SourceConfiguration
sourceConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
knowledgeBaseArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
knowledgeBaseId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf KnowledgeBaseType
knowledgeBaseType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf KnowledgeBaseStatus
status