module Stratosphere.AppRunner.AutoScalingConfiguration ( AutoScalingConfiguration(..), mkAutoScalingConfiguration ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data AutoScalingConfiguration = -- | See: AutoScalingConfiguration {haddock_workaround_ :: (), -- | See: autoScalingConfigurationName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: maxConcurrency :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: maxSize :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: minSize :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: tags :: (Prelude.Maybe [Tag])} deriving stock (Prelude.Eq, Prelude.Show) mkAutoScalingConfiguration :: AutoScalingConfiguration mkAutoScalingConfiguration = AutoScalingConfiguration {haddock_workaround_ = (), autoScalingConfigurationName = Prelude.Nothing, maxConcurrency = Prelude.Nothing, maxSize = Prelude.Nothing, minSize = Prelude.Nothing, tags = Prelude.Nothing} instance ToResourceProperties AutoScalingConfiguration where toResourceProperties AutoScalingConfiguration {..} = ResourceProperties {awsType = "AWS::AppRunner::AutoScalingConfiguration", supportsTags = Prelude.True, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "AutoScalingConfigurationName" Prelude.<$> autoScalingConfigurationName, (JSON..=) "MaxConcurrency" Prelude.<$> maxConcurrency, (JSON..=) "MaxSize" Prelude.<$> maxSize, (JSON..=) "MinSize" Prelude.<$> minSize, (JSON..=) "Tags" Prelude.<$> tags])} instance JSON.ToJSON AutoScalingConfiguration where toJSON AutoScalingConfiguration {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "AutoScalingConfigurationName" Prelude.<$> autoScalingConfigurationName, (JSON..=) "MaxConcurrency" Prelude.<$> maxConcurrency, (JSON..=) "MaxSize" Prelude.<$> maxSize, (JSON..=) "MinSize" Prelude.<$> minSize, (JSON..=) "Tags" Prelude.<$> tags])) instance Property "AutoScalingConfigurationName" AutoScalingConfiguration where type PropertyType "AutoScalingConfigurationName" AutoScalingConfiguration = Value Prelude.Text set newValue AutoScalingConfiguration {..} = AutoScalingConfiguration {autoScalingConfigurationName = Prelude.pure newValue, ..} instance Property "MaxConcurrency" AutoScalingConfiguration where type PropertyType "MaxConcurrency" AutoScalingConfiguration = Value Prelude.Integer set newValue AutoScalingConfiguration {..} = AutoScalingConfiguration {maxConcurrency = Prelude.pure newValue, ..} instance Property "MaxSize" AutoScalingConfiguration where type PropertyType "MaxSize" AutoScalingConfiguration = Value Prelude.Integer set newValue AutoScalingConfiguration {..} = AutoScalingConfiguration {maxSize = Prelude.pure newValue, ..} instance Property "MinSize" AutoScalingConfiguration where type PropertyType "MinSize" AutoScalingConfiguration = Value Prelude.Integer set newValue AutoScalingConfiguration {..} = AutoScalingConfiguration {minSize = Prelude.pure newValue, ..} instance Property "Tags" AutoScalingConfiguration where type PropertyType "Tags" AutoScalingConfiguration = [Tag] set newValue AutoScalingConfiguration {..} = AutoScalingConfiguration {tags = Prelude.pure newValue, ..}