{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.BillingConductor.UpdatePricingRule
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates an existing pricing rule.
module Amazonka.BillingConductor.UpdatePricingRule
  ( -- * Creating a Request
    UpdatePricingRule (..),
    newUpdatePricingRule,

    -- * Request Lenses
    updatePricingRule_description,
    updatePricingRule_modifierPercentage,
    updatePricingRule_name,
    updatePricingRule_tiering,
    updatePricingRule_type,
    updatePricingRule_arn,

    -- * Destructuring the Response
    UpdatePricingRuleResponse (..),
    newUpdatePricingRuleResponse,

    -- * Response Lenses
    updatePricingRuleResponse_arn,
    updatePricingRuleResponse_associatedPricingPlanCount,
    updatePricingRuleResponse_billingEntity,
    updatePricingRuleResponse_description,
    updatePricingRuleResponse_lastModifiedTime,
    updatePricingRuleResponse_modifierPercentage,
    updatePricingRuleResponse_name,
    updatePricingRuleResponse_scope,
    updatePricingRuleResponse_service,
    updatePricingRuleResponse_tiering,
    updatePricingRuleResponse_type,
    updatePricingRuleResponse_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

-- | /See:/ 'newUpdatePricingRule' smart constructor.
data UpdatePricingRule = UpdatePricingRule'
  { -- | The new description for the pricing rule.
    UpdatePricingRule -> Maybe (Sensitive Text)
description :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The new modifier to show pricing plan rates as a percentage.
    UpdatePricingRule -> Maybe Double
modifierPercentage :: Prelude.Maybe Prelude.Double,
    -- | The new name of the pricing rule. The name must be unique to each
    -- pricing rule.
    UpdatePricingRule -> Maybe (Sensitive Text)
name :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The set of tiering configurations for the pricing rule.
    UpdatePricingRule -> Maybe UpdateTieringInput
tiering :: Prelude.Maybe UpdateTieringInput,
    -- | The new pricing rule type.
    UpdatePricingRule -> Maybe PricingRuleType
type' :: Prelude.Maybe PricingRuleType,
    -- | The Amazon Resource Name (ARN) of the pricing rule to update.
    UpdatePricingRule -> Text
arn :: Prelude.Text
  }
  deriving (UpdatePricingRule -> UpdatePricingRule -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdatePricingRule -> UpdatePricingRule -> Bool
$c/= :: UpdatePricingRule -> UpdatePricingRule -> Bool
== :: UpdatePricingRule -> UpdatePricingRule -> Bool
$c== :: UpdatePricingRule -> UpdatePricingRule -> Bool
Prelude.Eq, Int -> UpdatePricingRule -> ShowS
[UpdatePricingRule] -> ShowS
UpdatePricingRule -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdatePricingRule] -> ShowS
$cshowList :: [UpdatePricingRule] -> ShowS
show :: UpdatePricingRule -> String
$cshow :: UpdatePricingRule -> String
showsPrec :: Int -> UpdatePricingRule -> ShowS
$cshowsPrec :: Int -> UpdatePricingRule -> ShowS
Prelude.Show, forall x. Rep UpdatePricingRule x -> UpdatePricingRule
forall x. UpdatePricingRule -> Rep UpdatePricingRule x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdatePricingRule x -> UpdatePricingRule
$cfrom :: forall x. UpdatePricingRule -> Rep UpdatePricingRule x
Prelude.Generic)

-- |
-- Create a value of 'UpdatePricingRule' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'description', 'updatePricingRule_description' - The new description for the pricing rule.
--
-- 'modifierPercentage', 'updatePricingRule_modifierPercentage' - The new modifier to show pricing plan rates as a percentage.
--
-- 'name', 'updatePricingRule_name' - The new name of the pricing rule. The name must be unique to each
-- pricing rule.
--
-- 'tiering', 'updatePricingRule_tiering' - The set of tiering configurations for the pricing rule.
--
-- 'type'', 'updatePricingRule_type' - The new pricing rule type.
--
-- 'arn', 'updatePricingRule_arn' - The Amazon Resource Name (ARN) of the pricing rule to update.
newUpdatePricingRule ::
  -- | 'arn'
  Prelude.Text ->
  UpdatePricingRule
newUpdatePricingRule :: Text -> UpdatePricingRule
newUpdatePricingRule Text
pArn_ =
  UpdatePricingRule'
    { $sel:description:UpdatePricingRule' :: Maybe (Sensitive Text)
description = forall a. Maybe a
Prelude.Nothing,
      $sel:modifierPercentage:UpdatePricingRule' :: Maybe Double
modifierPercentage = forall a. Maybe a
Prelude.Nothing,
      $sel:name:UpdatePricingRule' :: Maybe (Sensitive Text)
name = forall a. Maybe a
Prelude.Nothing,
      $sel:tiering:UpdatePricingRule' :: Maybe UpdateTieringInput
tiering = forall a. Maybe a
Prelude.Nothing,
      $sel:type':UpdatePricingRule' :: Maybe PricingRuleType
type' = forall a. Maybe a
Prelude.Nothing,
      $sel:arn:UpdatePricingRule' :: Text
arn = Text
pArn_
    }

-- | The new description for the pricing rule.
updatePricingRule_description :: Lens.Lens' UpdatePricingRule (Prelude.Maybe Prelude.Text)
updatePricingRule_description :: Lens' UpdatePricingRule (Maybe Text)
updatePricingRule_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRule' {Maybe (Sensitive Text)
description :: Maybe (Sensitive Text)
$sel:description:UpdatePricingRule' :: UpdatePricingRule -> Maybe (Sensitive Text)
description} -> Maybe (Sensitive Text)
description) (\s :: UpdatePricingRule
s@UpdatePricingRule' {} Maybe (Sensitive Text)
a -> UpdatePricingRule
s {$sel:description:UpdatePricingRule' :: Maybe (Sensitive Text)
description = Maybe (Sensitive Text)
a} :: UpdatePricingRule) 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

-- | The new modifier to show pricing plan rates as a percentage.
updatePricingRule_modifierPercentage :: Lens.Lens' UpdatePricingRule (Prelude.Maybe Prelude.Double)
updatePricingRule_modifierPercentage :: Lens' UpdatePricingRule (Maybe Double)
updatePricingRule_modifierPercentage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRule' {Maybe Double
modifierPercentage :: Maybe Double
$sel:modifierPercentage:UpdatePricingRule' :: UpdatePricingRule -> Maybe Double
modifierPercentage} -> Maybe Double
modifierPercentage) (\s :: UpdatePricingRule
s@UpdatePricingRule' {} Maybe Double
a -> UpdatePricingRule
s {$sel:modifierPercentage:UpdatePricingRule' :: Maybe Double
modifierPercentage = Maybe Double
a} :: UpdatePricingRule)

-- | The new name of the pricing rule. The name must be unique to each
-- pricing rule.
updatePricingRule_name :: Lens.Lens' UpdatePricingRule (Prelude.Maybe Prelude.Text)
updatePricingRule_name :: Lens' UpdatePricingRule (Maybe Text)
updatePricingRule_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRule' {Maybe (Sensitive Text)
name :: Maybe (Sensitive Text)
$sel:name:UpdatePricingRule' :: UpdatePricingRule -> Maybe (Sensitive Text)
name} -> Maybe (Sensitive Text)
name) (\s :: UpdatePricingRule
s@UpdatePricingRule' {} Maybe (Sensitive Text)
a -> UpdatePricingRule
s {$sel:name:UpdatePricingRule' :: Maybe (Sensitive Text)
name = Maybe (Sensitive Text)
a} :: UpdatePricingRule) 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

