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 {SubComponentConfigurationDetailsProperty -> ()
haddock_workaround_ :: (),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html#cfn-applicationinsights-application-subcomponentconfigurationdetails-alarmmetrics>
                                              SubComponentConfigurationDetailsProperty
-> Maybe [AlarmMetricProperty]
alarmMetrics :: (Prelude.Maybe [AlarmMetricProperty]),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html#cfn-applicationinsights-application-subcomponentconfigurationdetails-logs>
                                              SubComponentConfigurationDetailsProperty -> Maybe [LogProperty]
logs :: (Prelude.Maybe [LogProperty]),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html#cfn-applicationinsights-application-subcomponentconfigurationdetails-processes>
                                              SubComponentConfigurationDetailsProperty -> Maybe [ProcessProperty]
processes :: (Prelude.Maybe [ProcessProperty]),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html#cfn-applicationinsights-application-subcomponentconfigurationdetails-windowsevents>
                                              SubComponentConfigurationDetailsProperty
-> Maybe [WindowsEventProperty]
windowsEvents :: (Prelude.Maybe [WindowsEventProperty])}
  deriving stock (SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty -> Bool
(SubComponentConfigurationDetailsProperty
 -> SubComponentConfigurationDetailsProperty -> Bool)
-> (SubComponentConfigurationDetailsProperty
    -> SubComponentConfigurationDetailsProperty -> Bool)
-> Eq SubComponentConfigurationDetailsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty -> Bool
== :: SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty -> Bool
$c/= :: SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty -> Bool
/= :: SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty -> Bool
Prelude.Eq, Int -> SubComponentConfigurationDetailsProperty -> ShowS
[SubComponentConfigurationDetailsProperty] -> ShowS
SubComponentConfigurationDetailsProperty -> String
(Int -> SubComponentConfigurationDetailsProperty -> ShowS)
-> (SubComponentConfigurationDetailsProperty -> String)
-> ([SubComponentConfigurationDetailsProperty] -> ShowS)
-> Show SubComponentConfigurationDetailsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SubComponentConfigurationDetailsProperty -> ShowS
showsPrec :: Int -> SubComponentConfigurationDetailsProperty -> ShowS
$cshow :: SubComponentConfigurationDetailsProperty -> String
show :: SubComponentConfigurationDetailsProperty -> String
$cshowList :: [SubComponentConfigurationDetailsProperty] -> ShowS
showList :: [SubComponentConfigurationDetailsProperty] -> ShowS
Prelude.Show)
mkSubComponentConfigurationDetailsProperty ::
  SubComponentConfigurationDetailsProperty
mkSubComponentConfigurationDetailsProperty :: SubComponentConfigurationDetailsProperty
mkSubComponentConfigurationDetailsProperty
  = SubComponentConfigurationDetailsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), alarmMetrics :: Maybe [AlarmMetricProperty]
alarmMetrics = Maybe [AlarmMetricProperty]
forall a. Maybe a
Prelude.Nothing,
       logs :: Maybe [LogProperty]
logs = Maybe [LogProperty]
forall a. Maybe a
Prelude.Nothing, processes :: Maybe [ProcessProperty]
processes = Maybe [ProcessProperty]
forall a. Maybe a
Prelude.Nothing,
       windowsEvents :: Maybe [WindowsEventProperty]
windowsEvents = Maybe [WindowsEventProperty]
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties SubComponentConfigurationDetailsProperty where
  toResourceProperties :: SubComponentConfigurationDetailsProperty -> ResourceProperties
