module Stratosphere.IoTFleetWise.Campaign.TimestreamConfigProperty (
        TimestreamConfigProperty(..), mkTimestreamConfigProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data TimestreamConfigProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-campaign-timestreamconfig.html>
    TimestreamConfigProperty {TimestreamConfigProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-campaign-timestreamconfig.html#cfn-iotfleetwise-campaign-timestreamconfig-executionrolearn>
                              TimestreamConfigProperty -> Value Text
executionRoleArn :: (Value Prelude.Text),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-campaign-timestreamconfig.html#cfn-iotfleetwise-campaign-timestreamconfig-timestreamtablearn>
                              TimestreamConfigProperty -> Value Text
timestreamTableArn :: (Value Prelude.Text)}
  deriving stock (TimestreamConfigProperty -> TimestreamConfigProperty -> Bool
(TimestreamConfigProperty -> TimestreamConfigProperty -> Bool)
-> (TimestreamConfigProperty -> TimestreamConfigProperty -> Bool)
-> Eq TimestreamConfigProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TimestreamConfigProperty -> TimestreamConfigProperty -> Bool
== :: TimestreamConfigProperty -> TimestreamConfigProperty -> Bool
$c/= :: TimestreamConfigProperty -> TimestreamConfigProperty -> Bool
/= :: TimestreamConfigProperty -> TimestreamConfigProperty -> Bool
Prelude.Eq, Int -> TimestreamConfigProperty -> ShowS
[TimestreamConfigProperty] -> ShowS
TimestreamConfigProperty -> String
(Int -> TimestreamConfigProperty -> ShowS)
-> (TimestreamConfigProperty -> String)
-> ([TimestreamConfigProperty] -> ShowS)
-> Show TimestreamConfigProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TimestreamConfigProperty -> ShowS
showsPrec :: Int -> TimestreamConfigProperty -> ShowS
$cshow :: TimestreamConfigProperty -> String
show :: TimestreamConfigProperty -> String
$cshowList :: [TimestreamConfigProperty] -> ShowS
showList :: [TimestreamConfigProperty] -> ShowS
Prelude.Show)
mkTimestreamConfigProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> TimestreamConfigProperty
mkTimestreamConfigProperty :: Value Text -> Value Text -> TimestreamConfigProperty
mkTimestreamConfigProperty Value Text
executionRoleArn Value Text
timestreamTableArn
  = TimestreamConfigProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), executionRoleArn :: Value Text
executionRoleArn = Value Text
executionRoleArn,
       timestreamTableArn :: Value Text
timestreamTableArn = Value Text
timestreamTableArn}
instance ToResourceProperties TimestreamConfigProperty where
  toResourceProperties :: TimestreamConfigProperty -> ResourceProperties
toResourceProperties TimestreamConfigProperty {()
Value Text
haddock_workaround_ :: TimestreamConfigProperty -> ()
executionRoleArn :: TimestreamConfigProperty -> Value Text
timestreamTableArn :: TimestreamConfigProperty -> Value Text
haddock_workaround_ :: ()
executionRoleArn :: Value Text
timestreamTableArn :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoTFleetWise::Campaign.TimestreamConfig",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"ExecutionRoleArn" 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
executionRoleArn,
                       Key
"TimestreamTableArn" 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
timestreamTableArn]}
instance JSON.ToJSON TimestreamConfigProperty where
  toJSON :: TimestreamConfigProperty -> Value
toJSON TimestreamConfigProperty {()
Value Text
haddock_workaround_ :: TimestreamConfigProperty -> ()
executionRoleArn :: TimestreamConfigProperty -> Value Text
timestreamTableArn :: TimestreamConfigProperty -> Value Text
haddock_workaround_ :: ()
executionRoleArn :: Value Text
timestreamTableArn :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"ExecutionRoleArn" 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
executionRoleArn,
         Key
"TimestreamTableArn" 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
timestreamTableArn]
instance Property "ExecutionRoleArn" TimestreamConfigProperty where
  type PropertyType "ExecutionRoleArn" TimestreamConfigProperty = Value Prelude.Text
  set :: PropertyType "ExecutionRoleArn" TimestreamConfigProperty
-> TimestreamConfigProperty -> TimestreamConfigProperty
set PropertyType "ExecutionRoleArn" TimestreamConfigProperty
newValue TimestreamConfigProperty {()
Value Text
haddock_workaround_ :: TimestreamConfigProperty -> ()
executionRoleArn :: TimestreamConfigProperty -> Value Text
timestreamTableArn :: TimestreamConfigProperty -> Value Text
haddock_workaround_ :: ()
executionRoleArn :: Value Text
timestreamTableArn :: Value Text
..}
    = TimestreamConfigProperty {executionRoleArn :: Value Text
executionRoleArn = PropertyType "ExecutionRoleArn" TimestreamConfigProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
timestreamTableArn :: Value Text
haddock_workaround_ :: ()
timestreamTableArn :: Value Text
..}
instance Property "TimestreamTableArn" TimestreamConfigProperty where
  type PropertyType "TimestreamTableArn" TimestreamConfigProperty = Value Prelude.Text
  set :: PropertyType "TimestreamTableArn" TimestreamConfigProperty
-> TimestreamConfigProperty -> TimestreamConfigProperty
set PropertyType "TimestreamTableArn" TimestreamConfigProperty
newValue TimestreamConfigProperty {()
Value Text
haddock_workaround_ :: TimestreamConfigProperty -> ()
executionRoleArn :: TimestreamConfigProperty -> Value Text
timestreamTableArn :: TimestreamConfigProperty -> Value Text
haddock_workaround_ :: ()
executionRoleArn :: Value Text
timestreamTableArn :: Value Text
..}
    = TimestreamConfigProperty {timestreamTableArn :: Value Text
timestreamTableArn = PropertyType "TimestreamTableArn" TimestreamConfigProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
executionRoleArn :: Value Text
haddock_workaround_ :: ()
executionRoleArn :: Value Text
..}