{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Module : Network.AWS.RDS.DeleteDBInstance -- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com> -- License : This Source Code Form is subject to the terms of -- the Mozilla Public License, v. 2.0. -- A copy of the MPL can be found in the LICENSE file or -- you can obtain it at http://mozilla.org/MPL/2.0/. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com> -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | The DeleteDBInstance action deletes a previously provisioned DB instance. A -- successful response from the web service indicates the request was received -- correctly. When you delete a DB instance, all automated backups for that -- instance are deleted and cannot be recovered. Manual DB snapshots of the DB -- instance to be deleted are not deleted. -- -- If a final DB snapshot is requested the status of the RDS instance will be -- "deleting" until the DB snapshot is created. The API action 'DescribeDBInstance' -- is used to monitor the status of this operation. The action cannot be -- canceled or reverted once submitted. -- -- <http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBInstance.html> module Network.AWS.RDS.DeleteDBInstance ( -- * Request DeleteDBInstance -- ** Request constructor , deleteDBInstance -- ** Request lenses , ddbiDBInstanceIdentifier , ddbiFinalDBSnapshotIdentifier , ddbiSkipFinalSnapshot -- * Response , DeleteDBInstanceResponse -- ** Response constructor , deleteDBInstanceResponse -- ** Response lenses , ddbirDBInstance ) where import Network.AWS.Prelude import Network.AWS.Request.Query import Network.AWS.RDS.Types import qualified GHC.Exts data DeleteDBInstance = DeleteDBInstance { _ddbiDBInstanceIdentifier :: Text , _ddbiFinalDBSnapshotIdentifier :: Maybe Text , _ddbiSkipFinalSnapshot :: Maybe Bool } deriving (Eq, Ord, Show) -- | 'DeleteDBInstance' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'ddbiDBInstanceIdentifier' @::@ 'Text' -- -- * 'ddbiFinalDBSnapshotIdentifier' @::@ 'Maybe' 'Text' -- -- * 'ddbiSkipFinalSnapshot' @::@ 'Maybe' 'Bool' -- deleteDBInstance :: Text -- ^ 'ddbiDBInstanceIdentifier' -> DeleteDBInstance deleteDBInstance p1 = DeleteDBInstance { _ddbiDBInstanceIdentifier = p1 , _ddbiSkipFinalSnapshot = Nothing , _ddbiFinalDBSnapshotIdentifier = Nothing } -- | The DB instance identifier for the DB instance to be deleted. This parameter -- isn't case sensitive. -- -- Constraints: -- -- Must contain from 1 to 63 alphanumeric characters or hyphens First -- character must be a letter Cannot end with a hyphen or contain two -- consecutive hyphens ddbiDBInstanceIdentifier :: Lens' DeleteDBInstance Text ddbiDBInstanceIdentifier = lens _ddbiDBInstanceIdentifier (\s a -> s { _ddbiDBInstanceIdentifier = a }) -- | The DBSnapshotIdentifier of the new DBSnapshot created when -- SkipFinalSnapshot is set to 'false'. -- -- Constraints: -- -- Must be 1 to 255 alphanumeric characters First character must be a letter Cannot end with a hyphen or contain two consecutive hyphens -- Cannot be specified when deleting a read replica. ddbiFinalDBSnapshotIdentifier :: Lens' DeleteDBInstance (Maybe Text) ddbiFinalDBSnapshotIdentifier = lens _ddbiFinalDBSnapshotIdentifier (\s a -> s { _ddbiFinalDBSnapshotIdentifier = a }) -- | Determines whether a final DB snapshot is created before the DB instance is -- deleted. If 'true' is specified, no DBSnapshot is created. If 'false' is -- specified, a DB snapshot is created before the DB instance is deleted. -- -- Specify 'true' when deleting a read replica. -- -- Default: 'false' ddbiSkipFinalSnapshot :: Lens' DeleteDBInstance (Maybe Bool) ddbiSkipFinalSnapshot = lens _ddbiSkipFinalSnapshot (\s a -> s { _ddbiSkipFinalSnapshot = a }) newtype DeleteDBInstanceResponse = DeleteDBInstanceResponse { _ddbirDBInstance :: Maybe DBInstance } deriving (Eq, Show) -- | 'DeleteDBInstanceResponse' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'ddbirDBInstance' @::@ 'Maybe' 'DBInstance' -- deleteDBInstanceResponse :: DeleteDBInstanceResponse deleteDBInstanceResponse = DeleteDBInstanceResponse { _ddbirDBInstance = Nothing } ddbirDBInstance :: Lens' DeleteDBInstanceResponse (Maybe DBInstance) ddbirDBInstance = lens _ddbirDBInstance (\s a -> s { _ddbirDBInstance = a }) instance ToPath DeleteDBInstance where toPath = const "/" instance ToQuery DeleteDBInstance where toQuery DeleteDBInstance{..} = mconcat [ "DBInstanceIdentifier" =? _ddbiDBInstanceIdentifier , "FinalDBSnapshotIdentifier" =? _ddbiFinalDBSnapshotIdentifier , "SkipFinalSnapshot" =? _ddbiSkipFinalSnapshot ] instance ToHeaders DeleteDBInstance instance AWSRequest DeleteDBInstance where type Sv DeleteDBInstance = RDS type Rs DeleteDBInstance = DeleteDBInstanceResponse request = post "DeleteDBInstance" response = xmlResponse instance FromXML DeleteDBInstanceResponse where parseXML = withElement "DeleteDBInstanceResult" $ \x -> DeleteDBInstanceResponse <$> x .@? "DBInstance"