{-# 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.Rum.BatchDeleteRumMetricDefinitions
-- 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 the specified metrics from being sent to an extended metrics
-- destination.
--
-- If some metric definition IDs specified in a
-- @BatchDeleteRumMetricDefinitions@ operations are not valid, those metric
-- definitions fail and return errors, but all valid metric definition IDs
-- in the same operation are still deleted.
--
-- The maximum number of metric definitions that you can specify in one
-- @BatchDeleteRumMetricDefinitions@ operation is 200.
module Amazonka.Rum.BatchDeleteRumMetricDefinitions
  ( -- * Creating a Request
    BatchDeleteRumMetricDefinitions (..),
    newBatchDeleteRumMetricDefinitions,

    -- * Request Lenses
    batchDeleteRumMetricDefinitions_destinationArn,
    batchDeleteRumMetricDefinitions_appMonitorName,
    batchDeleteRumMetricDefinitions_destination,
    batchDeleteRumMetricDefinitions_metricDefinitionIds,

    -- * Destructuring the Response
    BatchDeleteRumMetricDefinitionsResponse (..),
    newBatchDeleteRumMetricDefinitionsResponse,

    -- * Response Lenses
    batchDeleteRumMetricDefinitionsResponse_metricDefinitionIds,
    batchDeleteRumMetricDefinitionsResponse_httpStatus,
    batchDeleteRumMetricDefinitionsResponse_errors,
  )
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.Rum.Types

-- | /See:/ 'newBatchDeleteRumMetricDefinitions' smart constructor.
data BatchDeleteRumMetricDefinitions = BatchDeleteRumMetricDefinitions'
  { -- | This parameter is required if @Destination@ is @Evidently@. If
    -- @Destination@ is @CloudWatch@, do not use this parameter.
    --
    -- This parameter specifies the ARN of the Evidently experiment that was
    -- receiving the metrics that are being deleted.
    BatchDeleteRumMetricDefinitions -> Maybe Text
destinationArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the CloudWatch RUM app monitor that is sending these
    -- metrics.
    BatchDeleteRumMetricDefinitions -> Text
appMonitorName :: Prelude.Text,
    -- | Defines the destination where you want to stop sending the specified
    -- metrics. Valid values are @CloudWatch@ and @Evidently@. If you specify
    -- @Evidently@, you must also specify the ARN of the CloudWatchEvidently
    -- experiment that is to be the destination and an IAM role that has
    -- permission to write to the experiment.
    BatchDeleteRumMetricDefinitions -> MetricDestination
destination :: MetricDestination,
    -- | An array of structures which define the metrics that you want to stop
    -- sending.
    BatchDeleteRumMetricDefinitions -> [Text]
metricDefinitionIds :: [Prelude.Text]
  }
  deriving (BatchDeleteRumMetricDefinitions
-> BatchDeleteRumMetricDefinitions -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BatchDeleteRumMetricDefinitions
-> BatchDeleteRumMetricDefinitions -> Bool
$c/= :: BatchDeleteRumMetricDefinitions
-> BatchDeleteRumMetricDefinitions -> Bool
== :: BatchDeleteRumMetricDefinitions
-> BatchDeleteRumMetricDefinitions -> Bool
$c== :: BatchDeleteRumMetricDefinitions
-> BatchDeleteRumMetricDefinitions -> Bool
Prelude.Eq, ReadPrec [BatchDeleteRumMetricDefinitions]
ReadPrec BatchDeleteRumMetricDefinitions
Int -> ReadS BatchDeleteRumMetricDefinitions
ReadS [BatchDeleteRumMetricDefinitions]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BatchDeleteRumMetricDefinitions]
$creadListPrec :: ReadPrec [BatchDeleteRumMetricDefinitions]
readPrec :: ReadPrec BatchDeleteRumMetricDefinitions
$creadPrec :: ReadPrec BatchDeleteRumMetricDefinitions
readList :: ReadS [BatchDeleteRumMetricDefinitions]
$creadList :: ReadS [BatchDeleteRumMetricDefinitions]
readsPrec :: Int -> ReadS BatchDeleteRumMetricDefinitions
$creadsPrec :: Int -> ReadS BatchDeleteRumMetricDefinitions
Prelude.Read, Int -> BatchDeleteRumMetricDefinitions -> ShowS
[BatchDeleteRumMetricDefinitions] -> ShowS
BatchDeleteRumMetricDefinitions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BatchDeleteRumMetricDefinitions] -> ShowS
$cshowList :: [BatchDeleteRumMetricDefinitions] -> ShowS
show :: BatchDeleteRumMetricDefinitions -> String
$cshow :: BatchDeleteRumMetricDefinitions -> String
showsPrec :: Int -> BatchDeleteRumMetricDefinitions -> ShowS
$cshowsPrec :: Int -> BatchDeleteRumMetricDefinitions -> ShowS
Prelude.Show, forall x.
Rep BatchDeleteRumMetricDefinitions x
-> BatchDeleteRumMetricDefinitions
forall x.
BatchDeleteRumMetricDefinitions
-> Rep BatchDeleteRumMetricDefinitions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep BatchDeleteRumMetricDefinitions x
-> BatchDeleteRumMetricDefinitions
$cfrom :: forall x.
BatchDeleteRumMetricDefinitions
-> Rep BatchDeleteRumMetricDefinitions x
Prelude.Generic)

