packages feed

stratosphere-dms-1.0.0: gen/Stratosphere/DMS/Endpoint/GcpMySQLSettingsProperty.hs

module Stratosphere.DMS.Endpoint.GcpMySQLSettingsProperty (
        GcpMySQLSettingsProperty(..), mkGcpMySQLSettingsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data GcpMySQLSettingsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html>
    GcpMySQLSettingsProperty {haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-afterconnectscript>
                              afterConnectScript :: (Prelude.Maybe (Value Prelude.Text)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-cleansourcemetadataonmismatch>
                              cleanSourceMetadataOnMismatch :: (Prelude.Maybe (Value Prelude.Bool)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-databasename>
                              databaseName :: (Prelude.Maybe (Value Prelude.Text)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-eventspollinterval>
                              eventsPollInterval :: (Prelude.Maybe (Value Prelude.Integer)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-maxfilesize>
                              maxFileSize :: (Prelude.Maybe (Value Prelude.Integer)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-parallelloadthreads>
                              parallelLoadThreads :: (Prelude.Maybe (Value Prelude.Integer)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-password>
                              password :: (Prelude.Maybe (Value Prelude.Text)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-port>
                              port :: (Prelude.Maybe (Value Prelude.Integer)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-secretsmanageraccessrolearn>
                              secretsManagerAccessRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-secretsmanagersecretid>
                              secretsManagerSecretId :: (Prelude.Maybe (Value Prelude.Text)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-servername>
                              serverName :: (Prelude.Maybe (Value Prelude.Text)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-servertimezone>
                              serverTimezone :: (Prelude.Maybe (Value Prelude.Text)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html#cfn-dms-endpoint-gcpmysqlsettings-username>
                              username :: (Prelude.Maybe (Value Prelude.Text))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkGcpMySQLSettingsProperty :: GcpMySQLSettingsProperty
mkGcpMySQLSettingsProperty
  = GcpMySQLSettingsProperty
      {haddock_workaround_ = (), afterConnectScript = Prelude.Nothing,
       cleanSourceMetadataOnMismatch = Prelude.Nothing,
       databaseName = Prelude.Nothing,
       eventsPollInterval = Prelude.Nothing,
       maxFileSize = Prelude.Nothing,
       parallelLoadThreads = Prelude.Nothing, password = Prelude.Nothing,
       port = Prelude.Nothing,
       secretsManagerAccessRoleArn = Prelude.Nothing,
       secretsManagerSecretId = Prelude.Nothing,
       serverName = Prelude.Nothing, serverTimezone = Prelude.Nothing,
       username = Prelude.Nothing}
instance ToResourceProperties GcpMySQLSettingsProperty where
  toResourceProperties GcpMySQLSettingsProperty {..}
    = ResourceProperties
        {awsType = "AWS::DMS::Endpoint.GcpMySQLSettings",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "AfterConnectScript" Prelude.<$> afterConnectScript,
                            (JSON..=) "CleanSourceMetadataOnMismatch"
                              Prelude.<$> cleanSourceMetadataOnMismatch,
                            (JSON..=) "DatabaseName" Prelude.<$> databaseName,
                            (JSON..=) "EventsPollInterval" Prelude.<$> eventsPollInterval,
                            (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
                            (JSON..=) "ParallelLoadThreads" Prelude.<$> parallelLoadThreads,
                            (JSON..=) "Password" Prelude.<$> password,
                            (JSON..=) "Port" Prelude.<$> port,
                            (JSON..=) "SecretsManagerAccessRoleArn"
                              Prelude.<$> secretsManagerAccessRoleArn,
                            (JSON..=) "SecretsManagerSecretId"
                              Prelude.<$> secretsManagerSecretId,
                            (JSON..=) "ServerName" Prelude.<$> serverName,
                            (JSON..=) "ServerTimezone" Prelude.<$> serverTimezone,
                            (JSON..=) "Username" Prelude.<$> username])}
instance JSON.ToJSON GcpMySQLSettingsProperty where
  toJSON GcpMySQLSettingsProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "AfterConnectScript" Prelude.<$> afterConnectScript,
               (JSON..=) "CleanSourceMetadataOnMismatch"
                 Prelude.<$> cleanSourceMetadataOnMismatch,
               (JSON..=) "DatabaseName" Prelude.<$> databaseName,
               (JSON..=) "EventsPollInterval" Prelude.<$> eventsPollInterval,
               (JSON..=) "MaxFileSize" Prelude.<$> maxFileSize,
               (JSON..=) "ParallelLoadThreads" Prelude.<$> parallelLoadThreads,
               (JSON..=) "Password" Prelude.<$> password,
               (JSON..=) "Port" Prelude.<$> port,
               (JSON..=) "SecretsManagerAccessRoleArn"
                 Prelude.<$> secretsManagerAccessRoleArn,
               (JSON..=) "SecretsManagerSecretId"
                 Prelude.<$> secretsManagerSecretId,
               (JSON..=) "ServerName" Prelude.<$> serverName,
               (JSON..=) "ServerTimezone" Prelude.<$> serverTimezone,
               (JSON..=) "Username" Prelude.<$> username]))
instance Property "AfterConnectScript" GcpMySQLSettingsProperty where
  type PropertyType "AfterConnectScript" GcpMySQLSettingsProperty = Value Prelude.Text
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty
        {afterConnectScript = Prelude.pure newValue, ..}
instance Property "CleanSourceMetadataOnMismatch" GcpMySQLSettingsProperty where
  type PropertyType "CleanSourceMetadataOnMismatch" GcpMySQLSettingsProperty = Value Prelude.Bool
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty
        {cleanSourceMetadataOnMismatch = Prelude.pure newValue, ..}
instance Property "DatabaseName" GcpMySQLSettingsProperty where
  type PropertyType "DatabaseName" GcpMySQLSettingsProperty = Value Prelude.Text
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty
        {databaseName = Prelude.pure newValue, ..}
instance Property "EventsPollInterval" GcpMySQLSettingsProperty where
  type PropertyType "EventsPollInterval" GcpMySQLSettingsProperty = Value Prelude.Integer
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty
        {eventsPollInterval = Prelude.pure newValue, ..}
instance Property "MaxFileSize" GcpMySQLSettingsProperty where
  type PropertyType "MaxFileSize" GcpMySQLSettingsProperty = Value Prelude.Integer
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty
        {maxFileSize = Prelude.pure newValue, ..}
instance Property "ParallelLoadThreads" GcpMySQLSettingsProperty where
  type PropertyType "ParallelLoadThreads" GcpMySQLSettingsProperty = Value Prelude.Integer
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty
        {parallelLoadThreads = Prelude.pure newValue, ..}
instance Property "Password" GcpMySQLSettingsProperty where
  type PropertyType "Password" GcpMySQLSettingsProperty = Value Prelude.Text
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty {password = Prelude.pure newValue, ..}
instance Property "Port" GcpMySQLSettingsProperty where
  type PropertyType "Port" GcpMySQLSettingsProperty = Value Prelude.Integer
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty {port = Prelude.pure newValue, ..}
instance Property "SecretsManagerAccessRoleArn" GcpMySQLSettingsProperty where
  type PropertyType "SecretsManagerAccessRoleArn" GcpMySQLSettingsProperty = Value Prelude.Text
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty
        {secretsManagerAccessRoleArn = Prelude.pure newValue, ..}
instance Property "SecretsManagerSecretId" GcpMySQLSettingsProperty where
  type PropertyType "SecretsManagerSecretId" GcpMySQLSettingsProperty = Value Prelude.Text
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty
        {secretsManagerSecretId = Prelude.pure newValue, ..}
instance Property "ServerName" GcpMySQLSettingsProperty where
  type PropertyType "ServerName" GcpMySQLSettingsProperty = Value Prelude.Text
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty {serverName = Prelude.pure newValue, ..}
instance Property "ServerTimezone" GcpMySQLSettingsProperty where
  type PropertyType "ServerTimezone" GcpMySQLSettingsProperty = Value Prelude.Text
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty
        {serverTimezone = Prelude.pure newValue, ..}
instance Property "Username" GcpMySQLSettingsProperty where
  type PropertyType "Username" GcpMySQLSettingsProperty = Value Prelude.Text
  set newValue GcpMySQLSettingsProperty {..}
    = GcpMySQLSettingsProperty {username = Prelude.pure newValue, ..}