-- | The set of tiering configurations for the pricing rule.
updatePricingRule_tiering :: Lens.Lens' UpdatePricingRule (Prelude.Maybe UpdateTieringInput)
updatePricingRule_tiering :: Lens' UpdatePricingRule (Maybe UpdateTieringInput)
updatePricingRule_tiering = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRule' {Maybe UpdateTieringInput
tiering :: Maybe UpdateTieringInput
$sel:tiering:UpdatePricingRule' :: UpdatePricingRule -> Maybe UpdateTieringInput
tiering} -> Maybe UpdateTieringInput
tiering) (\s :: UpdatePricingRule
s@UpdatePricingRule' {} Maybe UpdateTieringInput
a -> UpdatePricingRule
s {$sel:tiering:UpdatePricingRule' :: Maybe UpdateTieringInput
tiering = Maybe UpdateTieringInput
a} :: UpdatePricingRule)

-- | The new pricing rule type.
updatePricingRule_type :: Lens.Lens' UpdatePricingRule (Prelude.Maybe PricingRuleType)
updatePricingRule_type :: Lens' UpdatePricingRule (Maybe PricingRuleType)
updatePricingRule_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRule' {Maybe PricingRuleType
type' :: Maybe PricingRuleType
$sel:type':UpdatePricingRule' :: UpdatePricingRule -> Maybe PricingRuleType
type'} -> Maybe PricingRuleType
type') (\s :: UpdatePricingRule
s@UpdatePricingRule' {} Maybe PricingRuleType
a -> UpdatePricingRule
s {$sel:type':UpdatePricingRule' :: Maybe PricingRuleType
type' = Maybe PricingRuleType
a} :: UpdatePricingRule)

-- | The Amazon Resource Name (ARN) of the pricing rule to update.
updatePricingRule_arn :: Lens.Lens' UpdatePricingRule Prelude.Text
updatePricingRule_arn :: Lens' UpdatePricingRule Text
updatePricingRule_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRule' {Text
arn :: Text
$sel:arn:UpdatePricingRule' :: UpdatePricingRule -> Text
arn} -> Text
arn) (\s :: UpdatePricingRule
s@UpdatePricingRule' {} Text
a -> UpdatePricingRule
s {$sel:arn:UpdatePricingRule' :: Text
arn = Text
a} :: UpdatePricingRule)

instance Core.AWSRequest UpdatePricingRule where
  type
    AWSResponse UpdatePricingRule =
      UpdatePricingRuleResponse
  request :: (Service -> Service)
-> UpdatePricingRule -> Request UpdatePricingRule
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdatePricingRule
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdatePricingRule)))
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 Natural
-> Maybe Text
-> Maybe (Sensitive Text)
-> Maybe Integer
-> Maybe Double
-> Maybe (Sensitive Text)
-> Maybe PricingRuleScope
-> Maybe Text
-> Maybe UpdateTieringInput
-> Maybe PricingRuleType
-> Int
-> UpdatePricingRuleResponse
UpdatePricingRuleResponse'
            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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"AssociatedPricingPlanCount")
            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
"BillingEntity")
            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
"Description")
            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
"LastModifiedTime")
            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
"ModifierPercentage")
            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
"Name")
            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
"Scope")
            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
"Service")
            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
"Tiering")
            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
"Type")
            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 UpdatePricingRule where
  hashWithSalt :: Int -> UpdatePricingRule -> Int
hashWithSalt Int
_salt UpdatePricingRule' {Maybe Double
Maybe (Sensitive Text)
Maybe PricingRuleType
Maybe UpdateTieringInput
Text
arn :: Text
type' :: Maybe PricingRuleType
tiering :: Maybe UpdateTieringInput
name :: Maybe (Sensitive Text)
modifierPercentage :: Maybe Double
description :: Maybe (Sensitive Text)
$sel:arn:UpdatePricingRule' :: UpdatePricingRule -> Text
$sel:type':UpdatePricingRule' :: UpdatePricingRule -> Maybe PricingRuleType
$sel:tiering:UpdatePricingRule' :: UpdatePricingRule -> Maybe UpdateTieringInput
$sel:name:UpdatePricingRule' :: UpdatePricingRule -> Maybe (Sensitive Text)
$sel:modifierPercentage:UpdatePricingRule' :: UpdatePricingRule -> Maybe Double
$sel:description:UpdatePricingRule' :: UpdatePricingRule -> Maybe (Sensitive Text)
..} =
    Int
