module Stratosphere.ServiceCatalog.CloudFormationProduct.SourceConnectionProperty (
        module Exports, SourceConnectionProperty(..),
        mkSourceConnectionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.ServiceCatalog.CloudFormationProduct.ConnectionParametersProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SourceConnectionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-sourceconnection.html>
    SourceConnectionProperty {SourceConnectionProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-sourceconnection.html#cfn-servicecatalog-cloudformationproduct-sourceconnection-connectionparameters>
                              SourceConnectionProperty -> ConnectionParametersProperty
connectionParameters :: ConnectionParametersProperty,
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-sourceconnection.html#cfn-servicecatalog-cloudformationproduct-sourceconnection-type>
                              SourceConnectionProperty -> Value Text
type' :: (Value Prelude.Text)}
  deriving stock (SourceConnectionProperty -> SourceConnectionProperty -> Bool
(SourceConnectionProperty -> SourceConnectionProperty -> Bool)
-> (SourceConnectionProperty -> SourceConnectionProperty -> Bool)
-> Eq SourceConnectionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SourceConnectionProperty -> SourceConnectionProperty -> Bool
== :: SourceConnectionProperty -> SourceConnectionProperty -> Bool
$c/= :: SourceConnectionProperty -> SourceConnectionProperty -> Bool
/= :: SourceConnectionProperty -> SourceConnectionProperty -> Bool
Prelude.Eq, Int -> SourceConnectionProperty -> ShowS
[SourceConnectionProperty] -> ShowS
SourceConnectionProperty -> String
(Int -> SourceConnectionProperty -> ShowS)
-> (SourceConnectionProperty -> String)
-> ([SourceConnectionProperty] -> ShowS)
-> Show SourceConnectionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SourceConnectionProperty -> ShowS
showsPrec :: Int -> SourceConnectionProperty -> ShowS
$cshow :: SourceConnectionProperty -> String
show :: SourceConnectionProperty -> String
$cshowList :: [SourceConnectionProperty] -> ShowS
showList :: [SourceConnectionProperty] -> ShowS
Prelude.Show)
mkSourceConnectionProperty ::
  ConnectionParametersProperty
  -> Value Prelude.Text -> SourceConnectionProperty
mkSourceConnectionProperty :: ConnectionParametersProperty
-> Value Text -> SourceConnectionProperty
mkSourceConnectionProperty ConnectionParametersProperty
connectionParameters Value Text
type'
  = SourceConnectionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       connectionParameters :: ConnectionParametersProperty
connectionParameters = ConnectionParametersProperty
connectionParameters, type' :: Value Text
type' = Value Text
type'}
instance ToResourceProperties SourceConnectionProperty where
  toResourceProperties :: SourceConnectionProperty -> ResourceProperties
toResourceProperties SourceConnectionProperty {()
Value Text
ConnectionParametersProperty
haddock_workaround_ :: SourceConnectionProperty -> ()
connectionParameters :: SourceConnectionProperty -> ConnectionParametersProperty
type' :: SourceConnectionProperty -> Value Text
haddock_workaround_ :: ()
connectionParameters :: ConnectionParametersProperty
type' :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::ServiceCatalog::CloudFormationProduct.SourceConnection",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"ConnectionParameters" Key -> ConnectionParametersProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ConnectionParametersProperty
connectionParameters,
                       Key
"Type" 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
type']}
instance JSON.ToJSON SourceConnectionProperty where
  toJSON :: SourceConnectionProperty -> Value
toJSON SourceConnectionProperty {()
Value Text
ConnectionParametersProperty
haddock_workaround_ :: SourceConnectionProperty -> ()
connectionParameters :: SourceConnectionProperty -> ConnectionParametersProperty
type' :: SourceConnectionProperty -> Value Text
haddock_workaround_ :: ()
connectionParameters :: ConnectionParametersProperty
type' :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"ConnectionParameters" Key -> ConnectionParametersProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ConnectionParametersProperty
connectionParameters,
         Key
"Type" 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
type']
instance Property "ConnectionParameters" SourceConnectionProperty where
  type PropertyType "ConnectionParameters" SourceConnectionProperty = ConnectionParametersProperty
  set :: PropertyType "ConnectionParameters" SourceConnectionProperty
-> SourceConnectionProperty -> SourceConnectionProperty
set PropertyType "ConnectionParameters" SourceConnectionProperty
newValue SourceConnectionProperty {()
Value Text
ConnectionParametersProperty
haddock_workaround_ :: SourceConnectionProperty -> ()
connectionParameters :: SourceConnectionProperty -> ConnectionParametersProperty
type' :: SourceConnectionProperty -> Value Text
haddock_workaround_ :: ()
connectionParameters :: ConnectionParametersProperty
type' :: Value Text
..}
    = SourceConnectionProperty {connectionParameters :: ConnectionParametersProperty
connectionParameters = PropertyType "ConnectionParameters" SourceConnectionProperty
ConnectionParametersProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
type' :: Value Text
haddock_workaround_ :: ()
type' :: Value Text
..}
instance Property "Type" SourceConnectionProperty where
  type PropertyType "Type" SourceConnectionProperty = Value Prelude.Text
  set :: PropertyType "Type" SourceConnectionProperty
-> SourceConnectionProperty -> SourceConnectionProperty
set PropertyType "Type" SourceConnectionProperty
newValue SourceConnectionProperty {()
Value Text
ConnectionParametersProperty
haddock_workaround_ :: SourceConnectionProperty -> ()
connectionParameters :: SourceConnectionProperty -> ConnectionParametersProperty
type' :: SourceConnectionProperty -> Value Text
haddock_workaround_ :: ()
connectionParameters :: ConnectionParametersProperty
type' :: Value Text
..}
    = SourceConnectionProperty {type' :: Value Text
type' = PropertyType "Type" SourceConnectionProperty
Value Text
newValue, ()
ConnectionParametersProperty
haddock_workaround_ :: ()
connectionParameters :: ConnectionParametersProperty
haddock_workaround_ :: ()
connectionParameters :: ConnectionParametersProperty
..}