{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

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

-- |
-- Module      : Amazonka.ServiceQuotas.Types.ServiceQuotaIncreaseRequestInTemplate
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ServiceQuotas.Types.ServiceQuotaIncreaseRequestInTemplate where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Information about a quota increase request.
--
-- /See:/ 'newServiceQuotaIncreaseRequestInTemplate' smart constructor.
data ServiceQuotaIncreaseRequestInTemplate = ServiceQuotaIncreaseRequestInTemplate'
  { -- | Indicates whether the quota is global.
    ServiceQuotaIncreaseRequestInTemplate -> Maybe Bool
globalQuota :: Prelude.Maybe Prelude.Bool,
    -- | The new, increased value of the quota.
    ServiceQuotaIncreaseRequestInTemplate -> Maybe Double
desiredValue :: Prelude.Maybe Prelude.Double,
    -- | The service name.
    ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
serviceName :: Prelude.Maybe Prelude.Text,
    -- | The AWS Region.
    ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
awsRegion :: Prelude.Maybe Prelude.Text,
    -- | The service identifier.
    ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
serviceCode :: Prelude.Maybe Prelude.Text,
    -- | The quota identifier.
    ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
quotaCode :: Prelude.Maybe Prelude.Text,
    -- | The unit of measurement.
    ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
unit :: Prelude.Maybe Prelude.Text,
    -- | The quota name.
    ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
quotaName :: Prelude.Maybe Prelude.Text
  }
  deriving (ServiceQuotaIncreaseRequestInTemplate
-> ServiceQuotaIncreaseRequestInTemplate -> Bool
(ServiceQuotaIncreaseRequestInTemplate
 -> ServiceQuotaIncreaseRequestInTemplate -> Bool)
-> (ServiceQuotaIncreaseRequestInTemplate
    -> ServiceQuotaIncreaseRequestInTemplate -> Bool)
-> Eq ServiceQuotaIncreaseRequestInTemplate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ServiceQuotaIncreaseRequestInTemplate
-> ServiceQuotaIncreaseRequestInTemplate -> Bool
$c/= :: ServiceQuotaIncreaseRequestInTemplate
-> ServiceQuotaIncreaseRequestInTemplate -> Bool
== :: ServiceQuotaIncreaseRequestInTemplate
-> ServiceQuotaIncreaseRequestInTemplate -> Bool
$c== :: ServiceQuotaIncreaseRequestInTemplate
-> ServiceQuotaIncreaseRequestInTemplate -> Bool
Prelude.Eq, ReadPrec [ServiceQuotaIncreaseRequestInTemplate]
ReadPrec ServiceQuotaIncreaseRequestInTemplate
Int -> ReadS ServiceQuotaIncreaseRequestInTemplate
ReadS [ServiceQuotaIncreaseRequestInTemplate]
(Int -> ReadS ServiceQuotaIncreaseRequestInTemplate)
-> ReadS [ServiceQuotaIncreaseRequestInTemplate]
-> ReadPrec ServiceQuotaIncreaseRequestInTemplate
-> ReadPrec [ServiceQuotaIncreaseRequestInTemplate]
-> Read ServiceQuotaIncreaseRequestInTemplate
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ServiceQuotaIncreaseRequestInTemplate]
$creadListPrec :: ReadPrec [ServiceQuotaIncreaseRequestInTemplate]
readPrec :: ReadPrec ServiceQuotaIncreaseRequestInTemplate
$creadPrec :: ReadPrec ServiceQuotaIncreaseRequestInTemplate
readList :: ReadS [ServiceQuotaIncreaseRequestInTemplate]
$creadList :: ReadS [ServiceQuotaIncreaseRequestInTemplate]
readsPrec :: Int -> ReadS ServiceQuotaIncreaseRequestInTemplate
$creadsPrec :: Int -> ReadS ServiceQuotaIncreaseRequestInTemplate
Prelude.Read, Int -> ServiceQuotaIncreaseRequestInTemplate -> ShowS
[ServiceQuotaIncreaseRequestInTemplate] -> ShowS
ServiceQuotaIncreaseRequestInTemplate -> String
(Int -> ServiceQuotaIncreaseRequestInTemplate -> ShowS)
-> (ServiceQuotaIncreaseRequestInTemplate -> String)
-> ([ServiceQuotaIncreaseRequestInTemplate] -> ShowS)
-> Show ServiceQuotaIncreaseRequestInTemplate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ServiceQuotaIncreaseRequestInTemplate] -> ShowS
$cshowList :: [ServiceQuotaIncreaseRequestInTemplate] -> ShowS
show :: ServiceQuotaIncreaseRequestInTemplate -> String
$cshow :: ServiceQuotaIncreaseRequestInTemplate -> String
showsPrec :: Int -> ServiceQuotaIncreaseRequestInTemplate -> ShowS
$cshowsPrec :: Int -> ServiceQuotaIncreaseRequestInTemplate -> ShowS
Prelude.Show, (forall x.
 ServiceQuotaIncreaseRequestInTemplate
 -> Rep ServiceQuotaIncreaseRequestInTemplate x)