_salt
      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 (Sensitive Text)
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UpdateTieringInput
tiering
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PricingRuleType
type'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
arn

instance Prelude.NFData UpdatePricingRule where
  rnf :: UpdatePricingRule -> ()
rnf UpdatePricingRule' {Maybe Double
Maybe (Sensitive Text)
Maybe PricingRuleType
Maybe UpdateTieringInput
Text
arn :: Text
type' :: Maybe PricingRuleType
tiering :: Maybe UpdateTieringInput
name :: Maybe (Sensitive Text)
modifierPercentage :: Maybe Double
description :: Maybe (Sensitive Text)
$sel:arn:UpdatePricingRule' :: UpdatePricingRule -> Text
$sel:type':UpdatePricingRule' :: UpdatePricingRule -> Maybe PricingRuleType
$sel:tiering:UpdatePricingRule' :: UpdatePricingRule -> Maybe UpdateTieringInput
$sel:name:UpdatePricingRule' :: UpdatePricingRule -> Maybe (Sensitive Text)
$sel:modifierPercentage:UpdatePricingRule' :: UpdatePricingRule -> Maybe Double
$sel:description:UpdatePricingRule' :: UpdatePricingRule -> Maybe (Sensitive Text)
..} =
    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 (Sensitive Text)
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UpdateTieringInput
tiering
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PricingRuleType
type'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn

instance Data.ToHeaders UpdatePricingRule where
  toHeaders :: UpdatePricingRule -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON UpdatePricingRule where
  toJSON :: UpdatePricingRule -> Value
toJSON UpdatePricingRule' {Maybe Double
Maybe (Sensitive Text)
Maybe PricingRuleType
Maybe UpdateTieringInput
Text
arn :: Text
type' :: Maybe PricingRuleType
tiering :: Maybe UpdateTieringInput
name :: Maybe (Sensitive Text)
modifierPercentage :: Maybe Double
description :: Maybe (Sensitive Text)
$sel:arn:UpdatePricingRule' :: UpdatePricingRule -> Text
$sel:type':UpdatePricingRule' :: UpdatePricingRule -> Maybe PricingRuleType
$sel:tiering:UpdatePricingRule' :: UpdatePricingRule -> Maybe UpdateTieringInput
$sel:name:UpdatePricingRule' :: UpdatePricingRule -> Maybe (Sensitive Text)
$sel:modifierPercentage:UpdatePricingRule' :: UpdatePricingRule -> Maybe Double
$sel:description:UpdatePricingRule' :: UpdatePricingRule -> Maybe (Sensitive Text)
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (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
"Name" 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)
name,
            (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 UpdateTieringInput
tiering,
            (Key
"Type" 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 PricingRuleType
type',
            forall a. a -> Maybe a
Prelude.Just (Key
"Arn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
arn)
          ]
      )

instance Data.ToPath UpdatePricingRule where
  toPath :: UpdatePricingRule -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/update-pricing-rule"

instance Data.ToQuery UpdatePricingRule where
  toQuery :: UpdatePricingRule -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newUpdatePricingRuleResponse' smart constructor.
