{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

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

-- |
-- Module      : Amazonka.Kendra.BatchDeleteDocument
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Removes one or more documents from an index. The documents must have
-- been added with the @BatchPutDocument@ API.
--
-- The documents are deleted asynchronously. You can see the progress of
-- the deletion by using Amazon Web Services CloudWatch. Any error messages
-- related to the processing of the batch are sent to you CloudWatch log.
module Amazonka.Kendra.BatchDeleteDocument
  ( -- * Creating a Request
    BatchDeleteDocument (..),
    newBatchDeleteDocument,

    -- * Request Lenses
    batchDeleteDocument_dataSourceSyncJobMetricTarget,
    batchDeleteDocument_indexId,
    batchDeleteDocument_documentIdList,

    -- * Destructuring the Response
    BatchDeleteDocumentResponse (..),
    newBatchDeleteDocumentResponse,

    -- * Response Lenses
    batchDeleteDocumentResponse_failedDocuments,
    batchDeleteDocumentResponse_httpStatus,
  )
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
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newBatchDeleteDocument' smart constructor.
data BatchDeleteDocument = BatchDeleteDocument'
  { BatchDeleteDocument -> Maybe DataSourceSyncJobMetricTarget
dataSourceSyncJobMetricTarget :: Prelude.Maybe DataSourceSyncJobMetricTarget,
    -- | The identifier of the index that contains the documents to delete.
    BatchDeleteDocument -> Text
indexId :: Prelude.Text,
    -- | One or more identifiers for documents to delete from the index.
    BatchDeleteDocument -> NonEmpty Text
documentIdList :: Prelude.NonEmpty Prelude.Text
  }
  deriving (BatchDeleteDocument -> BatchDeleteDocument -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BatchDeleteDocument -> BatchDeleteDocument -> Bool
$c/= :: BatchDeleteDocument -> BatchDeleteDocument -> Bool
== :: BatchDeleteDocument -> BatchDeleteDocument -> Bool
$c== :: BatchDeleteDocument -> BatchDeleteDocument -> Bool
Prelude.Eq, ReadPrec [BatchDeleteDocument]
ReadPrec BatchDeleteDocument
Int -> ReadS BatchDeleteDocument
ReadS [BatchDeleteDocument]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BatchDeleteDocument]
$creadListPrec :: ReadPrec [BatchDeleteDocument]
readPrec :: ReadPrec BatchDeleteDocument
$creadPrec :: ReadPrec BatchDeleteDocument
readList :: ReadS [BatchDeleteDocument]
$creadList :: ReadS [BatchDeleteDocument]
readsPrec :: Int -> ReadS BatchDeleteDocument
$creadsPrec :: Int -> ReadS BatchDeleteDocument
Prelude.Read, Int -> BatchDeleteDocument -> ShowS
[BatchDeleteDocument] -> ShowS
BatchDeleteDocument -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BatchDeleteDocument] -> ShowS
$cshowList :: [BatchDeleteDocument] -> ShowS
show :: BatchDeleteDocument -> String
$cshow :: BatchDeleteDocument -> String
showsPrec :: Int -> BatchDeleteDocument -> ShowS
$cshowsPrec :: Int -> BatchDeleteDocument -> ShowS
Prelude.Show, forall x. Rep BatchDeleteDocument x -> BatchDeleteDocument
forall x. BatchDeleteDocument -> Rep BatchDeleteDocument x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep BatchDeleteDocument x -> BatchDeleteDocument
$cfrom :: forall x. BatchDeleteDocument -> Rep BatchDeleteDocument x
Prelude.Generic)

-- |
-- Create a value of 'BatchDeleteDocument' 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:
--
-- 'dataSourceSyncJobMetricTarget', 'batchDeleteDocument_dataSourceSyncJobMetricTarget' - Undocumented member.
--
-- 'indexId', 'batchDeleteDocument_indexId' - The identifier of the index that contains the documents to delete.
--
-- 'documentIdList', 'batchDeleteDocument_documentIdList' - One or more identifiers for documents to delete from the index.
newBatchDeleteDocument ::
  -- | 'indexId'
  Prelude.Text ->
  -- | 'documentIdList'
  Prelude.NonEmpty Prelude.Text ->
  BatchDeleteDocument
