{-# 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.GetReservationPurchaseRecommendation
(
GetReservationPurchaseRecommendation (..),
newGetReservationPurchaseRecommendation,
getReservationPurchaseRecommendation_accountId,
getReservationPurchaseRecommendation_accountScope,
getReservationPurchaseRecommendation_filter,
getReservationPurchaseRecommendation_lookbackPeriodInDays,
getReservationPurchaseRecommendation_nextPageToken,
getReservationPurchaseRecommendation_pageSize,
getReservationPurchaseRecommendation_paymentOption,
getReservationPurchaseRecommendation_serviceSpecification,
getReservationPurchaseRecommendation_termInYears,
getReservationPurchaseRecommendation_service,
GetReservationPurchaseRecommendationResponse (..),
newGetReservationPurchaseRecommendationResponse,
getReservationPurchaseRecommendationResponse_metadata,
getReservationPurchaseRecommendationResponse_nextPageToken,
getReservationPurchaseRecommendationResponse_recommendations,
getReservationPurchaseRecommendationResponse_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 GetReservationPurchaseRecommendation = GetReservationPurchaseRecommendation'
{
GetReservationPurchaseRecommendation -> Maybe Text
accountId :: Prelude.Maybe Prelude.Text,
GetReservationPurchaseRecommendation -> Maybe AccountScope
accountScope :: Prelude.Maybe AccountScope,
GetReservationPurchaseRecommendation -> Maybe Expression
filter' :: Prelude.Maybe Expression,
GetReservationPurchaseRecommendation -> Maybe LookbackPeriodInDays
lookbackPeriodInDays :: Prelude.Maybe LookbackPeriodInDays,
GetReservationPurchaseRecommendation -> Maybe Text
nextPageToken :: Prelude.Maybe Prelude.Text,
GetReservationPurchaseRecommendation -> Maybe Natural
pageSize :: Prelude.Maybe Prelude.Natural,
GetReservationPurchaseRecommendation -> Maybe PaymentOption
paymentOption :: Prelude.Maybe PaymentOption,
GetReservationPurchaseRecommendation -> Maybe ServiceSpecification
serviceSpecification :: Prelude.Maybe ServiceSpecification,
GetReservationPurchaseRecommendation -> Maybe TermInYears
termInYears :: Prelude.Maybe TermInYears,
GetReservationPurchaseRecommendation -> Text
service :: Prelude.Text
}
deriving (GetReservationPurchaseRecommendation
-> GetReservationPurchaseRecommendation -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetReservationPurchaseRecommendation
-> GetReservationPurchaseRecommendation -> Bool
$c/= :: GetReservationPurchaseRecommendation
-> GetReservationPurchaseRecommendation -> Bool
== :: GetReservationPurchaseRecommendation
-> GetReservationPurchaseRecommendation -> Bool
$c== :: GetReservationPurchaseRecommendation
-> GetReservationPurchaseRecommendation -> Bool
Prelude.Eq, ReadPrec [GetReservationPurchaseRecommendation]
ReadPrec GetReservationPurchaseRecommendation
Int -> ReadS GetReservationPurchaseRecommendation
ReadS [GetReservationPurchaseRecommendation]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetReservationPurchaseRecommendation]
$creadListPrec :: ReadPrec [GetReservationPurchaseRecommendation]
readPrec :: ReadPrec GetReservationPurchaseRecommendation
$creadPrec :: ReadPrec GetReservationPurchaseRecommendation
readList :: ReadS [GetReservationPurchaseRecommendation]
$creadList :: ReadS [GetReservationPurchaseRecommendation]
readsPrec :: Int -> ReadS GetReservationPurchaseRecommendation
$creadsPrec :: Int -> ReadS GetReservationPurchaseRecommendation
Prelude.Read, Int -> GetReservationPurchaseRecommendation -> ShowS
[GetReservationPurchaseRecommendation] -> ShowS
GetReservationPurchaseRecommendation -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetReservationPurchaseRecommendation] -> ShowS
$cshowList :: [GetReservationPurchaseRecommendation] -> ShowS
show :: GetReservationPurchaseRecommendation -> String
$cshow :: GetReservationPurchaseRecommendation -> String
showsPrec :: Int -> GetReservationPurchaseRecommendation -> ShowS
$cshowsPrec :: Int -> GetReservationPurchaseRecommendation -> ShowS
Prelude.Show, forall x.
Rep GetReservationPurchaseRecommendation x
-> GetReservationPurchaseRecommendation
forall x.
GetReservationPurchaseRecommendation
-> Rep GetReservationPurchaseRecommendation x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetReservationPurchaseRecommendation x
-> GetReservationPurchaseRecommendation
$cfrom :: forall x.
GetReservationPurchaseRecommendation
-> Rep GetReservationPurchaseRecommendation x
Prelude.Generic)
newGetReservationPurchaseRecommendation ::
Prelude.Text ->
GetReservationPurchaseRecommendation
newGetReservationPurchaseRecommendation :: Text -> GetReservationPurchaseRecommendation
newGetReservationPurchaseRecommendation Text
pService_ =
GetReservationPurchaseRecommendation'
{ $sel:accountId:GetReservationPurchaseRecommendation' :: Maybe Text
accountId =
forall a. Maybe a
Prelude.Nothing,
$sel:accountScope:GetReservationPurchaseRecommendation' :: Maybe AccountScope
accountScope = forall a. Maybe a
Prelude.Nothing,
$sel:filter':GetReservationPurchaseRecommendation' :: Maybe Expression
filter' = forall a. Maybe a
Prelude.Nothing,
$sel:lookbackPeriodInDays:GetReservationPurchaseRecommendation' :: Maybe LookbackPeriodInDays
lookbackPeriodInDays =
forall a. Maybe a
Prelude.Nothing,
$sel:nextPageToken:GetReservationPurchaseRecommendation' :: Maybe Text
nextPageToken = forall a. Maybe a
Prelude.Nothing,
$sel:pageSize:GetReservationPurchaseRecommendation' :: Maybe Natural
pageSize = forall a. Maybe a
Prelude.Nothing,
$sel:paymentOption:GetReservationPurchaseRecommendation' :: Maybe PaymentOption
paymentOption = forall a. Maybe a
Prelude.Nothing,
$sel:serviceSpecification:GetReservationPurchaseRecommendation' :: Maybe ServiceSpecification
serviceSpecification =
forall a. Maybe a
Prelude.Nothing,
$sel:termInYears:GetReservationPurchaseRecommendation' :: Maybe TermInYears
termInYears = forall a. Maybe a
Prelude.Nothing,
$sel:service:GetReservationPurchaseRecommendation' :: Text
service = Text
pService_
}
getReservationPurchaseRecommendation_accountId :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe Prelude.Text)
getReservationPurchaseRecommendation_accountId :: Lens' GetReservationPurchaseRecommendation (Maybe Text)
getReservationPurchaseRecommendation_accountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendation' {Maybe Text
accountId :: Maybe Text
$sel:accountId:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Text
accountId} -> Maybe Text
accountId) (\s :: GetReservationPurchaseRecommendation
s@GetReservationPurchaseRecommendation' {} Maybe Text
a -> GetReservationPurchaseRecommendation
s {$sel:accountId:GetReservationPurchaseRecommendation' :: Maybe Text
accountId = Maybe Text
a} :: GetReservationPurchaseRecommendation)
getReservationPurchaseRecommendation_accountScope :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe AccountScope)
getReservationPurchaseRecommendation_accountScope :: Lens' GetReservationPurchaseRecommendation (Maybe AccountScope)
getReservationPurchaseRecommendation_accountScope = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendation' {Maybe AccountScope
accountScope :: Maybe AccountScope
$sel:accountScope:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe AccountScope
accountScope} -> Maybe AccountScope
accountScope) (\s :: GetReservationPurchaseRecommendation
s@GetReservationPurchaseRecommendation' {} Maybe AccountScope
a -> GetReservationPurchaseRecommendation
s {$sel:accountScope:GetReservationPurchaseRecommendation' :: Maybe AccountScope
accountScope = Maybe AccountScope
a} :: GetReservationPurchaseRecommendation)
getReservationPurchaseRecommendation_filter :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe Expression)
getReservationPurchaseRecommendation_filter :: Lens' GetReservationPurchaseRecommendation (Maybe Expression)
getReservationPurchaseRecommendation_filter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendation' {Maybe Expression
filter' :: Maybe Expression
$sel:filter':GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Expression
filter'} -> Maybe Expression
filter') (\s :: GetReservationPurchaseRecommendation
s@GetReservationPurchaseRecommendation' {} Maybe Expression
a -> GetReservationPurchaseRecommendation
s {$sel:filter':GetReservationPurchaseRecommendation' :: Maybe Expression
filter' = Maybe Expression
a} :: GetReservationPurchaseRecommendation)
getReservationPurchaseRecommendation_lookbackPeriodInDays :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe LookbackPeriodInDays)
getReservationPurchaseRecommendation_lookbackPeriodInDays :: Lens'
GetReservationPurchaseRecommendation (Maybe LookbackPeriodInDays)
getReservationPurchaseRecommendation_lookbackPeriodInDays = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendation' {Maybe LookbackPeriodInDays
lookbackPeriodInDays :: Maybe LookbackPeriodInDays
$sel:lookbackPeriodInDays:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe LookbackPeriodInDays
lookbackPeriodInDays} -> Maybe LookbackPeriodInDays
lookbackPeriodInDays) (\s :: GetReservationPurchaseRecommendation
s@GetReservationPurchaseRecommendation' {} Maybe LookbackPeriodInDays
a -> GetReservationPurchaseRecommendation
s {$sel:lookbackPeriodInDays:GetReservationPurchaseRecommendation' :: Maybe LookbackPeriodInDays
lookbackPeriodInDays = Maybe LookbackPeriodInDays
a} :: GetReservationPurchaseRecommendation)
getReservationPurchaseRecommendation_nextPageToken :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe Prelude.Text)
getReservationPurchaseRecommendation_nextPageToken :: Lens' GetReservationPurchaseRecommendation (Maybe Text)
getReservationPurchaseRecommendation_nextPageToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendation' {Maybe Text
nextPageToken :: Maybe Text
$sel:nextPageToken:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Text
nextPageToken} -> Maybe Text
nextPageToken) (\s :: GetReservationPurchaseRecommendation
s@GetReservationPurchaseRecommendation' {} Maybe Text
a -> GetReservationPurchaseRecommendation
s {$sel:nextPageToken:GetReservationPurchaseRecommendation' :: Maybe Text
nextPageToken = Maybe Text
a} :: GetReservationPurchaseRecommendation)
getReservationPurchaseRecommendation_pageSize :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe Prelude.Natural)
getReservationPurchaseRecommendation_pageSize :: Lens' GetReservationPurchaseRecommendation (Maybe Natural)
getReservationPurchaseRecommendation_pageSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendation' {Maybe Natural
pageSize :: Maybe Natural
$sel:pageSize:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Natural
pageSize} -> Maybe Natural
pageSize) (\s :: GetReservationPurchaseRecommendation
s@GetReservationPurchaseRecommendation' {} Maybe Natural
a -> GetReservationPurchaseRecommendation
s {$sel:pageSize:GetReservationPurchaseRecommendation' :: Maybe Natural
pageSize = Maybe Natural
a} :: GetReservationPurchaseRecommendation)
getReservationPurchaseRecommendation_paymentOption :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe PaymentOption)
getReservationPurchaseRecommendation_paymentOption :: Lens' GetReservationPurchaseRecommendation (Maybe PaymentOption)
getReservationPurchaseRecommendation_paymentOption = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendation' {Maybe PaymentOption
paymentOption :: Maybe PaymentOption
$sel:paymentOption:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe PaymentOption
paymentOption} -> Maybe PaymentOption
paymentOption) (\s :: GetReservationPurchaseRecommendation
s@GetReservationPurchaseRecommendation' {} Maybe PaymentOption
a -> GetReservationPurchaseRecommendation
s {$sel:paymentOption:GetReservationPurchaseRecommendation' :: Maybe PaymentOption
paymentOption = Maybe PaymentOption
a} :: GetReservationPurchaseRecommendation)
getReservationPurchaseRecommendation_serviceSpecification :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe ServiceSpecification)
getReservationPurchaseRecommendation_serviceSpecification :: Lens'
GetReservationPurchaseRecommendation (Maybe ServiceSpecification)
getReservationPurchaseRecommendation_serviceSpecification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendation' {Maybe ServiceSpecification
serviceSpecification :: Maybe ServiceSpecification
$sel:serviceSpecification:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe ServiceSpecification
serviceSpecification} -> Maybe ServiceSpecification
serviceSpecification) (\s :: GetReservationPurchaseRecommendation
s@GetReservationPurchaseRecommendation' {} Maybe ServiceSpecification
a -> GetReservationPurchaseRecommendation
s {$sel:serviceSpecification:GetReservationPurchaseRecommendation' :: Maybe ServiceSpecification
serviceSpecification = Maybe ServiceSpecification
a} :: GetReservationPurchaseRecommendation)
getReservationPurchaseRecommendation_termInYears :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe TermInYears)
getReservationPurchaseRecommendation_termInYears :: Lens' GetReservationPurchaseRecommendation (Maybe TermInYears)
getReservationPurchaseRecommendation_termInYears = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendation' {Maybe TermInYears
termInYears :: Maybe TermInYears
$sel:termInYears:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe TermInYears
termInYears} -> Maybe TermInYears
termInYears) (\s :: GetReservationPurchaseRecommendation
s@GetReservationPurchaseRecommendation' {} Maybe TermInYears
a -> GetReservationPurchaseRecommendation
s {$sel:termInYears:GetReservationPurchaseRecommendation' :: Maybe TermInYears
termInYears = Maybe TermInYears
a} :: GetReservationPurchaseRecommendation)
getReservationPurchaseRecommendation_service :: Lens.Lens' GetReservationPurchaseRecommendation Prelude.Text
getReservationPurchaseRecommendation_service :: Lens' GetReservationPurchaseRecommendation Text
getReservationPurchaseRecommendation_service = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendation' {Text
service :: Text
$sel:service:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Text
service} -> Text
service) (\s :: GetReservationPurchaseRecommendation
s@GetReservationPurchaseRecommendation' {} Text
a -> GetReservationPurchaseRecommendation
s {$sel:service:GetReservationPurchaseRecommendation' :: Text
service = Text
a} :: GetReservationPurchaseRecommendation)
instance
Core.AWSRequest
GetReservationPurchaseRecommendation
where
type
AWSResponse GetReservationPurchaseRecommendation =
GetReservationPurchaseRecommendationResponse
request :: (Service -> Service)
-> GetReservationPurchaseRecommendation
-> Request GetReservationPurchaseRecommendation
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 GetReservationPurchaseRecommendation
-> ClientResponse ClientBody
-> m (Either
Error
(ClientResponse
(AWSResponse GetReservationPurchaseRecommendation)))
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 ReservationPurchaseRecommendationMetadata
-> Maybe Text
-> Maybe [ReservationPurchaseRecommendation]
-> Int
-> GetReservationPurchaseRecommendationResponse
GetReservationPurchaseRecommendationResponse'
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
"Metadata")
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
"NextPageToken")
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
"Recommendations"
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))
)
instance
Prelude.Hashable
GetReservationPurchaseRecommendation
where
hashWithSalt :: Int -> GetReservationPurchaseRecommendation -> Int
hashWithSalt
Int
_salt
GetReservationPurchaseRecommendation' {Maybe Natural
Maybe Text
Maybe AccountScope
Maybe LookbackPeriodInDays
Maybe PaymentOption
Maybe ServiceSpecification
Maybe Expression
Maybe TermInYears
Text
service :: Text
termInYears :: Maybe TermInYears
serviceSpecification :: Maybe ServiceSpecification
paymentOption :: Maybe PaymentOption
pageSize :: Maybe Natural
nextPageToken :: Maybe Text
lookbackPeriodInDays :: Maybe LookbackPeriodInDays
filter' :: Maybe Expression
accountScope :: Maybe AccountScope
accountId :: Maybe Text
$sel:service:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Text
$sel:termInYears:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe TermInYears
$sel:serviceSpecification:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe ServiceSpecification
$sel:paymentOption:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe PaymentOption
$sel:pageSize:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Natural
$sel:nextPageToken:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Text
$sel:lookbackPeriodInDays:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe LookbackPeriodInDays
$sel:filter':GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Expression
$sel:accountScope:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe AccountScope
$sel:accountId:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
accountId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AccountScope
accountScope
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Expression
filter'
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LookbackPeriodInDays
lookbackPeriodInDays
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextPageToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
pageSize
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PaymentOption
paymentOption
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ServiceSpecification
serviceSpecification
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TermInYears
termInYears
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
service
instance
Prelude.NFData
GetReservationPurchaseRecommendation
where
rnf :: GetReservationPurchaseRecommendation -> ()
rnf GetReservationPurchaseRecommendation' {Maybe Natural
Maybe Text
Maybe AccountScope
Maybe LookbackPeriodInDays
Maybe PaymentOption
Maybe ServiceSpecification
Maybe Expression
Maybe TermInYears
Text
service :: Text
termInYears :: Maybe TermInYears
serviceSpecification :: Maybe ServiceSpecification
paymentOption :: Maybe PaymentOption
pageSize :: Maybe Natural
nextPageToken :: Maybe Text
lookbackPeriodInDays :: Maybe LookbackPeriodInDays
filter' :: Maybe Expression
accountScope :: Maybe AccountScope
accountId :: Maybe Text
$sel:service:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Text
$sel:termInYears:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe TermInYears
$sel:serviceSpecification:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe ServiceSpecification
$sel:paymentOption:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe PaymentOption
$sel:pageSize:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Natural
$sel:nextPageToken:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Text
$sel:lookbackPeriodInDays:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe LookbackPeriodInDays
$sel:filter':GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Expression
$sel:accountScope:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe AccountScope
$sel:accountId:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
accountId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AccountScope
accountScope
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Expression
filter'
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LookbackPeriodInDays
lookbackPeriodInDays
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextPageToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
pageSize
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PaymentOption
paymentOption
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ServiceSpecification
serviceSpecification
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TermInYears
termInYears
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
service
instance
Data.ToHeaders
GetReservationPurchaseRecommendation
where
toHeaders :: GetReservationPurchaseRecommendation -> 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.GetReservationPurchaseRecommendation" ::
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
GetReservationPurchaseRecommendation
where
toJSON :: GetReservationPurchaseRecommendation -> Value
toJSON GetReservationPurchaseRecommendation' {Maybe Natural
Maybe Text
Maybe AccountScope
Maybe LookbackPeriodInDays
Maybe PaymentOption
Maybe ServiceSpecification
Maybe Expression
Maybe TermInYears
Text
service :: Text
termInYears :: Maybe TermInYears
serviceSpecification :: Maybe ServiceSpecification
paymentOption :: Maybe PaymentOption
pageSize :: Maybe Natural
nextPageToken :: Maybe Text
lookbackPeriodInDays :: Maybe LookbackPeriodInDays
filter' :: Maybe Expression
accountScope :: Maybe AccountScope
accountId :: Maybe Text
$sel:service:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Text
$sel:termInYears:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe TermInYears
$sel:serviceSpecification:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe ServiceSpecification
$sel:paymentOption:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe PaymentOption
$sel:pageSize:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Natural
$sel:nextPageToken:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Text
$sel:lookbackPeriodInDays:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe LookbackPeriodInDays
$sel:filter':GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Expression
$sel:accountScope:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe AccountScope
$sel:accountId:GetReservationPurchaseRecommendation' :: GetReservationPurchaseRecommendation -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"AccountId" 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
accountId,
(Key
"AccountScope" 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 AccountScope
accountScope,
(Key
"Filter" 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 Expression
filter',
(Key
"LookbackPeriodInDays" 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 LookbackPeriodInDays
lookbackPeriodInDays,
(Key
"NextPageToken" 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
nextPageToken,
(Key
"PageSize" 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 Natural
pageSize,
(Key
"PaymentOption" 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 PaymentOption
paymentOption,
(Key
"ServiceSpecification" 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 ServiceSpecification
serviceSpecification,
(Key
"TermInYears" 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 TermInYears
termInYears,
forall a. a -> Maybe a
Prelude.Just (Key
"Service" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
service)
]
)
instance
Data.ToPath
GetReservationPurchaseRecommendation
where
toPath :: GetReservationPurchaseRecommendation -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance
Data.ToQuery
GetReservationPurchaseRecommendation
where
toQuery :: GetReservationPurchaseRecommendation -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetReservationPurchaseRecommendationResponse = GetReservationPurchaseRecommendationResponse'
{
GetReservationPurchaseRecommendationResponse
-> Maybe ReservationPurchaseRecommendationMetadata
metadata :: Prelude.Maybe ReservationPurchaseRecommendationMetadata,
GetReservationPurchaseRecommendationResponse -> Maybe Text
nextPageToken :: Prelude.Maybe Prelude.Text,
GetReservationPurchaseRecommendationResponse
-> Maybe [ReservationPurchaseRecommendation]
recommendations :: Prelude.Maybe [ReservationPurchaseRecommendation],
GetReservationPurchaseRecommendationResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetReservationPurchaseRecommendationResponse
-> GetReservationPurchaseRecommendationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetReservationPurchaseRecommendationResponse
-> GetReservationPurchaseRecommendationResponse -> Bool
$c/= :: GetReservationPurchaseRecommendationResponse
-> GetReservationPurchaseRecommendationResponse -> Bool
== :: GetReservationPurchaseRecommendationResponse
-> GetReservationPurchaseRecommendationResponse -> Bool
$c== :: GetReservationPurchaseRecommendationResponse
-> GetReservationPurchaseRecommendationResponse -> Bool
Prelude.Eq, ReadPrec [GetReservationPurchaseRecommendationResponse]
ReadPrec GetReservationPurchaseRecommendationResponse
Int -> ReadS GetReservationPurchaseRecommendationResponse
ReadS [GetReservationPurchaseRecommendationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetReservationPurchaseRecommendationResponse]
$creadListPrec :: ReadPrec [GetReservationPurchaseRecommendationResponse]
readPrec :: ReadPrec GetReservationPurchaseRecommendationResponse
$creadPrec :: ReadPrec GetReservationPurchaseRecommendationResponse
readList :: ReadS [GetReservationPurchaseRecommendationResponse]
$creadList :: ReadS [GetReservationPurchaseRecommendationResponse]
readsPrec :: Int -> ReadS GetReservationPurchaseRecommendationResponse
$creadsPrec :: Int -> ReadS GetReservationPurchaseRecommendationResponse
Prelude.Read, Int -> GetReservationPurchaseRecommendationResponse -> ShowS
[GetReservationPurchaseRecommendationResponse] -> ShowS
GetReservationPurchaseRecommendationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetReservationPurchaseRecommendationResponse] -> ShowS
$cshowList :: [GetReservationPurchaseRecommendationResponse] -> ShowS
show :: GetReservationPurchaseRecommendationResponse -> String
$cshow :: GetReservationPurchaseRecommendationResponse -> String
showsPrec :: Int -> GetReservationPurchaseRecommendationResponse -> ShowS
$cshowsPrec :: Int -> GetReservationPurchaseRecommendationResponse -> ShowS
Prelude.Show, forall x.
Rep GetReservationPurchaseRecommendationResponse x
-> GetReservationPurchaseRecommendationResponse
forall x.
GetReservationPurchaseRecommendationResponse
-> Rep GetReservationPurchaseRecommendationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetReservationPurchaseRecommendationResponse x
-> GetReservationPurchaseRecommendationResponse
$cfrom :: forall x.
GetReservationPurchaseRecommendationResponse
-> Rep GetReservationPurchaseRecommendationResponse x
Prelude.Generic)
newGetReservationPurchaseRecommendationResponse ::
Prelude.Int ->
GetReservationPurchaseRecommendationResponse
newGetReservationPurchaseRecommendationResponse :: Int -> GetReservationPurchaseRecommendationResponse
newGetReservationPurchaseRecommendationResponse
Int
pHttpStatus_ =
GetReservationPurchaseRecommendationResponse'
{ $sel:metadata:GetReservationPurchaseRecommendationResponse' :: Maybe ReservationPurchaseRecommendationMetadata
metadata =
forall a. Maybe a
Prelude.Nothing,
$sel:nextPageToken:GetReservationPurchaseRecommendationResponse' :: Maybe Text
nextPageToken =
forall a. Maybe a
Prelude.Nothing,
$sel:recommendations:GetReservationPurchaseRecommendationResponse' :: Maybe [ReservationPurchaseRecommendation]
recommendations =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetReservationPurchaseRecommendationResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getReservationPurchaseRecommendationResponse_metadata :: Lens.Lens' GetReservationPurchaseRecommendationResponse (Prelude.Maybe ReservationPurchaseRecommendationMetadata)
getReservationPurchaseRecommendationResponse_metadata :: Lens'
GetReservationPurchaseRecommendationResponse
(Maybe ReservationPurchaseRecommendationMetadata)
getReservationPurchaseRecommendationResponse_metadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendationResponse' {Maybe ReservationPurchaseRecommendationMetadata
metadata :: Maybe ReservationPurchaseRecommendationMetadata
$sel:metadata:GetReservationPurchaseRecommendationResponse' :: GetReservationPurchaseRecommendationResponse
-> Maybe ReservationPurchaseRecommendationMetadata
metadata} -> Maybe ReservationPurchaseRecommendationMetadata
metadata) (\s :: GetReservationPurchaseRecommendationResponse
s@GetReservationPurchaseRecommendationResponse' {} Maybe ReservationPurchaseRecommendationMetadata
a -> GetReservationPurchaseRecommendationResponse
s {$sel:metadata:GetReservationPurchaseRecommendationResponse' :: Maybe ReservationPurchaseRecommendationMetadata
metadata = Maybe ReservationPurchaseRecommendationMetadata
a} :: GetReservationPurchaseRecommendationResponse)
getReservationPurchaseRecommendationResponse_nextPageToken :: Lens.Lens' GetReservationPurchaseRecommendationResponse (Prelude.Maybe Prelude.Text)
getReservationPurchaseRecommendationResponse_nextPageToken :: Lens' GetReservationPurchaseRecommendationResponse (Maybe Text)
getReservationPurchaseRecommendationResponse_nextPageToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendationResponse' {Maybe Text
nextPageToken :: Maybe Text
$sel:nextPageToken:GetReservationPurchaseRecommendationResponse' :: GetReservationPurchaseRecommendationResponse -> Maybe Text
nextPageToken} -> Maybe Text
nextPageToken) (\s :: GetReservationPurchaseRecommendationResponse
s@GetReservationPurchaseRecommendationResponse' {} Maybe Text
a -> GetReservationPurchaseRecommendationResponse
s {$sel:nextPageToken:GetReservationPurchaseRecommendationResponse' :: Maybe Text
nextPageToken = Maybe Text
a} :: GetReservationPurchaseRecommendationResponse)
getReservationPurchaseRecommendationResponse_recommendations :: Lens.Lens' GetReservationPurchaseRecommendationResponse (Prelude.Maybe [ReservationPurchaseRecommendation])
getReservationPurchaseRecommendationResponse_recommendations :: Lens'
GetReservationPurchaseRecommendationResponse
(Maybe [ReservationPurchaseRecommendation])
getReservationPurchaseRecommendationResponse_recommendations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendationResponse' {Maybe [ReservationPurchaseRecommendation]
recommendations :: Maybe [ReservationPurchaseRecommendation]
$sel:recommendations:GetReservationPurchaseRecommendationResponse' :: GetReservationPurchaseRecommendationResponse
-> Maybe [ReservationPurchaseRecommendation]
recommendations} -> Maybe [ReservationPurchaseRecommendation]
recommendations) (\s :: GetReservationPurchaseRecommendationResponse
s@GetReservationPurchaseRecommendationResponse' {} Maybe [ReservationPurchaseRecommendation]
a -> GetReservationPurchaseRecommendationResponse
s {$sel:recommendations:GetReservationPurchaseRecommendationResponse' :: Maybe [ReservationPurchaseRecommendation]
recommendations = Maybe [ReservationPurchaseRecommendation]
a} :: GetReservationPurchaseRecommendationResponse) 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
getReservationPurchaseRecommendationResponse_httpStatus :: Lens.Lens' GetReservationPurchaseRecommendationResponse Prelude.Int
getReservationPurchaseRecommendationResponse_httpStatus :: Lens' GetReservationPurchaseRecommendationResponse Int
getReservationPurchaseRecommendationResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetReservationPurchaseRecommendationResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetReservationPurchaseRecommendationResponse' :: GetReservationPurchaseRecommendationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetReservationPurchaseRecommendationResponse
s@GetReservationPurchaseRecommendationResponse' {} Int
a -> GetReservationPurchaseRecommendationResponse
s {$sel:httpStatus:GetReservationPurchaseRecommendationResponse' :: Int
httpStatus = Int
a} :: GetReservationPurchaseRecommendationResponse)
instance
Prelude.NFData
GetReservationPurchaseRecommendationResponse
where
rnf :: GetReservationPurchaseRecommendationResponse -> ()
rnf GetReservationPurchaseRecommendationResponse' {Int
Maybe [ReservationPurchaseRecommendation]
Maybe Text
Maybe ReservationPurchaseRecommendationMetadata
httpStatus :: Int
recommendations :: Maybe [ReservationPurchaseRecommendation]
nextPageToken :: Maybe Text
metadata :: Maybe ReservationPurchaseRecommendationMetadata
$sel:httpStatus:GetReservationPurchaseRecommendationResponse' :: GetReservationPurchaseRecommendationResponse -> Int
$sel:recommendations:GetReservationPurchaseRecommendationResponse' :: GetReservationPurchaseRecommendationResponse
-> Maybe [ReservationPurchaseRecommendation]
$sel:nextPageToken:GetReservationPurchaseRecommendationResponse' :: GetReservationPurchaseRecommendationResponse -> Maybe Text
$sel:metadata:GetReservationPurchaseRecommendationResponse' :: GetReservationPurchaseRecommendationResponse
-> Maybe ReservationPurchaseRecommendationMetadata
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ReservationPurchaseRecommendationMetadata
metadata
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextPageToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ReservationPurchaseRecommendation]
recommendations
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus