module Stratosphere.ApplicationSignals.ServiceLevelObjective.SliProperty ( module Exports, SliProperty(..), mkSliProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.ApplicationSignals.ServiceLevelObjective.SliMetricProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data SliProperty = -- | See: SliProperty {haddock_workaround_ :: (), -- | See: comparisonOperator :: (Value Prelude.Text), -- | See: metricThreshold :: (Value Prelude.Double), -- | See: sliMetric :: SliMetricProperty} deriving stock (Prelude.Eq, Prelude.Show) mkSliProperty :: Value Prelude.Text -> Value Prelude.Double -> SliMetricProperty -> SliProperty mkSliProperty comparisonOperator metricThreshold sliMetric = SliProperty {haddock_workaround_ = (), comparisonOperator = comparisonOperator, metricThreshold = metricThreshold, sliMetric = sliMetric} instance ToResourceProperties SliProperty where toResourceProperties SliProperty {..} = ResourceProperties {awsType = "AWS::ApplicationSignals::ServiceLevelObjective.Sli", supportsTags = Prelude.False, properties = ["ComparisonOperator" JSON..= comparisonOperator, "MetricThreshold" JSON..= metricThreshold, "SliMetric" JSON..= sliMetric]} instance JSON.ToJSON SliProperty where toJSON SliProperty {..} = JSON.object ["ComparisonOperator" JSON..= comparisonOperator, "MetricThreshold" JSON..= metricThreshold, "SliMetric" JSON..= sliMetric] instance Property "ComparisonOperator" SliProperty where type PropertyType "ComparisonOperator" SliProperty = Value Prelude.Text set newValue SliProperty {..} = SliProperty {comparisonOperator = newValue, ..} instance Property "MetricThreshold" SliProperty where type PropertyType "MetricThreshold" SliProperty = Value Prelude.Double set newValue SliProperty {..} = SliProperty {metricThreshold = newValue, ..} instance Property "SliMetric" SliProperty where type PropertyType "SliMetric" SliProperty = SliMetricProperty set newValue SliProperty {..} = SliProperty {sliMetric = newValue, ..}