newBatchDeleteDocument :: Text -> NonEmpty Text -> BatchDeleteDocument
newBatchDeleteDocument Text
pIndexId_ NonEmpty Text
pDocumentIdList_ =
  BatchDeleteDocument'
    { $sel:dataSourceSyncJobMetricTarget:BatchDeleteDocument' :: Maybe DataSourceSyncJobMetricTarget
dataSourceSyncJobMetricTarget =
        forall a. Maybe a
Prelude.Nothing,
      $sel:indexId:BatchDeleteDocument' :: Text
indexId = Text
pIndexId_,
      $sel:documentIdList:BatchDeleteDocument' :: NonEmpty Text
documentIdList =
        forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty Text
pDocumentIdList_
    }

-- | Undocumented member.
batchDeleteDocument_dataSourceSyncJobMetricTarget :: Lens.Lens' BatchDeleteDocument (Prelude.Maybe DataSourceSyncJobMetricTarget)
batchDeleteDocument_dataSourceSyncJobMetricTarget :: Lens' BatchDeleteDocument (Maybe DataSourceSyncJobMetricTarget)
batchDeleteDocument_dataSourceSyncJobMetricTarget = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteDocument' {Maybe DataSourceSyncJobMetricTarget
dataSourceSyncJobMetricTarget :: Maybe DataSourceSyncJobMetricTarget
$sel:dataSourceSyncJobMetricTarget:BatchDeleteDocument' :: BatchDeleteDocument -> Maybe DataSourceSyncJobMetricTarget
dataSourceSyncJobMetricTarget} -> Maybe DataSourceSyncJobMetricTarget
dataSourceSyncJobMetricTarget) (\s :: BatchDeleteDocument
s@BatchDeleteDocument' {} Maybe DataSourceSyncJobMetricTarget
a -> BatchDeleteDocument
s {$sel:dataSourceSyncJobMetricTarget:BatchDeleteDocument' :: Maybe DataSourceSyncJobMetricTarget
dataSourceSyncJobMetricTarget = Maybe DataSourceSyncJobMetricTarget
a} :: BatchDeleteDocument)

-- | The identifier of the index that contains the documents to delete.
batchDeleteDocument_indexId :: Lens.Lens' BatchDeleteDocument Prelude.Text
batchDeleteDocument_indexId :: Lens' BatchDeleteDocument Text
batchDeleteDocument_indexId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteDocument' {Text
indexId :: Text
$sel:indexId:BatchDeleteDocument' :: BatchDeleteDocument -> Text
indexId} -> Text
indexId) (\s :: BatchDeleteDocument
s@BatchDeleteDocument' {} Text
a -> BatchDeleteDocument
s {$sel:indexId:BatchDeleteDocument' :: Text
indexId = Text
a} :: BatchDeleteDocument)

-- | One or more identifiers for documents to delete from the index.
batchDeleteDocument_documentIdList :: Lens.Lens' BatchDeleteDocument (Prelude.NonEmpty Prelude.Text)
batchDeleteDocument_documentIdList :: Lens' BatchDeleteDocument (NonEmpty Text)
batchDeleteDocument_documentIdList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteDocument' {NonEmpty Text
documentIdList :: NonEmpty Text
$sel:documentIdList:BatchDeleteDocument' :: BatchDeleteDocument -> NonEmpty Text
documentIdList} -> NonEmpty Text
documentIdList) (\s :: BatchDeleteDocument
s@BatchDeleteDocument' {} NonEmpty Text
a -> BatchDeleteDocument
s {$sel:documentIdList:BatchDeleteDocument' :: NonEmpty Text
documentIdList = NonEmpty Text
a} :: BatchDeleteDocument) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Core.AWSRequest BatchDeleteDocument where
  type
    AWSResponse BatchDeleteDocument =
      BatchDeleteDocumentResponse
  request :: (Service -> Service)
-> BatchDeleteDocument -> Request BatchDeleteDocument
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy BatchDeleteDocument
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse BatchDeleteDocument)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe [BatchDeleteDocumentResponseFailedDocument]
-> Int -> BatchDeleteDocumentResponse
BatchDeleteDocumentResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"FailedDocuments"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable BatchDeleteDocument where
  hashWithSalt :: Int -> BatchDeleteDocument -> Int
hashWithSalt Int
_salt BatchDeleteDocument' {Maybe DataSourceSyncJobMetricTarget
NonEmpty Text
Text
documentIdList :: NonEmpty Text
indexId :: Text
dataSourceSyncJobMetricTarget :: Maybe DataSourceSyncJobMetricTarget
$sel:documentIdList:BatchDeleteDocument' :: BatchDeleteDocument -> NonEmpty Text
$sel:indexId:BatchDeleteDocument' :: BatchDeleteDocument -> Text
$sel:dataSourceSyncJobMetricTarget:BatchDeleteDocument' :: BatchDeleteDocument -> Maybe DataSourceSyncJobMetricTarget
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataSourceSyncJobMetricTarget
dataSourceSyncJobMetricTarget
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
indexId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty Text
documentIdList

instance Prelude.NFData BatchDeleteDocument where
  rnf :: BatchDeleteDocument -> ()
rnf BatchDeleteDocument' {Maybe DataSourceSyncJobMetricTarget
NonEmpty Text
Text
documentIdList :: NonEmpty Text
indexId :: Text
dataSourceSyncJobMetricTarget :: Maybe DataSourceSyncJobMetricTarget
$sel:documentIdList:BatchDeleteDocument' :: BatchDeleteDocument -> NonEmpty Text
$sel:indexId:BatchDeleteDocument' :: BatchDeleteDocument -> Text
$sel:dataSourceSyncJobMetricTarget:BatchDeleteDocument' :: BatchDeleteDocument -> Maybe DataSourceSyncJobMetricTarget
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe DataSourceSyncJobMetricTarget
dataSourceSyncJobMetricTarget
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
indexId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty Text
documentIdList

instance Data.ToHeaders BatchDeleteDocument where
  toHeaders :: BatchDeleteDocument -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSKendraFrontendService.BatchDeleteDocument" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON BatchDeleteDocument where
  toJSON :: BatchDeleteDocument -> Value
toJSON BatchDeleteDocument' {Maybe DataSourceSyncJobMetricTarget
NonEmpty Text
Text
documentIdList :: NonEmpty Text
indexId :: Text
dataSourceSyncJobMetricTarget :: Maybe DataSourceSyncJobMetricTarget
$sel:documentIdList:BatchDeleteDocument' :: BatchDeleteDocument -> NonEmpty Text
$sel:indexId:BatchDeleteDocument' :: BatchDeleteDocument -> Text
$sel:dataSourceSyncJobMetricTarget:BatchDeleteDocument' :: BatchDeleteDocument -> Maybe DataSourceSyncJobMetricTarget
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"DataSourceSyncJobMetricTarget" 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 DataSourceSyncJobMetricTarget
dataSourceSyncJobMetricTarget,
            forall a. a -> Maybe a
Prelude.Just (Key
"IndexId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
indexId),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"DocumentIdList" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty Text
documentIdList)
          ]
      )

instance Data.ToPath BatchDeleteDocument where
  toPath :: BatchDeleteDocument -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery BatchDeleteDocument where
  toQuery :: BatchDeleteDocument -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newBatchDeleteDocumentResponse' smart constructor.
data BatchDeleteDocumentResponse = BatchDeleteDocumentResponse'
  { -- | A list of documents that could not be removed from the index. Each entry
    -- contains an error message that indicates why the document couldn\'t be
    -- removed from the index.
    BatchDeleteDocumentResponse
-> Maybe [BatchDeleteDocumentResponseFailedDocument]
failedDocuments :: Prelude.Maybe [BatchDeleteDocumentResponseFailedDocument],
    -- | The response's http status code.
    BatchDeleteDocumentResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (BatchDeleteDocumentResponse -> BatchDeleteDocumentResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BatchDeleteDocumentResponse -> BatchDeleteDocumentResponse -> Bool
$c/= :: BatchDeleteDocumentResponse -> BatchDeleteDocumentResponse -> Bool
== :: BatchDeleteDocumentResponse -> BatchDeleteDocumentResponse -> Bool
$c== :: BatchDeleteDocumentResponse -> BatchDeleteDocumentResponse -> Bool
Prelude.Eq, ReadPrec [BatchDeleteDocumentResponse]
ReadPrec BatchDeleteDocumentResponse
Int -> ReadS BatchDeleteDocumentResponse
ReadS [BatchDeleteDocumentResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BatchDeleteDocumentResponse]
$creadListPrec :: ReadPrec [BatchDeleteDocumentResponse]
readPrec :: ReadPrec BatchDeleteDocumentResponse
$creadPrec :: ReadPrec BatchDeleteDocumentResponse
readList :: ReadS [BatchDeleteDocumentResponse]
$creadList :: ReadS [BatchDeleteDocumentResponse]
readsPrec :: Int -> ReadS BatchDeleteDocumentResponse
$creadsPrec :: Int -> ReadS BatchDeleteDocumentResponse
Prelude.Read, Int -> BatchDeleteDocumentResponse -> ShowS
[BatchDeleteDocumentResponse] -> ShowS
BatchDeleteDocumentResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BatchDeleteDocumentResponse] -> ShowS
$cshowList :: [BatchDeleteDocumentResponse] -> ShowS
show :: BatchDeleteDocumentResponse -> String
$cshow :: BatchDeleteDocumentResponse -> String
showsPrec :: Int -> BatchDeleteDocumentResponse -> ShowS
$cshowsPrec :: Int -> BatchDeleteDocumentResponse -> ShowS
Prelude.Show, forall x.
Rep BatchDeleteDocumentResponse x -> BatchDeleteDocumentResponse
forall x.
BatchDeleteDocumentResponse -> Rep BatchDeleteDocumentResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep BatchDeleteDocumentResponse x -> BatchDeleteDocumentResponse
$cfrom :: forall x.
BatchDeleteDocumentResponse -> Rep BatchDeleteDocumentResponse x
Prelude.Generic)

