stratosphere-0.15.2: library-gen/Stratosphere/Resources/DMSReplicationInstance.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html
module Stratosphere.Resources.DMSReplicationInstance where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.Tag
-- | Full data type definition for DMSReplicationInstance. See
-- 'dmsReplicationInstance' for a more convenient constructor.
data DMSReplicationInstance =
DMSReplicationInstance
{ _dMSReplicationInstanceAllocatedStorage :: Maybe (Val Integer)
, _dMSReplicationInstanceAllowMajorVersionUpgrade :: Maybe (Val Bool)
, _dMSReplicationInstanceAutoMinorVersionUpgrade :: Maybe (Val Bool)
, _dMSReplicationInstanceAvailabilityZone :: Maybe (Val Text)
, _dMSReplicationInstanceEngineVersion :: Maybe (Val Text)
, _dMSReplicationInstanceKmsKeyId :: Maybe (Val Text)
, _dMSReplicationInstanceMultiAZ :: Maybe (Val Bool)
, _dMSReplicationInstancePreferredMaintenanceWindow :: Maybe (Val Text)
, _dMSReplicationInstancePubliclyAccessible :: Maybe (Val Bool)
, _dMSReplicationInstanceReplicationInstanceClass :: Val Text
, _dMSReplicationInstanceReplicationInstanceIdentifier :: Maybe (Val Text)
, _dMSReplicationInstanceReplicationSubnetGroupIdentifier :: Maybe (Val Text)
, _dMSReplicationInstanceTags :: Maybe [Tag]
, _dMSReplicationInstanceVpcSecurityGroupIds :: Maybe (ValList Text)
} deriving (Show, Eq)
instance ToJSON DMSReplicationInstance where
toJSON DMSReplicationInstance{..} =
object $
catMaybes
[ fmap (("AllocatedStorage",) . toJSON . fmap Integer') _dMSReplicationInstanceAllocatedStorage
, fmap (("AllowMajorVersionUpgrade",) . toJSON . fmap Bool') _dMSReplicationInstanceAllowMajorVersionUpgrade
, fmap (("AutoMinorVersionUpgrade",) . toJSON . fmap Bool') _dMSReplicationInstanceAutoMinorVersionUpgrade
, fmap (("AvailabilityZone",) . toJSON) _dMSReplicationInstanceAvailabilityZone
, fmap (("EngineVersion",) . toJSON) _dMSReplicationInstanceEngineVersion
, fmap (("KmsKeyId",) . toJSON) _dMSReplicationInstanceKmsKeyId
, fmap (("MultiAZ",) . toJSON . fmap Bool') _dMSReplicationInstanceMultiAZ
, fmap (("PreferredMaintenanceWindow",) . toJSON) _dMSReplicationInstancePreferredMaintenanceWindow
, fmap (("PubliclyAccessible",) . toJSON . fmap Bool') _dMSReplicationInstancePubliclyAccessible
, (Just . ("ReplicationInstanceClass",) . toJSON) _dMSReplicationInstanceReplicationInstanceClass
, fmap (("ReplicationInstanceIdentifier",) . toJSON) _dMSReplicationInstanceReplicationInstanceIdentifier
, fmap (("ReplicationSubnetGroupIdentifier",) . toJSON) _dMSReplicationInstanceReplicationSubnetGroupIdentifier
, fmap (("Tags",) . toJSON) _dMSReplicationInstanceTags
, fmap (("VpcSecurityGroupIds",) . toJSON) _dMSReplicationInstanceVpcSecurityGroupIds
]
instance FromJSON DMSReplicationInstance where
parseJSON (Object obj) =
DMSReplicationInstance <$>
fmap (fmap (fmap unInteger')) (obj .:? "AllocatedStorage") <*>
fmap (fmap (fmap unBool')) (obj .:? "AllowMajorVersionUpgrade") <*>
fmap (fmap (fmap unBool')) (obj .:? "AutoMinorVersionUpgrade") <*>
(obj .:? "AvailabilityZone") <*>
(obj .:? "EngineVersion") <*>
(obj .:? "KmsKeyId") <*>
fmap (fmap (fmap unBool')) (obj .:? "MultiAZ") <*>
(obj .:? "PreferredMaintenanceWindow") <*>
fmap (fmap (fmap unBool')) (obj .:? "PubliclyAccessible") <*>
(obj .: "ReplicationInstanceClass") <*>
(obj .:? "ReplicationInstanceIdentifier") <*>
(obj .:? "ReplicationSubnetGroupIdentifier") <*>
(obj .:? "Tags") <*>
(obj .:? "VpcSecurityGroupIds")
parseJSON _ = mempty
-- | Constructor for 'DMSReplicationInstance' containing required fields as
-- arguments.
dmsReplicationInstance
:: Val Text -- ^ 'dmsriReplicationInstanceClass'
-> DMSReplicationInstance
dmsReplicationInstance replicationInstanceClassarg =
DMSReplicationInstance
{ _dMSReplicationInstanceAllocatedStorage = Nothing
, _dMSReplicationInstanceAllowMajorVersionUpgrade = Nothing
, _dMSReplicationInstanceAutoMinorVersionUpgrade = Nothing
, _dMSReplicationInstanceAvailabilityZone = Nothing
, _dMSReplicationInstanceEngineVersion = Nothing
, _dMSReplicationInstanceKmsKeyId = Nothing
, _dMSReplicationInstanceMultiAZ = Nothing
, _dMSReplicationInstancePreferredMaintenanceWindow = Nothing
, _dMSReplicationInstancePubliclyAccessible = Nothing
, _dMSReplicationInstanceReplicationInstanceClass = replicationInstanceClassarg
, _dMSReplicationInstanceReplicationInstanceIdentifier = Nothing
, _dMSReplicationInstanceReplicationSubnetGroupIdentifier = Nothing
, _dMSReplicationInstanceTags = Nothing
, _dMSReplicationInstanceVpcSecurityGroupIds = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-allocatedstorage
dmsriAllocatedStorage :: Lens' DMSReplicationInstance (Maybe (Val Integer))
dmsriAllocatedStorage = lens _dMSReplicationInstanceAllocatedStorage (\s a -> s { _dMSReplicationInstanceAllocatedStorage = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-allowmajorversionupgrade
dmsriAllowMajorVersionUpgrade :: Lens' DMSReplicationInstance (Maybe (Val Bool))
dmsriAllowMajorVersionUpgrade = lens _dMSReplicationInstanceAllowMajorVersionUpgrade (\s a -> s { _dMSReplicationInstanceAllowMajorVersionUpgrade = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-autominorversionupgrade
dmsriAutoMinorVersionUpgrade :: Lens' DMSReplicationInstance (Maybe (Val Bool))
dmsriAutoMinorVersionUpgrade = lens _dMSReplicationInstanceAutoMinorVersionUpgrade (\s a -> s { _dMSReplicationInstanceAutoMinorVersionUpgrade = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-availabilityzone
dmsriAvailabilityZone :: Lens' DMSReplicationInstance (Maybe (Val Text))
dmsriAvailabilityZone = lens _dMSReplicationInstanceAvailabilityZone (\s a -> s { _dMSReplicationInstanceAvailabilityZone = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-engineversion
dmsriEngineVersion :: Lens' DMSReplicationInstance (Maybe (Val Text))
dmsriEngineVersion = lens _dMSReplicationInstanceEngineVersion (\s a -> s { _dMSReplicationInstanceEngineVersion = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-kmskeyid
dmsriKmsKeyId :: Lens' DMSReplicationInstance (Maybe (Val Text))
dmsriKmsKeyId = lens _dMSReplicationInstanceKmsKeyId (\s a -> s { _dMSReplicationInstanceKmsKeyId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-multiaz
dmsriMultiAZ :: Lens' DMSReplicationInstance (Maybe (Val Bool))
dmsriMultiAZ = lens _dMSReplicationInstanceMultiAZ (\s a -> s { _dMSReplicationInstanceMultiAZ = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-preferredmaintenancewindow
dmsriPreferredMaintenanceWindow :: Lens' DMSReplicationInstance (Maybe (Val Text))
dmsriPreferredMaintenanceWindow = lens _dMSReplicationInstancePreferredMaintenanceWindow (\s a -> s { _dMSReplicationInstancePreferredMaintenanceWindow = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-publiclyaccessible
dmsriPubliclyAccessible :: Lens' DMSReplicationInstance (Maybe (Val Bool))
dmsriPubliclyAccessible = lens _dMSReplicationInstancePubliclyAccessible (\s a -> s { _dMSReplicationInstancePubliclyAccessible = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationinstanceclass
dmsriReplicationInstanceClass :: Lens' DMSReplicationInstance (Val Text)
dmsriReplicationInstanceClass = lens _dMSReplicationInstanceReplicationInstanceClass (\s a -> s { _dMSReplicationInstanceReplicationInstanceClass = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationinstanceidentifier
dmsriReplicationInstanceIdentifier :: Lens' DMSReplicationInstance (Maybe (Val Text))
dmsriReplicationInstanceIdentifier = lens _dMSReplicationInstanceReplicationInstanceIdentifier (\s a -> s { _dMSReplicationInstanceReplicationInstanceIdentifier = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationsubnetgroupidentifier
dmsriReplicationSubnetGroupIdentifier :: Lens' DMSReplicationInstance (Maybe (Val Text))
dmsriReplicationSubnetGroupIdentifier = lens _dMSReplicationInstanceReplicationSubnetGroupIdentifier (\s a -> s { _dMSReplicationInstanceReplicationSubnetGroupIdentifier = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-tags
dmsriTags :: Lens' DMSReplicationInstance (Maybe [Tag])
dmsriTags = lens _dMSReplicationInstanceTags (\s a -> s { _dMSReplicationInstanceTags = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-vpcsecuritygroupids
dmsriVpcSecurityGroupIds :: Lens' DMSReplicationInstance (Maybe (ValList Text))
dmsriVpcSecurityGroupIds = lens _dMSReplicationInstanceVpcSecurityGroupIds (\s a -> s { _dMSReplicationInstanceVpcSecurityGroupIds = a })