amazonka-personalize-2.0: gen/Amazonka/Personalize/UpdateMetricAttribution.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.Personalize.UpdateMetricAttribution
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates a metric attribution.
module Amazonka.Personalize.UpdateMetricAttribution
( -- * Creating a Request
UpdateMetricAttribution (..),
newUpdateMetricAttribution,
-- * Request Lenses
updateMetricAttribution_addMetrics,
updateMetricAttribution_metricAttributionArn,
updateMetricAttribution_metricsOutputConfig,
updateMetricAttribution_removeMetrics,
-- * Destructuring the Response
UpdateMetricAttributionResponse (..),
newUpdateMetricAttributionResponse,
-- * Response Lenses
updateMetricAttributionResponse_metricAttributionArn,
updateMetricAttributionResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Personalize.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | /See:/ 'newUpdateMetricAttribution' smart constructor.
data UpdateMetricAttribution = UpdateMetricAttribution'
{ -- | Add new metric attributes to the metric attribution.
addMetrics :: Prelude.Maybe [MetricAttribute],
-- | The Amazon Resource Name (ARN) for the metric attribution to update.
metricAttributionArn :: Prelude.Maybe Prelude.Text,
-- | An output config for the metric attribution.
metricsOutputConfig :: Prelude.Maybe MetricAttributionOutput,
-- | Remove metric attributes from the metric attribution.
removeMetrics :: Prelude.Maybe [Prelude.Text]
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateMetricAttribution' 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:
--
-- 'addMetrics', 'updateMetricAttribution_addMetrics' - Add new metric attributes to the metric attribution.
--
-- 'metricAttributionArn', 'updateMetricAttribution_metricAttributionArn' - The Amazon Resource Name (ARN) for the metric attribution to update.
--
-- 'metricsOutputConfig', 'updateMetricAttribution_metricsOutputConfig' - An output config for the metric attribution.
--
-- 'removeMetrics', 'updateMetricAttribution_removeMetrics' - Remove metric attributes from the metric attribution.
newUpdateMetricAttribution ::
UpdateMetricAttribution
newUpdateMetricAttribution =
UpdateMetricAttribution'
{ addMetrics =
Prelude.Nothing,
metricAttributionArn = Prelude.Nothing,
metricsOutputConfig = Prelude.Nothing,
removeMetrics = Prelude.Nothing
}
-- | Add new metric attributes to the metric attribution.
updateMetricAttribution_addMetrics :: Lens.Lens' UpdateMetricAttribution (Prelude.Maybe [MetricAttribute])
updateMetricAttribution_addMetrics = Lens.lens (\UpdateMetricAttribution' {addMetrics} -> addMetrics) (\s@UpdateMetricAttribution' {} a -> s {addMetrics = a} :: UpdateMetricAttribution) Prelude.. Lens.mapping Lens.coerced
-- | The Amazon Resource Name (ARN) for the metric attribution to update.
updateMetricAttribution_metricAttributionArn :: Lens.Lens' UpdateMetricAttribution (Prelude.Maybe Prelude.Text)
updateMetricAttribution_metricAttributionArn = Lens.lens (\UpdateMetricAttribution' {metricAttributionArn} -> metricAttributionArn) (\s@UpdateMetricAttribution' {} a -> s {metricAttributionArn = a} :: UpdateMetricAttribution)
-- | An output config for the metric attribution.
updateMetricAttribution_metricsOutputConfig :: Lens.Lens' UpdateMetricAttribution (Prelude.Maybe MetricAttributionOutput)
updateMetricAttribution_metricsOutputConfig = Lens.lens (\UpdateMetricAttribution' {metricsOutputConfig} -> metricsOutputConfig) (\s@UpdateMetricAttribution' {} a -> s {metricsOutputConfig = a} :: UpdateMetricAttribution)
-- | Remove metric attributes from the metric attribution.
updateMetricAttribution_removeMetrics :: Lens.Lens' UpdateMetricAttribution (Prelude.Maybe [Prelude.Text])
updateMetricAttribution_removeMetrics = Lens.lens (\UpdateMetricAttribution' {removeMetrics} -> removeMetrics) (\s@UpdateMetricAttribution' {} a -> s {removeMetrics = a} :: UpdateMetricAttribution) Prelude.. Lens.mapping Lens.coerced
instance Core.AWSRequest UpdateMetricAttribution where
type
AWSResponse UpdateMetricAttribution =
UpdateMetricAttributionResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
UpdateMetricAttributionResponse'
Prelude.<$> (x Data..?> "metricAttributionArn")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable UpdateMetricAttribution where
hashWithSalt _salt UpdateMetricAttribution' {..} =
_salt
`Prelude.hashWithSalt` addMetrics
`Prelude.hashWithSalt` metricAttributionArn
`Prelude.hashWithSalt` metricsOutputConfig
`Prelude.hashWithSalt` removeMetrics
instance Prelude.NFData UpdateMetricAttribution where
rnf UpdateMetricAttribution' {..} =
Prelude.rnf addMetrics
`Prelude.seq` Prelude.rnf metricAttributionArn
`Prelude.seq` Prelude.rnf metricsOutputConfig
`Prelude.seq` Prelude.rnf removeMetrics
instance Data.ToHeaders UpdateMetricAttribution where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "AmazonPersonalize.UpdateMetricAttribution" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON UpdateMetricAttribution where
toJSON UpdateMetricAttribution' {..} =
Data.object
( Prelude.catMaybes
[ ("addMetrics" Data..=) Prelude.<$> addMetrics,
("metricAttributionArn" Data..=)
Prelude.<$> metricAttributionArn,
("metricsOutputConfig" Data..=)
Prelude.<$> metricsOutputConfig,
("removeMetrics" Data..=) Prelude.<$> removeMetrics
]
)
instance Data.ToPath UpdateMetricAttribution where
toPath = Prelude.const "/"
instance Data.ToQuery UpdateMetricAttribution where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newUpdateMetricAttributionResponse' smart constructor.
data UpdateMetricAttributionResponse = UpdateMetricAttributionResponse'
{ -- | The Amazon Resource Name (ARN) for the metric attribution that you
-- updated.
metricAttributionArn :: Prelude.Maybe Prelude.Text,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateMetricAttributionResponse' 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:
--
-- 'metricAttributionArn', 'updateMetricAttributionResponse_metricAttributionArn' - The Amazon Resource Name (ARN) for the metric attribution that you
-- updated.
--
-- 'httpStatus', 'updateMetricAttributionResponse_httpStatus' - The response's http status code.
newUpdateMetricAttributionResponse ::
-- | 'httpStatus'
Prelude.Int ->
UpdateMetricAttributionResponse
newUpdateMetricAttributionResponse pHttpStatus_ =
UpdateMetricAttributionResponse'
{ metricAttributionArn =
Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | The Amazon Resource Name (ARN) for the metric attribution that you
-- updated.
updateMetricAttributionResponse_metricAttributionArn :: Lens.Lens' UpdateMetricAttributionResponse (Prelude.Maybe Prelude.Text)
updateMetricAttributionResponse_metricAttributionArn = Lens.lens (\UpdateMetricAttributionResponse' {metricAttributionArn} -> metricAttributionArn) (\s@UpdateMetricAttributionResponse' {} a -> s {metricAttributionArn = a} :: UpdateMetricAttributionResponse)
-- | The response's http status code.
updateMetricAttributionResponse_httpStatus :: Lens.Lens' UpdateMetricAttributionResponse Prelude.Int
updateMetricAttributionResponse_httpStatus = Lens.lens (\UpdateMetricAttributionResponse' {httpStatus} -> httpStatus) (\s@UpdateMetricAttributionResponse' {} a -> s {httpStatus = a} :: UpdateMetricAttributionResponse)
instance
Prelude.NFData
UpdateMetricAttributionResponse
where
rnf UpdateMetricAttributionResponse' {..} =
Prelude.rnf metricAttributionArn
`Prelude.seq` Prelude.rnf httpStatus