packages feed

stratosphere-0.58.0: library-gen/Stratosphere/ResourceProperties/ApplicationInsightsApplicationComponentMonitoringSetting.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html

module Stratosphere.ResourceProperties.ApplicationInsightsApplicationComponentMonitoringSetting where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.ApplicationInsightsApplicationComponentConfiguration

-- | Full data type definition for
-- ApplicationInsightsApplicationComponentMonitoringSetting. See
-- 'applicationInsightsApplicationComponentMonitoringSetting' for a more
-- convenient constructor.
data ApplicationInsightsApplicationComponentMonitoringSetting =
  ApplicationInsightsApplicationComponentMonitoringSetting
  { _applicationInsightsApplicationComponentMonitoringSettingComponentARN :: Maybe (Val Text)
  , _applicationInsightsApplicationComponentMonitoringSettingComponentConfigurationMode :: Maybe (Val Text)
  , _applicationInsightsApplicationComponentMonitoringSettingComponentName :: Maybe (Val Text)
  , _applicationInsightsApplicationComponentMonitoringSettingCustomComponentConfiguration :: Maybe ApplicationInsightsApplicationComponentConfiguration
  , _applicationInsightsApplicationComponentMonitoringSettingDefaultOverwriteComponentConfiguration :: Maybe ApplicationInsightsApplicationComponentConfiguration
  , _applicationInsightsApplicationComponentMonitoringSettingTier :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON ApplicationInsightsApplicationComponentMonitoringSetting where
  toJSON ApplicationInsightsApplicationComponentMonitoringSetting{..} =
    object $
    catMaybes
    [ fmap (("ComponentARN",) . toJSON) _applicationInsightsApplicationComponentMonitoringSettingComponentARN
    , fmap (("ComponentConfigurationMode",) . toJSON) _applicationInsightsApplicationComponentMonitoringSettingComponentConfigurationMode
    , fmap (("ComponentName",) . toJSON) _applicationInsightsApplicationComponentMonitoringSettingComponentName
    , fmap (("CustomComponentConfiguration",) . toJSON) _applicationInsightsApplicationComponentMonitoringSettingCustomComponentConfiguration
    , fmap (("DefaultOverwriteComponentConfiguration",) . toJSON) _applicationInsightsApplicationComponentMonitoringSettingDefaultOverwriteComponentConfiguration
    , fmap (("Tier",) . toJSON) _applicationInsightsApplicationComponentMonitoringSettingTier
    ]

-- | Constructor for
-- 'ApplicationInsightsApplicationComponentMonitoringSetting' containing
-- required fields as arguments.
applicationInsightsApplicationComponentMonitoringSetting
  :: ApplicationInsightsApplicationComponentMonitoringSetting
applicationInsightsApplicationComponentMonitoringSetting  =
  ApplicationInsightsApplicationComponentMonitoringSetting
  { _applicationInsightsApplicationComponentMonitoringSettingComponentARN = Nothing
  , _applicationInsightsApplicationComponentMonitoringSettingComponentConfigurationMode = Nothing
  , _applicationInsightsApplicationComponentMonitoringSettingComponentName = Nothing
  , _applicationInsightsApplicationComponentMonitoringSettingCustomComponentConfiguration = Nothing
  , _applicationInsightsApplicationComponentMonitoringSettingDefaultOverwriteComponentConfiguration = Nothing
  , _applicationInsightsApplicationComponentMonitoringSettingTier = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-componentarn
aiacmsComponentARN :: Lens' ApplicationInsightsApplicationComponentMonitoringSetting (Maybe (Val Text))
aiacmsComponentARN = lens _applicationInsightsApplicationComponentMonitoringSettingComponentARN (\s a -> s { _applicationInsightsApplicationComponentMonitoringSettingComponentARN = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-componentconfigurationmode
aiacmsComponentConfigurationMode :: Lens' ApplicationInsightsApplicationComponentMonitoringSetting (Maybe (Val Text))
aiacmsComponentConfigurationMode = lens _applicationInsightsApplicationComponentMonitoringSettingComponentConfigurationMode (\s a -> s { _applicationInsightsApplicationComponentMonitoringSettingComponentConfigurationMode = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-componentname
aiacmsComponentName :: Lens' ApplicationInsightsApplicationComponentMonitoringSetting (Maybe (Val Text))
aiacmsComponentName = lens _applicationInsightsApplicationComponentMonitoringSettingComponentName (\s a -> s { _applicationInsightsApplicationComponentMonitoringSettingComponentName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-customcomponentconfiguration
aiacmsCustomComponentConfiguration :: Lens' ApplicationInsightsApplicationComponentMonitoringSetting (Maybe ApplicationInsightsApplicationComponentConfiguration)
aiacmsCustomComponentConfiguration = lens _applicationInsightsApplicationComponentMonitoringSettingCustomComponentConfiguration (\s a -> s { _applicationInsightsApplicationComponentMonitoringSettingCustomComponentConfiguration = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-defaultoverwritecomponentconfiguration
aiacmsDefaultOverwriteComponentConfiguration :: Lens' ApplicationInsightsApplicationComponentMonitoringSetting (Maybe ApplicationInsightsApplicationComponentConfiguration)
aiacmsDefaultOverwriteComponentConfiguration = lens _applicationInsightsApplicationComponentMonitoringSettingDefaultOverwriteComponentConfiguration (\s a -> s { _applicationInsightsApplicationComponentMonitoringSettingDefaultOverwriteComponentConfiguration = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-tier
aiacmsTier :: Lens' ApplicationInsightsApplicationComponentMonitoringSetting (Maybe (Val Text))
aiacmsTier = lens _applicationInsightsApplicationComponentMonitoringSettingTier (\s a -> s { _applicationInsightsApplicationComponentMonitoringSettingTier = a })