module Stratosphere.EC2.SpotFleet.InstanceRequirementsRequestProperty ( module Exports, InstanceRequirementsRequestProperty(..), mkInstanceRequirementsRequestProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.AcceleratorCountRequestProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.AcceleratorTotalMemoryMiBRequestProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.BaselineEbsBandwidthMbpsRequestProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.BaselinePerformanceFactorsRequestProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.MemoryGiBPerVCpuRequestProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.MemoryMiBRequestProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.NetworkBandwidthGbpsRequestProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.NetworkInterfaceCountRequestProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.TotalLocalStorageGBRequestProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.SpotFleet.VCpuCountRangeRequestProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data InstanceRequirementsRequestProperty = -- | See: InstanceRequirementsRequestProperty {haddock_workaround_ :: (), -- | See: acceleratorCount :: (Prelude.Maybe AcceleratorCountRequestProperty), -- | See: acceleratorManufacturers :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: acceleratorNames :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: acceleratorTotalMemoryMiB :: (Prelude.Maybe AcceleratorTotalMemoryMiBRequestProperty), -- | See: acceleratorTypes :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: allowedInstanceTypes :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: bareMetal :: (Prelude.Maybe (Value Prelude.Text)), -- | See: baselineEbsBandwidthMbps :: (Prelude.Maybe BaselineEbsBandwidthMbpsRequestProperty), -- | See: baselinePerformanceFactors :: (Prelude.Maybe BaselinePerformanceFactorsRequestProperty), -- | See: burstablePerformance :: (Prelude.Maybe (Value Prelude.Text)), -- | See: cpuManufacturers :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: excludedInstanceTypes :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: instanceGenerations :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: localStorage :: (Prelude.Maybe (Value Prelude.Text)), -- | See: localStorageTypes :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: maxSpotPriceAsPercentageOfOptimalOnDemandPrice :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: memoryGiBPerVCpu :: (Prelude.Maybe MemoryGiBPerVCpuRequestProperty), -- | See: memoryMiB :: (Prelude.Maybe MemoryMiBRequestProperty), -- | See: networkBandwidthGbps :: (Prelude.Maybe NetworkBandwidthGbpsRequestProperty), -- | See: networkInterfaceCount :: (Prelude.Maybe NetworkInterfaceCountRequestProperty), -- | See: onDemandMaxPricePercentageOverLowestPrice :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: requireHibernateSupport :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: spotMaxPricePercentageOverLowestPrice :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: totalLocalStorageGB :: (Prelude.Maybe TotalLocalStorageGBRequestProperty), -- | See: vCpuCount :: (Prelude.Maybe VCpuCountRangeRequestProperty)} deriving stock (Prelude.Eq, Prelude.Show) mkInstanceRequirementsRequestProperty :: InstanceRequirementsRequestProperty mkInstanceRequirementsRequestProperty = InstanceRequirementsRequestProperty {haddock_workaround_ = (), acceleratorCount = Prelude.Nothing, acceleratorManufacturers = Prelude.Nothing, acceleratorNames = Prelude.Nothing, acceleratorTotalMemoryMiB = Prelude.Nothing, acceleratorTypes = Prelude.Nothing, allowedInstanceTypes = Prelude.Nothing, bareMetal = Prelude.Nothing, baselineEbsBandwidthMbps = Prelude.Nothing, baselinePerformanceFactors = Prelude.Nothing, burstablePerformance = Prelude.Nothing, cpuManufacturers = Prelude.Nothing, excludedInstanceTypes = Prelude.Nothing, instanceGenerations = Prelude.Nothing, localStorage = Prelude.Nothing, localStorageTypes = Prelude.Nothing, maxSpotPriceAsPercentageOfOptimalOnDemandPrice = Prelude.Nothing, memoryGiBPerVCpu = Prelude.Nothing, memoryMiB = Prelude.Nothing, networkBandwidthGbps = Prelude.Nothing, networkInterfaceCount = Prelude.Nothing, onDemandMaxPricePercentageOverLowestPrice = Prelude.Nothing, requireHibernateSupport = Prelude.Nothing, spotMaxPricePercentageOverLowestPrice = Prelude.Nothing, totalLocalStorageGB = Prelude.Nothing, vCpuCount = Prelude.Nothing} instance ToResourceProperties InstanceRequirementsRequestProperty where toResourceProperties InstanceRequirementsRequestProperty {..} = ResourceProperties {awsType = "AWS::EC2::SpotFleet.InstanceRequirementsRequest", supportsTags = Prelude.False, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "AcceleratorCount" Prelude.<$> acceleratorCount, (JSON..=) "AcceleratorManufacturers" Prelude.<$> acceleratorManufacturers, (JSON..=) "AcceleratorNames" Prelude.<$> acceleratorNames, (JSON..=) "AcceleratorTotalMemoryMiB" Prelude.<$> acceleratorTotalMemoryMiB, (JSON..=) "AcceleratorTypes" Prelude.<$> acceleratorTypes, (JSON..=) "AllowedInstanceTypes" Prelude.<$> allowedInstanceTypes, (JSON..=) "BareMetal" Prelude.<$> bareMetal, (JSON..=) "BaselineEbsBandwidthMbps" Prelude.<$> baselineEbsBandwidthMbps, (JSON..=) "BaselinePerformanceFactors" Prelude.<$> baselinePerformanceFactors, (JSON..=) "BurstablePerformance" Prelude.<$> burstablePerformance, (JSON..=) "CpuManufacturers" Prelude.<$> cpuManufacturers, (JSON..=) "ExcludedInstanceTypes" Prelude.<$> excludedInstanceTypes, (JSON..=) "InstanceGenerations" Prelude.<$> instanceGenerations, (JSON..=) "LocalStorage" Prelude.<$> localStorage, (JSON..=) "LocalStorageTypes" Prelude.<$> localStorageTypes, (JSON..=) "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice" Prelude.<$> maxSpotPriceAsPercentageOfOptimalOnDemandPrice, (JSON..=) "MemoryGiBPerVCpu" Prelude.<$> memoryGiBPerVCpu, (JSON..=) "MemoryMiB" Prelude.<$> memoryMiB, (JSON..=) "NetworkBandwidthGbps" Prelude.<$> networkBandwidthGbps, (JSON..=) "NetworkInterfaceCount" Prelude.<$> networkInterfaceCount, (JSON..=) "OnDemandMaxPricePercentageOverLowestPrice" Prelude.<$> onDemandMaxPricePercentageOverLowestPrice, (JSON..=) "RequireHibernateSupport" Prelude.<$> requireHibernateSupport, (JSON..=) "SpotMaxPricePercentageOverLowestPrice" Prelude.<$> spotMaxPricePercentageOverLowestPrice, (JSON..=) "TotalLocalStorageGB" Prelude.<$> totalLocalStorageGB, (JSON..=) "VCpuCount" Prelude.<$> vCpuCount])} instance JSON.ToJSON InstanceRequirementsRequestProperty where toJSON InstanceRequirementsRequestProperty {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "AcceleratorCount" Prelude.<$> acceleratorCount, (JSON..=) "AcceleratorManufacturers" Prelude.<$> acceleratorManufacturers, (JSON..=) "AcceleratorNames" Prelude.<$> acceleratorNames, (JSON..=) "AcceleratorTotalMemoryMiB" Prelude.<$> acceleratorTotalMemoryMiB, (JSON..=) "AcceleratorTypes" Prelude.<$> acceleratorTypes, (JSON..=) "AllowedInstanceTypes" Prelude.<$> allowedInstanceTypes, (JSON..=) "BareMetal" Prelude.<$> bareMetal, (JSON..=) "BaselineEbsBandwidthMbps" Prelude.<$> baselineEbsBandwidthMbps, (JSON..=) "BaselinePerformanceFactors" Prelude.<$> baselinePerformanceFactors, (JSON..=) "BurstablePerformance" Prelude.<$> burstablePerformance, (JSON..=) "CpuManufacturers" Prelude.<$> cpuManufacturers, (JSON..=) "ExcludedInstanceTypes" Prelude.<$> excludedInstanceTypes, (JSON..=) "InstanceGenerations" Prelude.<$> instanceGenerations, (JSON..=) "LocalStorage" Prelude.<$> localStorage, (JSON..=) "LocalStorageTypes" Prelude.<$> localStorageTypes, (JSON..=) "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice" Prelude.<$> maxSpotPriceAsPercentageOfOptimalOnDemandPrice, (JSON..=) "MemoryGiBPerVCpu" Prelude.<$> memoryGiBPerVCpu, (JSON..=) "MemoryMiB" Prelude.<$> memoryMiB, (JSON..=) "NetworkBandwidthGbps" Prelude.<$> networkBandwidthGbps, (JSON..=) "NetworkInterfaceCount" Prelude.<$> networkInterfaceCount, (JSON..=) "OnDemandMaxPricePercentageOverLowestPrice" Prelude.<$> onDemandMaxPricePercentageOverLowestPrice, (JSON..=) "RequireHibernateSupport" Prelude.<$> requireHibernateSupport, (JSON..=) "SpotMaxPricePercentageOverLowestPrice" Prelude.<$> spotMaxPricePercentageOverLowestPrice, (JSON..=) "TotalLocalStorageGB" Prelude.<$> totalLocalStorageGB, (JSON..=) "VCpuCount" Prelude.<$> vCpuCount])) instance Property "AcceleratorCount" InstanceRequirementsRequestProperty where type PropertyType "AcceleratorCount" InstanceRequirementsRequestProperty = AcceleratorCountRequestProperty set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {acceleratorCount = Prelude.pure newValue, ..} instance Property "AcceleratorManufacturers" InstanceRequirementsRequestProperty where type PropertyType "AcceleratorManufacturers" InstanceRequirementsRequestProperty = ValueList Prelude.Text set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {acceleratorManufacturers = Prelude.pure newValue, ..} instance Property "AcceleratorNames" InstanceRequirementsRequestProperty where type PropertyType "AcceleratorNames" InstanceRequirementsRequestProperty = ValueList Prelude.Text set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {acceleratorNames = Prelude.pure newValue, ..} instance Property "AcceleratorTotalMemoryMiB" InstanceRequirementsRequestProperty where type PropertyType "AcceleratorTotalMemoryMiB" InstanceRequirementsRequestProperty = AcceleratorTotalMemoryMiBRequestProperty set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {acceleratorTotalMemoryMiB = Prelude.pure newValue, ..} instance Property "AcceleratorTypes" InstanceRequirementsRequestProperty where type PropertyType "AcceleratorTypes" InstanceRequirementsRequestProperty = ValueList Prelude.Text set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {acceleratorTypes = Prelude.pure newValue, ..} instance Property "AllowedInstanceTypes" InstanceRequirementsRequestProperty where type PropertyType "AllowedInstanceTypes" InstanceRequirementsRequestProperty = ValueList Prelude.Text set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {allowedInstanceTypes = Prelude.pure newValue, ..} instance Property "BareMetal" InstanceRequirementsRequestProperty where type PropertyType "BareMetal" InstanceRequirementsRequestProperty = Value Prelude.Text set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {bareMetal = Prelude.pure newValue, ..} instance Property "BaselineEbsBandwidthMbps" InstanceRequirementsRequestProperty where type PropertyType "BaselineEbsBandwidthMbps" InstanceRequirementsRequestProperty = BaselineEbsBandwidthMbpsRequestProperty set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {baselineEbsBandwidthMbps = Prelude.pure newValue, ..} instance Property "BaselinePerformanceFactors" InstanceRequirementsRequestProperty where type PropertyType "BaselinePerformanceFactors" InstanceRequirementsRequestProperty = BaselinePerformanceFactorsRequestProperty set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {baselinePerformanceFactors = Prelude.pure newValue, ..} instance Property "BurstablePerformance" InstanceRequirementsRequestProperty where type PropertyType "BurstablePerformance" InstanceRequirementsRequestProperty = Value Prelude.Text set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {burstablePerformance = Prelude.pure newValue, ..} instance Property "CpuManufacturers" InstanceRequirementsRequestProperty where type PropertyType "CpuManufacturers" InstanceRequirementsRequestProperty = ValueList Prelude.Text set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {cpuManufacturers = Prelude.pure newValue, ..} instance Property "ExcludedInstanceTypes" InstanceRequirementsRequestProperty where type PropertyType "ExcludedInstanceTypes" InstanceRequirementsRequestProperty = ValueList Prelude.Text set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {excludedInstanceTypes = Prelude.pure newValue, ..} instance Property "InstanceGenerations" InstanceRequirementsRequestProperty where type PropertyType "InstanceGenerations" InstanceRequirementsRequestProperty = ValueList Prelude.Text set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {instanceGenerations = Prelude.pure newValue, ..} instance Property "LocalStorage" InstanceRequirementsRequestProperty where type PropertyType "LocalStorage" InstanceRequirementsRequestProperty = Value Prelude.Text set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {localStorage = Prelude.pure newValue, ..} instance Property "LocalStorageTypes" InstanceRequirementsRequestProperty where type PropertyType "LocalStorageTypes" InstanceRequirementsRequestProperty = ValueList Prelude.Text set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {localStorageTypes = Prelude.pure newValue, ..} instance Property "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice" InstanceRequirementsRequestProperty where type PropertyType "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice" InstanceRequirementsRequestProperty = Value Prelude.Integer set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {maxSpotPriceAsPercentageOfOptimalOnDemandPrice = Prelude.pure newValue, ..} instance Property "MemoryGiBPerVCpu" InstanceRequirementsRequestProperty where type PropertyType "MemoryGiBPerVCpu" InstanceRequirementsRequestProperty = MemoryGiBPerVCpuRequestProperty set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {memoryGiBPerVCpu = Prelude.pure newValue, ..} instance Property "MemoryMiB" InstanceRequirementsRequestProperty where type PropertyType "MemoryMiB" InstanceRequirementsRequestProperty = MemoryMiBRequestProperty set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {memoryMiB = Prelude.pure newValue, ..} instance Property "NetworkBandwidthGbps" InstanceRequirementsRequestProperty where type PropertyType "NetworkBandwidthGbps" InstanceRequirementsRequestProperty = NetworkBandwidthGbpsRequestProperty set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {networkBandwidthGbps = Prelude.pure newValue, ..} instance Property "NetworkInterfaceCount" InstanceRequirementsRequestProperty where type PropertyType "NetworkInterfaceCount" InstanceRequirementsRequestProperty = NetworkInterfaceCountRequestProperty set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {networkInterfaceCount = Prelude.pure newValue, ..} instance Property "OnDemandMaxPricePercentageOverLowestPrice" InstanceRequirementsRequestProperty where type PropertyType "OnDemandMaxPricePercentageOverLowestPrice" InstanceRequirementsRequestProperty = Value Prelude.Integer set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {onDemandMaxPricePercentageOverLowestPrice = Prelude.pure newValue, ..} instance Property "RequireHibernateSupport" InstanceRequirementsRequestProperty where type PropertyType "RequireHibernateSupport" InstanceRequirementsRequestProperty = Value Prelude.Bool set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {requireHibernateSupport = Prelude.pure newValue, ..} instance Property "SpotMaxPricePercentageOverLowestPrice" InstanceRequirementsRequestProperty where type PropertyType "SpotMaxPricePercentageOverLowestPrice" InstanceRequirementsRequestProperty = Value Prelude.Integer set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {spotMaxPricePercentageOverLowestPrice = Prelude.pure newValue, ..} instance Property "TotalLocalStorageGB" InstanceRequirementsRequestProperty where type PropertyType "TotalLocalStorageGB" InstanceRequirementsRequestProperty = TotalLocalStorageGBRequestProperty set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {totalLocalStorageGB = Prelude.pure newValue, ..} instance Property "VCpuCount" InstanceRequirementsRequestProperty where type PropertyType "VCpuCount" InstanceRequirementsRequestProperty = VCpuCountRangeRequestProperty set newValue InstanceRequirementsRequestProperty {..} = InstanceRequirementsRequestProperty {vCpuCount = Prelude.pure newValue, ..}