packages feed

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

module Stratosphere.ApplicationInsights.Application.SubComponentConfigurationDetailsProperty (
        module Exports, SubComponentConfigurationDetailsProperty(..),
        mkSubComponentConfigurationDetailsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.ApplicationInsights.Application.AlarmMetricProperty as Exports
import {-# SOURCE #-} Stratosphere.ApplicationInsights.Application.LogProperty as Exports
import {-# SOURCE #-} Stratosphere.ApplicationInsights.Application.ProcessProperty as Exports
import {-# SOURCE #-} Stratosphere.ApplicationInsights.Application.WindowsEventProperty as Exports
import Stratosphere.ResourceProperties
data SubComponentConfigurationDetailsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html>
    SubComponentConfigurationDetailsProperty {haddock_workaround_ :: (),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html#cfn-applicationinsights-application-subcomponentconfigurationdetails-alarmmetrics>
                                              alarmMetrics :: (Prelude.Maybe [AlarmMetricProperty]),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html#cfn-applicationinsights-application-subcomponentconfigurationdetails-logs>
                                              logs :: (Prelude.Maybe [LogProperty]),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html#cfn-applicationinsights-application-subcomponentconfigurationdetails-processes>
                                              processes :: (Prelude.Maybe [ProcessProperty]),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html#cfn-applicationinsights-application-subcomponentconfigurationdetails-windowsevents>
                                              windowsEvents :: (Prelude.Maybe [WindowsEventProperty])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkSubComponentConfigurationDetailsProperty ::
  SubComponentConfigurationDetailsProperty
mkSubComponentConfigurationDetailsProperty
  = SubComponentConfigurationDetailsProperty
      {haddock_workaround_ = (), alarmMetrics = Prelude.Nothing,
       logs = Prelude.Nothing, processes = Prelude.Nothing,
       windowsEvents = Prelude.Nothing}
instance ToResourceProperties SubComponentConfigurationDetailsProperty where
  toResourceProperties SubComponentConfigurationDetailsProperty {..}
    = ResourceProperties
        {awsType = "AWS::ApplicationInsights::Application.SubComponentConfigurationDetails",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "AlarmMetrics" Prelude.<$> alarmMetrics,
                            (JSON..=) "Logs" Prelude.<$> logs,
                            (JSON..=) "Processes" Prelude.<$> processes,
                            (JSON..=) "WindowsEvents" Prelude.<$> windowsEvents])}
instance JSON.ToJSON SubComponentConfigurationDetailsProperty where
  toJSON SubComponentConfigurationDetailsProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "AlarmMetrics" Prelude.<$> alarmMetrics,
               (JSON..=) "Logs" Prelude.<$> logs,
               (JSON..=) "Processes" Prelude.<$> processes,
               (JSON..=) "WindowsEvents" Prelude.<$> windowsEvents]))
instance Property "AlarmMetrics" SubComponentConfigurationDetailsProperty where
  type PropertyType "AlarmMetrics" SubComponentConfigurationDetailsProperty = [AlarmMetricProperty]
  set newValue SubComponentConfigurationDetailsProperty {..}
    = SubComponentConfigurationDetailsProperty
        {alarmMetrics = Prelude.pure newValue, ..}
instance Property "Logs" SubComponentConfigurationDetailsProperty where
  type PropertyType "Logs" SubComponentConfigurationDetailsProperty = [LogProperty]
  set newValue SubComponentConfigurationDetailsProperty {..}
    = SubComponentConfigurationDetailsProperty
        {logs = Prelude.pure newValue, ..}
instance Property "Processes" SubComponentConfigurationDetailsProperty where
  type PropertyType "Processes" SubComponentConfigurationDetailsProperty = [ProcessProperty]
  set newValue SubComponentConfigurationDetailsProperty {..}
    = SubComponentConfigurationDetailsProperty
        {processes = Prelude.pure newValue, ..}
instance Property "WindowsEvents" SubComponentConfigurationDetailsProperty where
  type PropertyType "WindowsEvents" SubComponentConfigurationDetailsProperty = [WindowsEventProperty]
  set newValue SubComponentConfigurationDetailsProperty {..}
    = SubComponentConfigurationDetailsProperty
        {windowsEvents = Prelude.pure newValue, ..}