module Stratosphere.Greengrass.LoggerDefinition.LoggerDefinitionVersionProperty (
        module Exports, LoggerDefinitionVersionProperty(..),
        mkLoggerDefinitionVersionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Greengrass.LoggerDefinition.LoggerProperty as Exports
import Stratosphere.ResourceProperties
data LoggerDefinitionVersionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-loggerdefinitionversion.html>
    LoggerDefinitionVersionProperty {LoggerDefinitionVersionProperty -> ()
haddock_workaround_ :: (),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-loggerdefinitionversion.html#cfn-greengrass-loggerdefinition-loggerdefinitionversion-loggers>
                                     LoggerDefinitionVersionProperty -> [LoggerProperty]
loggers :: [LoggerProperty]}
  deriving stock (LoggerDefinitionVersionProperty
-> LoggerDefinitionVersionProperty -> Bool
(LoggerDefinitionVersionProperty
 -> LoggerDefinitionVersionProperty -> Bool)
-> (LoggerDefinitionVersionProperty
    -> LoggerDefinitionVersionProperty -> Bool)
-> Eq LoggerDefinitionVersionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LoggerDefinitionVersionProperty
-> LoggerDefinitionVersionProperty -> Bool
== :: LoggerDefinitionVersionProperty
-> LoggerDefinitionVersionProperty -> Bool
$c/= :: LoggerDefinitionVersionProperty
-> LoggerDefinitionVersionProperty -> Bool
/= :: LoggerDefinitionVersionProperty
-> LoggerDefinitionVersionProperty -> Bool
Prelude.Eq, Int -> LoggerDefinitionVersionProperty -> ShowS
[LoggerDefinitionVersionProperty] -> ShowS
LoggerDefinitionVersionProperty -> String
(Int -> LoggerDefinitionVersionProperty -> ShowS)
-> (LoggerDefinitionVersionProperty -> String)
-> ([LoggerDefinitionVersionProperty] -> ShowS)
-> Show LoggerDefinitionVersionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LoggerDefinitionVersionProperty -> ShowS
showsPrec :: Int -> LoggerDefinitionVersionProperty -> ShowS
$cshow :: LoggerDefinitionVersionProperty -> String
show :: LoggerDefinitionVersionProperty -> String
$cshowList :: [LoggerDefinitionVersionProperty] -> ShowS
showList :: [LoggerDefinitionVersionProperty] -> ShowS
Prelude.Show)
mkLoggerDefinitionVersionProperty ::
  [LoggerProperty] -> LoggerDefinitionVersionProperty
mkLoggerDefinitionVersionProperty :: [LoggerProperty] -> LoggerDefinitionVersionProperty
mkLoggerDefinitionVersionProperty [LoggerProperty]
loggers
  = LoggerDefinitionVersionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), loggers :: [LoggerProperty]
loggers = [LoggerProperty]
loggers}
instance ToResourceProperties LoggerDefinitionVersionProperty where
  toResourceProperties :: LoggerDefinitionVersionProperty -> ResourceProperties
toResourceProperties LoggerDefinitionVersionProperty {[LoggerProperty]
()
haddock_workaround_ :: LoggerDefinitionVersionProperty -> ()
loggers :: LoggerDefinitionVersionProperty -> [LoggerProperty]
haddock_workaround_ :: ()
loggers :: [LoggerProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Greengrass::LoggerDefinition.LoggerDefinitionVersion",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Loggers" Key -> [LoggerProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [LoggerProperty]
loggers]}
instance JSON.ToJSON LoggerDefinitionVersionProperty where
  toJSON :: LoggerDefinitionVersionProperty -> Value
toJSON LoggerDefinitionVersionProperty {[LoggerProperty]
()
haddock_workaround_ :: LoggerDefinitionVersionProperty -> ()
loggers :: LoggerDefinitionVersionProperty -> [LoggerProperty]
haddock_workaround_ :: ()
loggers :: [LoggerProperty]
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Loggers" Key -> [LoggerProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [LoggerProperty]
loggers]
instance Property "Loggers" LoggerDefinitionVersionProperty where
  type PropertyType "Loggers" LoggerDefinitionVersionProperty = [LoggerProperty]
  set :: PropertyType "Loggers" LoggerDefinitionVersionProperty
-> LoggerDefinitionVersionProperty
-> LoggerDefinitionVersionProperty
set PropertyType "Loggers" LoggerDefinitionVersionProperty
newValue LoggerDefinitionVersionProperty {[LoggerProperty]
()
haddock_workaround_ :: LoggerDefinitionVersionProperty -> ()
loggers :: LoggerDefinitionVersionProperty -> [LoggerProperty]
haddock_workaround_ :: ()
loggers :: [LoggerProperty]
..}
    = LoggerDefinitionVersionProperty {loggers :: [LoggerProperty]
loggers = [LoggerProperty]
PropertyType "Loggers" LoggerDefinitionVersionProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}