module Stratosphere.IoTWireless.WirelessDevice.AbpV11Property (
        module Exports, AbpV11Property(..), mkAbpV11Property
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.IoTWireless.WirelessDevice.SessionKeysAbpV11Property as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AbpV11Property
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv11.html>
    AbpV11Property {AbpV11Property -> ()
haddock_workaround_ :: (),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv11.html#cfn-iotwireless-wirelessdevice-abpv11-devaddr>
                    AbpV11Property -> Value Text
devAddr :: (Value Prelude.Text),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv11.html#cfn-iotwireless-wirelessdevice-abpv11-sessionkeys>
                    AbpV11Property -> SessionKeysAbpV11Property
sessionKeys :: SessionKeysAbpV11Property}
  deriving stock (AbpV11Property -> AbpV11Property -> Bool
(AbpV11Property -> AbpV11Property -> Bool)
-> (AbpV11Property -> AbpV11Property -> Bool) -> Eq AbpV11Property
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AbpV11Property -> AbpV11Property -> Bool
== :: AbpV11Property -> AbpV11Property -> Bool
$c/= :: AbpV11Property -> AbpV11Property -> Bool
/= :: AbpV11Property -> AbpV11Property -> Bool
Prelude.Eq, Int -> AbpV11Property -> ShowS
[AbpV11Property] -> ShowS
AbpV11Property -> String
(Int -> AbpV11Property -> ShowS)
-> (AbpV11Property -> String)
-> ([AbpV11Property] -> ShowS)
-> Show AbpV11Property
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AbpV11Property -> ShowS
showsPrec :: Int -> AbpV11Property -> ShowS
$cshow :: AbpV11Property -> String
show :: AbpV11Property -> String
$cshowList :: [AbpV11Property] -> ShowS
showList :: [AbpV11Property] -> ShowS
Prelude.Show)
mkAbpV11Property ::
  Value Prelude.Text -> SessionKeysAbpV11Property -> AbpV11Property
mkAbpV11Property :: Value Text -> SessionKeysAbpV11Property -> AbpV11Property
mkAbpV11Property Value Text
devAddr SessionKeysAbpV11Property
sessionKeys
  = AbpV11Property
      {haddock_workaround_ :: ()
haddock_workaround_ = (), devAddr :: Value Text
devAddr = Value Text
devAddr,
       sessionKeys :: SessionKeysAbpV11Property
sessionKeys = SessionKeysAbpV11Property
sessionKeys}
instance ToResourceProperties AbpV11Property where
  toResourceProperties :: AbpV11Property -> ResourceProperties
toResourceProperties AbpV11Property {()
Value Text
SessionKeysAbpV11Property
haddock_workaround_ :: AbpV11Property -> ()
devAddr :: AbpV11Property -> Value Text
sessionKeys :: AbpV11Property -> SessionKeysAbpV11Property
haddock_workaround_ :: ()
devAddr :: Value Text
sessionKeys :: SessionKeysAbpV11Property
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoTWireless::WirelessDevice.AbpV11",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"DevAddr" 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
devAddr,
                       Key
"SessionKeys" Key -> SessionKeysAbpV11Property -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= SessionKeysAbpV11Property
sessionKeys]}
instance JSON.ToJSON AbpV11Property where
  toJSON :: AbpV11Property -> Value
toJSON AbpV11Property {()
Value Text
SessionKeysAbpV11Property
haddock_workaround_ :: AbpV11Property -> ()
devAddr :: AbpV11Property -> Value Text
sessionKeys :: AbpV11Property -> SessionKeysAbpV11Property
haddock_workaround_ :: ()
devAddr :: Value Text
sessionKeys :: SessionKeysAbpV11Property
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"DevAddr" 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
devAddr, Key
"SessionKeys" Key -> SessionKeysAbpV11Property -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= SessionKeysAbpV11Property
sessionKeys]
instance Property "DevAddr" AbpV11Property where
  type PropertyType "DevAddr" AbpV11Property = Value Prelude.Text
  set :: PropertyType "DevAddr" AbpV11Property
-> AbpV11Property -> AbpV11Property
set PropertyType "DevAddr" AbpV11Property
newValue AbpV11Property {()
Value Text
SessionKeysAbpV11Property
haddock_workaround_ :: AbpV11Property -> ()
devAddr :: AbpV11Property -> Value Text
sessionKeys :: AbpV11Property -> SessionKeysAbpV11Property
haddock_workaround_ :: ()
devAddr :: Value Text
sessionKeys :: SessionKeysAbpV11Property
..}
    = AbpV11Property {devAddr :: Value Text
devAddr = PropertyType "DevAddr" AbpV11Property
Value Text
newValue, ()
SessionKeysAbpV11Property
haddock_workaround_ :: ()
sessionKeys :: SessionKeysAbpV11Property
haddock_workaround_ :: ()
sessionKeys :: SessionKeysAbpV11Property
..}
instance Property "SessionKeys" AbpV11Property where
  type PropertyType "SessionKeys" AbpV11Property = SessionKeysAbpV11Property
  set :: PropertyType "SessionKeys" AbpV11Property
-> AbpV11Property -> AbpV11Property
set PropertyType "SessionKeys" AbpV11Property
newValue AbpV11Property {()
Value Text
SessionKeysAbpV11Property
haddock_workaround_ :: AbpV11Property -> ()
devAddr :: AbpV11Property -> Value Text
sessionKeys :: AbpV11Property -> SessionKeysAbpV11Property
haddock_workaround_ :: ()
devAddr :: Value Text
sessionKeys :: SessionKeysAbpV11Property
..}
    = AbpV11Property {sessionKeys :: SessionKeysAbpV11Property
sessionKeys = PropertyType "SessionKeys" AbpV11Property
SessionKeysAbpV11Property
newValue, ()
Value Text
haddock_workaround_ :: ()
devAddr :: Value Text
haddock_workaround_ :: ()
devAddr :: Value Text
..}