amazonka-mwaa-2.0: gen/Amazonka/MwAA/PublishMetrics.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.MwAA.PublishMetrics
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- __Internal only__. Publishes environment health metrics to Amazon
-- CloudWatch.
module Amazonka.MwAA.PublishMetrics
( -- * Creating a Request
PublishMetrics (..),
newPublishMetrics,
-- * Request Lenses
publishMetrics_environmentName,
publishMetrics_metricData,
-- * Destructuring the Response
PublishMetricsResponse (..),
newPublishMetricsResponse,
-- * Response Lenses
publishMetricsResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MwAA.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | /See:/ 'newPublishMetrics' smart constructor.
data PublishMetrics = PublishMetrics'
{ -- | __Internal only__. The name of the environment.
environmentName :: Prelude.Text,
-- | __Internal only__. Publishes metrics to Amazon CloudWatch. To learn more
-- about the metrics published to Amazon CloudWatch, see
-- <https://docs.aws.amazon.com/mwaa/latest/userguide/cw-metrics.html Amazon MWAA performance metrics in Amazon CloudWatch>.
metricData :: [MetricDatum]
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'PublishMetrics' 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:
--
-- 'environmentName', 'publishMetrics_environmentName' - __Internal only__. The name of the environment.
--
-- 'metricData', 'publishMetrics_metricData' - __Internal only__. Publishes metrics to Amazon CloudWatch. To learn more
-- about the metrics published to Amazon CloudWatch, see
-- <https://docs.aws.amazon.com/mwaa/latest/userguide/cw-metrics.html Amazon MWAA performance metrics in Amazon CloudWatch>.
newPublishMetrics ::
-- | 'environmentName'
Prelude.Text ->
PublishMetrics
newPublishMetrics pEnvironmentName_ =
PublishMetrics'
{ environmentName =
pEnvironmentName_,
metricData = Prelude.mempty
}
-- | __Internal only__. The name of the environment.
publishMetrics_environmentName :: Lens.Lens' PublishMetrics Prelude.Text
publishMetrics_environmentName = Lens.lens (\PublishMetrics' {environmentName} -> environmentName) (\s@PublishMetrics' {} a -> s {environmentName = a} :: PublishMetrics)
-- | __Internal only__. Publishes metrics to Amazon CloudWatch. To learn more
-- about the metrics published to Amazon CloudWatch, see
-- <https://docs.aws.amazon.com/mwaa/latest/userguide/cw-metrics.html Amazon MWAA performance metrics in Amazon CloudWatch>.
publishMetrics_metricData :: Lens.Lens' PublishMetrics [MetricDatum]
publishMetrics_metricData = Lens.lens (\PublishMetrics' {metricData} -> metricData) (\s@PublishMetrics' {} a -> s {metricData = a} :: PublishMetrics) Prelude.. Lens.coerced
instance Core.AWSRequest PublishMetrics where
type
AWSResponse PublishMetrics =
PublishMetricsResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveEmpty
( \s h x ->
PublishMetricsResponse'
Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable PublishMetrics where
hashWithSalt _salt PublishMetrics' {..} =
_salt
`Prelude.hashWithSalt` environmentName
`Prelude.hashWithSalt` metricData
instance Prelude.NFData PublishMetrics where
rnf PublishMetrics' {..} =
Prelude.rnf environmentName
`Prelude.seq` Prelude.rnf metricData
instance Data.ToHeaders PublishMetrics where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON PublishMetrics where
toJSON PublishMetrics' {..} =
Data.object
( Prelude.catMaybes
[Prelude.Just ("MetricData" Data..= metricData)]
)
instance Data.ToPath PublishMetrics where
toPath PublishMetrics' {..} =
Prelude.mconcat
["/metrics/environments/", Data.toBS environmentName]
instance Data.ToQuery PublishMetrics where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newPublishMetricsResponse' smart constructor.
data PublishMetricsResponse = PublishMetricsResponse'
{ -- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'PublishMetricsResponse' 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:
--
-- 'httpStatus', 'publishMetricsResponse_httpStatus' - The response's http status code.
newPublishMetricsResponse ::
-- | 'httpStatus'
Prelude.Int ->
PublishMetricsResponse
newPublishMetricsResponse pHttpStatus_ =
PublishMetricsResponse' {httpStatus = pHttpStatus_}
-- | The response's http status code.
publishMetricsResponse_httpStatus :: Lens.Lens' PublishMetricsResponse Prelude.Int
publishMetricsResponse_httpStatus = Lens.lens (\PublishMetricsResponse' {httpStatus} -> httpStatus) (\s@PublishMetricsResponse' {} a -> s {httpStatus = a} :: PublishMetricsResponse)
instance Prelude.NFData PublishMetricsResponse where
rnf PublishMetricsResponse' {..} =
Prelude.rnf httpStatus