module Stratosphere.IoT.TopicRule.PutAssetPropertyValueEntryProperty (
        module Exports, PutAssetPropertyValueEntryProperty(..),
        mkPutAssetPropertyValueEntryProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.IoT.TopicRule.AssetPropertyValueProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data PutAssetPropertyValueEntryProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html>
    PutAssetPropertyValueEntryProperty {PutAssetPropertyValueEntryProperty -> ()
haddock_workaround_ :: (),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-assetid>
                                        PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
assetId :: (Prelude.Maybe (Value Prelude.Text)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-entryid>
                                        PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
entryId :: (Prelude.Maybe (Value Prelude.Text)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-propertyalias>
                                        PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyAlias :: (Prelude.Maybe (Value Prelude.Text)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-propertyid>
                                        PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyId :: (Prelude.Maybe (Value Prelude.Text)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-propertyvalues>
                                        PutAssetPropertyValueEntryProperty -> [AssetPropertyValueProperty]
propertyValues :: [AssetPropertyValueProperty]}
  deriving stock (PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty -> Bool
(PutAssetPropertyValueEntryProperty
 -> PutAssetPropertyValueEntryProperty -> Bool)
-> (PutAssetPropertyValueEntryProperty
    -> PutAssetPropertyValueEntryProperty -> Bool)
-> Eq PutAssetPropertyValueEntryProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty -> Bool
== :: PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty -> Bool
$c/= :: PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty -> Bool
/= :: PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty -> Bool
Prelude.Eq, Int -> PutAssetPropertyValueEntryProperty -> ShowS
[PutAssetPropertyValueEntryProperty] -> ShowS
PutAssetPropertyValueEntryProperty -> String
(Int -> PutAssetPropertyValueEntryProperty -> ShowS)
-> (PutAssetPropertyValueEntryProperty -> String)
-> ([PutAssetPropertyValueEntryProperty] -> ShowS)
-> Show PutAssetPropertyValueEntryProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PutAssetPropertyValueEntryProperty -> ShowS
showsPrec :: Int -> PutAssetPropertyValueEntryProperty -> ShowS
$cshow :: PutAssetPropertyValueEntryProperty -> String
show :: PutAssetPropertyValueEntryProperty -> String
$cshowList :: [PutAssetPropertyValueEntryProperty] -> ShowS
showList :: [PutAssetPropertyValueEntryProperty] -> ShowS
Prelude.Show)
mkPutAssetPropertyValueEntryProperty ::
  [AssetPropertyValueProperty] -> PutAssetPropertyValueEntryProperty
mkPutAssetPropertyValueEntryProperty :: [AssetPropertyValueProperty] -> PutAssetPropertyValueEntryProperty
mkPutAssetPropertyValueEntryProperty [AssetPropertyValueProperty]
propertyValues
  = PutAssetPropertyValueEntryProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), propertyValues :: [AssetPropertyValueProperty]
propertyValues = [AssetPropertyValueProperty]
propertyValues,
       assetId :: Maybe (Value Text)
assetId = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing, entryId :: Maybe (Value Text)
entryId = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       propertyAlias :: Maybe (Value Text)
propertyAlias = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing, propertyId :: Maybe (Value Text)
propertyId = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties PutAssetPropertyValueEntryProperty where
  toResourceProperties :: PutAssetPropertyValueEntryProperty -> ResourceProperties
toResourceProperties PutAssetPropertyValueEntryProperty {[AssetPropertyValueProperty]
Maybe (Value Text)
()
haddock_workaround_ :: PutAssetPropertyValueEntryProperty -> ()
assetId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
entryId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyAlias :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyValues :: PutAssetPropertyValueEntryProperty -> [AssetPropertyValueProperty]
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoT::TopicRule.PutAssetPropertyValueEntry",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"PropertyValues" Key -> [AssetPropertyValueProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [AssetPropertyValueProperty]
propertyValues]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [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..=) Key
"AssetId" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
assetId,
                               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..=) Key
"EntryId" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
entryId,
                               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..=) Key
"PropertyAlias" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
propertyAlias,
                               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..=) Key
"PropertyId" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
propertyId]))}
instance JSON.ToJSON PutAssetPropertyValueEntryProperty where
  toJSON :: PutAssetPropertyValueEntryProperty -> Value
toJSON PutAssetPropertyValueEntryProperty {[AssetPropertyValueProperty]
Maybe (Value Text)
()
haddock_workaround_ :: PutAssetPropertyValueEntryProperty -> ()
assetId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
entryId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyAlias :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyValues :: PutAssetPropertyValueEntryProperty -> [AssetPropertyValueProperty]
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"PropertyValues" Key -> [AssetPropertyValueProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [AssetPropertyValueProperty]
propertyValues]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [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..=) Key
"AssetId" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
assetId,
                  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..=) Key
"EntryId" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
entryId,
                  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..=) Key
"PropertyAlias" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
propertyAlias,
                  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..=) Key
"PropertyId" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
propertyId])))
instance Property "AssetId" PutAssetPropertyValueEntryProperty where
  type PropertyType "AssetId" PutAssetPropertyValueEntryProperty = Value Prelude.Text
  set :: PropertyType "AssetId" PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty
set PropertyType "AssetId" PutAssetPropertyValueEntryProperty
newValue PutAssetPropertyValueEntryProperty {[AssetPropertyValueProperty]
Maybe (Value Text)
()
haddock_workaround_ :: PutAssetPropertyValueEntryProperty -> ()
assetId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
entryId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyAlias :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyValues :: PutAssetPropertyValueEntryProperty -> [AssetPropertyValueProperty]
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
..}
    = PutAssetPropertyValueEntryProperty
        {assetId :: Maybe (Value Text)
assetId = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "AssetId" PutAssetPropertyValueEntryProperty
Value Text
newValue, [AssetPropertyValueProperty]
Maybe (Value Text)
()
haddock_workaround_ :: ()
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
haddock_workaround_ :: ()
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
..}
instance Property "EntryId" PutAssetPropertyValueEntryProperty where
  type PropertyType "EntryId" PutAssetPropertyValueEntryProperty = Value Prelude.Text
  set :: PropertyType "EntryId" PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty
set PropertyType "EntryId" PutAssetPropertyValueEntryProperty
newValue PutAssetPropertyValueEntryProperty {[AssetPropertyValueProperty]
Maybe (Value Text)
()
haddock_workaround_ :: PutAssetPropertyValueEntryProperty -> ()
assetId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
entryId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyAlias :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyValues :: PutAssetPropertyValueEntryProperty -> [AssetPropertyValueProperty]
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
..}
    = PutAssetPropertyValueEntryProperty
        {entryId :: Maybe (Value Text)
entryId = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "EntryId" PutAssetPropertyValueEntryProperty
Value Text
newValue, [AssetPropertyValueProperty]
Maybe (Value Text)
()
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
..}
instance Property "PropertyAlias" PutAssetPropertyValueEntryProperty where
  type PropertyType "PropertyAlias" PutAssetPropertyValueEntryProperty = Value Prelude.Text
  set :: PropertyType "PropertyAlias" PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty
set PropertyType "PropertyAlias" PutAssetPropertyValueEntryProperty
newValue PutAssetPropertyValueEntryProperty {[AssetPropertyValueProperty]
Maybe (Value Text)
()
haddock_workaround_ :: PutAssetPropertyValueEntryProperty -> ()
assetId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
entryId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyAlias :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyValues :: PutAssetPropertyValueEntryProperty -> [AssetPropertyValueProperty]
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
..}
    = PutAssetPropertyValueEntryProperty
        {propertyAlias :: Maybe (Value Text)
propertyAlias = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "PropertyAlias" PutAssetPropertyValueEntryProperty
Value Text
newValue, [AssetPropertyValueProperty]
Maybe (Value Text)
()
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
..}
instance Property "PropertyId" PutAssetPropertyValueEntryProperty where
  type PropertyType "PropertyId" PutAssetPropertyValueEntryProperty = Value Prelude.Text
  set :: PropertyType "PropertyId" PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty
set PropertyType "PropertyId" PutAssetPropertyValueEntryProperty
newValue PutAssetPropertyValueEntryProperty {[AssetPropertyValueProperty]
Maybe (Value Text)
()
haddock_workaround_ :: PutAssetPropertyValueEntryProperty -> ()
assetId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
entryId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyAlias :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyValues :: PutAssetPropertyValueEntryProperty -> [AssetPropertyValueProperty]
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
..}
    = PutAssetPropertyValueEntryProperty
        {propertyId :: Maybe (Value Text)
propertyId = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "PropertyId" PutAssetPropertyValueEntryProperty
Value Text
newValue, [AssetPropertyValueProperty]
Maybe (Value Text)
()
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
..}
instance Property "PropertyValues" PutAssetPropertyValueEntryProperty where
  type PropertyType "PropertyValues" PutAssetPropertyValueEntryProperty = [AssetPropertyValueProperty]
  set :: PropertyType "PropertyValues" PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty
-> PutAssetPropertyValueEntryProperty
set PropertyType "PropertyValues" PutAssetPropertyValueEntryProperty
newValue PutAssetPropertyValueEntryProperty {[AssetPropertyValueProperty]
Maybe (Value Text)
()
haddock_workaround_ :: PutAssetPropertyValueEntryProperty -> ()
assetId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
entryId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyAlias :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyId :: PutAssetPropertyValueEntryProperty -> Maybe (Value Text)
propertyValues :: PutAssetPropertyValueEntryProperty -> [AssetPropertyValueProperty]
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
propertyValues :: [AssetPropertyValueProperty]
..}
    = PutAssetPropertyValueEntryProperty
        {propertyValues :: [AssetPropertyValueProperty]
propertyValues = [AssetPropertyValueProperty]
PropertyType "PropertyValues" PutAssetPropertyValueEntryProperty
newValue, Maybe (Value Text)
()
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
haddock_workaround_ :: ()
assetId :: Maybe (Value Text)
entryId :: Maybe (Value Text)
propertyAlias :: Maybe (Value Text)
propertyId :: Maybe (Value Text)
..}