-> (forall x.
    Rep ServiceQuotaIncreaseRequestInTemplate x
    -> ServiceQuotaIncreaseRequestInTemplate)
-> Generic ServiceQuotaIncreaseRequestInTemplate
forall x.
Rep ServiceQuotaIncreaseRequestInTemplate x
-> ServiceQuotaIncreaseRequestInTemplate
forall x.
ServiceQuotaIncreaseRequestInTemplate
-> Rep ServiceQuotaIncreaseRequestInTemplate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ServiceQuotaIncreaseRequestInTemplate x
-> ServiceQuotaIncreaseRequestInTemplate
$cfrom :: forall x.
ServiceQuotaIncreaseRequestInTemplate
-> Rep ServiceQuotaIncreaseRequestInTemplate x
Prelude.Generic)

-- |
-- Create a value of 'ServiceQuotaIncreaseRequestInTemplate' 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:
--
-- 'globalQuota', 'serviceQuotaIncreaseRequestInTemplate_globalQuota' - Indicates whether the quota is global.
--
-- 'desiredValue', 'serviceQuotaIncreaseRequestInTemplate_desiredValue' - The new, increased value of the quota.
--
-- 'serviceName', 'serviceQuotaIncreaseRequestInTemplate_serviceName' - The service name.
--
-- 'awsRegion', 'serviceQuotaIncreaseRequestInTemplate_awsRegion' - The AWS Region.
--
-- 'serviceCode', 'serviceQuotaIncreaseRequestInTemplate_serviceCode' - The service identifier.
--
-- 'quotaCode', 'serviceQuotaIncreaseRequestInTemplate_quotaCode' - The quota identifier.
--
-- 'unit', 'serviceQuotaIncreaseRequestInTemplate_unit' - The unit of measurement.
--
-- 'quotaName', 'serviceQuotaIncreaseRequestInTemplate_quotaName' - The quota name.
newServiceQuotaIncreaseRequestInTemplate ::
  ServiceQuotaIncreaseRequestInTemplate
newServiceQuotaIncreaseRequestInTemplate :: ServiceQuotaIncreaseRequestInTemplate
newServiceQuotaIncreaseRequestInTemplate =
  ServiceQuotaIncreaseRequestInTemplate' :: Maybe Bool
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> ServiceQuotaIncreaseRequestInTemplate
ServiceQuotaIncreaseRequestInTemplate'
    { $sel:globalQuota:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Bool
globalQuota =
        Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:desiredValue:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Double
desiredValue = Maybe Double
forall a. Maybe a
Prelude.Nothing,
      $sel:serviceName:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
serviceName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:awsRegion:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
awsRegion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:serviceCode:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
serviceCode = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:quotaCode:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
quotaCode = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:unit:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
unit = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:quotaName:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
quotaName = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | Indicates whether the quota is global.
serviceQuotaIncreaseRequestInTemplate_globalQuota :: Lens.Lens' ServiceQuotaIncreaseRequestInTemplate (Prelude.Maybe Prelude.Bool)
serviceQuotaIncreaseRequestInTemplate_globalQuota :: (Maybe Bool -> f (Maybe Bool))
-> ServiceQuotaIncreaseRequestInTemplate
-> f ServiceQuotaIncreaseRequestInTemplate
serviceQuotaIncreaseRequestInTemplate_globalQuota = (ServiceQuotaIncreaseRequestInTemplate -> Maybe Bool)
-> (ServiceQuotaIncreaseRequestInTemplate
    -> Maybe Bool -> ServiceQuotaIncreaseRequestInTemplate)
-> Lens
     ServiceQuotaIncreaseRequestInTemplate
     ServiceQuotaIncreaseRequestInTemplate
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceQuotaIncreaseRequestInTemplate' {Maybe Bool
globalQuota :: Maybe Bool
$sel:globalQuota:ServiceQuotaIncreaseRequestInTemplate' :: ServiceQuotaIncreaseRequestInTemplate -> Maybe Bool
globalQuota} -> Maybe Bool
globalQuota) (\s :: ServiceQuotaIncreaseRequestInTemplate
s@ServiceQuotaIncreaseRequestInTemplate' {} Maybe Bool
a -> ServiceQuotaIncreaseRequestInTemplate
s {$sel:globalQuota:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Bool
globalQuota = Maybe Bool
a} :: ServiceQuotaIncreaseRequestInTemplate)