-- |
-- Create a value of 'BatchDeleteRumMetricDefinitions' 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:
--
-- 'destinationArn', 'batchDeleteRumMetricDefinitions_destinationArn' - This parameter is required if @Destination@ is @Evidently@. If
-- @Destination@ is @CloudWatch@, do not use this parameter.
--
-- This parameter specifies the ARN of the Evidently experiment that was
-- receiving the metrics that are being deleted.
--
-- 'appMonitorName', 'batchDeleteRumMetricDefinitions_appMonitorName' - The name of the CloudWatch RUM app monitor that is sending these
-- metrics.
--
-- 'destination', 'batchDeleteRumMetricDefinitions_destination' - Defines the destination where you want to stop sending the specified
-- metrics. Valid values are @CloudWatch@ and @Evidently@. If you specify
-- @Evidently@, you must also specify the ARN of the CloudWatchEvidently
-- experiment that is to be the destination and an IAM role that has
-- permission to write to the experiment.
--
-- 'metricDefinitionIds', 'batchDeleteRumMetricDefinitions_metricDefinitionIds' - An array of structures which define the metrics that you want to stop
-- sending.
newBatchDeleteRumMetricDefinitions ::
  -- | 'appMonitorName'
  Prelude.Text ->
  -- | 'destination'
  MetricDestination ->
  BatchDeleteRumMetricDefinitions
newBatchDeleteRumMetricDefinitions :: Text -> MetricDestination -> BatchDeleteRumMetricDefinitions
newBatchDeleteRumMetricDefinitions
  Text
pAppMonitorName_
  MetricDestination
pDestination_ =
    BatchDeleteRumMetricDefinitions'
      { $sel:destinationArn:BatchDeleteRumMetricDefinitions' :: Maybe Text
destinationArn =
          forall a. Maybe a
Prelude.Nothing,
        $sel:appMonitorName:BatchDeleteRumMetricDefinitions' :: Text
appMonitorName = Text
pAppMonitorName_,
        $sel:destination:BatchDeleteRumMetricDefinitions' :: MetricDestination
destination = MetricDestination
pDestination_,
        $sel:metricDefinitionIds:BatchDeleteRumMetricDefinitions' :: [Text]
metricDefinitionIds = forall a. Monoid a => a
Prelude.mempty
      }

-- | This parameter is required if @Destination@ is @Evidently@. If
-- @Destination@ is @CloudWatch@, do not use this parameter.
--
-- This parameter specifies the ARN of the Evidently experiment that was
-- receiving the metrics that are being deleted.
batchDeleteRumMetricDefinitions_destinationArn :: Lens.Lens' BatchDeleteRumMetricDefinitions (Prelude.Maybe Prelude.Text)
batchDeleteRumMetricDefinitions_destinationArn :: Lens' BatchDeleteRumMetricDefinitions (Maybe Text)
batchDeleteRumMetricDefinitions_destinationArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteRumMetricDefinitions' {Maybe Text
destinationArn :: Maybe Text
$sel:destinationArn:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> Maybe Text
destinationArn} -> Maybe Text
destinationArn) (\s :: BatchDeleteRumMetricDefinitions
s@BatchDeleteRumMetricDefinitions' {} Maybe Text
a -> BatchDeleteRumMetricDefinitions
s {$sel:destinationArn:BatchDeleteRumMetricDefinitions' :: Maybe Text
destinationArn = Maybe Text
a} :: BatchDeleteRumMetricDefinitions)

