{-# 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.BillingConductor.CreatePricingRule
(
CreatePricingRule (..),
newCreatePricingRule,
createPricingRule_billingEntity,
createPricingRule_clientToken,
createPricingRule_description,
createPricingRule_modifierPercentage,
createPricingRule_service,
createPricingRule_tags,
createPricingRule_tiering,
createPricingRule_name,
createPricingRule_scope,
createPricingRule_type,
CreatePricingRuleResponse (..),
newCreatePricingRuleResponse,
createPricingRuleResponse_arn,
createPricingRuleResponse_httpStatus,
)
where
import Amazonka.BillingConductor.Types
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
data CreatePricingRule = CreatePricingRule'
{
CreatePricingRule -> Maybe Text
billingEntity :: Prelude.Maybe Prelude.Text,
CreatePricingRule -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
CreatePricingRule -> Maybe (Sensitive Text)
description :: Prelude.Maybe (Data.Sensitive Prelude.Text),
CreatePricingRule -> Maybe Double
modifierPercentage :: Prelude.Maybe Prelude.Double,
CreatePricingRule -> Maybe Text
service :: Prelude.Maybe Prelude.Text,
CreatePricingRule -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
CreatePricingRule -> Maybe CreateTieringInput
tiering :: Prelude.Maybe CreateTieringInput,
CreatePricingRule -> Sensitive Text
name :: Data.Sensitive Prelude.Text,
CreatePricingRule -> PricingRuleScope
scope :: PricingRuleScope,
CreatePricingRule -> PricingRuleType
type' :: PricingRuleType
}
deriving (CreatePricingRule -> CreatePricingRule -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreatePricingRule -> CreatePricingRule -> Bool
$c/= :: CreatePricingRule -> CreatePricingRule -> Bool
== :: CreatePricingRule -> CreatePricingRule -> Bool
$c== :: CreatePricingRule -> CreatePricingRule -> Bool
Prelude.Eq, Int -> CreatePricingRule -> ShowS
[CreatePricingRule] -> ShowS
CreatePricingRule -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreatePricingRule] -> ShowS
$cshowList :: [CreatePricingRule] -> ShowS
show :: CreatePricingRule -> String
$cshow :: CreatePricingRule -> String
showsPrec :: Int -> CreatePricingRule -> ShowS
$cshowsPrec :: Int -> CreatePricingRule -> ShowS
Prelude.Show, forall x. Rep CreatePricingRule x -> CreatePricingRule
forall x. CreatePricingRule -> Rep CreatePricingRule x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreatePricingRule x -> CreatePricingRule
$cfrom :: forall x. CreatePricingRule -> Rep CreatePricingRule x
Prelude.Generic)
newCreatePricingRule ::
Prelude.Text ->
PricingRuleScope ->
PricingRuleType ->
CreatePricingRule
newCreatePricingRule :: Text -> PricingRuleScope -> PricingRuleType -> CreatePricingRule
newCreatePricingRule Text
pName_ PricingRuleScope
pScope_ PricingRuleType
pType_ =
CreatePricingRule'
{ $sel:billingEntity:CreatePricingRule' :: Maybe Text
billingEntity = forall a. Maybe a
Prelude.Nothing,
$sel:clientToken:CreatePricingRule' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
$sel:description:CreatePricingRule' :: Maybe (Sensitive Text)
description = forall a. Maybe a
Prelude.Nothing,
$sel:modifierPercentage:CreatePricingRule' :: Maybe Double
modifierPercentage = forall a. Maybe a
Prelude.Nothing,
$sel:service:CreatePricingRule' :: Maybe Text
service = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreatePricingRule' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
$sel:tiering:CreatePricingRule' :: Maybe CreateTieringInput
tiering = forall a. Maybe a
Prelude.Nothing,
$sel:name:CreatePricingRule' :: Sensitive Text
name = forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pName_,
$sel:scope:CreatePricingRule' :: PricingRuleScope
scope = PricingRuleScope
pScope_,
$sel:type':CreatePricingRule' :: PricingRuleType
type' = PricingRuleType
pType_
}
createPricingRule_billingEntity :: Lens.Lens' CreatePricingRule (Prelude.Maybe Prelude.Text)
createPricingRule_billingEntity :: Lens' CreatePricingRule (Maybe Text)
createPricingRule_billingEntity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRule' {Maybe Text
billingEntity :: Maybe Text
$sel:billingEntity:CreatePricingRule' :: CreatePricingRule -> Maybe Text
billingEntity} -> Maybe Text
billingEntity) (\s :: CreatePricingRule
s@CreatePricingRule' {} Maybe Text
a -> CreatePricingRule
s {$sel:billingEntity:CreatePricingRule' :: Maybe Text
billingEntity = Maybe Text
a} :: CreatePricingRule)
createPricingRule_clientToken :: Lens.Lens' CreatePricingRule (Prelude.Maybe Prelude.Text)
createPricingRule_clientToken :: Lens' CreatePricingRule (Maybe Text)
createPricingRule_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRule' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreatePricingRule' :: CreatePricingRule -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreatePricingRule
s@CreatePricingRule' {} Maybe Text
a -> CreatePricingRule
s {$sel:clientToken:CreatePricingRule' :: Maybe Text
clientToken = Maybe Text
a} :: CreatePricingRule)
createPricingRule_description :: Lens.Lens' CreatePricingRule (Prelude.Maybe Prelude.Text)
createPricingRule_description :: Lens' CreatePricingRule (Maybe Text)
createPricingRule_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRule' {Maybe (Sensitive Text)
description :: Maybe (Sensitive Text)
$sel:description:CreatePricingRule' :: CreatePricingRule -> Maybe (Sensitive Text)
description} -> Maybe (Sensitive Text)
description) (\s :: CreatePricingRule
s@CreatePricingRule' {} Maybe (Sensitive Text)
a -> CreatePricingRule
s {$sel:description:CreatePricingRule' :: Maybe (Sensitive Text)
description = Maybe (Sensitive Text)
a} :: CreatePricingRule) 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 a. Iso' (Sensitive a) a
Data._Sensitive
createPricingRule_modifierPercentage :: Lens.Lens' CreatePricingRule (Prelude.Maybe Prelude.Double)
createPricingRule_modifierPercentage :: Lens' CreatePricingRule (Maybe Double)
createPricingRule_modifierPercentage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRule' {Maybe Double
modifierPercentage :: Maybe Double
$sel:modifierPercentage:CreatePricingRule' :: CreatePricingRule -> Maybe Double
modifierPercentage} -> Maybe Double
modifierPercentage) (\s :: CreatePricingRule
s@CreatePricingRule' {} Maybe Double
a -> CreatePricingRule
s {$sel:modifierPercentage:CreatePricingRule' :: Maybe Double
modifierPercentage = Maybe Double
a} :: CreatePricingRule)
createPricingRule_service :: Lens.Lens' CreatePricingRule (Prelude.Maybe Prelude.Text)
createPricingRule_service :: Lens' CreatePricingRule (Maybe Text)
createPricingRule_service = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRule' {Maybe Text
service :: Maybe Text
$sel:service:CreatePricingRule' :: CreatePricingRule -> Maybe Text
service} -> Maybe Text
service) (\s :: CreatePricingRule
s@CreatePricingRule' {} Maybe Text
a -> CreatePricingRule
s {$sel:service:CreatePricingRule' :: Maybe Text
service = Maybe Text
a} :: CreatePricingRule)
createPricingRule_tags :: Lens.Lens' CreatePricingRule (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createPricingRule_tags :: Lens' CreatePricingRule (Maybe (HashMap Text Text))
createPricingRule_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRule' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:CreatePricingRule' :: CreatePricingRule -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: CreatePricingRule
s@CreatePricingRule' {} Maybe (HashMap Text Text)
a -> CreatePricingRule
s {$sel:tags:CreatePricingRule' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: CreatePricingRule) 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
createPricingRule_tiering :: Lens.Lens' CreatePricingRule (Prelude.Maybe CreateTieringInput)
createPricingRule_tiering :: Lens' CreatePricingRule (Maybe CreateTieringInput)
createPricingRule_tiering = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRule' {Maybe CreateTieringInput
tiering :: Maybe CreateTieringInput
$sel:tiering:CreatePricingRule' :: CreatePricingRule -> Maybe CreateTieringInput
tiering} -> Maybe CreateTieringInput
tiering) (\s :: CreatePricingRule
s@CreatePricingRule' {} Maybe CreateTieringInput
a -> CreatePricingRule
s {$sel:tiering:CreatePricingRule' :: Maybe CreateTieringInput
tiering = Maybe CreateTieringInput
a} :: CreatePricingRule)
createPricingRule_name :: Lens.Lens' CreatePricingRule Prelude.Text
createPricingRule_name :: Lens' CreatePricingRule Text
createPricingRule_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRule' {Sensitive Text
name :: Sensitive Text
$sel:name:CreatePricingRule' :: CreatePricingRule -> Sensitive Text
name} -> Sensitive Text
name) (\s :: CreatePricingRule
s@CreatePricingRule' {} Sensitive Text
a -> CreatePricingRule
s {$sel:name:CreatePricingRule' :: Sensitive Text
name = Sensitive Text
a} :: CreatePricingRule) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive
createPricingRule_scope :: Lens.Lens' CreatePricingRule PricingRuleScope
createPricingRule_scope :: Lens' CreatePricingRule PricingRuleScope
createPricingRule_scope = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRule' {PricingRuleScope
scope :: PricingRuleScope
$sel:scope:CreatePricingRule' :: CreatePricingRule -> PricingRuleScope
scope} -> PricingRuleScope
scope) (\s :: CreatePricingRule
s@CreatePricingRule' {} PricingRuleScope
a -> CreatePricingRule
s {$sel:scope:CreatePricingRule' :: PricingRuleScope
scope = PricingRuleScope
a} :: CreatePricingRule)
createPricingRule_type :: Lens.Lens' CreatePricingRule PricingRuleType
createPricingRule_type :: Lens' CreatePricingRule PricingRuleType
createPricingRule_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRule' {PricingRuleType
type' :: PricingRuleType
$sel:type':CreatePricingRule' :: CreatePricingRule -> PricingRuleType
type'} -> PricingRuleType
type') (\s :: CreatePricingRule
s@CreatePricingRule' {} PricingRuleType
a -> CreatePricingRule
s {$sel:type':CreatePricingRule' :: PricingRuleType
type' = PricingRuleType
a} :: CreatePricingRule)
instance Core.AWSRequest CreatePricingRule where
type
AWSResponse CreatePricingRule =
CreatePricingRuleResponse
request :: (Service -> Service)
-> CreatePricingRule -> Request CreatePricingRule
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 CreatePricingRule
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreatePricingRule)))
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 -> CreatePricingRuleResponse
CreatePricingRuleResponse'
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
"Arn")
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 CreatePricingRule where
hashWithSalt :: Int -> CreatePricingRule -> Int
hashWithSalt Int
_salt CreatePricingRule' {Maybe Double
Maybe Text
Maybe (HashMap Text Text)
Maybe (Sensitive Text)
Maybe CreateTieringInput
Sensitive Text
PricingRuleScope
PricingRuleType
type' :: PricingRuleType
scope :: PricingRuleScope
name :: Sensitive Text
tiering :: Maybe CreateTieringInput
tags :: Maybe (HashMap Text Text)
service :: Maybe Text
modifierPercentage :: Maybe Double
description :: Maybe (Sensitive Text)
clientToken :: Maybe Text
billingEntity :: Maybe Text
$sel:type':CreatePricingRule' :: CreatePricingRule -> PricingRuleType
$sel:scope:CreatePricingRule' :: CreatePricingRule -> PricingRuleScope
$sel:name:CreatePricingRule' :: CreatePricingRule -> Sensitive Text
$sel:tiering:CreatePricingRule' :: CreatePricingRule -> Maybe CreateTieringInput
$sel:tags:CreatePricingRule' :: CreatePricingRule -> Maybe (HashMap Text Text)
$sel:service:CreatePricingRule' :: CreatePricingRule -> Maybe Text
$sel:modifierPercentage:CreatePricingRule' :: CreatePricingRule -> Maybe Double
$sel:description:CreatePricingRule' :: CreatePricingRule -> Maybe (Sensitive Text)
$sel:clientToken:CreatePricingRule' :: CreatePricingRule -> Maybe Text
$sel:billingEntity:CreatePricingRule' :: CreatePricingRule -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
billingEntity
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
modifierPercentage
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
service
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CreateTieringInput
tiering
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` PricingRuleScope
scope
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` PricingRuleType
type'
instance Prelude.NFData CreatePricingRule where
rnf :: CreatePricingRule -> ()
rnf CreatePricingRule' {Maybe Double
Maybe Text
Maybe (HashMap Text Text)
Maybe (Sensitive Text)
Maybe CreateTieringInput
Sensitive Text
PricingRuleScope
PricingRuleType
type' :: PricingRuleType
scope :: PricingRuleScope
name :: Sensitive Text
tiering :: Maybe CreateTieringInput
tags :: Maybe (HashMap Text Text)
service :: Maybe Text
modifierPercentage :: Maybe Double
description :: Maybe (Sensitive Text)
clientToken :: Maybe Text
billingEntity :: Maybe Text
$sel:type':CreatePricingRule' :: CreatePricingRule -> PricingRuleType
$sel:scope:CreatePricingRule' :: CreatePricingRule -> PricingRuleScope
$sel:name:CreatePricingRule' :: CreatePricingRule -> Sensitive Text
$sel:tiering:CreatePricingRule' :: CreatePricingRule -> Maybe CreateTieringInput
$sel:tags:CreatePricingRule' :: CreatePricingRule -> Maybe (HashMap Text Text)
$sel:service:CreatePricingRule' :: CreatePricingRule -> Maybe Text
$sel:modifierPercentage:CreatePricingRule' :: CreatePricingRule -> Maybe Double
$sel:description:CreatePricingRule' :: CreatePricingRule -> Maybe (Sensitive Text)
$sel:clientToken:CreatePricingRule' :: CreatePricingRule -> Maybe Text
$sel:billingEntity:CreatePricingRule' :: CreatePricingRule -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
billingEntity
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Double
modifierPercentage
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
service
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CreateTieringInput
tiering
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf PricingRuleScope
scope
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf PricingRuleType
type'
instance Data.ToHeaders CreatePricingRule where
toHeaders :: CreatePricingRule -> ResponseHeaders
toHeaders CreatePricingRule' {Maybe Double
Maybe Text
Maybe (HashMap Text Text)
Maybe (Sensitive Text)
Maybe CreateTieringInput
Sensitive Text
PricingRuleScope
PricingRuleType
type' :: PricingRuleType
scope :: PricingRuleScope
name :: Sensitive Text
tiering :: Maybe CreateTieringInput
tags :: Maybe (HashMap Text Text)
service :: Maybe Text
modifierPercentage :: Maybe Double
description :: Maybe (Sensitive Text)
clientToken :: Maybe Text
billingEntity :: Maybe Text
$sel:type':CreatePricingRule' :: CreatePricingRule -> PricingRuleType
$sel:scope:CreatePricingRule' :: CreatePricingRule -> PricingRuleScope
$sel:name:CreatePricingRule' :: CreatePricingRule -> Sensitive Text
$sel:tiering:CreatePricingRule' :: CreatePricingRule -> Maybe CreateTieringInput
$sel:tags:CreatePricingRule' :: CreatePricingRule -> Maybe (HashMap Text Text)
$sel:service:CreatePricingRule' :: CreatePricingRule -> Maybe Text
$sel:modifierPercentage:CreatePricingRule' :: CreatePricingRule -> Maybe Double
$sel:description:CreatePricingRule' :: CreatePricingRule -> Maybe (Sensitive Text)
$sel:clientToken:CreatePricingRule' :: CreatePricingRule -> Maybe Text
$sel:billingEntity:CreatePricingRule' :: CreatePricingRule -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amzn-Client-Token" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe Text
clientToken,
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# (ByteString
"application/x-amz-json-1.1" :: Prelude.ByteString)
]
instance Data.ToJSON CreatePricingRule where
toJSON :: CreatePricingRule -> Value
toJSON CreatePricingRule' {Maybe Double
Maybe Text
Maybe (HashMap Text Text)
Maybe (Sensitive Text)
Maybe CreateTieringInput
Sensitive Text
PricingRuleScope
PricingRuleType
type' :: PricingRuleType
scope :: PricingRuleScope
name :: Sensitive Text
tiering :: Maybe CreateTieringInput
tags :: Maybe (HashMap Text Text)
service :: Maybe Text
modifierPercentage :: Maybe Double
description :: Maybe (Sensitive Text)
clientToken :: Maybe Text
billingEntity :: Maybe Text
$sel:type':CreatePricingRule' :: CreatePricingRule -> PricingRuleType
$sel:scope:CreatePricingRule' :: CreatePricingRule -> PricingRuleScope
$sel:name:CreatePricingRule' :: CreatePricingRule -> Sensitive Text
$sel:tiering:CreatePricingRule' :: CreatePricingRule -> Maybe CreateTieringInput
$sel:tags:CreatePricingRule' :: CreatePricingRule -> Maybe (HashMap Text Text)
$sel:service:CreatePricingRule' :: CreatePricingRule -> Maybe Text
$sel:modifierPercentage:CreatePricingRule' :: CreatePricingRule -> Maybe Double
$sel:description:CreatePricingRule' :: CreatePricingRule -> Maybe (Sensitive Text)
$sel:clientToken:CreatePricingRule' :: CreatePricingRule -> Maybe Text
$sel:billingEntity:CreatePricingRule' :: CreatePricingRule -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"BillingEntity" 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
billingEntity,
(Key
"Description" 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 (Sensitive Text)
description,
(Key
"ModifierPercentage" 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 Double
modifierPercentage,
(Key
"Service" 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
service,
(Key
"Tags" 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 (HashMap Text Text)
tags,
(Key
"Tiering" 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 CreateTieringInput
tiering,
forall a. a -> Maybe a
Prelude.Just (Key
"Name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
name),
forall a. a -> Maybe a
Prelude.Just (Key
"Scope" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= PricingRuleScope
scope),
forall a. a -> Maybe a
Prelude.Just (Key
"Type" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= PricingRuleType
type')
]
)
instance Data.ToPath CreatePricingRule where
toPath :: CreatePricingRule -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/create-pricing-rule"
instance Data.ToQuery CreatePricingRule where
toQuery :: CreatePricingRule -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreatePricingRuleResponse = CreatePricingRuleResponse'
{
CreatePricingRuleResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
CreatePricingRuleResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreatePricingRuleResponse -> CreatePricingRuleResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreatePricingRuleResponse -> CreatePricingRuleResponse -> Bool
$c/= :: CreatePricingRuleResponse -> CreatePricingRuleResponse -> Bool
== :: CreatePricingRuleResponse -> CreatePricingRuleResponse -> Bool
$c== :: CreatePricingRuleResponse -> CreatePricingRuleResponse -> Bool
Prelude.Eq, ReadPrec [CreatePricingRuleResponse]
ReadPrec CreatePricingRuleResponse
Int -> ReadS CreatePricingRuleResponse
ReadS [CreatePricingRuleResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreatePricingRuleResponse]
$creadListPrec :: ReadPrec [CreatePricingRuleResponse]
readPrec :: ReadPrec CreatePricingRuleResponse
$creadPrec :: ReadPrec CreatePricingRuleResponse
readList :: ReadS [CreatePricingRuleResponse]
$creadList :: ReadS [CreatePricingRuleResponse]
readsPrec :: Int -> ReadS CreatePricingRuleResponse
$creadsPrec :: Int -> ReadS CreatePricingRuleResponse
Prelude.Read, Int -> CreatePricingRuleResponse -> ShowS
[CreatePricingRuleResponse] -> ShowS
CreatePricingRuleResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreatePricingRuleResponse] -> ShowS
$cshowList :: [CreatePricingRuleResponse] -> ShowS
show :: CreatePricingRuleResponse -> String
$cshow :: CreatePricingRuleResponse -> String
showsPrec :: Int -> CreatePricingRuleResponse -> ShowS
$cshowsPrec :: Int -> CreatePricingRuleResponse -> ShowS
Prelude.Show, forall x.
Rep CreatePricingRuleResponse x -> CreatePricingRuleResponse
forall x.
CreatePricingRuleResponse -> Rep CreatePricingRuleResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreatePricingRuleResponse x -> CreatePricingRuleResponse
$cfrom :: forall x.
CreatePricingRuleResponse -> Rep CreatePricingRuleResponse x
Prelude.Generic)
newCreatePricingRuleResponse ::
Prelude.Int ->
CreatePricingRuleResponse
newCreatePricingRuleResponse :: Int -> CreatePricingRuleResponse
newCreatePricingRuleResponse Int
pHttpStatus_ =
CreatePricingRuleResponse'
{ $sel:arn:CreatePricingRuleResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreatePricingRuleResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createPricingRuleResponse_arn :: Lens.Lens' CreatePricingRuleResponse (Prelude.Maybe Prelude.Text)
createPricingRuleResponse_arn :: Lens' CreatePricingRuleResponse (Maybe Text)
createPricingRuleResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRuleResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:CreatePricingRuleResponse' :: CreatePricingRuleResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: CreatePricingRuleResponse
s@CreatePricingRuleResponse' {} Maybe Text
a -> CreatePricingRuleResponse
s {$sel:arn:CreatePricingRuleResponse' :: Maybe Text
arn = Maybe Text
a} :: CreatePricingRuleResponse)
createPricingRuleResponse_httpStatus :: Lens.Lens' CreatePricingRuleResponse Prelude.Int
createPricingRuleResponse_httpStatus :: Lens' CreatePricingRuleResponse Int
createPricingRuleResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreatePricingRuleResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreatePricingRuleResponse' :: CreatePricingRuleResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreatePricingRuleResponse
s@CreatePricingRuleResponse' {} Int
a -> CreatePricingRuleResponse
s {$sel:httpStatus:CreatePricingRuleResponse' :: Int
httpStatus = Int
a} :: CreatePricingRuleResponse)
instance Prelude.NFData CreatePricingRuleResponse where
rnf :: CreatePricingRuleResponse -> ()
rnf CreatePricingRuleResponse' {Int
Maybe Text
httpStatus :: Int
arn :: Maybe Text
$sel:httpStatus:CreatePricingRuleResponse' :: CreatePricingRuleResponse -> Int
$sel:arn:CreatePricingRuleResponse' :: CreatePricingRuleResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus