amazonka-kendra-2.0: gen/Amazonka/Kendra/SubmitFeedback.hs
{-# 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.SubmitFeedback
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Enables you to provide feedback to Amazon Kendra to improve the
-- performance of your index.
--
-- @SubmitFeedback@ is currently not supported in the Amazon Web Services
-- GovCloud (US-West) region.
module Amazonka.Kendra.SubmitFeedback
( -- * Creating a Request
SubmitFeedback (..),
newSubmitFeedback,
-- * Request Lenses
submitFeedback_clickFeedbackItems,
submitFeedback_relevanceFeedbackItems,
submitFeedback_indexId,
submitFeedback_queryId,
-- * Destructuring the Response
SubmitFeedbackResponse (..),
newSubmitFeedbackResponse,
)
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:/ 'newSubmitFeedback' smart constructor.
data SubmitFeedback = SubmitFeedback'
{ -- | Tells Amazon Kendra that a particular search result link was chosen by
-- the user.
clickFeedbackItems :: Prelude.Maybe [ClickFeedback],
-- | Provides Amazon Kendra with relevant or not relevant feedback for
-- whether a particular item was relevant to the search.
relevanceFeedbackItems :: Prelude.Maybe [RelevanceFeedback],
-- | The identifier of the index that was queried.
indexId :: Prelude.Text,
-- | The identifier of the specific query for which you are submitting
-- feedback. The query ID is returned in the response to the @Query@ API.
queryId :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'SubmitFeedback' 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:
--
-- 'clickFeedbackItems', 'submitFeedback_clickFeedbackItems' - Tells Amazon Kendra that a particular search result link was chosen by
-- the user.
--
-- 'relevanceFeedbackItems', 'submitFeedback_relevanceFeedbackItems' - Provides Amazon Kendra with relevant or not relevant feedback for
-- whether a particular item was relevant to the search.
--
-- 'indexId', 'submitFeedback_indexId' - The identifier of the index that was queried.
--
-- 'queryId', 'submitFeedback_queryId' - The identifier of the specific query for which you are submitting
-- feedback. The query ID is returned in the response to the @Query@ API.
newSubmitFeedback ::
-- | 'indexId'
Prelude.Text ->
-- | 'queryId'
Prelude.Text ->
SubmitFeedback
newSubmitFeedback pIndexId_ pQueryId_ =
SubmitFeedback'
{ clickFeedbackItems =
Prelude.Nothing,
relevanceFeedbackItems = Prelude.Nothing,
indexId = pIndexId_,
queryId = pQueryId_
}
-- | Tells Amazon Kendra that a particular search result link was chosen by
-- the user.
submitFeedback_clickFeedbackItems :: Lens.Lens' SubmitFeedback (Prelude.Maybe [ClickFeedback])
submitFeedback_clickFeedbackItems = Lens.lens (\SubmitFeedback' {clickFeedbackItems} -> clickFeedbackItems) (\s@SubmitFeedback' {} a -> s {clickFeedbackItems = a} :: SubmitFeedback) Prelude.. Lens.mapping Lens.coerced
-- | Provides Amazon Kendra with relevant or not relevant feedback for
-- whether a particular item was relevant to the search.
submitFeedback_relevanceFeedbackItems :: Lens.Lens' SubmitFeedback (Prelude.Maybe [RelevanceFeedback])
submitFeedback_relevanceFeedbackItems = Lens.lens (\SubmitFeedback' {relevanceFeedbackItems} -> relevanceFeedbackItems) (\s@SubmitFeedback' {} a -> s {relevanceFeedbackItems = a} :: SubmitFeedback) Prelude.. Lens.mapping Lens.coerced
-- | The identifier of the index that was queried.
submitFeedback_indexId :: Lens.Lens' SubmitFeedback Prelude.Text
submitFeedback_indexId = Lens.lens (\SubmitFeedback' {indexId} -> indexId) (\s@SubmitFeedback' {} a -> s {indexId = a} :: SubmitFeedback)
-- | The identifier of the specific query for which you are submitting
-- feedback. The query ID is returned in the response to the @Query@ API.
submitFeedback_queryId :: Lens.Lens' SubmitFeedback Prelude.Text
submitFeedback_queryId = Lens.lens (\SubmitFeedback' {queryId} -> queryId) (\s@SubmitFeedback' {} a -> s {queryId = a} :: SubmitFeedback)
instance Core.AWSRequest SubmitFeedback where
type
AWSResponse SubmitFeedback =
SubmitFeedbackResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveNull SubmitFeedbackResponse'
instance Prelude.Hashable SubmitFeedback where
hashWithSalt _salt SubmitFeedback' {..} =
_salt
`Prelude.hashWithSalt` clickFeedbackItems
`Prelude.hashWithSalt` relevanceFeedbackItems
`Prelude.hashWithSalt` indexId
`Prelude.hashWithSalt` queryId
instance Prelude.NFData SubmitFeedback where
rnf SubmitFeedback' {..} =
Prelude.rnf clickFeedbackItems
`Prelude.seq` Prelude.rnf relevanceFeedbackItems
`Prelude.seq` Prelude.rnf indexId
`Prelude.seq` Prelude.rnf queryId
instance Data.ToHeaders SubmitFeedback where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "AWSKendraFrontendService.SubmitFeedback" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON SubmitFeedback where
toJSON SubmitFeedback' {..} =
Data.object
( Prelude.catMaybes
[ ("ClickFeedbackItems" Data..=)
Prelude.<$> clickFeedbackItems,
("RelevanceFeedbackItems" Data..=)
Prelude.<$> relevanceFeedbackItems,
Prelude.Just ("IndexId" Data..= indexId),
Prelude.Just ("QueryId" Data..= queryId)
]
)
instance Data.ToPath SubmitFeedback where
toPath = Prelude.const "/"
instance Data.ToQuery SubmitFeedback where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newSubmitFeedbackResponse' smart constructor.
data SubmitFeedbackResponse = SubmitFeedbackResponse'
{
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'SubmitFeedbackResponse' 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.
newSubmitFeedbackResponse ::
SubmitFeedbackResponse
newSubmitFeedbackResponse = SubmitFeedbackResponse'
instance Prelude.NFData SubmitFeedbackResponse where
rnf _ = ()