-- | The name of the CloudWatch RUM app monitor that is sending these
-- metrics.
batchDeleteRumMetricDefinitions_appMonitorName :: Lens.Lens' BatchDeleteRumMetricDefinitions Prelude.Text
batchDeleteRumMetricDefinitions_appMonitorName :: Lens' BatchDeleteRumMetricDefinitions Text
batchDeleteRumMetricDefinitions_appMonitorName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteRumMetricDefinitions' {Text
appMonitorName :: Text
$sel:appMonitorName:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> Text
appMonitorName} -> Text
appMonitorName) (\s :: BatchDeleteRumMetricDefinitions
s@BatchDeleteRumMetricDefinitions' {} Text
a -> BatchDeleteRumMetricDefinitions
s {$sel:appMonitorName:BatchDeleteRumMetricDefinitions' :: Text
appMonitorName = Text
a} :: BatchDeleteRumMetricDefinitions)

-- | Defines the destination where you want to stop sending the specified
-- metrics. Valid values are @CloudWatch@ and @Evidently@. If you specify
-- @Evidently@, you must also specify the ARN of the CloudWatchEvidently
-- experiment that is to be the destination and an IAM role that has
-- permission to write to the experiment.
batchDeleteRumMetricDefinitions_destination :: Lens.Lens' BatchDeleteRumMetricDefinitions MetricDestination
batchDeleteRumMetricDefinitions_destination :: Lens' BatchDeleteRumMetricDefinitions MetricDestination
batchDeleteRumMetricDefinitions_destination = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteRumMetricDefinitions' {MetricDestination
destination :: MetricDestination
$sel:destination:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> MetricDestination
destination} -> MetricDestination
destination) (\s :: BatchDeleteRumMetricDefinitions
s@BatchDeleteRumMetricDefinitions' {} MetricDestination
a -> BatchDeleteRumMetricDefinitions
s {$sel:destination:BatchDeleteRumMetricDefinitions' :: MetricDestination
destination = MetricDestination
a} :: BatchDeleteRumMetricDefinitions)

-- | An array of structures which define the metrics that you want to stop
-- sending.
batchDeleteRumMetricDefinitions_metricDefinitionIds :: Lens.Lens' BatchDeleteRumMetricDefinitions [Prelude.Text]
batchDeleteRumMetricDefinitions_metricDefinitionIds :: Lens' BatchDeleteRumMetricDefinitions [Text]
batchDeleteRumMetricDefinitions_metricDefinitionIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteRumMetricDefinitions' {[Text]
metricDefinitionIds :: [Text]
$sel:metricDefinitionIds:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> [Text]
metricDefinitionIds} -> [Text]
metricDefinitionIds) (\s :: BatchDeleteRumMetricDefinitions
s@BatchDeleteRumMetricDefinitions' {} [Text]
a -> BatchDeleteRumMetricDefinitions
s {$sel:metricDefinitionIds:BatchDeleteRumMetricDefinitions' :: [Text]
metricDefinitionIds = [Text]
a} :: BatchDeleteRumMetricDefinitions) 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
    BatchDeleteRumMetricDefinitions
  where
  type
    AWSResponse BatchDeleteRumMetricDefinitions =
      BatchDeleteRumMetricDefinitionsResponse
  request :: (Service -> Service)
-> BatchDeleteRumMetricDefinitions
-> Request BatchDeleteRumMetricDefinitions
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.delete (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy BatchDeleteRumMetricDefinitions
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse BatchDeleteRumMetricDefinitions)))
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 [Text]
-> Int
-> [BatchDeleteRumMetricDefinitionsError]
-> BatchDeleteRumMetricDefinitionsResponse
BatchDeleteRumMetricDefinitionsResponse'
            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
"MetricDefinitionIds"
                            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))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Errors" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
      )

instance
  Prelude.Hashable
    BatchDeleteRumMetricDefinitions
  where
  hashWithSalt :: Int -> BatchDeleteRumMetricDefinitions -> Int
hashWithSalt
    Int
_salt
    BatchDeleteRumMetricDefinitions' {[Text]
Maybe Text
Text
MetricDestination
metricDefinitionIds :: [Text]
destination :: MetricDestination
appMonitorName :: Text
destinationArn :: Maybe Text
$sel:metricDefinitionIds:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> [Text]
$sel:destination:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> MetricDestination
$sel:appMonitorName:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> Text
$sel:destinationArn:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
destinationArn
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
appMonitorName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MetricDestination
destination
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [Text]
metricDefinitionIds

instance
  Prelude.NFData
    BatchDeleteRumMetricDefinitions
  where
  rnf :: BatchDeleteRumMetricDefinitions -> ()
rnf BatchDeleteRumMetricDefinitions' {[Text]
Maybe Text
Text
MetricDestination
metricDefinitionIds :: [Text]
destination :: MetricDestination
appMonitorName :: Text
destinationArn :: Maybe Text
$sel:metricDefinitionIds:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> [Text]
$sel:destination:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> MetricDestination
$sel:appMonitorName:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> Text
$sel:destinationArn:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
destinationArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
appMonitorName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MetricDestination
destination
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [Text]
metricDefinitionIds

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

instance Data.ToPath BatchDeleteRumMetricDefinitions where
  toPath :: BatchDeleteRumMetricDefinitions -> ByteString
toPath BatchDeleteRumMetricDefinitions' {[Text]
Maybe Text
Text
MetricDestination
metricDefinitionIds :: [Text]
destination :: MetricDestination
appMonitorName :: Text
destinationArn :: Maybe Text
$sel:metricDefinitionIds:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> [Text]
$sel:destination:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> MetricDestination
$sel:appMonitorName:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> Text
$sel:destinationArn:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/rummetrics/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
appMonitorName,
        ByteString
"/metrics"
      ]

instance Data.ToQuery BatchDeleteRumMetricDefinitions where
  toQuery :: BatchDeleteRumMetricDefinitions -> QueryString
toQuery BatchDeleteRumMetricDefinitions' {[Text]
Maybe Text
Text
MetricDestination
metricDefinitionIds :: [Text]
destination :: MetricDestination
appMonitorName :: Text
destinationArn :: Maybe Text
$sel:metricDefinitionIds:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> [Text]
$sel:destination:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> MetricDestination
$sel:appMonitorName:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> Text
$sel:destinationArn:BatchDeleteRumMetricDefinitions' :: BatchDeleteRumMetricDefinitions -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"destinationArn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
destinationArn,
        ByteString
"destination" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: MetricDestination
destination,
        ByteString
"metricDefinitionIds"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"member" [Text]
metricDefinitionIds
      ]

