module Stratosphere.KafkaConnect.Connector.AutoScalingProperty (
        module Exports, AutoScalingProperty(..), mkAutoScalingProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.KafkaConnect.Connector.ScaleInPolicyProperty as Exports
import {-# SOURCE #-} Stratosphere.KafkaConnect.Connector.ScaleOutPolicyProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AutoScalingProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-autoscaling.html>
    AutoScalingProperty {AutoScalingProperty -> ()
haddock_workaround_ :: (),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-autoscaling.html#cfn-kafkaconnect-connector-autoscaling-maxworkercount>
                         AutoScalingProperty -> Value Integer
maxWorkerCount :: (Value Prelude.Integer),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-autoscaling.html#cfn-kafkaconnect-connector-autoscaling-mcucount>
                         AutoScalingProperty -> Value Integer
mcuCount :: (Value Prelude.Integer),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-autoscaling.html#cfn-kafkaconnect-connector-autoscaling-minworkercount>
                         AutoScalingProperty -> Value Integer
minWorkerCount :: (Value Prelude.Integer),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-autoscaling.html#cfn-kafkaconnect-connector-autoscaling-scaleinpolicy>
                         AutoScalingProperty -> ScaleInPolicyProperty
scaleInPolicy :: ScaleInPolicyProperty,
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-autoscaling.html#cfn-kafkaconnect-connector-autoscaling-scaleoutpolicy>
                         AutoScalingProperty -> ScaleOutPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty}
  deriving stock (AutoScalingProperty -> AutoScalingProperty -> Bool
(AutoScalingProperty -> AutoScalingProperty -> Bool)
-> (AutoScalingProperty -> AutoScalingProperty -> Bool)
-> Eq AutoScalingProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AutoScalingProperty -> AutoScalingProperty -> Bool
== :: AutoScalingProperty -> AutoScalingProperty -> Bool
$c/= :: AutoScalingProperty -> AutoScalingProperty -> Bool
/= :: AutoScalingProperty -> AutoScalingProperty -> Bool
Prelude.Eq, Int -> AutoScalingProperty -> ShowS
[AutoScalingProperty] -> ShowS
AutoScalingProperty -> String
(Int -> AutoScalingProperty -> ShowS)
-> (AutoScalingProperty -> String)
-> ([AutoScalingProperty] -> ShowS)
-> Show AutoScalingProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AutoScalingProperty -> ShowS
showsPrec :: Int -> AutoScalingProperty -> ShowS
$cshow :: AutoScalingProperty -> String
show :: AutoScalingProperty -> String
$cshowList :: [AutoScalingProperty] -> ShowS
showList :: [AutoScalingProperty] -> ShowS
Prelude.Show)
mkAutoScalingProperty ::
  Value Prelude.Integer
  -> Value Prelude.Integer
     -> Value Prelude.Integer
        -> ScaleInPolicyProperty
           -> ScaleOutPolicyProperty -> AutoScalingProperty
mkAutoScalingProperty :: Value Integer
-> Value Integer
-> Value Integer
-> ScaleInPolicyProperty
-> ScaleOutPolicyProperty
-> AutoScalingProperty
mkAutoScalingProperty
  Value Integer
maxWorkerCount
  Value Integer
mcuCount
  Value Integer
minWorkerCount
  ScaleInPolicyProperty
scaleInPolicy
  ScaleOutPolicyProperty
scaleOutPolicy
  = AutoScalingProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), maxWorkerCount :: Value Integer
maxWorkerCount = Value Integer
maxWorkerCount,
       mcuCount :: Value Integer
mcuCount = Value Integer
mcuCount, minWorkerCount :: Value Integer
minWorkerCount = Value Integer
minWorkerCount,
       scaleInPolicy :: ScaleInPolicyProperty
scaleInPolicy = ScaleInPolicyProperty
scaleInPolicy, scaleOutPolicy :: ScaleOutPolicyProperty
scaleOutPolicy = ScaleOutPolicyProperty
scaleOutPolicy}
instance ToResourceProperties AutoScalingProperty where
  toResourceProperties :: AutoScalingProperty -> ResourceProperties