data UpdatePricingRuleResponse = UpdatePricingRuleResponse'
  { -- | The Amazon Resource Name (ARN) of the successfully updated pricing rule.
    UpdatePricingRuleResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The pricing plans count that this pricing rule is associated with.
    UpdatePricingRuleResponse -> Maybe Natural
associatedPricingPlanCount :: Prelude.Maybe Prelude.Natural,
    -- | The seller of services provided by Amazon Web Services, their
    -- affiliates, or third-party providers selling services via Amazon Web
    -- Services Marketplace.
    UpdatePricingRuleResponse -> Maybe Text
billingEntity :: Prelude.Maybe Prelude.Text,
    -- | The new description for the pricing rule.
    UpdatePricingRuleResponse -> Maybe (Sensitive Text)
description :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The most recent time the pricing rule was modified.
    UpdatePricingRuleResponse -> Maybe Integer
lastModifiedTime :: Prelude.Maybe Prelude.Integer,
    -- | The new modifier to show pricing plan rates as a percentage.
    UpdatePricingRuleResponse -> Maybe Double
modifierPercentage :: Prelude.Maybe Prelude.Double,
    -- | The new name of the pricing rule. The name must be unique to each
    -- pricing rule.
    UpdatePricingRuleResponse -> Maybe (Sensitive Text)
name :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The scope of pricing rule that indicates if it\'s globally applicable,
    -- or it\'s service-specific.
    UpdatePricingRuleResponse -> Maybe PricingRuleScope
scope :: Prelude.Maybe PricingRuleScope,
    -- | If the @Scope@ attribute is set to @SERVICE@, the attribute indicates
    -- which service the @PricingRule@ is applicable for.
    UpdatePricingRuleResponse -> Maybe Text
service :: Prelude.Maybe Prelude.Text,
    -- | The set of tiering configurations for the pricing rule.
    UpdatePricingRuleResponse -> Maybe UpdateTieringInput
tiering :: Prelude.Maybe UpdateTieringInput,
    -- | The new pricing rule type.
    UpdatePricingRuleResponse -> Maybe PricingRuleType
type' :: Prelude.Maybe PricingRuleType,
    -- | The response's http status code.
    UpdatePricingRuleResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdatePricingRuleResponse -> UpdatePricingRuleResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdatePricingRuleResponse -> UpdatePricingRuleResponse -> Bool
$c/= :: UpdatePricingRuleResponse -> UpdatePricingRuleResponse -> Bool
== :: UpdatePricingRuleResponse -> UpdatePricingRuleResponse -> Bool
$c== :: UpdatePricingRuleResponse -> UpdatePricingRuleResponse -> Bool
Prelude.Eq, Int -> UpdatePricingRuleResponse -> ShowS
[UpdatePricingRuleResponse] -> ShowS
UpdatePricingRuleResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdatePricingRuleResponse] -> ShowS
$cshowList :: [UpdatePricingRuleResponse] -> ShowS
show :: UpdatePricingRuleResponse -> String
$cshow :: UpdatePricingRuleResponse -> String
showsPrec :: Int -> UpdatePricingRuleResponse -> ShowS
$cshowsPrec :: Int -> UpdatePricingRuleResponse -> ShowS
Prelude.Show, forall x.
Rep UpdatePricingRuleResponse x -> UpdatePricingRuleResponse
forall x.
UpdatePricingRuleResponse -> Rep UpdatePricingRuleResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdatePricingRuleResponse x -> UpdatePricingRuleResponse
$cfrom :: forall x.
UpdatePricingRuleResponse -> Rep UpdatePricingRuleResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdatePricingRuleResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'arn', 'updatePricingRuleResponse_arn' - The Amazon Resource Name (ARN) of the successfully updated pricing rule.
--
-- 'associatedPricingPlanCount', 'updatePricingRuleResponse_associatedPricingPlanCount' - The pricing plans count that this pricing rule is associated with.
--
-- 'billingEntity', 'updatePricingRuleResponse_billingEntity' - The seller of services provided by Amazon Web Services, their
-- affiliates, or third-party providers selling services via Amazon Web
-- Services Marketplace.
--
-- 'description', 'updatePricingRuleResponse_description' - The new description for the pricing rule.
--
-- 'lastModifiedTime', 'updatePricingRuleResponse_lastModifiedTime' - The most recent time the pricing rule was modified.
--
-- 'modifierPercentage', 'updatePricingRuleResponse_modifierPercentage' - The new modifier to show pricing plan rates as a percentage.
--
-- 'name', 'updatePricingRuleResponse_name' - The new name of the pricing rule. The name must be unique to each
-- pricing rule.
--
-- 'scope', 'updatePricingRuleResponse_scope' - The scope of pricing rule that indicates if it\'s globally applicable,
-- or it\'s service-specific.
--
-- 'service', 'updatePricingRuleResponse_service' - If the @Scope@ attribute is set to @SERVICE@, the attribute indicates
-- which service the @PricingRule@ is applicable for.
--
-- 'tiering', 'updatePricingRuleResponse_tiering' - The set of tiering configurations for the pricing rule.
--
-- 'type'', 'updatePricingRuleResponse_type' - The new pricing rule type.
--
-- 'httpStatus', 'updatePricingRuleResponse_httpStatus' - The response's http status code.
newUpdatePricingRuleResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdatePricingRuleResponse
newUpdatePricingRuleResponse :: Int -> UpdatePricingRuleResponse
newUpdatePricingRuleResponse Int
pHttpStatus_ =
  UpdatePricingRuleResponse'
    { $sel:arn:UpdatePricingRuleResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:associatedPricingPlanCount:UpdatePricingRuleResponse' :: Maybe Natural
associatedPricingPlanCount = forall a. Maybe a
Prelude.Nothing,
      $sel:billingEntity:UpdatePricingRuleResponse' :: Maybe Text
billingEntity = forall a. Maybe a
Prelude.Nothing,
      $sel:description:UpdatePricingRuleResponse' :: Maybe (Sensitive Text)
description = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:UpdatePricingRuleResponse' :: Maybe Integer
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:modifierPercentage:UpdatePricingRuleResponse' :: Maybe Double
modifierPercentage = forall a. Maybe a
Prelude.Nothing,
      $sel:name:UpdatePricingRuleResponse' :: Maybe (Sensitive Text)
name = forall a. Maybe a
Prelude.Nothing,
      $sel:scope:UpdatePricingRuleResponse' :: Maybe PricingRuleScope
scope = forall a. Maybe a
Prelude.Nothing,
      $sel:service:UpdatePricingRuleResponse' :: Maybe Text
service = forall a. Maybe a
Prelude.Nothing,
      $sel:tiering:UpdatePricingRuleResponse' :: Maybe UpdateTieringInput
tiering = forall a. Maybe a
Prelude.Nothing,
      $sel:type':UpdatePricingRuleResponse' :: Maybe PricingRuleType
type' = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdatePricingRuleResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Resource Name (ARN) of the successfully updated pricing rule.
updatePricingRuleResponse_arn :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Text)
updatePricingRuleResponse_arn :: Lens' UpdatePricingRuleResponse (Maybe Text)
updatePricingRuleResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Maybe Text
a -> UpdatePricingRuleResponse
s {$sel:arn:UpdatePricingRuleResponse' :: Maybe Text
arn = Maybe Text
a} :: UpdatePricingRuleResponse)

