packages feed

stratosphere-emr-1.0.0: gen/Stratosphere/EMR/InstanceFleetConfig/OnDemandCapacityReservationOptionsProperty.hs

module Stratosphere.EMR.InstanceFleetConfig.OnDemandCapacityReservationOptionsProperty (
        OnDemandCapacityReservationOptionsProperty(..),
        mkOnDemandCapacityReservationOptionsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data OnDemandCapacityReservationOptionsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandcapacityreservationoptions.html>
    OnDemandCapacityReservationOptionsProperty {haddock_workaround_ :: (),
                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandcapacityreservationoptions.html#cfn-elasticmapreduce-instancefleetconfig-ondemandcapacityreservationoptions-capacityreservationpreference>
                                                capacityReservationPreference :: (Prelude.Maybe (Value Prelude.Text)),
                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandcapacityreservationoptions.html#cfn-elasticmapreduce-instancefleetconfig-ondemandcapacityreservationoptions-capacityreservationresourcegrouparn>
                                                capacityReservationResourceGroupArn :: (Prelude.Maybe (Value Prelude.Text)),
                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandcapacityreservationoptions.html#cfn-elasticmapreduce-instancefleetconfig-ondemandcapacityreservationoptions-usagestrategy>
                                                usageStrategy :: (Prelude.Maybe (Value Prelude.Text))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkOnDemandCapacityReservationOptionsProperty ::
  OnDemandCapacityReservationOptionsProperty
mkOnDemandCapacityReservationOptionsProperty
  = OnDemandCapacityReservationOptionsProperty
      {haddock_workaround_ = (),
       capacityReservationPreference = Prelude.Nothing,
       capacityReservationResourceGroupArn = Prelude.Nothing,
       usageStrategy = Prelude.Nothing}
instance ToResourceProperties OnDemandCapacityReservationOptionsProperty where
  toResourceProperties
    OnDemandCapacityReservationOptionsProperty {..}
    = ResourceProperties
        {awsType = "AWS::EMR::InstanceFleetConfig.OnDemandCapacityReservationOptions",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "CapacityReservationPreference"
                              Prelude.<$> capacityReservationPreference,
                            (JSON..=) "CapacityReservationResourceGroupArn"
                              Prelude.<$> capacityReservationResourceGroupArn,
                            (JSON..=) "UsageStrategy" Prelude.<$> usageStrategy])}
instance JSON.ToJSON OnDemandCapacityReservationOptionsProperty where
  toJSON OnDemandCapacityReservationOptionsProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "CapacityReservationPreference"
                 Prelude.<$> capacityReservationPreference,
               (JSON..=) "CapacityReservationResourceGroupArn"
                 Prelude.<$> capacityReservationResourceGroupArn,
               (JSON..=) "UsageStrategy" Prelude.<$> usageStrategy]))
instance Property "CapacityReservationPreference" OnDemandCapacityReservationOptionsProperty where
  type PropertyType "CapacityReservationPreference" OnDemandCapacityReservationOptionsProperty = Value Prelude.Text
  set newValue OnDemandCapacityReservationOptionsProperty {..}
    = OnDemandCapacityReservationOptionsProperty
        {capacityReservationPreference = Prelude.pure newValue, ..}
instance Property "CapacityReservationResourceGroupArn" OnDemandCapacityReservationOptionsProperty where
  type PropertyType "CapacityReservationResourceGroupArn" OnDemandCapacityReservationOptionsProperty = Value Prelude.Text
  set newValue OnDemandCapacityReservationOptionsProperty {..}
    = OnDemandCapacityReservationOptionsProperty
        {capacityReservationResourceGroupArn = Prelude.pure newValue, ..}
instance Property "UsageStrategy" OnDemandCapacityReservationOptionsProperty where
  type PropertyType "UsageStrategy" OnDemandCapacityReservationOptionsProperty = Value Prelude.Text
  set newValue OnDemandCapacityReservationOptionsProperty {..}
    = OnDemandCapacityReservationOptionsProperty
        {usageStrategy = Prelude.pure newValue, ..}