toResourceProperties AutoScalingProperty {()
Value Integer
ScaleInPolicyProperty
ScaleOutPolicyProperty
haddock_workaround_ :: AutoScalingProperty -> ()
maxWorkerCount :: AutoScalingProperty -> Value Integer
mcuCount :: AutoScalingProperty -> Value Integer
minWorkerCount :: AutoScalingProperty -> Value Integer
scaleInPolicy :: AutoScalingProperty -> ScaleInPolicyProperty
scaleOutPolicy :: AutoScalingProperty -> ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::KafkaConnect::Connector.AutoScaling",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"MaxWorkerCount" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
maxWorkerCount,
                       Key
"McuCount" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
mcuCount,
                       Key
"MinWorkerCount" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
minWorkerCount,
                       Key
"ScaleInPolicy" Key -> ScaleInPolicyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ScaleInPolicyProperty
scaleInPolicy,
                       Key
"ScaleOutPolicy" Key -> ScaleOutPolicyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ScaleOutPolicyProperty
scaleOutPolicy]}
instance JSON.ToJSON AutoScalingProperty where
  toJSON :: AutoScalingProperty -> Value
toJSON AutoScalingProperty {()
Value Integer
ScaleInPolicyProperty
ScaleOutPolicyProperty
haddock_workaround_ :: AutoScalingProperty -> ()
maxWorkerCount :: AutoScalingProperty -> Value Integer
mcuCount :: AutoScalingProperty -> Value Integer
minWorkerCount :: AutoScalingProperty -> Value Integer
scaleInPolicy :: AutoScalingProperty -> ScaleInPolicyProperty
scaleOutPolicy :: AutoScalingProperty -> ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"MaxWorkerCount" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
maxWorkerCount,
         Key
"McuCount" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
mcuCount,
         Key
"MinWorkerCount" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
minWorkerCount,
         Key
"ScaleInPolicy" Key -> ScaleInPolicyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ScaleInPolicyProperty
scaleInPolicy,
         Key
"ScaleOutPolicy" Key -> ScaleOutPolicyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ScaleOutPolicyProperty
scaleOutPolicy]
instance Property "MaxWorkerCount" AutoScalingProperty where
  type PropertyType "MaxWorkerCount" AutoScalingProperty = Value Prelude.Integer
  set :: PropertyType "MaxWorkerCount" AutoScalingProperty
-> AutoScalingProperty -> AutoScalingProperty
set PropertyType "MaxWorkerCount" AutoScalingProperty
newValue AutoScalingProperty {()
Value Integer
ScaleInPolicyProperty
ScaleOutPolicyProperty
haddock_workaround_ :: AutoScalingProperty -> ()
maxWorkerCount :: AutoScalingProperty -> Value Integer
mcuCount :: AutoScalingProperty -> Value Integer
minWorkerCount :: AutoScalingProperty -> Value Integer
scaleInPolicy :: AutoScalingProperty -> ScaleInPolicyProperty
scaleOutPolicy :: AutoScalingProperty -> ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
..}
    = AutoScalingProperty {maxWorkerCount :: Value Integer
maxWorkerCount = PropertyType "MaxWorkerCount" AutoScalingProperty
Value Integer
newValue, ()
Value Integer
ScaleInPolicyProperty
ScaleOutPolicyProperty
haddock_workaround_ :: ()
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
haddock_workaround_ :: ()
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
..}
instance Property "McuCount" AutoScalingProperty where
  type PropertyType "McuCount" AutoScalingProperty = Value Prelude.Integer
  set :: PropertyType "McuCount" AutoScalingProperty
-> AutoScalingProperty -> AutoScalingProperty
set PropertyType "McuCount" AutoScalingProperty
newValue AutoScalingProperty {()
Value Integer
ScaleInPolicyProperty
ScaleOutPolicyProperty
haddock_workaround_ :: AutoScalingProperty -> ()
maxWorkerCount :: AutoScalingProperty -> Value Integer
mcuCount :: AutoScalingProperty -> Value Integer
minWorkerCount :: AutoScalingProperty -> Value Integer
scaleInPolicy :: AutoScalingProperty -> ScaleInPolicyProperty
scaleOutPolicy :: AutoScalingProperty -> ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
..}
    = AutoScalingProperty {mcuCount :: Value Integer
mcuCount = PropertyType "McuCount" AutoScalingProperty
Value Integer
newValue, ()
Value Integer
ScaleInPolicyProperty
ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
..}
instance Property "MinWorkerCount" AutoScalingProperty where
  type PropertyType "MinWorkerCount" AutoScalingProperty = Value Prelude.Integer
  set :: PropertyType "MinWorkerCount" AutoScalingProperty
-> AutoScalingProperty -> AutoScalingProperty
set PropertyType "MinWorkerCount" AutoScalingProperty
newValue AutoScalingProperty {()
Value Integer
ScaleInPolicyProperty
ScaleOutPolicyProperty
haddock_workaround_ :: AutoScalingProperty -> ()
maxWorkerCount :: AutoScalingProperty -> Value Integer
mcuCount :: AutoScalingProperty -> Value Integer
minWorkerCount :: AutoScalingProperty -> Value Integer
scaleInPolicy :: AutoScalingProperty -> ScaleInPolicyProperty
scaleOutPolicy :: AutoScalingProperty -> ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
..}
    = AutoScalingProperty {minWorkerCount :: Value Integer
minWorkerCount = PropertyType "MinWorkerCount" AutoScalingProperty
Value Integer
newValue, ()
Value Integer
ScaleInPolicyProperty
ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
..}
instance Property "ScaleInPolicy" AutoScalingProperty where
  type PropertyType "ScaleInPolicy" AutoScalingProperty = ScaleInPolicyProperty
  set :: PropertyType "ScaleInPolicy" AutoScalingProperty
-> AutoScalingProperty -> AutoScalingProperty
set PropertyType "ScaleInPolicy" AutoScalingProperty
newValue AutoScalingProperty {()
Value Integer
ScaleInPolicyProperty
ScaleOutPolicyProperty
haddock_workaround_ :: AutoScalingProperty -> ()
maxWorkerCount :: AutoScalingProperty -> Value Integer
mcuCount :: AutoScalingProperty -> Value Integer
minWorkerCount :: AutoScalingProperty -> Value Integer
scaleInPolicy :: AutoScalingProperty -> ScaleInPolicyProperty
scaleOutPolicy :: AutoScalingProperty -> ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
..}
    = AutoScalingProperty {scaleInPolicy :: ScaleInPolicyProperty
scaleInPolicy = PropertyType "ScaleInPolicy" AutoScalingProperty
ScaleInPolicyProperty
newValue, ()
Value Integer
ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleOutPolicy :: ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleOutPolicy :: ScaleOutPolicyProperty
..}
instance Property "ScaleOutPolicy" AutoScalingProperty where
  type PropertyType "ScaleOutPolicy" AutoScalingProperty = ScaleOutPolicyProperty
  set :: PropertyType "ScaleOutPolicy" AutoScalingProperty
-> AutoScalingProperty -> AutoScalingProperty
set PropertyType "ScaleOutPolicy" AutoScalingProperty
newValue AutoScalingProperty {()
Value Integer
ScaleInPolicyProperty
ScaleOutPolicyProperty
haddock_workaround_ :: AutoScalingProperty -> ()
maxWorkerCount :: AutoScalingProperty -> Value Integer
mcuCount :: AutoScalingProperty -> Value Integer
minWorkerCount :: AutoScalingProperty -> Value Integer
scaleInPolicy :: AutoScalingProperty -> ScaleInPolicyProperty
scaleOutPolicy :: AutoScalingProperty -> ScaleOutPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
scaleOutPolicy :: ScaleOutPolicyProperty
..}
    = AutoScalingProperty {scaleOutPolicy :: ScaleOutPolicyProperty
scaleOutPolicy = PropertyType "ScaleOutPolicy" AutoScalingProperty
ScaleOutPolicyProperty
newValue, ()
Value Integer
ScaleInPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
haddock_workaround_ :: ()
maxWorkerCount :: Value Integer
mcuCount :: Value Integer
minWorkerCount :: Value Integer
scaleInPolicy :: ScaleInPolicyProperty
..}