-- | The new, increased value of the quota.
serviceQuotaIncreaseRequestInTemplate_desiredValue :: Lens.Lens' ServiceQuotaIncreaseRequestInTemplate (Prelude.Maybe Prelude.Double)
serviceQuotaIncreaseRequestInTemplate_desiredValue :: (Maybe Double -> f (Maybe Double))
-> ServiceQuotaIncreaseRequestInTemplate
-> f ServiceQuotaIncreaseRequestInTemplate
serviceQuotaIncreaseRequestInTemplate_desiredValue = (ServiceQuotaIncreaseRequestInTemplate -> Maybe Double)
-> (ServiceQuotaIncreaseRequestInTemplate
    -> Maybe Double -> ServiceQuotaIncreaseRequestInTemplate)
-> Lens
     ServiceQuotaIncreaseRequestInTemplate
     ServiceQuotaIncreaseRequestInTemplate
     (Maybe Double)
     (Maybe Double)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceQuotaIncreaseRequestInTemplate' {Maybe Double
desiredValue :: Maybe Double
$sel:desiredValue:ServiceQuotaIncreaseRequestInTemplate' :: ServiceQuotaIncreaseRequestInTemplate -> Maybe Double
desiredValue} -> Maybe Double
desiredValue) (\s :: ServiceQuotaIncreaseRequestInTemplate
s@ServiceQuotaIncreaseRequestInTemplate' {} Maybe Double
a -> ServiceQuotaIncreaseRequestInTemplate
s {$sel:desiredValue:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Double
desiredValue = Maybe Double
a} :: ServiceQuotaIncreaseRequestInTemplate)

-- | The service name.
serviceQuotaIncreaseRequestInTemplate_serviceName :: Lens.Lens' ServiceQuotaIncreaseRequestInTemplate (Prelude.Maybe Prelude.Text)
serviceQuotaIncreaseRequestInTemplate_serviceName :: (Maybe Text -> f (Maybe Text))
-> ServiceQuotaIncreaseRequestInTemplate
-> f ServiceQuotaIncreaseRequestInTemplate
serviceQuotaIncreaseRequestInTemplate_serviceName = (ServiceQuotaIncreaseRequestInTemplate -> Maybe Text)
-> (ServiceQuotaIncreaseRequestInTemplate
    -> Maybe Text -> ServiceQuotaIncreaseRequestInTemplate)
-> Lens
     ServiceQuotaIncreaseRequestInTemplate
     ServiceQuotaIncreaseRequestInTemplate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceQuotaIncreaseRequestInTemplate' {Maybe Text
serviceName :: Maybe Text
$sel:serviceName:ServiceQuotaIncreaseRequestInTemplate' :: ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
serviceName} -> Maybe Text
serviceName) (\s :: ServiceQuotaIncreaseRequestInTemplate
s@ServiceQuotaIncreaseRequestInTemplate' {} Maybe Text
a -> ServiceQuotaIncreaseRequestInTemplate
s {$sel:serviceName:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
serviceName = Maybe Text
a} :: ServiceQuotaIncreaseRequestInTemplate)

-- | The AWS Region.
serviceQuotaIncreaseRequestInTemplate_awsRegion :: Lens.Lens' ServiceQuotaIncreaseRequestInTemplate (Prelude.Maybe Prelude.Text)
serviceQuotaIncreaseRequestInTemplate_awsRegion :: (Maybe Text -> f (Maybe Text))
-> ServiceQuotaIncreaseRequestInTemplate
-> f ServiceQuotaIncreaseRequestInTemplate
serviceQuotaIncreaseRequestInTemplate_awsRegion = (ServiceQuotaIncreaseRequestInTemplate -> Maybe Text)
-> (ServiceQuotaIncreaseRequestInTemplate
    -> Maybe Text -> ServiceQuotaIncreaseRequestInTemplate)