-- | The pricing plans count that this pricing rule is associated with.
updatePricingRuleResponse_associatedPricingPlanCount :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Natural)
updatePricingRuleResponse_associatedPricingPlanCount :: Lens' UpdatePricingRuleResponse (Maybe Natural)
updatePricingRuleResponse_associatedPricingPlanCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Maybe Natural
associatedPricingPlanCount :: Maybe Natural
$sel:associatedPricingPlanCount:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe Natural
associatedPricingPlanCount} -> Maybe Natural
associatedPricingPlanCount) (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Maybe Natural
a -> UpdatePricingRuleResponse
s {$sel:associatedPricingPlanCount:UpdatePricingRuleResponse' :: Maybe Natural
associatedPricingPlanCount = Maybe Natural
a} :: UpdatePricingRuleResponse)

-- | The seller of services provided by Amazon Web Services, their
-- affiliates, or third-party providers selling services via Amazon Web
-- Services Marketplace.
updatePricingRuleResponse_billingEntity :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Text)
updatePricingRuleResponse_billingEntity :: Lens' UpdatePricingRuleResponse (Maybe Text)
updatePricingRuleResponse_billingEntity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Maybe Text
billingEntity :: Maybe Text
$sel:billingEntity:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe Text
billingEntity} -> Maybe Text
billingEntity) (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Maybe Text
a -> UpdatePricingRuleResponse
s {$sel:billingEntity:UpdatePricingRuleResponse' :: Maybe Text
billingEntity = Maybe Text
a} :: UpdatePricingRuleResponse)

