packages feed

stratosphere-applicationinsights-1.0.0: gen/Stratosphere/ApplicationInsights/Application/ComponentMonitoringSettingProperty.hs

module Stratosphere.ApplicationInsights.Application.ComponentMonitoringSettingProperty (
        module Exports, ComponentMonitoringSettingProperty(..),
        mkComponentMonitoringSettingProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.ApplicationInsights.Application.ComponentConfigurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ComponentMonitoringSettingProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html>
    ComponentMonitoringSettingProperty {haddock_workaround_ :: (),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-componentarn>
                                        componentARN :: (Prelude.Maybe (Value Prelude.Text)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-componentconfigurationmode>
                                        componentConfigurationMode :: (Value Prelude.Text),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-componentname>
                                        componentName :: (Prelude.Maybe (Value Prelude.Text)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-customcomponentconfiguration>
                                        customComponentConfiguration :: (Prelude.Maybe ComponentConfigurationProperty),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-defaultoverwritecomponentconfiguration>
                                        defaultOverwriteComponentConfiguration :: (Prelude.Maybe ComponentConfigurationProperty),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-tier>
                                        tier :: (Value Prelude.Text)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkComponentMonitoringSettingProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> ComponentMonitoringSettingProperty
mkComponentMonitoringSettingProperty
  componentConfigurationMode
  tier
  = ComponentMonitoringSettingProperty
      {haddock_workaround_ = (),
       componentConfigurationMode = componentConfigurationMode,
       tier = tier, componentARN = Prelude.Nothing,
       componentName = Prelude.Nothing,
       customComponentConfiguration = Prelude.Nothing,
       defaultOverwriteComponentConfiguration = Prelude.Nothing}
instance ToResourceProperties ComponentMonitoringSettingProperty where
  toResourceProperties ComponentMonitoringSettingProperty {..}
    = ResourceProperties
        {awsType = "AWS::ApplicationInsights::Application.ComponentMonitoringSetting",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["ComponentConfigurationMode" JSON..= componentConfigurationMode,
                            "Tier" JSON..= tier]
                           (Prelude.catMaybes
                              [(JSON..=) "ComponentARN" Prelude.<$> componentARN,
                               (JSON..=) "ComponentName" Prelude.<$> componentName,
                               (JSON..=) "CustomComponentConfiguration"
                                 Prelude.<$> customComponentConfiguration,
                               (JSON..=) "DefaultOverwriteComponentConfiguration"
                                 Prelude.<$> defaultOverwriteComponentConfiguration]))}
instance JSON.ToJSON ComponentMonitoringSettingProperty where
  toJSON ComponentMonitoringSettingProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["ComponentConfigurationMode" JSON..= componentConfigurationMode,
               "Tier" JSON..= tier]
              (Prelude.catMaybes
                 [(JSON..=) "ComponentARN" Prelude.<$> componentARN,
                  (JSON..=) "ComponentName" Prelude.<$> componentName,
                  (JSON..=) "CustomComponentConfiguration"
                    Prelude.<$> customComponentConfiguration,
                  (JSON..=) "DefaultOverwriteComponentConfiguration"
                    Prelude.<$> defaultOverwriteComponentConfiguration])))
instance Property "ComponentARN" ComponentMonitoringSettingProperty where
  type PropertyType "ComponentARN" ComponentMonitoringSettingProperty = Value Prelude.Text
  set newValue ComponentMonitoringSettingProperty {..}
    = ComponentMonitoringSettingProperty
        {componentARN = Prelude.pure newValue, ..}
instance Property "ComponentConfigurationMode" ComponentMonitoringSettingProperty where
  type PropertyType "ComponentConfigurationMode" ComponentMonitoringSettingProperty = Value Prelude.Text
  set newValue ComponentMonitoringSettingProperty {..}
    = ComponentMonitoringSettingProperty
        {componentConfigurationMode = newValue, ..}
instance Property "ComponentName" ComponentMonitoringSettingProperty where
  type PropertyType "ComponentName" ComponentMonitoringSettingProperty = Value Prelude.Text
  set newValue ComponentMonitoringSettingProperty {..}
    = ComponentMonitoringSettingProperty
        {componentName = Prelude.pure newValue, ..}
instance Property "CustomComponentConfiguration" ComponentMonitoringSettingProperty where
  type PropertyType "CustomComponentConfiguration" ComponentMonitoringSettingProperty = ComponentConfigurationProperty
  set newValue ComponentMonitoringSettingProperty {..}
    = ComponentMonitoringSettingProperty
        {customComponentConfiguration = Prelude.pure newValue, ..}
instance Property "DefaultOverwriteComponentConfiguration" ComponentMonitoringSettingProperty where
  type PropertyType "DefaultOverwriteComponentConfiguration" ComponentMonitoringSettingProperty = ComponentConfigurationProperty
  set newValue ComponentMonitoringSettingProperty {..}
    = ComponentMonitoringSettingProperty
        {defaultOverwriteComponentConfiguration = Prelude.pure newValue,
         ..}
instance Property "Tier" ComponentMonitoringSettingProperty where
  type PropertyType "Tier" ComponentMonitoringSettingProperty = Value Prelude.Text
  set newValue ComponentMonitoringSettingProperty {..}
    = ComponentMonitoringSettingProperty {tier = newValue, ..}