module Stratosphere.EMR.Cluster.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: OnDemandCapacityReservationOptionsProperty {haddock_workaround_ :: (), -- | See: capacityReservationPreference :: (Prelude.Maybe (Value Prelude.Text)), -- | See: capacityReservationResourceGroupArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: 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::Cluster.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, ..}