packages feed

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

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

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

module Stratosphere.ResourceProperties.ApplicationInsightsApplicationWindowsEvent where

import Stratosphere.ResourceImports


-- | Full data type definition for ApplicationInsightsApplicationWindowsEvent.
-- See 'applicationInsightsApplicationWindowsEvent' for a more convenient
-- constructor.
data ApplicationInsightsApplicationWindowsEvent =
  ApplicationInsightsApplicationWindowsEvent
  { _applicationInsightsApplicationWindowsEventEventLevels :: ValList Text
  , _applicationInsightsApplicationWindowsEventEventName :: Val Text
  , _applicationInsightsApplicationWindowsEventLogGroupName :: Val Text
  , _applicationInsightsApplicationWindowsEventPatternSet :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON ApplicationInsightsApplicationWindowsEvent where
  toJSON ApplicationInsightsApplicationWindowsEvent{..} =
    object $
    catMaybes
    [ (Just . ("EventLevels",) . toJSON) _applicationInsightsApplicationWindowsEventEventLevels
    , (Just . ("EventName",) . toJSON) _applicationInsightsApplicationWindowsEventEventName
    , (Just . ("LogGroupName",) . toJSON) _applicationInsightsApplicationWindowsEventLogGroupName
    , fmap (("PatternSet",) . toJSON) _applicationInsightsApplicationWindowsEventPatternSet
    ]

-- | Constructor for 'ApplicationInsightsApplicationWindowsEvent' containing
-- required fields as arguments.
applicationInsightsApplicationWindowsEvent
  :: ValList Text -- ^ 'aiaweEventLevels'
  -> Val Text -- ^ 'aiaweEventName'
  -> Val Text -- ^ 'aiaweLogGroupName'
  -> ApplicationInsightsApplicationWindowsEvent
applicationInsightsApplicationWindowsEvent eventLevelsarg eventNamearg logGroupNamearg =
  ApplicationInsightsApplicationWindowsEvent
  { _applicationInsightsApplicationWindowsEventEventLevels = eventLevelsarg
  , _applicationInsightsApplicationWindowsEventEventName = eventNamearg
  , _applicationInsightsApplicationWindowsEventLogGroupName = logGroupNamearg
  , _applicationInsightsApplicationWindowsEventPatternSet = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html#cfn-applicationinsights-application-windowsevent-eventlevels
aiaweEventLevels :: Lens' ApplicationInsightsApplicationWindowsEvent (ValList Text)
aiaweEventLevels = lens _applicationInsightsApplicationWindowsEventEventLevels (\s a -> s { _applicationInsightsApplicationWindowsEventEventLevels = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html#cfn-applicationinsights-application-windowsevent-eventname
aiaweEventName :: Lens' ApplicationInsightsApplicationWindowsEvent (Val Text)
aiaweEventName = lens _applicationInsightsApplicationWindowsEventEventName (\s a -> s { _applicationInsightsApplicationWindowsEventEventName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html#cfn-applicationinsights-application-windowsevent-loggroupname
aiaweLogGroupName :: Lens' ApplicationInsightsApplicationWindowsEvent (Val Text)
aiaweLogGroupName = lens _applicationInsightsApplicationWindowsEventLogGroupName (\s a -> s { _applicationInsightsApplicationWindowsEventLogGroupName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html#cfn-applicationinsights-application-windowsevent-patternset
aiawePatternSet :: Lens' ApplicationInsightsApplicationWindowsEvent (Maybe (Val Text))
aiawePatternSet = lens _applicationInsightsApplicationWindowsEventPatternSet (\s a -> s { _applicationInsightsApplicationWindowsEventPatternSet = a })