module Network.AWS.RDS.CreateDBCluster
(
createDBCluster
, CreateDBCluster
, cdcEngineVersion
, cdcDBSubnetGroupName
, cdcPreferredMaintenanceWindow
, cdcAvailabilityZones
, cdcCharacterSetName
, cdcPreferredBackupWindow
, cdcBackupRetentionPeriod
, cdcVPCSecurityGroupIds
, cdcDatabaseName
, cdcDBClusterParameterGroupName
, cdcOptionGroupName
, cdcTags
, cdcPort
, cdcDBClusterIdentifier
, cdcEngine
, cdcMasterUsername
, cdcMasterUserPassword
, createDBClusterResponse
, CreateDBClusterResponse
, cdcrsDBCluster
, cdcrsResponseStatus
) where
import Network.AWS.Prelude
import Network.AWS.RDS.Types
import Network.AWS.RDS.Types.Product
import Network.AWS.Request
import Network.AWS.Response
data CreateDBCluster = CreateDBCluster'
{ _cdcEngineVersion :: !(Maybe Text)
, _cdcDBSubnetGroupName :: !(Maybe Text)
, _cdcPreferredMaintenanceWindow :: !(Maybe Text)
, _cdcAvailabilityZones :: !(Maybe [Text])
, _cdcCharacterSetName :: !(Maybe Text)
, _cdcPreferredBackupWindow :: !(Maybe Text)
, _cdcBackupRetentionPeriod :: !(Maybe Int)
, _cdcVPCSecurityGroupIds :: !(Maybe [Text])
, _cdcDatabaseName :: !(Maybe Text)
, _cdcDBClusterParameterGroupName :: !(Maybe Text)
, _cdcOptionGroupName :: !(Maybe Text)
, _cdcTags :: !(Maybe [Tag])
, _cdcPort :: !(Maybe Int)
, _cdcDBClusterIdentifier :: !Text
, _cdcEngine :: !Text
, _cdcMasterUsername :: !Text
, _cdcMasterUserPassword :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createDBCluster
:: Text
-> Text
-> Text
-> Text
-> CreateDBCluster
createDBCluster pDBClusterIdentifier_ pEngine_ pMasterUsername_ pMasterUserPassword_ =
CreateDBCluster'
{ _cdcEngineVersion = Nothing
, _cdcDBSubnetGroupName = Nothing
, _cdcPreferredMaintenanceWindow = Nothing
, _cdcAvailabilityZones = Nothing
, _cdcCharacterSetName = Nothing
, _cdcPreferredBackupWindow = Nothing
, _cdcBackupRetentionPeriod = Nothing
, _cdcVPCSecurityGroupIds = Nothing
, _cdcDatabaseName = Nothing
, _cdcDBClusterParameterGroupName = Nothing
, _cdcOptionGroupName = Nothing
, _cdcTags = Nothing
, _cdcPort = Nothing
, _cdcDBClusterIdentifier = pDBClusterIdentifier_
, _cdcEngine = pEngine_
, _cdcMasterUsername = pMasterUsername_
, _cdcMasterUserPassword = pMasterUserPassword_
}
cdcEngineVersion :: Lens' CreateDBCluster (Maybe Text)
cdcEngineVersion = lens _cdcEngineVersion (\ s a -> s{_cdcEngineVersion = a});
cdcDBSubnetGroupName :: Lens' CreateDBCluster (Maybe Text)
cdcDBSubnetGroupName = lens _cdcDBSubnetGroupName (\ s a -> s{_cdcDBSubnetGroupName = a});
cdcPreferredMaintenanceWindow :: Lens' CreateDBCluster (Maybe Text)
cdcPreferredMaintenanceWindow = lens _cdcPreferredMaintenanceWindow (\ s a -> s{_cdcPreferredMaintenanceWindow = a});
cdcAvailabilityZones :: Lens' CreateDBCluster [Text]
cdcAvailabilityZones = lens _cdcAvailabilityZones (\ s a -> s{_cdcAvailabilityZones = a}) . _Default . _Coerce;
cdcCharacterSetName :: Lens' CreateDBCluster (Maybe Text)
cdcCharacterSetName = lens _cdcCharacterSetName (\ s a -> s{_cdcCharacterSetName = a});
cdcPreferredBackupWindow :: Lens' CreateDBCluster (Maybe Text)
cdcPreferredBackupWindow = lens _cdcPreferredBackupWindow (\ s a -> s{_cdcPreferredBackupWindow = a});
cdcBackupRetentionPeriod :: Lens' CreateDBCluster (Maybe Int)
cdcBackupRetentionPeriod = lens _cdcBackupRetentionPeriod (\ s a -> s{_cdcBackupRetentionPeriod = a});
cdcVPCSecurityGroupIds :: Lens' CreateDBCluster [Text]
cdcVPCSecurityGroupIds = lens _cdcVPCSecurityGroupIds (\ s a -> s{_cdcVPCSecurityGroupIds = a}) . _Default . _Coerce;
cdcDatabaseName :: Lens' CreateDBCluster (Maybe Text)
cdcDatabaseName = lens _cdcDatabaseName (\ s a -> s{_cdcDatabaseName = a});
cdcDBClusterParameterGroupName :: Lens' CreateDBCluster (Maybe Text)
cdcDBClusterParameterGroupName = lens _cdcDBClusterParameterGroupName (\ s a -> s{_cdcDBClusterParameterGroupName = a});
cdcOptionGroupName :: Lens' CreateDBCluster (Maybe Text)
cdcOptionGroupName = lens _cdcOptionGroupName (\ s a -> s{_cdcOptionGroupName = a});
cdcTags :: Lens' CreateDBCluster [Tag]
cdcTags = lens _cdcTags (\ s a -> s{_cdcTags = a}) . _Default . _Coerce;
cdcPort :: Lens' CreateDBCluster (Maybe Int)
cdcPort = lens _cdcPort (\ s a -> s{_cdcPort = a});
cdcDBClusterIdentifier :: Lens' CreateDBCluster Text
cdcDBClusterIdentifier = lens _cdcDBClusterIdentifier (\ s a -> s{_cdcDBClusterIdentifier = a});
cdcEngine :: Lens' CreateDBCluster Text
cdcEngine = lens _cdcEngine (\ s a -> s{_cdcEngine = a});
cdcMasterUsername :: Lens' CreateDBCluster Text
cdcMasterUsername = lens _cdcMasterUsername (\ s a -> s{_cdcMasterUsername = a});
cdcMasterUserPassword :: Lens' CreateDBCluster Text
cdcMasterUserPassword = lens _cdcMasterUserPassword (\ s a -> s{_cdcMasterUserPassword = a});
instance AWSRequest CreateDBCluster where
type Rs CreateDBCluster = CreateDBClusterResponse
request = postQuery rDS
response
= receiveXMLWrapper "CreateDBClusterResult"
(\ s h x ->
CreateDBClusterResponse' <$>
(x .@? "DBCluster") <*> (pure (fromEnum s)))
instance ToHeaders CreateDBCluster where
toHeaders = const mempty
instance ToPath CreateDBCluster where
toPath = const "/"
instance ToQuery CreateDBCluster where
toQuery CreateDBCluster'{..}
= mconcat
["Action" =: ("CreateDBCluster" :: ByteString),
"Version" =: ("2014-10-31" :: ByteString),
"EngineVersion" =: _cdcEngineVersion,
"DBSubnetGroupName" =: _cdcDBSubnetGroupName,
"PreferredMaintenanceWindow" =:
_cdcPreferredMaintenanceWindow,
"AvailabilityZones" =:
toQuery
(toQueryList "AvailabilityZone" <$>
_cdcAvailabilityZones),
"CharacterSetName" =: _cdcCharacterSetName,
"PreferredBackupWindow" =: _cdcPreferredBackupWindow,
"BackupRetentionPeriod" =: _cdcBackupRetentionPeriod,
"VpcSecurityGroupIds" =:
toQuery
(toQueryList "VpcSecurityGroupId" <$>
_cdcVPCSecurityGroupIds),
"DatabaseName" =: _cdcDatabaseName,
"DBClusterParameterGroupName" =:
_cdcDBClusterParameterGroupName,
"OptionGroupName" =: _cdcOptionGroupName,
"Tags" =: toQuery (toQueryList "Tag" <$> _cdcTags),
"Port" =: _cdcPort,
"DBClusterIdentifier" =: _cdcDBClusterIdentifier,
"Engine" =: _cdcEngine,
"MasterUsername" =: _cdcMasterUsername,
"MasterUserPassword" =: _cdcMasterUserPassword]
data CreateDBClusterResponse = CreateDBClusterResponse'
{ _cdcrsDBCluster :: !(Maybe DBCluster)
, _cdcrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createDBClusterResponse
:: Int
-> CreateDBClusterResponse
createDBClusterResponse pResponseStatus_ =
CreateDBClusterResponse'
{ _cdcrsDBCluster = Nothing
, _cdcrsResponseStatus = pResponseStatus_
}
cdcrsDBCluster :: Lens' CreateDBClusterResponse (Maybe DBCluster)
cdcrsDBCluster = lens _cdcrsDBCluster (\ s a -> s{_cdcrsDBCluster = a});
cdcrsResponseStatus :: Lens' CreateDBClusterResponse Int
cdcrsResponseStatus = lens _cdcrsResponseStatus (\ s a -> s{_cdcrsResponseStatus = a});