-- | The new description for the pricing rule.
updatePricingRuleResponse_description :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Text)
updatePricingRuleResponse_description :: Lens' UpdatePricingRuleResponse (Maybe Text)
updatePricingRuleResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Maybe (Sensitive Text)
description :: Maybe (Sensitive Text)
$sel:description:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe (Sensitive Text)
description} -> Maybe (Sensitive Text)
description) (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Maybe (Sensitive Text)
a -> UpdatePricingRuleResponse
s {$sel:description:UpdatePricingRuleResponse' :: Maybe (Sensitive Text)
description = Maybe (Sensitive Text)
a} :: UpdatePricingRuleResponse) 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

-- | The most recent time the pricing rule was modified.
updatePricingRuleResponse_lastModifiedTime :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Integer)
updatePricingRuleResponse_lastModifiedTime :: Lens' UpdatePricingRuleResponse (Maybe Integer)
updatePricingRuleResponse_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Maybe Integer
lastModifiedTime :: Maybe Integer
$sel:lastModifiedTime:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe Integer
lastModifiedTime} -> Maybe Integer
lastModifiedTime) (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Maybe Integer
a -> UpdatePricingRuleResponse
s {$sel:lastModifiedTime:UpdatePricingRuleResponse' :: Maybe Integer
lastModifiedTime = Maybe Integer
a} :: UpdatePricingRuleResponse)

-- | The new modifier to show pricing plan rates as a percentage.
updatePricingRuleResponse_modifierPercentage :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Double)
updatePricingRuleResponse_modifierPercentage :: Lens' UpdatePricingRuleResponse (Maybe Double)
updatePricingRuleResponse_modifierPercentage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Maybe Double
modifierPercentage :: Maybe Double
$sel:modifierPercentage:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe Double
modifierPercentage} -> Maybe Double
modifierPercentage) (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Maybe Double
a -> UpdatePricingRuleResponse
s {$sel:modifierPercentage:UpdatePricingRuleResponse' :: Maybe Double
modifierPercentage = Maybe Double
a} :: UpdatePricingRuleResponse)

-- | The new name of the pricing rule. The name must be unique to each
-- pricing rule.
updatePricingRuleResponse_name :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Text)
updatePricingRuleResponse_name :: Lens' UpdatePricingRuleResponse (Maybe Text)
updatePricingRuleResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Maybe (Sensitive Text)
name :: Maybe (Sensitive Text)
$sel:name:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe (Sensitive Text)
name} -> Maybe (Sensitive Text)
name) (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Maybe (Sensitive Text)
a -> UpdatePricingRuleResponse
s {$sel:name:UpdatePricingRuleResponse' :: Maybe (Sensitive Text)
name = Maybe (Sensitive Text)
a} :: UpdatePricingRuleResponse) 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

-- | The scope of pricing rule that indicates if it\'s globally applicable,
-- or it\'s service-specific.
updatePricingRuleResponse_scope :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe PricingRuleScope)
updatePricingRuleResponse_scope :: Lens' UpdatePricingRuleResponse (Maybe PricingRuleScope)
updatePricingRuleResponse_scope = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Maybe PricingRuleScope
scope :: Maybe PricingRuleScope
$sel:scope:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe PricingRuleScope
scope} -> Maybe PricingRuleScope
scope) (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Maybe PricingRuleScope
a -> UpdatePricingRuleResponse
s {$sel:scope:UpdatePricingRuleResponse' :: Maybe PricingRuleScope
scope = Maybe PricingRuleScope
a} :: UpdatePricingRuleResponse)

-- | If the @Scope@ attribute is set to @SERVICE@, the attribute indicates
-- which service the @PricingRule@ is applicable for.
updatePricingRuleResponse_service :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe Prelude.Text)
updatePricingRuleResponse_service :: Lens' UpdatePricingRuleResponse (Maybe Text)
updatePricingRuleResponse_service = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Maybe Text
service :: Maybe Text
$sel:service:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe Text
service} -> Maybe Text
service) (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Maybe Text
a -> UpdatePricingRuleResponse
s {$sel:service:UpdatePricingRuleResponse' :: Maybe Text
service = Maybe Text
a} :: UpdatePricingRuleResponse)

