module Stratosphere.Resources.LaunchConfiguration where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.AutoScalingBlockDeviceMapping
data LaunchConfiguration =
LaunchConfiguration
{ _launchConfigurationAssociatePublicIpAddress :: Maybe (Val Bool')
, _launchConfigurationBlockDeviceMappings :: Maybe [AutoScalingBlockDeviceMapping]
, _launchConfigurationClassicLinkVPCId :: Maybe (Val Text)
, _launchConfigurationClassicLinkVPCSecurityGroups :: Maybe [Val Text]
, _launchConfigurationEbsOptimized :: Maybe (Val Bool')
, _launchConfigurationIamInstanceProfile :: Maybe (Val Text)
, _launchConfigurationImageId :: Val Text
, _launchConfigurationInstanceId :: Maybe (Val Text)
, _launchConfigurationInstanceMonitoring :: Maybe (Val Bool')
, _launchConfigurationInstanceType :: Val Text
, _launchConfigurationKernelId :: Maybe (Val Text)
, _launchConfigurationKeyName :: Maybe (Val Text)
, _launchConfigurationPlacementTenancy :: Maybe (Val Text)
, _launchConfigurationRamDiskId :: Maybe (Val Text)
, _launchConfigurationSecurityGroups :: Maybe [Val Text]
, _launchConfigurationSpotPrice :: Maybe (Val Text)
, _launchConfigurationUserData :: Maybe (Val Text)
} deriving (Show, Generic)
instance ToJSON LaunchConfiguration where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }
instance FromJSON LaunchConfiguration where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }
launchConfiguration
:: Val Text
-> Val Text
-> LaunchConfiguration
launchConfiguration imageIdarg instanceTypearg =
LaunchConfiguration
{ _launchConfigurationAssociatePublicIpAddress = Nothing
, _launchConfigurationBlockDeviceMappings = Nothing
, _launchConfigurationClassicLinkVPCId = Nothing
, _launchConfigurationClassicLinkVPCSecurityGroups = Nothing
, _launchConfigurationEbsOptimized = Nothing
, _launchConfigurationIamInstanceProfile = Nothing
, _launchConfigurationImageId = imageIdarg
, _launchConfigurationInstanceId = Nothing
, _launchConfigurationInstanceMonitoring = Nothing
, _launchConfigurationInstanceType = instanceTypearg
, _launchConfigurationKernelId = Nothing
, _launchConfigurationKeyName = Nothing
, _launchConfigurationPlacementTenancy = Nothing
, _launchConfigurationRamDiskId = Nothing
, _launchConfigurationSecurityGroups = Nothing
, _launchConfigurationSpotPrice = Nothing
, _launchConfigurationUserData = Nothing
}
lcAssociatePublicIpAddress :: Lens' LaunchConfiguration (Maybe (Val Bool'))
lcAssociatePublicIpAddress = lens _launchConfigurationAssociatePublicIpAddress (\s a -> s { _launchConfigurationAssociatePublicIpAddress = a })
lcBlockDeviceMappings :: Lens' LaunchConfiguration (Maybe [AutoScalingBlockDeviceMapping])
lcBlockDeviceMappings = lens _launchConfigurationBlockDeviceMappings (\s a -> s { _launchConfigurationBlockDeviceMappings = a })
lcClassicLinkVPCId :: Lens' LaunchConfiguration (Maybe (Val Text))
lcClassicLinkVPCId = lens _launchConfigurationClassicLinkVPCId (\s a -> s { _launchConfigurationClassicLinkVPCId = a })
lcClassicLinkVPCSecurityGroups :: Lens' LaunchConfiguration (Maybe [Val Text])
lcClassicLinkVPCSecurityGroups = lens _launchConfigurationClassicLinkVPCSecurityGroups (\s a -> s { _launchConfigurationClassicLinkVPCSecurityGroups = a })
lcEbsOptimized :: Lens' LaunchConfiguration (Maybe (Val Bool'))
lcEbsOptimized = lens _launchConfigurationEbsOptimized (\s a -> s { _launchConfigurationEbsOptimized = a })
lcIamInstanceProfile :: Lens' LaunchConfiguration (Maybe (Val Text))
lcIamInstanceProfile = lens _launchConfigurationIamInstanceProfile (\s a -> s { _launchConfigurationIamInstanceProfile = a })
lcImageId :: Lens' LaunchConfiguration (Val Text)
lcImageId = lens _launchConfigurationImageId (\s a -> s { _launchConfigurationImageId = a })
lcInstanceId :: Lens' LaunchConfiguration (Maybe (Val Text))
lcInstanceId = lens _launchConfigurationInstanceId (\s a -> s { _launchConfigurationInstanceId = a })
lcInstanceMonitoring :: Lens' LaunchConfiguration (Maybe (Val Bool'))
lcInstanceMonitoring = lens _launchConfigurationInstanceMonitoring (\s a -> s { _launchConfigurationInstanceMonitoring = a })
lcInstanceType :: Lens' LaunchConfiguration (Val Text)
lcInstanceType = lens _launchConfigurationInstanceType (\s a -> s { _launchConfigurationInstanceType = a })
lcKernelId :: Lens' LaunchConfiguration (Maybe (Val Text))
lcKernelId = lens _launchConfigurationKernelId (\s a -> s { _launchConfigurationKernelId = a })
lcKeyName :: Lens' LaunchConfiguration (Maybe (Val Text))
lcKeyName = lens _launchConfigurationKeyName (\s a -> s { _launchConfigurationKeyName = a })
lcPlacementTenancy :: Lens' LaunchConfiguration (Maybe (Val Text))
lcPlacementTenancy = lens _launchConfigurationPlacementTenancy (\s a -> s { _launchConfigurationPlacementTenancy = a })
lcRamDiskId :: Lens' LaunchConfiguration (Maybe (Val Text))
lcRamDiskId = lens _launchConfigurationRamDiskId (\s a -> s { _launchConfigurationRamDiskId = a })
lcSecurityGroups :: Lens' LaunchConfiguration (Maybe [Val Text])
lcSecurityGroups = lens _launchConfigurationSecurityGroups (\s a -> s { _launchConfigurationSecurityGroups = a })
lcSpotPrice :: Lens' LaunchConfiguration (Maybe (Val Text))
lcSpotPrice = lens _launchConfigurationSpotPrice (\s a -> s { _launchConfigurationSpotPrice = a })
lcUserData :: Lens' LaunchConfiguration (Maybe (Val Text))
lcUserData = lens _launchConfigurationUserData (\s a -> s { _launchConfigurationUserData = a })