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