amazonka-rds-1.4.0: gen/Network/AWS/RDS/DescribeDBSnapshotAttributes.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.RDS.DescribeDBSnapshotAttributes
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns a list of DB snapshot attribute names and values for a manual DB
-- snapshot.
--
-- When sharing snapshots with other AWS accounts,
-- 'DescribeDBSnapshotAttributes' returns the 'restore' attribute and a
-- list of the AWS account ids that are authorized to copy or restore the
-- manual DB snapshot. If 'all' is included in the list of values for the
-- 'restore' attribute, then the manual DB snapshot is public and can be
-- copied or restored by all AWS accounts.
--
-- To add or remove access for an AWS account to copy or restore a manual
-- DB snapshot, or to make the manual DB snapshot public or private, use
-- the < ModifyDBSnapshotAttribute> API.
module Network.AWS.RDS.DescribeDBSnapshotAttributes
(
-- * Creating a Request
describeDBSnapshotAttributes
, DescribeDBSnapshotAttributes
-- * Request Lenses
, ddsaDBSnapshotIdentifier
-- * Destructuring the Response
, describeDBSnapshotAttributesResponse
, DescribeDBSnapshotAttributesResponse
-- * Response Lenses
, ddsarsDBSnapshotAttributesResult
, ddsarsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.RDS.Types
import Network.AWS.RDS.Types.Product
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'describeDBSnapshotAttributes' smart constructor.
newtype DescribeDBSnapshotAttributes = DescribeDBSnapshotAttributes'
{ _ddsaDBSnapshotIdentifier :: Maybe Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DescribeDBSnapshotAttributes' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ddsaDBSnapshotIdentifier'
describeDBSnapshotAttributes
:: DescribeDBSnapshotAttributes
describeDBSnapshotAttributes =
DescribeDBSnapshotAttributes'
{ _ddsaDBSnapshotIdentifier = Nothing
}
-- | The identifier for the DB snapshot to modify the attributes for.
ddsaDBSnapshotIdentifier :: Lens' DescribeDBSnapshotAttributes (Maybe Text)
ddsaDBSnapshotIdentifier = lens _ddsaDBSnapshotIdentifier (\ s a -> s{_ddsaDBSnapshotIdentifier = a});
instance AWSRequest DescribeDBSnapshotAttributes
where
type Rs DescribeDBSnapshotAttributes =
DescribeDBSnapshotAttributesResponse
request = postQuery rds
response
= receiveXMLWrapper
"DescribeDBSnapshotAttributesResult"
(\ s h x ->
DescribeDBSnapshotAttributesResponse' <$>
(x .@? "DBSnapshotAttributesResult") <*>
(pure (fromEnum s)))
instance Hashable DescribeDBSnapshotAttributes
instance ToHeaders DescribeDBSnapshotAttributes where
toHeaders = const mempty
instance ToPath DescribeDBSnapshotAttributes where
toPath = const "/"
instance ToQuery DescribeDBSnapshotAttributes where
toQuery DescribeDBSnapshotAttributes'{..}
= mconcat
["Action" =:
("DescribeDBSnapshotAttributes" :: ByteString),
"Version" =: ("2014-10-31" :: ByteString),
"DBSnapshotIdentifier" =: _ddsaDBSnapshotIdentifier]
-- | /See:/ 'describeDBSnapshotAttributesResponse' smart constructor.
data DescribeDBSnapshotAttributesResponse = DescribeDBSnapshotAttributesResponse'
{ _ddsarsDBSnapshotAttributesResult :: !(Maybe DBSnapshotAttributesResult)
, _ddsarsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DescribeDBSnapshotAttributesResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ddsarsDBSnapshotAttributesResult'
--
-- * 'ddsarsResponseStatus'
describeDBSnapshotAttributesResponse
:: Int -- ^ 'ddsarsResponseStatus'
-> DescribeDBSnapshotAttributesResponse
describeDBSnapshotAttributesResponse pResponseStatus_ =
DescribeDBSnapshotAttributesResponse'
{ _ddsarsDBSnapshotAttributesResult = Nothing
, _ddsarsResponseStatus = pResponseStatus_
}
-- | Undocumented member.
ddsarsDBSnapshotAttributesResult :: Lens' DescribeDBSnapshotAttributesResponse (Maybe DBSnapshotAttributesResult)
ddsarsDBSnapshotAttributesResult = lens _ddsarsDBSnapshotAttributesResult (\ s a -> s{_ddsarsDBSnapshotAttributesResult = a});
-- | The response status code.
ddsarsResponseStatus :: Lens' DescribeDBSnapshotAttributesResponse Int
ddsarsResponseStatus = lens _ddsarsResponseStatus (\ s a -> s{_ddsarsResponseStatus = a});