toResourceProperties SubComponentConfigurationDetailsProperty {Maybe [AlarmMetricProperty]
Maybe [LogProperty]
Maybe [ProcessProperty]
Maybe [WindowsEventProperty]
()
haddock_workaround_ :: SubComponentConfigurationDetailsProperty -> ()
alarmMetrics :: SubComponentConfigurationDetailsProperty
-> Maybe [AlarmMetricProperty]
logs :: SubComponentConfigurationDetailsProperty -> Maybe [LogProperty]
processes :: SubComponentConfigurationDetailsProperty -> Maybe [ProcessProperty]
windowsEvents :: SubComponentConfigurationDetailsProperty
-> Maybe [WindowsEventProperty]
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
logs :: Maybe [LogProperty]
processes :: Maybe [ProcessProperty]
windowsEvents :: Maybe [WindowsEventProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::ApplicationInsights::Application.SubComponentConfigurationDetails",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key -> [AlarmMetricProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AlarmMetrics" ([AlarmMetricProperty] -> (Key, Value))
-> Maybe [AlarmMetricProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AlarmMetricProperty]
alarmMetrics,
                            Key -> [LogProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Logs" ([LogProperty] -> (Key, Value))
-> Maybe [LogProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [LogProperty]
logs,
                            Key -> [ProcessProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Processes" ([ProcessProperty] -> (Key, Value))
-> Maybe [ProcessProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ProcessProperty]
processes,
                            Key -> [WindowsEventProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"WindowsEvents" ([WindowsEventProperty] -> (Key, Value))
-> Maybe [WindowsEventProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [WindowsEventProperty]
windowsEvents])}
instance JSON.ToJSON SubComponentConfigurationDetailsProperty where
  toJSON :: SubComponentConfigurationDetailsProperty -> Value
toJSON SubComponentConfigurationDetailsProperty {Maybe [AlarmMetricProperty]
Maybe [LogProperty]
Maybe [ProcessProperty]
Maybe [WindowsEventProperty]
()
haddock_workaround_ :: SubComponentConfigurationDetailsProperty -> ()
alarmMetrics :: SubComponentConfigurationDetailsProperty
-> Maybe [AlarmMetricProperty]
logs :: SubComponentConfigurationDetailsProperty -> Maybe [LogProperty]
processes :: SubComponentConfigurationDetailsProperty -> Maybe [ProcessProperty]
windowsEvents :: SubComponentConfigurationDetailsProperty
-> Maybe [WindowsEventProperty]
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
logs :: Maybe [LogProperty]
processes :: Maybe [ProcessProperty]
windowsEvents :: Maybe [WindowsEventProperty]
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key -> [AlarmMetricProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AlarmMetrics" ([AlarmMetricProperty] -> (Key, Value))
-> Maybe [AlarmMetricProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AlarmMetricProperty]
alarmMetrics,
               Key -> [LogProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Logs" ([LogProperty] -> (Key, Value))
-> Maybe [LogProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [LogProperty]
logs,
               Key -> [ProcessProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Processes" ([ProcessProperty] -> (Key, Value))
-> Maybe [ProcessProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ProcessProperty]
processes,
               Key -> [WindowsEventProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"WindowsEvents" ([WindowsEventProperty] -> (Key, Value))
-> Maybe [WindowsEventProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [WindowsEventProperty]
windowsEvents]))
instance Property "AlarmMetrics" SubComponentConfigurationDetailsProperty where
  type PropertyType "AlarmMetrics" SubComponentConfigurationDetailsProperty = [AlarmMetricProperty]
  set :: PropertyType
  "AlarmMetrics" SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty
set PropertyType
  "AlarmMetrics" SubComponentConfigurationDetailsProperty
newValue SubComponentConfigurationDetailsProperty {Maybe [AlarmMetricProperty]
Maybe [LogProperty]
Maybe [ProcessProperty]
Maybe [WindowsEventProperty]
()
haddock_workaround_ :: SubComponentConfigurationDetailsProperty -> ()
alarmMetrics :: SubComponentConfigurationDetailsProperty
-> Maybe [AlarmMetricProperty]
logs :: SubComponentConfigurationDetailsProperty -> Maybe [LogProperty]
processes :: SubComponentConfigurationDetailsProperty -> Maybe [ProcessProperty]
windowsEvents :: SubComponentConfigurationDetailsProperty
-> Maybe [WindowsEventProperty]
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
logs :: Maybe [LogProperty]
processes :: Maybe [ProcessProperty]
windowsEvents :: Maybe [WindowsEventProperty]
..}
    = SubComponentConfigurationDetailsProperty
        {alarmMetrics :: Maybe [AlarmMetricProperty]
alarmMetrics = [AlarmMetricProperty] -> Maybe [AlarmMetricProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [AlarmMetricProperty]
PropertyType
  "AlarmMetrics" SubComponentConfigurationDetailsProperty
newValue, Maybe [LogProperty]
Maybe [ProcessProperty]
Maybe [WindowsEventProperty]
()
haddock_workaround_ :: ()
logs :: Maybe [LogProperty]
processes :: Maybe [ProcessProperty]
windowsEvents :: Maybe [WindowsEventProperty]
haddock_workaround_ :: ()
logs :: Maybe [LogProperty]
processes :: Maybe [ProcessProperty]
windowsEvents :: Maybe [WindowsEventProperty]
..}
instance Property "Logs" SubComponentConfigurationDetailsProperty where
  type PropertyType "Logs" SubComponentConfigurationDetailsProperty = [LogProperty]
  set :: PropertyType "Logs" SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty
set PropertyType "Logs" SubComponentConfigurationDetailsProperty
newValue SubComponentConfigurationDetailsProperty {Maybe [AlarmMetricProperty]
Maybe [LogProperty]
Maybe [ProcessProperty]
Maybe [WindowsEventProperty]
()
haddock_workaround_ :: SubComponentConfigurationDetailsProperty -> ()
alarmMetrics :: SubComponentConfigurationDetailsProperty
-> Maybe [AlarmMetricProperty]
logs :: SubComponentConfigurationDetailsProperty -> Maybe [LogProperty]
processes :: SubComponentConfigurationDetailsProperty -> Maybe [ProcessProperty]
windowsEvents :: SubComponentConfigurationDetailsProperty
-> Maybe [WindowsEventProperty]
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
logs :: Maybe [LogProperty]
processes :: Maybe [ProcessProperty]
windowsEvents :: Maybe [WindowsEventProperty]
..}
    = SubComponentConfigurationDetailsProperty
        {logs :: Maybe [LogProperty]
logs = [LogProperty] -> Maybe [LogProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [LogProperty]
PropertyType "Logs" SubComponentConfigurationDetailsProperty
newValue, Maybe [AlarmMetricProperty]
Maybe [ProcessProperty]
Maybe [WindowsEventProperty]
()
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
processes :: Maybe [ProcessProperty]
windowsEvents :: Maybe [WindowsEventProperty]
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
processes :: Maybe [ProcessProperty]
windowsEvents :: Maybe [WindowsEventProperty]
..}
instance Property "Processes" SubComponentConfigurationDetailsProperty where
  type PropertyType "Processes" SubComponentConfigurationDetailsProperty = [ProcessProperty]
  set :: PropertyType "Processes" SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty
set PropertyType "Processes" SubComponentConfigurationDetailsProperty
newValue SubComponentConfigurationDetailsProperty {Maybe [AlarmMetricProperty]
Maybe [LogProperty]
Maybe [ProcessProperty]
Maybe [WindowsEventProperty]
()
haddock_workaround_ :: SubComponentConfigurationDetailsProperty -> ()
alarmMetrics :: SubComponentConfigurationDetailsProperty
-> Maybe [AlarmMetricProperty]
logs :: SubComponentConfigurationDetailsProperty -> Maybe [LogProperty]
processes :: SubComponentConfigurationDetailsProperty -> Maybe [ProcessProperty]
windowsEvents :: SubComponentConfigurationDetailsProperty
-> Maybe [WindowsEventProperty]
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
logs :: Maybe [LogProperty]
processes :: Maybe [ProcessProperty]
windowsEvents :: Maybe [WindowsEventProperty]
..}
    = SubComponentConfigurationDetailsProperty
        {processes :: Maybe [ProcessProperty]
processes = [ProcessProperty] -> Maybe [ProcessProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [ProcessProperty]
PropertyType "Processes" SubComponentConfigurationDetailsProperty
newValue, Maybe [AlarmMetricProperty]
Maybe [LogProperty]
Maybe [WindowsEventProperty]
()
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
logs :: Maybe [LogProperty]
windowsEvents :: Maybe [WindowsEventProperty]
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
logs :: Maybe [LogProperty]
windowsEvents :: Maybe [WindowsEventProperty]
..}
instance Property "WindowsEvents" SubComponentConfigurationDetailsProperty where
  type PropertyType "WindowsEvents" SubComponentConfigurationDetailsProperty = [WindowsEventProperty]
  set :: PropertyType
  "WindowsEvents" SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty
-> SubComponentConfigurationDetailsProperty
set PropertyType
  "WindowsEvents" SubComponentConfigurationDetailsProperty
newValue SubComponentConfigurationDetailsProperty {Maybe [AlarmMetricProperty]
Maybe [LogProperty]
Maybe [ProcessProperty]
Maybe [WindowsEventProperty]
()
haddock_workaround_ :: SubComponentConfigurationDetailsProperty -> ()
alarmMetrics :: SubComponentConfigurationDetailsProperty
-> Maybe [AlarmMetricProperty]
logs :: SubComponentConfigurationDetailsProperty -> Maybe [LogProperty]
processes :: SubComponentConfigurationDetailsProperty -> Maybe [ProcessProperty]
windowsEvents :: SubComponentConfigurationDetailsProperty
-> Maybe [WindowsEventProperty]
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
logs :: Maybe [LogProperty]
processes :: Maybe [ProcessProperty]
windowsEvents :: Maybe [WindowsEventProperty]
..}
    = SubComponentConfigurationDetailsProperty
        {windowsEvents :: Maybe [WindowsEventProperty]
windowsEvents = [WindowsEventProperty] -> Maybe [WindowsEventProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [WindowsEventProperty]
PropertyType
  "WindowsEvents" SubComponentConfigurationDetailsProperty
newValue, Maybe [AlarmMetricProperty]
Maybe [LogProperty]
Maybe [ProcessProperty]
()
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
logs :: Maybe [LogProperty]
processes :: Maybe [ProcessProperty]
haddock_workaround_ :: ()
alarmMetrics :: Maybe [AlarmMetricProperty]
logs :: Maybe [LogProperty]
processes :: Maybe [ProcessProperty]
..}