-- |
-- Create a value of 'BatchDeleteDocumentResponse' 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:
--
-- 'failedDocuments', 'batchDeleteDocumentResponse_failedDocuments' - A list of documents that could not be removed from the index. Each entry
-- contains an error message that indicates why the document couldn\'t be
-- removed from the index.
--
-- 'httpStatus', 'batchDeleteDocumentResponse_httpStatus' - The response's http status code.
newBatchDeleteDocumentResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  BatchDeleteDocumentResponse
newBatchDeleteDocumentResponse :: Int -> BatchDeleteDocumentResponse
newBatchDeleteDocumentResponse Int
pHttpStatus_ =
  BatchDeleteDocumentResponse'
    { $sel:failedDocuments:BatchDeleteDocumentResponse' :: Maybe [BatchDeleteDocumentResponseFailedDocument]
failedDocuments =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:BatchDeleteDocumentResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A list of documents that could not be removed from the index. Each entry
-- contains an error message that indicates why the document couldn\'t be
-- removed from the index.
batchDeleteDocumentResponse_failedDocuments :: Lens.Lens' BatchDeleteDocumentResponse (Prelude.Maybe [BatchDeleteDocumentResponseFailedDocument])
batchDeleteDocumentResponse_failedDocuments :: Lens'
  BatchDeleteDocumentResponse
  (Maybe [BatchDeleteDocumentResponseFailedDocument])
batchDeleteDocumentResponse_failedDocuments = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteDocumentResponse' {Maybe [BatchDeleteDocumentResponseFailedDocument]
failedDocuments :: Maybe [BatchDeleteDocumentResponseFailedDocument]
$sel:failedDocuments:BatchDeleteDocumentResponse' :: BatchDeleteDocumentResponse
-> Maybe [BatchDeleteDocumentResponseFailedDocument]
failedDocuments} -> Maybe [BatchDeleteDocumentResponseFailedDocument]
failedDocuments) (\s :: BatchDeleteDocumentResponse
s@BatchDeleteDocumentResponse' {} Maybe [BatchDeleteDocumentResponseFailedDocument]
a -> BatchDeleteDocumentResponse
s {$sel:failedDocuments:BatchDeleteDocumentResponse' :: Maybe [BatchDeleteDocumentResponseFailedDocument]
failedDocuments = Maybe [BatchDeleteDocumentResponseFailedDocument]
a} :: BatchDeleteDocumentResponse) 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 response's http status code.
batchDeleteDocumentResponse_httpStatus :: Lens.Lens' BatchDeleteDocumentResponse Prelude.Int
batchDeleteDocumentResponse_httpStatus :: Lens' BatchDeleteDocumentResponse Int
batchDeleteDocumentResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteDocumentResponse' {Int
httpStatus :: Int
$sel:httpStatus:BatchDeleteDocumentResponse' :: BatchDeleteDocumentResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: BatchDeleteDocumentResponse
s@BatchDeleteDocumentResponse' {} Int
a -> BatchDeleteDocumentResponse
s {$sel:httpStatus:BatchDeleteDocumentResponse' :: Int
httpStatus = Int
a} :: BatchDeleteDocumentResponse)

instance Prelude.NFData BatchDeleteDocumentResponse where
  rnf :: BatchDeleteDocumentResponse -> ()
rnf BatchDeleteDocumentResponse' {Int
Maybe [BatchDeleteDocumentResponseFailedDocument]
httpStatus :: Int
failedDocuments :: Maybe [BatchDeleteDocumentResponseFailedDocument]
$sel:httpStatus:BatchDeleteDocumentResponse' :: BatchDeleteDocumentResponse -> Int
$sel:failedDocuments:BatchDeleteDocumentResponse' :: BatchDeleteDocumentResponse
-> Maybe [BatchDeleteDocumentResponseFailedDocument]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [BatchDeleteDocumentResponseFailedDocument]
failedDocuments
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus