{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.DMS.CreateReplicationInstance
(
createReplicationInstance
, CreateReplicationInstance
, criEngineVersion
, criPubliclyAccessible
, criAutoMinorVersionUpgrade
, criReplicationSubnetGroupIdentifier
, criPreferredMaintenanceWindow
, criKMSKeyId
, criAvailabilityZone
, criVPCSecurityGroupIds
, criMultiAZ
, criAllocatedStorage
, criTags
, criReplicationInstanceIdentifier
, criReplicationInstanceClass
, createReplicationInstanceResponse
, CreateReplicationInstanceResponse
, crirsReplicationInstance
, crirsResponseStatus
) where
import Network.AWS.DMS.Types
import Network.AWS.DMS.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateReplicationInstance = CreateReplicationInstance'
{ _criEngineVersion :: !(Maybe Text)
, _criPubliclyAccessible :: !(Maybe Bool)
, _criAutoMinorVersionUpgrade :: !(Maybe Bool)
, _criReplicationSubnetGroupIdentifier :: !(Maybe Text)
, _criPreferredMaintenanceWindow :: !(Maybe Text)
, _criKMSKeyId :: !(Maybe Text)
, _criAvailabilityZone :: !(Maybe Text)
, _criVPCSecurityGroupIds :: !(Maybe [Text])
, _criMultiAZ :: !(Maybe Bool)
, _criAllocatedStorage :: !(Maybe Int)
, _criTags :: !(Maybe [Tag])
, _criReplicationInstanceIdentifier :: !Text
, _criReplicationInstanceClass :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createReplicationInstance
:: Text
-> Text
-> CreateReplicationInstance
createReplicationInstance pReplicationInstanceIdentifier_ pReplicationInstanceClass_ =
CreateReplicationInstance'
{ _criEngineVersion = Nothing
, _criPubliclyAccessible = Nothing
, _criAutoMinorVersionUpgrade = Nothing
, _criReplicationSubnetGroupIdentifier = Nothing
, _criPreferredMaintenanceWindow = Nothing
, _criKMSKeyId = Nothing
, _criAvailabilityZone = Nothing
, _criVPCSecurityGroupIds = Nothing
, _criMultiAZ = Nothing
, _criAllocatedStorage = Nothing
, _criTags = Nothing
, _criReplicationInstanceIdentifier = pReplicationInstanceIdentifier_
, _criReplicationInstanceClass = pReplicationInstanceClass_
}
criEngineVersion :: Lens' CreateReplicationInstance (Maybe Text)
criEngineVersion = lens _criEngineVersion (\ s a -> s{_criEngineVersion = a})
criPubliclyAccessible :: Lens' CreateReplicationInstance (Maybe Bool)
criPubliclyAccessible = lens _criPubliclyAccessible (\ s a -> s{_criPubliclyAccessible = a})
criAutoMinorVersionUpgrade :: Lens' CreateReplicationInstance (Maybe Bool)
criAutoMinorVersionUpgrade = lens _criAutoMinorVersionUpgrade (\ s a -> s{_criAutoMinorVersionUpgrade = a})
criReplicationSubnetGroupIdentifier :: Lens' CreateReplicationInstance (Maybe Text)
criReplicationSubnetGroupIdentifier = lens _criReplicationSubnetGroupIdentifier (\ s a -> s{_criReplicationSubnetGroupIdentifier = a})
criPreferredMaintenanceWindow :: Lens' CreateReplicationInstance (Maybe Text)
criPreferredMaintenanceWindow = lens _criPreferredMaintenanceWindow (\ s a -> s{_criPreferredMaintenanceWindow = a})
criKMSKeyId :: Lens' CreateReplicationInstance (Maybe Text)
criKMSKeyId = lens _criKMSKeyId (\ s a -> s{_criKMSKeyId = a})
criAvailabilityZone :: Lens' CreateReplicationInstance (Maybe Text)
criAvailabilityZone = lens _criAvailabilityZone (\ s a -> s{_criAvailabilityZone = a})
criVPCSecurityGroupIds :: Lens' CreateReplicationInstance [Text]
criVPCSecurityGroupIds = lens _criVPCSecurityGroupIds (\ s a -> s{_criVPCSecurityGroupIds = a}) . _Default . _Coerce
criMultiAZ :: Lens' CreateReplicationInstance (Maybe Bool)
criMultiAZ = lens _criMultiAZ (\ s a -> s{_criMultiAZ = a})
criAllocatedStorage :: Lens' CreateReplicationInstance (Maybe Int)
criAllocatedStorage = lens _criAllocatedStorage (\ s a -> s{_criAllocatedStorage = a})
criTags :: Lens' CreateReplicationInstance [Tag]
criTags = lens _criTags (\ s a -> s{_criTags = a}) . _Default . _Coerce
criReplicationInstanceIdentifier :: Lens' CreateReplicationInstance Text
criReplicationInstanceIdentifier = lens _criReplicationInstanceIdentifier (\ s a -> s{_criReplicationInstanceIdentifier = a})
criReplicationInstanceClass :: Lens' CreateReplicationInstance Text
criReplicationInstanceClass = lens _criReplicationInstanceClass (\ s a -> s{_criReplicationInstanceClass = a})
instance AWSRequest CreateReplicationInstance where
type Rs CreateReplicationInstance =
CreateReplicationInstanceResponse
request = postJSON dms
response
= receiveJSON
(\ s h x ->
CreateReplicationInstanceResponse' <$>
(x .?> "ReplicationInstance") <*>
(pure (fromEnum s)))
instance Hashable CreateReplicationInstance where
instance NFData CreateReplicationInstance where
instance ToHeaders CreateReplicationInstance where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonDMSv20160101.CreateReplicationInstance" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateReplicationInstance where
toJSON CreateReplicationInstance'{..}
= object
(catMaybes
[("EngineVersion" .=) <$> _criEngineVersion,
("PubliclyAccessible" .=) <$> _criPubliclyAccessible,
("AutoMinorVersionUpgrade" .=) <$>
_criAutoMinorVersionUpgrade,
("ReplicationSubnetGroupIdentifier" .=) <$>
_criReplicationSubnetGroupIdentifier,
("PreferredMaintenanceWindow" .=) <$>
_criPreferredMaintenanceWindow,
("KmsKeyId" .=) <$> _criKMSKeyId,
("AvailabilityZone" .=) <$> _criAvailabilityZone,
("VpcSecurityGroupIds" .=) <$>
_criVPCSecurityGroupIds,
("MultiAZ" .=) <$> _criMultiAZ,
("AllocatedStorage" .=) <$> _criAllocatedStorage,
("Tags" .=) <$> _criTags,
Just
("ReplicationInstanceIdentifier" .=
_criReplicationInstanceIdentifier),
Just
("ReplicationInstanceClass" .=
_criReplicationInstanceClass)])
instance ToPath CreateReplicationInstance where
toPath = const "/"
instance ToQuery CreateReplicationInstance where
toQuery = const mempty
data CreateReplicationInstanceResponse = CreateReplicationInstanceResponse'
{ _crirsReplicationInstance :: !(Maybe ReplicationInstance)
, _crirsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createReplicationInstanceResponse
:: Int
-> CreateReplicationInstanceResponse
createReplicationInstanceResponse pResponseStatus_ =
CreateReplicationInstanceResponse'
{ _crirsReplicationInstance = Nothing
, _crirsResponseStatus = pResponseStatus_
}
crirsReplicationInstance :: Lens' CreateReplicationInstanceResponse (Maybe ReplicationInstance)
crirsReplicationInstance = lens _crirsReplicationInstance (\ s a -> s{_crirsReplicationInstance = a})
crirsResponseStatus :: Lens' CreateReplicationInstanceResponse Int
crirsResponseStatus = lens _crirsResponseStatus (\ s a -> s{_crirsResponseStatus = a})
instance NFData CreateReplicationInstanceResponse
where