stratosphere-0.28.0: library-gen/Stratosphere/ResourceProperties/AutoScalingAutoScalingGroupLaunchTemplate.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplate.html
module Stratosphere.ResourceProperties.AutoScalingAutoScalingGroupLaunchTemplate where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AutoScalingAutoScalingGroupLaunchTemplateSpecification
import Stratosphere.ResourceProperties.AutoScalingAutoScalingGroupLaunchTemplateOverrides
-- | Full data type definition for AutoScalingAutoScalingGroupLaunchTemplate.
-- See 'autoScalingAutoScalingGroupLaunchTemplate' for a more convenient
-- constructor.
data AutoScalingAutoScalingGroupLaunchTemplate =
AutoScalingAutoScalingGroupLaunchTemplate
{ _autoScalingAutoScalingGroupLaunchTemplateLaunchTemplateSpecification :: AutoScalingAutoScalingGroupLaunchTemplateSpecification
, _autoScalingAutoScalingGroupLaunchTemplateOverrides :: Maybe [AutoScalingAutoScalingGroupLaunchTemplateOverrides]
} deriving (Show, Eq)
instance ToJSON AutoScalingAutoScalingGroupLaunchTemplate where
toJSON AutoScalingAutoScalingGroupLaunchTemplate{..} =
object $
catMaybes
[ (Just . ("LaunchTemplateSpecification",) . toJSON) _autoScalingAutoScalingGroupLaunchTemplateLaunchTemplateSpecification
, fmap (("Overrides",) . toJSON) _autoScalingAutoScalingGroupLaunchTemplateOverrides
]
instance FromJSON AutoScalingAutoScalingGroupLaunchTemplate where
parseJSON (Object obj) =
AutoScalingAutoScalingGroupLaunchTemplate <$>
(obj .: "LaunchTemplateSpecification") <*>
(obj .:? "Overrides")
parseJSON _ = mempty
-- | Constructor for 'AutoScalingAutoScalingGroupLaunchTemplate' containing
-- required fields as arguments.
autoScalingAutoScalingGroupLaunchTemplate
:: AutoScalingAutoScalingGroupLaunchTemplateSpecification -- ^ 'asasgltLaunchTemplateSpecification'
-> AutoScalingAutoScalingGroupLaunchTemplate
autoScalingAutoScalingGroupLaunchTemplate launchTemplateSpecificationarg =
AutoScalingAutoScalingGroupLaunchTemplate
{ _autoScalingAutoScalingGroupLaunchTemplateLaunchTemplateSpecification = launchTemplateSpecificationarg
, _autoScalingAutoScalingGroupLaunchTemplateOverrides = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplate.html#cfn-as-group-launchtemplate
asasgltLaunchTemplateSpecification :: Lens' AutoScalingAutoScalingGroupLaunchTemplate AutoScalingAutoScalingGroupLaunchTemplateSpecification
asasgltLaunchTemplateSpecification = lens _autoScalingAutoScalingGroupLaunchTemplateLaunchTemplateSpecification (\s a -> s { _autoScalingAutoScalingGroupLaunchTemplateLaunchTemplateSpecification = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplate.html#cfn-as-mixedinstancespolicy-overrides
asasgltOverrides :: Lens' AutoScalingAutoScalingGroupLaunchTemplate (Maybe [AutoScalingAutoScalingGroupLaunchTemplateOverrides])
asasgltOverrides = lens _autoScalingAutoScalingGroupLaunchTemplateOverrides (\s a -> s { _autoScalingAutoScalingGroupLaunchTemplateOverrides = a })