-> Lens
     ServiceQuotaIncreaseRequestInTemplate
     ServiceQuotaIncreaseRequestInTemplate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceQuotaIncreaseRequestInTemplate' {Maybe Text
awsRegion :: Maybe Text
$sel:awsRegion:ServiceQuotaIncreaseRequestInTemplate' :: ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
awsRegion} -> Maybe Text
awsRegion) (\s :: ServiceQuotaIncreaseRequestInTemplate
s@ServiceQuotaIncreaseRequestInTemplate' {} Maybe Text
a -> ServiceQuotaIncreaseRequestInTemplate
s {$sel:awsRegion:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
awsRegion = Maybe Text
a} :: ServiceQuotaIncreaseRequestInTemplate)

-- | The service identifier.
serviceQuotaIncreaseRequestInTemplate_serviceCode :: Lens.Lens' ServiceQuotaIncreaseRequestInTemplate (Prelude.Maybe Prelude.Text)
serviceQuotaIncreaseRequestInTemplate_serviceCode :: (Maybe Text -> f (Maybe Text))
-> ServiceQuotaIncreaseRequestInTemplate
-> f ServiceQuotaIncreaseRequestInTemplate
serviceQuotaIncreaseRequestInTemplate_serviceCode = (ServiceQuotaIncreaseRequestInTemplate -> Maybe Text)
-> (ServiceQuotaIncreaseRequestInTemplate
    -> Maybe Text -> ServiceQuotaIncreaseRequestInTemplate)
-> Lens
     ServiceQuotaIncreaseRequestInTemplate
     ServiceQuotaIncreaseRequestInTemplate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceQuotaIncreaseRequestInTemplate' {Maybe Text
serviceCode :: Maybe Text
$sel:serviceCode:ServiceQuotaIncreaseRequestInTemplate' :: ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
serviceCode} -> Maybe Text
serviceCode) (\s :: ServiceQuotaIncreaseRequestInTemplate
s@ServiceQuotaIncreaseRequestInTemplate' {} Maybe Text
a -> ServiceQuotaIncreaseRequestInTemplate
s {$sel:serviceCode:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
serviceCode = Maybe Text
a} :: ServiceQuotaIncreaseRequestInTemplate)

-- | The quota identifier.
serviceQuotaIncreaseRequestInTemplate_quotaCode :: Lens.Lens' ServiceQuotaIncreaseRequestInTemplate (Prelude.Maybe Prelude.Text)
serviceQuotaIncreaseRequestInTemplate_quotaCode :: (Maybe Text -> f (Maybe Text))
-> ServiceQuotaIncreaseRequestInTemplate
-> f ServiceQuotaIncreaseRequestInTemplate
serviceQuotaIncreaseRequestInTemplate_quotaCode = (ServiceQuotaIncreaseRequestInTemplate -> Maybe Text)
-> (ServiceQuotaIncreaseRequestInTemplate
    -> Maybe Text -> ServiceQuotaIncreaseRequestInTemplate)
-> Lens
     ServiceQuotaIncreaseRequestInTemplate
     ServiceQuotaIncreaseRequestInTemplate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceQuotaIncreaseRequestInTemplate' {Maybe Text
quotaCode :: Maybe Text
$sel:quotaCode:ServiceQuotaIncreaseRequestInTemplate' :: ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
quotaCode} -> Maybe Text
quotaCode) (\s :: ServiceQuotaIncreaseRequestInTemplate
s@ServiceQuotaIncreaseRequestInTemplate' {} Maybe Text
a -> ServiceQuotaIncreaseRequestInTemplate
s {$sel:quotaCode:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
quotaCode = Maybe Text
a} :: ServiceQuotaIncreaseRequestInTemplate)

-- | The unit of measurement.
serviceQuotaIncreaseRequestInTemplate_unit :: Lens.Lens' ServiceQuotaIncreaseRequestInTemplate (Prelude.Maybe Prelude.Text)
serviceQuotaIncreaseRequestInTemplate_unit :: (Maybe Text -> f (Maybe Text))
-> ServiceQuotaIncreaseRequestInTemplate
-> f ServiceQuotaIncreaseRequestInTemplate
serviceQuotaIncreaseRequestInTemplate_unit = (ServiceQuotaIncreaseRequestInTemplate -> Maybe Text)
-> (ServiceQuotaIncreaseRequestInTemplate
    -> Maybe Text -> ServiceQuotaIncreaseRequestInTemplate)
-> Lens
     ServiceQuotaIncreaseRequestInTemplate
     ServiceQuotaIncreaseRequestInTemplate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceQuotaIncreaseRequestInTemplate' {Maybe Text
unit :: Maybe Text
$sel:unit:ServiceQuotaIncreaseRequestInTemplate' :: ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
unit} -> Maybe Text
unit) (\s :: ServiceQuotaIncreaseRequestInTemplate
s@ServiceQuotaIncreaseRequestInTemplate' {} Maybe Text
a -> ServiceQuotaIncreaseRequestInTemplate
s {$sel:unit:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
unit = Maybe Text
a} :: ServiceQuotaIncreaseRequestInTemplate)

-- | The quota name.
serviceQuotaIncreaseRequestInTemplate_quotaName :: Lens.Lens' ServiceQuotaIncreaseRequestInTemplate (Prelude.Maybe Prelude.Text)
serviceQuotaIncreaseRequestInTemplate_quotaName :: (Maybe Text -> f (Maybe Text))
-> ServiceQuotaIncreaseRequestInTemplate
-> f ServiceQuotaIncreaseRequestInTemplate
serviceQuotaIncreaseRequestInTemplate_quotaName = (ServiceQuotaIncreaseRequestInTemplate -> Maybe Text)
-> (ServiceQuotaIncreaseRequestInTemplate
    -> Maybe Text -> ServiceQuotaIncreaseRequestInTemplate)
-> Lens
     ServiceQuotaIncreaseRequestInTemplate
     ServiceQuotaIncreaseRequestInTemplate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ServiceQuotaIncreaseRequestInTemplate' {Maybe Text
quotaName :: Maybe Text
$sel:quotaName:ServiceQuotaIncreaseRequestInTemplate' :: ServiceQuotaIncreaseRequestInTemplate -> Maybe Text
quotaName} -> Maybe Text
quotaName) (\s :: ServiceQuotaIncreaseRequestInTemplate
s@ServiceQuotaIncreaseRequestInTemplate' {} Maybe Text
a -> ServiceQuotaIncreaseRequestInTemplate
s {$sel:quotaName:ServiceQuotaIncreaseRequestInTemplate' :: Maybe Text
quotaName = Maybe Text
a} :: ServiceQuotaIncreaseRequestInTemplate)

instance
  Core.FromJSON
    ServiceQuotaIncreaseRequestInTemplate
  where
  parseJSON :: Value -> Parser ServiceQuotaIncreaseRequestInTemplate
parseJSON =
    String
-> (Object -> Parser ServiceQuotaIncreaseRequestInTemplate)
-> Value
-> Parser ServiceQuotaIncreaseRequestInTemplate
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"ServiceQuotaIncreaseRequestInTemplate"
      ( \Object
x ->
          Maybe Bool
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> ServiceQuotaIncreaseRequestInTemplate
ServiceQuotaIncreaseRequestInTemplate'
            (Maybe Bool
 -> Maybe Double
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> ServiceQuotaIncreaseRequestInTemplate)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Double
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> ServiceQuotaIncreaseRequestInTemplate)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"GlobalQuota")
            Parser
  (Maybe Double
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> ServiceQuotaIncreaseRequestInTemplate)
-> Parser (Maybe Double)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> ServiceQuotaIncreaseRequestInTemplate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DesiredValue")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> ServiceQuotaIncreaseRequestInTemplate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> ServiceQuotaIncreaseRequestInTemplate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ServiceName")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> ServiceQuotaIncreaseRequestInTemplate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> ServiceQuotaIncreaseRequestInTemplate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AwsRegion")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> ServiceQuotaIncreaseRequestInTemplate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> ServiceQuotaIncreaseRequestInTemplate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ServiceCode")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> ServiceQuotaIncreaseRequestInTemplate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> ServiceQuotaIncreaseRequestInTemplate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"QuotaCode")
            Parser
  (Maybe Text -> Maybe Text -> ServiceQuotaIncreaseRequestInTemplate)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> ServiceQuotaIncreaseRequestInTemplate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Unit")
            Parser (Maybe Text -> ServiceQuotaIncreaseRequestInTemplate)
-> Parser (Maybe Text)
-> Parser ServiceQuotaIncreaseRequestInTemplate
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"QuotaName")
      )

instance
  Prelude.Hashable
    ServiceQuotaIncreaseRequestInTemplate

instance
  Prelude.NFData
    ServiceQuotaIncreaseRequestInTemplate