-- | /See:/ 'newBatchDeleteRumMetricDefinitionsResponse' smart constructor.
data BatchDeleteRumMetricDefinitionsResponse = BatchDeleteRumMetricDefinitionsResponse'
  { -- | The IDs of the metric definitions that were deleted.
    BatchDeleteRumMetricDefinitionsResponse -> Maybe [Text]
metricDefinitionIds :: Prelude.Maybe [Prelude.Text],
    -- | The response's http status code.
    BatchDeleteRumMetricDefinitionsResponse -> Int
httpStatus :: Prelude.Int,
    -- | An array of error objects, if the operation caused any errors.
    BatchDeleteRumMetricDefinitionsResponse
-> [BatchDeleteRumMetricDefinitionsError]
errors :: [BatchDeleteRumMetricDefinitionsError]
  }
  deriving (BatchDeleteRumMetricDefinitionsResponse
-> BatchDeleteRumMetricDefinitionsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BatchDeleteRumMetricDefinitionsResponse
-> BatchDeleteRumMetricDefinitionsResponse -> Bool
$c/= :: BatchDeleteRumMetricDefinitionsResponse
-> BatchDeleteRumMetricDefinitionsResponse -> Bool
== :: BatchDeleteRumMetricDefinitionsResponse
-> BatchDeleteRumMetricDefinitionsResponse -> Bool
$c== :: BatchDeleteRumMetricDefinitionsResponse
-> BatchDeleteRumMetricDefinitionsResponse -> Bool
Prelude.Eq, ReadPrec [BatchDeleteRumMetricDefinitionsResponse]
ReadPrec BatchDeleteRumMetricDefinitionsResponse
Int -> ReadS BatchDeleteRumMetricDefinitionsResponse
ReadS [BatchDeleteRumMetricDefinitionsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BatchDeleteRumMetricDefinitionsResponse]
$creadListPrec :: ReadPrec [BatchDeleteRumMetricDefinitionsResponse]
readPrec :: ReadPrec BatchDeleteRumMetricDefinitionsResponse
$creadPrec :: ReadPrec BatchDeleteRumMetricDefinitionsResponse
readList :: ReadS [BatchDeleteRumMetricDefinitionsResponse]
$creadList :: ReadS [BatchDeleteRumMetricDefinitionsResponse]
readsPrec :: Int -> ReadS BatchDeleteRumMetricDefinitionsResponse
$creadsPrec :: Int -> ReadS BatchDeleteRumMetricDefinitionsResponse
Prelude.Read, Int -> BatchDeleteRumMetricDefinitionsResponse -> ShowS
[BatchDeleteRumMetricDefinitionsResponse] -> ShowS
BatchDeleteRumMetricDefinitionsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BatchDeleteRumMetricDefinitionsResponse] -> ShowS
$cshowList :: [BatchDeleteRumMetricDefinitionsResponse] -> ShowS
show :: BatchDeleteRumMetricDefinitionsResponse -> String
$cshow :: BatchDeleteRumMetricDefinitionsResponse -> String
showsPrec :: Int -> BatchDeleteRumMetricDefinitionsResponse -> ShowS
$cshowsPrec :: Int -> BatchDeleteRumMetricDefinitionsResponse -> ShowS
Prelude.Show, forall x.
Rep BatchDeleteRumMetricDefinitionsResponse x
-> BatchDeleteRumMetricDefinitionsResponse
forall x.
BatchDeleteRumMetricDefinitionsResponse
-> Rep BatchDeleteRumMetricDefinitionsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep BatchDeleteRumMetricDefinitionsResponse x
-> BatchDeleteRumMetricDefinitionsResponse
$cfrom :: forall x.
BatchDeleteRumMetricDefinitionsResponse
-> Rep BatchDeleteRumMetricDefinitionsResponse x
Prelude.Generic)

-- |
-- Create a value of 'BatchDeleteRumMetricDefinitionsResponse' 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:
--
-- 'metricDefinitionIds', 'batchDeleteRumMetricDefinitionsResponse_metricDefinitionIds' - The IDs of the metric definitions that were deleted.
--
-- 'httpStatus', 'batchDeleteRumMetricDefinitionsResponse_httpStatus' - The response's http status code.
--
-- 'errors', 'batchDeleteRumMetricDefinitionsResponse_errors' - An array of error objects, if the operation caused any errors.
newBatchDeleteRumMetricDefinitionsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  BatchDeleteRumMetricDefinitionsResponse
newBatchDeleteRumMetricDefinitionsResponse :: Int -> BatchDeleteRumMetricDefinitionsResponse
newBatchDeleteRumMetricDefinitionsResponse
  Int
pHttpStatus_ =
    BatchDeleteRumMetricDefinitionsResponse'
      { $sel:metricDefinitionIds:BatchDeleteRumMetricDefinitionsResponse' :: Maybe [Text]
metricDefinitionIds =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:BatchDeleteRumMetricDefinitionsResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:errors:BatchDeleteRumMetricDefinitionsResponse' :: [BatchDeleteRumMetricDefinitionsError]
errors = forall a. Monoid a => a
Prelude.mempty
      }

