module Stratosphere.Logs.Transformer.TypeConverterProperty (
        module Exports, TypeConverterProperty(..), mkTypeConverterProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Logs.Transformer.TypeConverterEntryProperty as Exports
import Stratosphere.ResourceProperties
data TypeConverterProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-transformer-typeconverter.html>
    TypeConverterProperty {TypeConverterProperty -> ()
haddock_workaround_ :: (),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-transformer-typeconverter.html#cfn-logs-transformer-typeconverter-entries>
                           TypeConverterProperty -> [TypeConverterEntryProperty]
entries :: [TypeConverterEntryProperty]}
  deriving stock (TypeConverterProperty -> TypeConverterProperty -> Bool
(TypeConverterProperty -> TypeConverterProperty -> Bool)
-> (TypeConverterProperty -> TypeConverterProperty -> Bool)
-> Eq TypeConverterProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TypeConverterProperty -> TypeConverterProperty -> Bool
== :: TypeConverterProperty -> TypeConverterProperty -> Bool
$c/= :: TypeConverterProperty -> TypeConverterProperty -> Bool
/= :: TypeConverterProperty -> TypeConverterProperty -> Bool
Prelude.Eq, Int -> TypeConverterProperty -> ShowS
[TypeConverterProperty] -> ShowS
TypeConverterProperty -> String
(Int -> TypeConverterProperty -> ShowS)
-> (TypeConverterProperty -> String)
-> ([TypeConverterProperty] -> ShowS)
-> Show TypeConverterProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TypeConverterProperty -> ShowS
showsPrec :: Int -> TypeConverterProperty -> ShowS
$cshow :: TypeConverterProperty -> String
show :: TypeConverterProperty -> String
$cshowList :: [TypeConverterProperty] -> ShowS
showList :: [TypeConverterProperty] -> ShowS
Prelude.Show)
mkTypeConverterProperty ::
  [TypeConverterEntryProperty] -> TypeConverterProperty
mkTypeConverterProperty :: [TypeConverterEntryProperty] -> TypeConverterProperty
mkTypeConverterProperty [TypeConverterEntryProperty]
entries
  = TypeConverterProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), entries :: [TypeConverterEntryProperty]
entries = [TypeConverterEntryProperty]
entries}
instance ToResourceProperties TypeConverterProperty where
  toResourceProperties :: TypeConverterProperty -> ResourceProperties
toResourceProperties TypeConverterProperty {[TypeConverterEntryProperty]
()
haddock_workaround_ :: TypeConverterProperty -> ()
entries :: TypeConverterProperty -> [TypeConverterEntryProperty]
haddock_workaround_ :: ()
entries :: [TypeConverterEntryProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Logs::Transformer.TypeConverter",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Entries" Key -> [TypeConverterEntryProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [TypeConverterEntryProperty]
entries]}
instance JSON.ToJSON TypeConverterProperty where
  toJSON :: TypeConverterProperty -> Value
toJSON TypeConverterProperty {[TypeConverterEntryProperty]
()
haddock_workaround_ :: TypeConverterProperty -> ()
entries :: TypeConverterProperty -> [TypeConverterEntryProperty]
haddock_workaround_ :: ()
entries :: [TypeConverterEntryProperty]
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Entries" Key -> [TypeConverterEntryProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [TypeConverterEntryProperty]
entries]
instance Property "Entries" TypeConverterProperty where
  type PropertyType "Entries" TypeConverterProperty = [TypeConverterEntryProperty]
  set :: PropertyType "Entries" TypeConverterProperty
-> TypeConverterProperty -> TypeConverterProperty
set PropertyType "Entries" TypeConverterProperty
newValue TypeConverterProperty {[TypeConverterEntryProperty]
()
haddock_workaround_ :: TypeConverterProperty -> ()
entries :: TypeConverterProperty -> [TypeConverterEntryProperty]
haddock_workaround_ :: ()
entries :: [TypeConverterEntryProperty]
..}
    = TypeConverterProperty {entries :: [TypeConverterEntryProperty]
entries = [TypeConverterEntryProperty]
PropertyType "Entries" TypeConverterProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}