stratosphere-ec2-1.0.0: gen/Stratosphere/EC2/SpotFleet/SpotFleetLaunchSpecificationProperty.hs
module Stratosphere.EC2.SpotFleet.SpotFleetLaunchSpecificationProperty (
module Exports, SpotFleetLaunchSpecificationProperty(..),
mkSpotFleetLaunchSpecificationProperty
) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.BlockDeviceMappingProperty as Exports
import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.GroupIdentifierProperty as Exports
import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.IamInstanceProfileSpecificationProperty as Exports
import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.InstanceNetworkInterfaceSpecificationProperty as Exports
import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.InstanceRequirementsRequestProperty as Exports
import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.SpotFleetMonitoringProperty as Exports
import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.SpotFleetTagSpecificationProperty as Exports
import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.SpotPlacementProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SpotFleetLaunchSpecificationProperty
= -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html>
SpotFleetLaunchSpecificationProperty {haddock_workaround_ :: (),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-blockdevicemappings>
blockDeviceMappings :: (Prelude.Maybe [BlockDeviceMappingProperty]),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-ebsoptimized>
ebsOptimized :: (Prelude.Maybe (Value Prelude.Bool)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-iaminstanceprofile>
iamInstanceProfile :: (Prelude.Maybe IamInstanceProfileSpecificationProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-imageid>
imageId :: (Value Prelude.Text),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-instancerequirements>
instanceRequirements :: (Prelude.Maybe InstanceRequirementsRequestProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-instancetype>
instanceType :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-kernelid>
kernelId :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-keyname>
keyName :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-monitoring>
monitoring :: (Prelude.Maybe SpotFleetMonitoringProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-networkinterfaces>
networkInterfaces :: (Prelude.Maybe [InstanceNetworkInterfaceSpecificationProperty]),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-placement>
placement :: (Prelude.Maybe SpotPlacementProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-ramdiskid>
ramdiskId :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-securitygroups>
securityGroups :: (Prelude.Maybe [GroupIdentifierProperty]),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-spotprice>
spotPrice :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-subnetid>
subnetId :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-tagspecifications>
tagSpecifications :: (Prelude.Maybe [SpotFleetTagSpecificationProperty]),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-userdata>
userData :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-weightedcapacity>
weightedCapacity :: (Prelude.Maybe (Value Prelude.Double))}
deriving stock (Prelude.Eq, Prelude.Show)
mkSpotFleetLaunchSpecificationProperty ::
Value Prelude.Text -> SpotFleetLaunchSpecificationProperty
mkSpotFleetLaunchSpecificationProperty imageId
= SpotFleetLaunchSpecificationProperty
{haddock_workaround_ = (), imageId = imageId,
blockDeviceMappings = Prelude.Nothing,
ebsOptimized = Prelude.Nothing,
iamInstanceProfile = Prelude.Nothing,
instanceRequirements = Prelude.Nothing,
instanceType = Prelude.Nothing, kernelId = Prelude.Nothing,
keyName = Prelude.Nothing, monitoring = Prelude.Nothing,
networkInterfaces = Prelude.Nothing, placement = Prelude.Nothing,
ramdiskId = Prelude.Nothing, securityGroups = Prelude.Nothing,
spotPrice = Prelude.Nothing, subnetId = Prelude.Nothing,
tagSpecifications = Prelude.Nothing, userData = Prelude.Nothing,
weightedCapacity = Prelude.Nothing}
instance ToResourceProperties SpotFleetLaunchSpecificationProperty where
toResourceProperties SpotFleetLaunchSpecificationProperty {..}
= ResourceProperties
{awsType = "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification",
supportsTags = Prelude.False,
properties = Prelude.fromList
((Prelude.<>)
["ImageId" JSON..= imageId]
(Prelude.catMaybes
[(JSON..=) "BlockDeviceMappings" Prelude.<$> blockDeviceMappings,
(JSON..=) "EbsOptimized" Prelude.<$> ebsOptimized,
(JSON..=) "IamInstanceProfile" Prelude.<$> iamInstanceProfile,
(JSON..=) "InstanceRequirements" Prelude.<$> instanceRequirements,
(JSON..=) "InstanceType" Prelude.<$> instanceType,
(JSON..=) "KernelId" Prelude.<$> kernelId,
(JSON..=) "KeyName" Prelude.<$> keyName,
(JSON..=) "Monitoring" Prelude.<$> monitoring,
(JSON..=) "NetworkInterfaces" Prelude.<$> networkInterfaces,
(JSON..=) "Placement" Prelude.<$> placement,
(JSON..=) "RamdiskId" Prelude.<$> ramdiskId,
(JSON..=) "SecurityGroups" Prelude.<$> securityGroups,
(JSON..=) "SpotPrice" Prelude.<$> spotPrice,
(JSON..=) "SubnetId" Prelude.<$> subnetId,
(JSON..=) "TagSpecifications" Prelude.<$> tagSpecifications,
(JSON..=) "UserData" Prelude.<$> userData,
(JSON..=) "WeightedCapacity" Prelude.<$> weightedCapacity]))}
instance JSON.ToJSON SpotFleetLaunchSpecificationProperty where
toJSON SpotFleetLaunchSpecificationProperty {..}
= JSON.object
(Prelude.fromList
((Prelude.<>)
["ImageId" JSON..= imageId]
(Prelude.catMaybes
[(JSON..=) "BlockDeviceMappings" Prelude.<$> blockDeviceMappings,
(JSON..=) "EbsOptimized" Prelude.<$> ebsOptimized,
(JSON..=) "IamInstanceProfile" Prelude.<$> iamInstanceProfile,
(JSON..=) "InstanceRequirements" Prelude.<$> instanceRequirements,
(JSON..=) "InstanceType" Prelude.<$> instanceType,
(JSON..=) "KernelId" Prelude.<$> kernelId,
(JSON..=) "KeyName" Prelude.<$> keyName,
(JSON..=) "Monitoring" Prelude.<$> monitoring,
(JSON..=) "NetworkInterfaces" Prelude.<$> networkInterfaces,
(JSON..=) "Placement" Prelude.<$> placement,
(JSON..=) "RamdiskId" Prelude.<$> ramdiskId,
(JSON..=) "SecurityGroups" Prelude.<$> securityGroups,
(JSON..=) "SpotPrice" Prelude.<$> spotPrice,
(JSON..=) "SubnetId" Prelude.<$> subnetId,
(JSON..=) "TagSpecifications" Prelude.<$> tagSpecifications,
(JSON..=) "UserData" Prelude.<$> userData,
(JSON..=) "WeightedCapacity" Prelude.<$> weightedCapacity])))
instance Property "BlockDeviceMappings" SpotFleetLaunchSpecificationProperty where
type PropertyType "BlockDeviceMappings" SpotFleetLaunchSpecificationProperty = [BlockDeviceMappingProperty]
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{blockDeviceMappings = Prelude.pure newValue, ..}
instance Property "EbsOptimized" SpotFleetLaunchSpecificationProperty where
type PropertyType "EbsOptimized" SpotFleetLaunchSpecificationProperty = Value Prelude.Bool
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{ebsOptimized = Prelude.pure newValue, ..}
instance Property "IamInstanceProfile" SpotFleetLaunchSpecificationProperty where
type PropertyType "IamInstanceProfile" SpotFleetLaunchSpecificationProperty = IamInstanceProfileSpecificationProperty
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{iamInstanceProfile = Prelude.pure newValue, ..}
instance Property "ImageId" SpotFleetLaunchSpecificationProperty where
type PropertyType "ImageId" SpotFleetLaunchSpecificationProperty = Value Prelude.Text
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty {imageId = newValue, ..}
instance Property "InstanceRequirements" SpotFleetLaunchSpecificationProperty where
type PropertyType "InstanceRequirements" SpotFleetLaunchSpecificationProperty = InstanceRequirementsRequestProperty
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{instanceRequirements = Prelude.pure newValue, ..}
instance Property "InstanceType" SpotFleetLaunchSpecificationProperty where
type PropertyType "InstanceType" SpotFleetLaunchSpecificationProperty = Value Prelude.Text
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{instanceType = Prelude.pure newValue, ..}
instance Property "KernelId" SpotFleetLaunchSpecificationProperty where
type PropertyType "KernelId" SpotFleetLaunchSpecificationProperty = Value Prelude.Text
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{kernelId = Prelude.pure newValue, ..}
instance Property "KeyName" SpotFleetLaunchSpecificationProperty where
type PropertyType "KeyName" SpotFleetLaunchSpecificationProperty = Value Prelude.Text
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{keyName = Prelude.pure newValue, ..}
instance Property "Monitoring" SpotFleetLaunchSpecificationProperty where
type PropertyType "Monitoring" SpotFleetLaunchSpecificationProperty = SpotFleetMonitoringProperty
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{monitoring = Prelude.pure newValue, ..}
instance Property "NetworkInterfaces" SpotFleetLaunchSpecificationProperty where
type PropertyType "NetworkInterfaces" SpotFleetLaunchSpecificationProperty = [InstanceNetworkInterfaceSpecificationProperty]
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{networkInterfaces = Prelude.pure newValue, ..}
instance Property "Placement" SpotFleetLaunchSpecificationProperty where
type PropertyType "Placement" SpotFleetLaunchSpecificationProperty = SpotPlacementProperty
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{placement = Prelude.pure newValue, ..}
instance Property "RamdiskId" SpotFleetLaunchSpecificationProperty where
type PropertyType "RamdiskId" SpotFleetLaunchSpecificationProperty = Value Prelude.Text
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{ramdiskId = Prelude.pure newValue, ..}
instance Property "SecurityGroups" SpotFleetLaunchSpecificationProperty where
type PropertyType "SecurityGroups" SpotFleetLaunchSpecificationProperty = [GroupIdentifierProperty]
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{securityGroups = Prelude.pure newValue, ..}
instance Property "SpotPrice" SpotFleetLaunchSpecificationProperty where
type PropertyType "SpotPrice" SpotFleetLaunchSpecificationProperty = Value Prelude.Text
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{spotPrice = Prelude.pure newValue, ..}
instance Property "SubnetId" SpotFleetLaunchSpecificationProperty where
type PropertyType "SubnetId" SpotFleetLaunchSpecificationProperty = Value Prelude.Text
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{subnetId = Prelude.pure newValue, ..}
instance Property "TagSpecifications" SpotFleetLaunchSpecificationProperty where
type PropertyType "TagSpecifications" SpotFleetLaunchSpecificationProperty = [SpotFleetTagSpecificationProperty]
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{tagSpecifications = Prelude.pure newValue, ..}
instance Property "UserData" SpotFleetLaunchSpecificationProperty where
type PropertyType "UserData" SpotFleetLaunchSpecificationProperty = Value Prelude.Text
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{userData = Prelude.pure newValue, ..}
instance Property "WeightedCapacity" SpotFleetLaunchSpecificationProperty where
type PropertyType "WeightedCapacity" SpotFleetLaunchSpecificationProperty = Value Prelude.Double
set newValue SpotFleetLaunchSpecificationProperty {..}
= SpotFleetLaunchSpecificationProperty
{weightedCapacity = Prelude.pure newValue, ..}