-- | The IDs of the metric definitions that were deleted.
batchDeleteRumMetricDefinitionsResponse_metricDefinitionIds :: Lens.Lens' BatchDeleteRumMetricDefinitionsResponse (Prelude.Maybe [Prelude.Text])
batchDeleteRumMetricDefinitionsResponse_metricDefinitionIds :: Lens' BatchDeleteRumMetricDefinitionsResponse (Maybe [Text])
batchDeleteRumMetricDefinitionsResponse_metricDefinitionIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteRumMetricDefinitionsResponse' {Maybe [Text]
metricDefinitionIds :: Maybe [Text]
$sel:metricDefinitionIds:BatchDeleteRumMetricDefinitionsResponse' :: BatchDeleteRumMetricDefinitionsResponse -> Maybe [Text]
metricDefinitionIds} -> Maybe [Text]
metricDefinitionIds) (\s :: BatchDeleteRumMetricDefinitionsResponse
s@BatchDeleteRumMetricDefinitionsResponse' {} Maybe [Text]
a -> BatchDeleteRumMetricDefinitionsResponse
s {$sel:metricDefinitionIds:BatchDeleteRumMetricDefinitionsResponse' :: Maybe [Text]
metricDefinitionIds = Maybe [Text]
a} :: BatchDeleteRumMetricDefinitionsResponse) 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.
batchDeleteRumMetricDefinitionsResponse_httpStatus :: Lens.Lens' BatchDeleteRumMetricDefinitionsResponse Prelude.Int
batchDeleteRumMetricDefinitionsResponse_httpStatus :: Lens' BatchDeleteRumMetricDefinitionsResponse Int
batchDeleteRumMetricDefinitionsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteRumMetricDefinitionsResponse' {Int
httpStatus :: Int
$sel:httpStatus:BatchDeleteRumMetricDefinitionsResponse' :: BatchDeleteRumMetricDefinitionsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: BatchDeleteRumMetricDefinitionsResponse
s@BatchDeleteRumMetricDefinitionsResponse' {} Int
a -> BatchDeleteRumMetricDefinitionsResponse
s {$sel:httpStatus:BatchDeleteRumMetricDefinitionsResponse' :: Int
httpStatus = Int
a} :: BatchDeleteRumMetricDefinitionsResponse)

-- | An array of error objects, if the operation caused any errors.
batchDeleteRumMetricDefinitionsResponse_errors :: Lens.Lens' BatchDeleteRumMetricDefinitionsResponse [BatchDeleteRumMetricDefinitionsError]
batchDeleteRumMetricDefinitionsResponse_errors :: Lens'
  BatchDeleteRumMetricDefinitionsResponse
  [BatchDeleteRumMetricDefinitionsError]
batchDeleteRumMetricDefinitionsResponse_errors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDeleteRumMetricDefinitionsResponse' {[BatchDeleteRumMetricDefinitionsError]
errors :: [BatchDeleteRumMetricDefinitionsError]
$sel:errors:BatchDeleteRumMetricDefinitionsResponse' :: BatchDeleteRumMetricDefinitionsResponse
-> [BatchDeleteRumMetricDefinitionsError]
errors} -> [BatchDeleteRumMetricDefinitionsError]
errors) (\s :: BatchDeleteRumMetricDefinitionsResponse
s@BatchDeleteRumMetricDefinitionsResponse' {} [BatchDeleteRumMetricDefinitionsError]
a -> BatchDeleteRumMetricDefinitionsResponse
s {$sel:errors:BatchDeleteRumMetricDefinitionsResponse' :: [BatchDeleteRumMetricDefinitionsError]
errors = [BatchDeleteRumMetricDefinitionsError]
a} :: BatchDeleteRumMetricDefinitionsResponse) 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
  Prelude.NFData
    BatchDeleteRumMetricDefinitionsResponse
  where
  rnf :: BatchDeleteRumMetricDefinitionsResponse -> ()
rnf BatchDeleteRumMetricDefinitionsResponse' {Int
[BatchDeleteRumMetricDefinitionsError]
Maybe [Text]
errors :: [BatchDeleteRumMetricDefinitionsError]
httpStatus :: Int
metricDefinitionIds :: Maybe [Text]
$sel:errors:BatchDeleteRumMetricDefinitionsResponse' :: BatchDeleteRumMetricDefinitionsResponse
-> [BatchDeleteRumMetricDefinitionsError]
$sel:httpStatus:BatchDeleteRumMetricDefinitionsResponse' :: BatchDeleteRumMetricDefinitionsResponse -> Int
$sel:metricDefinitionIds:BatchDeleteRumMetricDefinitionsResponse' :: BatchDeleteRumMetricDefinitionsResponse -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
metricDefinitionIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [BatchDeleteRumMetricDefinitionsError]
errors