module Stratosphere.KafkaConnect.Connector.CapacityProperty (
        module Exports, CapacityProperty(..), mkCapacityProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.KafkaConnect.Connector.AutoScalingProperty as Exports
import {-# SOURCE #-} Stratosphere.KafkaConnect.Connector.ProvisionedCapacityProperty as Exports
import Stratosphere.ResourceProperties
data CapacityProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-capacity.html>
    CapacityProperty {CapacityProperty -> ()
haddock_workaround_ :: (),
                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-capacity.html#cfn-kafkaconnect-connector-capacity-autoscaling>
                      CapacityProperty -> Maybe AutoScalingProperty
autoScaling :: (Prelude.Maybe AutoScalingProperty),
                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-capacity.html#cfn-kafkaconnect-connector-capacity-provisionedcapacity>
                      CapacityProperty -> Maybe ProvisionedCapacityProperty
provisionedCapacity :: (Prelude.Maybe ProvisionedCapacityProperty)}
  deriving stock (CapacityProperty -> CapacityProperty -> Bool
(CapacityProperty -> CapacityProperty -> Bool)
-> (CapacityProperty -> CapacityProperty -> Bool)
-> Eq CapacityProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CapacityProperty -> CapacityProperty -> Bool
== :: CapacityProperty -> CapacityProperty -> Bool
$c/= :: CapacityProperty -> CapacityProperty -> Bool
/= :: CapacityProperty -> CapacityProperty -> Bool
Prelude.Eq, Int -> CapacityProperty -> ShowS
[CapacityProperty] -> ShowS
CapacityProperty -> String
(Int -> CapacityProperty -> ShowS)
-> (CapacityProperty -> String)
-> ([CapacityProperty] -> ShowS)
-> Show CapacityProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CapacityProperty -> ShowS
showsPrec :: Int -> CapacityProperty -> ShowS
$cshow :: CapacityProperty -> String
show :: CapacityProperty -> String
$cshowList :: [CapacityProperty] -> ShowS
showList :: [CapacityProperty] -> ShowS
Prelude.Show)
mkCapacityProperty :: CapacityProperty
mkCapacityProperty :: CapacityProperty
mkCapacityProperty
  = CapacityProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), autoScaling :: Maybe AutoScalingProperty
autoScaling = Maybe AutoScalingProperty
forall a. Maybe a
Prelude.Nothing,
       provisionedCapacity :: Maybe ProvisionedCapacityProperty
provisionedCapacity = Maybe ProvisionedCapacityProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties CapacityProperty where
  toResourceProperties :: CapacityProperty -> ResourceProperties
toResourceProperties CapacityProperty {Maybe ProvisionedCapacityProperty
Maybe AutoScalingProperty
()
haddock_workaround_ :: CapacityProperty -> ()
autoScaling :: CapacityProperty -> Maybe AutoScalingProperty
provisionedCapacity :: CapacityProperty -> Maybe ProvisionedCapacityProperty
haddock_workaround_ :: ()
autoScaling :: Maybe AutoScalingProperty
provisionedCapacity :: Maybe ProvisionedCapacityProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::KafkaConnect::Connector.Capacity",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key -> AutoScalingProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AutoScaling" (AutoScalingProperty -> (Key, Value))
-> Maybe AutoScalingProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AutoScalingProperty
autoScaling,
                            Key -> ProvisionedCapacityProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ProvisionedCapacity" (ProvisionedCapacityProperty -> (Key, Value))
-> Maybe ProvisionedCapacityProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ProvisionedCapacityProperty
provisionedCapacity])}
instance JSON.ToJSON CapacityProperty where
  toJSON :: CapacityProperty -> Value
toJSON CapacityProperty {Maybe ProvisionedCapacityProperty
Maybe AutoScalingProperty
()
haddock_workaround_ :: CapacityProperty -> ()
autoScaling :: CapacityProperty -> Maybe AutoScalingProperty
provisionedCapacity :: CapacityProperty -> Maybe ProvisionedCapacityProperty
haddock_workaround_ :: ()
autoScaling :: Maybe AutoScalingProperty
provisionedCapacity :: Maybe ProvisionedCapacityProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key -> AutoScalingProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AutoScaling" (AutoScalingProperty -> (Key, Value))
-> Maybe AutoScalingProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AutoScalingProperty
autoScaling,
               Key -> ProvisionedCapacityProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ProvisionedCapacity" (ProvisionedCapacityProperty -> (Key, Value))
-> Maybe ProvisionedCapacityProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ProvisionedCapacityProperty
provisionedCapacity]))
instance Property "AutoScaling" CapacityProperty where
  type PropertyType "AutoScaling" CapacityProperty = AutoScalingProperty
  set :: PropertyType "AutoScaling" CapacityProperty
-> CapacityProperty -> CapacityProperty
set PropertyType "AutoScaling" CapacityProperty
newValue CapacityProperty {Maybe ProvisionedCapacityProperty
Maybe AutoScalingProperty
()
haddock_workaround_ :: CapacityProperty -> ()
autoScaling :: CapacityProperty -> Maybe AutoScalingProperty
provisionedCapacity :: CapacityProperty -> Maybe ProvisionedCapacityProperty
haddock_workaround_ :: ()
autoScaling :: Maybe AutoScalingProperty
provisionedCapacity :: Maybe ProvisionedCapacityProperty
..}
    = CapacityProperty {autoScaling :: Maybe AutoScalingProperty
autoScaling = AutoScalingProperty -> Maybe AutoScalingProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "AutoScaling" CapacityProperty
AutoScalingProperty
newValue, Maybe ProvisionedCapacityProperty
()
haddock_workaround_ :: ()
provisionedCapacity :: Maybe ProvisionedCapacityProperty
haddock_workaround_ :: ()
provisionedCapacity :: Maybe ProvisionedCapacityProperty
..}
instance Property "ProvisionedCapacity" CapacityProperty where
  type PropertyType "ProvisionedCapacity" CapacityProperty = ProvisionedCapacityProperty
  set :: PropertyType "ProvisionedCapacity" CapacityProperty
-> CapacityProperty -> CapacityProperty
set PropertyType "ProvisionedCapacity" CapacityProperty
newValue CapacityProperty {Maybe ProvisionedCapacityProperty
Maybe AutoScalingProperty
()
haddock_workaround_ :: CapacityProperty -> ()
autoScaling :: CapacityProperty -> Maybe AutoScalingProperty
provisionedCapacity :: CapacityProperty -> Maybe ProvisionedCapacityProperty
haddock_workaround_ :: ()
autoScaling :: Maybe AutoScalingProperty
provisionedCapacity :: Maybe ProvisionedCapacityProperty
..}
    = CapacityProperty
        {provisionedCapacity :: Maybe ProvisionedCapacityProperty
provisionedCapacity = ProvisionedCapacityProperty -> Maybe ProvisionedCapacityProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "ProvisionedCapacity" CapacityProperty
ProvisionedCapacityProperty
newValue, Maybe AutoScalingProperty
()
haddock_workaround_ :: ()
autoScaling :: Maybe AutoScalingProperty
haddock_workaround_ :: ()
autoScaling :: Maybe AutoScalingProperty
..}