{-# 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 #-}
module Amazonka.Rum.UpdateRumMetricDefinition
(
UpdateRumMetricDefinition (..),
newUpdateRumMetricDefinition,
updateRumMetricDefinition_destinationArn,
updateRumMetricDefinition_appMonitorName,
updateRumMetricDefinition_destination,
updateRumMetricDefinition_metricDefinition,
updateRumMetricDefinition_metricDefinitionId,
UpdateRumMetricDefinitionResponse (..),
newUpdateRumMetricDefinitionResponse,
updateRumMetricDefinitionResponse_httpStatus,
)
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
data UpdateRumMetricDefinition = UpdateRumMetricDefinition'
{
UpdateRumMetricDefinition -> Maybe Text
destinationArn :: Prelude.Maybe Prelude.Text,
UpdateRumMetricDefinition -> Text
appMonitorName :: Prelude.Text,
UpdateRumMetricDefinition -> MetricDestination
destination :: MetricDestination,
UpdateRumMetricDefinition -> MetricDefinitionRequest
metricDefinition :: MetricDefinitionRequest,
UpdateRumMetricDefinition -> Text
metricDefinitionId :: Prelude.Text
}
deriving (UpdateRumMetricDefinition -> UpdateRumMetricDefinition -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateRumMetricDefinition -> UpdateRumMetricDefinition -> Bool
$c/= :: UpdateRumMetricDefinition -> UpdateRumMetricDefinition -> Bool
== :: UpdateRumMetricDefinition -> UpdateRumMetricDefinition -> Bool
$c== :: UpdateRumMetricDefinition -> UpdateRumMetricDefinition -> Bool
Prelude.Eq, ReadPrec [UpdateRumMetricDefinition]
ReadPrec UpdateRumMetricDefinition
Int -> ReadS UpdateRumMetricDefinition
ReadS [UpdateRumMetricDefinition]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateRumMetricDefinition]
$creadListPrec :: ReadPrec [UpdateRumMetricDefinition]
readPrec :: ReadPrec UpdateRumMetricDefinition
$creadPrec :: ReadPrec UpdateRumMetricDefinition
readList :: ReadS [UpdateRumMetricDefinition]
$creadList :: ReadS [UpdateRumMetricDefinition]
readsPrec :: Int -> ReadS UpdateRumMetricDefinition
$creadsPrec :: Int -> ReadS UpdateRumMetricDefinition
Prelude.Read, Int -> UpdateRumMetricDefinition -> ShowS
[UpdateRumMetricDefinition] -> ShowS
UpdateRumMetricDefinition -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateRumMetricDefinition] -> ShowS
$cshowList :: [UpdateRumMetricDefinition] -> ShowS
show :: UpdateRumMetricDefinition -> String
$cshow :: UpdateRumMetricDefinition -> String
showsPrec :: Int -> UpdateRumMetricDefinition -> ShowS
$cshowsPrec :: Int -> UpdateRumMetricDefinition -> ShowS
Prelude.Show, forall x.
Rep UpdateRumMetricDefinition x -> UpdateRumMetricDefinition
forall x.
UpdateRumMetricDefinition -> Rep UpdateRumMetricDefinition x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateRumMetricDefinition x -> UpdateRumMetricDefinition
$cfrom :: forall x.
UpdateRumMetricDefinition -> Rep UpdateRumMetricDefinition x
Prelude.Generic)
newUpdateRumMetricDefinition ::
Prelude.Text ->
MetricDestination ->
MetricDefinitionRequest ->
Prelude.Text ->
UpdateRumMetricDefinition
newUpdateRumMetricDefinition :: Text
-> MetricDestination
-> MetricDefinitionRequest
-> Text
-> UpdateRumMetricDefinition
newUpdateRumMetricDefinition
Text
pAppMonitorName_
MetricDestination
pDestination_
MetricDefinitionRequest
pMetricDefinition_
Text
pMetricDefinitionId_ =
UpdateRumMetricDefinition'
{ $sel:destinationArn:UpdateRumMetricDefinition' :: Maybe Text
destinationArn =
forall a. Maybe a
Prelude.Nothing,
$sel:appMonitorName:UpdateRumMetricDefinition' :: Text
appMonitorName = Text
pAppMonitorName_,
$sel:destination:UpdateRumMetricDefinition' :: MetricDestination
destination = MetricDestination
pDestination_,
$sel:metricDefinition:UpdateRumMetricDefinition' :: MetricDefinitionRequest
metricDefinition = MetricDefinitionRequest
pMetricDefinition_,
$sel:metricDefinitionId:UpdateRumMetricDefinition' :: Text
metricDefinitionId = Text
pMetricDefinitionId_
}
updateRumMetricDefinition_destinationArn :: Lens.Lens' UpdateRumMetricDefinition (Prelude.Maybe Prelude.Text)
updateRumMetricDefinition_destinationArn :: Lens' UpdateRumMetricDefinition (Maybe Text)
updateRumMetricDefinition_destinationArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRumMetricDefinition' {Maybe Text
destinationArn :: Maybe Text
$sel:destinationArn:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Maybe Text
destinationArn} -> Maybe Text
destinationArn) (\s :: UpdateRumMetricDefinition
s@UpdateRumMetricDefinition' {} Maybe Text
a -> UpdateRumMetricDefinition
s {$sel:destinationArn:UpdateRumMetricDefinition' :: Maybe Text
destinationArn = Maybe Text
a} :: UpdateRumMetricDefinition)
updateRumMetricDefinition_appMonitorName :: Lens.Lens' UpdateRumMetricDefinition Prelude.Text
updateRumMetricDefinition_appMonitorName :: Lens' UpdateRumMetricDefinition Text
updateRumMetricDefinition_appMonitorName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRumMetricDefinition' {Text
appMonitorName :: Text
$sel:appMonitorName:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Text
appMonitorName} -> Text
appMonitorName) (\s :: UpdateRumMetricDefinition
s@UpdateRumMetricDefinition' {} Text
a -> UpdateRumMetricDefinition
s {$sel:appMonitorName:UpdateRumMetricDefinition' :: Text
appMonitorName = Text
a} :: UpdateRumMetricDefinition)
updateRumMetricDefinition_destination :: Lens.Lens' UpdateRumMetricDefinition MetricDestination
updateRumMetricDefinition_destination :: Lens' UpdateRumMetricDefinition MetricDestination
updateRumMetricDefinition_destination = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRumMetricDefinition' {MetricDestination
destination :: MetricDestination
$sel:destination:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> MetricDestination
destination} -> MetricDestination
destination) (\s :: UpdateRumMetricDefinition
s@UpdateRumMetricDefinition' {} MetricDestination
a -> UpdateRumMetricDefinition
s {$sel:destination:UpdateRumMetricDefinition' :: MetricDestination
destination = MetricDestination
a} :: UpdateRumMetricDefinition)
updateRumMetricDefinition_metricDefinition :: Lens.Lens' UpdateRumMetricDefinition MetricDefinitionRequest
updateRumMetricDefinition_metricDefinition :: Lens' UpdateRumMetricDefinition MetricDefinitionRequest
updateRumMetricDefinition_metricDefinition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRumMetricDefinition' {MetricDefinitionRequest
metricDefinition :: MetricDefinitionRequest
$sel:metricDefinition:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> MetricDefinitionRequest
metricDefinition} -> MetricDefinitionRequest
metricDefinition) (\s :: UpdateRumMetricDefinition
s@UpdateRumMetricDefinition' {} MetricDefinitionRequest
a -> UpdateRumMetricDefinition
s {$sel:metricDefinition:UpdateRumMetricDefinition' :: MetricDefinitionRequest
metricDefinition = MetricDefinitionRequest
a} :: UpdateRumMetricDefinition)
updateRumMetricDefinition_metricDefinitionId :: Lens.Lens' UpdateRumMetricDefinition Prelude.Text
updateRumMetricDefinition_metricDefinitionId :: Lens' UpdateRumMetricDefinition Text
updateRumMetricDefinition_metricDefinitionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRumMetricDefinition' {Text
metricDefinitionId :: Text
$sel:metricDefinitionId:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Text
metricDefinitionId} -> Text
metricDefinitionId) (\s :: UpdateRumMetricDefinition
s@UpdateRumMetricDefinition' {} Text
a -> UpdateRumMetricDefinition
s {$sel:metricDefinitionId:UpdateRumMetricDefinition' :: Text
metricDefinitionId = Text
a} :: UpdateRumMetricDefinition)
instance Core.AWSRequest UpdateRumMetricDefinition where
type
AWSResponse UpdateRumMetricDefinition =
UpdateRumMetricDefinitionResponse
request :: (Service -> Service)
-> UpdateRumMetricDefinition -> Request UpdateRumMetricDefinition
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.patchJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateRumMetricDefinition
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateRumMetricDefinition)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
( \Int
s ResponseHeaders
h ()
x ->
Int -> UpdateRumMetricDefinitionResponse
UpdateRumMetricDefinitionResponse'
forall (f :: * -> *) a b. Functor 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 UpdateRumMetricDefinition where
hashWithSalt :: Int -> UpdateRumMetricDefinition -> Int
hashWithSalt Int
_salt UpdateRumMetricDefinition' {Maybe Text
Text
MetricDefinitionRequest
MetricDestination
metricDefinitionId :: Text
metricDefinition :: MetricDefinitionRequest
destination :: MetricDestination
appMonitorName :: Text
destinationArn :: Maybe Text
$sel:metricDefinitionId:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Text
$sel:metricDefinition:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> MetricDefinitionRequest
$sel:destination:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> MetricDestination
$sel:appMonitorName:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Text
$sel:destinationArn:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> 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` MetricDefinitionRequest
metricDefinition
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
metricDefinitionId
instance Prelude.NFData UpdateRumMetricDefinition where
rnf :: UpdateRumMetricDefinition -> ()
rnf UpdateRumMetricDefinition' {Maybe Text
Text
MetricDefinitionRequest
MetricDestination
metricDefinitionId :: Text
metricDefinition :: MetricDefinitionRequest
destination :: MetricDestination
appMonitorName :: Text
destinationArn :: Maybe Text
$sel:metricDefinitionId:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Text
$sel:metricDefinition:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> MetricDefinitionRequest
$sel:destination:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> MetricDestination
$sel:appMonitorName:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Text
$sel:destinationArn:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> 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 MetricDefinitionRequest
metricDefinition
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
metricDefinitionId
instance Data.ToHeaders UpdateRumMetricDefinition where
toHeaders :: UpdateRumMetricDefinition -> 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.ToJSON UpdateRumMetricDefinition where
toJSON :: UpdateRumMetricDefinition -> Value
toJSON UpdateRumMetricDefinition' {Maybe Text
Text
MetricDefinitionRequest
MetricDestination
metricDefinitionId :: Text
metricDefinition :: MetricDefinitionRequest
destination :: MetricDestination
appMonitorName :: Text
destinationArn :: Maybe Text
$sel:metricDefinitionId:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Text
$sel:metricDefinition:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> MetricDefinitionRequest
$sel:destination:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> MetricDestination
$sel:appMonitorName:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Text
$sel:destinationArn:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"DestinationArn" 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 Text
destinationArn,
forall a. a -> Maybe a
Prelude.Just (Key
"Destination" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MetricDestination
destination),
forall a. a -> Maybe a
Prelude.Just
(Key
"MetricDefinition" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MetricDefinitionRequest
metricDefinition),
forall a. a -> Maybe a
Prelude.Just
(Key
"MetricDefinitionId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
metricDefinitionId)
]
)
instance Data.ToPath UpdateRumMetricDefinition where
toPath :: UpdateRumMetricDefinition -> ByteString
toPath UpdateRumMetricDefinition' {Maybe Text
Text
MetricDefinitionRequest
MetricDestination
metricDefinitionId :: Text
metricDefinition :: MetricDefinitionRequest
destination :: MetricDestination
appMonitorName :: Text
destinationArn :: Maybe Text
$sel:metricDefinitionId:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Text
$sel:metricDefinition:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> MetricDefinitionRequest
$sel:destination:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> MetricDestination
$sel:appMonitorName:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> Text
$sel:destinationArn:UpdateRumMetricDefinition' :: UpdateRumMetricDefinition -> 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 UpdateRumMetricDefinition where
toQuery :: UpdateRumMetricDefinition -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateRumMetricDefinitionResponse = UpdateRumMetricDefinitionResponse'
{
UpdateRumMetricDefinitionResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateRumMetricDefinitionResponse
-> UpdateRumMetricDefinitionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateRumMetricDefinitionResponse
-> UpdateRumMetricDefinitionResponse -> Bool
$c/= :: UpdateRumMetricDefinitionResponse
-> UpdateRumMetricDefinitionResponse -> Bool
== :: UpdateRumMetricDefinitionResponse
-> UpdateRumMetricDefinitionResponse -> Bool
$c== :: UpdateRumMetricDefinitionResponse
-> UpdateRumMetricDefinitionResponse -> Bool
Prelude.Eq, ReadPrec [UpdateRumMetricDefinitionResponse]
ReadPrec UpdateRumMetricDefinitionResponse
Int -> ReadS UpdateRumMetricDefinitionResponse
ReadS [UpdateRumMetricDefinitionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateRumMetricDefinitionResponse]
$creadListPrec :: ReadPrec [UpdateRumMetricDefinitionResponse]
readPrec :: ReadPrec UpdateRumMetricDefinitionResponse
$creadPrec :: ReadPrec UpdateRumMetricDefinitionResponse
readList :: ReadS [UpdateRumMetricDefinitionResponse]
$creadList :: ReadS [UpdateRumMetricDefinitionResponse]
readsPrec :: Int -> ReadS UpdateRumMetricDefinitionResponse
$creadsPrec :: Int -> ReadS UpdateRumMetricDefinitionResponse
Prelude.Read, Int -> UpdateRumMetricDefinitionResponse -> ShowS
[UpdateRumMetricDefinitionResponse] -> ShowS
UpdateRumMetricDefinitionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateRumMetricDefinitionResponse] -> ShowS
$cshowList :: [UpdateRumMetricDefinitionResponse] -> ShowS
show :: UpdateRumMetricDefinitionResponse -> String
$cshow :: UpdateRumMetricDefinitionResponse -> String
showsPrec :: Int -> UpdateRumMetricDefinitionResponse -> ShowS
$cshowsPrec :: Int -> UpdateRumMetricDefinitionResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateRumMetricDefinitionResponse x
-> UpdateRumMetricDefinitionResponse
forall x.
UpdateRumMetricDefinitionResponse
-> Rep UpdateRumMetricDefinitionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateRumMetricDefinitionResponse x
-> UpdateRumMetricDefinitionResponse
$cfrom :: forall x.
UpdateRumMetricDefinitionResponse
-> Rep UpdateRumMetricDefinitionResponse x
Prelude.Generic)
newUpdateRumMetricDefinitionResponse ::
Prelude.Int ->
UpdateRumMetricDefinitionResponse
newUpdateRumMetricDefinitionResponse :: Int -> UpdateRumMetricDefinitionResponse
newUpdateRumMetricDefinitionResponse Int
pHttpStatus_ =
UpdateRumMetricDefinitionResponse'
{ $sel:httpStatus:UpdateRumMetricDefinitionResponse' :: Int
httpStatus =
Int
pHttpStatus_
}
updateRumMetricDefinitionResponse_httpStatus :: Lens.Lens' UpdateRumMetricDefinitionResponse Prelude.Int
updateRumMetricDefinitionResponse_httpStatus :: Lens' UpdateRumMetricDefinitionResponse Int
updateRumMetricDefinitionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRumMetricDefinitionResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateRumMetricDefinitionResponse' :: UpdateRumMetricDefinitionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateRumMetricDefinitionResponse
s@UpdateRumMetricDefinitionResponse' {} Int
a -> UpdateRumMetricDefinitionResponse
s {$sel:httpStatus:UpdateRumMetricDefinitionResponse' :: Int
httpStatus = Int
a} :: UpdateRumMetricDefinitionResponse)
instance
Prelude.NFData
UpdateRumMetricDefinitionResponse
where
rnf :: UpdateRumMetricDefinitionResponse -> ()
rnf UpdateRumMetricDefinitionResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateRumMetricDefinitionResponse' :: UpdateRumMetricDefinitionResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus