stratosphere-0.3.0: library-gen/Stratosphere/ResourceProperties/EC2SpotFleetLaunchSpecifications.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html
module Stratosphere.ResourceProperties.EC2SpotFleetLaunchSpecifications where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.EC2SpotFleetBlockDeviceMappings
import Stratosphere.ResourceProperties.EC2SpotFleetIamInstanceProfile
import Stratosphere.ResourceProperties.EC2SpotFleetMonitoring
import Stratosphere.ResourceProperties.EC2SpotFleetNetworkInterfaces
import Stratosphere.ResourceProperties.EC2SpotFleetPlacement
import Stratosphere.ResourceProperties.EC2SpotFleetSecurityGroups
-- | Full data type definition for EC2SpotFleetLaunchSpecifications. See
-- | 'ec2SpotFleetLaunchSpecifications' for a more convenient constructor.
data EC2SpotFleetLaunchSpecifications =
EC2SpotFleetLaunchSpecifications
{ _eC2SpotFleetLaunchSpecificationsBlockDeviceMappings :: Maybe [EC2SpotFleetBlockDeviceMappings]
, _eC2SpotFleetLaunchSpecificationsEbsOptimized :: Maybe (Val Bool')
, _eC2SpotFleetLaunchSpecificationsIamInstanceProfile :: Maybe EC2SpotFleetIamInstanceProfile
, _eC2SpotFleetLaunchSpecificationsImageId :: Val Text
, _eC2SpotFleetLaunchSpecificationsInstanceType :: Val Text
, _eC2SpotFleetLaunchSpecificationsKernelId :: Maybe (Val Text)
, _eC2SpotFleetLaunchSpecificationsKeyName :: Maybe (Val Text)
, _eC2SpotFleetLaunchSpecificationsMonitoring :: Maybe EC2SpotFleetMonitoring
, _eC2SpotFleetLaunchSpecificationsNetworkInterfaces :: Maybe [EC2SpotFleetNetworkInterfaces]
, _eC2SpotFleetLaunchSpecificationsPlacement :: Maybe EC2SpotFleetPlacement
, _eC2SpotFleetLaunchSpecificationsRamdiskId :: Maybe (Val Text)
, _eC2SpotFleetLaunchSpecificationsSecurityGroups :: Maybe [EC2SpotFleetSecurityGroups]
, _eC2SpotFleetLaunchSpecificationsSpotPrice :: Maybe (Val Text)
, _eC2SpotFleetLaunchSpecificationsSubnetId :: Maybe (Val Text)
, _eC2SpotFleetLaunchSpecificationsUserData :: Maybe (Val Text)
, _eC2SpotFleetLaunchSpecificationsWeightedCapacity :: Maybe (Val Double')
} deriving (Show, Generic)
instance ToJSON EC2SpotFleetLaunchSpecifications where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }
instance FromJSON EC2SpotFleetLaunchSpecifications where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 33, omitNothingFields = True }
-- | Constructor for 'EC2SpotFleetLaunchSpecifications' containing required
-- | fields as arguments.
ec2SpotFleetLaunchSpecifications
:: Val Text -- ^ 'ecsflsImageId'
-> Val Text -- ^ 'ecsflsInstanceType'
-> EC2SpotFleetLaunchSpecifications
ec2SpotFleetLaunchSpecifications imageIdarg instanceTypearg =
EC2SpotFleetLaunchSpecifications
{ _eC2SpotFleetLaunchSpecificationsBlockDeviceMappings = Nothing
, _eC2SpotFleetLaunchSpecificationsEbsOptimized = Nothing
, _eC2SpotFleetLaunchSpecificationsIamInstanceProfile = Nothing
, _eC2SpotFleetLaunchSpecificationsImageId = imageIdarg
, _eC2SpotFleetLaunchSpecificationsInstanceType = instanceTypearg
, _eC2SpotFleetLaunchSpecificationsKernelId = Nothing
, _eC2SpotFleetLaunchSpecificationsKeyName = Nothing
, _eC2SpotFleetLaunchSpecificationsMonitoring = Nothing
, _eC2SpotFleetLaunchSpecificationsNetworkInterfaces = Nothing
, _eC2SpotFleetLaunchSpecificationsPlacement = Nothing
, _eC2SpotFleetLaunchSpecificationsRamdiskId = Nothing
, _eC2SpotFleetLaunchSpecificationsSecurityGroups = Nothing
, _eC2SpotFleetLaunchSpecificationsSpotPrice = Nothing
, _eC2SpotFleetLaunchSpecificationsSubnetId = Nothing
, _eC2SpotFleetLaunchSpecificationsUserData = Nothing
, _eC2SpotFleetLaunchSpecificationsWeightedCapacity = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-blockdevicemappings
ecsflsBlockDeviceMappings :: Lens' EC2SpotFleetLaunchSpecifications (Maybe [EC2SpotFleetBlockDeviceMappings])
ecsflsBlockDeviceMappings = lens _eC2SpotFleetLaunchSpecificationsBlockDeviceMappings (\s a -> s { _eC2SpotFleetLaunchSpecificationsBlockDeviceMappings = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-ebsoptimized
ecsflsEbsOptimized :: Lens' EC2SpotFleetLaunchSpecifications (Maybe (Val Bool'))
ecsflsEbsOptimized = lens _eC2SpotFleetLaunchSpecificationsEbsOptimized (\s a -> s { _eC2SpotFleetLaunchSpecificationsEbsOptimized = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-iaminstanceprofile
ecsflsIamInstanceProfile :: Lens' EC2SpotFleetLaunchSpecifications (Maybe EC2SpotFleetIamInstanceProfile)
ecsflsIamInstanceProfile = lens _eC2SpotFleetLaunchSpecificationsIamInstanceProfile (\s a -> s { _eC2SpotFleetLaunchSpecificationsIamInstanceProfile = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-imageid
ecsflsImageId :: Lens' EC2SpotFleetLaunchSpecifications (Val Text)
ecsflsImageId = lens _eC2SpotFleetLaunchSpecificationsImageId (\s a -> s { _eC2SpotFleetLaunchSpecificationsImageId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-instancetype
ecsflsInstanceType :: Lens' EC2SpotFleetLaunchSpecifications (Val Text)
ecsflsInstanceType = lens _eC2SpotFleetLaunchSpecificationsInstanceType (\s a -> s { _eC2SpotFleetLaunchSpecificationsInstanceType = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-kernelid
ecsflsKernelId :: Lens' EC2SpotFleetLaunchSpecifications (Maybe (Val Text))
ecsflsKernelId = lens _eC2SpotFleetLaunchSpecificationsKernelId (\s a -> s { _eC2SpotFleetLaunchSpecificationsKernelId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-keyname
ecsflsKeyName :: Lens' EC2SpotFleetLaunchSpecifications (Maybe (Val Text))
ecsflsKeyName = lens _eC2SpotFleetLaunchSpecificationsKeyName (\s a -> s { _eC2SpotFleetLaunchSpecificationsKeyName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-monitoring
ecsflsMonitoring :: Lens' EC2SpotFleetLaunchSpecifications (Maybe EC2SpotFleetMonitoring)
ecsflsMonitoring = lens _eC2SpotFleetLaunchSpecificationsMonitoring (\s a -> s { _eC2SpotFleetLaunchSpecificationsMonitoring = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-networkinterfaces
ecsflsNetworkInterfaces :: Lens' EC2SpotFleetLaunchSpecifications (Maybe [EC2SpotFleetNetworkInterfaces])
ecsflsNetworkInterfaces = lens _eC2SpotFleetLaunchSpecificationsNetworkInterfaces (\s a -> s { _eC2SpotFleetLaunchSpecificationsNetworkInterfaces = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-placement
ecsflsPlacement :: Lens' EC2SpotFleetLaunchSpecifications (Maybe EC2SpotFleetPlacement)
ecsflsPlacement = lens _eC2SpotFleetLaunchSpecificationsPlacement (\s a -> s { _eC2SpotFleetLaunchSpecificationsPlacement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-ramdiskid
ecsflsRamdiskId :: Lens' EC2SpotFleetLaunchSpecifications (Maybe (Val Text))
ecsflsRamdiskId = lens _eC2SpotFleetLaunchSpecificationsRamdiskId (\s a -> s { _eC2SpotFleetLaunchSpecificationsRamdiskId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-securitygroups
ecsflsSecurityGroups :: Lens' EC2SpotFleetLaunchSpecifications (Maybe [EC2SpotFleetSecurityGroups])
ecsflsSecurityGroups = lens _eC2SpotFleetLaunchSpecificationsSecurityGroups (\s a -> s { _eC2SpotFleetLaunchSpecificationsSecurityGroups = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-spotprice
ecsflsSpotPrice :: Lens' EC2SpotFleetLaunchSpecifications (Maybe (Val Text))
ecsflsSpotPrice = lens _eC2SpotFleetLaunchSpecificationsSpotPrice (\s a -> s { _eC2SpotFleetLaunchSpecificationsSpotPrice = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-subnetid
ecsflsSubnetId :: Lens' EC2SpotFleetLaunchSpecifications (Maybe (Val Text))
ecsflsSubnetId = lens _eC2SpotFleetLaunchSpecificationsSubnetId (\s a -> s { _eC2SpotFleetLaunchSpecificationsSubnetId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-userdata
ecsflsUserData :: Lens' EC2SpotFleetLaunchSpecifications (Maybe (Val Text))
ecsflsUserData = lens _eC2SpotFleetLaunchSpecificationsUserData (\s a -> s { _eC2SpotFleetLaunchSpecificationsUserData = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications.html#cfn-ec2-spotfleet-launchspecifications-weightedcapacity
ecsflsWeightedCapacity :: Lens' EC2SpotFleetLaunchSpecifications (Maybe (Val Double'))
ecsflsWeightedCapacity = lens _eC2SpotFleetLaunchSpecificationsWeightedCapacity (\s a -> s { _eC2SpotFleetLaunchSpecificationsWeightedCapacity = a })