-- | The set of tiering configurations for the pricing rule.
updatePricingRuleResponse_tiering :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe UpdateTieringInput)
updatePricingRuleResponse_tiering :: Lens' UpdatePricingRuleResponse (Maybe UpdateTieringInput)
updatePricingRuleResponse_tiering = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Maybe UpdateTieringInput
tiering :: Maybe UpdateTieringInput
$sel:tiering:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe UpdateTieringInput
tiering} -> Maybe UpdateTieringInput
tiering) (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Maybe UpdateTieringInput
a -> UpdatePricingRuleResponse
s {$sel:tiering:UpdatePricingRuleResponse' :: Maybe UpdateTieringInput
tiering = Maybe UpdateTieringInput
a} :: UpdatePricingRuleResponse)

-- | The new pricing rule type.
updatePricingRuleResponse_type :: Lens.Lens' UpdatePricingRuleResponse (Prelude.Maybe PricingRuleType)
updatePricingRuleResponse_type :: Lens' UpdatePricingRuleResponse (Maybe PricingRuleType)
updatePricingRuleResponse_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Maybe PricingRuleType
type' :: Maybe PricingRuleType
$sel:type':UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe PricingRuleType
type'} -> Maybe PricingRuleType
type') (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Maybe PricingRuleType
a -> UpdatePricingRuleResponse
s {$sel:type':UpdatePricingRuleResponse' :: Maybe PricingRuleType
type' = Maybe PricingRuleType
a} :: UpdatePricingRuleResponse)

-- | The response's http status code.
updatePricingRuleResponse_httpStatus :: Lens.Lens' UpdatePricingRuleResponse Prelude.Int
updatePricingRuleResponse_httpStatus :: Lens' UpdatePricingRuleResponse Int
updatePricingRuleResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePricingRuleResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdatePricingRuleResponse
s@UpdatePricingRuleResponse' {} Int
a -> UpdatePricingRuleResponse
s {$sel:httpStatus:UpdatePricingRuleResponse' :: Int
httpStatus = Int
a} :: UpdatePricingRuleResponse)

instance Prelude.NFData UpdatePricingRuleResponse where
  rnf :: UpdatePricingRuleResponse -> ()
rnf UpdatePricingRuleResponse' {Int
Maybe Double
Maybe Integer
Maybe Natural
Maybe Text
Maybe (Sensitive Text)
Maybe PricingRuleScope
Maybe PricingRuleType
Maybe UpdateTieringInput
httpStatus :: Int
type' :: Maybe PricingRuleType
tiering :: Maybe UpdateTieringInput
service :: Maybe Text
scope :: Maybe PricingRuleScope
name :: Maybe (Sensitive Text)
modifierPercentage :: Maybe Double
lastModifiedTime :: Maybe Integer
description :: Maybe (Sensitive Text)
billingEntity :: Maybe Text
associatedPricingPlanCount :: Maybe Natural
arn :: Maybe Text
$sel:httpStatus:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Int
$sel:type':UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe PricingRuleType
$sel:tiering:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe UpdateTieringInput
$sel:service:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe Text
$sel:scope:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe PricingRuleScope
$sel:name:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe (Sensitive Text)
$sel:modifierPercentage:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe Double
$sel:lastModifiedTime:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe Integer
$sel:description:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe (Sensitive Text)
$sel:billingEntity:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe Text
$sel:associatedPricingPlanCount:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> Maybe Natural
$sel:arn:UpdatePricingRuleResponse' :: UpdatePricingRuleResponse -> 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 Maybe Natural
associatedPricingPlanCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 (Sensitive Text)
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
lastModifiedTime
      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 (Sensitive Text)
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PricingRuleScope
scope
      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 UpdateTieringInput
tiering
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PricingRuleType
type'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus