module Stratosphere.RoboMaker.SimulationApplication.SourceConfigProperty (
        SourceConfigProperty(..), mkSourceConfigProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SourceConfigProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html>
    SourceConfigProperty {SourceConfigProperty -> ()
haddock_workaround_ :: (),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html#cfn-robomaker-simulationapplication-sourceconfig-architecture>
                          SourceConfigProperty -> Value Text
architecture :: (Value Prelude.Text),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html#cfn-robomaker-simulationapplication-sourceconfig-s3bucket>
                          SourceConfigProperty -> Value Text
s3Bucket :: (Value Prelude.Text),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html#cfn-robomaker-simulationapplication-sourceconfig-s3key>
                          SourceConfigProperty -> Value Text
s3Key :: (Value Prelude.Text)}
  deriving stock (SourceConfigProperty -> SourceConfigProperty -> Bool
(SourceConfigProperty -> SourceConfigProperty -> Bool)
-> (SourceConfigProperty -> SourceConfigProperty -> Bool)
-> Eq SourceConfigProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SourceConfigProperty -> SourceConfigProperty -> Bool
== :: SourceConfigProperty -> SourceConfigProperty -> Bool
$c/= :: SourceConfigProperty -> SourceConfigProperty -> Bool
/= :: SourceConfigProperty -> SourceConfigProperty -> Bool
Prelude.Eq, Int -> SourceConfigProperty -> ShowS
[SourceConfigProperty] -> ShowS
SourceConfigProperty -> String
(Int -> SourceConfigProperty -> ShowS)
-> (SourceConfigProperty -> String)
-> ([SourceConfigProperty] -> ShowS)
-> Show SourceConfigProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SourceConfigProperty -> ShowS
showsPrec :: Int -> SourceConfigProperty -> ShowS
$cshow :: SourceConfigProperty -> String
show :: SourceConfigProperty -> String
$cshowList :: [SourceConfigProperty] -> ShowS
showList :: [SourceConfigProperty] -> ShowS
Prelude.Show)
mkSourceConfigProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> Value Prelude.Text -> SourceConfigProperty
mkSourceConfigProperty :: Value Text -> Value Text -> Value Text -> SourceConfigProperty
mkSourceConfigProperty Value Text
architecture Value Text
s3Bucket Value Text
s3Key
  = SourceConfigProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), architecture :: Value Text
architecture = Value Text
architecture,
       s3Bucket :: Value Text
s3Bucket = Value Text
s3Bucket, s3Key :: Value Text
s3Key = Value Text
s3Key}
instance ToResourceProperties SourceConfigProperty where
  toResourceProperties :: SourceConfigProperty -> ResourceProperties
toResourceProperties SourceConfigProperty {()
Value Text
haddock_workaround_ :: SourceConfigProperty -> ()
architecture :: SourceConfigProperty -> Value Text
s3Bucket :: SourceConfigProperty -> Value Text
s3Key :: SourceConfigProperty -> Value Text
haddock_workaround_ :: ()
architecture :: Value Text
s3Bucket :: Value Text
s3Key :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::RoboMaker::SimulationApplication.SourceConfig",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Architecture" 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
architecture,
                       Key
"S3Bucket" 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
s3Bucket, Key
"S3Key" 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
s3Key]}
instance JSON.ToJSON SourceConfigProperty where
  toJSON :: SourceConfigProperty -> Value
toJSON SourceConfigProperty {()
Value Text
haddock_workaround_ :: SourceConfigProperty -> ()
architecture :: SourceConfigProperty -> Value Text
s3Bucket :: SourceConfigProperty -> Value Text
s3Key :: SourceConfigProperty -> Value Text
haddock_workaround_ :: ()
architecture :: Value Text
s3Bucket :: Value Text
s3Key :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Architecture" 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
architecture, Key
"S3Bucket" 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
s3Bucket,
         Key
"S3Key" 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
s3Key]
instance Property "Architecture" SourceConfigProperty where
  type PropertyType "Architecture" SourceConfigProperty = Value Prelude.Text
  set :: PropertyType "Architecture" SourceConfigProperty
-> SourceConfigProperty -> SourceConfigProperty
set PropertyType "Architecture" SourceConfigProperty
newValue SourceConfigProperty {()
Value Text
haddock_workaround_ :: SourceConfigProperty -> ()
architecture :: SourceConfigProperty -> Value Text
s3Bucket :: SourceConfigProperty -> Value Text
s3Key :: SourceConfigProperty -> Value Text
haddock_workaround_ :: ()
architecture :: Value Text
s3Bucket :: Value Text
s3Key :: Value Text
..}
    = SourceConfigProperty {architecture :: Value Text
architecture = PropertyType "Architecture" SourceConfigProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
s3Bucket :: Value Text
s3Key :: Value Text
haddock_workaround_ :: ()
s3Bucket :: Value Text
s3Key :: Value Text
..}
instance Property "S3Bucket" SourceConfigProperty where
  type PropertyType "S3Bucket" SourceConfigProperty = Value Prelude.Text
  set :: PropertyType "S3Bucket" SourceConfigProperty
-> SourceConfigProperty -> SourceConfigProperty
set PropertyType "S3Bucket" SourceConfigProperty
newValue SourceConfigProperty {()
Value Text
haddock_workaround_ :: SourceConfigProperty -> ()
architecture :: SourceConfigProperty -> Value Text
s3Bucket :: SourceConfigProperty -> Value Text
s3Key :: SourceConfigProperty -> Value Text
haddock_workaround_ :: ()
architecture :: Value Text
s3Bucket :: Value Text
s3Key :: Value Text
..}
    = SourceConfigProperty {s3Bucket :: Value Text
s3Bucket = PropertyType "S3Bucket" SourceConfigProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
architecture :: Value Text
s3Key :: Value Text
haddock_workaround_ :: ()
architecture :: Value Text
s3Key :: Value Text
..}
instance Property "S3Key" SourceConfigProperty where
  type PropertyType "S3Key" SourceConfigProperty = Value Prelude.Text
  set :: PropertyType "S3Key" SourceConfigProperty
-> SourceConfigProperty -> SourceConfigProperty
set PropertyType "S3Key" SourceConfigProperty
newValue SourceConfigProperty {()
Value Text
haddock_workaround_ :: SourceConfigProperty -> ()
architecture :: SourceConfigProperty -> Value Text
s3Bucket :: SourceConfigProperty -> Value Text
s3Key :: SourceConfigProperty -> Value Text
haddock_workaround_ :: ()
architecture :: Value Text
s3Bucket :: Value Text
s3Key :: Value Text
..}
    = SourceConfigProperty {s3Key :: Value Text
s3Key = PropertyType "S3Key" SourceConfigProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
architecture :: Value Text
s3Bucket :: Value Text
haddock_workaround_ :: ()
architecture :: Value Text
s3Bucket :: Value Text
..}