packages feed

stratosphere-ce-1.0.0: gen/Stratosphere/CE/AnomalySubscription.hs

module Stratosphere.CE.AnomalySubscription (
        module Exports, AnomalySubscription(..), mkAnomalySubscription
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CE.AnomalySubscription.ResourceTagProperty as Exports
import {-# SOURCE #-} Stratosphere.CE.AnomalySubscription.SubscriberProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AnomalySubscription
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html>
    AnomalySubscription {haddock_workaround_ :: (),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-frequency>
                         frequency :: (Value Prelude.Text),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-monitorarnlist>
                         monitorArnList :: (ValueList Prelude.Text),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-resourcetags>
                         resourceTags :: (Prelude.Maybe [ResourceTagProperty]),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-subscribers>
                         subscribers :: [SubscriberProperty],
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-subscriptionname>
                         subscriptionName :: (Value Prelude.Text),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-threshold>
                         threshold :: (Prelude.Maybe (Value Prelude.Double)),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-thresholdexpression>
                         thresholdExpression :: (Prelude.Maybe (Value Prelude.Text))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkAnomalySubscription ::
  Value Prelude.Text
  -> ValueList Prelude.Text
     -> [SubscriberProperty]
        -> Value Prelude.Text -> AnomalySubscription
mkAnomalySubscription
  frequency
  monitorArnList
  subscribers
  subscriptionName
  = AnomalySubscription
      {haddock_workaround_ = (), frequency = frequency,
       monitorArnList = monitorArnList, subscribers = subscribers,
       subscriptionName = subscriptionName,
       resourceTags = Prelude.Nothing, threshold = Prelude.Nothing,
       thresholdExpression = Prelude.Nothing}
instance ToResourceProperties AnomalySubscription where
  toResourceProperties AnomalySubscription {..}
    = ResourceProperties
        {awsType = "AWS::CE::AnomalySubscription",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["Frequency" JSON..= frequency,
                            "MonitorArnList" JSON..= monitorArnList,
                            "Subscribers" JSON..= subscribers,
                            "SubscriptionName" JSON..= subscriptionName]
                           (Prelude.catMaybes
                              [(JSON..=) "ResourceTags" Prelude.<$> resourceTags,
                               (JSON..=) "Threshold" Prelude.<$> threshold,
                               (JSON..=) "ThresholdExpression" Prelude.<$> thresholdExpression]))}
instance JSON.ToJSON AnomalySubscription where
  toJSON AnomalySubscription {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["Frequency" JSON..= frequency,
               "MonitorArnList" JSON..= monitorArnList,
               "Subscribers" JSON..= subscribers,
               "SubscriptionName" JSON..= subscriptionName]
              (Prelude.catMaybes
                 [(JSON..=) "ResourceTags" Prelude.<$> resourceTags,
                  (JSON..=) "Threshold" Prelude.<$> threshold,
                  (JSON..=) "ThresholdExpression" Prelude.<$> thresholdExpression])))
instance Property "Frequency" AnomalySubscription where
  type PropertyType "Frequency" AnomalySubscription = Value Prelude.Text
  set newValue AnomalySubscription {..}
    = AnomalySubscription {frequency = newValue, ..}
instance Property "MonitorArnList" AnomalySubscription where
  type PropertyType "MonitorArnList" AnomalySubscription = ValueList Prelude.Text
  set newValue AnomalySubscription {..}
    = AnomalySubscription {monitorArnList = newValue, ..}
instance Property "ResourceTags" AnomalySubscription where
  type PropertyType "ResourceTags" AnomalySubscription = [ResourceTagProperty]
  set newValue AnomalySubscription {..}
    = AnomalySubscription {resourceTags = Prelude.pure newValue, ..}
instance Property "Subscribers" AnomalySubscription where
  type PropertyType "Subscribers" AnomalySubscription = [SubscriberProperty]
  set newValue AnomalySubscription {..}
    = AnomalySubscription {subscribers = newValue, ..}
instance Property "SubscriptionName" AnomalySubscription where
  type PropertyType "SubscriptionName" AnomalySubscription = Value Prelude.Text
  set newValue AnomalySubscription {..}
    = AnomalySubscription {subscriptionName = newValue, ..}
instance Property "Threshold" AnomalySubscription where
  type PropertyType "Threshold" AnomalySubscription = Value Prelude.Double
  set newValue AnomalySubscription {..}
    = AnomalySubscription {threshold = Prelude.pure newValue, ..}
instance Property "ThresholdExpression" AnomalySubscription where
  type PropertyType "ThresholdExpression" AnomalySubscription = Value Prelude.Text
  set newValue AnomalySubscription {..}
    = AnomalySubscription
        {thresholdExpression = Prelude.pure newValue, ..}