module Stratosphere.ResourceProperties.AutoScalingMetricsCollection where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
data AutoScalingMetricsCollection =
AutoScalingMetricsCollection
{ _autoScalingMetricsCollectionGranularity :: Val Text
, _autoScalingMetricsCollectionMetrics :: Maybe [Val Text]
} deriving (Show, Generic)
instance ToJSON AutoScalingMetricsCollection where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }
instance FromJSON AutoScalingMetricsCollection where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 29, omitNothingFields = True }
autoScalingMetricsCollection
:: Val Text
-> AutoScalingMetricsCollection
autoScalingMetricsCollection granularityarg =
AutoScalingMetricsCollection
{ _autoScalingMetricsCollectionGranularity = granularityarg
, _autoScalingMetricsCollectionMetrics = Nothing
}
asmcGranularity :: Lens' AutoScalingMetricsCollection (Val Text)
asmcGranularity = lens _autoScalingMetricsCollectionGranularity (\s a -> s { _autoScalingMetricsCollectionGranularity = a })
asmcMetrics :: Lens' AutoScalingMetricsCollection (Maybe [Val Text])
asmcMetrics = lens _autoScalingMetricsCollectionMetrics (\s a -> s { _autoScalingMetricsCollectionMetrics = a })