module Stratosphere.ApplicationInsights.Application ( module Exports, Application(..), mkApplication ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.ApplicationInsights.Application.ComponentMonitoringSettingProperty as Exports import {-# SOURCE #-} Stratosphere.ApplicationInsights.Application.CustomComponentProperty as Exports import {-# SOURCE #-} Stratosphere.ApplicationInsights.Application.LogPatternSetProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data Application = -- | See: Application {haddock_workaround_ :: (), -- | See: attachMissingPermission :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: autoConfigurationEnabled :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: cWEMonitorEnabled :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: componentMonitoringSettings :: (Prelude.Maybe [ComponentMonitoringSettingProperty]), -- | See: customComponents :: (Prelude.Maybe [CustomComponentProperty]), -- | See: groupingType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: logPatternSets :: (Prelude.Maybe [LogPatternSetProperty]), -- | See: opsCenterEnabled :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: opsItemSNSTopicArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: resourceGroupName :: (Value Prelude.Text), -- | See: sNSNotificationArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: tags :: (Prelude.Maybe [Tag])} deriving stock (Prelude.Eq, Prelude.Show) mkApplication :: Value Prelude.Text -> Application mkApplication resourceGroupName = Application {haddock_workaround_ = (), resourceGroupName = resourceGroupName, attachMissingPermission = Prelude.Nothing, autoConfigurationEnabled = Prelude.Nothing, cWEMonitorEnabled = Prelude.Nothing, componentMonitoringSettings = Prelude.Nothing, customComponents = Prelude.Nothing, groupingType = Prelude.Nothing, logPatternSets = Prelude.Nothing, opsCenterEnabled = Prelude.Nothing, opsItemSNSTopicArn = Prelude.Nothing, sNSNotificationArn = Prelude.Nothing, tags = Prelude.Nothing} instance ToResourceProperties Application where toResourceProperties Application {..} = ResourceProperties {awsType = "AWS::ApplicationInsights::Application", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["ResourceGroupName" JSON..= resourceGroupName] (Prelude.catMaybes [(JSON..=) "AttachMissingPermission" Prelude.<$> attachMissingPermission, (JSON..=) "AutoConfigurationEnabled" Prelude.<$> autoConfigurationEnabled, (JSON..=) "CWEMonitorEnabled" Prelude.<$> cWEMonitorEnabled, (JSON..=) "ComponentMonitoringSettings" Prelude.<$> componentMonitoringSettings, (JSON..=) "CustomComponents" Prelude.<$> customComponents, (JSON..=) "GroupingType" Prelude.<$> groupingType, (JSON..=) "LogPatternSets" Prelude.<$> logPatternSets, (JSON..=) "OpsCenterEnabled" Prelude.<$> opsCenterEnabled, (JSON..=) "OpsItemSNSTopicArn" Prelude.<$> opsItemSNSTopicArn, (JSON..=) "SNSNotificationArn" Prelude.<$> sNSNotificationArn, (JSON..=) "Tags" Prelude.<$> tags]))} instance JSON.ToJSON Application where toJSON Application {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["ResourceGroupName" JSON..= resourceGroupName] (Prelude.catMaybes [(JSON..=) "AttachMissingPermission" Prelude.<$> attachMissingPermission, (JSON..=) "AutoConfigurationEnabled" Prelude.<$> autoConfigurationEnabled, (JSON..=) "CWEMonitorEnabled" Prelude.<$> cWEMonitorEnabled, (JSON..=) "ComponentMonitoringSettings" Prelude.<$> componentMonitoringSettings, (JSON..=) "CustomComponents" Prelude.<$> customComponents, (JSON..=) "GroupingType" Prelude.<$> groupingType, (JSON..=) "LogPatternSets" Prelude.<$> logPatternSets, (JSON..=) "OpsCenterEnabled" Prelude.<$> opsCenterEnabled, (JSON..=) "OpsItemSNSTopicArn" Prelude.<$> opsItemSNSTopicArn, (JSON..=) "SNSNotificationArn" Prelude.<$> sNSNotificationArn, (JSON..=) "Tags" Prelude.<$> tags]))) instance Property "AttachMissingPermission" Application where type PropertyType "AttachMissingPermission" Application = Value Prelude.Bool set newValue Application {..} = Application {attachMissingPermission = Prelude.pure newValue, ..} instance Property "AutoConfigurationEnabled" Application where type PropertyType "AutoConfigurationEnabled" Application = Value Prelude.Bool set newValue Application {..} = Application {autoConfigurationEnabled = Prelude.pure newValue, ..} instance Property "CWEMonitorEnabled" Application where type PropertyType "CWEMonitorEnabled" Application = Value Prelude.Bool set newValue Application {..} = Application {cWEMonitorEnabled = Prelude.pure newValue, ..} instance Property "ComponentMonitoringSettings" Application where type PropertyType "ComponentMonitoringSettings" Application = [ComponentMonitoringSettingProperty] set newValue Application {..} = Application {componentMonitoringSettings = Prelude.pure newValue, ..} instance Property "CustomComponents" Application where type PropertyType "CustomComponents" Application = [CustomComponentProperty] set newValue Application {..} = Application {customComponents = Prelude.pure newValue, ..} instance Property "GroupingType" Application where type PropertyType "GroupingType" Application = Value Prelude.Text set newValue Application {..} = Application {groupingType = Prelude.pure newValue, ..} instance Property "LogPatternSets" Application where type PropertyType "LogPatternSets" Application = [LogPatternSetProperty] set newValue Application {..} = Application {logPatternSets = Prelude.pure newValue, ..} instance Property "OpsCenterEnabled" Application where type PropertyType "OpsCenterEnabled" Application = Value Prelude.Bool set newValue Application {..} = Application {opsCenterEnabled = Prelude.pure newValue, ..} instance Property "OpsItemSNSTopicArn" Application where type PropertyType "OpsItemSNSTopicArn" Application = Value Prelude.Text set newValue Application {..} = Application {opsItemSNSTopicArn = Prelude.pure newValue, ..} instance Property "ResourceGroupName" Application where type PropertyType "ResourceGroupName" Application = Value Prelude.Text set newValue Application {..} = Application {resourceGroupName = newValue, ..} instance Property "SNSNotificationArn" Application where type PropertyType "SNSNotificationArn" Application = Value Prelude.Text set newValue Application {..} = Application {sNSNotificationArn = Prelude.pure newValue, ..} instance Property "Tags" Application where type PropertyType "Tags" Application = [Tag] set newValue Application {..} = Application {tags = Prelude.pure newValue, ..}