{-# 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.CostExplorer.ProvideAnomalyFeedback
(
ProvideAnomalyFeedback (..),
newProvideAnomalyFeedback,
provideAnomalyFeedback_anomalyId,
provideAnomalyFeedback_feedback,
ProvideAnomalyFeedbackResponse (..),
newProvideAnomalyFeedbackResponse,
provideAnomalyFeedbackResponse_httpStatus,
provideAnomalyFeedbackResponse_anomalyId,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import Amazonka.CostExplorer.Types
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data ProvideAnomalyFeedback = ProvideAnomalyFeedback'
{
ProvideAnomalyFeedback -> Text
anomalyId :: Prelude.Text,
ProvideAnomalyFeedback -> AnomalyFeedbackType
feedback :: AnomalyFeedbackType
}
deriving (ProvideAnomalyFeedback -> ProvideAnomalyFeedback -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProvideAnomalyFeedback -> ProvideAnomalyFeedback -> Bool
$c/= :: ProvideAnomalyFeedback -> ProvideAnomalyFeedback -> Bool
== :: ProvideAnomalyFeedback -> ProvideAnomalyFeedback -> Bool
$c== :: ProvideAnomalyFeedback -> ProvideAnomalyFeedback -> Bool
Prelude.Eq, ReadPrec [ProvideAnomalyFeedback]
ReadPrec ProvideAnomalyFeedback
Int -> ReadS ProvideAnomalyFeedback
ReadS [ProvideAnomalyFeedback]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ProvideAnomalyFeedback]
$creadListPrec :: ReadPrec [ProvideAnomalyFeedback]
readPrec :: ReadPrec ProvideAnomalyFeedback
$creadPrec :: ReadPrec ProvideAnomalyFeedback
readList :: ReadS [ProvideAnomalyFeedback]
$creadList :: ReadS [ProvideAnomalyFeedback]
readsPrec :: Int -> ReadS ProvideAnomalyFeedback
$creadsPrec :: Int -> ReadS ProvideAnomalyFeedback
Prelude.Read, Int -> ProvideAnomalyFeedback -> ShowS
[ProvideAnomalyFeedback] -> ShowS
ProvideAnomalyFeedback -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProvideAnomalyFeedback] -> ShowS
$cshowList :: [ProvideAnomalyFeedback] -> ShowS
show :: ProvideAnomalyFeedback -> String
$cshow :: ProvideAnomalyFeedback -> String
showsPrec :: Int -> ProvideAnomalyFeedback -> ShowS
$cshowsPrec :: Int -> ProvideAnomalyFeedback -> ShowS
Prelude.Show, forall x. Rep ProvideAnomalyFeedback x -> ProvideAnomalyFeedback
forall x. ProvideAnomalyFeedback -> Rep ProvideAnomalyFeedback x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProvideAnomalyFeedback x -> ProvideAnomalyFeedback
$cfrom :: forall x. ProvideAnomalyFeedback -> Rep ProvideAnomalyFeedback x
Prelude.Generic)
newProvideAnomalyFeedback ::
Prelude.Text ->
AnomalyFeedbackType ->
ProvideAnomalyFeedback
newProvideAnomalyFeedback :: Text -> AnomalyFeedbackType -> ProvideAnomalyFeedback
newProvideAnomalyFeedback Text
pAnomalyId_ AnomalyFeedbackType
pFeedback_ =
ProvideAnomalyFeedback'
{ $sel:anomalyId:ProvideAnomalyFeedback' :: Text
anomalyId = Text
pAnomalyId_,
$sel:feedback:ProvideAnomalyFeedback' :: AnomalyFeedbackType
feedback = AnomalyFeedbackType
pFeedback_
}
provideAnomalyFeedback_anomalyId :: Lens.Lens' ProvideAnomalyFeedback Prelude.Text
provideAnomalyFeedback_anomalyId :: Lens' ProvideAnomalyFeedback Text
provideAnomalyFeedback_anomalyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProvideAnomalyFeedback' {Text
anomalyId :: Text
$sel:anomalyId:ProvideAnomalyFeedback' :: ProvideAnomalyFeedback -> Text
anomalyId} -> Text
anomalyId) (\s :: ProvideAnomalyFeedback
s@ProvideAnomalyFeedback' {} Text
a -> ProvideAnomalyFeedback
s {$sel:anomalyId:ProvideAnomalyFeedback' :: Text
anomalyId = Text
a} :: ProvideAnomalyFeedback)
provideAnomalyFeedback_feedback :: Lens.Lens' ProvideAnomalyFeedback AnomalyFeedbackType
provideAnomalyFeedback_feedback :: Lens' ProvideAnomalyFeedback AnomalyFeedbackType
provideAnomalyFeedback_feedback = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProvideAnomalyFeedback' {AnomalyFeedbackType
feedback :: AnomalyFeedbackType
$sel:feedback:ProvideAnomalyFeedback' :: ProvideAnomalyFeedback -> AnomalyFeedbackType
feedback} -> AnomalyFeedbackType
feedback) (\s :: ProvideAnomalyFeedback
s@ProvideAnomalyFeedback' {} AnomalyFeedbackType
a -> ProvideAnomalyFeedback
s {$sel:feedback:ProvideAnomalyFeedback' :: AnomalyFeedbackType
feedback = AnomalyFeedbackType
a} :: ProvideAnomalyFeedback)
instance Core.AWSRequest ProvideAnomalyFeedback where
type
AWSResponse ProvideAnomalyFeedback =
ProvideAnomalyFeedbackResponse
request :: (Service -> Service)
-> ProvideAnomalyFeedback -> Request ProvideAnomalyFeedback
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ProvideAnomalyFeedback
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse ProvideAnomalyFeedback)))
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 ->
Int -> Text -> ProvideAnomalyFeedbackResponse
ProvideAnomalyFeedbackResponse'
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))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"AnomalyId")
)
instance Prelude.Hashable ProvideAnomalyFeedback where
hashWithSalt :: Int -> ProvideAnomalyFeedback -> Int
hashWithSalt Int
_salt ProvideAnomalyFeedback' {Text
AnomalyFeedbackType
feedback :: AnomalyFeedbackType
anomalyId :: Text
$sel:feedback:ProvideAnomalyFeedback' :: ProvideAnomalyFeedback -> AnomalyFeedbackType
$sel:anomalyId:ProvideAnomalyFeedback' :: ProvideAnomalyFeedback -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
anomalyId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` AnomalyFeedbackType
feedback
instance Prelude.NFData ProvideAnomalyFeedback where
rnf :: ProvideAnomalyFeedback -> ()
rnf ProvideAnomalyFeedback' {Text
AnomalyFeedbackType
feedback :: AnomalyFeedbackType
anomalyId :: Text
$sel:feedback:ProvideAnomalyFeedback' :: ProvideAnomalyFeedback -> AnomalyFeedbackType
$sel:anomalyId:ProvideAnomalyFeedback' :: ProvideAnomalyFeedback -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
anomalyId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AnomalyFeedbackType
feedback
instance Data.ToHeaders ProvideAnomalyFeedback where
toHeaders :: ProvideAnomalyFeedback -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSInsightsIndexService.ProvideAnomalyFeedback" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON ProvideAnomalyFeedback where
toJSON :: ProvideAnomalyFeedback -> Value
toJSON ProvideAnomalyFeedback' {Text
AnomalyFeedbackType
feedback :: AnomalyFeedbackType
anomalyId :: Text
$sel:feedback:ProvideAnomalyFeedback' :: ProvideAnomalyFeedback -> AnomalyFeedbackType
$sel:anomalyId:ProvideAnomalyFeedback' :: ProvideAnomalyFeedback -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"AnomalyId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
anomalyId),
forall a. a -> Maybe a
Prelude.Just (Key
"Feedback" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= AnomalyFeedbackType
feedback)
]
)
instance Data.ToPath ProvideAnomalyFeedback where
toPath :: ProvideAnomalyFeedback -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery ProvideAnomalyFeedback where
toQuery :: ProvideAnomalyFeedback -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data ProvideAnomalyFeedbackResponse = ProvideAnomalyFeedbackResponse'
{
ProvideAnomalyFeedbackResponse -> Int
httpStatus :: Prelude.Int,
ProvideAnomalyFeedbackResponse -> Text
anomalyId :: Prelude.Text
}
deriving (ProvideAnomalyFeedbackResponse
-> ProvideAnomalyFeedbackResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProvideAnomalyFeedbackResponse
-> ProvideAnomalyFeedbackResponse -> Bool
$c/= :: ProvideAnomalyFeedbackResponse
-> ProvideAnomalyFeedbackResponse -> Bool
== :: ProvideAnomalyFeedbackResponse
-> ProvideAnomalyFeedbackResponse -> Bool
$c== :: ProvideAnomalyFeedbackResponse
-> ProvideAnomalyFeedbackResponse -> Bool
Prelude.Eq, ReadPrec [ProvideAnomalyFeedbackResponse]
ReadPrec ProvideAnomalyFeedbackResponse
Int -> ReadS ProvideAnomalyFeedbackResponse
ReadS [ProvideAnomalyFeedbackResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ProvideAnomalyFeedbackResponse]
$creadListPrec :: ReadPrec [ProvideAnomalyFeedbackResponse]
readPrec :: ReadPrec ProvideAnomalyFeedbackResponse
$creadPrec :: ReadPrec ProvideAnomalyFeedbackResponse
readList :: ReadS [ProvideAnomalyFeedbackResponse]
$creadList :: ReadS [ProvideAnomalyFeedbackResponse]
readsPrec :: Int -> ReadS ProvideAnomalyFeedbackResponse
$creadsPrec :: Int -> ReadS ProvideAnomalyFeedbackResponse
Prelude.Read, Int -> ProvideAnomalyFeedbackResponse -> ShowS
[ProvideAnomalyFeedbackResponse] -> ShowS
ProvideAnomalyFeedbackResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProvideAnomalyFeedbackResponse] -> ShowS
$cshowList :: [ProvideAnomalyFeedbackResponse] -> ShowS
show :: ProvideAnomalyFeedbackResponse -> String
$cshow :: ProvideAnomalyFeedbackResponse -> String
showsPrec :: Int -> ProvideAnomalyFeedbackResponse -> ShowS
$cshowsPrec :: Int -> ProvideAnomalyFeedbackResponse -> ShowS
Prelude.Show, forall x.
Rep ProvideAnomalyFeedbackResponse x
-> ProvideAnomalyFeedbackResponse
forall x.
ProvideAnomalyFeedbackResponse
-> Rep ProvideAnomalyFeedbackResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ProvideAnomalyFeedbackResponse x
-> ProvideAnomalyFeedbackResponse
$cfrom :: forall x.
ProvideAnomalyFeedbackResponse
-> Rep ProvideAnomalyFeedbackResponse x
Prelude.Generic)
newProvideAnomalyFeedbackResponse ::
Prelude.Int ->
Prelude.Text ->
ProvideAnomalyFeedbackResponse
newProvideAnomalyFeedbackResponse :: Int -> Text -> ProvideAnomalyFeedbackResponse
newProvideAnomalyFeedbackResponse
Int
pHttpStatus_
Text
pAnomalyId_ =
ProvideAnomalyFeedbackResponse'
{ $sel:httpStatus:ProvideAnomalyFeedbackResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:anomalyId:ProvideAnomalyFeedbackResponse' :: Text
anomalyId = Text
pAnomalyId_
}
provideAnomalyFeedbackResponse_httpStatus :: Lens.Lens' ProvideAnomalyFeedbackResponse Prelude.Int
provideAnomalyFeedbackResponse_httpStatus :: Lens' ProvideAnomalyFeedbackResponse Int
provideAnomalyFeedbackResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProvideAnomalyFeedbackResponse' {Int
httpStatus :: Int
$sel:httpStatus:ProvideAnomalyFeedbackResponse' :: ProvideAnomalyFeedbackResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ProvideAnomalyFeedbackResponse
s@ProvideAnomalyFeedbackResponse' {} Int
a -> ProvideAnomalyFeedbackResponse
s {$sel:httpStatus:ProvideAnomalyFeedbackResponse' :: Int
httpStatus = Int
a} :: ProvideAnomalyFeedbackResponse)
provideAnomalyFeedbackResponse_anomalyId :: Lens.Lens' ProvideAnomalyFeedbackResponse Prelude.Text
provideAnomalyFeedbackResponse_anomalyId :: Lens' ProvideAnomalyFeedbackResponse Text
provideAnomalyFeedbackResponse_anomalyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProvideAnomalyFeedbackResponse' {Text
anomalyId :: Text
$sel:anomalyId:ProvideAnomalyFeedbackResponse' :: ProvideAnomalyFeedbackResponse -> Text
anomalyId} -> Text
anomalyId) (\s :: ProvideAnomalyFeedbackResponse
s@ProvideAnomalyFeedbackResponse' {} Text
a -> ProvideAnomalyFeedbackResponse
s {$sel:anomalyId:ProvideAnomalyFeedbackResponse' :: Text
anomalyId = Text
a} :: ProvideAnomalyFeedbackResponse)
instance
Prelude.NFData
ProvideAnomalyFeedbackResponse
where
rnf :: ProvideAnomalyFeedbackResponse -> ()
rnf ProvideAnomalyFeedbackResponse' {Int
Text
anomalyId :: Text
httpStatus :: Int
$sel:anomalyId:ProvideAnomalyFeedbackResponse' :: ProvideAnomalyFeedbackResponse -> Text
$sel:httpStatus:ProvideAnomalyFeedbackResponse' :: ProvideAnomalyFeedbackResponse -> Int
..} =
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 Text
anomalyId