diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,20 @@
+Copyright (c) 2016 David Reaver
+Copyright (c) 2022 Markus Schirp
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/gen/Stratosphere/AppFlow/Connector.hs b/gen/Stratosphere/AppFlow/Connector.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Connector.hs
@@ -0,0 +1,67 @@
+module Stratosphere.AppFlow.Connector (
+        module Exports, Connector(..), mkConnector
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Connector.ConnectorProvisioningConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data Connector
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connector.html>
+    Connector {haddock_workaround_ :: (),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connector.html#cfn-appflow-connector-connectorlabel>
+               connectorLabel :: (Prelude.Maybe (Value Prelude.Text)),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connector.html#cfn-appflow-connector-connectorprovisioningconfig>
+               connectorProvisioningConfig :: ConnectorProvisioningConfigProperty,
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connector.html#cfn-appflow-connector-connectorprovisioningtype>
+               connectorProvisioningType :: (Value Prelude.Text),
+               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connector.html#cfn-appflow-connector-description>
+               description :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConnector ::
+  ConnectorProvisioningConfigProperty
+  -> Value Prelude.Text -> Connector
+mkConnector connectorProvisioningConfig connectorProvisioningType
+  = Connector
+      {haddock_workaround_ = (),
+       connectorProvisioningConfig = connectorProvisioningConfig,
+       connectorProvisioningType = connectorProvisioningType,
+       connectorLabel = Prelude.Nothing, description = Prelude.Nothing}
+instance ToResourceProperties Connector where
+  toResourceProperties Connector {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Connector", supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ConnectorProvisioningConfig" JSON..= connectorProvisioningConfig,
+                            "ConnectorProvisioningType" JSON..= connectorProvisioningType]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ConnectorLabel" Prelude.<$> connectorLabel,
+                               (JSON..=) "Description" Prelude.<$> description]))}
+instance JSON.ToJSON Connector where
+  toJSON Connector {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ConnectorProvisioningConfig" JSON..= connectorProvisioningConfig,
+               "ConnectorProvisioningType" JSON..= connectorProvisioningType]
+              (Prelude.catMaybes
+                 [(JSON..=) "ConnectorLabel" Prelude.<$> connectorLabel,
+                  (JSON..=) "Description" Prelude.<$> description])))
+instance Property "ConnectorLabel" Connector where
+  type PropertyType "ConnectorLabel" Connector = Value Prelude.Text
+  set newValue Connector {..}
+    = Connector {connectorLabel = Prelude.pure newValue, ..}
+instance Property "ConnectorProvisioningConfig" Connector where
+  type PropertyType "ConnectorProvisioningConfig" Connector = ConnectorProvisioningConfigProperty
+  set newValue Connector {..}
+    = Connector {connectorProvisioningConfig = newValue, ..}
+instance Property "ConnectorProvisioningType" Connector where
+  type PropertyType "ConnectorProvisioningType" Connector = Value Prelude.Text
+  set newValue Connector {..}
+    = Connector {connectorProvisioningType = newValue, ..}
+instance Property "Description" Connector where
+  type PropertyType "Description" Connector = Value Prelude.Text
+  set newValue Connector {..}
+    = Connector {description = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Connector/ConnectorProvisioningConfigProperty.hs b/gen/Stratosphere/AppFlow/Connector/ConnectorProvisioningConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Connector/ConnectorProvisioningConfigProperty.hs
@@ -0,0 +1,37 @@
+module Stratosphere.AppFlow.Connector.ConnectorProvisioningConfigProperty (
+        module Exports, ConnectorProvisioningConfigProperty(..),
+        mkConnectorProvisioningConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Connector.LambdaConnectorProvisioningConfigProperty as Exports
+import Stratosphere.ResourceProperties
+data ConnectorProvisioningConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connector-connectorprovisioningconfig.html>
+    ConnectorProvisioningConfigProperty {haddock_workaround_ :: (),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connector-connectorprovisioningconfig.html#cfn-appflow-connector-connectorprovisioningconfig-lambda>
+                                         lambda :: (Prelude.Maybe LambdaConnectorProvisioningConfigProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConnectorProvisioningConfigProperty ::
+  ConnectorProvisioningConfigProperty
+mkConnectorProvisioningConfigProperty
+  = ConnectorProvisioningConfigProperty
+      {haddock_workaround_ = (), lambda = Prelude.Nothing}
+instance ToResourceProperties ConnectorProvisioningConfigProperty where
+  toResourceProperties ConnectorProvisioningConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Connector.ConnectorProvisioningConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes [(JSON..=) "Lambda" Prelude.<$> lambda])}
+instance JSON.ToJSON ConnectorProvisioningConfigProperty where
+  toJSON ConnectorProvisioningConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes [(JSON..=) "Lambda" Prelude.<$> lambda]))
+instance Property "Lambda" ConnectorProvisioningConfigProperty where
+  type PropertyType "Lambda" ConnectorProvisioningConfigProperty = LambdaConnectorProvisioningConfigProperty
+  set newValue ConnectorProvisioningConfigProperty {..}
+    = ConnectorProvisioningConfigProperty
+        {lambda = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Connector/ConnectorProvisioningConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Connector/ConnectorProvisioningConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Connector/ConnectorProvisioningConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Connector.ConnectorProvisioningConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ConnectorProvisioningConfigProperty :: Prelude.Type
+instance ToResourceProperties ConnectorProvisioningConfigProperty
+instance Prelude.Eq ConnectorProvisioningConfigProperty
+instance Prelude.Show ConnectorProvisioningConfigProperty
+instance JSON.ToJSON ConnectorProvisioningConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Connector/LambdaConnectorProvisioningConfigProperty.hs b/gen/Stratosphere/AppFlow/Connector/LambdaConnectorProvisioningConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Connector/LambdaConnectorProvisioningConfigProperty.hs
@@ -0,0 +1,34 @@
+module Stratosphere.AppFlow.Connector.LambdaConnectorProvisioningConfigProperty (
+        LambdaConnectorProvisioningConfigProperty(..),
+        mkLambdaConnectorProvisioningConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data LambdaConnectorProvisioningConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connector-lambdaconnectorprovisioningconfig.html>
+    LambdaConnectorProvisioningConfigProperty {haddock_workaround_ :: (),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connector-lambdaconnectorprovisioningconfig.html#cfn-appflow-connector-lambdaconnectorprovisioningconfig-lambdaarn>
+                                               lambdaArn :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkLambdaConnectorProvisioningConfigProperty ::
+  Value Prelude.Text -> LambdaConnectorProvisioningConfigProperty
+mkLambdaConnectorProvisioningConfigProperty lambdaArn
+  = LambdaConnectorProvisioningConfigProperty
+      {haddock_workaround_ = (), lambdaArn = lambdaArn}
+instance ToResourceProperties LambdaConnectorProvisioningConfigProperty where
+  toResourceProperties LambdaConnectorProvisioningConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Connector.LambdaConnectorProvisioningConfig",
+         supportsTags = Prelude.False,
+         properties = ["LambdaArn" JSON..= lambdaArn]}
+instance JSON.ToJSON LambdaConnectorProvisioningConfigProperty where
+  toJSON LambdaConnectorProvisioningConfigProperty {..}
+    = JSON.object ["LambdaArn" JSON..= lambdaArn]
+instance Property "LambdaArn" LambdaConnectorProvisioningConfigProperty where
+  type PropertyType "LambdaArn" LambdaConnectorProvisioningConfigProperty = Value Prelude.Text
+  set newValue LambdaConnectorProvisioningConfigProperty {..}
+    = LambdaConnectorProvisioningConfigProperty
+        {lambdaArn = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Connector/LambdaConnectorProvisioningConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Connector/LambdaConnectorProvisioningConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Connector/LambdaConnectorProvisioningConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Connector.LambdaConnectorProvisioningConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data LambdaConnectorProvisioningConfigProperty :: Prelude.Type
+instance ToResourceProperties LambdaConnectorProvisioningConfigProperty
+instance Prelude.Eq LambdaConnectorProvisioningConfigProperty
+instance Prelude.Show LambdaConnectorProvisioningConfigProperty
+instance JSON.ToJSON LambdaConnectorProvisioningConfigProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile.hs b/gen/Stratosphere/AppFlow/ConnectorProfile.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile.hs
@@ -0,0 +1,90 @@
+module Stratosphere.AppFlow.ConnectorProfile (
+        module Exports, ConnectorProfile(..), mkConnectorProfile
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ConnectorProfileConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ConnectorProfile
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html>
+    ConnectorProfile {haddock_workaround_ :: (),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html#cfn-appflow-connectorprofile-connectionmode>
+                      connectionMode :: (Value Prelude.Text),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html#cfn-appflow-connectorprofile-connectorlabel>
+                      connectorLabel :: (Prelude.Maybe (Value Prelude.Text)),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html#cfn-appflow-connectorprofile-connectorprofileconfig>
+                      connectorProfileConfig :: (Prelude.Maybe ConnectorProfileConfigProperty),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html#cfn-appflow-connectorprofile-connectorprofilename>
+                      connectorProfileName :: (Value Prelude.Text),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html#cfn-appflow-connectorprofile-connectortype>
+                      connectorType :: (Value Prelude.Text),
+                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html#cfn-appflow-connectorprofile-kmsarn>
+                      kMSArn :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConnectorProfile ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> Value Prelude.Text -> ConnectorProfile
+mkConnectorProfile
+  connectionMode
+  connectorProfileName
+  connectorType
+  = ConnectorProfile
+      {haddock_workaround_ = (), connectionMode = connectionMode,
+       connectorProfileName = connectorProfileName,
+       connectorType = connectorType, connectorLabel = Prelude.Nothing,
+       connectorProfileConfig = Prelude.Nothing, kMSArn = Prelude.Nothing}
+instance ToResourceProperties ConnectorProfile where
+  toResourceProperties ConnectorProfile {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ConnectionMode" JSON..= connectionMode,
+                            "ConnectorProfileName" JSON..= connectorProfileName,
+                            "ConnectorType" JSON..= connectorType]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ConnectorLabel" Prelude.<$> connectorLabel,
+                               (JSON..=) "ConnectorProfileConfig"
+                                 Prelude.<$> connectorProfileConfig,
+                               (JSON..=) "KMSArn" Prelude.<$> kMSArn]))}
+instance JSON.ToJSON ConnectorProfile where
+  toJSON ConnectorProfile {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ConnectionMode" JSON..= connectionMode,
+               "ConnectorProfileName" JSON..= connectorProfileName,
+               "ConnectorType" JSON..= connectorType]
+              (Prelude.catMaybes
+                 [(JSON..=) "ConnectorLabel" Prelude.<$> connectorLabel,
+                  (JSON..=) "ConnectorProfileConfig"
+                    Prelude.<$> connectorProfileConfig,
+                  (JSON..=) "KMSArn" Prelude.<$> kMSArn])))
+instance Property "ConnectionMode" ConnectorProfile where
+  type PropertyType "ConnectionMode" ConnectorProfile = Value Prelude.Text
+  set newValue ConnectorProfile {..}
+    = ConnectorProfile {connectionMode = newValue, ..}
+instance Property "ConnectorLabel" ConnectorProfile where
+  type PropertyType "ConnectorLabel" ConnectorProfile = Value Prelude.Text
+  set newValue ConnectorProfile {..}
+    = ConnectorProfile {connectorLabel = Prelude.pure newValue, ..}
+instance Property "ConnectorProfileConfig" ConnectorProfile where
+  type PropertyType "ConnectorProfileConfig" ConnectorProfile = ConnectorProfileConfigProperty
+  set newValue ConnectorProfile {..}
+    = ConnectorProfile
+        {connectorProfileConfig = Prelude.pure newValue, ..}
+instance Property "ConnectorProfileName" ConnectorProfile where
+  type PropertyType "ConnectorProfileName" ConnectorProfile = Value Prelude.Text
+  set newValue ConnectorProfile {..}
+    = ConnectorProfile {connectorProfileName = newValue, ..}
+instance Property "ConnectorType" ConnectorProfile where
+  type PropertyType "ConnectorType" ConnectorProfile = Value Prelude.Text
+  set newValue ConnectorProfile {..}
+    = ConnectorProfile {connectorType = newValue, ..}
+instance Property "KMSArn" ConnectorProfile where
+  type PropertyType "KMSArn" ConnectorProfile = Value Prelude.Text
+  set newValue ConnectorProfile {..}
+    = ConnectorProfile {kMSArn = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/AmplitudeConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/AmplitudeConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/AmplitudeConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,46 @@
+module Stratosphere.AppFlow.ConnectorProfile.AmplitudeConnectorProfileCredentialsProperty (
+        AmplitudeConnectorProfileCredentialsProperty(..),
+        mkAmplitudeConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data AmplitudeConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-amplitudeconnectorprofilecredentials.html>
+    AmplitudeConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-amplitudeconnectorprofilecredentials.html#cfn-appflow-connectorprofile-amplitudeconnectorprofilecredentials-apikey>
+                                                  apiKey :: (Value Prelude.Text),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-amplitudeconnectorprofilecredentials.html#cfn-appflow-connectorprofile-amplitudeconnectorprofilecredentials-secretkey>
+                                                  secretKey :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkAmplitudeConnectorProfileCredentialsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text
+     -> AmplitudeConnectorProfileCredentialsProperty
+mkAmplitudeConnectorProfileCredentialsProperty apiKey secretKey
+  = AmplitudeConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), apiKey = apiKey, secretKey = secretKey}
+instance ToResourceProperties AmplitudeConnectorProfileCredentialsProperty where
+  toResourceProperties
+    AmplitudeConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.AmplitudeConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = ["ApiKey" JSON..= apiKey,
+                       "SecretKey" JSON..= secretKey]}
+instance JSON.ToJSON AmplitudeConnectorProfileCredentialsProperty where
+  toJSON AmplitudeConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        ["ApiKey" JSON..= apiKey, "SecretKey" JSON..= secretKey]
+instance Property "ApiKey" AmplitudeConnectorProfileCredentialsProperty where
+  type PropertyType "ApiKey" AmplitudeConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue AmplitudeConnectorProfileCredentialsProperty {..}
+    = AmplitudeConnectorProfileCredentialsProperty
+        {apiKey = newValue, ..}
+instance Property "SecretKey" AmplitudeConnectorProfileCredentialsProperty where
+  type PropertyType "SecretKey" AmplitudeConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue AmplitudeConnectorProfileCredentialsProperty {..}
+    = AmplitudeConnectorProfileCredentialsProperty
+        {secretKey = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/AmplitudeConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/AmplitudeConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/AmplitudeConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.AmplitudeConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data AmplitudeConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties AmplitudeConnectorProfileCredentialsProperty
+instance Prelude.Eq AmplitudeConnectorProfileCredentialsProperty
+instance Prelude.Show AmplitudeConnectorProfileCredentialsProperty
+instance JSON.ToJSON AmplitudeConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ApiKeyCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/ApiKeyCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ApiKeyCredentialsProperty.hs
@@ -0,0 +1,49 @@
+module Stratosphere.AppFlow.ConnectorProfile.ApiKeyCredentialsProperty (
+        ApiKeyCredentialsProperty(..), mkApiKeyCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ApiKeyCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-apikeycredentials.html>
+    ApiKeyCredentialsProperty {haddock_workaround_ :: (),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-apikeycredentials.html#cfn-appflow-connectorprofile-apikeycredentials-apikey>
+                               apiKey :: (Value Prelude.Text),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-apikeycredentials.html#cfn-appflow-connectorprofile-apikeycredentials-apisecretkey>
+                               apiSecretKey :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkApiKeyCredentialsProperty ::
+  Value Prelude.Text -> ApiKeyCredentialsProperty
+mkApiKeyCredentialsProperty apiKey
+  = ApiKeyCredentialsProperty
+      {haddock_workaround_ = (), apiKey = apiKey,
+       apiSecretKey = Prelude.Nothing}
+instance ToResourceProperties ApiKeyCredentialsProperty where
+  toResourceProperties ApiKeyCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.ApiKeyCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ApiKey" JSON..= apiKey]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ApiSecretKey" Prelude.<$> apiSecretKey]))}
+instance JSON.ToJSON ApiKeyCredentialsProperty where
+  toJSON ApiKeyCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ApiKey" JSON..= apiKey]
+              (Prelude.catMaybes
+                 [(JSON..=) "ApiSecretKey" Prelude.<$> apiSecretKey])))
+instance Property "ApiKey" ApiKeyCredentialsProperty where
+  type PropertyType "ApiKey" ApiKeyCredentialsProperty = Value Prelude.Text
+  set newValue ApiKeyCredentialsProperty {..}
+    = ApiKeyCredentialsProperty {apiKey = newValue, ..}
+instance Property "ApiSecretKey" ApiKeyCredentialsProperty where
+  type PropertyType "ApiSecretKey" ApiKeyCredentialsProperty = Value Prelude.Text
+  set newValue ApiKeyCredentialsProperty {..}
+    = ApiKeyCredentialsProperty
+        {apiSecretKey = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ApiKeyCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/ApiKeyCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ApiKeyCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.ApiKeyCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ApiKeyCredentialsProperty :: Prelude.Type
+instance ToResourceProperties ApiKeyCredentialsProperty
+instance Prelude.Eq ApiKeyCredentialsProperty
+instance Prelude.Show ApiKeyCredentialsProperty
+instance JSON.ToJSON ApiKeyCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/BasicAuthCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/BasicAuthCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/BasicAuthCredentialsProperty.hs
@@ -0,0 +1,42 @@
+module Stratosphere.AppFlow.ConnectorProfile.BasicAuthCredentialsProperty (
+        BasicAuthCredentialsProperty(..), mkBasicAuthCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data BasicAuthCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-basicauthcredentials.html>
+    BasicAuthCredentialsProperty {haddock_workaround_ :: (),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-basicauthcredentials.html#cfn-appflow-connectorprofile-basicauthcredentials-password>
+                                  password :: (Value Prelude.Text),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-basicauthcredentials.html#cfn-appflow-connectorprofile-basicauthcredentials-username>
+                                  username :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkBasicAuthCredentialsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> BasicAuthCredentialsProperty
+mkBasicAuthCredentialsProperty password username
+  = BasicAuthCredentialsProperty
+      {haddock_workaround_ = (), password = password,
+       username = username}
+instance ToResourceProperties BasicAuthCredentialsProperty where
+  toResourceProperties BasicAuthCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.BasicAuthCredentials",
+         supportsTags = Prelude.False,
+         properties = ["Password" JSON..= password,
+                       "Username" JSON..= username]}
+instance JSON.ToJSON BasicAuthCredentialsProperty where
+  toJSON BasicAuthCredentialsProperty {..}
+    = JSON.object
+        ["Password" JSON..= password, "Username" JSON..= username]
+instance Property "Password" BasicAuthCredentialsProperty where
+  type PropertyType "Password" BasicAuthCredentialsProperty = Value Prelude.Text
+  set newValue BasicAuthCredentialsProperty {..}
+    = BasicAuthCredentialsProperty {password = newValue, ..}
+instance Property "Username" BasicAuthCredentialsProperty where
+  type PropertyType "Username" BasicAuthCredentialsProperty = Value Prelude.Text
+  set newValue BasicAuthCredentialsProperty {..}
+    = BasicAuthCredentialsProperty {username = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/BasicAuthCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/BasicAuthCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/BasicAuthCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.BasicAuthCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data BasicAuthCredentialsProperty :: Prelude.Type
+instance ToResourceProperties BasicAuthCredentialsProperty
+instance Prelude.Eq BasicAuthCredentialsProperty
+instance Prelude.Show BasicAuthCredentialsProperty
+instance JSON.ToJSON BasicAuthCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorOAuthRequestProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorOAuthRequestProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorOAuthRequestProperty.hs
@@ -0,0 +1,47 @@
+module Stratosphere.AppFlow.ConnectorProfile.ConnectorOAuthRequestProperty (
+        ConnectorOAuthRequestProperty(..), mkConnectorOAuthRequestProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ConnectorOAuthRequestProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html>
+    ConnectorOAuthRequestProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html#cfn-appflow-connectorprofile-connectoroauthrequest-authcode>
+                                   authCode :: (Prelude.Maybe (Value Prelude.Text)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html#cfn-appflow-connectorprofile-connectoroauthrequest-redirecturi>
+                                   redirectUri :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConnectorOAuthRequestProperty :: ConnectorOAuthRequestProperty
+mkConnectorOAuthRequestProperty
+  = ConnectorOAuthRequestProperty
+      {haddock_workaround_ = (), authCode = Prelude.Nothing,
+       redirectUri = Prelude.Nothing}
+instance ToResourceProperties ConnectorOAuthRequestProperty where
+  toResourceProperties ConnectorOAuthRequestProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AuthCode" Prelude.<$> authCode,
+                            (JSON..=) "RedirectUri" Prelude.<$> redirectUri])}
+instance JSON.ToJSON ConnectorOAuthRequestProperty where
+  toJSON ConnectorOAuthRequestProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AuthCode" Prelude.<$> authCode,
+               (JSON..=) "RedirectUri" Prelude.<$> redirectUri]))
+instance Property "AuthCode" ConnectorOAuthRequestProperty where
+  type PropertyType "AuthCode" ConnectorOAuthRequestProperty = Value Prelude.Text
+  set newValue ConnectorOAuthRequestProperty {..}
+    = ConnectorOAuthRequestProperty
+        {authCode = Prelude.pure newValue, ..}
+instance Property "RedirectUri" ConnectorOAuthRequestProperty where
+  type PropertyType "RedirectUri" ConnectorOAuthRequestProperty = Value Prelude.Text
+  set newValue ConnectorOAuthRequestProperty {..}
+    = ConnectorOAuthRequestProperty
+        {redirectUri = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorOAuthRequestProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorOAuthRequestProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorOAuthRequestProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.ConnectorOAuthRequestProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ConnectorOAuthRequestProperty :: Prelude.Type
+instance ToResourceProperties ConnectorOAuthRequestProperty
+instance Prelude.Eq ConnectorOAuthRequestProperty
+instance Prelude.Show ConnectorOAuthRequestProperty
+instance JSON.ToJSON ConnectorOAuthRequestProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileConfigProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileConfigProperty.hs
@@ -0,0 +1,54 @@
+module Stratosphere.AppFlow.ConnectorProfile.ConnectorProfileConfigProperty (
+        module Exports, ConnectorProfileConfigProperty(..),
+        mkConnectorProfileConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ConnectorProfilePropertiesProperty as Exports
+import Stratosphere.ResourceProperties
+data ConnectorProfileConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileconfig.html>
+    ConnectorProfileConfigProperty {haddock_workaround_ :: (),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileconfig.html#cfn-appflow-connectorprofile-connectorprofileconfig-connectorprofilecredentials>
+                                    connectorProfileCredentials :: (Prelude.Maybe ConnectorProfileCredentialsProperty),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileconfig.html#cfn-appflow-connectorprofile-connectorprofileconfig-connectorprofileproperties>
+                                    connectorProfileProperties :: (Prelude.Maybe ConnectorProfilePropertiesProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConnectorProfileConfigProperty :: ConnectorProfileConfigProperty
+mkConnectorProfileConfigProperty
+  = ConnectorProfileConfigProperty
+      {haddock_workaround_ = (),
+       connectorProfileCredentials = Prelude.Nothing,
+       connectorProfileProperties = Prelude.Nothing}
+instance ToResourceProperties ConnectorProfileConfigProperty where
+  toResourceProperties ConnectorProfileConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.ConnectorProfileConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "ConnectorProfileCredentials"
+                              Prelude.<$> connectorProfileCredentials,
+                            (JSON..=) "ConnectorProfileProperties"
+                              Prelude.<$> connectorProfileProperties])}
+instance JSON.ToJSON ConnectorProfileConfigProperty where
+  toJSON ConnectorProfileConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "ConnectorProfileCredentials"
+                 Prelude.<$> connectorProfileCredentials,
+               (JSON..=) "ConnectorProfileProperties"
+                 Prelude.<$> connectorProfileProperties]))
+instance Property "ConnectorProfileCredentials" ConnectorProfileConfigProperty where
+  type PropertyType "ConnectorProfileCredentials" ConnectorProfileConfigProperty = ConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileConfigProperty {..}
+    = ConnectorProfileConfigProperty
+        {connectorProfileCredentials = Prelude.pure newValue, ..}
+instance Property "ConnectorProfileProperties" ConnectorProfileConfigProperty where
+  type PropertyType "ConnectorProfileProperties" ConnectorProfileConfigProperty = ConnectorProfilePropertiesProperty
+  set newValue ConnectorProfileConfigProperty {..}
+    = ConnectorProfileConfigProperty
+        {connectorProfileProperties = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.ConnectorProfileConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ConnectorProfileConfigProperty :: Prelude.Type
+instance ToResourceProperties ConnectorProfileConfigProperty
+instance Prelude.Eq ConnectorProfileConfigProperty
+instance Prelude.Show ConnectorProfileConfigProperty
+instance JSON.ToJSON ConnectorProfileConfigProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,218 @@
+module Stratosphere.AppFlow.ConnectorProfile.ConnectorProfileCredentialsProperty (
+        module Exports, ConnectorProfileCredentialsProperty(..),
+        mkConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.AmplitudeConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.CustomConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.DatadogConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.DynatraceConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.GoogleAnalyticsConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.InforNexusConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.MarketoConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.PardotConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.RedshiftConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.SAPODataConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.SalesforceConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ServiceNowConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.SingularConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.SlackConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.SnowflakeConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.TrendmicroConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.VeevaConnectorProfileCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ZendeskConnectorProfileCredentialsProperty as Exports
+import Stratosphere.ResourceProperties
+data ConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html>
+    ConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-amplitude>
+                                         amplitude :: (Prelude.Maybe AmplitudeConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-customconnector>
+                                         customConnector :: (Prelude.Maybe CustomConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-datadog>
+                                         datadog :: (Prelude.Maybe DatadogConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-dynatrace>
+                                         dynatrace :: (Prelude.Maybe DynatraceConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-googleanalytics>
+                                         googleAnalytics :: (Prelude.Maybe GoogleAnalyticsConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-infornexus>
+                                         inforNexus :: (Prelude.Maybe InforNexusConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-marketo>
+                                         marketo :: (Prelude.Maybe MarketoConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-pardot>
+                                         pardot :: (Prelude.Maybe PardotConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-redshift>
+                                         redshift :: (Prelude.Maybe RedshiftConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-sapodata>
+                                         sAPOData :: (Prelude.Maybe SAPODataConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-salesforce>
+                                         salesforce :: (Prelude.Maybe SalesforceConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-servicenow>
+                                         serviceNow :: (Prelude.Maybe ServiceNowConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-singular>
+                                         singular :: (Prelude.Maybe SingularConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-slack>
+                                         slack :: (Prelude.Maybe SlackConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-snowflake>
+                                         snowflake :: (Prelude.Maybe SnowflakeConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-trendmicro>
+                                         trendmicro :: (Prelude.Maybe TrendmicroConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-veeva>
+                                         veeva :: (Prelude.Maybe VeevaConnectorProfileCredentialsProperty),
+                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-zendesk>
+                                         zendesk :: (Prelude.Maybe ZendeskConnectorProfileCredentialsProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConnectorProfileCredentialsProperty ::
+  ConnectorProfileCredentialsProperty
+mkConnectorProfileCredentialsProperty
+  = ConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), amplitude = Prelude.Nothing,
+       customConnector = Prelude.Nothing, datadog = Prelude.Nothing,
+       dynatrace = Prelude.Nothing, googleAnalytics = Prelude.Nothing,
+       inforNexus = Prelude.Nothing, marketo = Prelude.Nothing,
+       pardot = Prelude.Nothing, redshift = Prelude.Nothing,
+       sAPOData = Prelude.Nothing, salesforce = Prelude.Nothing,
+       serviceNow = Prelude.Nothing, singular = Prelude.Nothing,
+       slack = Prelude.Nothing, snowflake = Prelude.Nothing,
+       trendmicro = Prelude.Nothing, veeva = Prelude.Nothing,
+       zendesk = Prelude.Nothing}
+instance ToResourceProperties ConnectorProfileCredentialsProperty where
+  toResourceProperties ConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Amplitude" Prelude.<$> amplitude,
+                            (JSON..=) "CustomConnector" Prelude.<$> customConnector,
+                            (JSON..=) "Datadog" Prelude.<$> datadog,
+                            (JSON..=) "Dynatrace" Prelude.<$> dynatrace,
+                            (JSON..=) "GoogleAnalytics" Prelude.<$> googleAnalytics,
+                            (JSON..=) "InforNexus" Prelude.<$> inforNexus,
+                            (JSON..=) "Marketo" Prelude.<$> marketo,
+                            (JSON..=) "Pardot" Prelude.<$> pardot,
+                            (JSON..=) "Redshift" Prelude.<$> redshift,
+                            (JSON..=) "SAPOData" Prelude.<$> sAPOData,
+                            (JSON..=) "Salesforce" Prelude.<$> salesforce,
+                            (JSON..=) "ServiceNow" Prelude.<$> serviceNow,
+                            (JSON..=) "Singular" Prelude.<$> singular,
+                            (JSON..=) "Slack" Prelude.<$> slack,
+                            (JSON..=) "Snowflake" Prelude.<$> snowflake,
+                            (JSON..=) "Trendmicro" Prelude.<$> trendmicro,
+                            (JSON..=) "Veeva" Prelude.<$> veeva,
+                            (JSON..=) "Zendesk" Prelude.<$> zendesk])}
+instance JSON.ToJSON ConnectorProfileCredentialsProperty where
+  toJSON ConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Amplitude" Prelude.<$> amplitude,
+               (JSON..=) "CustomConnector" Prelude.<$> customConnector,
+               (JSON..=) "Datadog" Prelude.<$> datadog,
+               (JSON..=) "Dynatrace" Prelude.<$> dynatrace,
+               (JSON..=) "GoogleAnalytics" Prelude.<$> googleAnalytics,
+               (JSON..=) "InforNexus" Prelude.<$> inforNexus,
+               (JSON..=) "Marketo" Prelude.<$> marketo,
+               (JSON..=) "Pardot" Prelude.<$> pardot,
+               (JSON..=) "Redshift" Prelude.<$> redshift,
+               (JSON..=) "SAPOData" Prelude.<$> sAPOData,
+               (JSON..=) "Salesforce" Prelude.<$> salesforce,
+               (JSON..=) "ServiceNow" Prelude.<$> serviceNow,
+               (JSON..=) "Singular" Prelude.<$> singular,
+               (JSON..=) "Slack" Prelude.<$> slack,
+               (JSON..=) "Snowflake" Prelude.<$> snowflake,
+               (JSON..=) "Trendmicro" Prelude.<$> trendmicro,
+               (JSON..=) "Veeva" Prelude.<$> veeva,
+               (JSON..=) "Zendesk" Prelude.<$> zendesk]))
+instance Property "Amplitude" ConnectorProfileCredentialsProperty where
+  type PropertyType "Amplitude" ConnectorProfileCredentialsProperty = AmplitudeConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {amplitude = Prelude.pure newValue, ..}
+instance Property "CustomConnector" ConnectorProfileCredentialsProperty where
+  type PropertyType "CustomConnector" ConnectorProfileCredentialsProperty = CustomConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {customConnector = Prelude.pure newValue, ..}
+instance Property "Datadog" ConnectorProfileCredentialsProperty where
+  type PropertyType "Datadog" ConnectorProfileCredentialsProperty = DatadogConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {datadog = Prelude.pure newValue, ..}
+instance Property "Dynatrace" ConnectorProfileCredentialsProperty where
+  type PropertyType "Dynatrace" ConnectorProfileCredentialsProperty = DynatraceConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {dynatrace = Prelude.pure newValue, ..}
+instance Property "GoogleAnalytics" ConnectorProfileCredentialsProperty where
+  type PropertyType "GoogleAnalytics" ConnectorProfileCredentialsProperty = GoogleAnalyticsConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {googleAnalytics = Prelude.pure newValue, ..}
+instance Property "InforNexus" ConnectorProfileCredentialsProperty where
+  type PropertyType "InforNexus" ConnectorProfileCredentialsProperty = InforNexusConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {inforNexus = Prelude.pure newValue, ..}
+instance Property "Marketo" ConnectorProfileCredentialsProperty where
+  type PropertyType "Marketo" ConnectorProfileCredentialsProperty = MarketoConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {marketo = Prelude.pure newValue, ..}
+instance Property "Pardot" ConnectorProfileCredentialsProperty where
+  type PropertyType "Pardot" ConnectorProfileCredentialsProperty = PardotConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {pardot = Prelude.pure newValue, ..}
+instance Property "Redshift" ConnectorProfileCredentialsProperty where
+  type PropertyType "Redshift" ConnectorProfileCredentialsProperty = RedshiftConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {redshift = Prelude.pure newValue, ..}
+instance Property "SAPOData" ConnectorProfileCredentialsProperty where
+  type PropertyType "SAPOData" ConnectorProfileCredentialsProperty = SAPODataConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {sAPOData = Prelude.pure newValue, ..}
+instance Property "Salesforce" ConnectorProfileCredentialsProperty where
+  type PropertyType "Salesforce" ConnectorProfileCredentialsProperty = SalesforceConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {salesforce = Prelude.pure newValue, ..}
+instance Property "ServiceNow" ConnectorProfileCredentialsProperty where
+  type PropertyType "ServiceNow" ConnectorProfileCredentialsProperty = ServiceNowConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {serviceNow = Prelude.pure newValue, ..}
+instance Property "Singular" ConnectorProfileCredentialsProperty where
+  type PropertyType "Singular" ConnectorProfileCredentialsProperty = SingularConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {singular = Prelude.pure newValue, ..}
+instance Property "Slack" ConnectorProfileCredentialsProperty where
+  type PropertyType "Slack" ConnectorProfileCredentialsProperty = SlackConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {slack = Prelude.pure newValue, ..}
+instance Property "Snowflake" ConnectorProfileCredentialsProperty where
+  type PropertyType "Snowflake" ConnectorProfileCredentialsProperty = SnowflakeConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {snowflake = Prelude.pure newValue, ..}
+instance Property "Trendmicro" ConnectorProfileCredentialsProperty where
+  type PropertyType "Trendmicro" ConnectorProfileCredentialsProperty = TrendmicroConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {trendmicro = Prelude.pure newValue, ..}
+instance Property "Veeva" ConnectorProfileCredentialsProperty where
+  type PropertyType "Veeva" ConnectorProfileCredentialsProperty = VeevaConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {veeva = Prelude.pure newValue, ..}
+instance Property "Zendesk" ConnectorProfileCredentialsProperty where
+  type PropertyType "Zendesk" ConnectorProfileCredentialsProperty = ZendeskConnectorProfileCredentialsProperty
+  set newValue ConnectorProfileCredentialsProperty {..}
+    = ConnectorProfileCredentialsProperty
+        {zendesk = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.ConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties ConnectorProfileCredentialsProperty
+instance Prelude.Eq ConnectorProfileCredentialsProperty
+instance Prelude.Show ConnectorProfileCredentialsProperty
+instance JSON.ToJSON ConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,176 @@
+module Stratosphere.AppFlow.ConnectorProfile.ConnectorProfilePropertiesProperty (
+        module Exports, ConnectorProfilePropertiesProperty(..),
+        mkConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.CustomConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.DatadogConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.DynatraceConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.InforNexusConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.MarketoConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.PardotConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.RedshiftConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.SAPODataConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.SalesforceConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ServiceNowConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.SlackConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.SnowflakeConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.VeevaConnectorProfilePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ZendeskConnectorProfilePropertiesProperty as Exports
+import Stratosphere.ResourceProperties
+data ConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html>
+    ConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-customconnector>
+                                        customConnector :: (Prelude.Maybe CustomConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-datadog>
+                                        datadog :: (Prelude.Maybe DatadogConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-dynatrace>
+                                        dynatrace :: (Prelude.Maybe DynatraceConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-infornexus>
+                                        inforNexus :: (Prelude.Maybe InforNexusConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-marketo>
+                                        marketo :: (Prelude.Maybe MarketoConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-pardot>
+                                        pardot :: (Prelude.Maybe PardotConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-redshift>
+                                        redshift :: (Prelude.Maybe RedshiftConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-sapodata>
+                                        sAPOData :: (Prelude.Maybe SAPODataConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-salesforce>
+                                        salesforce :: (Prelude.Maybe SalesforceConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-servicenow>
+                                        serviceNow :: (Prelude.Maybe ServiceNowConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-slack>
+                                        slack :: (Prelude.Maybe SlackConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-snowflake>
+                                        snowflake :: (Prelude.Maybe SnowflakeConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-veeva>
+                                        veeva :: (Prelude.Maybe VeevaConnectorProfilePropertiesProperty),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-zendesk>
+                                        zendesk :: (Prelude.Maybe ZendeskConnectorProfilePropertiesProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConnectorProfilePropertiesProperty ::
+  ConnectorProfilePropertiesProperty
+mkConnectorProfilePropertiesProperty
+  = ConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), customConnector = Prelude.Nothing,
+       datadog = Prelude.Nothing, dynatrace = Prelude.Nothing,
+       inforNexus = Prelude.Nothing, marketo = Prelude.Nothing,
+       pardot = Prelude.Nothing, redshift = Prelude.Nothing,
+       sAPOData = Prelude.Nothing, salesforce = Prelude.Nothing,
+       serviceNow = Prelude.Nothing, slack = Prelude.Nothing,
+       snowflake = Prelude.Nothing, veeva = Prelude.Nothing,
+       zendesk = Prelude.Nothing}
+instance ToResourceProperties ConnectorProfilePropertiesProperty where
+  toResourceProperties ConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "CustomConnector" Prelude.<$> customConnector,
+                            (JSON..=) "Datadog" Prelude.<$> datadog,
+                            (JSON..=) "Dynatrace" Prelude.<$> dynatrace,
+                            (JSON..=) "InforNexus" Prelude.<$> inforNexus,
+                            (JSON..=) "Marketo" Prelude.<$> marketo,
+                            (JSON..=) "Pardot" Prelude.<$> pardot,
+                            (JSON..=) "Redshift" Prelude.<$> redshift,
+                            (JSON..=) "SAPOData" Prelude.<$> sAPOData,
+                            (JSON..=) "Salesforce" Prelude.<$> salesforce,
+                            (JSON..=) "ServiceNow" Prelude.<$> serviceNow,
+                            (JSON..=) "Slack" Prelude.<$> slack,
+                            (JSON..=) "Snowflake" Prelude.<$> snowflake,
+                            (JSON..=) "Veeva" Prelude.<$> veeva,
+                            (JSON..=) "Zendesk" Prelude.<$> zendesk])}
+instance JSON.ToJSON ConnectorProfilePropertiesProperty where
+  toJSON ConnectorProfilePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "CustomConnector" Prelude.<$> customConnector,
+               (JSON..=) "Datadog" Prelude.<$> datadog,
+               (JSON..=) "Dynatrace" Prelude.<$> dynatrace,
+               (JSON..=) "InforNexus" Prelude.<$> inforNexus,
+               (JSON..=) "Marketo" Prelude.<$> marketo,
+               (JSON..=) "Pardot" Prelude.<$> pardot,
+               (JSON..=) "Redshift" Prelude.<$> redshift,
+               (JSON..=) "SAPOData" Prelude.<$> sAPOData,
+               (JSON..=) "Salesforce" Prelude.<$> salesforce,
+               (JSON..=) "ServiceNow" Prelude.<$> serviceNow,
+               (JSON..=) "Slack" Prelude.<$> slack,
+               (JSON..=) "Snowflake" Prelude.<$> snowflake,
+               (JSON..=) "Veeva" Prelude.<$> veeva,
+               (JSON..=) "Zendesk" Prelude.<$> zendesk]))
+instance Property "CustomConnector" ConnectorProfilePropertiesProperty where
+  type PropertyType "CustomConnector" ConnectorProfilePropertiesProperty = CustomConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {customConnector = Prelude.pure newValue, ..}
+instance Property "Datadog" ConnectorProfilePropertiesProperty where
+  type PropertyType "Datadog" ConnectorProfilePropertiesProperty = DatadogConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {datadog = Prelude.pure newValue, ..}
+instance Property "Dynatrace" ConnectorProfilePropertiesProperty where
+  type PropertyType "Dynatrace" ConnectorProfilePropertiesProperty = DynatraceConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {dynatrace = Prelude.pure newValue, ..}
+instance Property "InforNexus" ConnectorProfilePropertiesProperty where
+  type PropertyType "InforNexus" ConnectorProfilePropertiesProperty = InforNexusConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {inforNexus = Prelude.pure newValue, ..}
+instance Property "Marketo" ConnectorProfilePropertiesProperty where
+  type PropertyType "Marketo" ConnectorProfilePropertiesProperty = MarketoConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {marketo = Prelude.pure newValue, ..}
+instance Property "Pardot" ConnectorProfilePropertiesProperty where
+  type PropertyType "Pardot" ConnectorProfilePropertiesProperty = PardotConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {pardot = Prelude.pure newValue, ..}
+instance Property "Redshift" ConnectorProfilePropertiesProperty where
+  type PropertyType "Redshift" ConnectorProfilePropertiesProperty = RedshiftConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {redshift = Prelude.pure newValue, ..}
+instance Property "SAPOData" ConnectorProfilePropertiesProperty where
+  type PropertyType "SAPOData" ConnectorProfilePropertiesProperty = SAPODataConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {sAPOData = Prelude.pure newValue, ..}
+instance Property "Salesforce" ConnectorProfilePropertiesProperty where
+  type PropertyType "Salesforce" ConnectorProfilePropertiesProperty = SalesforceConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {salesforce = Prelude.pure newValue, ..}
+instance Property "ServiceNow" ConnectorProfilePropertiesProperty where
+  type PropertyType "ServiceNow" ConnectorProfilePropertiesProperty = ServiceNowConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {serviceNow = Prelude.pure newValue, ..}
+instance Property "Slack" ConnectorProfilePropertiesProperty where
+  type PropertyType "Slack" ConnectorProfilePropertiesProperty = SlackConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {slack = Prelude.pure newValue, ..}
+instance Property "Snowflake" ConnectorProfilePropertiesProperty where
+  type PropertyType "Snowflake" ConnectorProfilePropertiesProperty = SnowflakeConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {snowflake = Prelude.pure newValue, ..}
+instance Property "Veeva" ConnectorProfilePropertiesProperty where
+  type PropertyType "Veeva" ConnectorProfilePropertiesProperty = VeevaConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {veeva = Prelude.pure newValue, ..}
+instance Property "Zendesk" ConnectorProfilePropertiesProperty where
+  type PropertyType "Zendesk" ConnectorProfilePropertiesProperty = ZendeskConnectorProfilePropertiesProperty
+  set newValue ConnectorProfilePropertiesProperty {..}
+    = ConnectorProfilePropertiesProperty
+        {zendesk = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.ConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties ConnectorProfilePropertiesProperty
+instance Prelude.Eq ConnectorProfilePropertiesProperty
+instance Prelude.Show ConnectorProfilePropertiesProperty
+instance JSON.ToJSON ConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/CustomAuthCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomAuthCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomAuthCredentialsProperty.hs
@@ -0,0 +1,51 @@
+module Stratosphere.AppFlow.ConnectorProfile.CustomAuthCredentialsProperty (
+        CustomAuthCredentialsProperty(..), mkCustomAuthCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CustomAuthCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customauthcredentials.html>
+    CustomAuthCredentialsProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customauthcredentials.html#cfn-appflow-connectorprofile-customauthcredentials-credentialsmap>
+                                   credentialsMap :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text))),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customauthcredentials.html#cfn-appflow-connectorprofile-customauthcredentials-customauthenticationtype>
+                                   customAuthenticationType :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCustomAuthCredentialsProperty ::
+  Value Prelude.Text -> CustomAuthCredentialsProperty
+mkCustomAuthCredentialsProperty customAuthenticationType
+  = CustomAuthCredentialsProperty
+      {haddock_workaround_ = (),
+       customAuthenticationType = customAuthenticationType,
+       credentialsMap = Prelude.Nothing}
+instance ToResourceProperties CustomAuthCredentialsProperty where
+  toResourceProperties CustomAuthCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.CustomAuthCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["CustomAuthenticationType" JSON..= customAuthenticationType]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CredentialsMap" Prelude.<$> credentialsMap]))}
+instance JSON.ToJSON CustomAuthCredentialsProperty where
+  toJSON CustomAuthCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["CustomAuthenticationType" JSON..= customAuthenticationType]
+              (Prelude.catMaybes
+                 [(JSON..=) "CredentialsMap" Prelude.<$> credentialsMap])))
+instance Property "CredentialsMap" CustomAuthCredentialsProperty where
+  type PropertyType "CredentialsMap" CustomAuthCredentialsProperty = Prelude.Map Prelude.Text (Value Prelude.Text)
+  set newValue CustomAuthCredentialsProperty {..}
+    = CustomAuthCredentialsProperty
+        {credentialsMap = Prelude.pure newValue, ..}
+instance Property "CustomAuthenticationType" CustomAuthCredentialsProperty where
+  type PropertyType "CustomAuthenticationType" CustomAuthCredentialsProperty = Value Prelude.Text
+  set newValue CustomAuthCredentialsProperty {..}
+    = CustomAuthCredentialsProperty
+        {customAuthenticationType = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/CustomAuthCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomAuthCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomAuthCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.CustomAuthCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CustomAuthCredentialsProperty :: Prelude.Type
+instance ToResourceProperties CustomAuthCredentialsProperty
+instance Prelude.Eq CustomAuthCredentialsProperty
+instance Prelude.Show CustomAuthCredentialsProperty
+instance JSON.ToJSON CustomAuthCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,83 @@
+module Stratosphere.AppFlow.ConnectorProfile.CustomConnectorProfileCredentialsProperty (
+        module Exports, CustomConnectorProfileCredentialsProperty(..),
+        mkCustomConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ApiKeyCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.BasicAuthCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.CustomAuthCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.OAuth2CredentialsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CustomConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customconnectorprofilecredentials.html>
+    CustomConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customconnectorprofilecredentials.html#cfn-appflow-connectorprofile-customconnectorprofilecredentials-apikey>
+                                               apiKey :: (Prelude.Maybe ApiKeyCredentialsProperty),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customconnectorprofilecredentials.html#cfn-appflow-connectorprofile-customconnectorprofilecredentials-authenticationtype>
+                                               authenticationType :: (Value Prelude.Text),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customconnectorprofilecredentials.html#cfn-appflow-connectorprofile-customconnectorprofilecredentials-basic>
+                                               basic :: (Prelude.Maybe BasicAuthCredentialsProperty),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customconnectorprofilecredentials.html#cfn-appflow-connectorprofile-customconnectorprofilecredentials-custom>
+                                               custom :: (Prelude.Maybe CustomAuthCredentialsProperty),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customconnectorprofilecredentials.html#cfn-appflow-connectorprofile-customconnectorprofilecredentials-oauth2>
+                                               oauth2 :: (Prelude.Maybe OAuth2CredentialsProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCustomConnectorProfileCredentialsProperty ::
+  Value Prelude.Text -> CustomConnectorProfileCredentialsProperty
+mkCustomConnectorProfileCredentialsProperty authenticationType
+  = CustomConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), authenticationType = authenticationType,
+       apiKey = Prelude.Nothing, basic = Prelude.Nothing,
+       custom = Prelude.Nothing, oauth2 = Prelude.Nothing}
+instance ToResourceProperties CustomConnectorProfileCredentialsProperty where
+  toResourceProperties CustomConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.CustomConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["AuthenticationType" JSON..= authenticationType]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ApiKey" Prelude.<$> apiKey,
+                               (JSON..=) "Basic" Prelude.<$> basic,
+                               (JSON..=) "Custom" Prelude.<$> custom,
+                               (JSON..=) "Oauth2" Prelude.<$> oauth2]))}
+instance JSON.ToJSON CustomConnectorProfileCredentialsProperty where
+  toJSON CustomConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["AuthenticationType" JSON..= authenticationType]
+              (Prelude.catMaybes
+                 [(JSON..=) "ApiKey" Prelude.<$> apiKey,
+                  (JSON..=) "Basic" Prelude.<$> basic,
+                  (JSON..=) "Custom" Prelude.<$> custom,
+                  (JSON..=) "Oauth2" Prelude.<$> oauth2])))
+instance Property "ApiKey" CustomConnectorProfileCredentialsProperty where
+  type PropertyType "ApiKey" CustomConnectorProfileCredentialsProperty = ApiKeyCredentialsProperty
+  set newValue CustomConnectorProfileCredentialsProperty {..}
+    = CustomConnectorProfileCredentialsProperty
+        {apiKey = Prelude.pure newValue, ..}
+instance Property "AuthenticationType" CustomConnectorProfileCredentialsProperty where
+  type PropertyType "AuthenticationType" CustomConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue CustomConnectorProfileCredentialsProperty {..}
+    = CustomConnectorProfileCredentialsProperty
+        {authenticationType = newValue, ..}
+instance Property "Basic" CustomConnectorProfileCredentialsProperty where
+  type PropertyType "Basic" CustomConnectorProfileCredentialsProperty = BasicAuthCredentialsProperty
+  set newValue CustomConnectorProfileCredentialsProperty {..}
+    = CustomConnectorProfileCredentialsProperty
+        {basic = Prelude.pure newValue, ..}
+instance Property "Custom" CustomConnectorProfileCredentialsProperty where
+  type PropertyType "Custom" CustomConnectorProfileCredentialsProperty = CustomAuthCredentialsProperty
+  set newValue CustomConnectorProfileCredentialsProperty {..}
+    = CustomConnectorProfileCredentialsProperty
+        {custom = Prelude.pure newValue, ..}
+instance Property "Oauth2" CustomConnectorProfileCredentialsProperty where
+  type PropertyType "Oauth2" CustomConnectorProfileCredentialsProperty = OAuth2CredentialsProperty
+  set newValue CustomConnectorProfileCredentialsProperty {..}
+    = CustomConnectorProfileCredentialsProperty
+        {oauth2 = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.CustomConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CustomConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties CustomConnectorProfileCredentialsProperty
+instance Prelude.Eq CustomConnectorProfileCredentialsProperty
+instance Prelude.Show CustomConnectorProfileCredentialsProperty
+instance JSON.ToJSON CustomConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.AppFlow.ConnectorProfile.CustomConnectorProfilePropertiesProperty (
+        module Exports, CustomConnectorProfilePropertiesProperty(..),
+        mkCustomConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.OAuth2PropertiesProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CustomConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customconnectorprofileproperties.html>
+    CustomConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customconnectorprofileproperties.html#cfn-appflow-connectorprofile-customconnectorprofileproperties-oauth2properties>
+                                              oAuth2Properties :: (Prelude.Maybe OAuth2PropertiesProperty),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-customconnectorprofileproperties.html#cfn-appflow-connectorprofile-customconnectorprofileproperties-profileproperties>
+                                              profileProperties :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text)))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCustomConnectorProfilePropertiesProperty ::
+  CustomConnectorProfilePropertiesProperty
+mkCustomConnectorProfilePropertiesProperty
+  = CustomConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), oAuth2Properties = Prelude.Nothing,
+       profileProperties = Prelude.Nothing}
+instance ToResourceProperties CustomConnectorProfilePropertiesProperty where
+  toResourceProperties CustomConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.CustomConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "OAuth2Properties" Prelude.<$> oAuth2Properties,
+                            (JSON..=) "ProfileProperties" Prelude.<$> profileProperties])}
+instance JSON.ToJSON CustomConnectorProfilePropertiesProperty where
+  toJSON CustomConnectorProfilePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "OAuth2Properties" Prelude.<$> oAuth2Properties,
+               (JSON..=) "ProfileProperties" Prelude.<$> profileProperties]))
+instance Property "OAuth2Properties" CustomConnectorProfilePropertiesProperty where
+  type PropertyType "OAuth2Properties" CustomConnectorProfilePropertiesProperty = OAuth2PropertiesProperty
+  set newValue CustomConnectorProfilePropertiesProperty {..}
+    = CustomConnectorProfilePropertiesProperty
+        {oAuth2Properties = Prelude.pure newValue, ..}
+instance Property "ProfileProperties" CustomConnectorProfilePropertiesProperty where
+  type PropertyType "ProfileProperties" CustomConnectorProfilePropertiesProperty = Prelude.Map Prelude.Text (Value Prelude.Text)
+  set newValue CustomConnectorProfilePropertiesProperty {..}
+    = CustomConnectorProfilePropertiesProperty
+        {profileProperties = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/CustomConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.CustomConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CustomConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties CustomConnectorProfilePropertiesProperty
+instance Prelude.Eq CustomConnectorProfilePropertiesProperty
+instance Prelude.Show CustomConnectorProfilePropertiesProperty
+instance JSON.ToJSON CustomConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,46 @@
+module Stratosphere.AppFlow.ConnectorProfile.DatadogConnectorProfileCredentialsProperty (
+        DatadogConnectorProfileCredentialsProperty(..),
+        mkDatadogConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DatadogConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofilecredentials.html>
+    DatadogConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofilecredentials.html#cfn-appflow-connectorprofile-datadogconnectorprofilecredentials-apikey>
+                                                apiKey :: (Value Prelude.Text),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofilecredentials.html#cfn-appflow-connectorprofile-datadogconnectorprofilecredentials-applicationkey>
+                                                applicationKey :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDatadogConnectorProfileCredentialsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> DatadogConnectorProfileCredentialsProperty
+mkDatadogConnectorProfileCredentialsProperty apiKey applicationKey
+  = DatadogConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), apiKey = apiKey,
+       applicationKey = applicationKey}
+instance ToResourceProperties DatadogConnectorProfileCredentialsProperty where
+  toResourceProperties
+    DatadogConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = ["ApiKey" JSON..= apiKey,
+                       "ApplicationKey" JSON..= applicationKey]}
+instance JSON.ToJSON DatadogConnectorProfileCredentialsProperty where
+  toJSON DatadogConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        ["ApiKey" JSON..= apiKey, "ApplicationKey" JSON..= applicationKey]
+instance Property "ApiKey" DatadogConnectorProfileCredentialsProperty where
+  type PropertyType "ApiKey" DatadogConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue DatadogConnectorProfileCredentialsProperty {..}
+    = DatadogConnectorProfileCredentialsProperty
+        {apiKey = newValue, ..}
+instance Property "ApplicationKey" DatadogConnectorProfileCredentialsProperty where
+  type PropertyType "ApplicationKey" DatadogConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue DatadogConnectorProfileCredentialsProperty {..}
+    = DatadogConnectorProfileCredentialsProperty
+        {applicationKey = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.DatadogConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DatadogConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties DatadogConnectorProfileCredentialsProperty
+instance Prelude.Eq DatadogConnectorProfileCredentialsProperty
+instance Prelude.Show DatadogConnectorProfileCredentialsProperty
+instance JSON.ToJSON DatadogConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,34 @@
+module Stratosphere.AppFlow.ConnectorProfile.DatadogConnectorProfilePropertiesProperty (
+        DatadogConnectorProfilePropertiesProperty(..),
+        mkDatadogConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DatadogConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofileproperties.html>
+    DatadogConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofileproperties.html#cfn-appflow-connectorprofile-datadogconnectorprofileproperties-instanceurl>
+                                               instanceUrl :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDatadogConnectorProfilePropertiesProperty ::
+  Value Prelude.Text -> DatadogConnectorProfilePropertiesProperty
+mkDatadogConnectorProfilePropertiesProperty instanceUrl
+  = DatadogConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), instanceUrl = instanceUrl}
+instance ToResourceProperties DatadogConnectorProfilePropertiesProperty where
+  toResourceProperties DatadogConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = ["InstanceUrl" JSON..= instanceUrl]}
+instance JSON.ToJSON DatadogConnectorProfilePropertiesProperty where
+  toJSON DatadogConnectorProfilePropertiesProperty {..}
+    = JSON.object ["InstanceUrl" JSON..= instanceUrl]
+instance Property "InstanceUrl" DatadogConnectorProfilePropertiesProperty where
+  type PropertyType "InstanceUrl" DatadogConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue DatadogConnectorProfilePropertiesProperty {..}
+    = DatadogConnectorProfilePropertiesProperty
+        {instanceUrl = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/DatadogConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.DatadogConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DatadogConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties DatadogConnectorProfilePropertiesProperty
+instance Prelude.Eq DatadogConnectorProfilePropertiesProperty
+instance Prelude.Show DatadogConnectorProfilePropertiesProperty
+instance JSON.ToJSON DatadogConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,35 @@
+module Stratosphere.AppFlow.ConnectorProfile.DynatraceConnectorProfileCredentialsProperty (
+        DynatraceConnectorProfileCredentialsProperty(..),
+        mkDynatraceConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DynatraceConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofilecredentials.html>
+    DynatraceConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-dynatraceconnectorprofilecredentials-apitoken>
+                                                  apiToken :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDynatraceConnectorProfileCredentialsProperty ::
+  Value Prelude.Text -> DynatraceConnectorProfileCredentialsProperty
+mkDynatraceConnectorProfileCredentialsProperty apiToken
+  = DynatraceConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), apiToken = apiToken}
+instance ToResourceProperties DynatraceConnectorProfileCredentialsProperty where
+  toResourceProperties
+    DynatraceConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = ["ApiToken" JSON..= apiToken]}
+instance JSON.ToJSON DynatraceConnectorProfileCredentialsProperty where
+  toJSON DynatraceConnectorProfileCredentialsProperty {..}
+    = JSON.object ["ApiToken" JSON..= apiToken]
+instance Property "ApiToken" DynatraceConnectorProfileCredentialsProperty where
+  type PropertyType "ApiToken" DynatraceConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue DynatraceConnectorProfileCredentialsProperty {..}
+    = DynatraceConnectorProfileCredentialsProperty
+        {apiToken = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.DynatraceConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DynatraceConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties DynatraceConnectorProfileCredentialsProperty
+instance Prelude.Eq DynatraceConnectorProfileCredentialsProperty
+instance Prelude.Show DynatraceConnectorProfileCredentialsProperty
+instance JSON.ToJSON DynatraceConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,35 @@
+module Stratosphere.AppFlow.ConnectorProfile.DynatraceConnectorProfilePropertiesProperty (
+        DynatraceConnectorProfilePropertiesProperty(..),
+        mkDynatraceConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DynatraceConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofileproperties.html>
+    DynatraceConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofileproperties.html#cfn-appflow-connectorprofile-dynatraceconnectorprofileproperties-instanceurl>
+                                                 instanceUrl :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDynatraceConnectorProfilePropertiesProperty ::
+  Value Prelude.Text -> DynatraceConnectorProfilePropertiesProperty
+mkDynatraceConnectorProfilePropertiesProperty instanceUrl
+  = DynatraceConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), instanceUrl = instanceUrl}
+instance ToResourceProperties DynatraceConnectorProfilePropertiesProperty where
+  toResourceProperties
+    DynatraceConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = ["InstanceUrl" JSON..= instanceUrl]}
+instance JSON.ToJSON DynatraceConnectorProfilePropertiesProperty where
+  toJSON DynatraceConnectorProfilePropertiesProperty {..}
+    = JSON.object ["InstanceUrl" JSON..= instanceUrl]
+instance Property "InstanceUrl" DynatraceConnectorProfilePropertiesProperty where
+  type PropertyType "InstanceUrl" DynatraceConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue DynatraceConnectorProfilePropertiesProperty {..}
+    = DynatraceConnectorProfilePropertiesProperty
+        {instanceUrl = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/DynatraceConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.DynatraceConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DynatraceConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties DynatraceConnectorProfilePropertiesProperty
+instance Prelude.Eq DynatraceConnectorProfilePropertiesProperty
+instance Prelude.Show DynatraceConnectorProfilePropertiesProperty
+instance JSON.ToJSON DynatraceConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/GoogleAnalyticsConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/GoogleAnalyticsConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/GoogleAnalyticsConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,97 @@
+module Stratosphere.AppFlow.ConnectorProfile.GoogleAnalyticsConnectorProfileCredentialsProperty (
+        module Exports,
+        GoogleAnalyticsConnectorProfileCredentialsProperty(..),
+        mkGoogleAnalyticsConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ConnectorOAuthRequestProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data GoogleAnalyticsConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html>
+    GoogleAnalyticsConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html#cfn-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials-accesstoken>
+                                                        accessToken :: (Prelude.Maybe (Value Prelude.Text)),
+                                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html#cfn-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials-clientid>
+                                                        clientId :: (Value Prelude.Text),
+                                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html#cfn-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials-clientsecret>
+                                                        clientSecret :: (Value Prelude.Text),
+                                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html#cfn-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials-connectoroauthrequest>
+                                                        connectorOAuthRequest :: (Prelude.Maybe ConnectorOAuthRequestProperty),
+                                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html#cfn-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials-refreshtoken>
+                                                        refreshToken :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkGoogleAnalyticsConnectorProfileCredentialsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text
+     -> GoogleAnalyticsConnectorProfileCredentialsProperty
+mkGoogleAnalyticsConnectorProfileCredentialsProperty
+  clientId
+  clientSecret
+  = GoogleAnalyticsConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), clientId = clientId,
+       clientSecret = clientSecret, accessToken = Prelude.Nothing,
+       connectorOAuthRequest = Prelude.Nothing,
+       refreshToken = Prelude.Nothing}
+instance ToResourceProperties GoogleAnalyticsConnectorProfileCredentialsProperty where
+  toResourceProperties
+    GoogleAnalyticsConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.GoogleAnalyticsConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ClientId" JSON..= clientId, "ClientSecret" JSON..= clientSecret]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                               (JSON..=) "ConnectorOAuthRequest"
+                                 Prelude.<$> connectorOAuthRequest,
+                               (JSON..=) "RefreshToken" Prelude.<$> refreshToken]))}
+instance JSON.ToJSON GoogleAnalyticsConnectorProfileCredentialsProperty where
+  toJSON GoogleAnalyticsConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ClientId" JSON..= clientId, "ClientSecret" JSON..= clientSecret]
+              (Prelude.catMaybes
+                 [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                  (JSON..=) "ConnectorOAuthRequest"
+                    Prelude.<$> connectorOAuthRequest,
+                  (JSON..=) "RefreshToken" Prelude.<$> refreshToken])))
+instance Property "AccessToken" GoogleAnalyticsConnectorProfileCredentialsProperty where
+  type PropertyType "AccessToken" GoogleAnalyticsConnectorProfileCredentialsProperty = Value Prelude.Text
+  set
+    newValue
+    GoogleAnalyticsConnectorProfileCredentialsProperty {..}
+    = GoogleAnalyticsConnectorProfileCredentialsProperty
+        {accessToken = Prelude.pure newValue, ..}
+instance Property "ClientId" GoogleAnalyticsConnectorProfileCredentialsProperty where
+  type PropertyType "ClientId" GoogleAnalyticsConnectorProfileCredentialsProperty = Value Prelude.Text
+  set
+    newValue
+    GoogleAnalyticsConnectorProfileCredentialsProperty {..}
+    = GoogleAnalyticsConnectorProfileCredentialsProperty
+        {clientId = newValue, ..}
+instance Property "ClientSecret" GoogleAnalyticsConnectorProfileCredentialsProperty where
+  type PropertyType "ClientSecret" GoogleAnalyticsConnectorProfileCredentialsProperty = Value Prelude.Text
+  set
+    newValue
+    GoogleAnalyticsConnectorProfileCredentialsProperty {..}
+    = GoogleAnalyticsConnectorProfileCredentialsProperty
+        {clientSecret = newValue, ..}
+instance Property "ConnectorOAuthRequest" GoogleAnalyticsConnectorProfileCredentialsProperty where
+  type PropertyType "ConnectorOAuthRequest" GoogleAnalyticsConnectorProfileCredentialsProperty = ConnectorOAuthRequestProperty
+  set
+    newValue
+    GoogleAnalyticsConnectorProfileCredentialsProperty {..}
+    = GoogleAnalyticsConnectorProfileCredentialsProperty
+        {connectorOAuthRequest = Prelude.pure newValue, ..}
+instance Property "RefreshToken" GoogleAnalyticsConnectorProfileCredentialsProperty where
+  type PropertyType "RefreshToken" GoogleAnalyticsConnectorProfileCredentialsProperty = Value Prelude.Text
+  set
+    newValue
+    GoogleAnalyticsConnectorProfileCredentialsProperty {..}
+    = GoogleAnalyticsConnectorProfileCredentialsProperty
+        {refreshToken = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/GoogleAnalyticsConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/GoogleAnalyticsConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/GoogleAnalyticsConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.GoogleAnalyticsConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data GoogleAnalyticsConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties GoogleAnalyticsConnectorProfileCredentialsProperty
+instance Prelude.Eq GoogleAnalyticsConnectorProfileCredentialsProperty
+instance Prelude.Show GoogleAnalyticsConnectorProfileCredentialsProperty
+instance JSON.ToJSON GoogleAnalyticsConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,71 @@
+module Stratosphere.AppFlow.ConnectorProfile.InforNexusConnectorProfileCredentialsProperty (
+        InforNexusConnectorProfileCredentialsProperty(..),
+        mkInforNexusConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data InforNexusConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html>
+    InforNexusConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html#cfn-appflow-connectorprofile-infornexusconnectorprofilecredentials-accesskeyid>
+                                                   accessKeyId :: (Value Prelude.Text),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html#cfn-appflow-connectorprofile-infornexusconnectorprofilecredentials-datakey>
+                                                   datakey :: (Value Prelude.Text),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html#cfn-appflow-connectorprofile-infornexusconnectorprofilecredentials-secretaccesskey>
+                                                   secretAccessKey :: (Value Prelude.Text),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html#cfn-appflow-connectorprofile-infornexusconnectorprofilecredentials-userid>
+                                                   userId :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkInforNexusConnectorProfileCredentialsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text
+     -> Value Prelude.Text
+        -> Value Prelude.Text
+           -> InforNexusConnectorProfileCredentialsProperty
+mkInforNexusConnectorProfileCredentialsProperty
+  accessKeyId
+  datakey
+  secretAccessKey
+  userId
+  = InforNexusConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), accessKeyId = accessKeyId,
+       datakey = datakey, secretAccessKey = secretAccessKey,
+       userId = userId}
+instance ToResourceProperties InforNexusConnectorProfileCredentialsProperty where
+  toResourceProperties
+    InforNexusConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = ["AccessKeyId" JSON..= accessKeyId,
+                       "Datakey" JSON..= datakey,
+                       "SecretAccessKey" JSON..= secretAccessKey,
+                       "UserId" JSON..= userId]}
+instance JSON.ToJSON InforNexusConnectorProfileCredentialsProperty where
+  toJSON InforNexusConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        ["AccessKeyId" JSON..= accessKeyId, "Datakey" JSON..= datakey,
+         "SecretAccessKey" JSON..= secretAccessKey, "UserId" JSON..= userId]
+instance Property "AccessKeyId" InforNexusConnectorProfileCredentialsProperty where
+  type PropertyType "AccessKeyId" InforNexusConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue InforNexusConnectorProfileCredentialsProperty {..}
+    = InforNexusConnectorProfileCredentialsProperty
+        {accessKeyId = newValue, ..}
+instance Property "Datakey" InforNexusConnectorProfileCredentialsProperty where
+  type PropertyType "Datakey" InforNexusConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue InforNexusConnectorProfileCredentialsProperty {..}
+    = InforNexusConnectorProfileCredentialsProperty
+        {datakey = newValue, ..}
+instance Property "SecretAccessKey" InforNexusConnectorProfileCredentialsProperty where
+  type PropertyType "SecretAccessKey" InforNexusConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue InforNexusConnectorProfileCredentialsProperty {..}
+    = InforNexusConnectorProfileCredentialsProperty
+        {secretAccessKey = newValue, ..}
+instance Property "UserId" InforNexusConnectorProfileCredentialsProperty where
+  type PropertyType "UserId" InforNexusConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue InforNexusConnectorProfileCredentialsProperty {..}
+    = InforNexusConnectorProfileCredentialsProperty
+        {userId = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.InforNexusConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data InforNexusConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties InforNexusConnectorProfileCredentialsProperty
+instance Prelude.Eq InforNexusConnectorProfileCredentialsProperty
+instance Prelude.Show InforNexusConnectorProfileCredentialsProperty
+instance JSON.ToJSON InforNexusConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,35 @@
+module Stratosphere.AppFlow.ConnectorProfile.InforNexusConnectorProfilePropertiesProperty (
+        InforNexusConnectorProfilePropertiesProperty(..),
+        mkInforNexusConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data InforNexusConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofileproperties.html>
+    InforNexusConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofileproperties.html#cfn-appflow-connectorprofile-infornexusconnectorprofileproperties-instanceurl>
+                                                  instanceUrl :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkInforNexusConnectorProfilePropertiesProperty ::
+  Value Prelude.Text -> InforNexusConnectorProfilePropertiesProperty
+mkInforNexusConnectorProfilePropertiesProperty instanceUrl
+  = InforNexusConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), instanceUrl = instanceUrl}
+instance ToResourceProperties InforNexusConnectorProfilePropertiesProperty where
+  toResourceProperties
+    InforNexusConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = ["InstanceUrl" JSON..= instanceUrl]}
+instance JSON.ToJSON InforNexusConnectorProfilePropertiesProperty where
+  toJSON InforNexusConnectorProfilePropertiesProperty {..}
+    = JSON.object ["InstanceUrl" JSON..= instanceUrl]
+instance Property "InstanceUrl" InforNexusConnectorProfilePropertiesProperty where
+  type PropertyType "InstanceUrl" InforNexusConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue InforNexusConnectorProfilePropertiesProperty {..}
+    = InforNexusConnectorProfilePropertiesProperty
+        {instanceUrl = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/InforNexusConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.InforNexusConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data InforNexusConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties InforNexusConnectorProfilePropertiesProperty
+instance Prelude.Eq InforNexusConnectorProfilePropertiesProperty
+instance Prelude.Show InforNexusConnectorProfilePropertiesProperty
+instance JSON.ToJSON InforNexusConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,73 @@
+module Stratosphere.AppFlow.ConnectorProfile.MarketoConnectorProfileCredentialsProperty (
+        module Exports, MarketoConnectorProfileCredentialsProperty(..),
+        mkMarketoConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ConnectorOAuthRequestProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MarketoConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html>
+    MarketoConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html#cfn-appflow-connectorprofile-marketoconnectorprofilecredentials-accesstoken>
+                                                accessToken :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html#cfn-appflow-connectorprofile-marketoconnectorprofilecredentials-clientid>
+                                                clientId :: (Value Prelude.Text),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html#cfn-appflow-connectorprofile-marketoconnectorprofilecredentials-clientsecret>
+                                                clientSecret :: (Value Prelude.Text),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html#cfn-appflow-connectorprofile-marketoconnectorprofilecredentials-connectoroauthrequest>
+                                                connectorOAuthRequest :: (Prelude.Maybe ConnectorOAuthRequestProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMarketoConnectorProfileCredentialsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> MarketoConnectorProfileCredentialsProperty
+mkMarketoConnectorProfileCredentialsProperty clientId clientSecret
+  = MarketoConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), clientId = clientId,
+       clientSecret = clientSecret, accessToken = Prelude.Nothing,
+       connectorOAuthRequest = Prelude.Nothing}
+instance ToResourceProperties MarketoConnectorProfileCredentialsProperty where
+  toResourceProperties
+    MarketoConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ClientId" JSON..= clientId, "ClientSecret" JSON..= clientSecret]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                               (JSON..=) "ConnectorOAuthRequest"
+                                 Prelude.<$> connectorOAuthRequest]))}
+instance JSON.ToJSON MarketoConnectorProfileCredentialsProperty where
+  toJSON MarketoConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ClientId" JSON..= clientId, "ClientSecret" JSON..= clientSecret]
+              (Prelude.catMaybes
+                 [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                  (JSON..=) "ConnectorOAuthRequest"
+                    Prelude.<$> connectorOAuthRequest])))
+instance Property "AccessToken" MarketoConnectorProfileCredentialsProperty where
+  type PropertyType "AccessToken" MarketoConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue MarketoConnectorProfileCredentialsProperty {..}
+    = MarketoConnectorProfileCredentialsProperty
+        {accessToken = Prelude.pure newValue, ..}
+instance Property "ClientId" MarketoConnectorProfileCredentialsProperty where
+  type PropertyType "ClientId" MarketoConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue MarketoConnectorProfileCredentialsProperty {..}
+    = MarketoConnectorProfileCredentialsProperty
+        {clientId = newValue, ..}
+instance Property "ClientSecret" MarketoConnectorProfileCredentialsProperty where
+  type PropertyType "ClientSecret" MarketoConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue MarketoConnectorProfileCredentialsProperty {..}
+    = MarketoConnectorProfileCredentialsProperty
+        {clientSecret = newValue, ..}
+instance Property "ConnectorOAuthRequest" MarketoConnectorProfileCredentialsProperty where
+  type PropertyType "ConnectorOAuthRequest" MarketoConnectorProfileCredentialsProperty = ConnectorOAuthRequestProperty
+  set newValue MarketoConnectorProfileCredentialsProperty {..}
+    = MarketoConnectorProfileCredentialsProperty
+        {connectorOAuthRequest = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.MarketoConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MarketoConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties MarketoConnectorProfileCredentialsProperty
+instance Prelude.Eq MarketoConnectorProfileCredentialsProperty
+instance Prelude.Show MarketoConnectorProfileCredentialsProperty
+instance JSON.ToJSON MarketoConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,34 @@
+module Stratosphere.AppFlow.ConnectorProfile.MarketoConnectorProfilePropertiesProperty (
+        MarketoConnectorProfilePropertiesProperty(..),
+        mkMarketoConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MarketoConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofileproperties.html>
+    MarketoConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofileproperties.html#cfn-appflow-connectorprofile-marketoconnectorprofileproperties-instanceurl>
+                                               instanceUrl :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMarketoConnectorProfilePropertiesProperty ::
+  Value Prelude.Text -> MarketoConnectorProfilePropertiesProperty
+mkMarketoConnectorProfilePropertiesProperty instanceUrl
+  = MarketoConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), instanceUrl = instanceUrl}
+instance ToResourceProperties MarketoConnectorProfilePropertiesProperty where
+  toResourceProperties MarketoConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = ["InstanceUrl" JSON..= instanceUrl]}
+instance JSON.ToJSON MarketoConnectorProfilePropertiesProperty where
+  toJSON MarketoConnectorProfilePropertiesProperty {..}
+    = JSON.object ["InstanceUrl" JSON..= instanceUrl]
+instance Property "InstanceUrl" MarketoConnectorProfilePropertiesProperty where
+  type PropertyType "InstanceUrl" MarketoConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue MarketoConnectorProfilePropertiesProperty {..}
+    = MarketoConnectorProfilePropertiesProperty
+        {instanceUrl = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/MarketoConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.MarketoConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MarketoConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties MarketoConnectorProfilePropertiesProperty
+instance Prelude.Eq MarketoConnectorProfilePropertiesProperty
+instance Prelude.Show MarketoConnectorProfilePropertiesProperty
+instance JSON.ToJSON MarketoConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2CredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2CredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2CredentialsProperty.hs
@@ -0,0 +1,76 @@
+module Stratosphere.AppFlow.ConnectorProfile.OAuth2CredentialsProperty (
+        module Exports, OAuth2CredentialsProperty(..),
+        mkOAuth2CredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ConnectorOAuthRequestProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data OAuth2CredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauth2credentials.html>
+    OAuth2CredentialsProperty {haddock_workaround_ :: (),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauth2credentials.html#cfn-appflow-connectorprofile-oauth2credentials-accesstoken>
+                               accessToken :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauth2credentials.html#cfn-appflow-connectorprofile-oauth2credentials-clientid>
+                               clientId :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauth2credentials.html#cfn-appflow-connectorprofile-oauth2credentials-clientsecret>
+                               clientSecret :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauth2credentials.html#cfn-appflow-connectorprofile-oauth2credentials-oauthrequest>
+                               oAuthRequest :: (Prelude.Maybe ConnectorOAuthRequestProperty),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauth2credentials.html#cfn-appflow-connectorprofile-oauth2credentials-refreshtoken>
+                               refreshToken :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkOAuth2CredentialsProperty :: OAuth2CredentialsProperty
+mkOAuth2CredentialsProperty
+  = OAuth2CredentialsProperty
+      {haddock_workaround_ = (), accessToken = Prelude.Nothing,
+       clientId = Prelude.Nothing, clientSecret = Prelude.Nothing,
+       oAuthRequest = Prelude.Nothing, refreshToken = Prelude.Nothing}
+instance ToResourceProperties OAuth2CredentialsProperty where
+  toResourceProperties OAuth2CredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.OAuth2Credentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                            (JSON..=) "ClientId" Prelude.<$> clientId,
+                            (JSON..=) "ClientSecret" Prelude.<$> clientSecret,
+                            (JSON..=) "OAuthRequest" Prelude.<$> oAuthRequest,
+                            (JSON..=) "RefreshToken" Prelude.<$> refreshToken])}
+instance JSON.ToJSON OAuth2CredentialsProperty where
+  toJSON OAuth2CredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+               (JSON..=) "ClientId" Prelude.<$> clientId,
+               (JSON..=) "ClientSecret" Prelude.<$> clientSecret,
+               (JSON..=) "OAuthRequest" Prelude.<$> oAuthRequest,
+               (JSON..=) "RefreshToken" Prelude.<$> refreshToken]))
+instance Property "AccessToken" OAuth2CredentialsProperty where
+  type PropertyType "AccessToken" OAuth2CredentialsProperty = Value Prelude.Text
+  set newValue OAuth2CredentialsProperty {..}
+    = OAuth2CredentialsProperty
+        {accessToken = Prelude.pure newValue, ..}
+instance Property "ClientId" OAuth2CredentialsProperty where
+  type PropertyType "ClientId" OAuth2CredentialsProperty = Value Prelude.Text
+  set newValue OAuth2CredentialsProperty {..}
+    = OAuth2CredentialsProperty {clientId = Prelude.pure newValue, ..}
+instance Property "ClientSecret" OAuth2CredentialsProperty where
+  type PropertyType "ClientSecret" OAuth2CredentialsProperty = Value Prelude.Text
+  set newValue OAuth2CredentialsProperty {..}
+    = OAuth2CredentialsProperty
+        {clientSecret = Prelude.pure newValue, ..}
+instance Property "OAuthRequest" OAuth2CredentialsProperty where
+  type PropertyType "OAuthRequest" OAuth2CredentialsProperty = ConnectorOAuthRequestProperty
+  set newValue OAuth2CredentialsProperty {..}
+    = OAuth2CredentialsProperty
+        {oAuthRequest = Prelude.pure newValue, ..}
+instance Property "RefreshToken" OAuth2CredentialsProperty where
+  type PropertyType "RefreshToken" OAuth2CredentialsProperty = Value Prelude.Text
+  set newValue OAuth2CredentialsProperty {..}
+    = OAuth2CredentialsProperty
+        {refreshToken = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2CredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2CredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2CredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.OAuth2CredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data OAuth2CredentialsProperty :: Prelude.Type
+instance ToResourceProperties OAuth2CredentialsProperty
+instance Prelude.Eq OAuth2CredentialsProperty
+instance Prelude.Show OAuth2CredentialsProperty
+instance JSON.ToJSON OAuth2CredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2PropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2PropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2PropertiesProperty.hs
@@ -0,0 +1,58 @@
+module Stratosphere.AppFlow.ConnectorProfile.OAuth2PropertiesProperty (
+        OAuth2PropertiesProperty(..), mkOAuth2PropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data OAuth2PropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauth2properties.html>
+    OAuth2PropertiesProperty {haddock_workaround_ :: (),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauth2properties.html#cfn-appflow-connectorprofile-oauth2properties-oauth2granttype>
+                              oAuth2GrantType :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauth2properties.html#cfn-appflow-connectorprofile-oauth2properties-tokenurl>
+                              tokenUrl :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauth2properties.html#cfn-appflow-connectorprofile-oauth2properties-tokenurlcustomproperties>
+                              tokenUrlCustomProperties :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text)))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkOAuth2PropertiesProperty :: OAuth2PropertiesProperty
+mkOAuth2PropertiesProperty
+  = OAuth2PropertiesProperty
+      {haddock_workaround_ = (), oAuth2GrantType = Prelude.Nothing,
+       tokenUrl = Prelude.Nothing,
+       tokenUrlCustomProperties = Prelude.Nothing}
+instance ToResourceProperties OAuth2PropertiesProperty where
+  toResourceProperties OAuth2PropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.OAuth2Properties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "OAuth2GrantType" Prelude.<$> oAuth2GrantType,
+                            (JSON..=) "TokenUrl" Prelude.<$> tokenUrl,
+                            (JSON..=) "TokenUrlCustomProperties"
+                              Prelude.<$> tokenUrlCustomProperties])}
+instance JSON.ToJSON OAuth2PropertiesProperty where
+  toJSON OAuth2PropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "OAuth2GrantType" Prelude.<$> oAuth2GrantType,
+               (JSON..=) "TokenUrl" Prelude.<$> tokenUrl,
+               (JSON..=) "TokenUrlCustomProperties"
+                 Prelude.<$> tokenUrlCustomProperties]))
+instance Property "OAuth2GrantType" OAuth2PropertiesProperty where
+  type PropertyType "OAuth2GrantType" OAuth2PropertiesProperty = Value Prelude.Text
+  set newValue OAuth2PropertiesProperty {..}
+    = OAuth2PropertiesProperty
+        {oAuth2GrantType = Prelude.pure newValue, ..}
+instance Property "TokenUrl" OAuth2PropertiesProperty where
+  type PropertyType "TokenUrl" OAuth2PropertiesProperty = Value Prelude.Text
+  set newValue OAuth2PropertiesProperty {..}
+    = OAuth2PropertiesProperty {tokenUrl = Prelude.pure newValue, ..}
+instance Property "TokenUrlCustomProperties" OAuth2PropertiesProperty where
+  type PropertyType "TokenUrlCustomProperties" OAuth2PropertiesProperty = Prelude.Map Prelude.Text (Value Prelude.Text)
+  set newValue OAuth2PropertiesProperty {..}
+    = OAuth2PropertiesProperty
+        {tokenUrlCustomProperties = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2PropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2PropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuth2PropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.OAuth2PropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data OAuth2PropertiesProperty :: Prelude.Type
+instance ToResourceProperties OAuth2PropertiesProperty
+instance Prelude.Eq OAuth2PropertiesProperty
+instance Prelude.Show OAuth2PropertiesProperty
+instance JSON.ToJSON OAuth2PropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthCredentialsProperty.hs
@@ -0,0 +1,79 @@
+module Stratosphere.AppFlow.ConnectorProfile.OAuthCredentialsProperty (
+        module Exports, OAuthCredentialsProperty(..),
+        mkOAuthCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ConnectorOAuthRequestProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data OAuthCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthcredentials.html>
+    OAuthCredentialsProperty {haddock_workaround_ :: (),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthcredentials.html#cfn-appflow-connectorprofile-oauthcredentials-accesstoken>
+                              accessToken :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthcredentials.html#cfn-appflow-connectorprofile-oauthcredentials-clientid>
+                              clientId :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthcredentials.html#cfn-appflow-connectorprofile-oauthcredentials-clientsecret>
+                              clientSecret :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthcredentials.html#cfn-appflow-connectorprofile-oauthcredentials-connectoroauthrequest>
+                              connectorOAuthRequest :: (Prelude.Maybe ConnectorOAuthRequestProperty),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthcredentials.html#cfn-appflow-connectorprofile-oauthcredentials-refreshtoken>
+                              refreshToken :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkOAuthCredentialsProperty :: OAuthCredentialsProperty
+mkOAuthCredentialsProperty
+  = OAuthCredentialsProperty
+      {haddock_workaround_ = (), accessToken = Prelude.Nothing,
+       clientId = Prelude.Nothing, clientSecret = Prelude.Nothing,
+       connectorOAuthRequest = Prelude.Nothing,
+       refreshToken = Prelude.Nothing}
+instance ToResourceProperties OAuthCredentialsProperty where
+  toResourceProperties OAuthCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.OAuthCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                            (JSON..=) "ClientId" Prelude.<$> clientId,
+                            (JSON..=) "ClientSecret" Prelude.<$> clientSecret,
+                            (JSON..=) "ConnectorOAuthRequest"
+                              Prelude.<$> connectorOAuthRequest,
+                            (JSON..=) "RefreshToken" Prelude.<$> refreshToken])}
+instance JSON.ToJSON OAuthCredentialsProperty where
+  toJSON OAuthCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+               (JSON..=) "ClientId" Prelude.<$> clientId,
+               (JSON..=) "ClientSecret" Prelude.<$> clientSecret,
+               (JSON..=) "ConnectorOAuthRequest"
+                 Prelude.<$> connectorOAuthRequest,
+               (JSON..=) "RefreshToken" Prelude.<$> refreshToken]))
+instance Property "AccessToken" OAuthCredentialsProperty where
+  type PropertyType "AccessToken" OAuthCredentialsProperty = Value Prelude.Text
+  set newValue OAuthCredentialsProperty {..}
+    = OAuthCredentialsProperty
+        {accessToken = Prelude.pure newValue, ..}
+instance Property "ClientId" OAuthCredentialsProperty where
+  type PropertyType "ClientId" OAuthCredentialsProperty = Value Prelude.Text
+  set newValue OAuthCredentialsProperty {..}
+    = OAuthCredentialsProperty {clientId = Prelude.pure newValue, ..}
+instance Property "ClientSecret" OAuthCredentialsProperty where
+  type PropertyType "ClientSecret" OAuthCredentialsProperty = Value Prelude.Text
+  set newValue OAuthCredentialsProperty {..}
+    = OAuthCredentialsProperty
+        {clientSecret = Prelude.pure newValue, ..}
+instance Property "ConnectorOAuthRequest" OAuthCredentialsProperty where
+  type PropertyType "ConnectorOAuthRequest" OAuthCredentialsProperty = ConnectorOAuthRequestProperty
+  set newValue OAuthCredentialsProperty {..}
+    = OAuthCredentialsProperty
+        {connectorOAuthRequest = Prelude.pure newValue, ..}
+instance Property "RefreshToken" OAuthCredentialsProperty where
+  type PropertyType "RefreshToken" OAuthCredentialsProperty = Value Prelude.Text
+  set newValue OAuthCredentialsProperty {..}
+    = OAuthCredentialsProperty
+        {refreshToken = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.OAuthCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data OAuthCredentialsProperty :: Prelude.Type
+instance ToResourceProperties OAuthCredentialsProperty
+instance Prelude.Eq OAuthCredentialsProperty
+instance Prelude.Show OAuthCredentialsProperty
+instance JSON.ToJSON OAuthCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthPropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthPropertiesProperty.hs
@@ -0,0 +1,53 @@
+module Stratosphere.AppFlow.ConnectorProfile.OAuthPropertiesProperty (
+        OAuthPropertiesProperty(..), mkOAuthPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data OAuthPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html>
+    OAuthPropertiesProperty {haddock_workaround_ :: (),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html#cfn-appflow-connectorprofile-oauthproperties-authcodeurl>
+                             authCodeUrl :: (Prelude.Maybe (Value Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html#cfn-appflow-connectorprofile-oauthproperties-oauthscopes>
+                             oAuthScopes :: (Prelude.Maybe (ValueList Prelude.Text)),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html#cfn-appflow-connectorprofile-oauthproperties-tokenurl>
+                             tokenUrl :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkOAuthPropertiesProperty :: OAuthPropertiesProperty
+mkOAuthPropertiesProperty
+  = OAuthPropertiesProperty
+      {haddock_workaround_ = (), authCodeUrl = Prelude.Nothing,
+       oAuthScopes = Prelude.Nothing, tokenUrl = Prelude.Nothing}
+instance ToResourceProperties OAuthPropertiesProperty where
+  toResourceProperties OAuthPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.OAuthProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AuthCodeUrl" Prelude.<$> authCodeUrl,
+                            (JSON..=) "OAuthScopes" Prelude.<$> oAuthScopes,
+                            (JSON..=) "TokenUrl" Prelude.<$> tokenUrl])}
+instance JSON.ToJSON OAuthPropertiesProperty where
+  toJSON OAuthPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AuthCodeUrl" Prelude.<$> authCodeUrl,
+               (JSON..=) "OAuthScopes" Prelude.<$> oAuthScopes,
+               (JSON..=) "TokenUrl" Prelude.<$> tokenUrl]))
+instance Property "AuthCodeUrl" OAuthPropertiesProperty where
+  type PropertyType "AuthCodeUrl" OAuthPropertiesProperty = Value Prelude.Text
+  set newValue OAuthPropertiesProperty {..}
+    = OAuthPropertiesProperty {authCodeUrl = Prelude.pure newValue, ..}
+instance Property "OAuthScopes" OAuthPropertiesProperty where
+  type PropertyType "OAuthScopes" OAuthPropertiesProperty = ValueList Prelude.Text
+  set newValue OAuthPropertiesProperty {..}
+    = OAuthPropertiesProperty {oAuthScopes = Prelude.pure newValue, ..}
+instance Property "TokenUrl" OAuthPropertiesProperty where
+  type PropertyType "TokenUrl" OAuthPropertiesProperty = Value Prelude.Text
+  set newValue OAuthPropertiesProperty {..}
+    = OAuthPropertiesProperty {tokenUrl = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/OAuthPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.OAuthPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data OAuthPropertiesProperty :: Prelude.Type
+instance ToResourceProperties OAuthPropertiesProperty
+instance Prelude.Eq OAuthPropertiesProperty
+instance Prelude.Show OAuthPropertiesProperty
+instance JSON.ToJSON OAuthPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,72 @@
+module Stratosphere.AppFlow.ConnectorProfile.PardotConnectorProfileCredentialsProperty (
+        module Exports, PardotConnectorProfileCredentialsProperty(..),
+        mkPardotConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ConnectorOAuthRequestProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data PardotConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-pardotconnectorprofilecredentials.html>
+    PardotConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-pardotconnectorprofilecredentials.html#cfn-appflow-connectorprofile-pardotconnectorprofilecredentials-accesstoken>
+                                               accessToken :: (Prelude.Maybe (Value Prelude.Text)),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-pardotconnectorprofilecredentials.html#cfn-appflow-connectorprofile-pardotconnectorprofilecredentials-clientcredentialsarn>
+                                               clientCredentialsArn :: (Prelude.Maybe (Value Prelude.Text)),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-pardotconnectorprofilecredentials.html#cfn-appflow-connectorprofile-pardotconnectorprofilecredentials-connectoroauthrequest>
+                                               connectorOAuthRequest :: (Prelude.Maybe ConnectorOAuthRequestProperty),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-pardotconnectorprofilecredentials.html#cfn-appflow-connectorprofile-pardotconnectorprofilecredentials-refreshtoken>
+                                               refreshToken :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPardotConnectorProfileCredentialsProperty ::
+  PardotConnectorProfileCredentialsProperty
+mkPardotConnectorProfileCredentialsProperty
+  = PardotConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), accessToken = Prelude.Nothing,
+       clientCredentialsArn = Prelude.Nothing,
+       connectorOAuthRequest = Prelude.Nothing,
+       refreshToken = Prelude.Nothing}
+instance ToResourceProperties PardotConnectorProfileCredentialsProperty where
+  toResourceProperties PardotConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.PardotConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                            (JSON..=) "ClientCredentialsArn" Prelude.<$> clientCredentialsArn,
+                            (JSON..=) "ConnectorOAuthRequest"
+                              Prelude.<$> connectorOAuthRequest,
+                            (JSON..=) "RefreshToken" Prelude.<$> refreshToken])}
+instance JSON.ToJSON PardotConnectorProfileCredentialsProperty where
+  toJSON PardotConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+               (JSON..=) "ClientCredentialsArn" Prelude.<$> clientCredentialsArn,
+               (JSON..=) "ConnectorOAuthRequest"
+                 Prelude.<$> connectorOAuthRequest,
+               (JSON..=) "RefreshToken" Prelude.<$> refreshToken]))
+instance Property "AccessToken" PardotConnectorProfileCredentialsProperty where
+  type PropertyType "AccessToken" PardotConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue PardotConnectorProfileCredentialsProperty {..}
+    = PardotConnectorProfileCredentialsProperty
+        {accessToken = Prelude.pure newValue, ..}
+instance Property "ClientCredentialsArn" PardotConnectorProfileCredentialsProperty where
+  type PropertyType "ClientCredentialsArn" PardotConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue PardotConnectorProfileCredentialsProperty {..}
+    = PardotConnectorProfileCredentialsProperty
+        {clientCredentialsArn = Prelude.pure newValue, ..}
+instance Property "ConnectorOAuthRequest" PardotConnectorProfileCredentialsProperty where
+  type PropertyType "ConnectorOAuthRequest" PardotConnectorProfileCredentialsProperty = ConnectorOAuthRequestProperty
+  set newValue PardotConnectorProfileCredentialsProperty {..}
+    = PardotConnectorProfileCredentialsProperty
+        {connectorOAuthRequest = Prelude.pure newValue, ..}
+instance Property "RefreshToken" PardotConnectorProfileCredentialsProperty where
+  type PropertyType "RefreshToken" PardotConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue PardotConnectorProfileCredentialsProperty {..}
+    = PardotConnectorProfileCredentialsProperty
+        {refreshToken = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.PardotConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data PardotConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties PardotConnectorProfileCredentialsProperty
+instance Prelude.Eq PardotConnectorProfileCredentialsProperty
+instance Prelude.Show PardotConnectorProfileCredentialsProperty
+instance JSON.ToJSON PardotConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,63 @@
+module Stratosphere.AppFlow.ConnectorProfile.PardotConnectorProfilePropertiesProperty (
+        PardotConnectorProfilePropertiesProperty(..),
+        mkPardotConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data PardotConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-pardotconnectorprofileproperties.html>
+    PardotConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-pardotconnectorprofileproperties.html#cfn-appflow-connectorprofile-pardotconnectorprofileproperties-businessunitid>
+                                              businessUnitId :: (Value Prelude.Text),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-pardotconnectorprofileproperties.html#cfn-appflow-connectorprofile-pardotconnectorprofileproperties-instanceurl>
+                                              instanceUrl :: (Prelude.Maybe (Value Prelude.Text)),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-pardotconnectorprofileproperties.html#cfn-appflow-connectorprofile-pardotconnectorprofileproperties-issandboxenvironment>
+                                              isSandboxEnvironment :: (Prelude.Maybe (Value Prelude.Bool))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPardotConnectorProfilePropertiesProperty ::
+  Value Prelude.Text -> PardotConnectorProfilePropertiesProperty
+mkPardotConnectorProfilePropertiesProperty businessUnitId
+  = PardotConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), businessUnitId = businessUnitId,
+       instanceUrl = Prelude.Nothing,
+       isSandboxEnvironment = Prelude.Nothing}
+instance ToResourceProperties PardotConnectorProfilePropertiesProperty where
+  toResourceProperties PardotConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.PardotConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["BusinessUnitId" JSON..= businessUnitId]
+                           (Prelude.catMaybes
+                              [(JSON..=) "InstanceUrl" Prelude.<$> instanceUrl,
+                               (JSON..=) "IsSandboxEnvironment"
+                                 Prelude.<$> isSandboxEnvironment]))}
+instance JSON.ToJSON PardotConnectorProfilePropertiesProperty where
+  toJSON PardotConnectorProfilePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["BusinessUnitId" JSON..= businessUnitId]
+              (Prelude.catMaybes
+                 [(JSON..=) "InstanceUrl" Prelude.<$> instanceUrl,
+                  (JSON..=) "IsSandboxEnvironment"
+                    Prelude.<$> isSandboxEnvironment])))
+instance Property "BusinessUnitId" PardotConnectorProfilePropertiesProperty where
+  type PropertyType "BusinessUnitId" PardotConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue PardotConnectorProfilePropertiesProperty {..}
+    = PardotConnectorProfilePropertiesProperty
+        {businessUnitId = newValue, ..}
+instance Property "InstanceUrl" PardotConnectorProfilePropertiesProperty where
+  type PropertyType "InstanceUrl" PardotConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue PardotConnectorProfilePropertiesProperty {..}
+    = PardotConnectorProfilePropertiesProperty
+        {instanceUrl = Prelude.pure newValue, ..}
+instance Property "IsSandboxEnvironment" PardotConnectorProfilePropertiesProperty where
+  type PropertyType "IsSandboxEnvironment" PardotConnectorProfilePropertiesProperty = Value Prelude.Bool
+  set newValue PardotConnectorProfilePropertiesProperty {..}
+    = PardotConnectorProfilePropertiesProperty
+        {isSandboxEnvironment = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/PardotConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.PardotConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data PardotConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties PardotConnectorProfilePropertiesProperty
+instance Prelude.Eq PardotConnectorProfilePropertiesProperty
+instance Prelude.Show PardotConnectorProfilePropertiesProperty
+instance JSON.ToJSON PardotConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.AppFlow.ConnectorProfile.RedshiftConnectorProfileCredentialsProperty (
+        RedshiftConnectorProfileCredentialsProperty(..),
+        mkRedshiftConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data RedshiftConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofilecredentials.html>
+    RedshiftConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofilecredentials.html#cfn-appflow-connectorprofile-redshiftconnectorprofilecredentials-password>
+                                                 password :: (Prelude.Maybe (Value Prelude.Text)),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofilecredentials.html#cfn-appflow-connectorprofile-redshiftconnectorprofilecredentials-username>
+                                                 username :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRedshiftConnectorProfileCredentialsProperty ::
+  RedshiftConnectorProfileCredentialsProperty
+mkRedshiftConnectorProfileCredentialsProperty
+  = RedshiftConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), password = Prelude.Nothing,
+       username = Prelude.Nothing}
+instance ToResourceProperties RedshiftConnectorProfileCredentialsProperty where
+  toResourceProperties
+    RedshiftConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Password" Prelude.<$> password,
+                            (JSON..=) "Username" Prelude.<$> username])}
+instance JSON.ToJSON RedshiftConnectorProfileCredentialsProperty where
+  toJSON RedshiftConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Password" Prelude.<$> password,
+               (JSON..=) "Username" Prelude.<$> username]))
+instance Property "Password" RedshiftConnectorProfileCredentialsProperty where
+  type PropertyType "Password" RedshiftConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue RedshiftConnectorProfileCredentialsProperty {..}
+    = RedshiftConnectorProfileCredentialsProperty
+        {password = Prelude.pure newValue, ..}
+instance Property "Username" RedshiftConnectorProfileCredentialsProperty where
+  type PropertyType "Username" RedshiftConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue RedshiftConnectorProfileCredentialsProperty {..}
+    = RedshiftConnectorProfileCredentialsProperty
+        {username = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.RedshiftConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RedshiftConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties RedshiftConnectorProfileCredentialsProperty
+instance Prelude.Eq RedshiftConnectorProfileCredentialsProperty
+instance Prelude.Show RedshiftConnectorProfileCredentialsProperty
+instance JSON.ToJSON RedshiftConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,119 @@
+module Stratosphere.AppFlow.ConnectorProfile.RedshiftConnectorProfilePropertiesProperty (
+        RedshiftConnectorProfilePropertiesProperty(..),
+        mkRedshiftConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data RedshiftConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html>
+    RedshiftConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-bucketname>
+                                                bucketName :: (Value Prelude.Text),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-bucketprefix>
+                                                bucketPrefix :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-clusteridentifier>
+                                                clusterIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-dataapirolearn>
+                                                dataApiRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-databasename>
+                                                databaseName :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-databaseurl>
+                                                databaseUrl :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-isredshiftserverless>
+                                                isRedshiftServerless :: (Prelude.Maybe (Value Prelude.Bool)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-rolearn>
+                                                roleArn :: (Value Prelude.Text),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-workgroupname>
+                                                workgroupName :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRedshiftConnectorProfilePropertiesProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> RedshiftConnectorProfilePropertiesProperty
+mkRedshiftConnectorProfilePropertiesProperty bucketName roleArn
+  = RedshiftConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), bucketName = bucketName,
+       roleArn = roleArn, bucketPrefix = Prelude.Nothing,
+       clusterIdentifier = Prelude.Nothing,
+       dataApiRoleArn = Prelude.Nothing, databaseName = Prelude.Nothing,
+       databaseUrl = Prelude.Nothing,
+       isRedshiftServerless = Prelude.Nothing,
+       workgroupName = Prelude.Nothing}
+instance ToResourceProperties RedshiftConnectorProfilePropertiesProperty where
+  toResourceProperties
+    RedshiftConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["BucketName" JSON..= bucketName, "RoleArn" JSON..= roleArn]
+                           (Prelude.catMaybes
+                              [(JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+                               (JSON..=) "ClusterIdentifier" Prelude.<$> clusterIdentifier,
+                               (JSON..=) "DataApiRoleArn" Prelude.<$> dataApiRoleArn,
+                               (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+                               (JSON..=) "DatabaseUrl" Prelude.<$> databaseUrl,
+                               (JSON..=) "IsRedshiftServerless" Prelude.<$> isRedshiftServerless,
+                               (JSON..=) "WorkgroupName" Prelude.<$> workgroupName]))}
+instance JSON.ToJSON RedshiftConnectorProfilePropertiesProperty where
+  toJSON RedshiftConnectorProfilePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["BucketName" JSON..= bucketName, "RoleArn" JSON..= roleArn]
+              (Prelude.catMaybes
+                 [(JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+                  (JSON..=) "ClusterIdentifier" Prelude.<$> clusterIdentifier,
+                  (JSON..=) "DataApiRoleArn" Prelude.<$> dataApiRoleArn,
+                  (JSON..=) "DatabaseName" Prelude.<$> databaseName,
+                  (JSON..=) "DatabaseUrl" Prelude.<$> databaseUrl,
+                  (JSON..=) "IsRedshiftServerless" Prelude.<$> isRedshiftServerless,
+                  (JSON..=) "WorkgroupName" Prelude.<$> workgroupName])))
+instance Property "BucketName" RedshiftConnectorProfilePropertiesProperty where
+  type PropertyType "BucketName" RedshiftConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue RedshiftConnectorProfilePropertiesProperty {..}
+    = RedshiftConnectorProfilePropertiesProperty
+        {bucketName = newValue, ..}
+instance Property "BucketPrefix" RedshiftConnectorProfilePropertiesProperty where
+  type PropertyType "BucketPrefix" RedshiftConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue RedshiftConnectorProfilePropertiesProperty {..}
+    = RedshiftConnectorProfilePropertiesProperty
+        {bucketPrefix = Prelude.pure newValue, ..}
+instance Property "ClusterIdentifier" RedshiftConnectorProfilePropertiesProperty where
+  type PropertyType "ClusterIdentifier" RedshiftConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue RedshiftConnectorProfilePropertiesProperty {..}
+    = RedshiftConnectorProfilePropertiesProperty
+        {clusterIdentifier = Prelude.pure newValue, ..}
+instance Property "DataApiRoleArn" RedshiftConnectorProfilePropertiesProperty where
+  type PropertyType "DataApiRoleArn" RedshiftConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue RedshiftConnectorProfilePropertiesProperty {..}
+    = RedshiftConnectorProfilePropertiesProperty
+        {dataApiRoleArn = Prelude.pure newValue, ..}
+instance Property "DatabaseName" RedshiftConnectorProfilePropertiesProperty where
+  type PropertyType "DatabaseName" RedshiftConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue RedshiftConnectorProfilePropertiesProperty {..}
+    = RedshiftConnectorProfilePropertiesProperty
+        {databaseName = Prelude.pure newValue, ..}
+instance Property "DatabaseUrl" RedshiftConnectorProfilePropertiesProperty where
+  type PropertyType "DatabaseUrl" RedshiftConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue RedshiftConnectorProfilePropertiesProperty {..}
+    = RedshiftConnectorProfilePropertiesProperty
+        {databaseUrl = Prelude.pure newValue, ..}
+instance Property "IsRedshiftServerless" RedshiftConnectorProfilePropertiesProperty where
+  type PropertyType "IsRedshiftServerless" RedshiftConnectorProfilePropertiesProperty = Value Prelude.Bool
+  set newValue RedshiftConnectorProfilePropertiesProperty {..}
+    = RedshiftConnectorProfilePropertiesProperty
+        {isRedshiftServerless = Prelude.pure newValue, ..}
+instance Property "RoleArn" RedshiftConnectorProfilePropertiesProperty where
+  type PropertyType "RoleArn" RedshiftConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue RedshiftConnectorProfilePropertiesProperty {..}
+    = RedshiftConnectorProfilePropertiesProperty
+        {roleArn = newValue, ..}
+instance Property "WorkgroupName" RedshiftConnectorProfilePropertiesProperty where
+  type PropertyType "WorkgroupName" RedshiftConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue RedshiftConnectorProfilePropertiesProperty {..}
+    = RedshiftConnectorProfilePropertiesProperty
+        {workgroupName = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/RedshiftConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.RedshiftConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RedshiftConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties RedshiftConnectorProfilePropertiesProperty
+instance Prelude.Eq RedshiftConnectorProfilePropertiesProperty
+instance Prelude.Show RedshiftConnectorProfilePropertiesProperty
+instance JSON.ToJSON RedshiftConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,51 @@
+module Stratosphere.AppFlow.ConnectorProfile.SAPODataConnectorProfileCredentialsProperty (
+        module Exports, SAPODataConnectorProfileCredentialsProperty(..),
+        mkSAPODataConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.BasicAuthCredentialsProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.OAuthCredentialsProperty as Exports
+import Stratosphere.ResourceProperties
+data SAPODataConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html>
+    SAPODataConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html#cfn-appflow-connectorprofile-sapodataconnectorprofilecredentials-basicauthcredentials>
+                                                 basicAuthCredentials :: (Prelude.Maybe BasicAuthCredentialsProperty),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html#cfn-appflow-connectorprofile-sapodataconnectorprofilecredentials-oauthcredentials>
+                                                 oAuthCredentials :: (Prelude.Maybe OAuthCredentialsProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSAPODataConnectorProfileCredentialsProperty ::
+  SAPODataConnectorProfileCredentialsProperty
+mkSAPODataConnectorProfileCredentialsProperty
+  = SAPODataConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), basicAuthCredentials = Prelude.Nothing,
+       oAuthCredentials = Prelude.Nothing}
+instance ToResourceProperties SAPODataConnectorProfileCredentialsProperty where
+  toResourceProperties
+    SAPODataConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "BasicAuthCredentials" Prelude.<$> basicAuthCredentials,
+                            (JSON..=) "OAuthCredentials" Prelude.<$> oAuthCredentials])}
+instance JSON.ToJSON SAPODataConnectorProfileCredentialsProperty where
+  toJSON SAPODataConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "BasicAuthCredentials" Prelude.<$> basicAuthCredentials,
+               (JSON..=) "OAuthCredentials" Prelude.<$> oAuthCredentials]))
+instance Property "BasicAuthCredentials" SAPODataConnectorProfileCredentialsProperty where
+  type PropertyType "BasicAuthCredentials" SAPODataConnectorProfileCredentialsProperty = BasicAuthCredentialsProperty
+  set newValue SAPODataConnectorProfileCredentialsProperty {..}
+    = SAPODataConnectorProfileCredentialsProperty
+        {basicAuthCredentials = Prelude.pure newValue, ..}
+instance Property "OAuthCredentials" SAPODataConnectorProfileCredentialsProperty where
+  type PropertyType "OAuthCredentials" SAPODataConnectorProfileCredentialsProperty = OAuthCredentialsProperty
+  set newValue SAPODataConnectorProfileCredentialsProperty {..}
+    = SAPODataConnectorProfileCredentialsProperty
+        {oAuthCredentials = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.SAPODataConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SAPODataConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties SAPODataConnectorProfileCredentialsProperty
+instance Prelude.Eq SAPODataConnectorProfileCredentialsProperty
+instance Prelude.Show SAPODataConnectorProfileCredentialsProperty
+instance JSON.ToJSON SAPODataConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,113 @@
+module Stratosphere.AppFlow.ConnectorProfile.SAPODataConnectorProfilePropertiesProperty (
+        module Exports, SAPODataConnectorProfilePropertiesProperty(..),
+        mkSAPODataConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.OAuthPropertiesProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SAPODataConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html>
+    SAPODataConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-applicationhosturl>
+                                                applicationHostUrl :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-applicationservicepath>
+                                                applicationServicePath :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-clientnumber>
+                                                clientNumber :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-disablesso>
+                                                disableSSO :: (Prelude.Maybe (Value Prelude.Bool)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-logonlanguage>
+                                                logonLanguage :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-oauthproperties>
+                                                oAuthProperties :: (Prelude.Maybe OAuthPropertiesProperty),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-portnumber>
+                                                portNumber :: (Prelude.Maybe (Value Prelude.Integer)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-privatelinkservicename>
+                                                privateLinkServiceName :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSAPODataConnectorProfilePropertiesProperty ::
+  SAPODataConnectorProfilePropertiesProperty
+mkSAPODataConnectorProfilePropertiesProperty
+  = SAPODataConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), applicationHostUrl = Prelude.Nothing,
+       applicationServicePath = Prelude.Nothing,
+       clientNumber = Prelude.Nothing, disableSSO = Prelude.Nothing,
+       logonLanguage = Prelude.Nothing, oAuthProperties = Prelude.Nothing,
+       portNumber = Prelude.Nothing,
+       privateLinkServiceName = Prelude.Nothing}
+instance ToResourceProperties SAPODataConnectorProfilePropertiesProperty where
+  toResourceProperties
+    SAPODataConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "ApplicationHostUrl" Prelude.<$> applicationHostUrl,
+                            (JSON..=) "ApplicationServicePath"
+                              Prelude.<$> applicationServicePath,
+                            (JSON..=) "ClientNumber" Prelude.<$> clientNumber,
+                            (JSON..=) "DisableSSO" Prelude.<$> disableSSO,
+                            (JSON..=) "LogonLanguage" Prelude.<$> logonLanguage,
+                            (JSON..=) "OAuthProperties" Prelude.<$> oAuthProperties,
+                            (JSON..=) "PortNumber" Prelude.<$> portNumber,
+                            (JSON..=) "PrivateLinkServiceName"
+                              Prelude.<$> privateLinkServiceName])}
+instance JSON.ToJSON SAPODataConnectorProfilePropertiesProperty where
+  toJSON SAPODataConnectorProfilePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "ApplicationHostUrl" Prelude.<$> applicationHostUrl,
+               (JSON..=) "ApplicationServicePath"
+                 Prelude.<$> applicationServicePath,
+               (JSON..=) "ClientNumber" Prelude.<$> clientNumber,
+               (JSON..=) "DisableSSO" Prelude.<$> disableSSO,
+               (JSON..=) "LogonLanguage" Prelude.<$> logonLanguage,
+               (JSON..=) "OAuthProperties" Prelude.<$> oAuthProperties,
+               (JSON..=) "PortNumber" Prelude.<$> portNumber,
+               (JSON..=) "PrivateLinkServiceName"
+                 Prelude.<$> privateLinkServiceName]))
+instance Property "ApplicationHostUrl" SAPODataConnectorProfilePropertiesProperty where
+  type PropertyType "ApplicationHostUrl" SAPODataConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SAPODataConnectorProfilePropertiesProperty {..}
+    = SAPODataConnectorProfilePropertiesProperty
+        {applicationHostUrl = Prelude.pure newValue, ..}
+instance Property "ApplicationServicePath" SAPODataConnectorProfilePropertiesProperty where
+  type PropertyType "ApplicationServicePath" SAPODataConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SAPODataConnectorProfilePropertiesProperty {..}
+    = SAPODataConnectorProfilePropertiesProperty
+        {applicationServicePath = Prelude.pure newValue, ..}
+instance Property "ClientNumber" SAPODataConnectorProfilePropertiesProperty where
+  type PropertyType "ClientNumber" SAPODataConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SAPODataConnectorProfilePropertiesProperty {..}
+    = SAPODataConnectorProfilePropertiesProperty
+        {clientNumber = Prelude.pure newValue, ..}
+instance Property "DisableSSO" SAPODataConnectorProfilePropertiesProperty where
+  type PropertyType "DisableSSO" SAPODataConnectorProfilePropertiesProperty = Value Prelude.Bool
+  set newValue SAPODataConnectorProfilePropertiesProperty {..}
+    = SAPODataConnectorProfilePropertiesProperty
+        {disableSSO = Prelude.pure newValue, ..}
+instance Property "LogonLanguage" SAPODataConnectorProfilePropertiesProperty where
+  type PropertyType "LogonLanguage" SAPODataConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SAPODataConnectorProfilePropertiesProperty {..}
+    = SAPODataConnectorProfilePropertiesProperty
+        {logonLanguage = Prelude.pure newValue, ..}
+instance Property "OAuthProperties" SAPODataConnectorProfilePropertiesProperty where
+  type PropertyType "OAuthProperties" SAPODataConnectorProfilePropertiesProperty = OAuthPropertiesProperty
+  set newValue SAPODataConnectorProfilePropertiesProperty {..}
+    = SAPODataConnectorProfilePropertiesProperty
+        {oAuthProperties = Prelude.pure newValue, ..}
+instance Property "PortNumber" SAPODataConnectorProfilePropertiesProperty where
+  type PropertyType "PortNumber" SAPODataConnectorProfilePropertiesProperty = Value Prelude.Integer
+  set newValue SAPODataConnectorProfilePropertiesProperty {..}
+    = SAPODataConnectorProfilePropertiesProperty
+        {portNumber = Prelude.pure newValue, ..}
+instance Property "PrivateLinkServiceName" SAPODataConnectorProfilePropertiesProperty where
+  type PropertyType "PrivateLinkServiceName" SAPODataConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SAPODataConnectorProfilePropertiesProperty {..}
+    = SAPODataConnectorProfilePropertiesProperty
+        {privateLinkServiceName = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SAPODataConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.SAPODataConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SAPODataConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties SAPODataConnectorProfilePropertiesProperty
+instance Prelude.Eq SAPODataConnectorProfilePropertiesProperty
+instance Prelude.Show SAPODataConnectorProfilePropertiesProperty
+instance JSON.ToJSON SAPODataConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,92 @@
+module Stratosphere.AppFlow.ConnectorProfile.SalesforceConnectorProfileCredentialsProperty (
+        module Exports, SalesforceConnectorProfileCredentialsProperty(..),
+        mkSalesforceConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ConnectorOAuthRequestProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SalesforceConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html>
+    SalesforceConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-accesstoken>
+                                                   accessToken :: (Prelude.Maybe (Value Prelude.Text)),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-clientcredentialsarn>
+                                                   clientCredentialsArn :: (Prelude.Maybe (Value Prelude.Text)),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-connectoroauthrequest>
+                                                   connectorOAuthRequest :: (Prelude.Maybe ConnectorOAuthRequestProperty),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-jwttoken>
+                                                   jwtToken :: (Prelude.Maybe (Value Prelude.Text)),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-oauth2granttype>
+                                                   oAuth2GrantType :: (Prelude.Maybe (Value Prelude.Text)),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-refreshtoken>
+                                                   refreshToken :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSalesforceConnectorProfileCredentialsProperty ::
+  SalesforceConnectorProfileCredentialsProperty
+mkSalesforceConnectorProfileCredentialsProperty
+  = SalesforceConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), accessToken = Prelude.Nothing,
+       clientCredentialsArn = Prelude.Nothing,
+       connectorOAuthRequest = Prelude.Nothing,
+       jwtToken = Prelude.Nothing, oAuth2GrantType = Prelude.Nothing,
+       refreshToken = Prelude.Nothing}
+instance ToResourceProperties SalesforceConnectorProfileCredentialsProperty where
+  toResourceProperties
+    SalesforceConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                            (JSON..=) "ClientCredentialsArn" Prelude.<$> clientCredentialsArn,
+                            (JSON..=) "ConnectorOAuthRequest"
+                              Prelude.<$> connectorOAuthRequest,
+                            (JSON..=) "JwtToken" Prelude.<$> jwtToken,
+                            (JSON..=) "OAuth2GrantType" Prelude.<$> oAuth2GrantType,
+                            (JSON..=) "RefreshToken" Prelude.<$> refreshToken])}
+instance JSON.ToJSON SalesforceConnectorProfileCredentialsProperty where
+  toJSON SalesforceConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+               (JSON..=) "ClientCredentialsArn" Prelude.<$> clientCredentialsArn,
+               (JSON..=) "ConnectorOAuthRequest"
+                 Prelude.<$> connectorOAuthRequest,
+               (JSON..=) "JwtToken" Prelude.<$> jwtToken,
+               (JSON..=) "OAuth2GrantType" Prelude.<$> oAuth2GrantType,
+               (JSON..=) "RefreshToken" Prelude.<$> refreshToken]))
+instance Property "AccessToken" SalesforceConnectorProfileCredentialsProperty where
+  type PropertyType "AccessToken" SalesforceConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue SalesforceConnectorProfileCredentialsProperty {..}
+    = SalesforceConnectorProfileCredentialsProperty
+        {accessToken = Prelude.pure newValue, ..}
+instance Property "ClientCredentialsArn" SalesforceConnectorProfileCredentialsProperty where
+  type PropertyType "ClientCredentialsArn" SalesforceConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue SalesforceConnectorProfileCredentialsProperty {..}
+    = SalesforceConnectorProfileCredentialsProperty
+        {clientCredentialsArn = Prelude.pure newValue, ..}
+instance Property "ConnectorOAuthRequest" SalesforceConnectorProfileCredentialsProperty where
+  type PropertyType "ConnectorOAuthRequest" SalesforceConnectorProfileCredentialsProperty = ConnectorOAuthRequestProperty
+  set newValue SalesforceConnectorProfileCredentialsProperty {..}
+    = SalesforceConnectorProfileCredentialsProperty
+        {connectorOAuthRequest = Prelude.pure newValue, ..}
+instance Property "JwtToken" SalesforceConnectorProfileCredentialsProperty where
+  type PropertyType "JwtToken" SalesforceConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue SalesforceConnectorProfileCredentialsProperty {..}
+    = SalesforceConnectorProfileCredentialsProperty
+        {jwtToken = Prelude.pure newValue, ..}
+instance Property "OAuth2GrantType" SalesforceConnectorProfileCredentialsProperty where
+  type PropertyType "OAuth2GrantType" SalesforceConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue SalesforceConnectorProfileCredentialsProperty {..}
+    = SalesforceConnectorProfileCredentialsProperty
+        {oAuth2GrantType = Prelude.pure newValue, ..}
+instance Property "RefreshToken" SalesforceConnectorProfileCredentialsProperty where
+  type PropertyType "RefreshToken" SalesforceConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue SalesforceConnectorProfileCredentialsProperty {..}
+    = SalesforceConnectorProfileCredentialsProperty
+        {refreshToken = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.SalesforceConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SalesforceConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties SalesforceConnectorProfileCredentialsProperty
+instance Prelude.Eq SalesforceConnectorProfileCredentialsProperty
+instance Prelude.Show SalesforceConnectorProfileCredentialsProperty
+instance JSON.ToJSON SalesforceConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,63 @@
+module Stratosphere.AppFlow.ConnectorProfile.SalesforceConnectorProfilePropertiesProperty (
+        SalesforceConnectorProfilePropertiesProperty(..),
+        mkSalesforceConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SalesforceConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofileproperties.html>
+    SalesforceConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofileproperties.html#cfn-appflow-connectorprofile-salesforceconnectorprofileproperties-instanceurl>
+                                                  instanceUrl :: (Prelude.Maybe (Value Prelude.Text)),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofileproperties.html#cfn-appflow-connectorprofile-salesforceconnectorprofileproperties-issandboxenvironment>
+                                                  isSandboxEnvironment :: (Prelude.Maybe (Value Prelude.Bool)),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofileproperties.html#cfn-appflow-connectorprofile-salesforceconnectorprofileproperties-useprivatelinkformetadataandauthorization>
+                                                  usePrivateLinkForMetadataAndAuthorization :: (Prelude.Maybe (Value Prelude.Bool))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSalesforceConnectorProfilePropertiesProperty ::
+  SalesforceConnectorProfilePropertiesProperty
+mkSalesforceConnectorProfilePropertiesProperty
+  = SalesforceConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), instanceUrl = Prelude.Nothing,
+       isSandboxEnvironment = Prelude.Nothing,
+       usePrivateLinkForMetadataAndAuthorization = Prelude.Nothing}
+instance ToResourceProperties SalesforceConnectorProfilePropertiesProperty where
+  toResourceProperties
+    SalesforceConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "InstanceUrl" Prelude.<$> instanceUrl,
+                            (JSON..=) "isSandboxEnvironment" Prelude.<$> isSandboxEnvironment,
+                            (JSON..=) "usePrivateLinkForMetadataAndAuthorization"
+                              Prelude.<$> usePrivateLinkForMetadataAndAuthorization])}
+instance JSON.ToJSON SalesforceConnectorProfilePropertiesProperty where
+  toJSON SalesforceConnectorProfilePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "InstanceUrl" Prelude.<$> instanceUrl,
+               (JSON..=) "isSandboxEnvironment" Prelude.<$> isSandboxEnvironment,
+               (JSON..=) "usePrivateLinkForMetadataAndAuthorization"
+                 Prelude.<$> usePrivateLinkForMetadataAndAuthorization]))
+instance Property "InstanceUrl" SalesforceConnectorProfilePropertiesProperty where
+  type PropertyType "InstanceUrl" SalesforceConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SalesforceConnectorProfilePropertiesProperty {..}
+    = SalesforceConnectorProfilePropertiesProperty
+        {instanceUrl = Prelude.pure newValue, ..}
+instance Property "isSandboxEnvironment" SalesforceConnectorProfilePropertiesProperty where
+  type PropertyType "isSandboxEnvironment" SalesforceConnectorProfilePropertiesProperty = Value Prelude.Bool
+  set newValue SalesforceConnectorProfilePropertiesProperty {..}
+    = SalesforceConnectorProfilePropertiesProperty
+        {isSandboxEnvironment = Prelude.pure newValue, ..}
+instance Property "usePrivateLinkForMetadataAndAuthorization" SalesforceConnectorProfilePropertiesProperty where
+  type PropertyType "usePrivateLinkForMetadataAndAuthorization" SalesforceConnectorProfilePropertiesProperty = Value Prelude.Bool
+  set newValue SalesforceConnectorProfilePropertiesProperty {..}
+    = SalesforceConnectorProfilePropertiesProperty
+        {usePrivateLinkForMetadataAndAuthorization = Prelude.pure newValue,
+         ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SalesforceConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.SalesforceConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SalesforceConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties SalesforceConnectorProfilePropertiesProperty
+instance Prelude.Eq SalesforceConnectorProfilePropertiesProperty
+instance Prelude.Show SalesforceConnectorProfilePropertiesProperty
+instance JSON.ToJSON SalesforceConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,60 @@
+module Stratosphere.AppFlow.ConnectorProfile.ServiceNowConnectorProfileCredentialsProperty (
+        module Exports, ServiceNowConnectorProfileCredentialsProperty(..),
+        mkServiceNowConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.OAuth2CredentialsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ServiceNowConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofilecredentials.html>
+    ServiceNowConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofilecredentials.html#cfn-appflow-connectorprofile-servicenowconnectorprofilecredentials-oauth2credentials>
+                                                   oAuth2Credentials :: (Prelude.Maybe OAuth2CredentialsProperty),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofilecredentials.html#cfn-appflow-connectorprofile-servicenowconnectorprofilecredentials-password>
+                                                   password :: (Prelude.Maybe (Value Prelude.Text)),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofilecredentials.html#cfn-appflow-connectorprofile-servicenowconnectorprofilecredentials-username>
+                                                   username :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkServiceNowConnectorProfileCredentialsProperty ::
+  ServiceNowConnectorProfileCredentialsProperty
+mkServiceNowConnectorProfileCredentialsProperty
+  = ServiceNowConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), oAuth2Credentials = Prelude.Nothing,
+       password = Prelude.Nothing, username = Prelude.Nothing}
+instance ToResourceProperties ServiceNowConnectorProfileCredentialsProperty where
+  toResourceProperties
+    ServiceNowConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "OAuth2Credentials" Prelude.<$> oAuth2Credentials,
+                            (JSON..=) "Password" Prelude.<$> password,
+                            (JSON..=) "Username" Prelude.<$> username])}
+instance JSON.ToJSON ServiceNowConnectorProfileCredentialsProperty where
+  toJSON ServiceNowConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "OAuth2Credentials" Prelude.<$> oAuth2Credentials,
+               (JSON..=) "Password" Prelude.<$> password,
+               (JSON..=) "Username" Prelude.<$> username]))
+instance Property "OAuth2Credentials" ServiceNowConnectorProfileCredentialsProperty where
+  type PropertyType "OAuth2Credentials" ServiceNowConnectorProfileCredentialsProperty = OAuth2CredentialsProperty
+  set newValue ServiceNowConnectorProfileCredentialsProperty {..}
+    = ServiceNowConnectorProfileCredentialsProperty
+        {oAuth2Credentials = Prelude.pure newValue, ..}
+instance Property "Password" ServiceNowConnectorProfileCredentialsProperty where
+  type PropertyType "Password" ServiceNowConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue ServiceNowConnectorProfileCredentialsProperty {..}
+    = ServiceNowConnectorProfileCredentialsProperty
+        {password = Prelude.pure newValue, ..}
+instance Property "Username" ServiceNowConnectorProfileCredentialsProperty where
+  type PropertyType "Username" ServiceNowConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue ServiceNowConnectorProfileCredentialsProperty {..}
+    = ServiceNowConnectorProfileCredentialsProperty
+        {username = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.ServiceNowConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ServiceNowConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties ServiceNowConnectorProfileCredentialsProperty
+instance Prelude.Eq ServiceNowConnectorProfileCredentialsProperty
+instance Prelude.Show ServiceNowConnectorProfileCredentialsProperty
+instance JSON.ToJSON ServiceNowConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,35 @@
+module Stratosphere.AppFlow.ConnectorProfile.ServiceNowConnectorProfilePropertiesProperty (
+        ServiceNowConnectorProfilePropertiesProperty(..),
+        mkServiceNowConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ServiceNowConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofileproperties.html>
+    ServiceNowConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofileproperties.html#cfn-appflow-connectorprofile-servicenowconnectorprofileproperties-instanceurl>
+                                                  instanceUrl :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkServiceNowConnectorProfilePropertiesProperty ::
+  Value Prelude.Text -> ServiceNowConnectorProfilePropertiesProperty
+mkServiceNowConnectorProfilePropertiesProperty instanceUrl
+  = ServiceNowConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), instanceUrl = instanceUrl}
+instance ToResourceProperties ServiceNowConnectorProfilePropertiesProperty where
+  toResourceProperties
+    ServiceNowConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = ["InstanceUrl" JSON..= instanceUrl]}
+instance JSON.ToJSON ServiceNowConnectorProfilePropertiesProperty where
+  toJSON ServiceNowConnectorProfilePropertiesProperty {..}
+    = JSON.object ["InstanceUrl" JSON..= instanceUrl]
+instance Property "InstanceUrl" ServiceNowConnectorProfilePropertiesProperty where
+  type PropertyType "InstanceUrl" ServiceNowConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue ServiceNowConnectorProfilePropertiesProperty {..}
+    = ServiceNowConnectorProfilePropertiesProperty
+        {instanceUrl = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ServiceNowConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.ServiceNowConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ServiceNowConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties ServiceNowConnectorProfilePropertiesProperty
+instance Prelude.Eq ServiceNowConnectorProfilePropertiesProperty
+instance Prelude.Show ServiceNowConnectorProfilePropertiesProperty
+instance JSON.ToJSON ServiceNowConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SingularConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/SingularConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SingularConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,35 @@
+module Stratosphere.AppFlow.ConnectorProfile.SingularConnectorProfileCredentialsProperty (
+        SingularConnectorProfileCredentialsProperty(..),
+        mkSingularConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SingularConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-singularconnectorprofilecredentials.html>
+    SingularConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-singularconnectorprofilecredentials.html#cfn-appflow-connectorprofile-singularconnectorprofilecredentials-apikey>
+                                                 apiKey :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSingularConnectorProfileCredentialsProperty ::
+  Value Prelude.Text -> SingularConnectorProfileCredentialsProperty
+mkSingularConnectorProfileCredentialsProperty apiKey
+  = SingularConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), apiKey = apiKey}
+instance ToResourceProperties SingularConnectorProfileCredentialsProperty where
+  toResourceProperties
+    SingularConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.SingularConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = ["ApiKey" JSON..= apiKey]}
+instance JSON.ToJSON SingularConnectorProfileCredentialsProperty where
+  toJSON SingularConnectorProfileCredentialsProperty {..}
+    = JSON.object ["ApiKey" JSON..= apiKey]
+instance Property "ApiKey" SingularConnectorProfileCredentialsProperty where
+  type PropertyType "ApiKey" SingularConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue SingularConnectorProfileCredentialsProperty {..}
+    = SingularConnectorProfileCredentialsProperty
+        {apiKey = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SingularConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/SingularConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SingularConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.SingularConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SingularConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties SingularConnectorProfileCredentialsProperty
+instance Prelude.Eq SingularConnectorProfileCredentialsProperty
+instance Prelude.Show SingularConnectorProfileCredentialsProperty
+instance JSON.ToJSON SingularConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,72 @@
+module Stratosphere.AppFlow.ConnectorProfile.SlackConnectorProfileCredentialsProperty (
+        module Exports, SlackConnectorProfileCredentialsProperty(..),
+        mkSlackConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ConnectorOAuthRequestProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SlackConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html>
+    SlackConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html#cfn-appflow-connectorprofile-slackconnectorprofilecredentials-accesstoken>
+                                              accessToken :: (Prelude.Maybe (Value Prelude.Text)),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html#cfn-appflow-connectorprofile-slackconnectorprofilecredentials-clientid>
+                                              clientId :: (Value Prelude.Text),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html#cfn-appflow-connectorprofile-slackconnectorprofilecredentials-clientsecret>
+                                              clientSecret :: (Value Prelude.Text),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html#cfn-appflow-connectorprofile-slackconnectorprofilecredentials-connectoroauthrequest>
+                                              connectorOAuthRequest :: (Prelude.Maybe ConnectorOAuthRequestProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSlackConnectorProfileCredentialsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> SlackConnectorProfileCredentialsProperty
+mkSlackConnectorProfileCredentialsProperty clientId clientSecret
+  = SlackConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), clientId = clientId,
+       clientSecret = clientSecret, accessToken = Prelude.Nothing,
+       connectorOAuthRequest = Prelude.Nothing}
+instance ToResourceProperties SlackConnectorProfileCredentialsProperty where
+  toResourceProperties SlackConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.SlackConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ClientId" JSON..= clientId, "ClientSecret" JSON..= clientSecret]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                               (JSON..=) "ConnectorOAuthRequest"
+                                 Prelude.<$> connectorOAuthRequest]))}
+instance JSON.ToJSON SlackConnectorProfileCredentialsProperty where
+  toJSON SlackConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ClientId" JSON..= clientId, "ClientSecret" JSON..= clientSecret]
+              (Prelude.catMaybes
+                 [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                  (JSON..=) "ConnectorOAuthRequest"
+                    Prelude.<$> connectorOAuthRequest])))
+instance Property "AccessToken" SlackConnectorProfileCredentialsProperty where
+  type PropertyType "AccessToken" SlackConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue SlackConnectorProfileCredentialsProperty {..}
+    = SlackConnectorProfileCredentialsProperty
+        {accessToken = Prelude.pure newValue, ..}
+instance Property "ClientId" SlackConnectorProfileCredentialsProperty where
+  type PropertyType "ClientId" SlackConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue SlackConnectorProfileCredentialsProperty {..}
+    = SlackConnectorProfileCredentialsProperty
+        {clientId = newValue, ..}
+instance Property "ClientSecret" SlackConnectorProfileCredentialsProperty where
+  type PropertyType "ClientSecret" SlackConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue SlackConnectorProfileCredentialsProperty {..}
+    = SlackConnectorProfileCredentialsProperty
+        {clientSecret = newValue, ..}
+instance Property "ConnectorOAuthRequest" SlackConnectorProfileCredentialsProperty where
+  type PropertyType "ConnectorOAuthRequest" SlackConnectorProfileCredentialsProperty = ConnectorOAuthRequestProperty
+  set newValue SlackConnectorProfileCredentialsProperty {..}
+    = SlackConnectorProfileCredentialsProperty
+        {connectorOAuthRequest = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.SlackConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SlackConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties SlackConnectorProfileCredentialsProperty
+instance Prelude.Eq SlackConnectorProfileCredentialsProperty
+instance Prelude.Show SlackConnectorProfileCredentialsProperty
+instance JSON.ToJSON SlackConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,34 @@
+module Stratosphere.AppFlow.ConnectorProfile.SlackConnectorProfilePropertiesProperty (
+        SlackConnectorProfilePropertiesProperty(..),
+        mkSlackConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SlackConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofileproperties.html>
+    SlackConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofileproperties.html#cfn-appflow-connectorprofile-slackconnectorprofileproperties-instanceurl>
+                                             instanceUrl :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSlackConnectorProfilePropertiesProperty ::
+  Value Prelude.Text -> SlackConnectorProfilePropertiesProperty
+mkSlackConnectorProfilePropertiesProperty instanceUrl
+  = SlackConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), instanceUrl = instanceUrl}
+instance ToResourceProperties SlackConnectorProfilePropertiesProperty where
+  toResourceProperties SlackConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.SlackConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = ["InstanceUrl" JSON..= instanceUrl]}
+instance JSON.ToJSON SlackConnectorProfilePropertiesProperty where
+  toJSON SlackConnectorProfilePropertiesProperty {..}
+    = JSON.object ["InstanceUrl" JSON..= instanceUrl]
+instance Property "InstanceUrl" SlackConnectorProfilePropertiesProperty where
+  type PropertyType "InstanceUrl" SlackConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SlackConnectorProfilePropertiesProperty {..}
+    = SlackConnectorProfilePropertiesProperty
+        {instanceUrl = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SlackConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.SlackConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SlackConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties SlackConnectorProfilePropertiesProperty
+instance Prelude.Eq SlackConnectorProfilePropertiesProperty
+instance Prelude.Show SlackConnectorProfilePropertiesProperty
+instance JSON.ToJSON SlackConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,47 @@
+module Stratosphere.AppFlow.ConnectorProfile.SnowflakeConnectorProfileCredentialsProperty (
+        SnowflakeConnectorProfileCredentialsProperty(..),
+        mkSnowflakeConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SnowflakeConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofilecredentials.html>
+    SnowflakeConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofilecredentials.html#cfn-appflow-connectorprofile-snowflakeconnectorprofilecredentials-password>
+                                                  password :: (Value Prelude.Text),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofilecredentials.html#cfn-appflow-connectorprofile-snowflakeconnectorprofilecredentials-username>
+                                                  username :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSnowflakeConnectorProfileCredentialsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text
+     -> SnowflakeConnectorProfileCredentialsProperty
+mkSnowflakeConnectorProfileCredentialsProperty password username
+  = SnowflakeConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), password = password,
+       username = username}
+instance ToResourceProperties SnowflakeConnectorProfileCredentialsProperty where
+  toResourceProperties
+    SnowflakeConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = ["Password" JSON..= password,
+                       "Username" JSON..= username]}
+instance JSON.ToJSON SnowflakeConnectorProfileCredentialsProperty where
+  toJSON SnowflakeConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        ["Password" JSON..= password, "Username" JSON..= username]
+instance Property "Password" SnowflakeConnectorProfileCredentialsProperty where
+  type PropertyType "Password" SnowflakeConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue SnowflakeConnectorProfileCredentialsProperty {..}
+    = SnowflakeConnectorProfileCredentialsProperty
+        {password = newValue, ..}
+instance Property "Username" SnowflakeConnectorProfileCredentialsProperty where
+  type PropertyType "Username" SnowflakeConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue SnowflakeConnectorProfileCredentialsProperty {..}
+    = SnowflakeConnectorProfileCredentialsProperty
+        {username = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.SnowflakeConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SnowflakeConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties SnowflakeConnectorProfileCredentialsProperty
+instance Prelude.Eq SnowflakeConnectorProfileCredentialsProperty
+instance Prelude.Show SnowflakeConnectorProfileCredentialsProperty
+instance JSON.ToJSON SnowflakeConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,105 @@
+module Stratosphere.AppFlow.ConnectorProfile.SnowflakeConnectorProfilePropertiesProperty (
+        SnowflakeConnectorProfilePropertiesProperty(..),
+        mkSnowflakeConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SnowflakeConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html>
+    SnowflakeConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-accountname>
+                                                 accountName :: (Prelude.Maybe (Value Prelude.Text)),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-bucketname>
+                                                 bucketName :: (Value Prelude.Text),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-bucketprefix>
+                                                 bucketPrefix :: (Prelude.Maybe (Value Prelude.Text)),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-privatelinkservicename>
+                                                 privateLinkServiceName :: (Prelude.Maybe (Value Prelude.Text)),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-region>
+                                                 region :: (Prelude.Maybe (Value Prelude.Text)),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-stage>
+                                                 stage :: (Value Prelude.Text),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-warehouse>
+                                                 warehouse :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSnowflakeConnectorProfilePropertiesProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text
+     -> Value Prelude.Text
+        -> SnowflakeConnectorProfilePropertiesProperty
+mkSnowflakeConnectorProfilePropertiesProperty
+  bucketName
+  stage
+  warehouse
+  = SnowflakeConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), bucketName = bucketName, stage = stage,
+       warehouse = warehouse, accountName = Prelude.Nothing,
+       bucketPrefix = Prelude.Nothing,
+       privateLinkServiceName = Prelude.Nothing, region = Prelude.Nothing}
+instance ToResourceProperties SnowflakeConnectorProfilePropertiesProperty where
+  toResourceProperties
+    SnowflakeConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["BucketName" JSON..= bucketName, "Stage" JSON..= stage,
+                            "Warehouse" JSON..= warehouse]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AccountName" Prelude.<$> accountName,
+                               (JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+                               (JSON..=) "PrivateLinkServiceName"
+                                 Prelude.<$> privateLinkServiceName,
+                               (JSON..=) "Region" Prelude.<$> region]))}
+instance JSON.ToJSON SnowflakeConnectorProfilePropertiesProperty where
+  toJSON SnowflakeConnectorProfilePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["BucketName" JSON..= bucketName, "Stage" JSON..= stage,
+               "Warehouse" JSON..= warehouse]
+              (Prelude.catMaybes
+                 [(JSON..=) "AccountName" Prelude.<$> accountName,
+                  (JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+                  (JSON..=) "PrivateLinkServiceName"
+                    Prelude.<$> privateLinkServiceName,
+                  (JSON..=) "Region" Prelude.<$> region])))
+instance Property "AccountName" SnowflakeConnectorProfilePropertiesProperty where
+  type PropertyType "AccountName" SnowflakeConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SnowflakeConnectorProfilePropertiesProperty {..}
+    = SnowflakeConnectorProfilePropertiesProperty
+        {accountName = Prelude.pure newValue, ..}
+instance Property "BucketName" SnowflakeConnectorProfilePropertiesProperty where
+  type PropertyType "BucketName" SnowflakeConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SnowflakeConnectorProfilePropertiesProperty {..}
+    = SnowflakeConnectorProfilePropertiesProperty
+        {bucketName = newValue, ..}
+instance Property "BucketPrefix" SnowflakeConnectorProfilePropertiesProperty where
+  type PropertyType "BucketPrefix" SnowflakeConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SnowflakeConnectorProfilePropertiesProperty {..}
+    = SnowflakeConnectorProfilePropertiesProperty
+        {bucketPrefix = Prelude.pure newValue, ..}
+instance Property "PrivateLinkServiceName" SnowflakeConnectorProfilePropertiesProperty where
+  type PropertyType "PrivateLinkServiceName" SnowflakeConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SnowflakeConnectorProfilePropertiesProperty {..}
+    = SnowflakeConnectorProfilePropertiesProperty
+        {privateLinkServiceName = Prelude.pure newValue, ..}
+instance Property "Region" SnowflakeConnectorProfilePropertiesProperty where
+  type PropertyType "Region" SnowflakeConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SnowflakeConnectorProfilePropertiesProperty {..}
+    = SnowflakeConnectorProfilePropertiesProperty
+        {region = Prelude.pure newValue, ..}
+instance Property "Stage" SnowflakeConnectorProfilePropertiesProperty where
+  type PropertyType "Stage" SnowflakeConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SnowflakeConnectorProfilePropertiesProperty {..}
+    = SnowflakeConnectorProfilePropertiesProperty
+        {stage = newValue, ..}
+instance Property "Warehouse" SnowflakeConnectorProfilePropertiesProperty where
+  type PropertyType "Warehouse" SnowflakeConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue SnowflakeConnectorProfilePropertiesProperty {..}
+    = SnowflakeConnectorProfilePropertiesProperty
+        {warehouse = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/SnowflakeConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.SnowflakeConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SnowflakeConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties SnowflakeConnectorProfilePropertiesProperty
+instance Prelude.Eq SnowflakeConnectorProfilePropertiesProperty
+instance Prelude.Show SnowflakeConnectorProfilePropertiesProperty
+instance JSON.ToJSON SnowflakeConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/TrendmicroConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/TrendmicroConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/TrendmicroConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,35 @@
+module Stratosphere.AppFlow.ConnectorProfile.TrendmicroConnectorProfileCredentialsProperty (
+        TrendmicroConnectorProfileCredentialsProperty(..),
+        mkTrendmicroConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data TrendmicroConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-trendmicroconnectorprofilecredentials.html>
+    TrendmicroConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-trendmicroconnectorprofilecredentials.html#cfn-appflow-connectorprofile-trendmicroconnectorprofilecredentials-apisecretkey>
+                                                   apiSecretKey :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkTrendmicroConnectorProfileCredentialsProperty ::
+  Value Prelude.Text -> TrendmicroConnectorProfileCredentialsProperty
+mkTrendmicroConnectorProfileCredentialsProperty apiSecretKey
+  = TrendmicroConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), apiSecretKey = apiSecretKey}
+instance ToResourceProperties TrendmicroConnectorProfileCredentialsProperty where
+  toResourceProperties
+    TrendmicroConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.TrendmicroConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = ["ApiSecretKey" JSON..= apiSecretKey]}
+instance JSON.ToJSON TrendmicroConnectorProfileCredentialsProperty where
+  toJSON TrendmicroConnectorProfileCredentialsProperty {..}
+    = JSON.object ["ApiSecretKey" JSON..= apiSecretKey]
+instance Property "ApiSecretKey" TrendmicroConnectorProfileCredentialsProperty where
+  type PropertyType "ApiSecretKey" TrendmicroConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue TrendmicroConnectorProfileCredentialsProperty {..}
+    = TrendmicroConnectorProfileCredentialsProperty
+        {apiSecretKey = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/TrendmicroConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/TrendmicroConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/TrendmicroConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.TrendmicroConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data TrendmicroConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties TrendmicroConnectorProfileCredentialsProperty
+instance Prelude.Eq TrendmicroConnectorProfileCredentialsProperty
+instance Prelude.Show TrendmicroConnectorProfileCredentialsProperty
+instance JSON.ToJSON TrendmicroConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,45 @@
+module Stratosphere.AppFlow.ConnectorProfile.VeevaConnectorProfileCredentialsProperty (
+        VeevaConnectorProfileCredentialsProperty(..),
+        mkVeevaConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data VeevaConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofilecredentials.html>
+    VeevaConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofilecredentials.html#cfn-appflow-connectorprofile-veevaconnectorprofilecredentials-password>
+                                              password :: (Value Prelude.Text),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofilecredentials.html#cfn-appflow-connectorprofile-veevaconnectorprofilecredentials-username>
+                                              username :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkVeevaConnectorProfileCredentialsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> VeevaConnectorProfileCredentialsProperty
+mkVeevaConnectorProfileCredentialsProperty password username
+  = VeevaConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), password = password,
+       username = username}
+instance ToResourceProperties VeevaConnectorProfileCredentialsProperty where
+  toResourceProperties VeevaConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = ["Password" JSON..= password,
+                       "Username" JSON..= username]}
+instance JSON.ToJSON VeevaConnectorProfileCredentialsProperty where
+  toJSON VeevaConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        ["Password" JSON..= password, "Username" JSON..= username]
+instance Property "Password" VeevaConnectorProfileCredentialsProperty where
+  type PropertyType "Password" VeevaConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue VeevaConnectorProfileCredentialsProperty {..}
+    = VeevaConnectorProfileCredentialsProperty
+        {password = newValue, ..}
+instance Property "Username" VeevaConnectorProfileCredentialsProperty where
+  type PropertyType "Username" VeevaConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue VeevaConnectorProfileCredentialsProperty {..}
+    = VeevaConnectorProfileCredentialsProperty
+        {username = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.VeevaConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data VeevaConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties VeevaConnectorProfileCredentialsProperty
+instance Prelude.Eq VeevaConnectorProfileCredentialsProperty
+instance Prelude.Show VeevaConnectorProfileCredentialsProperty
+instance JSON.ToJSON VeevaConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,34 @@
+module Stratosphere.AppFlow.ConnectorProfile.VeevaConnectorProfilePropertiesProperty (
+        VeevaConnectorProfilePropertiesProperty(..),
+        mkVeevaConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data VeevaConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofileproperties.html>
+    VeevaConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofileproperties.html#cfn-appflow-connectorprofile-veevaconnectorprofileproperties-instanceurl>
+                                             instanceUrl :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkVeevaConnectorProfilePropertiesProperty ::
+  Value Prelude.Text -> VeevaConnectorProfilePropertiesProperty
+mkVeevaConnectorProfilePropertiesProperty instanceUrl
+  = VeevaConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), instanceUrl = instanceUrl}
+instance ToResourceProperties VeevaConnectorProfilePropertiesProperty where
+  toResourceProperties VeevaConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = ["InstanceUrl" JSON..= instanceUrl]}
+instance JSON.ToJSON VeevaConnectorProfilePropertiesProperty where
+  toJSON VeevaConnectorProfilePropertiesProperty {..}
+    = JSON.object ["InstanceUrl" JSON..= instanceUrl]
+instance Property "InstanceUrl" VeevaConnectorProfilePropertiesProperty where
+  type PropertyType "InstanceUrl" VeevaConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue VeevaConnectorProfilePropertiesProperty {..}
+    = VeevaConnectorProfilePropertiesProperty
+        {instanceUrl = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/VeevaConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.VeevaConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data VeevaConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties VeevaConnectorProfilePropertiesProperty
+instance Prelude.Eq VeevaConnectorProfilePropertiesProperty
+instance Prelude.Show VeevaConnectorProfilePropertiesProperty
+instance JSON.ToJSON VeevaConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfileCredentialsProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfileCredentialsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfileCredentialsProperty.hs
@@ -0,0 +1,73 @@
+module Stratosphere.AppFlow.ConnectorProfile.ZendeskConnectorProfileCredentialsProperty (
+        module Exports, ZendeskConnectorProfileCredentialsProperty(..),
+        mkZendeskConnectorProfileCredentialsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.ConnectorProfile.ConnectorOAuthRequestProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ZendeskConnectorProfileCredentialsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html>
+    ZendeskConnectorProfileCredentialsProperty {haddock_workaround_ :: (),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html#cfn-appflow-connectorprofile-zendeskconnectorprofilecredentials-accesstoken>
+                                                accessToken :: (Prelude.Maybe (Value Prelude.Text)),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html#cfn-appflow-connectorprofile-zendeskconnectorprofilecredentials-clientid>
+                                                clientId :: (Value Prelude.Text),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html#cfn-appflow-connectorprofile-zendeskconnectorprofilecredentials-clientsecret>
+                                                clientSecret :: (Value Prelude.Text),
+                                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html#cfn-appflow-connectorprofile-zendeskconnectorprofilecredentials-connectoroauthrequest>
+                                                connectorOAuthRequest :: (Prelude.Maybe ConnectorOAuthRequestProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkZendeskConnectorProfileCredentialsProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> ZendeskConnectorProfileCredentialsProperty
+mkZendeskConnectorProfileCredentialsProperty clientId clientSecret
+  = ZendeskConnectorProfileCredentialsProperty
+      {haddock_workaround_ = (), clientId = clientId,
+       clientSecret = clientSecret, accessToken = Prelude.Nothing,
+       connectorOAuthRequest = Prelude.Nothing}
+instance ToResourceProperties ZendeskConnectorProfileCredentialsProperty where
+  toResourceProperties
+    ZendeskConnectorProfileCredentialsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileCredentials",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ClientId" JSON..= clientId, "ClientSecret" JSON..= clientSecret]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                               (JSON..=) "ConnectorOAuthRequest"
+                                 Prelude.<$> connectorOAuthRequest]))}
+instance JSON.ToJSON ZendeskConnectorProfileCredentialsProperty where
+  toJSON ZendeskConnectorProfileCredentialsProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ClientId" JSON..= clientId, "ClientSecret" JSON..= clientSecret]
+              (Prelude.catMaybes
+                 [(JSON..=) "AccessToken" Prelude.<$> accessToken,
+                  (JSON..=) "ConnectorOAuthRequest"
+                    Prelude.<$> connectorOAuthRequest])))
+instance Property "AccessToken" ZendeskConnectorProfileCredentialsProperty where
+  type PropertyType "AccessToken" ZendeskConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue ZendeskConnectorProfileCredentialsProperty {..}
+    = ZendeskConnectorProfileCredentialsProperty
+        {accessToken = Prelude.pure newValue, ..}
+instance Property "ClientId" ZendeskConnectorProfileCredentialsProperty where
+  type PropertyType "ClientId" ZendeskConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue ZendeskConnectorProfileCredentialsProperty {..}
+    = ZendeskConnectorProfileCredentialsProperty
+        {clientId = newValue, ..}
+instance Property "ClientSecret" ZendeskConnectorProfileCredentialsProperty where
+  type PropertyType "ClientSecret" ZendeskConnectorProfileCredentialsProperty = Value Prelude.Text
+  set newValue ZendeskConnectorProfileCredentialsProperty {..}
+    = ZendeskConnectorProfileCredentialsProperty
+        {clientSecret = newValue, ..}
+instance Property "ConnectorOAuthRequest" ZendeskConnectorProfileCredentialsProperty where
+  type PropertyType "ConnectorOAuthRequest" ZendeskConnectorProfileCredentialsProperty = ConnectorOAuthRequestProperty
+  set newValue ZendeskConnectorProfileCredentialsProperty {..}
+    = ZendeskConnectorProfileCredentialsProperty
+        {connectorOAuthRequest = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfileCredentialsProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfileCredentialsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfileCredentialsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.ZendeskConnectorProfileCredentialsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ZendeskConnectorProfileCredentialsProperty :: Prelude.Type
+instance ToResourceProperties ZendeskConnectorProfileCredentialsProperty
+instance Prelude.Eq ZendeskConnectorProfileCredentialsProperty
+instance Prelude.Show ZendeskConnectorProfileCredentialsProperty
+instance JSON.ToJSON ZendeskConnectorProfileCredentialsProperty
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfilePropertiesProperty.hs b/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfilePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfilePropertiesProperty.hs
@@ -0,0 +1,34 @@
+module Stratosphere.AppFlow.ConnectorProfile.ZendeskConnectorProfilePropertiesProperty (
+        ZendeskConnectorProfilePropertiesProperty(..),
+        mkZendeskConnectorProfilePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ZendeskConnectorProfilePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofileproperties.html>
+    ZendeskConnectorProfilePropertiesProperty {haddock_workaround_ :: (),
+                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofileproperties.html#cfn-appflow-connectorprofile-zendeskconnectorprofileproperties-instanceurl>
+                                               instanceUrl :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkZendeskConnectorProfilePropertiesProperty ::
+  Value Prelude.Text -> ZendeskConnectorProfilePropertiesProperty
+mkZendeskConnectorProfilePropertiesProperty instanceUrl
+  = ZendeskConnectorProfilePropertiesProperty
+      {haddock_workaround_ = (), instanceUrl = instanceUrl}
+instance ToResourceProperties ZendeskConnectorProfilePropertiesProperty where
+  toResourceProperties ZendeskConnectorProfilePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileProperties",
+         supportsTags = Prelude.False,
+         properties = ["InstanceUrl" JSON..= instanceUrl]}
+instance JSON.ToJSON ZendeskConnectorProfilePropertiesProperty where
+  toJSON ZendeskConnectorProfilePropertiesProperty {..}
+    = JSON.object ["InstanceUrl" JSON..= instanceUrl]
+instance Property "InstanceUrl" ZendeskConnectorProfilePropertiesProperty where
+  type PropertyType "InstanceUrl" ZendeskConnectorProfilePropertiesProperty = Value Prelude.Text
+  set newValue ZendeskConnectorProfilePropertiesProperty {..}
+    = ZendeskConnectorProfilePropertiesProperty
+        {instanceUrl = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfilePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfilePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/ConnectorProfile/ZendeskConnectorProfilePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.ConnectorProfile.ZendeskConnectorProfilePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ZendeskConnectorProfilePropertiesProperty :: Prelude.Type
+instance ToResourceProperties ZendeskConnectorProfilePropertiesProperty
+instance Prelude.Eq ZendeskConnectorProfilePropertiesProperty
+instance Prelude.Show ZendeskConnectorProfilePropertiesProperty
+instance JSON.ToJSON ZendeskConnectorProfilePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow.hs b/gen/Stratosphere/AppFlow/Flow.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow.hs
@@ -0,0 +1,124 @@
+module Stratosphere.AppFlow.Flow (
+        module Exports, Flow(..), mkFlow
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.DestinationFlowConfigProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.MetadataCatalogConfigProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SourceFlowConfigProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.TaskProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.TriggerConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Tag
+import Stratosphere.Value
+data Flow
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html>
+    Flow {haddock_workaround_ :: (),
+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-description>
+          description :: (Prelude.Maybe (Value Prelude.Text)),
+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-destinationflowconfiglist>
+          destinationFlowConfigList :: [DestinationFlowConfigProperty],
+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-flowname>
+          flowName :: (Value Prelude.Text),
+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-flowstatus>
+          flowStatus :: (Prelude.Maybe (Value Prelude.Text)),
+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-kmsarn>
+          kMSArn :: (Prelude.Maybe (Value Prelude.Text)),
+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-metadatacatalogconfig>
+          metadataCatalogConfig :: (Prelude.Maybe MetadataCatalogConfigProperty),
+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-sourceflowconfig>
+          sourceFlowConfig :: SourceFlowConfigProperty,
+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-tags>
+          tags :: (Prelude.Maybe [Tag]),
+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-tasks>
+          tasks :: [TaskProperty],
+          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-triggerconfig>
+          triggerConfig :: TriggerConfigProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkFlow ::
+  [DestinationFlowConfigProperty]
+  -> Value Prelude.Text
+     -> SourceFlowConfigProperty
+        -> [TaskProperty] -> TriggerConfigProperty -> Flow
+mkFlow
+  destinationFlowConfigList
+  flowName
+  sourceFlowConfig
+  tasks
+  triggerConfig
+  = Flow
+      {haddock_workaround_ = (),
+       destinationFlowConfigList = destinationFlowConfigList,
+       flowName = flowName, sourceFlowConfig = sourceFlowConfig,
+       tasks = tasks, triggerConfig = triggerConfig,
+       description = Prelude.Nothing, flowStatus = Prelude.Nothing,
+       kMSArn = Prelude.Nothing, metadataCatalogConfig = Prelude.Nothing,
+       tags = Prelude.Nothing}
+instance ToResourceProperties Flow where
+  toResourceProperties Flow {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow", supportsTags = Prelude.True,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["DestinationFlowConfigList" JSON..= destinationFlowConfigList,
+                            "FlowName" JSON..= flowName,
+                            "SourceFlowConfig" JSON..= sourceFlowConfig, "Tasks" JSON..= tasks,
+                            "TriggerConfig" JSON..= triggerConfig]
+                           (Prelude.catMaybes
+                              [(JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "FlowStatus" Prelude.<$> flowStatus,
+                               (JSON..=) "KMSArn" Prelude.<$> kMSArn,
+                               (JSON..=) "MetadataCatalogConfig"
+                                 Prelude.<$> metadataCatalogConfig,
+                               (JSON..=) "Tags" Prelude.<$> tags]))}
+instance JSON.ToJSON Flow where
+  toJSON Flow {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["DestinationFlowConfigList" JSON..= destinationFlowConfigList,
+               "FlowName" JSON..= flowName,
+               "SourceFlowConfig" JSON..= sourceFlowConfig, "Tasks" JSON..= tasks,
+               "TriggerConfig" JSON..= triggerConfig]
+              (Prelude.catMaybes
+                 [(JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "FlowStatus" Prelude.<$> flowStatus,
+                  (JSON..=) "KMSArn" Prelude.<$> kMSArn,
+                  (JSON..=) "MetadataCatalogConfig"
+                    Prelude.<$> metadataCatalogConfig,
+                  (JSON..=) "Tags" Prelude.<$> tags])))
+instance Property "Description" Flow where
+  type PropertyType "Description" Flow = Value Prelude.Text
+  set newValue Flow {..}
+    = Flow {description = Prelude.pure newValue, ..}
+instance Property "DestinationFlowConfigList" Flow where
+  type PropertyType "DestinationFlowConfigList" Flow = [DestinationFlowConfigProperty]
+  set newValue Flow {..}
+    = Flow {destinationFlowConfigList = newValue, ..}
+instance Property "FlowName" Flow where
+  type PropertyType "FlowName" Flow = Value Prelude.Text
+  set newValue Flow {..} = Flow {flowName = newValue, ..}
+instance Property "FlowStatus" Flow where
+  type PropertyType "FlowStatus" Flow = Value Prelude.Text
+  set newValue Flow {..}
+    = Flow {flowStatus = Prelude.pure newValue, ..}
+instance Property "KMSArn" Flow where
+  type PropertyType "KMSArn" Flow = Value Prelude.Text
+  set newValue Flow {..} = Flow {kMSArn = Prelude.pure newValue, ..}
+instance Property "MetadataCatalogConfig" Flow where
+  type PropertyType "MetadataCatalogConfig" Flow = MetadataCatalogConfigProperty
+  set newValue Flow {..}
+    = Flow {metadataCatalogConfig = Prelude.pure newValue, ..}
+instance Property "SourceFlowConfig" Flow where
+  type PropertyType "SourceFlowConfig" Flow = SourceFlowConfigProperty
+  set newValue Flow {..} = Flow {sourceFlowConfig = newValue, ..}
+instance Property "Tags" Flow where
+  type PropertyType "Tags" Flow = [Tag]
+  set newValue Flow {..} = Flow {tags = Prelude.pure newValue, ..}
+instance Property "Tasks" Flow where
+  type PropertyType "Tasks" Flow = [TaskProperty]
+  set newValue Flow {..} = Flow {tasks = newValue, ..}
+instance Property "TriggerConfig" Flow where
+  type PropertyType "TriggerConfig" Flow = TriggerConfigProperty
+  set newValue Flow {..} = Flow {triggerConfig = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/AggregationConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/AggregationConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/AggregationConfigProperty.hs
@@ -0,0 +1,47 @@
+module Stratosphere.AppFlow.Flow.AggregationConfigProperty (
+        AggregationConfigProperty(..), mkAggregationConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data AggregationConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-aggregationconfig.html>
+    AggregationConfigProperty {haddock_workaround_ :: (),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-aggregationconfig.html#cfn-appflow-flow-aggregationconfig-aggregationtype>
+                               aggregationType :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-aggregationconfig.html#cfn-appflow-flow-aggregationconfig-targetfilesize>
+                               targetFileSize :: (Prelude.Maybe (Value Prelude.Integer))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkAggregationConfigProperty :: AggregationConfigProperty
+mkAggregationConfigProperty
+  = AggregationConfigProperty
+      {haddock_workaround_ = (), aggregationType = Prelude.Nothing,
+       targetFileSize = Prelude.Nothing}
+instance ToResourceProperties AggregationConfigProperty where
+  toResourceProperties AggregationConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.AggregationConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AggregationType" Prelude.<$> aggregationType,
+                            (JSON..=) "TargetFileSize" Prelude.<$> targetFileSize])}
+instance JSON.ToJSON AggregationConfigProperty where
+  toJSON AggregationConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AggregationType" Prelude.<$> aggregationType,
+               (JSON..=) "TargetFileSize" Prelude.<$> targetFileSize]))
+instance Property "AggregationType" AggregationConfigProperty where
+  type PropertyType "AggregationType" AggregationConfigProperty = Value Prelude.Text
+  set newValue AggregationConfigProperty {..}
+    = AggregationConfigProperty
+        {aggregationType = Prelude.pure newValue, ..}
+instance Property "TargetFileSize" AggregationConfigProperty where
+  type PropertyType "TargetFileSize" AggregationConfigProperty = Value Prelude.Integer
+  set newValue AggregationConfigProperty {..}
+    = AggregationConfigProperty
+        {targetFileSize = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/AggregationConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/AggregationConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/AggregationConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.AggregationConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data AggregationConfigProperty :: Prelude.Type
+instance ToResourceProperties AggregationConfigProperty
+instance Prelude.Eq AggregationConfigProperty
+instance Prelude.Show AggregationConfigProperty
+instance JSON.ToJSON AggregationConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/AmplitudeSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/AmplitudeSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/AmplitudeSourcePropertiesProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.AmplitudeSourcePropertiesProperty (
+        AmplitudeSourcePropertiesProperty(..),
+        mkAmplitudeSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data AmplitudeSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-amplitudesourceproperties.html>
+    AmplitudeSourcePropertiesProperty {haddock_workaround_ :: (),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-amplitudesourceproperties.html#cfn-appflow-flow-amplitudesourceproperties-object>
+                                       object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkAmplitudeSourcePropertiesProperty ::
+  Value Prelude.Text -> AmplitudeSourcePropertiesProperty
+mkAmplitudeSourcePropertiesProperty object
+  = AmplitudeSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties AmplitudeSourcePropertiesProperty where
+  toResourceProperties AmplitudeSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.AmplitudeSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON AmplitudeSourcePropertiesProperty where
+  toJSON AmplitudeSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" AmplitudeSourcePropertiesProperty where
+  type PropertyType "Object" AmplitudeSourcePropertiesProperty = Value Prelude.Text
+  set newValue AmplitudeSourcePropertiesProperty {..}
+    = AmplitudeSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/AmplitudeSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/AmplitudeSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/AmplitudeSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.AmplitudeSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data AmplitudeSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties AmplitudeSourcePropertiesProperty
+instance Prelude.Eq AmplitudeSourcePropertiesProperty
+instance Prelude.Show AmplitudeSourcePropertiesProperty
+instance JSON.ToJSON AmplitudeSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/ConnectorOperatorProperty.hs b/gen/Stratosphere/AppFlow/Flow/ConnectorOperatorProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ConnectorOperatorProperty.hs
@@ -0,0 +1,178 @@
+module Stratosphere.AppFlow.Flow.ConnectorOperatorProperty (
+        ConnectorOperatorProperty(..), mkConnectorOperatorProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ConnectorOperatorProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html>
+    ConnectorOperatorProperty {haddock_workaround_ :: (),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-amplitude>
+                               amplitude :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-customconnector>
+                               customConnector :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-datadog>
+                               datadog :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-dynatrace>
+                               dynatrace :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-googleanalytics>
+                               googleAnalytics :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-infornexus>
+                               inforNexus :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-marketo>
+                               marketo :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-pardot>
+                               pardot :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-s3>
+                               s3 :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-sapodata>
+                               sAPOData :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-salesforce>
+                               salesforce :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-servicenow>
+                               serviceNow :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-singular>
+                               singular :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-slack>
+                               slack :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-trendmicro>
+                               trendmicro :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-veeva>
+                               veeva :: (Prelude.Maybe (Value Prelude.Text)),
+                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-zendesk>
+                               zendesk :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkConnectorOperatorProperty :: ConnectorOperatorProperty
+mkConnectorOperatorProperty
+  = ConnectorOperatorProperty
+      {haddock_workaround_ = (), amplitude = Prelude.Nothing,
+       customConnector = Prelude.Nothing, datadog = Prelude.Nothing,
+       dynatrace = Prelude.Nothing, googleAnalytics = Prelude.Nothing,
+       inforNexus = Prelude.Nothing, marketo = Prelude.Nothing,
+       pardot = Prelude.Nothing, s3 = Prelude.Nothing,
+       sAPOData = Prelude.Nothing, salesforce = Prelude.Nothing,
+       serviceNow = Prelude.Nothing, singular = Prelude.Nothing,
+       slack = Prelude.Nothing, trendmicro = Prelude.Nothing,
+       veeva = Prelude.Nothing, zendesk = Prelude.Nothing}
+instance ToResourceProperties ConnectorOperatorProperty where
+  toResourceProperties ConnectorOperatorProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.ConnectorOperator",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Amplitude" Prelude.<$> amplitude,
+                            (JSON..=) "CustomConnector" Prelude.<$> customConnector,
+                            (JSON..=) "Datadog" Prelude.<$> datadog,
+                            (JSON..=) "Dynatrace" Prelude.<$> dynatrace,
+                            (JSON..=) "GoogleAnalytics" Prelude.<$> googleAnalytics,
+                            (JSON..=) "InforNexus" Prelude.<$> inforNexus,
+                            (JSON..=) "Marketo" Prelude.<$> marketo,
+                            (JSON..=) "Pardot" Prelude.<$> pardot,
+                            (JSON..=) "S3" Prelude.<$> s3,
+                            (JSON..=) "SAPOData" Prelude.<$> sAPOData,
+                            (JSON..=) "Salesforce" Prelude.<$> salesforce,
+                            (JSON..=) "ServiceNow" Prelude.<$> serviceNow,
+                            (JSON..=) "Singular" Prelude.<$> singular,
+                            (JSON..=) "Slack" Prelude.<$> slack,
+                            (JSON..=) "Trendmicro" Prelude.<$> trendmicro,
+                            (JSON..=) "Veeva" Prelude.<$> veeva,
+                            (JSON..=) "Zendesk" Prelude.<$> zendesk])}
+instance JSON.ToJSON ConnectorOperatorProperty where
+  toJSON ConnectorOperatorProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Amplitude" Prelude.<$> amplitude,
+               (JSON..=) "CustomConnector" Prelude.<$> customConnector,
+               (JSON..=) "Datadog" Prelude.<$> datadog,
+               (JSON..=) "Dynatrace" Prelude.<$> dynatrace,
+               (JSON..=) "GoogleAnalytics" Prelude.<$> googleAnalytics,
+               (JSON..=) "InforNexus" Prelude.<$> inforNexus,
+               (JSON..=) "Marketo" Prelude.<$> marketo,
+               (JSON..=) "Pardot" Prelude.<$> pardot,
+               (JSON..=) "S3" Prelude.<$> s3,
+               (JSON..=) "SAPOData" Prelude.<$> sAPOData,
+               (JSON..=) "Salesforce" Prelude.<$> salesforce,
+               (JSON..=) "ServiceNow" Prelude.<$> serviceNow,
+               (JSON..=) "Singular" Prelude.<$> singular,
+               (JSON..=) "Slack" Prelude.<$> slack,
+               (JSON..=) "Trendmicro" Prelude.<$> trendmicro,
+               (JSON..=) "Veeva" Prelude.<$> veeva,
+               (JSON..=) "Zendesk" Prelude.<$> zendesk]))
+instance Property "Amplitude" ConnectorOperatorProperty where
+  type PropertyType "Amplitude" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty {amplitude = Prelude.pure newValue, ..}
+instance Property "CustomConnector" ConnectorOperatorProperty where
+  type PropertyType "CustomConnector" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty
+        {customConnector = Prelude.pure newValue, ..}
+instance Property "Datadog" ConnectorOperatorProperty where
+  type PropertyType "Datadog" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty {datadog = Prelude.pure newValue, ..}
+instance Property "Dynatrace" ConnectorOperatorProperty where
+  type PropertyType "Dynatrace" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty {dynatrace = Prelude.pure newValue, ..}
+instance Property "GoogleAnalytics" ConnectorOperatorProperty where
+  type PropertyType "GoogleAnalytics" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty
+        {googleAnalytics = Prelude.pure newValue, ..}
+instance Property "InforNexus" ConnectorOperatorProperty where
+  type PropertyType "InforNexus" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty
+        {inforNexus = Prelude.pure newValue, ..}
+instance Property "Marketo" ConnectorOperatorProperty where
+  type PropertyType "Marketo" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty {marketo = Prelude.pure newValue, ..}
+instance Property "Pardot" ConnectorOperatorProperty where
+  type PropertyType "Pardot" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty {pardot = Prelude.pure newValue, ..}
+instance Property "S3" ConnectorOperatorProperty where
+  type PropertyType "S3" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty {s3 = Prelude.pure newValue, ..}
+instance Property "SAPOData" ConnectorOperatorProperty where
+  type PropertyType "SAPOData" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty {sAPOData = Prelude.pure newValue, ..}
+instance Property "Salesforce" ConnectorOperatorProperty where
+  type PropertyType "Salesforce" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty
+        {salesforce = Prelude.pure newValue, ..}
+instance Property "ServiceNow" ConnectorOperatorProperty where
+  type PropertyType "ServiceNow" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty
+        {serviceNow = Prelude.pure newValue, ..}
+instance Property "Singular" ConnectorOperatorProperty where
+  type PropertyType "Singular" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty {singular = Prelude.pure newValue, ..}
+instance Property "Slack" ConnectorOperatorProperty where
+  type PropertyType "Slack" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty {slack = Prelude.pure newValue, ..}
+instance Property "Trendmicro" ConnectorOperatorProperty where
+  type PropertyType "Trendmicro" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty
+        {trendmicro = Prelude.pure newValue, ..}
+instance Property "Veeva" ConnectorOperatorProperty where
+  type PropertyType "Veeva" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty {veeva = Prelude.pure newValue, ..}
+instance Property "Zendesk" ConnectorOperatorProperty where
+  type PropertyType "Zendesk" ConnectorOperatorProperty = Value Prelude.Text
+  set newValue ConnectorOperatorProperty {..}
+    = ConnectorOperatorProperty {zendesk = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/ConnectorOperatorProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/ConnectorOperatorProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ConnectorOperatorProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.ConnectorOperatorProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ConnectorOperatorProperty :: Prelude.Type
+instance ToResourceProperties ConnectorOperatorProperty
+instance Prelude.Eq ConnectorOperatorProperty
+instance Prelude.Show ConnectorOperatorProperty
+instance JSON.ToJSON ConnectorOperatorProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/CustomConnectorDestinationPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/CustomConnectorDestinationPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/CustomConnectorDestinationPropertiesProperty.hs
@@ -0,0 +1,83 @@
+module Stratosphere.AppFlow.Flow.CustomConnectorDestinationPropertiesProperty (
+        module Exports, CustomConnectorDestinationPropertiesProperty(..),
+        mkCustomConnectorDestinationPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ErrorHandlingConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CustomConnectorDestinationPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-customconnectordestinationproperties.html>
+    CustomConnectorDestinationPropertiesProperty {haddock_workaround_ :: (),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-customconnectordestinationproperties.html#cfn-appflow-flow-customconnectordestinationproperties-customproperties>
+                                                  customProperties :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text))),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-customconnectordestinationproperties.html#cfn-appflow-flow-customconnectordestinationproperties-entityname>
+                                                  entityName :: (Value Prelude.Text),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-customconnectordestinationproperties.html#cfn-appflow-flow-customconnectordestinationproperties-errorhandlingconfig>
+                                                  errorHandlingConfig :: (Prelude.Maybe ErrorHandlingConfigProperty),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-customconnectordestinationproperties.html#cfn-appflow-flow-customconnectordestinationproperties-idfieldnames>
+                                                  idFieldNames :: (Prelude.Maybe (ValueList Prelude.Text)),
+                                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-customconnectordestinationproperties.html#cfn-appflow-flow-customconnectordestinationproperties-writeoperationtype>
+                                                  writeOperationType :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCustomConnectorDestinationPropertiesProperty ::
+  Value Prelude.Text -> CustomConnectorDestinationPropertiesProperty
+mkCustomConnectorDestinationPropertiesProperty entityName
+  = CustomConnectorDestinationPropertiesProperty
+      {haddock_workaround_ = (), entityName = entityName,
+       customProperties = Prelude.Nothing,
+       errorHandlingConfig = Prelude.Nothing,
+       idFieldNames = Prelude.Nothing,
+       writeOperationType = Prelude.Nothing}
+instance ToResourceProperties CustomConnectorDestinationPropertiesProperty where
+  toResourceProperties
+    CustomConnectorDestinationPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.CustomConnectorDestinationProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["EntityName" JSON..= entityName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CustomProperties" Prelude.<$> customProperties,
+                               (JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig,
+                               (JSON..=) "IdFieldNames" Prelude.<$> idFieldNames,
+                               (JSON..=) "WriteOperationType" Prelude.<$> writeOperationType]))}
+instance JSON.ToJSON CustomConnectorDestinationPropertiesProperty where
+  toJSON CustomConnectorDestinationPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["EntityName" JSON..= entityName]
+              (Prelude.catMaybes
+                 [(JSON..=) "CustomProperties" Prelude.<$> customProperties,
+                  (JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig,
+                  (JSON..=) "IdFieldNames" Prelude.<$> idFieldNames,
+                  (JSON..=) "WriteOperationType" Prelude.<$> writeOperationType])))
+instance Property "CustomProperties" CustomConnectorDestinationPropertiesProperty where
+  type PropertyType "CustomProperties" CustomConnectorDestinationPropertiesProperty = Prelude.Map Prelude.Text (Value Prelude.Text)
+  set newValue CustomConnectorDestinationPropertiesProperty {..}
+    = CustomConnectorDestinationPropertiesProperty
+        {customProperties = Prelude.pure newValue, ..}
+instance Property "EntityName" CustomConnectorDestinationPropertiesProperty where
+  type PropertyType "EntityName" CustomConnectorDestinationPropertiesProperty = Value Prelude.Text
+  set newValue CustomConnectorDestinationPropertiesProperty {..}
+    = CustomConnectorDestinationPropertiesProperty
+        {entityName = newValue, ..}
+instance Property "ErrorHandlingConfig" CustomConnectorDestinationPropertiesProperty where
+  type PropertyType "ErrorHandlingConfig" CustomConnectorDestinationPropertiesProperty = ErrorHandlingConfigProperty
+  set newValue CustomConnectorDestinationPropertiesProperty {..}
+    = CustomConnectorDestinationPropertiesProperty
+        {errorHandlingConfig = Prelude.pure newValue, ..}
+instance Property "IdFieldNames" CustomConnectorDestinationPropertiesProperty where
+  type PropertyType "IdFieldNames" CustomConnectorDestinationPropertiesProperty = ValueList Prelude.Text
+  set newValue CustomConnectorDestinationPropertiesProperty {..}
+    = CustomConnectorDestinationPropertiesProperty
+        {idFieldNames = Prelude.pure newValue, ..}
+instance Property "WriteOperationType" CustomConnectorDestinationPropertiesProperty where
+  type PropertyType "WriteOperationType" CustomConnectorDestinationPropertiesProperty = Value Prelude.Text
+  set newValue CustomConnectorDestinationPropertiesProperty {..}
+    = CustomConnectorDestinationPropertiesProperty
+        {writeOperationType = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/CustomConnectorDestinationPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/CustomConnectorDestinationPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/CustomConnectorDestinationPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.CustomConnectorDestinationPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CustomConnectorDestinationPropertiesProperty :: Prelude.Type
+instance ToResourceProperties CustomConnectorDestinationPropertiesProperty
+instance Prelude.Eq CustomConnectorDestinationPropertiesProperty
+instance Prelude.Show CustomConnectorDestinationPropertiesProperty
+instance JSON.ToJSON CustomConnectorDestinationPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/CustomConnectorSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/CustomConnectorSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/CustomConnectorSourcePropertiesProperty.hs
@@ -0,0 +1,62 @@
+module Stratosphere.AppFlow.Flow.CustomConnectorSourcePropertiesProperty (
+        module Exports, CustomConnectorSourcePropertiesProperty(..),
+        mkCustomConnectorSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.DataTransferApiProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data CustomConnectorSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-customconnectorsourceproperties.html>
+    CustomConnectorSourcePropertiesProperty {haddock_workaround_ :: (),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-customconnectorsourceproperties.html#cfn-appflow-flow-customconnectorsourceproperties-customproperties>
+                                             customProperties :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text))),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-customconnectorsourceproperties.html#cfn-appflow-flow-customconnectorsourceproperties-datatransferapi>
+                                             dataTransferApi :: (Prelude.Maybe DataTransferApiProperty),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-customconnectorsourceproperties.html#cfn-appflow-flow-customconnectorsourceproperties-entityname>
+                                             entityName :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkCustomConnectorSourcePropertiesProperty ::
+  Value Prelude.Text -> CustomConnectorSourcePropertiesProperty
+mkCustomConnectorSourcePropertiesProperty entityName
+  = CustomConnectorSourcePropertiesProperty
+      {haddock_workaround_ = (), entityName = entityName,
+       customProperties = Prelude.Nothing,
+       dataTransferApi = Prelude.Nothing}
+instance ToResourceProperties CustomConnectorSourcePropertiesProperty where
+  toResourceProperties CustomConnectorSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.CustomConnectorSourceProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["EntityName" JSON..= entityName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CustomProperties" Prelude.<$> customProperties,
+                               (JSON..=) "DataTransferApi" Prelude.<$> dataTransferApi]))}
+instance JSON.ToJSON CustomConnectorSourcePropertiesProperty where
+  toJSON CustomConnectorSourcePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["EntityName" JSON..= entityName]
+              (Prelude.catMaybes
+                 [(JSON..=) "CustomProperties" Prelude.<$> customProperties,
+                  (JSON..=) "DataTransferApi" Prelude.<$> dataTransferApi])))
+instance Property "CustomProperties" CustomConnectorSourcePropertiesProperty where
+  type PropertyType "CustomProperties" CustomConnectorSourcePropertiesProperty = Prelude.Map Prelude.Text (Value Prelude.Text)
+  set newValue CustomConnectorSourcePropertiesProperty {..}
+    = CustomConnectorSourcePropertiesProperty
+        {customProperties = Prelude.pure newValue, ..}
+instance Property "DataTransferApi" CustomConnectorSourcePropertiesProperty where
+  type PropertyType "DataTransferApi" CustomConnectorSourcePropertiesProperty = DataTransferApiProperty
+  set newValue CustomConnectorSourcePropertiesProperty {..}
+    = CustomConnectorSourcePropertiesProperty
+        {dataTransferApi = Prelude.pure newValue, ..}
+instance Property "EntityName" CustomConnectorSourcePropertiesProperty where
+  type PropertyType "EntityName" CustomConnectorSourcePropertiesProperty = Value Prelude.Text
+  set newValue CustomConnectorSourcePropertiesProperty {..}
+    = CustomConnectorSourcePropertiesProperty
+        {entityName = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/CustomConnectorSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/CustomConnectorSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/CustomConnectorSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.CustomConnectorSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data CustomConnectorSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties CustomConnectorSourcePropertiesProperty
+instance Prelude.Eq CustomConnectorSourcePropertiesProperty
+instance Prelude.Show CustomConnectorSourcePropertiesProperty
+instance JSON.ToJSON CustomConnectorSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/DataTransferApiProperty.hs b/gen/Stratosphere/AppFlow/Flow/DataTransferApiProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/DataTransferApiProperty.hs
@@ -0,0 +1,38 @@
+module Stratosphere.AppFlow.Flow.DataTransferApiProperty (
+        DataTransferApiProperty(..), mkDataTransferApiProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DataTransferApiProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-datatransferapi.html>
+    DataTransferApiProperty {haddock_workaround_ :: (),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-datatransferapi.html#cfn-appflow-flow-datatransferapi-name>
+                             name :: (Value Prelude.Text),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-datatransferapi.html#cfn-appflow-flow-datatransferapi-type>
+                             type' :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDataTransferApiProperty ::
+  Value Prelude.Text -> Value Prelude.Text -> DataTransferApiProperty
+mkDataTransferApiProperty name type'
+  = DataTransferApiProperty
+      {haddock_workaround_ = (), name = name, type' = type'}
+instance ToResourceProperties DataTransferApiProperty where
+  toResourceProperties DataTransferApiProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.DataTransferApi",
+         supportsTags = Prelude.False,
+         properties = ["Name" JSON..= name, "Type" JSON..= type']}
+instance JSON.ToJSON DataTransferApiProperty where
+  toJSON DataTransferApiProperty {..}
+    = JSON.object ["Name" JSON..= name, "Type" JSON..= type']
+instance Property "Name" DataTransferApiProperty where
+  type PropertyType "Name" DataTransferApiProperty = Value Prelude.Text
+  set newValue DataTransferApiProperty {..}
+    = DataTransferApiProperty {name = newValue, ..}
+instance Property "Type" DataTransferApiProperty where
+  type PropertyType "Type" DataTransferApiProperty = Value Prelude.Text
+  set newValue DataTransferApiProperty {..}
+    = DataTransferApiProperty {type' = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/DataTransferApiProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/DataTransferApiProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/DataTransferApiProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.DataTransferApiProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DataTransferApiProperty :: Prelude.Type
+instance ToResourceProperties DataTransferApiProperty
+instance Prelude.Eq DataTransferApiProperty
+instance Prelude.Show DataTransferApiProperty
+instance JSON.ToJSON DataTransferApiProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/DatadogSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/DatadogSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/DatadogSourcePropertiesProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.DatadogSourcePropertiesProperty (
+        DatadogSourcePropertiesProperty(..),
+        mkDatadogSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DatadogSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-datadogsourceproperties.html>
+    DatadogSourcePropertiesProperty {haddock_workaround_ :: (),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-datadogsourceproperties.html#cfn-appflow-flow-datadogsourceproperties-object>
+                                     object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDatadogSourcePropertiesProperty ::
+  Value Prelude.Text -> DatadogSourcePropertiesProperty
+mkDatadogSourcePropertiesProperty object
+  = DatadogSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties DatadogSourcePropertiesProperty where
+  toResourceProperties DatadogSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.DatadogSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON DatadogSourcePropertiesProperty where
+  toJSON DatadogSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" DatadogSourcePropertiesProperty where
+  type PropertyType "Object" DatadogSourcePropertiesProperty = Value Prelude.Text
+  set newValue DatadogSourcePropertiesProperty {..}
+    = DatadogSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/DatadogSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/DatadogSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/DatadogSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.DatadogSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DatadogSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties DatadogSourcePropertiesProperty
+instance Prelude.Eq DatadogSourcePropertiesProperty
+instance Prelude.Show DatadogSourcePropertiesProperty
+instance JSON.ToJSON DatadogSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/DestinationConnectorPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/DestinationConnectorPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/DestinationConnectorPropertiesProperty.hs
@@ -0,0 +1,144 @@
+module Stratosphere.AppFlow.Flow.DestinationConnectorPropertiesProperty (
+        module Exports, DestinationConnectorPropertiesProperty(..),
+        mkDestinationConnectorPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.CustomConnectorDestinationPropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.EventBridgeDestinationPropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.LookoutMetricsDestinationPropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.MarketoDestinationPropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.RedshiftDestinationPropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.S3DestinationPropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SAPODataDestinationPropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SalesforceDestinationPropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SnowflakeDestinationPropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.UpsolverDestinationPropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ZendeskDestinationPropertiesProperty as Exports
+import Stratosphere.ResourceProperties
+data DestinationConnectorPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html>
+    DestinationConnectorPropertiesProperty {haddock_workaround_ :: (),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-customconnector>
+                                            customConnector :: (Prelude.Maybe CustomConnectorDestinationPropertiesProperty),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-eventbridge>
+                                            eventBridge :: (Prelude.Maybe EventBridgeDestinationPropertiesProperty),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-lookoutmetrics>
+                                            lookoutMetrics :: (Prelude.Maybe LookoutMetricsDestinationPropertiesProperty),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-marketo>
+                                            marketo :: (Prelude.Maybe MarketoDestinationPropertiesProperty),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-redshift>
+                                            redshift :: (Prelude.Maybe RedshiftDestinationPropertiesProperty),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-s3>
+                                            s3 :: (Prelude.Maybe S3DestinationPropertiesProperty),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-sapodata>
+                                            sAPOData :: (Prelude.Maybe SAPODataDestinationPropertiesProperty),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-salesforce>
+                                            salesforce :: (Prelude.Maybe SalesforceDestinationPropertiesProperty),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-snowflake>
+                                            snowflake :: (Prelude.Maybe SnowflakeDestinationPropertiesProperty),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-upsolver>
+                                            upsolver :: (Prelude.Maybe UpsolverDestinationPropertiesProperty),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-zendesk>
+                                            zendesk :: (Prelude.Maybe ZendeskDestinationPropertiesProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDestinationConnectorPropertiesProperty ::
+  DestinationConnectorPropertiesProperty
+mkDestinationConnectorPropertiesProperty
+  = DestinationConnectorPropertiesProperty
+      {haddock_workaround_ = (), customConnector = Prelude.Nothing,
+       eventBridge = Prelude.Nothing, lookoutMetrics = Prelude.Nothing,
+       marketo = Prelude.Nothing, redshift = Prelude.Nothing,
+       s3 = Prelude.Nothing, sAPOData = Prelude.Nothing,
+       salesforce = Prelude.Nothing, snowflake = Prelude.Nothing,
+       upsolver = Prelude.Nothing, zendesk = Prelude.Nothing}
+instance ToResourceProperties DestinationConnectorPropertiesProperty where
+  toResourceProperties DestinationConnectorPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.DestinationConnectorProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "CustomConnector" Prelude.<$> customConnector,
+                            (JSON..=) "EventBridge" Prelude.<$> eventBridge,
+                            (JSON..=) "LookoutMetrics" Prelude.<$> lookoutMetrics,
+                            (JSON..=) "Marketo" Prelude.<$> marketo,
+                            (JSON..=) "Redshift" Prelude.<$> redshift,
+                            (JSON..=) "S3" Prelude.<$> s3,
+                            (JSON..=) "SAPOData" Prelude.<$> sAPOData,
+                            (JSON..=) "Salesforce" Prelude.<$> salesforce,
+                            (JSON..=) "Snowflake" Prelude.<$> snowflake,
+                            (JSON..=) "Upsolver" Prelude.<$> upsolver,
+                            (JSON..=) "Zendesk" Prelude.<$> zendesk])}
+instance JSON.ToJSON DestinationConnectorPropertiesProperty where
+  toJSON DestinationConnectorPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "CustomConnector" Prelude.<$> customConnector,
+               (JSON..=) "EventBridge" Prelude.<$> eventBridge,
+               (JSON..=) "LookoutMetrics" Prelude.<$> lookoutMetrics,
+               (JSON..=) "Marketo" Prelude.<$> marketo,
+               (JSON..=) "Redshift" Prelude.<$> redshift,
+               (JSON..=) "S3" Prelude.<$> s3,
+               (JSON..=) "SAPOData" Prelude.<$> sAPOData,
+               (JSON..=) "Salesforce" Prelude.<$> salesforce,
+               (JSON..=) "Snowflake" Prelude.<$> snowflake,
+               (JSON..=) "Upsolver" Prelude.<$> upsolver,
+               (JSON..=) "Zendesk" Prelude.<$> zendesk]))
+instance Property "CustomConnector" DestinationConnectorPropertiesProperty where
+  type PropertyType "CustomConnector" DestinationConnectorPropertiesProperty = CustomConnectorDestinationPropertiesProperty
+  set newValue DestinationConnectorPropertiesProperty {..}
+    = DestinationConnectorPropertiesProperty
+        {customConnector = Prelude.pure newValue, ..}
+instance Property "EventBridge" DestinationConnectorPropertiesProperty where
+  type PropertyType "EventBridge" DestinationConnectorPropertiesProperty = EventBridgeDestinationPropertiesProperty
+  set newValue DestinationConnectorPropertiesProperty {..}
+    = DestinationConnectorPropertiesProperty
+        {eventBridge = Prelude.pure newValue, ..}
+instance Property "LookoutMetrics" DestinationConnectorPropertiesProperty where
+  type PropertyType "LookoutMetrics" DestinationConnectorPropertiesProperty = LookoutMetricsDestinationPropertiesProperty
+  set newValue DestinationConnectorPropertiesProperty {..}
+    = DestinationConnectorPropertiesProperty
+        {lookoutMetrics = Prelude.pure newValue, ..}
+instance Property "Marketo" DestinationConnectorPropertiesProperty where
+  type PropertyType "Marketo" DestinationConnectorPropertiesProperty = MarketoDestinationPropertiesProperty
+  set newValue DestinationConnectorPropertiesProperty {..}
+    = DestinationConnectorPropertiesProperty
+        {marketo = Prelude.pure newValue, ..}
+instance Property "Redshift" DestinationConnectorPropertiesProperty where
+  type PropertyType "Redshift" DestinationConnectorPropertiesProperty = RedshiftDestinationPropertiesProperty
+  set newValue DestinationConnectorPropertiesProperty {..}
+    = DestinationConnectorPropertiesProperty
+        {redshift = Prelude.pure newValue, ..}
+instance Property "S3" DestinationConnectorPropertiesProperty where
+  type PropertyType "S3" DestinationConnectorPropertiesProperty = S3DestinationPropertiesProperty
+  set newValue DestinationConnectorPropertiesProperty {..}
+    = DestinationConnectorPropertiesProperty
+        {s3 = Prelude.pure newValue, ..}
+instance Property "SAPOData" DestinationConnectorPropertiesProperty where
+  type PropertyType "SAPOData" DestinationConnectorPropertiesProperty = SAPODataDestinationPropertiesProperty
+  set newValue DestinationConnectorPropertiesProperty {..}
+    = DestinationConnectorPropertiesProperty
+        {sAPOData = Prelude.pure newValue, ..}
+instance Property "Salesforce" DestinationConnectorPropertiesProperty where
+  type PropertyType "Salesforce" DestinationConnectorPropertiesProperty = SalesforceDestinationPropertiesProperty
+  set newValue DestinationConnectorPropertiesProperty {..}
+    = DestinationConnectorPropertiesProperty
+        {salesforce = Prelude.pure newValue, ..}
+instance Property "Snowflake" DestinationConnectorPropertiesProperty where
+  type PropertyType "Snowflake" DestinationConnectorPropertiesProperty = SnowflakeDestinationPropertiesProperty
+  set newValue DestinationConnectorPropertiesProperty {..}
+    = DestinationConnectorPropertiesProperty
+        {snowflake = Prelude.pure newValue, ..}
+instance Property "Upsolver" DestinationConnectorPropertiesProperty where
+  type PropertyType "Upsolver" DestinationConnectorPropertiesProperty = UpsolverDestinationPropertiesProperty
+  set newValue DestinationConnectorPropertiesProperty {..}
+    = DestinationConnectorPropertiesProperty
+        {upsolver = Prelude.pure newValue, ..}
+instance Property "Zendesk" DestinationConnectorPropertiesProperty where
+  type PropertyType "Zendesk" DestinationConnectorPropertiesProperty = ZendeskDestinationPropertiesProperty
+  set newValue DestinationConnectorPropertiesProperty {..}
+    = DestinationConnectorPropertiesProperty
+        {zendesk = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/DestinationConnectorPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/DestinationConnectorPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/DestinationConnectorPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.DestinationConnectorPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DestinationConnectorPropertiesProperty :: Prelude.Type
+instance ToResourceProperties DestinationConnectorPropertiesProperty
+instance Prelude.Eq DestinationConnectorPropertiesProperty
+instance Prelude.Show DestinationConnectorPropertiesProperty
+instance JSON.ToJSON DestinationConnectorPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/DestinationFlowConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/DestinationFlowConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/DestinationFlowConfigProperty.hs
@@ -0,0 +1,79 @@
+module Stratosphere.AppFlow.Flow.DestinationFlowConfigProperty (
+        module Exports, DestinationFlowConfigProperty(..),
+        mkDestinationFlowConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.DestinationConnectorPropertiesProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DestinationFlowConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html>
+    DestinationFlowConfigProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html#cfn-appflow-flow-destinationflowconfig-apiversion>
+                                   apiVersion :: (Prelude.Maybe (Value Prelude.Text)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html#cfn-appflow-flow-destinationflowconfig-connectorprofilename>
+                                   connectorProfileName :: (Prelude.Maybe (Value Prelude.Text)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html#cfn-appflow-flow-destinationflowconfig-connectortype>
+                                   connectorType :: (Value Prelude.Text),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html#cfn-appflow-flow-destinationflowconfig-destinationconnectorproperties>
+                                   destinationConnectorProperties :: DestinationConnectorPropertiesProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDestinationFlowConfigProperty ::
+  Value Prelude.Text
+  -> DestinationConnectorPropertiesProperty
+     -> DestinationFlowConfigProperty
+mkDestinationFlowConfigProperty
+  connectorType
+  destinationConnectorProperties
+  = DestinationFlowConfigProperty
+      {haddock_workaround_ = (), connectorType = connectorType,
+       destinationConnectorProperties = destinationConnectorProperties,
+       apiVersion = Prelude.Nothing,
+       connectorProfileName = Prelude.Nothing}
+instance ToResourceProperties DestinationFlowConfigProperty where
+  toResourceProperties DestinationFlowConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.DestinationFlowConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ConnectorType" JSON..= connectorType,
+                            "DestinationConnectorProperties"
+                              JSON..= destinationConnectorProperties]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ApiVersion" Prelude.<$> apiVersion,
+                               (JSON..=) "ConnectorProfileName"
+                                 Prelude.<$> connectorProfileName]))}
+instance JSON.ToJSON DestinationFlowConfigProperty where
+  toJSON DestinationFlowConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ConnectorType" JSON..= connectorType,
+               "DestinationConnectorProperties"
+                 JSON..= destinationConnectorProperties]
+              (Prelude.catMaybes
+                 [(JSON..=) "ApiVersion" Prelude.<$> apiVersion,
+                  (JSON..=) "ConnectorProfileName"
+                    Prelude.<$> connectorProfileName])))
+instance Property "ApiVersion" DestinationFlowConfigProperty where
+  type PropertyType "ApiVersion" DestinationFlowConfigProperty = Value Prelude.Text
+  set newValue DestinationFlowConfigProperty {..}
+    = DestinationFlowConfigProperty
+        {apiVersion = Prelude.pure newValue, ..}
+instance Property "ConnectorProfileName" DestinationFlowConfigProperty where
+  type PropertyType "ConnectorProfileName" DestinationFlowConfigProperty = Value Prelude.Text
+  set newValue DestinationFlowConfigProperty {..}
+    = DestinationFlowConfigProperty
+        {connectorProfileName = Prelude.pure newValue, ..}
+instance Property "ConnectorType" DestinationFlowConfigProperty where
+  type PropertyType "ConnectorType" DestinationFlowConfigProperty = Value Prelude.Text
+  set newValue DestinationFlowConfigProperty {..}
+    = DestinationFlowConfigProperty {connectorType = newValue, ..}
+instance Property "DestinationConnectorProperties" DestinationFlowConfigProperty where
+  type PropertyType "DestinationConnectorProperties" DestinationFlowConfigProperty = DestinationConnectorPropertiesProperty
+  set newValue DestinationFlowConfigProperty {..}
+    = DestinationFlowConfigProperty
+        {destinationConnectorProperties = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/DestinationFlowConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/DestinationFlowConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/DestinationFlowConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.DestinationFlowConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DestinationFlowConfigProperty :: Prelude.Type
+instance ToResourceProperties DestinationFlowConfigProperty
+instance Prelude.Eq DestinationFlowConfigProperty
+instance Prelude.Show DestinationFlowConfigProperty
+instance JSON.ToJSON DestinationFlowConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/DynatraceSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/DynatraceSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/DynatraceSourcePropertiesProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.DynatraceSourcePropertiesProperty (
+        DynatraceSourcePropertiesProperty(..),
+        mkDynatraceSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data DynatraceSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-dynatracesourceproperties.html>
+    DynatraceSourcePropertiesProperty {haddock_workaround_ :: (),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-dynatracesourceproperties.html#cfn-appflow-flow-dynatracesourceproperties-object>
+                                       object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkDynatraceSourcePropertiesProperty ::
+  Value Prelude.Text -> DynatraceSourcePropertiesProperty
+mkDynatraceSourcePropertiesProperty object
+  = DynatraceSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties DynatraceSourcePropertiesProperty where
+  toResourceProperties DynatraceSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.DynatraceSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON DynatraceSourcePropertiesProperty where
+  toJSON DynatraceSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" DynatraceSourcePropertiesProperty where
+  type PropertyType "Object" DynatraceSourcePropertiesProperty = Value Prelude.Text
+  set newValue DynatraceSourcePropertiesProperty {..}
+    = DynatraceSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/DynatraceSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/DynatraceSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/DynatraceSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.DynatraceSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data DynatraceSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties DynatraceSourcePropertiesProperty
+instance Prelude.Eq DynatraceSourcePropertiesProperty
+instance Prelude.Show DynatraceSourcePropertiesProperty
+instance JSON.ToJSON DynatraceSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/ErrorHandlingConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/ErrorHandlingConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ErrorHandlingConfigProperty.hs
@@ -0,0 +1,56 @@
+module Stratosphere.AppFlow.Flow.ErrorHandlingConfigProperty (
+        ErrorHandlingConfigProperty(..), mkErrorHandlingConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ErrorHandlingConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html>
+    ErrorHandlingConfigProperty {haddock_workaround_ :: (),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html#cfn-appflow-flow-errorhandlingconfig-bucketname>
+                                 bucketName :: (Prelude.Maybe (Value Prelude.Text)),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html#cfn-appflow-flow-errorhandlingconfig-bucketprefix>
+                                 bucketPrefix :: (Prelude.Maybe (Value Prelude.Text)),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html#cfn-appflow-flow-errorhandlingconfig-failonfirsterror>
+                                 failOnFirstError :: (Prelude.Maybe (Value Prelude.Bool))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkErrorHandlingConfigProperty :: ErrorHandlingConfigProperty
+mkErrorHandlingConfigProperty
+  = ErrorHandlingConfigProperty
+      {haddock_workaround_ = (), bucketName = Prelude.Nothing,
+       bucketPrefix = Prelude.Nothing, failOnFirstError = Prelude.Nothing}
+instance ToResourceProperties ErrorHandlingConfigProperty where
+  toResourceProperties ErrorHandlingConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.ErrorHandlingConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "BucketName" Prelude.<$> bucketName,
+                            (JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+                            (JSON..=) "FailOnFirstError" Prelude.<$> failOnFirstError])}
+instance JSON.ToJSON ErrorHandlingConfigProperty where
+  toJSON ErrorHandlingConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "BucketName" Prelude.<$> bucketName,
+               (JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+               (JSON..=) "FailOnFirstError" Prelude.<$> failOnFirstError]))
+instance Property "BucketName" ErrorHandlingConfigProperty where
+  type PropertyType "BucketName" ErrorHandlingConfigProperty = Value Prelude.Text
+  set newValue ErrorHandlingConfigProperty {..}
+    = ErrorHandlingConfigProperty
+        {bucketName = Prelude.pure newValue, ..}
+instance Property "BucketPrefix" ErrorHandlingConfigProperty where
+  type PropertyType "BucketPrefix" ErrorHandlingConfigProperty = Value Prelude.Text
+  set newValue ErrorHandlingConfigProperty {..}
+    = ErrorHandlingConfigProperty
+        {bucketPrefix = Prelude.pure newValue, ..}
+instance Property "FailOnFirstError" ErrorHandlingConfigProperty where
+  type PropertyType "FailOnFirstError" ErrorHandlingConfigProperty = Value Prelude.Bool
+  set newValue ErrorHandlingConfigProperty {..}
+    = ErrorHandlingConfigProperty
+        {failOnFirstError = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/ErrorHandlingConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/ErrorHandlingConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ErrorHandlingConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.ErrorHandlingConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ErrorHandlingConfigProperty :: Prelude.Type
+instance ToResourceProperties ErrorHandlingConfigProperty
+instance Prelude.Eq ErrorHandlingConfigProperty
+instance Prelude.Show ErrorHandlingConfigProperty
+instance JSON.ToJSON ErrorHandlingConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/EventBridgeDestinationPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/EventBridgeDestinationPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/EventBridgeDestinationPropertiesProperty.hs
@@ -0,0 +1,53 @@
+module Stratosphere.AppFlow.Flow.EventBridgeDestinationPropertiesProperty (
+        module Exports, EventBridgeDestinationPropertiesProperty(..),
+        mkEventBridgeDestinationPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ErrorHandlingConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data EventBridgeDestinationPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-eventbridgedestinationproperties.html>
+    EventBridgeDestinationPropertiesProperty {haddock_workaround_ :: (),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-eventbridgedestinationproperties.html#cfn-appflow-flow-eventbridgedestinationproperties-errorhandlingconfig>
+                                              errorHandlingConfig :: (Prelude.Maybe ErrorHandlingConfigProperty),
+                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-eventbridgedestinationproperties.html#cfn-appflow-flow-eventbridgedestinationproperties-object>
+                                              object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkEventBridgeDestinationPropertiesProperty ::
+  Value Prelude.Text -> EventBridgeDestinationPropertiesProperty
+mkEventBridgeDestinationPropertiesProperty object
+  = EventBridgeDestinationPropertiesProperty
+      {haddock_workaround_ = (), object = object,
+       errorHandlingConfig = Prelude.Nothing}
+instance ToResourceProperties EventBridgeDestinationPropertiesProperty where
+  toResourceProperties EventBridgeDestinationPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.EventBridgeDestinationProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Object" JSON..= object]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ErrorHandlingConfig"
+                                 Prelude.<$> errorHandlingConfig]))}
+instance JSON.ToJSON EventBridgeDestinationPropertiesProperty where
+  toJSON EventBridgeDestinationPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Object" JSON..= object]
+              (Prelude.catMaybes
+                 [(JSON..=) "ErrorHandlingConfig"
+                    Prelude.<$> errorHandlingConfig])))
+instance Property "ErrorHandlingConfig" EventBridgeDestinationPropertiesProperty where
+  type PropertyType "ErrorHandlingConfig" EventBridgeDestinationPropertiesProperty = ErrorHandlingConfigProperty
+  set newValue EventBridgeDestinationPropertiesProperty {..}
+    = EventBridgeDestinationPropertiesProperty
+        {errorHandlingConfig = Prelude.pure newValue, ..}
+instance Property "Object" EventBridgeDestinationPropertiesProperty where
+  type PropertyType "Object" EventBridgeDestinationPropertiesProperty = Value Prelude.Text
+  set newValue EventBridgeDestinationPropertiesProperty {..}
+    = EventBridgeDestinationPropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/EventBridgeDestinationPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/EventBridgeDestinationPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/EventBridgeDestinationPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.EventBridgeDestinationPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data EventBridgeDestinationPropertiesProperty :: Prelude.Type
+instance ToResourceProperties EventBridgeDestinationPropertiesProperty
+instance Prelude.Eq EventBridgeDestinationPropertiesProperty
+instance Prelude.Show EventBridgeDestinationPropertiesProperty
+instance JSON.ToJSON EventBridgeDestinationPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/GlueDataCatalogProperty.hs b/gen/Stratosphere/AppFlow/Flow/GlueDataCatalogProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/GlueDataCatalogProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.AppFlow.Flow.GlueDataCatalogProperty (
+        GlueDataCatalogProperty(..), mkGlueDataCatalogProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data GlueDataCatalogProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-gluedatacatalog.html>
+    GlueDataCatalogProperty {haddock_workaround_ :: (),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-gluedatacatalog.html#cfn-appflow-flow-gluedatacatalog-databasename>
+                             databaseName :: (Value Prelude.Text),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-gluedatacatalog.html#cfn-appflow-flow-gluedatacatalog-rolearn>
+                             roleArn :: (Value Prelude.Text),
+                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-gluedatacatalog.html#cfn-appflow-flow-gluedatacatalog-tableprefix>
+                             tablePrefix :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkGlueDataCatalogProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text
+     -> Value Prelude.Text -> GlueDataCatalogProperty
+mkGlueDataCatalogProperty databaseName roleArn tablePrefix
+  = GlueDataCatalogProperty
+      {haddock_workaround_ = (), databaseName = databaseName,
+       roleArn = roleArn, tablePrefix = tablePrefix}
+instance ToResourceProperties GlueDataCatalogProperty where
+  toResourceProperties GlueDataCatalogProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.GlueDataCatalog",
+         supportsTags = Prelude.False,
+         properties = ["DatabaseName" JSON..= databaseName,
+                       "RoleArn" JSON..= roleArn, "TablePrefix" JSON..= tablePrefix]}
+instance JSON.ToJSON GlueDataCatalogProperty where
+  toJSON GlueDataCatalogProperty {..}
+    = JSON.object
+        ["DatabaseName" JSON..= databaseName, "RoleArn" JSON..= roleArn,
+         "TablePrefix" JSON..= tablePrefix]
+instance Property "DatabaseName" GlueDataCatalogProperty where
+  type PropertyType "DatabaseName" GlueDataCatalogProperty = Value Prelude.Text
+  set newValue GlueDataCatalogProperty {..}
+    = GlueDataCatalogProperty {databaseName = newValue, ..}
+instance Property "RoleArn" GlueDataCatalogProperty where
+  type PropertyType "RoleArn" GlueDataCatalogProperty = Value Prelude.Text
+  set newValue GlueDataCatalogProperty {..}
+    = GlueDataCatalogProperty {roleArn = newValue, ..}
+instance Property "TablePrefix" GlueDataCatalogProperty where
+  type PropertyType "TablePrefix" GlueDataCatalogProperty = Value Prelude.Text
+  set newValue GlueDataCatalogProperty {..}
+    = GlueDataCatalogProperty {tablePrefix = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/GlueDataCatalogProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/GlueDataCatalogProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/GlueDataCatalogProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.GlueDataCatalogProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data GlueDataCatalogProperty :: Prelude.Type
+instance ToResourceProperties GlueDataCatalogProperty
+instance Prelude.Eq GlueDataCatalogProperty
+instance Prelude.Show GlueDataCatalogProperty
+instance JSON.ToJSON GlueDataCatalogProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/GoogleAnalyticsSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/GoogleAnalyticsSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/GoogleAnalyticsSourcePropertiesProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.GoogleAnalyticsSourcePropertiesProperty (
+        GoogleAnalyticsSourcePropertiesProperty(..),
+        mkGoogleAnalyticsSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data GoogleAnalyticsSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-googleanalyticssourceproperties.html>
+    GoogleAnalyticsSourcePropertiesProperty {haddock_workaround_ :: (),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-googleanalyticssourceproperties.html#cfn-appflow-flow-googleanalyticssourceproperties-object>
+                                             object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkGoogleAnalyticsSourcePropertiesProperty ::
+  Value Prelude.Text -> GoogleAnalyticsSourcePropertiesProperty
+mkGoogleAnalyticsSourcePropertiesProperty object
+  = GoogleAnalyticsSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties GoogleAnalyticsSourcePropertiesProperty where
+  toResourceProperties GoogleAnalyticsSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.GoogleAnalyticsSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON GoogleAnalyticsSourcePropertiesProperty where
+  toJSON GoogleAnalyticsSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" GoogleAnalyticsSourcePropertiesProperty where
+  type PropertyType "Object" GoogleAnalyticsSourcePropertiesProperty = Value Prelude.Text
+  set newValue GoogleAnalyticsSourcePropertiesProperty {..}
+    = GoogleAnalyticsSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/GoogleAnalyticsSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/GoogleAnalyticsSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/GoogleAnalyticsSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.GoogleAnalyticsSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data GoogleAnalyticsSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties GoogleAnalyticsSourcePropertiesProperty
+instance Prelude.Eq GoogleAnalyticsSourcePropertiesProperty
+instance Prelude.Show GoogleAnalyticsSourcePropertiesProperty
+instance JSON.ToJSON GoogleAnalyticsSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/IncrementalPullConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/IncrementalPullConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/IncrementalPullConfigProperty.hs
@@ -0,0 +1,39 @@
+module Stratosphere.AppFlow.Flow.IncrementalPullConfigProperty (
+        IncrementalPullConfigProperty(..), mkIncrementalPullConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data IncrementalPullConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-incrementalpullconfig.html>
+    IncrementalPullConfigProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-incrementalpullconfig.html#cfn-appflow-flow-incrementalpullconfig-datetimetypefieldname>
+                                   datetimeTypeFieldName :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkIncrementalPullConfigProperty :: IncrementalPullConfigProperty
+mkIncrementalPullConfigProperty
+  = IncrementalPullConfigProperty
+      {haddock_workaround_ = (), datetimeTypeFieldName = Prelude.Nothing}
+instance ToResourceProperties IncrementalPullConfigProperty where
+  toResourceProperties IncrementalPullConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.IncrementalPullConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "DatetimeTypeFieldName"
+                              Prelude.<$> datetimeTypeFieldName])}
+instance JSON.ToJSON IncrementalPullConfigProperty where
+  toJSON IncrementalPullConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "DatetimeTypeFieldName"
+                 Prelude.<$> datetimeTypeFieldName]))
+instance Property "DatetimeTypeFieldName" IncrementalPullConfigProperty where
+  type PropertyType "DatetimeTypeFieldName" IncrementalPullConfigProperty = Value Prelude.Text
+  set newValue IncrementalPullConfigProperty {..}
+    = IncrementalPullConfigProperty
+        {datetimeTypeFieldName = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/IncrementalPullConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/IncrementalPullConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/IncrementalPullConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.IncrementalPullConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data IncrementalPullConfigProperty :: Prelude.Type
+instance ToResourceProperties IncrementalPullConfigProperty
+instance Prelude.Eq IncrementalPullConfigProperty
+instance Prelude.Show IncrementalPullConfigProperty
+instance JSON.ToJSON IncrementalPullConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/InforNexusSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/InforNexusSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/InforNexusSourcePropertiesProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.InforNexusSourcePropertiesProperty (
+        InforNexusSourcePropertiesProperty(..),
+        mkInforNexusSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data InforNexusSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-infornexussourceproperties.html>
+    InforNexusSourcePropertiesProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-infornexussourceproperties.html#cfn-appflow-flow-infornexussourceproperties-object>
+                                        object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkInforNexusSourcePropertiesProperty ::
+  Value Prelude.Text -> InforNexusSourcePropertiesProperty
+mkInforNexusSourcePropertiesProperty object
+  = InforNexusSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties InforNexusSourcePropertiesProperty where
+  toResourceProperties InforNexusSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.InforNexusSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON InforNexusSourcePropertiesProperty where
+  toJSON InforNexusSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" InforNexusSourcePropertiesProperty where
+  type PropertyType "Object" InforNexusSourcePropertiesProperty = Value Prelude.Text
+  set newValue InforNexusSourcePropertiesProperty {..}
+    = InforNexusSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/InforNexusSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/InforNexusSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/InforNexusSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.InforNexusSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data InforNexusSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties InforNexusSourcePropertiesProperty
+instance Prelude.Eq InforNexusSourcePropertiesProperty
+instance Prelude.Show InforNexusSourcePropertiesProperty
+instance JSON.ToJSON InforNexusSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/LookoutMetricsDestinationPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/LookoutMetricsDestinationPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/LookoutMetricsDestinationPropertiesProperty.hs
@@ -0,0 +1,38 @@
+module Stratosphere.AppFlow.Flow.LookoutMetricsDestinationPropertiesProperty (
+        LookoutMetricsDestinationPropertiesProperty(..),
+        mkLookoutMetricsDestinationPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data LookoutMetricsDestinationPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-lookoutmetricsdestinationproperties.html>
+    LookoutMetricsDestinationPropertiesProperty {haddock_workaround_ :: (),
+                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-lookoutmetricsdestinationproperties.html#cfn-appflow-flow-lookoutmetricsdestinationproperties-object>
+                                                 object :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkLookoutMetricsDestinationPropertiesProperty ::
+  LookoutMetricsDestinationPropertiesProperty
+mkLookoutMetricsDestinationPropertiesProperty
+  = LookoutMetricsDestinationPropertiesProperty
+      {haddock_workaround_ = (), object = Prelude.Nothing}
+instance ToResourceProperties LookoutMetricsDestinationPropertiesProperty where
+  toResourceProperties
+    LookoutMetricsDestinationPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.LookoutMetricsDestinationProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes [(JSON..=) "Object" Prelude.<$> object])}
+instance JSON.ToJSON LookoutMetricsDestinationPropertiesProperty where
+  toJSON LookoutMetricsDestinationPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes [(JSON..=) "Object" Prelude.<$> object]))
+instance Property "Object" LookoutMetricsDestinationPropertiesProperty where
+  type PropertyType "Object" LookoutMetricsDestinationPropertiesProperty = Value Prelude.Text
+  set newValue LookoutMetricsDestinationPropertiesProperty {..}
+    = LookoutMetricsDestinationPropertiesProperty
+        {object = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/LookoutMetricsDestinationPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/LookoutMetricsDestinationPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/LookoutMetricsDestinationPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.LookoutMetricsDestinationPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data LookoutMetricsDestinationPropertiesProperty :: Prelude.Type
+instance ToResourceProperties LookoutMetricsDestinationPropertiesProperty
+instance Prelude.Eq LookoutMetricsDestinationPropertiesProperty
+instance Prelude.Show LookoutMetricsDestinationPropertiesProperty
+instance JSON.ToJSON LookoutMetricsDestinationPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/MarketoDestinationPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/MarketoDestinationPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/MarketoDestinationPropertiesProperty.hs
@@ -0,0 +1,53 @@
+module Stratosphere.AppFlow.Flow.MarketoDestinationPropertiesProperty (
+        module Exports, MarketoDestinationPropertiesProperty(..),
+        mkMarketoDestinationPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ErrorHandlingConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MarketoDestinationPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketodestinationproperties.html>
+    MarketoDestinationPropertiesProperty {haddock_workaround_ :: (),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketodestinationproperties.html#cfn-appflow-flow-marketodestinationproperties-errorhandlingconfig>
+                                          errorHandlingConfig :: (Prelude.Maybe ErrorHandlingConfigProperty),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketodestinationproperties.html#cfn-appflow-flow-marketodestinationproperties-object>
+                                          object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMarketoDestinationPropertiesProperty ::
+  Value Prelude.Text -> MarketoDestinationPropertiesProperty
+mkMarketoDestinationPropertiesProperty object
+  = MarketoDestinationPropertiesProperty
+      {haddock_workaround_ = (), object = object,
+       errorHandlingConfig = Prelude.Nothing}
+instance ToResourceProperties MarketoDestinationPropertiesProperty where
+  toResourceProperties MarketoDestinationPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.MarketoDestinationProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Object" JSON..= object]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ErrorHandlingConfig"
+                                 Prelude.<$> errorHandlingConfig]))}
+instance JSON.ToJSON MarketoDestinationPropertiesProperty where
+  toJSON MarketoDestinationPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Object" JSON..= object]
+              (Prelude.catMaybes
+                 [(JSON..=) "ErrorHandlingConfig"
+                    Prelude.<$> errorHandlingConfig])))
+instance Property "ErrorHandlingConfig" MarketoDestinationPropertiesProperty where
+  type PropertyType "ErrorHandlingConfig" MarketoDestinationPropertiesProperty = ErrorHandlingConfigProperty
+  set newValue MarketoDestinationPropertiesProperty {..}
+    = MarketoDestinationPropertiesProperty
+        {errorHandlingConfig = Prelude.pure newValue, ..}
+instance Property "Object" MarketoDestinationPropertiesProperty where
+  type PropertyType "Object" MarketoDestinationPropertiesProperty = Value Prelude.Text
+  set newValue MarketoDestinationPropertiesProperty {..}
+    = MarketoDestinationPropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/MarketoDestinationPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/MarketoDestinationPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/MarketoDestinationPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.MarketoDestinationPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MarketoDestinationPropertiesProperty :: Prelude.Type
+instance ToResourceProperties MarketoDestinationPropertiesProperty
+instance Prelude.Eq MarketoDestinationPropertiesProperty
+instance Prelude.Show MarketoDestinationPropertiesProperty
+instance JSON.ToJSON MarketoDestinationPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/MarketoSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/MarketoSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/MarketoSourcePropertiesProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.MarketoSourcePropertiesProperty (
+        MarketoSourcePropertiesProperty(..),
+        mkMarketoSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MarketoSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketosourceproperties.html>
+    MarketoSourcePropertiesProperty {haddock_workaround_ :: (),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketosourceproperties.html#cfn-appflow-flow-marketosourceproperties-object>
+                                     object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMarketoSourcePropertiesProperty ::
+  Value Prelude.Text -> MarketoSourcePropertiesProperty
+mkMarketoSourcePropertiesProperty object
+  = MarketoSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties MarketoSourcePropertiesProperty where
+  toResourceProperties MarketoSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.MarketoSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON MarketoSourcePropertiesProperty where
+  toJSON MarketoSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" MarketoSourcePropertiesProperty where
+  type PropertyType "Object" MarketoSourcePropertiesProperty = Value Prelude.Text
+  set newValue MarketoSourcePropertiesProperty {..}
+    = MarketoSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/MarketoSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/MarketoSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/MarketoSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.MarketoSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MarketoSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties MarketoSourcePropertiesProperty
+instance Prelude.Eq MarketoSourcePropertiesProperty
+instance Prelude.Show MarketoSourcePropertiesProperty
+instance JSON.ToJSON MarketoSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/MetadataCatalogConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/MetadataCatalogConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/MetadataCatalogConfigProperty.hs
@@ -0,0 +1,38 @@
+module Stratosphere.AppFlow.Flow.MetadataCatalogConfigProperty (
+        module Exports, MetadataCatalogConfigProperty(..),
+        mkMetadataCatalogConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.GlueDataCatalogProperty as Exports
+import Stratosphere.ResourceProperties
+data MetadataCatalogConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-metadatacatalogconfig.html>
+    MetadataCatalogConfigProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-metadatacatalogconfig.html#cfn-appflow-flow-metadatacatalogconfig-gluedatacatalog>
+                                   glueDataCatalog :: (Prelude.Maybe GlueDataCatalogProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMetadataCatalogConfigProperty :: MetadataCatalogConfigProperty
+mkMetadataCatalogConfigProperty
+  = MetadataCatalogConfigProperty
+      {haddock_workaround_ = (), glueDataCatalog = Prelude.Nothing}
+instance ToResourceProperties MetadataCatalogConfigProperty where
+  toResourceProperties MetadataCatalogConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.MetadataCatalogConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "GlueDataCatalog" Prelude.<$> glueDataCatalog])}
+instance JSON.ToJSON MetadataCatalogConfigProperty where
+  toJSON MetadataCatalogConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "GlueDataCatalog" Prelude.<$> glueDataCatalog]))
+instance Property "GlueDataCatalog" MetadataCatalogConfigProperty where
+  type PropertyType "GlueDataCatalog" MetadataCatalogConfigProperty = GlueDataCatalogProperty
+  set newValue MetadataCatalogConfigProperty {..}
+    = MetadataCatalogConfigProperty
+        {glueDataCatalog = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/MetadataCatalogConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/MetadataCatalogConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/MetadataCatalogConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.MetadataCatalogConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data MetadataCatalogConfigProperty :: Prelude.Type
+instance ToResourceProperties MetadataCatalogConfigProperty
+instance Prelude.Eq MetadataCatalogConfigProperty
+instance Prelude.Show MetadataCatalogConfigProperty
+instance JSON.ToJSON MetadataCatalogConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/PardotSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/PardotSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/PardotSourcePropertiesProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.PardotSourcePropertiesProperty (
+        PardotSourcePropertiesProperty(..),
+        mkPardotSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data PardotSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-pardotsourceproperties.html>
+    PardotSourcePropertiesProperty {haddock_workaround_ :: (),
+                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-pardotsourceproperties.html#cfn-appflow-flow-pardotsourceproperties-object>
+                                    object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPardotSourcePropertiesProperty ::
+  Value Prelude.Text -> PardotSourcePropertiesProperty
+mkPardotSourcePropertiesProperty object
+  = PardotSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties PardotSourcePropertiesProperty where
+  toResourceProperties PardotSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.PardotSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON PardotSourcePropertiesProperty where
+  toJSON PardotSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" PardotSourcePropertiesProperty where
+  type PropertyType "Object" PardotSourcePropertiesProperty = Value Prelude.Text
+  set newValue PardotSourcePropertiesProperty {..}
+    = PardotSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/PardotSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/PardotSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/PardotSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.PardotSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data PardotSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties PardotSourcePropertiesProperty
+instance Prelude.Eq PardotSourcePropertiesProperty
+instance Prelude.Show PardotSourcePropertiesProperty
+instance JSON.ToJSON PardotSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/PrefixConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/PrefixConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/PrefixConfigProperty.hs
@@ -0,0 +1,54 @@
+module Stratosphere.AppFlow.Flow.PrefixConfigProperty (
+        PrefixConfigProperty(..), mkPrefixConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data PrefixConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html>
+    PrefixConfigProperty {haddock_workaround_ :: (),
+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html#cfn-appflow-flow-prefixconfig-pathprefixhierarchy>
+                          pathPrefixHierarchy :: (Prelude.Maybe (ValueList Prelude.Text)),
+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html#cfn-appflow-flow-prefixconfig-prefixformat>
+                          prefixFormat :: (Prelude.Maybe (Value Prelude.Text)),
+                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html#cfn-appflow-flow-prefixconfig-prefixtype>
+                          prefixType :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkPrefixConfigProperty :: PrefixConfigProperty
+mkPrefixConfigProperty
+  = PrefixConfigProperty
+      {haddock_workaround_ = (), pathPrefixHierarchy = Prelude.Nothing,
+       prefixFormat = Prelude.Nothing, prefixType = Prelude.Nothing}
+instance ToResourceProperties PrefixConfigProperty where
+  toResourceProperties PrefixConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.PrefixConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "PathPrefixHierarchy" Prelude.<$> pathPrefixHierarchy,
+                            (JSON..=) "PrefixFormat" Prelude.<$> prefixFormat,
+                            (JSON..=) "PrefixType" Prelude.<$> prefixType])}
+instance JSON.ToJSON PrefixConfigProperty where
+  toJSON PrefixConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "PathPrefixHierarchy" Prelude.<$> pathPrefixHierarchy,
+               (JSON..=) "PrefixFormat" Prelude.<$> prefixFormat,
+               (JSON..=) "PrefixType" Prelude.<$> prefixType]))
+instance Property "PathPrefixHierarchy" PrefixConfigProperty where
+  type PropertyType "PathPrefixHierarchy" PrefixConfigProperty = ValueList Prelude.Text
+  set newValue PrefixConfigProperty {..}
+    = PrefixConfigProperty
+        {pathPrefixHierarchy = Prelude.pure newValue, ..}
+instance Property "PrefixFormat" PrefixConfigProperty where
+  type PropertyType "PrefixFormat" PrefixConfigProperty = Value Prelude.Text
+  set newValue PrefixConfigProperty {..}
+    = PrefixConfigProperty {prefixFormat = Prelude.pure newValue, ..}
+instance Property "PrefixType" PrefixConfigProperty where
+  type PropertyType "PrefixType" PrefixConfigProperty = Value Prelude.Text
+  set newValue PrefixConfigProperty {..}
+    = PrefixConfigProperty {prefixType = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/PrefixConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/PrefixConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/PrefixConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.PrefixConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data PrefixConfigProperty :: Prelude.Type
+instance ToResourceProperties PrefixConfigProperty
+instance Prelude.Eq PrefixConfigProperty
+instance Prelude.Show PrefixConfigProperty
+instance JSON.ToJSON PrefixConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/RedshiftDestinationPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/RedshiftDestinationPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/RedshiftDestinationPropertiesProperty.hs
@@ -0,0 +1,74 @@
+module Stratosphere.AppFlow.Flow.RedshiftDestinationPropertiesProperty (
+        module Exports, RedshiftDestinationPropertiesProperty(..),
+        mkRedshiftDestinationPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ErrorHandlingConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data RedshiftDestinationPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html>
+    RedshiftDestinationPropertiesProperty {haddock_workaround_ :: (),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html#cfn-appflow-flow-redshiftdestinationproperties-bucketprefix>
+                                           bucketPrefix :: (Prelude.Maybe (Value Prelude.Text)),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html#cfn-appflow-flow-redshiftdestinationproperties-errorhandlingconfig>
+                                           errorHandlingConfig :: (Prelude.Maybe ErrorHandlingConfigProperty),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html#cfn-appflow-flow-redshiftdestinationproperties-intermediatebucketname>
+                                           intermediateBucketName :: (Value Prelude.Text),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html#cfn-appflow-flow-redshiftdestinationproperties-object>
+                                           object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkRedshiftDestinationPropertiesProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> RedshiftDestinationPropertiesProperty
+mkRedshiftDestinationPropertiesProperty
+  intermediateBucketName
+  object
+  = RedshiftDestinationPropertiesProperty
+      {haddock_workaround_ = (),
+       intermediateBucketName = intermediateBucketName, object = object,
+       bucketPrefix = Prelude.Nothing,
+       errorHandlingConfig = Prelude.Nothing}
+instance ToResourceProperties RedshiftDestinationPropertiesProperty where
+  toResourceProperties RedshiftDestinationPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.RedshiftDestinationProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["IntermediateBucketName" JSON..= intermediateBucketName,
+                            "Object" JSON..= object]
+                           (Prelude.catMaybes
+                              [(JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+                               (JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig]))}
+instance JSON.ToJSON RedshiftDestinationPropertiesProperty where
+  toJSON RedshiftDestinationPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["IntermediateBucketName" JSON..= intermediateBucketName,
+               "Object" JSON..= object]
+              (Prelude.catMaybes
+                 [(JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+                  (JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig])))
+instance Property "BucketPrefix" RedshiftDestinationPropertiesProperty where
+  type PropertyType "BucketPrefix" RedshiftDestinationPropertiesProperty = Value Prelude.Text
+  set newValue RedshiftDestinationPropertiesProperty {..}
+    = RedshiftDestinationPropertiesProperty
+        {bucketPrefix = Prelude.pure newValue, ..}
+instance Property "ErrorHandlingConfig" RedshiftDestinationPropertiesProperty where
+  type PropertyType "ErrorHandlingConfig" RedshiftDestinationPropertiesProperty = ErrorHandlingConfigProperty
+  set newValue RedshiftDestinationPropertiesProperty {..}
+    = RedshiftDestinationPropertiesProperty
+        {errorHandlingConfig = Prelude.pure newValue, ..}
+instance Property "IntermediateBucketName" RedshiftDestinationPropertiesProperty where
+  type PropertyType "IntermediateBucketName" RedshiftDestinationPropertiesProperty = Value Prelude.Text
+  set newValue RedshiftDestinationPropertiesProperty {..}
+    = RedshiftDestinationPropertiesProperty
+        {intermediateBucketName = newValue, ..}
+instance Property "Object" RedshiftDestinationPropertiesProperty where
+  type PropertyType "Object" RedshiftDestinationPropertiesProperty = Value Prelude.Text
+  set newValue RedshiftDestinationPropertiesProperty {..}
+    = RedshiftDestinationPropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/RedshiftDestinationPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/RedshiftDestinationPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/RedshiftDestinationPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.RedshiftDestinationPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data RedshiftDestinationPropertiesProperty :: Prelude.Type
+instance ToResourceProperties RedshiftDestinationPropertiesProperty
+instance Prelude.Eq RedshiftDestinationPropertiesProperty
+instance Prelude.Show RedshiftDestinationPropertiesProperty
+instance JSON.ToJSON RedshiftDestinationPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/S3DestinationPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/S3DestinationPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/S3DestinationPropertiesProperty.hs
@@ -0,0 +1,63 @@
+module Stratosphere.AppFlow.Flow.S3DestinationPropertiesProperty (
+        module Exports, S3DestinationPropertiesProperty(..),
+        mkS3DestinationPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.S3OutputFormatConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data S3DestinationPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3destinationproperties.html>
+    S3DestinationPropertiesProperty {haddock_workaround_ :: (),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3destinationproperties.html#cfn-appflow-flow-s3destinationproperties-bucketname>
+                                     bucketName :: (Value Prelude.Text),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3destinationproperties.html#cfn-appflow-flow-s3destinationproperties-bucketprefix>
+                                     bucketPrefix :: (Prelude.Maybe (Value Prelude.Text)),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3destinationproperties.html#cfn-appflow-flow-s3destinationproperties-s3outputformatconfig>
+                                     s3OutputFormatConfig :: (Prelude.Maybe S3OutputFormatConfigProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3DestinationPropertiesProperty ::
+  Value Prelude.Text -> S3DestinationPropertiesProperty
+mkS3DestinationPropertiesProperty bucketName
+  = S3DestinationPropertiesProperty
+      {haddock_workaround_ = (), bucketName = bucketName,
+       bucketPrefix = Prelude.Nothing,
+       s3OutputFormatConfig = Prelude.Nothing}
+instance ToResourceProperties S3DestinationPropertiesProperty where
+  toResourceProperties S3DestinationPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.S3DestinationProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["BucketName" JSON..= bucketName]
+                           (Prelude.catMaybes
+                              [(JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+                               (JSON..=) "S3OutputFormatConfig"
+                                 Prelude.<$> s3OutputFormatConfig]))}
+instance JSON.ToJSON S3DestinationPropertiesProperty where
+  toJSON S3DestinationPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["BucketName" JSON..= bucketName]
+              (Prelude.catMaybes
+                 [(JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+                  (JSON..=) "S3OutputFormatConfig"
+                    Prelude.<$> s3OutputFormatConfig])))
+instance Property "BucketName" S3DestinationPropertiesProperty where
+  type PropertyType "BucketName" S3DestinationPropertiesProperty = Value Prelude.Text
+  set newValue S3DestinationPropertiesProperty {..}
+    = S3DestinationPropertiesProperty {bucketName = newValue, ..}
+instance Property "BucketPrefix" S3DestinationPropertiesProperty where
+  type PropertyType "BucketPrefix" S3DestinationPropertiesProperty = Value Prelude.Text
+  set newValue S3DestinationPropertiesProperty {..}
+    = S3DestinationPropertiesProperty
+        {bucketPrefix = Prelude.pure newValue, ..}
+instance Property "S3OutputFormatConfig" S3DestinationPropertiesProperty where
+  type PropertyType "S3OutputFormatConfig" S3DestinationPropertiesProperty = S3OutputFormatConfigProperty
+  set newValue S3DestinationPropertiesProperty {..}
+    = S3DestinationPropertiesProperty
+        {s3OutputFormatConfig = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/S3DestinationPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/S3DestinationPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/S3DestinationPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.S3DestinationPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3DestinationPropertiesProperty :: Prelude.Type
+instance ToResourceProperties S3DestinationPropertiesProperty
+instance Prelude.Eq S3DestinationPropertiesProperty
+instance Prelude.Show S3DestinationPropertiesProperty
+instance JSON.ToJSON S3DestinationPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/S3InputFormatConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/S3InputFormatConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/S3InputFormatConfigProperty.hs
@@ -0,0 +1,37 @@
+module Stratosphere.AppFlow.Flow.S3InputFormatConfigProperty (
+        S3InputFormatConfigProperty(..), mkS3InputFormatConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data S3InputFormatConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3inputformatconfig.html>
+    S3InputFormatConfigProperty {haddock_workaround_ :: (),
+                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3inputformatconfig.html#cfn-appflow-flow-s3inputformatconfig-s3inputfiletype>
+                                 s3InputFileType :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3InputFormatConfigProperty :: S3InputFormatConfigProperty
+mkS3InputFormatConfigProperty
+  = S3InputFormatConfigProperty
+      {haddock_workaround_ = (), s3InputFileType = Prelude.Nothing}
+instance ToResourceProperties S3InputFormatConfigProperty where
+  toResourceProperties S3InputFormatConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.S3InputFormatConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "S3InputFileType" Prelude.<$> s3InputFileType])}
+instance JSON.ToJSON S3InputFormatConfigProperty where
+  toJSON S3InputFormatConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "S3InputFileType" Prelude.<$> s3InputFileType]))
+instance Property "S3InputFileType" S3InputFormatConfigProperty where
+  type PropertyType "S3InputFileType" S3InputFormatConfigProperty = Value Prelude.Text
+  set newValue S3InputFormatConfigProperty {..}
+    = S3InputFormatConfigProperty
+        {s3InputFileType = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/S3InputFormatConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/S3InputFormatConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/S3InputFormatConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.S3InputFormatConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3InputFormatConfigProperty :: Prelude.Type
+instance ToResourceProperties S3InputFormatConfigProperty
+instance Prelude.Eq S3InputFormatConfigProperty
+instance Prelude.Show S3InputFormatConfigProperty
+instance JSON.ToJSON S3InputFormatConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/S3OutputFormatConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/S3OutputFormatConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/S3OutputFormatConfigProperty.hs
@@ -0,0 +1,71 @@
+module Stratosphere.AppFlow.Flow.S3OutputFormatConfigProperty (
+        module Exports, S3OutputFormatConfigProperty(..),
+        mkS3OutputFormatConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.AggregationConfigProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.PrefixConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data S3OutputFormatConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html>
+    S3OutputFormatConfigProperty {haddock_workaround_ :: (),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html#cfn-appflow-flow-s3outputformatconfig-aggregationconfig>
+                                  aggregationConfig :: (Prelude.Maybe AggregationConfigProperty),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html#cfn-appflow-flow-s3outputformatconfig-filetype>
+                                  fileType :: (Prelude.Maybe (Value Prelude.Text)),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html#cfn-appflow-flow-s3outputformatconfig-prefixconfig>
+                                  prefixConfig :: (Prelude.Maybe PrefixConfigProperty),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html#cfn-appflow-flow-s3outputformatconfig-preservesourcedatatyping>
+                                  preserveSourceDataTyping :: (Prelude.Maybe (Value Prelude.Bool))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3OutputFormatConfigProperty :: S3OutputFormatConfigProperty
+mkS3OutputFormatConfigProperty
+  = S3OutputFormatConfigProperty
+      {haddock_workaround_ = (), aggregationConfig = Prelude.Nothing,
+       fileType = Prelude.Nothing, prefixConfig = Prelude.Nothing,
+       preserveSourceDataTyping = Prelude.Nothing}
+instance ToResourceProperties S3OutputFormatConfigProperty where
+  toResourceProperties S3OutputFormatConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.S3OutputFormatConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "AggregationConfig" Prelude.<$> aggregationConfig,
+                            (JSON..=) "FileType" Prelude.<$> fileType,
+                            (JSON..=) "PrefixConfig" Prelude.<$> prefixConfig,
+                            (JSON..=) "PreserveSourceDataTyping"
+                              Prelude.<$> preserveSourceDataTyping])}
+instance JSON.ToJSON S3OutputFormatConfigProperty where
+  toJSON S3OutputFormatConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "AggregationConfig" Prelude.<$> aggregationConfig,
+               (JSON..=) "FileType" Prelude.<$> fileType,
+               (JSON..=) "PrefixConfig" Prelude.<$> prefixConfig,
+               (JSON..=) "PreserveSourceDataTyping"
+                 Prelude.<$> preserveSourceDataTyping]))
+instance Property "AggregationConfig" S3OutputFormatConfigProperty where
+  type PropertyType "AggregationConfig" S3OutputFormatConfigProperty = AggregationConfigProperty
+  set newValue S3OutputFormatConfigProperty {..}
+    = S3OutputFormatConfigProperty
+        {aggregationConfig = Prelude.pure newValue, ..}
+instance Property "FileType" S3OutputFormatConfigProperty where
+  type PropertyType "FileType" S3OutputFormatConfigProperty = Value Prelude.Text
+  set newValue S3OutputFormatConfigProperty {..}
+    = S3OutputFormatConfigProperty
+        {fileType = Prelude.pure newValue, ..}
+instance Property "PrefixConfig" S3OutputFormatConfigProperty where
+  type PropertyType "PrefixConfig" S3OutputFormatConfigProperty = PrefixConfigProperty
+  set newValue S3OutputFormatConfigProperty {..}
+    = S3OutputFormatConfigProperty
+        {prefixConfig = Prelude.pure newValue, ..}
+instance Property "PreserveSourceDataTyping" S3OutputFormatConfigProperty where
+  type PropertyType "PreserveSourceDataTyping" S3OutputFormatConfigProperty = Value Prelude.Bool
+  set newValue S3OutputFormatConfigProperty {..}
+    = S3OutputFormatConfigProperty
+        {preserveSourceDataTyping = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/S3OutputFormatConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/S3OutputFormatConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/S3OutputFormatConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.S3OutputFormatConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3OutputFormatConfigProperty :: Prelude.Type
+instance ToResourceProperties S3OutputFormatConfigProperty
+instance Prelude.Eq S3OutputFormatConfigProperty
+instance Prelude.Show S3OutputFormatConfigProperty
+instance JSON.ToJSON S3OutputFormatConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/S3SourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/S3SourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/S3SourcePropertiesProperty.hs
@@ -0,0 +1,62 @@
+module Stratosphere.AppFlow.Flow.S3SourcePropertiesProperty (
+        module Exports, S3SourcePropertiesProperty(..),
+        mkS3SourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.S3InputFormatConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data S3SourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html>
+    S3SourcePropertiesProperty {haddock_workaround_ :: (),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html#cfn-appflow-flow-s3sourceproperties-bucketname>
+                                bucketName :: (Value Prelude.Text),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html#cfn-appflow-flow-s3sourceproperties-bucketprefix>
+                                bucketPrefix :: (Value Prelude.Text),
+                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html#cfn-appflow-flow-s3sourceproperties-s3inputformatconfig>
+                                s3InputFormatConfig :: (Prelude.Maybe S3InputFormatConfigProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkS3SourcePropertiesProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> S3SourcePropertiesProperty
+mkS3SourcePropertiesProperty bucketName bucketPrefix
+  = S3SourcePropertiesProperty
+      {haddock_workaround_ = (), bucketName = bucketName,
+       bucketPrefix = bucketPrefix, s3InputFormatConfig = Prelude.Nothing}
+instance ToResourceProperties S3SourcePropertiesProperty where
+  toResourceProperties S3SourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.S3SourceProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["BucketName" JSON..= bucketName,
+                            "BucketPrefix" JSON..= bucketPrefix]
+                           (Prelude.catMaybes
+                              [(JSON..=) "S3InputFormatConfig"
+                                 Prelude.<$> s3InputFormatConfig]))}
+instance JSON.ToJSON S3SourcePropertiesProperty where
+  toJSON S3SourcePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["BucketName" JSON..= bucketName,
+               "BucketPrefix" JSON..= bucketPrefix]
+              (Prelude.catMaybes
+                 [(JSON..=) "S3InputFormatConfig"
+                    Prelude.<$> s3InputFormatConfig])))
+instance Property "BucketName" S3SourcePropertiesProperty where
+  type PropertyType "BucketName" S3SourcePropertiesProperty = Value Prelude.Text
+  set newValue S3SourcePropertiesProperty {..}
+    = S3SourcePropertiesProperty {bucketName = newValue, ..}
+instance Property "BucketPrefix" S3SourcePropertiesProperty where
+  type PropertyType "BucketPrefix" S3SourcePropertiesProperty = Value Prelude.Text
+  set newValue S3SourcePropertiesProperty {..}
+    = S3SourcePropertiesProperty {bucketPrefix = newValue, ..}
+instance Property "S3InputFormatConfig" S3SourcePropertiesProperty where
+  type PropertyType "S3InputFormatConfig" S3SourcePropertiesProperty = S3InputFormatConfigProperty
+  set newValue S3SourcePropertiesProperty {..}
+    = S3SourcePropertiesProperty
+        {s3InputFormatConfig = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/S3SourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/S3SourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/S3SourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.S3SourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data S3SourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties S3SourcePropertiesProperty
+instance Prelude.Eq S3SourcePropertiesProperty
+instance Prelude.Show S3SourcePropertiesProperty
+instance JSON.ToJSON S3SourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SAPODataDestinationPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/SAPODataDestinationPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SAPODataDestinationPropertiesProperty.hs
@@ -0,0 +1,84 @@
+module Stratosphere.AppFlow.Flow.SAPODataDestinationPropertiesProperty (
+        module Exports, SAPODataDestinationPropertiesProperty(..),
+        mkSAPODataDestinationPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ErrorHandlingConfigProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SuccessResponseHandlingConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SAPODataDestinationPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatadestinationproperties.html>
+    SAPODataDestinationPropertiesProperty {haddock_workaround_ :: (),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatadestinationproperties.html#cfn-appflow-flow-sapodatadestinationproperties-errorhandlingconfig>
+                                           errorHandlingConfig :: (Prelude.Maybe ErrorHandlingConfigProperty),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatadestinationproperties.html#cfn-appflow-flow-sapodatadestinationproperties-idfieldnames>
+                                           idFieldNames :: (Prelude.Maybe (ValueList Prelude.Text)),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatadestinationproperties.html#cfn-appflow-flow-sapodatadestinationproperties-objectpath>
+                                           objectPath :: (Value Prelude.Text),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatadestinationproperties.html#cfn-appflow-flow-sapodatadestinationproperties-successresponsehandlingconfig>
+                                           successResponseHandlingConfig :: (Prelude.Maybe SuccessResponseHandlingConfigProperty),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatadestinationproperties.html#cfn-appflow-flow-sapodatadestinationproperties-writeoperationtype>
+                                           writeOperationType :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSAPODataDestinationPropertiesProperty ::
+  Value Prelude.Text -> SAPODataDestinationPropertiesProperty
+mkSAPODataDestinationPropertiesProperty objectPath
+  = SAPODataDestinationPropertiesProperty
+      {haddock_workaround_ = (), objectPath = objectPath,
+       errorHandlingConfig = Prelude.Nothing,
+       idFieldNames = Prelude.Nothing,
+       successResponseHandlingConfig = Prelude.Nothing,
+       writeOperationType = Prelude.Nothing}
+instance ToResourceProperties SAPODataDestinationPropertiesProperty where
+  toResourceProperties SAPODataDestinationPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SAPODataDestinationProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ObjectPath" JSON..= objectPath]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig,
+                               (JSON..=) "IdFieldNames" Prelude.<$> idFieldNames,
+                               (JSON..=) "SuccessResponseHandlingConfig"
+                                 Prelude.<$> successResponseHandlingConfig,
+                               (JSON..=) "WriteOperationType" Prelude.<$> writeOperationType]))}
+instance JSON.ToJSON SAPODataDestinationPropertiesProperty where
+  toJSON SAPODataDestinationPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ObjectPath" JSON..= objectPath]
+              (Prelude.catMaybes
+                 [(JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig,
+                  (JSON..=) "IdFieldNames" Prelude.<$> idFieldNames,
+                  (JSON..=) "SuccessResponseHandlingConfig"
+                    Prelude.<$> successResponseHandlingConfig,
+                  (JSON..=) "WriteOperationType" Prelude.<$> writeOperationType])))
+instance Property "ErrorHandlingConfig" SAPODataDestinationPropertiesProperty where
+  type PropertyType "ErrorHandlingConfig" SAPODataDestinationPropertiesProperty = ErrorHandlingConfigProperty
+  set newValue SAPODataDestinationPropertiesProperty {..}
+    = SAPODataDestinationPropertiesProperty
+        {errorHandlingConfig = Prelude.pure newValue, ..}
+instance Property "IdFieldNames" SAPODataDestinationPropertiesProperty where
+  type PropertyType "IdFieldNames" SAPODataDestinationPropertiesProperty = ValueList Prelude.Text
+  set newValue SAPODataDestinationPropertiesProperty {..}
+    = SAPODataDestinationPropertiesProperty
+        {idFieldNames = Prelude.pure newValue, ..}
+instance Property "ObjectPath" SAPODataDestinationPropertiesProperty where
+  type PropertyType "ObjectPath" SAPODataDestinationPropertiesProperty = Value Prelude.Text
+  set newValue SAPODataDestinationPropertiesProperty {..}
+    = SAPODataDestinationPropertiesProperty {objectPath = newValue, ..}
+instance Property "SuccessResponseHandlingConfig" SAPODataDestinationPropertiesProperty where
+  type PropertyType "SuccessResponseHandlingConfig" SAPODataDestinationPropertiesProperty = SuccessResponseHandlingConfigProperty
+  set newValue SAPODataDestinationPropertiesProperty {..}
+    = SAPODataDestinationPropertiesProperty
+        {successResponseHandlingConfig = Prelude.pure newValue, ..}
+instance Property "WriteOperationType" SAPODataDestinationPropertiesProperty where
+  type PropertyType "WriteOperationType" SAPODataDestinationPropertiesProperty = Value Prelude.Text
+  set newValue SAPODataDestinationPropertiesProperty {..}
+    = SAPODataDestinationPropertiesProperty
+        {writeOperationType = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SAPODataDestinationPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SAPODataDestinationPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SAPODataDestinationPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SAPODataDestinationPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SAPODataDestinationPropertiesProperty :: Prelude.Type
+instance ToResourceProperties SAPODataDestinationPropertiesProperty
+instance Prelude.Eq SAPODataDestinationPropertiesProperty
+instance Prelude.Show SAPODataDestinationPropertiesProperty
+instance JSON.ToJSON SAPODataDestinationPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SAPODataPaginationConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/SAPODataPaginationConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SAPODataPaginationConfigProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.SAPODataPaginationConfigProperty (
+        SAPODataPaginationConfigProperty(..),
+        mkSAPODataPaginationConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SAPODataPaginationConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatapaginationconfig.html>
+    SAPODataPaginationConfigProperty {haddock_workaround_ :: (),
+                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatapaginationconfig.html#cfn-appflow-flow-sapodatapaginationconfig-maxpagesize>
+                                      maxPageSize :: (Value Prelude.Integer)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSAPODataPaginationConfigProperty ::
+  Value Prelude.Integer -> SAPODataPaginationConfigProperty
+mkSAPODataPaginationConfigProperty maxPageSize
+  = SAPODataPaginationConfigProperty
+      {haddock_workaround_ = (), maxPageSize = maxPageSize}
+instance ToResourceProperties SAPODataPaginationConfigProperty where
+  toResourceProperties SAPODataPaginationConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SAPODataPaginationConfig",
+         supportsTags = Prelude.False,
+         properties = ["maxPageSize" JSON..= maxPageSize]}
+instance JSON.ToJSON SAPODataPaginationConfigProperty where
+  toJSON SAPODataPaginationConfigProperty {..}
+    = JSON.object ["maxPageSize" JSON..= maxPageSize]
+instance Property "maxPageSize" SAPODataPaginationConfigProperty where
+  type PropertyType "maxPageSize" SAPODataPaginationConfigProperty = Value Prelude.Integer
+  set newValue SAPODataPaginationConfigProperty {..}
+    = SAPODataPaginationConfigProperty {maxPageSize = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SAPODataPaginationConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SAPODataPaginationConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SAPODataPaginationConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SAPODataPaginationConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SAPODataPaginationConfigProperty :: Prelude.Type
+instance ToResourceProperties SAPODataPaginationConfigProperty
+instance Prelude.Eq SAPODataPaginationConfigProperty
+instance Prelude.Show SAPODataPaginationConfigProperty
+instance JSON.ToJSON SAPODataPaginationConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SAPODataParallelismConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/SAPODataParallelismConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SAPODataParallelismConfigProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.SAPODataParallelismConfigProperty (
+        SAPODataParallelismConfigProperty(..),
+        mkSAPODataParallelismConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SAPODataParallelismConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodataparallelismconfig.html>
+    SAPODataParallelismConfigProperty {haddock_workaround_ :: (),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodataparallelismconfig.html#cfn-appflow-flow-sapodataparallelismconfig-maxparallelism>
+                                       maxParallelism :: (Value Prelude.Integer)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSAPODataParallelismConfigProperty ::
+  Value Prelude.Integer -> SAPODataParallelismConfigProperty
+mkSAPODataParallelismConfigProperty maxParallelism
+  = SAPODataParallelismConfigProperty
+      {haddock_workaround_ = (), maxParallelism = maxParallelism}
+instance ToResourceProperties SAPODataParallelismConfigProperty where
+  toResourceProperties SAPODataParallelismConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SAPODataParallelismConfig",
+         supportsTags = Prelude.False,
+         properties = ["maxParallelism" JSON..= maxParallelism]}
+instance JSON.ToJSON SAPODataParallelismConfigProperty where
+  toJSON SAPODataParallelismConfigProperty {..}
+    = JSON.object ["maxParallelism" JSON..= maxParallelism]
+instance Property "maxParallelism" SAPODataParallelismConfigProperty where
+  type PropertyType "maxParallelism" SAPODataParallelismConfigProperty = Value Prelude.Integer
+  set newValue SAPODataParallelismConfigProperty {..}
+    = SAPODataParallelismConfigProperty {maxParallelism = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SAPODataParallelismConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SAPODataParallelismConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SAPODataParallelismConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SAPODataParallelismConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SAPODataParallelismConfigProperty :: Prelude.Type
+instance ToResourceProperties SAPODataParallelismConfigProperty
+instance Prelude.Eq SAPODataParallelismConfigProperty
+instance Prelude.Show SAPODataParallelismConfigProperty
+instance JSON.ToJSON SAPODataParallelismConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SAPODataSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/SAPODataSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SAPODataSourcePropertiesProperty.hs
@@ -0,0 +1,62 @@
+module Stratosphere.AppFlow.Flow.SAPODataSourcePropertiesProperty (
+        module Exports, SAPODataSourcePropertiesProperty(..),
+        mkSAPODataSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SAPODataPaginationConfigProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SAPODataParallelismConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SAPODataSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatasourceproperties.html>
+    SAPODataSourcePropertiesProperty {haddock_workaround_ :: (),
+                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatasourceproperties.html#cfn-appflow-flow-sapodatasourceproperties-objectpath>
+                                      objectPath :: (Value Prelude.Text),
+                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatasourceproperties.html#cfn-appflow-flow-sapodatasourceproperties-paginationconfig>
+                                      paginationConfig :: (Prelude.Maybe SAPODataPaginationConfigProperty),
+                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatasourceproperties.html#cfn-appflow-flow-sapodatasourceproperties-parallelismconfig>
+                                      parallelismConfig :: (Prelude.Maybe SAPODataParallelismConfigProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSAPODataSourcePropertiesProperty ::
+  Value Prelude.Text -> SAPODataSourcePropertiesProperty
+mkSAPODataSourcePropertiesProperty objectPath
+  = SAPODataSourcePropertiesProperty
+      {haddock_workaround_ = (), objectPath = objectPath,
+       paginationConfig = Prelude.Nothing,
+       parallelismConfig = Prelude.Nothing}
+instance ToResourceProperties SAPODataSourcePropertiesProperty where
+  toResourceProperties SAPODataSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SAPODataSourceProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ObjectPath" JSON..= objectPath]
+                           (Prelude.catMaybes
+                              [(JSON..=) "paginationConfig" Prelude.<$> paginationConfig,
+                               (JSON..=) "parallelismConfig" Prelude.<$> parallelismConfig]))}
+instance JSON.ToJSON SAPODataSourcePropertiesProperty where
+  toJSON SAPODataSourcePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ObjectPath" JSON..= objectPath]
+              (Prelude.catMaybes
+                 [(JSON..=) "paginationConfig" Prelude.<$> paginationConfig,
+                  (JSON..=) "parallelismConfig" Prelude.<$> parallelismConfig])))
+instance Property "ObjectPath" SAPODataSourcePropertiesProperty where
+  type PropertyType "ObjectPath" SAPODataSourcePropertiesProperty = Value Prelude.Text
+  set newValue SAPODataSourcePropertiesProperty {..}
+    = SAPODataSourcePropertiesProperty {objectPath = newValue, ..}
+instance Property "paginationConfig" SAPODataSourcePropertiesProperty where
+  type PropertyType "paginationConfig" SAPODataSourcePropertiesProperty = SAPODataPaginationConfigProperty
+  set newValue SAPODataSourcePropertiesProperty {..}
+    = SAPODataSourcePropertiesProperty
+        {paginationConfig = Prelude.pure newValue, ..}
+instance Property "parallelismConfig" SAPODataSourcePropertiesProperty where
+  type PropertyType "parallelismConfig" SAPODataSourcePropertiesProperty = SAPODataParallelismConfigProperty
+  set newValue SAPODataSourcePropertiesProperty {..}
+    = SAPODataSourcePropertiesProperty
+        {parallelismConfig = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SAPODataSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SAPODataSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SAPODataSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SAPODataSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SAPODataSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties SAPODataSourcePropertiesProperty
+instance Prelude.Eq SAPODataSourcePropertiesProperty
+instance Prelude.Show SAPODataSourcePropertiesProperty
+instance JSON.ToJSON SAPODataSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SalesforceDestinationPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/SalesforceDestinationPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SalesforceDestinationPropertiesProperty.hs
@@ -0,0 +1,81 @@
+module Stratosphere.AppFlow.Flow.SalesforceDestinationPropertiesProperty (
+        module Exports, SalesforceDestinationPropertiesProperty(..),
+        mkSalesforceDestinationPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ErrorHandlingConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SalesforceDestinationPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html>
+    SalesforceDestinationPropertiesProperty {haddock_workaround_ :: (),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-datatransferapi>
+                                             dataTransferApi :: (Prelude.Maybe (Value Prelude.Text)),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-errorhandlingconfig>
+                                             errorHandlingConfig :: (Prelude.Maybe ErrorHandlingConfigProperty),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-idfieldnames>
+                                             idFieldNames :: (Prelude.Maybe (ValueList Prelude.Text)),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-object>
+                                             object :: (Value Prelude.Text),
+                                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-writeoperationtype>
+                                             writeOperationType :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSalesforceDestinationPropertiesProperty ::
+  Value Prelude.Text -> SalesforceDestinationPropertiesProperty
+mkSalesforceDestinationPropertiesProperty object
+  = SalesforceDestinationPropertiesProperty
+      {haddock_workaround_ = (), object = object,
+       dataTransferApi = Prelude.Nothing,
+       errorHandlingConfig = Prelude.Nothing,
+       idFieldNames = Prelude.Nothing,
+       writeOperationType = Prelude.Nothing}
+instance ToResourceProperties SalesforceDestinationPropertiesProperty where
+  toResourceProperties SalesforceDestinationPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SalesforceDestinationProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Object" JSON..= object]
+                           (Prelude.catMaybes
+                              [(JSON..=) "DataTransferApi" Prelude.<$> dataTransferApi,
+                               (JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig,
+                               (JSON..=) "IdFieldNames" Prelude.<$> idFieldNames,
+                               (JSON..=) "WriteOperationType" Prelude.<$> writeOperationType]))}
+instance JSON.ToJSON SalesforceDestinationPropertiesProperty where
+  toJSON SalesforceDestinationPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Object" JSON..= object]
+              (Prelude.catMaybes
+                 [(JSON..=) "DataTransferApi" Prelude.<$> dataTransferApi,
+                  (JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig,
+                  (JSON..=) "IdFieldNames" Prelude.<$> idFieldNames,
+                  (JSON..=) "WriteOperationType" Prelude.<$> writeOperationType])))
+instance Property "DataTransferApi" SalesforceDestinationPropertiesProperty where
+  type PropertyType "DataTransferApi" SalesforceDestinationPropertiesProperty = Value Prelude.Text
+  set newValue SalesforceDestinationPropertiesProperty {..}
+    = SalesforceDestinationPropertiesProperty
+        {dataTransferApi = Prelude.pure newValue, ..}
+instance Property "ErrorHandlingConfig" SalesforceDestinationPropertiesProperty where
+  type PropertyType "ErrorHandlingConfig" SalesforceDestinationPropertiesProperty = ErrorHandlingConfigProperty
+  set newValue SalesforceDestinationPropertiesProperty {..}
+    = SalesforceDestinationPropertiesProperty
+        {errorHandlingConfig = Prelude.pure newValue, ..}
+instance Property "IdFieldNames" SalesforceDestinationPropertiesProperty where
+  type PropertyType "IdFieldNames" SalesforceDestinationPropertiesProperty = ValueList Prelude.Text
+  set newValue SalesforceDestinationPropertiesProperty {..}
+    = SalesforceDestinationPropertiesProperty
+        {idFieldNames = Prelude.pure newValue, ..}
+instance Property "Object" SalesforceDestinationPropertiesProperty where
+  type PropertyType "Object" SalesforceDestinationPropertiesProperty = Value Prelude.Text
+  set newValue SalesforceDestinationPropertiesProperty {..}
+    = SalesforceDestinationPropertiesProperty {object = newValue, ..}
+instance Property "WriteOperationType" SalesforceDestinationPropertiesProperty where
+  type PropertyType "WriteOperationType" SalesforceDestinationPropertiesProperty = Value Prelude.Text
+  set newValue SalesforceDestinationPropertiesProperty {..}
+    = SalesforceDestinationPropertiesProperty
+        {writeOperationType = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SalesforceDestinationPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SalesforceDestinationPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SalesforceDestinationPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SalesforceDestinationPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SalesforceDestinationPropertiesProperty :: Prelude.Type
+instance ToResourceProperties SalesforceDestinationPropertiesProperty
+instance Prelude.Eq SalesforceDestinationPropertiesProperty
+instance Prelude.Show SalesforceDestinationPropertiesProperty
+instance JSON.ToJSON SalesforceDestinationPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SalesforceSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/SalesforceSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SalesforceSourcePropertiesProperty.hs
@@ -0,0 +1,74 @@
+module Stratosphere.AppFlow.Flow.SalesforceSourcePropertiesProperty (
+        SalesforceSourcePropertiesProperty(..),
+        mkSalesforceSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SalesforceSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html>
+    SalesforceSourcePropertiesProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html#cfn-appflow-flow-salesforcesourceproperties-datatransferapi>
+                                        dataTransferApi :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html#cfn-appflow-flow-salesforcesourceproperties-enabledynamicfieldupdate>
+                                        enableDynamicFieldUpdate :: (Prelude.Maybe (Value Prelude.Bool)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html#cfn-appflow-flow-salesforcesourceproperties-includedeletedrecords>
+                                        includeDeletedRecords :: (Prelude.Maybe (Value Prelude.Bool)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html#cfn-appflow-flow-salesforcesourceproperties-object>
+                                        object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSalesforceSourcePropertiesProperty ::
+  Value Prelude.Text -> SalesforceSourcePropertiesProperty
+mkSalesforceSourcePropertiesProperty object
+  = SalesforceSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object,
+       dataTransferApi = Prelude.Nothing,
+       enableDynamicFieldUpdate = Prelude.Nothing,
+       includeDeletedRecords = Prelude.Nothing}
+instance ToResourceProperties SalesforceSourcePropertiesProperty where
+  toResourceProperties SalesforceSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SalesforceSourceProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Object" JSON..= object]
+                           (Prelude.catMaybes
+                              [(JSON..=) "DataTransferApi" Prelude.<$> dataTransferApi,
+                               (JSON..=) "EnableDynamicFieldUpdate"
+                                 Prelude.<$> enableDynamicFieldUpdate,
+                               (JSON..=) "IncludeDeletedRecords"
+                                 Prelude.<$> includeDeletedRecords]))}
+instance JSON.ToJSON SalesforceSourcePropertiesProperty where
+  toJSON SalesforceSourcePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Object" JSON..= object]
+              (Prelude.catMaybes
+                 [(JSON..=) "DataTransferApi" Prelude.<$> dataTransferApi,
+                  (JSON..=) "EnableDynamicFieldUpdate"
+                    Prelude.<$> enableDynamicFieldUpdate,
+                  (JSON..=) "IncludeDeletedRecords"
+                    Prelude.<$> includeDeletedRecords])))
+instance Property "DataTransferApi" SalesforceSourcePropertiesProperty where
+  type PropertyType "DataTransferApi" SalesforceSourcePropertiesProperty = Value Prelude.Text
+  set newValue SalesforceSourcePropertiesProperty {..}
+    = SalesforceSourcePropertiesProperty
+        {dataTransferApi = Prelude.pure newValue, ..}
+instance Property "EnableDynamicFieldUpdate" SalesforceSourcePropertiesProperty where
+  type PropertyType "EnableDynamicFieldUpdate" SalesforceSourcePropertiesProperty = Value Prelude.Bool
+  set newValue SalesforceSourcePropertiesProperty {..}
+    = SalesforceSourcePropertiesProperty
+        {enableDynamicFieldUpdate = Prelude.pure newValue, ..}
+instance Property "IncludeDeletedRecords" SalesforceSourcePropertiesProperty where
+  type PropertyType "IncludeDeletedRecords" SalesforceSourcePropertiesProperty = Value Prelude.Bool
+  set newValue SalesforceSourcePropertiesProperty {..}
+    = SalesforceSourcePropertiesProperty
+        {includeDeletedRecords = Prelude.pure newValue, ..}
+instance Property "Object" SalesforceSourcePropertiesProperty where
+  type PropertyType "Object" SalesforceSourcePropertiesProperty = Value Prelude.Text
+  set newValue SalesforceSourcePropertiesProperty {..}
+    = SalesforceSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SalesforceSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SalesforceSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SalesforceSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SalesforceSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SalesforceSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties SalesforceSourcePropertiesProperty
+instance Prelude.Eq SalesforceSourcePropertiesProperty
+instance Prelude.Show SalesforceSourcePropertiesProperty
+instance JSON.ToJSON SalesforceSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/ScheduledTriggerPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/ScheduledTriggerPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ScheduledTriggerPropertiesProperty.hs
@@ -0,0 +1,112 @@
+module Stratosphere.AppFlow.Flow.ScheduledTriggerPropertiesProperty (
+        ScheduledTriggerPropertiesProperty(..),
+        mkScheduledTriggerPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ScheduledTriggerPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html>
+    ScheduledTriggerPropertiesProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-datapullmode>
+                                        dataPullMode :: (Prelude.Maybe (Value Prelude.Text)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-firstexecutionfrom>
+                                        firstExecutionFrom :: (Prelude.Maybe (Value Prelude.Double)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-flowerrordeactivationthreshold>
+                                        flowErrorDeactivationThreshold :: (Prelude.Maybe (Value Prelude.Integer)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-scheduleendtime>
+                                        scheduleEndTime :: (Prelude.Maybe (Value Prelude.Double)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-scheduleexpression>
+                                        scheduleExpression :: (Value Prelude.Text),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-scheduleoffset>
+                                        scheduleOffset :: (Prelude.Maybe (Value Prelude.Double)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-schedulestarttime>
+                                        scheduleStartTime :: (Prelude.Maybe (Value Prelude.Double)),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-timezone>
+                                        timeZone :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkScheduledTriggerPropertiesProperty ::
+  Value Prelude.Text -> ScheduledTriggerPropertiesProperty
+mkScheduledTriggerPropertiesProperty scheduleExpression
+  = ScheduledTriggerPropertiesProperty
+      {haddock_workaround_ = (), scheduleExpression = scheduleExpression,
+       dataPullMode = Prelude.Nothing,
+       firstExecutionFrom = Prelude.Nothing,
+       flowErrorDeactivationThreshold = Prelude.Nothing,
+       scheduleEndTime = Prelude.Nothing,
+       scheduleOffset = Prelude.Nothing,
+       scheduleStartTime = Prelude.Nothing, timeZone = Prelude.Nothing}
+instance ToResourceProperties ScheduledTriggerPropertiesProperty where
+  toResourceProperties ScheduledTriggerPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.ScheduledTriggerProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ScheduleExpression" JSON..= scheduleExpression]
+                           (Prelude.catMaybes
+                              [(JSON..=) "DataPullMode" Prelude.<$> dataPullMode,
+                               (JSON..=) "FirstExecutionFrom" Prelude.<$> firstExecutionFrom,
+                               (JSON..=) "FlowErrorDeactivationThreshold"
+                                 Prelude.<$> flowErrorDeactivationThreshold,
+                               (JSON..=) "ScheduleEndTime" Prelude.<$> scheduleEndTime,
+                               (JSON..=) "ScheduleOffset" Prelude.<$> scheduleOffset,
+                               (JSON..=) "ScheduleStartTime" Prelude.<$> scheduleStartTime,
+                               (JSON..=) "TimeZone" Prelude.<$> timeZone]))}
+instance JSON.ToJSON ScheduledTriggerPropertiesProperty where
+  toJSON ScheduledTriggerPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ScheduleExpression" JSON..= scheduleExpression]
+              (Prelude.catMaybes
+                 [(JSON..=) "DataPullMode" Prelude.<$> dataPullMode,
+                  (JSON..=) "FirstExecutionFrom" Prelude.<$> firstExecutionFrom,
+                  (JSON..=) "FlowErrorDeactivationThreshold"
+                    Prelude.<$> flowErrorDeactivationThreshold,
+                  (JSON..=) "ScheduleEndTime" Prelude.<$> scheduleEndTime,
+                  (JSON..=) "ScheduleOffset" Prelude.<$> scheduleOffset,
+                  (JSON..=) "ScheduleStartTime" Prelude.<$> scheduleStartTime,
+                  (JSON..=) "TimeZone" Prelude.<$> timeZone])))
+instance Property "DataPullMode" ScheduledTriggerPropertiesProperty where
+  type PropertyType "DataPullMode" ScheduledTriggerPropertiesProperty = Value Prelude.Text
+  set newValue ScheduledTriggerPropertiesProperty {..}
+    = ScheduledTriggerPropertiesProperty
+        {dataPullMode = Prelude.pure newValue, ..}
+instance Property "FirstExecutionFrom" ScheduledTriggerPropertiesProperty where
+  type PropertyType "FirstExecutionFrom" ScheduledTriggerPropertiesProperty = Value Prelude.Double
+  set newValue ScheduledTriggerPropertiesProperty {..}
+    = ScheduledTriggerPropertiesProperty
+        {firstExecutionFrom = Prelude.pure newValue, ..}
+instance Property "FlowErrorDeactivationThreshold" ScheduledTriggerPropertiesProperty where
+  type PropertyType "FlowErrorDeactivationThreshold" ScheduledTriggerPropertiesProperty = Value Prelude.Integer
+  set newValue ScheduledTriggerPropertiesProperty {..}
+    = ScheduledTriggerPropertiesProperty
+        {flowErrorDeactivationThreshold = Prelude.pure newValue, ..}
+instance Property "ScheduleEndTime" ScheduledTriggerPropertiesProperty where
+  type PropertyType "ScheduleEndTime" ScheduledTriggerPropertiesProperty = Value Prelude.Double
+  set newValue ScheduledTriggerPropertiesProperty {..}
+    = ScheduledTriggerPropertiesProperty
+        {scheduleEndTime = Prelude.pure newValue, ..}
+instance Property "ScheduleExpression" ScheduledTriggerPropertiesProperty where
+  type PropertyType "ScheduleExpression" ScheduledTriggerPropertiesProperty = Value Prelude.Text
+  set newValue ScheduledTriggerPropertiesProperty {..}
+    = ScheduledTriggerPropertiesProperty
+        {scheduleExpression = newValue, ..}
+instance Property "ScheduleOffset" ScheduledTriggerPropertiesProperty where
+  type PropertyType "ScheduleOffset" ScheduledTriggerPropertiesProperty = Value Prelude.Double
+  set newValue ScheduledTriggerPropertiesProperty {..}
+    = ScheduledTriggerPropertiesProperty
+        {scheduleOffset = Prelude.pure newValue, ..}
+instance Property "ScheduleStartTime" ScheduledTriggerPropertiesProperty where
+  type PropertyType "ScheduleStartTime" ScheduledTriggerPropertiesProperty = Value Prelude.Double
+  set newValue ScheduledTriggerPropertiesProperty {..}
+    = ScheduledTriggerPropertiesProperty
+        {scheduleStartTime = Prelude.pure newValue, ..}
+instance Property "TimeZone" ScheduledTriggerPropertiesProperty where
+  type PropertyType "TimeZone" ScheduledTriggerPropertiesProperty = Value Prelude.Text
+  set newValue ScheduledTriggerPropertiesProperty {..}
+    = ScheduledTriggerPropertiesProperty
+        {timeZone = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/ScheduledTriggerPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/ScheduledTriggerPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ScheduledTriggerPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.ScheduledTriggerPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ScheduledTriggerPropertiesProperty :: Prelude.Type
+instance ToResourceProperties ScheduledTriggerPropertiesProperty
+instance Prelude.Eq ScheduledTriggerPropertiesProperty
+instance Prelude.Show ScheduledTriggerPropertiesProperty
+instance JSON.ToJSON ScheduledTriggerPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/ServiceNowSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/ServiceNowSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ServiceNowSourcePropertiesProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.ServiceNowSourcePropertiesProperty (
+        ServiceNowSourcePropertiesProperty(..),
+        mkServiceNowSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ServiceNowSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-servicenowsourceproperties.html>
+    ServiceNowSourcePropertiesProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-servicenowsourceproperties.html#cfn-appflow-flow-servicenowsourceproperties-object>
+                                        object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkServiceNowSourcePropertiesProperty ::
+  Value Prelude.Text -> ServiceNowSourcePropertiesProperty
+mkServiceNowSourcePropertiesProperty object
+  = ServiceNowSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties ServiceNowSourcePropertiesProperty where
+  toResourceProperties ServiceNowSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.ServiceNowSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON ServiceNowSourcePropertiesProperty where
+  toJSON ServiceNowSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" ServiceNowSourcePropertiesProperty where
+  type PropertyType "Object" ServiceNowSourcePropertiesProperty = Value Prelude.Text
+  set newValue ServiceNowSourcePropertiesProperty {..}
+    = ServiceNowSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/ServiceNowSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/ServiceNowSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ServiceNowSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.ServiceNowSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ServiceNowSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties ServiceNowSourcePropertiesProperty
+instance Prelude.Eq ServiceNowSourcePropertiesProperty
+instance Prelude.Show ServiceNowSourcePropertiesProperty
+instance JSON.ToJSON ServiceNowSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SingularSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/SingularSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SingularSourcePropertiesProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.SingularSourcePropertiesProperty (
+        SingularSourcePropertiesProperty(..),
+        mkSingularSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SingularSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-singularsourceproperties.html>
+    SingularSourcePropertiesProperty {haddock_workaround_ :: (),
+                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-singularsourceproperties.html#cfn-appflow-flow-singularsourceproperties-object>
+                                      object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSingularSourcePropertiesProperty ::
+  Value Prelude.Text -> SingularSourcePropertiesProperty
+mkSingularSourcePropertiesProperty object
+  = SingularSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties SingularSourcePropertiesProperty where
+  toResourceProperties SingularSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SingularSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON SingularSourcePropertiesProperty where
+  toJSON SingularSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" SingularSourcePropertiesProperty where
+  type PropertyType "Object" SingularSourcePropertiesProperty = Value Prelude.Text
+  set newValue SingularSourcePropertiesProperty {..}
+    = SingularSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SingularSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SingularSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SingularSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SingularSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SingularSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties SingularSourcePropertiesProperty
+instance Prelude.Eq SingularSourcePropertiesProperty
+instance Prelude.Show SingularSourcePropertiesProperty
+instance JSON.ToJSON SingularSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SlackSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/SlackSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SlackSourcePropertiesProperty.hs
@@ -0,0 +1,32 @@
+module Stratosphere.AppFlow.Flow.SlackSourcePropertiesProperty (
+        SlackSourcePropertiesProperty(..), mkSlackSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SlackSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-slacksourceproperties.html>
+    SlackSourcePropertiesProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-slacksourceproperties.html#cfn-appflow-flow-slacksourceproperties-object>
+                                   object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSlackSourcePropertiesProperty ::
+  Value Prelude.Text -> SlackSourcePropertiesProperty
+mkSlackSourcePropertiesProperty object
+  = SlackSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties SlackSourcePropertiesProperty where
+  toResourceProperties SlackSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SlackSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON SlackSourcePropertiesProperty where
+  toJSON SlackSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" SlackSourcePropertiesProperty where
+  type PropertyType "Object" SlackSourcePropertiesProperty = Value Prelude.Text
+  set newValue SlackSourcePropertiesProperty {..}
+    = SlackSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SlackSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SlackSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SlackSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SlackSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SlackSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties SlackSourcePropertiesProperty
+instance Prelude.Eq SlackSourcePropertiesProperty
+instance Prelude.Show SlackSourcePropertiesProperty
+instance JSON.ToJSON SlackSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SnowflakeDestinationPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/SnowflakeDestinationPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SnowflakeDestinationPropertiesProperty.hs
@@ -0,0 +1,74 @@
+module Stratosphere.AppFlow.Flow.SnowflakeDestinationPropertiesProperty (
+        module Exports, SnowflakeDestinationPropertiesProperty(..),
+        mkSnowflakeDestinationPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ErrorHandlingConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SnowflakeDestinationPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html>
+    SnowflakeDestinationPropertiesProperty {haddock_workaround_ :: (),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html#cfn-appflow-flow-snowflakedestinationproperties-bucketprefix>
+                                            bucketPrefix :: (Prelude.Maybe (Value Prelude.Text)),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html#cfn-appflow-flow-snowflakedestinationproperties-errorhandlingconfig>
+                                            errorHandlingConfig :: (Prelude.Maybe ErrorHandlingConfigProperty),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html#cfn-appflow-flow-snowflakedestinationproperties-intermediatebucketname>
+                                            intermediateBucketName :: (Value Prelude.Text),
+                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html#cfn-appflow-flow-snowflakedestinationproperties-object>
+                                            object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSnowflakeDestinationPropertiesProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> SnowflakeDestinationPropertiesProperty
+mkSnowflakeDestinationPropertiesProperty
+  intermediateBucketName
+  object
+  = SnowflakeDestinationPropertiesProperty
+      {haddock_workaround_ = (),
+       intermediateBucketName = intermediateBucketName, object = object,
+       bucketPrefix = Prelude.Nothing,
+       errorHandlingConfig = Prelude.Nothing}
+instance ToResourceProperties SnowflakeDestinationPropertiesProperty where
+  toResourceProperties SnowflakeDestinationPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SnowflakeDestinationProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["IntermediateBucketName" JSON..= intermediateBucketName,
+                            "Object" JSON..= object]
+                           (Prelude.catMaybes
+                              [(JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+                               (JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig]))}
+instance JSON.ToJSON SnowflakeDestinationPropertiesProperty where
+  toJSON SnowflakeDestinationPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["IntermediateBucketName" JSON..= intermediateBucketName,
+               "Object" JSON..= object]
+              (Prelude.catMaybes
+                 [(JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix,
+                  (JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig])))
+instance Property "BucketPrefix" SnowflakeDestinationPropertiesProperty where
+  type PropertyType "BucketPrefix" SnowflakeDestinationPropertiesProperty = Value Prelude.Text
+  set newValue SnowflakeDestinationPropertiesProperty {..}
+    = SnowflakeDestinationPropertiesProperty
+        {bucketPrefix = Prelude.pure newValue, ..}
+instance Property "ErrorHandlingConfig" SnowflakeDestinationPropertiesProperty where
+  type PropertyType "ErrorHandlingConfig" SnowflakeDestinationPropertiesProperty = ErrorHandlingConfigProperty
+  set newValue SnowflakeDestinationPropertiesProperty {..}
+    = SnowflakeDestinationPropertiesProperty
+        {errorHandlingConfig = Prelude.pure newValue, ..}
+instance Property "IntermediateBucketName" SnowflakeDestinationPropertiesProperty where
+  type PropertyType "IntermediateBucketName" SnowflakeDestinationPropertiesProperty = Value Prelude.Text
+  set newValue SnowflakeDestinationPropertiesProperty {..}
+    = SnowflakeDestinationPropertiesProperty
+        {intermediateBucketName = newValue, ..}
+instance Property "Object" SnowflakeDestinationPropertiesProperty where
+  type PropertyType "Object" SnowflakeDestinationPropertiesProperty = Value Prelude.Text
+  set newValue SnowflakeDestinationPropertiesProperty {..}
+    = SnowflakeDestinationPropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SnowflakeDestinationPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SnowflakeDestinationPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SnowflakeDestinationPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SnowflakeDestinationPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SnowflakeDestinationPropertiesProperty :: Prelude.Type
+instance ToResourceProperties SnowflakeDestinationPropertiesProperty
+instance Prelude.Eq SnowflakeDestinationPropertiesProperty
+instance Prelude.Show SnowflakeDestinationPropertiesProperty
+instance JSON.ToJSON SnowflakeDestinationPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SourceConnectorPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/SourceConnectorPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SourceConnectorPropertiesProperty.hs
@@ -0,0 +1,207 @@
+module Stratosphere.AppFlow.Flow.SourceConnectorPropertiesProperty (
+        module Exports, SourceConnectorPropertiesProperty(..),
+        mkSourceConnectorPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.AmplitudeSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.CustomConnectorSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.DatadogSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.DynatraceSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.GoogleAnalyticsSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.InforNexusSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.MarketoSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.PardotSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.S3SourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SAPODataSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SalesforceSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ServiceNowSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SingularSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SlackSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.TrendmicroSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.VeevaSourcePropertiesProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ZendeskSourcePropertiesProperty as Exports
+import Stratosphere.ResourceProperties
+data SourceConnectorPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html>
+    SourceConnectorPropertiesProperty {haddock_workaround_ :: (),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-amplitude>
+                                       amplitude :: (Prelude.Maybe AmplitudeSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-customconnector>
+                                       customConnector :: (Prelude.Maybe CustomConnectorSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-datadog>
+                                       datadog :: (Prelude.Maybe DatadogSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-dynatrace>
+                                       dynatrace :: (Prelude.Maybe DynatraceSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-googleanalytics>
+                                       googleAnalytics :: (Prelude.Maybe GoogleAnalyticsSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-infornexus>
+                                       inforNexus :: (Prelude.Maybe InforNexusSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-marketo>
+                                       marketo :: (Prelude.Maybe MarketoSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-pardot>
+                                       pardot :: (Prelude.Maybe PardotSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-s3>
+                                       s3 :: (Prelude.Maybe S3SourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-sapodata>
+                                       sAPOData :: (Prelude.Maybe SAPODataSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-salesforce>
+                                       salesforce :: (Prelude.Maybe SalesforceSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-servicenow>
+                                       serviceNow :: (Prelude.Maybe ServiceNowSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-singular>
+                                       singular :: (Prelude.Maybe SingularSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-slack>
+                                       slack :: (Prelude.Maybe SlackSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-trendmicro>
+                                       trendmicro :: (Prelude.Maybe TrendmicroSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-veeva>
+                                       veeva :: (Prelude.Maybe VeevaSourcePropertiesProperty),
+                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-zendesk>
+                                       zendesk :: (Prelude.Maybe ZendeskSourcePropertiesProperty)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSourceConnectorPropertiesProperty ::
+  SourceConnectorPropertiesProperty
+mkSourceConnectorPropertiesProperty
+  = SourceConnectorPropertiesProperty
+      {haddock_workaround_ = (), amplitude = Prelude.Nothing,
+       customConnector = Prelude.Nothing, datadog = Prelude.Nothing,
+       dynatrace = Prelude.Nothing, googleAnalytics = Prelude.Nothing,
+       inforNexus = Prelude.Nothing, marketo = Prelude.Nothing,
+       pardot = Prelude.Nothing, s3 = Prelude.Nothing,
+       sAPOData = Prelude.Nothing, salesforce = Prelude.Nothing,
+       serviceNow = Prelude.Nothing, singular = Prelude.Nothing,
+       slack = Prelude.Nothing, trendmicro = Prelude.Nothing,
+       veeva = Prelude.Nothing, zendesk = Prelude.Nothing}
+instance ToResourceProperties SourceConnectorPropertiesProperty where
+  toResourceProperties SourceConnectorPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SourceConnectorProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "Amplitude" Prelude.<$> amplitude,
+                            (JSON..=) "CustomConnector" Prelude.<$> customConnector,
+                            (JSON..=) "Datadog" Prelude.<$> datadog,
+                            (JSON..=) "Dynatrace" Prelude.<$> dynatrace,
+                            (JSON..=) "GoogleAnalytics" Prelude.<$> googleAnalytics,
+                            (JSON..=) "InforNexus" Prelude.<$> inforNexus,
+                            (JSON..=) "Marketo" Prelude.<$> marketo,
+                            (JSON..=) "Pardot" Prelude.<$> pardot,
+                            (JSON..=) "S3" Prelude.<$> s3,
+                            (JSON..=) "SAPOData" Prelude.<$> sAPOData,
+                            (JSON..=) "Salesforce" Prelude.<$> salesforce,
+                            (JSON..=) "ServiceNow" Prelude.<$> serviceNow,
+                            (JSON..=) "Singular" Prelude.<$> singular,
+                            (JSON..=) "Slack" Prelude.<$> slack,
+                            (JSON..=) "Trendmicro" Prelude.<$> trendmicro,
+                            (JSON..=) "Veeva" Prelude.<$> veeva,
+                            (JSON..=) "Zendesk" Prelude.<$> zendesk])}
+instance JSON.ToJSON SourceConnectorPropertiesProperty where
+  toJSON SourceConnectorPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "Amplitude" Prelude.<$> amplitude,
+               (JSON..=) "CustomConnector" Prelude.<$> customConnector,
+               (JSON..=) "Datadog" Prelude.<$> datadog,
+               (JSON..=) "Dynatrace" Prelude.<$> dynatrace,
+               (JSON..=) "GoogleAnalytics" Prelude.<$> googleAnalytics,
+               (JSON..=) "InforNexus" Prelude.<$> inforNexus,
+               (JSON..=) "Marketo" Prelude.<$> marketo,
+               (JSON..=) "Pardot" Prelude.<$> pardot,
+               (JSON..=) "S3" Prelude.<$> s3,
+               (JSON..=) "SAPOData" Prelude.<$> sAPOData,
+               (JSON..=) "Salesforce" Prelude.<$> salesforce,
+               (JSON..=) "ServiceNow" Prelude.<$> serviceNow,
+               (JSON..=) "Singular" Prelude.<$> singular,
+               (JSON..=) "Slack" Prelude.<$> slack,
+               (JSON..=) "Trendmicro" Prelude.<$> trendmicro,
+               (JSON..=) "Veeva" Prelude.<$> veeva,
+               (JSON..=) "Zendesk" Prelude.<$> zendesk]))
+instance Property "Amplitude" SourceConnectorPropertiesProperty where
+  type PropertyType "Amplitude" SourceConnectorPropertiesProperty = AmplitudeSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {amplitude = Prelude.pure newValue, ..}
+instance Property "CustomConnector" SourceConnectorPropertiesProperty where
+  type PropertyType "CustomConnector" SourceConnectorPropertiesProperty = CustomConnectorSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {customConnector = Prelude.pure newValue, ..}
+instance Property "Datadog" SourceConnectorPropertiesProperty where
+  type PropertyType "Datadog" SourceConnectorPropertiesProperty = DatadogSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {datadog = Prelude.pure newValue, ..}
+instance Property "Dynatrace" SourceConnectorPropertiesProperty where
+  type PropertyType "Dynatrace" SourceConnectorPropertiesProperty = DynatraceSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {dynatrace = Prelude.pure newValue, ..}
+instance Property "GoogleAnalytics" SourceConnectorPropertiesProperty where
+  type PropertyType "GoogleAnalytics" SourceConnectorPropertiesProperty = GoogleAnalyticsSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {googleAnalytics = Prelude.pure newValue, ..}
+instance Property "InforNexus" SourceConnectorPropertiesProperty where
+  type PropertyType "InforNexus" SourceConnectorPropertiesProperty = InforNexusSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {inforNexus = Prelude.pure newValue, ..}
+instance Property "Marketo" SourceConnectorPropertiesProperty where
+  type PropertyType "Marketo" SourceConnectorPropertiesProperty = MarketoSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {marketo = Prelude.pure newValue, ..}
+instance Property "Pardot" SourceConnectorPropertiesProperty where
+  type PropertyType "Pardot" SourceConnectorPropertiesProperty = PardotSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {pardot = Prelude.pure newValue, ..}
+instance Property "S3" SourceConnectorPropertiesProperty where
+  type PropertyType "S3" SourceConnectorPropertiesProperty = S3SourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {s3 = Prelude.pure newValue, ..}
+instance Property "SAPOData" SourceConnectorPropertiesProperty where
+  type PropertyType "SAPOData" SourceConnectorPropertiesProperty = SAPODataSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {sAPOData = Prelude.pure newValue, ..}
+instance Property "Salesforce" SourceConnectorPropertiesProperty where
+  type PropertyType "Salesforce" SourceConnectorPropertiesProperty = SalesforceSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {salesforce = Prelude.pure newValue, ..}
+instance Property "ServiceNow" SourceConnectorPropertiesProperty where
+  type PropertyType "ServiceNow" SourceConnectorPropertiesProperty = ServiceNowSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {serviceNow = Prelude.pure newValue, ..}
+instance Property "Singular" SourceConnectorPropertiesProperty where
+  type PropertyType "Singular" SourceConnectorPropertiesProperty = SingularSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {singular = Prelude.pure newValue, ..}
+instance Property "Slack" SourceConnectorPropertiesProperty where
+  type PropertyType "Slack" SourceConnectorPropertiesProperty = SlackSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {slack = Prelude.pure newValue, ..}
+instance Property "Trendmicro" SourceConnectorPropertiesProperty where
+  type PropertyType "Trendmicro" SourceConnectorPropertiesProperty = TrendmicroSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {trendmicro = Prelude.pure newValue, ..}
+instance Property "Veeva" SourceConnectorPropertiesProperty where
+  type PropertyType "Veeva" SourceConnectorPropertiesProperty = VeevaSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {veeva = Prelude.pure newValue, ..}
+instance Property "Zendesk" SourceConnectorPropertiesProperty where
+  type PropertyType "Zendesk" SourceConnectorPropertiesProperty = ZendeskSourcePropertiesProperty
+  set newValue SourceConnectorPropertiesProperty {..}
+    = SourceConnectorPropertiesProperty
+        {zendesk = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SourceConnectorPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SourceConnectorPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SourceConnectorPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SourceConnectorPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SourceConnectorPropertiesProperty :: Prelude.Type
+instance ToResourceProperties SourceConnectorPropertiesProperty
+instance Prelude.Eq SourceConnectorPropertiesProperty
+instance Prelude.Show SourceConnectorPropertiesProperty
+instance JSON.ToJSON SourceConnectorPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SourceFlowConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/SourceFlowConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SourceFlowConfigProperty.hs
@@ -0,0 +1,84 @@
+module Stratosphere.AppFlow.Flow.SourceFlowConfigProperty (
+        module Exports, SourceFlowConfigProperty(..),
+        mkSourceFlowConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.IncrementalPullConfigProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.SourceConnectorPropertiesProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SourceFlowConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html>
+    SourceFlowConfigProperty {haddock_workaround_ :: (),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html#cfn-appflow-flow-sourceflowconfig-apiversion>
+                              apiVersion :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html#cfn-appflow-flow-sourceflowconfig-connectorprofilename>
+                              connectorProfileName :: (Prelude.Maybe (Value Prelude.Text)),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html#cfn-appflow-flow-sourceflowconfig-connectortype>
+                              connectorType :: (Value Prelude.Text),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html#cfn-appflow-flow-sourceflowconfig-incrementalpullconfig>
+                              incrementalPullConfig :: (Prelude.Maybe IncrementalPullConfigProperty),
+                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html#cfn-appflow-flow-sourceflowconfig-sourceconnectorproperties>
+                              sourceConnectorProperties :: SourceConnectorPropertiesProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSourceFlowConfigProperty ::
+  Value Prelude.Text
+  -> SourceConnectorPropertiesProperty -> SourceFlowConfigProperty
+mkSourceFlowConfigProperty connectorType sourceConnectorProperties
+  = SourceFlowConfigProperty
+      {haddock_workaround_ = (), connectorType = connectorType,
+       sourceConnectorProperties = sourceConnectorProperties,
+       apiVersion = Prelude.Nothing,
+       connectorProfileName = Prelude.Nothing,
+       incrementalPullConfig = Prelude.Nothing}
+instance ToResourceProperties SourceFlowConfigProperty where
+  toResourceProperties SourceFlowConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SourceFlowConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["ConnectorType" JSON..= connectorType,
+                            "SourceConnectorProperties" JSON..= sourceConnectorProperties]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ApiVersion" Prelude.<$> apiVersion,
+                               (JSON..=) "ConnectorProfileName" Prelude.<$> connectorProfileName,
+                               (JSON..=) "IncrementalPullConfig"
+                                 Prelude.<$> incrementalPullConfig]))}
+instance JSON.ToJSON SourceFlowConfigProperty where
+  toJSON SourceFlowConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["ConnectorType" JSON..= connectorType,
+               "SourceConnectorProperties" JSON..= sourceConnectorProperties]
+              (Prelude.catMaybes
+                 [(JSON..=) "ApiVersion" Prelude.<$> apiVersion,
+                  (JSON..=) "ConnectorProfileName" Prelude.<$> connectorProfileName,
+                  (JSON..=) "IncrementalPullConfig"
+                    Prelude.<$> incrementalPullConfig])))
+instance Property "ApiVersion" SourceFlowConfigProperty where
+  type PropertyType "ApiVersion" SourceFlowConfigProperty = Value Prelude.Text
+  set newValue SourceFlowConfigProperty {..}
+    = SourceFlowConfigProperty {apiVersion = Prelude.pure newValue, ..}
+instance Property "ConnectorProfileName" SourceFlowConfigProperty where
+  type PropertyType "ConnectorProfileName" SourceFlowConfigProperty = Value Prelude.Text
+  set newValue SourceFlowConfigProperty {..}
+    = SourceFlowConfigProperty
+        {connectorProfileName = Prelude.pure newValue, ..}
+instance Property "ConnectorType" SourceFlowConfigProperty where
+  type PropertyType "ConnectorType" SourceFlowConfigProperty = Value Prelude.Text
+  set newValue SourceFlowConfigProperty {..}
+    = SourceFlowConfigProperty {connectorType = newValue, ..}
+instance Property "IncrementalPullConfig" SourceFlowConfigProperty where
+  type PropertyType "IncrementalPullConfig" SourceFlowConfigProperty = IncrementalPullConfigProperty
+  set newValue SourceFlowConfigProperty {..}
+    = SourceFlowConfigProperty
+        {incrementalPullConfig = Prelude.pure newValue, ..}
+instance Property "SourceConnectorProperties" SourceFlowConfigProperty where
+  type PropertyType "SourceConnectorProperties" SourceFlowConfigProperty = SourceConnectorPropertiesProperty
+  set newValue SourceFlowConfigProperty {..}
+    = SourceFlowConfigProperty
+        {sourceConnectorProperties = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SourceFlowConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SourceFlowConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SourceFlowConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SourceFlowConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SourceFlowConfigProperty :: Prelude.Type
+instance ToResourceProperties SourceFlowConfigProperty
+instance Prelude.Eq SourceFlowConfigProperty
+instance Prelude.Show SourceFlowConfigProperty
+instance JSON.ToJSON SourceFlowConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/SuccessResponseHandlingConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/SuccessResponseHandlingConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SuccessResponseHandlingConfigProperty.hs
@@ -0,0 +1,49 @@
+module Stratosphere.AppFlow.Flow.SuccessResponseHandlingConfigProperty (
+        SuccessResponseHandlingConfigProperty(..),
+        mkSuccessResponseHandlingConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SuccessResponseHandlingConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-successresponsehandlingconfig.html>
+    SuccessResponseHandlingConfigProperty {haddock_workaround_ :: (),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-successresponsehandlingconfig.html#cfn-appflow-flow-successresponsehandlingconfig-bucketname>
+                                           bucketName :: (Prelude.Maybe (Value Prelude.Text)),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-successresponsehandlingconfig.html#cfn-appflow-flow-successresponsehandlingconfig-bucketprefix>
+                                           bucketPrefix :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSuccessResponseHandlingConfigProperty ::
+  SuccessResponseHandlingConfigProperty
+mkSuccessResponseHandlingConfigProperty
+  = SuccessResponseHandlingConfigProperty
+      {haddock_workaround_ = (), bucketName = Prelude.Nothing,
+       bucketPrefix = Prelude.Nothing}
+instance ToResourceProperties SuccessResponseHandlingConfigProperty where
+  toResourceProperties SuccessResponseHandlingConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.SuccessResponseHandlingConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        (Prelude.catMaybes
+                           [(JSON..=) "BucketName" Prelude.<$> bucketName,
+                            (JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix])}
+instance JSON.ToJSON SuccessResponseHandlingConfigProperty where
+  toJSON SuccessResponseHandlingConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           (Prelude.catMaybes
+              [(JSON..=) "BucketName" Prelude.<$> bucketName,
+               (JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix]))
+instance Property "BucketName" SuccessResponseHandlingConfigProperty where
+  type PropertyType "BucketName" SuccessResponseHandlingConfigProperty = Value Prelude.Text
+  set newValue SuccessResponseHandlingConfigProperty {..}
+    = SuccessResponseHandlingConfigProperty
+        {bucketName = Prelude.pure newValue, ..}
+instance Property "BucketPrefix" SuccessResponseHandlingConfigProperty where
+  type PropertyType "BucketPrefix" SuccessResponseHandlingConfigProperty = Value Prelude.Text
+  set newValue SuccessResponseHandlingConfigProperty {..}
+    = SuccessResponseHandlingConfigProperty
+        {bucketPrefix = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/SuccessResponseHandlingConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/SuccessResponseHandlingConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/SuccessResponseHandlingConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.SuccessResponseHandlingConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data SuccessResponseHandlingConfigProperty :: Prelude.Type
+instance ToResourceProperties SuccessResponseHandlingConfigProperty
+instance Prelude.Eq SuccessResponseHandlingConfigProperty
+instance Prelude.Show SuccessResponseHandlingConfigProperty
+instance JSON.ToJSON SuccessResponseHandlingConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/TaskPropertiesObjectProperty.hs b/gen/Stratosphere/AppFlow/Flow/TaskPropertiesObjectProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/TaskPropertiesObjectProperty.hs
@@ -0,0 +1,39 @@
+module Stratosphere.AppFlow.Flow.TaskPropertiesObjectProperty (
+        TaskPropertiesObjectProperty(..), mkTaskPropertiesObjectProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data TaskPropertiesObjectProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-taskpropertiesobject.html>
+    TaskPropertiesObjectProperty {haddock_workaround_ :: (),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-taskpropertiesobject.html#cfn-appflow-flow-taskpropertiesobject-key>
+                                  key :: (Value Prelude.Text),
+                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-taskpropertiesobject.html#cfn-appflow-flow-taskpropertiesobject-value>
+                                  value :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkTaskPropertiesObjectProperty ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> TaskPropertiesObjectProperty
+mkTaskPropertiesObjectProperty key value
+  = TaskPropertiesObjectProperty
+      {haddock_workaround_ = (), key = key, value = value}
+instance ToResourceProperties TaskPropertiesObjectProperty where
+  toResourceProperties TaskPropertiesObjectProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.TaskPropertiesObject",
+         supportsTags = Prelude.False,
+         properties = ["Key" JSON..= key, "Value" JSON..= value]}
+instance JSON.ToJSON TaskPropertiesObjectProperty where
+  toJSON TaskPropertiesObjectProperty {..}
+    = JSON.object ["Key" JSON..= key, "Value" JSON..= value]
+instance Property "Key" TaskPropertiesObjectProperty where
+  type PropertyType "Key" TaskPropertiesObjectProperty = Value Prelude.Text
+  set newValue TaskPropertiesObjectProperty {..}
+    = TaskPropertiesObjectProperty {key = newValue, ..}
+instance Property "Value" TaskPropertiesObjectProperty where
+  type PropertyType "Value" TaskPropertiesObjectProperty = Value Prelude.Text
+  set newValue TaskPropertiesObjectProperty {..}
+    = TaskPropertiesObjectProperty {value = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/TaskPropertiesObjectProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/TaskPropertiesObjectProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/TaskPropertiesObjectProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.TaskPropertiesObjectProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data TaskPropertiesObjectProperty :: Prelude.Type
+instance ToResourceProperties TaskPropertiesObjectProperty
+instance Prelude.Eq TaskPropertiesObjectProperty
+instance Prelude.Show TaskPropertiesObjectProperty
+instance JSON.ToJSON TaskPropertiesObjectProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/TaskProperty.hs b/gen/Stratosphere/AppFlow/Flow/TaskProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/TaskProperty.hs
@@ -0,0 +1,73 @@
+module Stratosphere.AppFlow.Flow.TaskProperty (
+        module Exports, TaskProperty(..), mkTaskProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ConnectorOperatorProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.TaskPropertiesObjectProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data TaskProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html>
+    TaskProperty {haddock_workaround_ :: (),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html#cfn-appflow-flow-task-connectoroperator>
+                  connectorOperator :: (Prelude.Maybe ConnectorOperatorProperty),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html#cfn-appflow-flow-task-destinationfield>
+                  destinationField :: (Prelude.Maybe (Value Prelude.Text)),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html#cfn-appflow-flow-task-sourcefields>
+                  sourceFields :: (ValueList Prelude.Text),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html#cfn-appflow-flow-task-taskproperties>
+                  taskProperties :: (Prelude.Maybe [TaskPropertiesObjectProperty]),
+                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html#cfn-appflow-flow-task-tasktype>
+                  taskType :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkTaskProperty ::
+  ValueList Prelude.Text -> Value Prelude.Text -> TaskProperty
+mkTaskProperty sourceFields taskType
+  = TaskProperty
+      {haddock_workaround_ = (), sourceFields = sourceFields,
+       taskType = taskType, connectorOperator = Prelude.Nothing,
+       destinationField = Prelude.Nothing,
+       taskProperties = Prelude.Nothing}
+instance ToResourceProperties TaskProperty where
+  toResourceProperties TaskProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.Task", supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["SourceFields" JSON..= sourceFields, "TaskType" JSON..= taskType]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ConnectorOperator" Prelude.<$> connectorOperator,
+                               (JSON..=) "DestinationField" Prelude.<$> destinationField,
+                               (JSON..=) "TaskProperties" Prelude.<$> taskProperties]))}
+instance JSON.ToJSON TaskProperty where
+  toJSON TaskProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["SourceFields" JSON..= sourceFields, "TaskType" JSON..= taskType]
+              (Prelude.catMaybes
+                 [(JSON..=) "ConnectorOperator" Prelude.<$> connectorOperator,
+                  (JSON..=) "DestinationField" Prelude.<$> destinationField,
+                  (JSON..=) "TaskProperties" Prelude.<$> taskProperties])))
+instance Property "ConnectorOperator" TaskProperty where
+  type PropertyType "ConnectorOperator" TaskProperty = ConnectorOperatorProperty
+  set newValue TaskProperty {..}
+    = TaskProperty {connectorOperator = Prelude.pure newValue, ..}
+instance Property "DestinationField" TaskProperty where
+  type PropertyType "DestinationField" TaskProperty = Value Prelude.Text
+  set newValue TaskProperty {..}
+    = TaskProperty {destinationField = Prelude.pure newValue, ..}
+instance Property "SourceFields" TaskProperty where
+  type PropertyType "SourceFields" TaskProperty = ValueList Prelude.Text
+  set newValue TaskProperty {..}
+    = TaskProperty {sourceFields = newValue, ..}
+instance Property "TaskProperties" TaskProperty where
+  type PropertyType "TaskProperties" TaskProperty = [TaskPropertiesObjectProperty]
+  set newValue TaskProperty {..}
+    = TaskProperty {taskProperties = Prelude.pure newValue, ..}
+instance Property "TaskType" TaskProperty where
+  type PropertyType "TaskType" TaskProperty = Value Prelude.Text
+  set newValue TaskProperty {..}
+    = TaskProperty {taskType = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/TaskProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/TaskProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/TaskProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.TaskProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data TaskProperty :: Prelude.Type
+instance ToResourceProperties TaskProperty
+instance Prelude.Eq TaskProperty
+instance Prelude.Show TaskProperty
+instance JSON.ToJSON TaskProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/TrendmicroSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/TrendmicroSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/TrendmicroSourcePropertiesProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.TrendmicroSourcePropertiesProperty (
+        TrendmicroSourcePropertiesProperty(..),
+        mkTrendmicroSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data TrendmicroSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-trendmicrosourceproperties.html>
+    TrendmicroSourcePropertiesProperty {haddock_workaround_ :: (),
+                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-trendmicrosourceproperties.html#cfn-appflow-flow-trendmicrosourceproperties-object>
+                                        object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkTrendmicroSourcePropertiesProperty ::
+  Value Prelude.Text -> TrendmicroSourcePropertiesProperty
+mkTrendmicroSourcePropertiesProperty object
+  = TrendmicroSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties TrendmicroSourcePropertiesProperty where
+  toResourceProperties TrendmicroSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.TrendmicroSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON TrendmicroSourcePropertiesProperty where
+  toJSON TrendmicroSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" TrendmicroSourcePropertiesProperty where
+  type PropertyType "Object" TrendmicroSourcePropertiesProperty = Value Prelude.Text
+  set newValue TrendmicroSourcePropertiesProperty {..}
+    = TrendmicroSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/TrendmicroSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/TrendmicroSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/TrendmicroSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.TrendmicroSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data TrendmicroSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties TrendmicroSourcePropertiesProperty
+instance Prelude.Eq TrendmicroSourcePropertiesProperty
+instance Prelude.Show TrendmicroSourcePropertiesProperty
+instance JSON.ToJSON TrendmicroSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/TriggerConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/TriggerConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/TriggerConfigProperty.hs
@@ -0,0 +1,50 @@
+module Stratosphere.AppFlow.Flow.TriggerConfigProperty (
+        module Exports, TriggerConfigProperty(..), mkTriggerConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ScheduledTriggerPropertiesProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data TriggerConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-triggerconfig.html>
+    TriggerConfigProperty {haddock_workaround_ :: (),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-triggerconfig.html#cfn-appflow-flow-triggerconfig-triggerproperties>
+                           triggerProperties :: (Prelude.Maybe ScheduledTriggerPropertiesProperty),
+                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-triggerconfig.html#cfn-appflow-flow-triggerconfig-triggertype>
+                           triggerType :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkTriggerConfigProperty ::
+  Value Prelude.Text -> TriggerConfigProperty
+mkTriggerConfigProperty triggerType
+  = TriggerConfigProperty
+      {haddock_workaround_ = (), triggerType = triggerType,
+       triggerProperties = Prelude.Nothing}
+instance ToResourceProperties TriggerConfigProperty where
+  toResourceProperties TriggerConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.TriggerConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["TriggerType" JSON..= triggerType]
+                           (Prelude.catMaybes
+                              [(JSON..=) "TriggerProperties" Prelude.<$> triggerProperties]))}
+instance JSON.ToJSON TriggerConfigProperty where
+  toJSON TriggerConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["TriggerType" JSON..= triggerType]
+              (Prelude.catMaybes
+                 [(JSON..=) "TriggerProperties" Prelude.<$> triggerProperties])))
+instance Property "TriggerProperties" TriggerConfigProperty where
+  type PropertyType "TriggerProperties" TriggerConfigProperty = ScheduledTriggerPropertiesProperty
+  set newValue TriggerConfigProperty {..}
+    = TriggerConfigProperty
+        {triggerProperties = Prelude.pure newValue, ..}
+instance Property "TriggerType" TriggerConfigProperty where
+  type PropertyType "TriggerType" TriggerConfigProperty = Value Prelude.Text
+  set newValue TriggerConfigProperty {..}
+    = TriggerConfigProperty {triggerType = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/TriggerConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/TriggerConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/TriggerConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.TriggerConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data TriggerConfigProperty :: Prelude.Type
+instance ToResourceProperties TriggerConfigProperty
+instance Prelude.Eq TriggerConfigProperty
+instance Prelude.Show TriggerConfigProperty
+instance JSON.ToJSON TriggerConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/UpsolverDestinationPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/UpsolverDestinationPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/UpsolverDestinationPropertiesProperty.hs
@@ -0,0 +1,65 @@
+module Stratosphere.AppFlow.Flow.UpsolverDestinationPropertiesProperty (
+        module Exports, UpsolverDestinationPropertiesProperty(..),
+        mkUpsolverDestinationPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.UpsolverS3OutputFormatConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data UpsolverDestinationPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolverdestinationproperties.html>
+    UpsolverDestinationPropertiesProperty {haddock_workaround_ :: (),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolverdestinationproperties.html#cfn-appflow-flow-upsolverdestinationproperties-bucketname>
+                                           bucketName :: (Value Prelude.Text),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolverdestinationproperties.html#cfn-appflow-flow-upsolverdestinationproperties-bucketprefix>
+                                           bucketPrefix :: (Prelude.Maybe (Value Prelude.Text)),
+                                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolverdestinationproperties.html#cfn-appflow-flow-upsolverdestinationproperties-s3outputformatconfig>
+                                           s3OutputFormatConfig :: UpsolverS3OutputFormatConfigProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkUpsolverDestinationPropertiesProperty ::
+  Value Prelude.Text
+  -> UpsolverS3OutputFormatConfigProperty
+     -> UpsolverDestinationPropertiesProperty
+mkUpsolverDestinationPropertiesProperty
+  bucketName
+  s3OutputFormatConfig
+  = UpsolverDestinationPropertiesProperty
+      {haddock_workaround_ = (), bucketName = bucketName,
+       s3OutputFormatConfig = s3OutputFormatConfig,
+       bucketPrefix = Prelude.Nothing}
+instance ToResourceProperties UpsolverDestinationPropertiesProperty where
+  toResourceProperties UpsolverDestinationPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.UpsolverDestinationProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["BucketName" JSON..= bucketName,
+                            "S3OutputFormatConfig" JSON..= s3OutputFormatConfig]
+                           (Prelude.catMaybes
+                              [(JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix]))}
+instance JSON.ToJSON UpsolverDestinationPropertiesProperty where
+  toJSON UpsolverDestinationPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["BucketName" JSON..= bucketName,
+               "S3OutputFormatConfig" JSON..= s3OutputFormatConfig]
+              (Prelude.catMaybes
+                 [(JSON..=) "BucketPrefix" Prelude.<$> bucketPrefix])))
+instance Property "BucketName" UpsolverDestinationPropertiesProperty where
+  type PropertyType "BucketName" UpsolverDestinationPropertiesProperty = Value Prelude.Text
+  set newValue UpsolverDestinationPropertiesProperty {..}
+    = UpsolverDestinationPropertiesProperty {bucketName = newValue, ..}
+instance Property "BucketPrefix" UpsolverDestinationPropertiesProperty where
+  type PropertyType "BucketPrefix" UpsolverDestinationPropertiesProperty = Value Prelude.Text
+  set newValue UpsolverDestinationPropertiesProperty {..}
+    = UpsolverDestinationPropertiesProperty
+        {bucketPrefix = Prelude.pure newValue, ..}
+instance Property "S3OutputFormatConfig" UpsolverDestinationPropertiesProperty where
+  type PropertyType "S3OutputFormatConfig" UpsolverDestinationPropertiesProperty = UpsolverS3OutputFormatConfigProperty
+  set newValue UpsolverDestinationPropertiesProperty {..}
+    = UpsolverDestinationPropertiesProperty
+        {s3OutputFormatConfig = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/UpsolverDestinationPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/UpsolverDestinationPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/UpsolverDestinationPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.UpsolverDestinationPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data UpsolverDestinationPropertiesProperty :: Prelude.Type
+instance ToResourceProperties UpsolverDestinationPropertiesProperty
+instance Prelude.Eq UpsolverDestinationPropertiesProperty
+instance Prelude.Show UpsolverDestinationPropertiesProperty
+instance JSON.ToJSON UpsolverDestinationPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/UpsolverS3OutputFormatConfigProperty.hs b/gen/Stratosphere/AppFlow/Flow/UpsolverS3OutputFormatConfigProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/UpsolverS3OutputFormatConfigProperty.hs
@@ -0,0 +1,62 @@
+module Stratosphere.AppFlow.Flow.UpsolverS3OutputFormatConfigProperty (
+        module Exports, UpsolverS3OutputFormatConfigProperty(..),
+        mkUpsolverS3OutputFormatConfigProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.AggregationConfigProperty as Exports
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.PrefixConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data UpsolverS3OutputFormatConfigProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolvers3outputformatconfig.html>
+    UpsolverS3OutputFormatConfigProperty {haddock_workaround_ :: (),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolvers3outputformatconfig.html#cfn-appflow-flow-upsolvers3outputformatconfig-aggregationconfig>
+                                          aggregationConfig :: (Prelude.Maybe AggregationConfigProperty),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolvers3outputformatconfig.html#cfn-appflow-flow-upsolvers3outputformatconfig-filetype>
+                                          fileType :: (Prelude.Maybe (Value Prelude.Text)),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolvers3outputformatconfig.html#cfn-appflow-flow-upsolvers3outputformatconfig-prefixconfig>
+                                          prefixConfig :: PrefixConfigProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkUpsolverS3OutputFormatConfigProperty ::
+  PrefixConfigProperty -> UpsolverS3OutputFormatConfigProperty
+mkUpsolverS3OutputFormatConfigProperty prefixConfig
+  = UpsolverS3OutputFormatConfigProperty
+      {haddock_workaround_ = (), prefixConfig = prefixConfig,
+       aggregationConfig = Prelude.Nothing, fileType = Prelude.Nothing}
+instance ToResourceProperties UpsolverS3OutputFormatConfigProperty where
+  toResourceProperties UpsolverS3OutputFormatConfigProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.UpsolverS3OutputFormatConfig",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["PrefixConfig" JSON..= prefixConfig]
+                           (Prelude.catMaybes
+                              [(JSON..=) "AggregationConfig" Prelude.<$> aggregationConfig,
+                               (JSON..=) "FileType" Prelude.<$> fileType]))}
+instance JSON.ToJSON UpsolverS3OutputFormatConfigProperty where
+  toJSON UpsolverS3OutputFormatConfigProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["PrefixConfig" JSON..= prefixConfig]
+              (Prelude.catMaybes
+                 [(JSON..=) "AggregationConfig" Prelude.<$> aggregationConfig,
+                  (JSON..=) "FileType" Prelude.<$> fileType])))
+instance Property "AggregationConfig" UpsolverS3OutputFormatConfigProperty where
+  type PropertyType "AggregationConfig" UpsolverS3OutputFormatConfigProperty = AggregationConfigProperty
+  set newValue UpsolverS3OutputFormatConfigProperty {..}
+    = UpsolverS3OutputFormatConfigProperty
+        {aggregationConfig = Prelude.pure newValue, ..}
+instance Property "FileType" UpsolverS3OutputFormatConfigProperty where
+  type PropertyType "FileType" UpsolverS3OutputFormatConfigProperty = Value Prelude.Text
+  set newValue UpsolverS3OutputFormatConfigProperty {..}
+    = UpsolverS3OutputFormatConfigProperty
+        {fileType = Prelude.pure newValue, ..}
+instance Property "PrefixConfig" UpsolverS3OutputFormatConfigProperty where
+  type PropertyType "PrefixConfig" UpsolverS3OutputFormatConfigProperty = PrefixConfigProperty
+  set newValue UpsolverS3OutputFormatConfigProperty {..}
+    = UpsolverS3OutputFormatConfigProperty
+        {prefixConfig = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/UpsolverS3OutputFormatConfigProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/UpsolverS3OutputFormatConfigProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/UpsolverS3OutputFormatConfigProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.UpsolverS3OutputFormatConfigProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data UpsolverS3OutputFormatConfigProperty :: Prelude.Type
+instance ToResourceProperties UpsolverS3OutputFormatConfigProperty
+instance Prelude.Eq UpsolverS3OutputFormatConfigProperty
+instance Prelude.Show UpsolverS3OutputFormatConfigProperty
+instance JSON.ToJSON UpsolverS3OutputFormatConfigProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/VeevaSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/VeevaSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/VeevaSourcePropertiesProperty.hs
@@ -0,0 +1,79 @@
+module Stratosphere.AppFlow.Flow.VeevaSourcePropertiesProperty (
+        VeevaSourcePropertiesProperty(..), mkVeevaSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data VeevaSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html>
+    VeevaSourcePropertiesProperty {haddock_workaround_ :: (),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html#cfn-appflow-flow-veevasourceproperties-documenttype>
+                                   documentType :: (Prelude.Maybe (Value Prelude.Text)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html#cfn-appflow-flow-veevasourceproperties-includeallversions>
+                                   includeAllVersions :: (Prelude.Maybe (Value Prelude.Bool)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html#cfn-appflow-flow-veevasourceproperties-includerenditions>
+                                   includeRenditions :: (Prelude.Maybe (Value Prelude.Bool)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html#cfn-appflow-flow-veevasourceproperties-includesourcefiles>
+                                   includeSourceFiles :: (Prelude.Maybe (Value Prelude.Bool)),
+                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html#cfn-appflow-flow-veevasourceproperties-object>
+                                   object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkVeevaSourcePropertiesProperty ::
+  Value Prelude.Text -> VeevaSourcePropertiesProperty
+mkVeevaSourcePropertiesProperty object
+  = VeevaSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object,
+       documentType = Prelude.Nothing,
+       includeAllVersions = Prelude.Nothing,
+       includeRenditions = Prelude.Nothing,
+       includeSourceFiles = Prelude.Nothing}
+instance ToResourceProperties VeevaSourcePropertiesProperty where
+  toResourceProperties VeevaSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.VeevaSourceProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Object" JSON..= object]
+                           (Prelude.catMaybes
+                              [(JSON..=) "DocumentType" Prelude.<$> documentType,
+                               (JSON..=) "IncludeAllVersions" Prelude.<$> includeAllVersions,
+                               (JSON..=) "IncludeRenditions" Prelude.<$> includeRenditions,
+                               (JSON..=) "IncludeSourceFiles" Prelude.<$> includeSourceFiles]))}
+instance JSON.ToJSON VeevaSourcePropertiesProperty where
+  toJSON VeevaSourcePropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Object" JSON..= object]
+              (Prelude.catMaybes
+                 [(JSON..=) "DocumentType" Prelude.<$> documentType,
+                  (JSON..=) "IncludeAllVersions" Prelude.<$> includeAllVersions,
+                  (JSON..=) "IncludeRenditions" Prelude.<$> includeRenditions,
+                  (JSON..=) "IncludeSourceFiles" Prelude.<$> includeSourceFiles])))
+instance Property "DocumentType" VeevaSourcePropertiesProperty where
+  type PropertyType "DocumentType" VeevaSourcePropertiesProperty = Value Prelude.Text
+  set newValue VeevaSourcePropertiesProperty {..}
+    = VeevaSourcePropertiesProperty
+        {documentType = Prelude.pure newValue, ..}
+instance Property "IncludeAllVersions" VeevaSourcePropertiesProperty where
+  type PropertyType "IncludeAllVersions" VeevaSourcePropertiesProperty = Value Prelude.Bool
+  set newValue VeevaSourcePropertiesProperty {..}
+    = VeevaSourcePropertiesProperty
+        {includeAllVersions = Prelude.pure newValue, ..}
+instance Property "IncludeRenditions" VeevaSourcePropertiesProperty where
+  type PropertyType "IncludeRenditions" VeevaSourcePropertiesProperty = Value Prelude.Bool
+  set newValue VeevaSourcePropertiesProperty {..}
+    = VeevaSourcePropertiesProperty
+        {includeRenditions = Prelude.pure newValue, ..}
+instance Property "IncludeSourceFiles" VeevaSourcePropertiesProperty where
+  type PropertyType "IncludeSourceFiles" VeevaSourcePropertiesProperty = Value Prelude.Bool
+  set newValue VeevaSourcePropertiesProperty {..}
+    = VeevaSourcePropertiesProperty
+        {includeSourceFiles = Prelude.pure newValue, ..}
+instance Property "Object" VeevaSourcePropertiesProperty where
+  type PropertyType "Object" VeevaSourcePropertiesProperty = Value Prelude.Text
+  set newValue VeevaSourcePropertiesProperty {..}
+    = VeevaSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/VeevaSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/VeevaSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/VeevaSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.VeevaSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data VeevaSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties VeevaSourcePropertiesProperty
+instance Prelude.Eq VeevaSourcePropertiesProperty
+instance Prelude.Show VeevaSourcePropertiesProperty
+instance JSON.ToJSON VeevaSourcePropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/ZendeskDestinationPropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/ZendeskDestinationPropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ZendeskDestinationPropertiesProperty.hs
@@ -0,0 +1,71 @@
+module Stratosphere.AppFlow.Flow.ZendeskDestinationPropertiesProperty (
+        module Exports, ZendeskDestinationPropertiesProperty(..),
+        mkZendeskDestinationPropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.AppFlow.Flow.ErrorHandlingConfigProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ZendeskDestinationPropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html>
+    ZendeskDestinationPropertiesProperty {haddock_workaround_ :: (),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html#cfn-appflow-flow-zendeskdestinationproperties-errorhandlingconfig>
+                                          errorHandlingConfig :: (Prelude.Maybe ErrorHandlingConfigProperty),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html#cfn-appflow-flow-zendeskdestinationproperties-idfieldnames>
+                                          idFieldNames :: (Prelude.Maybe (ValueList Prelude.Text)),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html#cfn-appflow-flow-zendeskdestinationproperties-object>
+                                          object :: (Value Prelude.Text),
+                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html#cfn-appflow-flow-zendeskdestinationproperties-writeoperationtype>
+                                          writeOperationType :: (Prelude.Maybe (Value Prelude.Text))}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkZendeskDestinationPropertiesProperty ::
+  Value Prelude.Text -> ZendeskDestinationPropertiesProperty
+mkZendeskDestinationPropertiesProperty object
+  = ZendeskDestinationPropertiesProperty
+      {haddock_workaround_ = (), object = object,
+       errorHandlingConfig = Prelude.Nothing,
+       idFieldNames = Prelude.Nothing,
+       writeOperationType = Prelude.Nothing}
+instance ToResourceProperties ZendeskDestinationPropertiesProperty where
+  toResourceProperties ZendeskDestinationPropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.ZendeskDestinationProperties",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Object" JSON..= object]
+                           (Prelude.catMaybes
+                              [(JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig,
+                               (JSON..=) "IdFieldNames" Prelude.<$> idFieldNames,
+                               (JSON..=) "WriteOperationType" Prelude.<$> writeOperationType]))}
+instance JSON.ToJSON ZendeskDestinationPropertiesProperty where
+  toJSON ZendeskDestinationPropertiesProperty {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Object" JSON..= object]
+              (Prelude.catMaybes
+                 [(JSON..=) "ErrorHandlingConfig" Prelude.<$> errorHandlingConfig,
+                  (JSON..=) "IdFieldNames" Prelude.<$> idFieldNames,
+                  (JSON..=) "WriteOperationType" Prelude.<$> writeOperationType])))
+instance Property "ErrorHandlingConfig" ZendeskDestinationPropertiesProperty where
+  type PropertyType "ErrorHandlingConfig" ZendeskDestinationPropertiesProperty = ErrorHandlingConfigProperty
+  set newValue ZendeskDestinationPropertiesProperty {..}
+    = ZendeskDestinationPropertiesProperty
+        {errorHandlingConfig = Prelude.pure newValue, ..}
+instance Property "IdFieldNames" ZendeskDestinationPropertiesProperty where
+  type PropertyType "IdFieldNames" ZendeskDestinationPropertiesProperty = ValueList Prelude.Text
+  set newValue ZendeskDestinationPropertiesProperty {..}
+    = ZendeskDestinationPropertiesProperty
+        {idFieldNames = Prelude.pure newValue, ..}
+instance Property "Object" ZendeskDestinationPropertiesProperty where
+  type PropertyType "Object" ZendeskDestinationPropertiesProperty = Value Prelude.Text
+  set newValue ZendeskDestinationPropertiesProperty {..}
+    = ZendeskDestinationPropertiesProperty {object = newValue, ..}
+instance Property "WriteOperationType" ZendeskDestinationPropertiesProperty where
+  type PropertyType "WriteOperationType" ZendeskDestinationPropertiesProperty = Value Prelude.Text
+  set newValue ZendeskDestinationPropertiesProperty {..}
+    = ZendeskDestinationPropertiesProperty
+        {writeOperationType = Prelude.pure newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/ZendeskDestinationPropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/ZendeskDestinationPropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ZendeskDestinationPropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.ZendeskDestinationPropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ZendeskDestinationPropertiesProperty :: Prelude.Type
+instance ToResourceProperties ZendeskDestinationPropertiesProperty
+instance Prelude.Eq ZendeskDestinationPropertiesProperty
+instance Prelude.Show ZendeskDestinationPropertiesProperty
+instance JSON.ToJSON ZendeskDestinationPropertiesProperty
diff --git a/gen/Stratosphere/AppFlow/Flow/ZendeskSourcePropertiesProperty.hs b/gen/Stratosphere/AppFlow/Flow/ZendeskSourcePropertiesProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ZendeskSourcePropertiesProperty.hs
@@ -0,0 +1,33 @@
+module Stratosphere.AppFlow.Flow.ZendeskSourcePropertiesProperty (
+        ZendeskSourcePropertiesProperty(..),
+        mkZendeskSourcePropertiesProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data ZendeskSourcePropertiesProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendesksourceproperties.html>
+    ZendeskSourcePropertiesProperty {haddock_workaround_ :: (),
+                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendesksourceproperties.html#cfn-appflow-flow-zendesksourceproperties-object>
+                                     object :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkZendeskSourcePropertiesProperty ::
+  Value Prelude.Text -> ZendeskSourcePropertiesProperty
+mkZendeskSourcePropertiesProperty object
+  = ZendeskSourcePropertiesProperty
+      {haddock_workaround_ = (), object = object}
+instance ToResourceProperties ZendeskSourcePropertiesProperty where
+  toResourceProperties ZendeskSourcePropertiesProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::AppFlow::Flow.ZendeskSourceProperties",
+         supportsTags = Prelude.False,
+         properties = ["Object" JSON..= object]}
+instance JSON.ToJSON ZendeskSourcePropertiesProperty where
+  toJSON ZendeskSourcePropertiesProperty {..}
+    = JSON.object ["Object" JSON..= object]
+instance Property "Object" ZendeskSourcePropertiesProperty where
+  type PropertyType "Object" ZendeskSourcePropertiesProperty = Value Prelude.Text
+  set newValue ZendeskSourcePropertiesProperty {..}
+    = ZendeskSourcePropertiesProperty {object = newValue, ..}
diff --git a/gen/Stratosphere/AppFlow/Flow/ZendeskSourcePropertiesProperty.hs-boot b/gen/Stratosphere/AppFlow/Flow/ZendeskSourcePropertiesProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/AppFlow/Flow/ZendeskSourcePropertiesProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.AppFlow.Flow.ZendeskSourcePropertiesProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data ZendeskSourcePropertiesProperty :: Prelude.Type
+instance ToResourceProperties ZendeskSourcePropertiesProperty
+instance Prelude.Eq ZendeskSourcePropertiesProperty
+instance Prelude.Show ZendeskSourcePropertiesProperty
+instance JSON.ToJSON ZendeskSourcePropertiesProperty
diff --git a/stratosphere-appflow.cabal b/stratosphere-appflow.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-appflow.cabal
@@ -0,0 +1,170 @@
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.38.2.
+--
+-- see: https://github.com/sol/hpack
+
+name:           stratosphere-appflow
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS AppFlow.
+description:    Integration into stratosphere to generate resources and properties for AWS AppFlow
+category:       AWS, Cloud, AppFlow
+stability:      experimental
+homepage:       https://github.com/mbj/stratosphere#readme
+bug-reports:    https://github.com/mbj/stratosphere/issues
+maintainer:     Markus Schirp
+license:        MIT
+license-file:   LICENSE.md
+build-type:     Simple
+
+source-repository head
+  type: git
+  location: https://github.com/mbj/stratosphere
+
+flag development
+  description: Run GHC with development flags
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Stratosphere.AppFlow.Connector
+      Stratosphere.AppFlow.Connector.ConnectorProvisioningConfigProperty
+      Stratosphere.AppFlow.Connector.LambdaConnectorProvisioningConfigProperty
+      Stratosphere.AppFlow.ConnectorProfile
+      Stratosphere.AppFlow.ConnectorProfile.AmplitudeConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.ApiKeyCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.BasicAuthCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.ConnectorOAuthRequestProperty
+      Stratosphere.AppFlow.ConnectorProfile.ConnectorProfileConfigProperty
+      Stratosphere.AppFlow.ConnectorProfile.ConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.ConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.CustomAuthCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.CustomConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.CustomConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.DatadogConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.DatadogConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.DynatraceConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.DynatraceConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.GoogleAnalyticsConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.InforNexusConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.InforNexusConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.MarketoConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.MarketoConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.OAuth2CredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.OAuth2PropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.OAuthCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.OAuthPropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.PardotConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.PardotConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.RedshiftConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.RedshiftConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.SalesforceConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.SalesforceConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.SAPODataConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.SAPODataConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.ServiceNowConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.ServiceNowConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.SingularConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.SlackConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.SlackConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.SnowflakeConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.SnowflakeConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.TrendmicroConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.VeevaConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.VeevaConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.ConnectorProfile.ZendeskConnectorProfileCredentialsProperty
+      Stratosphere.AppFlow.ConnectorProfile.ZendeskConnectorProfilePropertiesProperty
+      Stratosphere.AppFlow.Flow
+      Stratosphere.AppFlow.Flow.AggregationConfigProperty
+      Stratosphere.AppFlow.Flow.AmplitudeSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.ConnectorOperatorProperty
+      Stratosphere.AppFlow.Flow.CustomConnectorDestinationPropertiesProperty
+      Stratosphere.AppFlow.Flow.CustomConnectorSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.DatadogSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.DataTransferApiProperty
+      Stratosphere.AppFlow.Flow.DestinationConnectorPropertiesProperty
+      Stratosphere.AppFlow.Flow.DestinationFlowConfigProperty
+      Stratosphere.AppFlow.Flow.DynatraceSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.ErrorHandlingConfigProperty
+      Stratosphere.AppFlow.Flow.EventBridgeDestinationPropertiesProperty
+      Stratosphere.AppFlow.Flow.GlueDataCatalogProperty
+      Stratosphere.AppFlow.Flow.GoogleAnalyticsSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.IncrementalPullConfigProperty
+      Stratosphere.AppFlow.Flow.InforNexusSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.LookoutMetricsDestinationPropertiesProperty
+      Stratosphere.AppFlow.Flow.MarketoDestinationPropertiesProperty
+      Stratosphere.AppFlow.Flow.MarketoSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.MetadataCatalogConfigProperty
+      Stratosphere.AppFlow.Flow.PardotSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.PrefixConfigProperty
+      Stratosphere.AppFlow.Flow.RedshiftDestinationPropertiesProperty
+      Stratosphere.AppFlow.Flow.S3DestinationPropertiesProperty
+      Stratosphere.AppFlow.Flow.S3InputFormatConfigProperty
+      Stratosphere.AppFlow.Flow.S3OutputFormatConfigProperty
+      Stratosphere.AppFlow.Flow.S3SourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.SalesforceDestinationPropertiesProperty
+      Stratosphere.AppFlow.Flow.SalesforceSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.SAPODataDestinationPropertiesProperty
+      Stratosphere.AppFlow.Flow.SAPODataPaginationConfigProperty
+      Stratosphere.AppFlow.Flow.SAPODataParallelismConfigProperty
+      Stratosphere.AppFlow.Flow.SAPODataSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.ScheduledTriggerPropertiesProperty
+      Stratosphere.AppFlow.Flow.ServiceNowSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.SingularSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.SlackSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.SnowflakeDestinationPropertiesProperty
+      Stratosphere.AppFlow.Flow.SourceConnectorPropertiesProperty
+      Stratosphere.AppFlow.Flow.SourceFlowConfigProperty
+      Stratosphere.AppFlow.Flow.SuccessResponseHandlingConfigProperty
+      Stratosphere.AppFlow.Flow.TaskPropertiesObjectProperty
+      Stratosphere.AppFlow.Flow.TaskProperty
+      Stratosphere.AppFlow.Flow.TrendmicroSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.TriggerConfigProperty
+      Stratosphere.AppFlow.Flow.UpsolverDestinationPropertiesProperty
+      Stratosphere.AppFlow.Flow.UpsolverS3OutputFormatConfigProperty
+      Stratosphere.AppFlow.Flow.VeevaSourcePropertiesProperty
+      Stratosphere.AppFlow.Flow.ZendeskDestinationPropertiesProperty
+      Stratosphere.AppFlow.Flow.ZendeskSourcePropertiesProperty
+  other-modules:
+      Paths_stratosphere_appflow
+  hs-source-dirs:
+      gen
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      DerivingStrategies
+      DerivingVia
+      DuplicateRecordFields
+      FlexibleContexts
+      FlexibleInstances
+      GADTs
+      GeneralizedNewtypeDeriving
+      InstanceSigs
+      LambdaCase
+      MultiParamTypeClasses
+      NoFieldSelectors
+      NoImplicitPrelude
+      NumericUnderscores
+      OverloadedLists
+      OverloadedRecordDot
+      OverloadedStrings
+      PolyKinds
+      RecordWildCards
+      ScopedTypeVariables
+      StandaloneDeriving
+      Strict
+      TemplateHaskell
+      TupleSections
+      TypeApplications
+      TypeFamilies
+  ghc-options: -Wall -Wcompat -Widentities -Wimplicit-prelude -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-local-signatures -Wmissing-signatures -Wmonomorphism-restriction -Wredundant-constraints -fhide-source-paths -funbox-strict-fields -optP-Wno-nonportable-include-path -Wno-unused-imports
+  build-depends:
+      aeson ==2.*
+    , base >=4.8 && <4.22
+    , stratosphere ==1.0.0
+  default-language: Haskell2010
+  if flag(development)
+    ghc-options: -Werror
+  else
+    ghc-options: -Wwarn
