{-# 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.StartSavingsPlansPurchaseRecommendationGeneration
(
StartSavingsPlansPurchaseRecommendationGeneration (..),
newStartSavingsPlansPurchaseRecommendationGeneration,
StartSavingsPlansPurchaseRecommendationGenerationResponse (..),
newStartSavingsPlansPurchaseRecommendationGenerationResponse,
startSavingsPlansPurchaseRecommendationGenerationResponse_estimatedCompletionTime,
startSavingsPlansPurchaseRecommendationGenerationResponse_generationStartedTime,
startSavingsPlansPurchaseRecommendationGenerationResponse_recommendationId,
startSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus,
)
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 StartSavingsPlansPurchaseRecommendationGeneration = StartSavingsPlansPurchaseRecommendationGeneration'
{
}
deriving (StartSavingsPlansPurchaseRecommendationGeneration
-> StartSavingsPlansPurchaseRecommendationGeneration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartSavingsPlansPurchaseRecommendationGeneration
-> StartSavingsPlansPurchaseRecommendationGeneration -> Bool
$c/= :: StartSavingsPlansPurchaseRecommendationGeneration
-> StartSavingsPlansPurchaseRecommendationGeneration -> Bool
== :: StartSavingsPlansPurchaseRecommendationGeneration
-> StartSavingsPlansPurchaseRecommendationGeneration -> Bool
$c== :: StartSavingsPlansPurchaseRecommendationGeneration
-> StartSavingsPlansPurchaseRecommendationGeneration -> Bool
Prelude.Eq, ReadPrec [StartSavingsPlansPurchaseRecommendationGeneration]
ReadPrec StartSavingsPlansPurchaseRecommendationGeneration
Int -> ReadS StartSavingsPlansPurchaseRecommendationGeneration
ReadS [StartSavingsPlansPurchaseRecommendationGeneration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartSavingsPlansPurchaseRecommendationGeneration]
$creadListPrec :: ReadPrec [StartSavingsPlansPurchaseRecommendationGeneration]
readPrec :: ReadPrec StartSavingsPlansPurchaseRecommendationGeneration
$creadPrec :: ReadPrec StartSavingsPlansPurchaseRecommendationGeneration
readList :: ReadS [StartSavingsPlansPurchaseRecommendationGeneration]
$creadList :: ReadS [StartSavingsPlansPurchaseRecommendationGeneration]
readsPrec :: Int -> ReadS StartSavingsPlansPurchaseRecommendationGeneration
$creadsPrec :: Int -> ReadS StartSavingsPlansPurchaseRecommendationGeneration
Prelude.Read, Int -> StartSavingsPlansPurchaseRecommendationGeneration -> ShowS
[StartSavingsPlansPurchaseRecommendationGeneration] -> ShowS
StartSavingsPlansPurchaseRecommendationGeneration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartSavingsPlansPurchaseRecommendationGeneration] -> ShowS
$cshowList :: [StartSavingsPlansPurchaseRecommendationGeneration] -> ShowS
show :: StartSavingsPlansPurchaseRecommendationGeneration -> String
$cshow :: StartSavingsPlansPurchaseRecommendationGeneration -> String
showsPrec :: Int -> StartSavingsPlansPurchaseRecommendationGeneration -> ShowS
$cshowsPrec :: Int -> StartSavingsPlansPurchaseRecommendationGeneration -> ShowS
Prelude.Show, forall x.
Rep StartSavingsPlansPurchaseRecommendationGeneration x
-> StartSavingsPlansPurchaseRecommendationGeneration
forall x.
StartSavingsPlansPurchaseRecommendationGeneration
-> Rep StartSavingsPlansPurchaseRecommendationGeneration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep StartSavingsPlansPurchaseRecommendationGeneration x
-> StartSavingsPlansPurchaseRecommendationGeneration
$cfrom :: forall x.
StartSavingsPlansPurchaseRecommendationGeneration
-> Rep StartSavingsPlansPurchaseRecommendationGeneration x
Prelude.Generic)
newStartSavingsPlansPurchaseRecommendationGeneration ::
StartSavingsPlansPurchaseRecommendationGeneration
newStartSavingsPlansPurchaseRecommendationGeneration :: StartSavingsPlansPurchaseRecommendationGeneration
newStartSavingsPlansPurchaseRecommendationGeneration =
StartSavingsPlansPurchaseRecommendationGeneration
StartSavingsPlansPurchaseRecommendationGeneration'
instance
Core.AWSRequest
StartSavingsPlansPurchaseRecommendationGeneration
where
type
AWSResponse
StartSavingsPlansPurchaseRecommendationGeneration =
StartSavingsPlansPurchaseRecommendationGenerationResponse
request :: (Service -> Service)
-> StartSavingsPlansPurchaseRecommendationGeneration
-> Request StartSavingsPlansPurchaseRecommendationGeneration
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 StartSavingsPlansPurchaseRecommendationGeneration
-> ClientResponse ClientBody
-> m (Either
Error
(ClientResponse
(AWSResponse StartSavingsPlansPurchaseRecommendationGeneration)))
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
-> Maybe Text
-> Maybe Text
-> Int
-> StartSavingsPlansPurchaseRecommendationGenerationResponse
StartSavingsPlansPurchaseRecommendationGenerationResponse'
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
"EstimatedCompletionTime")
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
"GenerationStartedTime")
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
"RecommendationId")
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))
)
instance
Prelude.Hashable
StartSavingsPlansPurchaseRecommendationGeneration
where
hashWithSalt :: Int -> StartSavingsPlansPurchaseRecommendationGeneration -> Int
hashWithSalt Int
_salt StartSavingsPlansPurchaseRecommendationGeneration
_ =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ()
instance
Prelude.NFData
StartSavingsPlansPurchaseRecommendationGeneration
where
rnf :: StartSavingsPlansPurchaseRecommendationGeneration -> ()
rnf StartSavingsPlansPurchaseRecommendationGeneration
_ = ()
instance
Data.ToHeaders
StartSavingsPlansPurchaseRecommendationGeneration
where
toHeaders :: StartSavingsPlansPurchaseRecommendationGeneration
-> 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.StartSavingsPlansPurchaseRecommendationGeneration" ::
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
StartSavingsPlansPurchaseRecommendationGeneration
where
toJSON :: StartSavingsPlansPurchaseRecommendationGeneration -> Value
toJSON = forall a b. a -> b -> a
Prelude.const (Object -> Value
Data.Object forall a. Monoid a => a
Prelude.mempty)
instance
Data.ToPath
StartSavingsPlansPurchaseRecommendationGeneration
where
toPath :: StartSavingsPlansPurchaseRecommendationGeneration -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance
Data.ToQuery
StartSavingsPlansPurchaseRecommendationGeneration
where
toQuery :: StartSavingsPlansPurchaseRecommendationGeneration -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data StartSavingsPlansPurchaseRecommendationGenerationResponse = StartSavingsPlansPurchaseRecommendationGenerationResponse'
{
StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Maybe Text
estimatedCompletionTime :: Prelude.Maybe Prelude.Text,
StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Maybe Text
generationStartedTime :: Prelude.Maybe Prelude.Text,
StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Maybe Text
recommendationId :: Prelude.Maybe Prelude.Text,
StartSavingsPlansPurchaseRecommendationGenerationResponse -> Int
httpStatus :: Prelude.Int
}
deriving (StartSavingsPlansPurchaseRecommendationGenerationResponse
-> StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartSavingsPlansPurchaseRecommendationGenerationResponse
-> StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Bool
$c/= :: StartSavingsPlansPurchaseRecommendationGenerationResponse
-> StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Bool
== :: StartSavingsPlansPurchaseRecommendationGenerationResponse
-> StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Bool
$c== :: StartSavingsPlansPurchaseRecommendationGenerationResponse
-> StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Bool
Prelude.Eq, ReadPrec
[StartSavingsPlansPurchaseRecommendationGenerationResponse]
ReadPrec StartSavingsPlansPurchaseRecommendationGenerationResponse
Int
-> ReadS StartSavingsPlansPurchaseRecommendationGenerationResponse
ReadS [StartSavingsPlansPurchaseRecommendationGenerationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec
[StartSavingsPlansPurchaseRecommendationGenerationResponse]
$creadListPrec :: ReadPrec
[StartSavingsPlansPurchaseRecommendationGenerationResponse]
readPrec :: ReadPrec StartSavingsPlansPurchaseRecommendationGenerationResponse
$creadPrec :: ReadPrec StartSavingsPlansPurchaseRecommendationGenerationResponse
readList :: ReadS [StartSavingsPlansPurchaseRecommendationGenerationResponse]
$creadList :: ReadS [StartSavingsPlansPurchaseRecommendationGenerationResponse]
readsPrec :: Int
-> ReadS StartSavingsPlansPurchaseRecommendationGenerationResponse
$creadsPrec :: Int
-> ReadS StartSavingsPlansPurchaseRecommendationGenerationResponse
Prelude.Read, Int
-> StartSavingsPlansPurchaseRecommendationGenerationResponse
-> ShowS
[StartSavingsPlansPurchaseRecommendationGenerationResponse]
-> ShowS
StartSavingsPlansPurchaseRecommendationGenerationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartSavingsPlansPurchaseRecommendationGenerationResponse]
-> ShowS
$cshowList :: [StartSavingsPlansPurchaseRecommendationGenerationResponse]
-> ShowS
show :: StartSavingsPlansPurchaseRecommendationGenerationResponse -> String
$cshow :: StartSavingsPlansPurchaseRecommendationGenerationResponse -> String
showsPrec :: Int
-> StartSavingsPlansPurchaseRecommendationGenerationResponse
-> ShowS
$cshowsPrec :: Int
-> StartSavingsPlansPurchaseRecommendationGenerationResponse
-> ShowS
Prelude.Show, forall x.
Rep StartSavingsPlansPurchaseRecommendationGenerationResponse x
-> StartSavingsPlansPurchaseRecommendationGenerationResponse
forall x.
StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Rep StartSavingsPlansPurchaseRecommendationGenerationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep StartSavingsPlansPurchaseRecommendationGenerationResponse x
-> StartSavingsPlansPurchaseRecommendationGenerationResponse
$cfrom :: forall x.
StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Rep StartSavingsPlansPurchaseRecommendationGenerationResponse x
Prelude.Generic)
newStartSavingsPlansPurchaseRecommendationGenerationResponse ::
Prelude.Int ->
StartSavingsPlansPurchaseRecommendationGenerationResponse
newStartSavingsPlansPurchaseRecommendationGenerationResponse :: Int -> StartSavingsPlansPurchaseRecommendationGenerationResponse
newStartSavingsPlansPurchaseRecommendationGenerationResponse
Int
pHttpStatus_ =
StartSavingsPlansPurchaseRecommendationGenerationResponse'
{ $sel:estimatedCompletionTime:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: Maybe Text
estimatedCompletionTime =
forall a. Maybe a
Prelude.Nothing,
$sel:generationStartedTime:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: Maybe Text
generationStartedTime =
forall a. Maybe a
Prelude.Nothing,
$sel:recommendationId:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: Maybe Text
recommendationId =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: Int
httpStatus =
Int
pHttpStatus_
}
startSavingsPlansPurchaseRecommendationGenerationResponse_estimatedCompletionTime :: Lens.Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Prelude.Maybe Prelude.Text)
startSavingsPlansPurchaseRecommendationGenerationResponse_estimatedCompletionTime :: Lens'
StartSavingsPlansPurchaseRecommendationGenerationResponse
(Maybe Text)
startSavingsPlansPurchaseRecommendationGenerationResponse_estimatedCompletionTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartSavingsPlansPurchaseRecommendationGenerationResponse' {Maybe Text
estimatedCompletionTime :: Maybe Text
$sel:estimatedCompletionTime:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Maybe Text
estimatedCompletionTime} -> Maybe Text
estimatedCompletionTime) (\s :: StartSavingsPlansPurchaseRecommendationGenerationResponse
s@StartSavingsPlansPurchaseRecommendationGenerationResponse' {} Maybe Text
a -> StartSavingsPlansPurchaseRecommendationGenerationResponse
s {$sel:estimatedCompletionTime:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: Maybe Text
estimatedCompletionTime = Maybe Text
a} :: StartSavingsPlansPurchaseRecommendationGenerationResponse)
startSavingsPlansPurchaseRecommendationGenerationResponse_generationStartedTime :: Lens.Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Prelude.Maybe Prelude.Text)
startSavingsPlansPurchaseRecommendationGenerationResponse_generationStartedTime :: Lens'
StartSavingsPlansPurchaseRecommendationGenerationResponse
(Maybe Text)
startSavingsPlansPurchaseRecommendationGenerationResponse_generationStartedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartSavingsPlansPurchaseRecommendationGenerationResponse' {Maybe Text
generationStartedTime :: Maybe Text
$sel:generationStartedTime:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Maybe Text
generationStartedTime} -> Maybe Text
generationStartedTime) (\s :: StartSavingsPlansPurchaseRecommendationGenerationResponse
s@StartSavingsPlansPurchaseRecommendationGenerationResponse' {} Maybe Text
a -> StartSavingsPlansPurchaseRecommendationGenerationResponse
s {$sel:generationStartedTime:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: Maybe Text
generationStartedTime = Maybe Text
a} :: StartSavingsPlansPurchaseRecommendationGenerationResponse)
startSavingsPlansPurchaseRecommendationGenerationResponse_recommendationId :: Lens.Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Prelude.Maybe Prelude.Text)
startSavingsPlansPurchaseRecommendationGenerationResponse_recommendationId :: Lens'
StartSavingsPlansPurchaseRecommendationGenerationResponse
(Maybe Text)
startSavingsPlansPurchaseRecommendationGenerationResponse_recommendationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartSavingsPlansPurchaseRecommendationGenerationResponse' {Maybe Text
recommendationId :: Maybe Text
$sel:recommendationId:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Maybe Text
recommendationId} -> Maybe Text
recommendationId) (\s :: StartSavingsPlansPurchaseRecommendationGenerationResponse
s@StartSavingsPlansPurchaseRecommendationGenerationResponse' {} Maybe Text
a -> StartSavingsPlansPurchaseRecommendationGenerationResponse
s {$sel:recommendationId:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: Maybe Text
recommendationId = Maybe Text
a} :: StartSavingsPlansPurchaseRecommendationGenerationResponse)
startSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus :: Lens.Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse Prelude.Int
startSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus :: Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse Int
startSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartSavingsPlansPurchaseRecommendationGenerationResponse' {Int
httpStatus :: Int
$sel:httpStatus:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: StartSavingsPlansPurchaseRecommendationGenerationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: StartSavingsPlansPurchaseRecommendationGenerationResponse
s@StartSavingsPlansPurchaseRecommendationGenerationResponse' {} Int
a -> StartSavingsPlansPurchaseRecommendationGenerationResponse
s {$sel:httpStatus:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: Int
httpStatus = Int
a} :: StartSavingsPlansPurchaseRecommendationGenerationResponse)
instance
Prelude.NFData
StartSavingsPlansPurchaseRecommendationGenerationResponse
where
rnf :: StartSavingsPlansPurchaseRecommendationGenerationResponse -> ()
rnf
StartSavingsPlansPurchaseRecommendationGenerationResponse' {Int
Maybe Text
httpStatus :: Int
recommendationId :: Maybe Text
generationStartedTime :: Maybe Text
estimatedCompletionTime :: Maybe Text
$sel:httpStatus:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: StartSavingsPlansPurchaseRecommendationGenerationResponse -> Int
$sel:recommendationId:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Maybe Text
$sel:generationStartedTime:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Maybe Text
$sel:estimatedCompletionTime:StartSavingsPlansPurchaseRecommendationGenerationResponse' :: StartSavingsPlansPurchaseRecommendationGenerationResponse
-> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
estimatedCompletionTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
generationStartedTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
recommendationId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus