module Stratosphere.ManagedBlockchain.Node.NodeConfigurationProperty (
        NodeConfigurationProperty(..), mkNodeConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data NodeConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-node-nodeconfiguration.html>
    NodeConfigurationProperty {NodeConfigurationProperty -> ()
haddock_workaround_ :: (),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-node-nodeconfiguration.html#cfn-managedblockchain-node-nodeconfiguration-availabilityzone>
                               NodeConfigurationProperty -> Value Text
availabilityZone :: (Value Prelude.Text),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-node-nodeconfiguration.html#cfn-managedblockchain-node-nodeconfiguration-instancetype>
                               NodeConfigurationProperty -> Value Text
instanceType :: (Value Prelude.Text)}
  deriving stock (NodeConfigurationProperty -> NodeConfigurationProperty -> Bool
(NodeConfigurationProperty -> NodeConfigurationProperty -> Bool)
-> (NodeConfigurationProperty -> NodeConfigurationProperty -> Bool)
-> Eq NodeConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NodeConfigurationProperty -> NodeConfigurationProperty -> Bool
== :: NodeConfigurationProperty -> NodeConfigurationProperty -> Bool
$c/= :: NodeConfigurationProperty -> NodeConfigurationProperty -> Bool
/= :: NodeConfigurationProperty -> NodeConfigurationProperty -> Bool
Prelude.Eq, Int -> NodeConfigurationProperty -> ShowS
[NodeConfigurationProperty] -> ShowS
NodeConfigurationProperty -> String
(Int -> NodeConfigurationProperty -> ShowS)
-> (NodeConfigurationProperty -> String)
-> ([NodeConfigurationProperty] -> ShowS)
-> Show NodeConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NodeConfigurationProperty -> ShowS
showsPrec :: Int -> NodeConfigurationProperty -> ShowS
$cshow :: NodeConfigurationProperty -> String
show :: NodeConfigurationProperty -> String
$cshowList :: [NodeConfigurationProperty] -> ShowS
showList :: [NodeConfigurationProperty] -> ShowS
Prelude.Show)
mkNodeConfigurationProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> NodeConfigurationProperty
mkNodeConfigurationProperty :: Value Text -> Value Text -> NodeConfigurationProperty
mkNodeConfigurationProperty Value Text
availabilityZone Value Text
instanceType
  = NodeConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), availabilityZone :: Value Text
availabilityZone = Value Text
availabilityZone,
       instanceType :: Value Text
instanceType = Value Text
instanceType}
instance ToResourceProperties NodeConfigurationProperty where
  toResourceProperties :: NodeConfigurationProperty -> ResourceProperties
toResourceProperties NodeConfigurationProperty {()
Value Text
haddock_workaround_ :: NodeConfigurationProperty -> ()
availabilityZone :: NodeConfigurationProperty -> Value Text
instanceType :: NodeConfigurationProperty -> Value Text
haddock_workaround_ :: ()
availabilityZone :: Value Text
instanceType :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::ManagedBlockchain::Node.NodeConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"AvailabilityZone" 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
availabilityZone,
                       Key
"InstanceType" 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
instanceType]}
instance JSON.ToJSON NodeConfigurationProperty where
  toJSON :: NodeConfigurationProperty -> Value
toJSON NodeConfigurationProperty {()
Value Text
haddock_workaround_ :: NodeConfigurationProperty -> ()
availabilityZone :: NodeConfigurationProperty -> Value Text
instanceType :: NodeConfigurationProperty -> Value Text
haddock_workaround_ :: ()
availabilityZone :: Value Text
instanceType :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"AvailabilityZone" 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
availabilityZone,
         Key
"InstanceType" 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
instanceType]
instance Property "AvailabilityZone" NodeConfigurationProperty where
  type PropertyType "AvailabilityZone" NodeConfigurationProperty = Value Prelude.Text
  set :: PropertyType "AvailabilityZone" NodeConfigurationProperty
-> NodeConfigurationProperty -> NodeConfigurationProperty
set PropertyType "AvailabilityZone" NodeConfigurationProperty
newValue NodeConfigurationProperty {()
Value Text
haddock_workaround_ :: NodeConfigurationProperty -> ()
availabilityZone :: NodeConfigurationProperty -> Value Text
instanceType :: NodeConfigurationProperty -> Value Text
haddock_workaround_ :: ()
availabilityZone :: Value Text
instanceType :: Value Text
..}
    = NodeConfigurationProperty {availabilityZone :: Value Text
availabilityZone = PropertyType "AvailabilityZone" NodeConfigurationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
instanceType :: Value Text
haddock_workaround_ :: ()
instanceType :: Value Text
..}
instance Property "InstanceType" NodeConfigurationProperty where
  type PropertyType "InstanceType" NodeConfigurationProperty = Value Prelude.Text
  set :: PropertyType "InstanceType" NodeConfigurationProperty
-> NodeConfigurationProperty -> NodeConfigurationProperty
set PropertyType "InstanceType" NodeConfigurationProperty
newValue NodeConfigurationProperty {()
Value Text
haddock_workaround_ :: NodeConfigurationProperty -> ()
availabilityZone :: NodeConfigurationProperty -> Value Text
instanceType :: NodeConfigurationProperty -> Value Text
haddock_workaround_ :: ()
availabilityZone :: Value Text
instanceType :: Value Text
..}
    = NodeConfigurationProperty {instanceType :: Value Text
instanceType = PropertyType "InstanceType" NodeConfigurationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
availabilityZone :: Value Text
haddock_workaround_ :: ()
availabilityZone :: Value Text
..}