amazonka-efs-1.4.1: gen/Network/AWS/EFS/DescribeMountTargets.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.EFS.DescribeMountTargets
-- 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 the descriptions of all the current mount targets, or a specific
-- mount target, for a file system. When requesting all of the current
-- mount targets, the order of mount targets returned in the response is
-- unspecified.
--
-- This operation requires permission for the
-- 'elasticfilesystem:DescribeMountTargets' action, on either the file
-- system id that you specify in 'FileSystemId', or on the file system of
-- the mount target that you specify in 'MountTargetId'.
module Network.AWS.EFS.DescribeMountTargets
(
-- * Creating a Request
describeMountTargets
, DescribeMountTargets
-- * Request Lenses
, dmtFileSystemId
, dmtMarker
, dmtMaxItems
, dmtMountTargetId
-- * Destructuring the Response
, describeMountTargetsResponse
, DescribeMountTargetsResponse
-- * Response Lenses
, dmtrsMountTargets
, dmtrsMarker
, dmtrsNextMarker
, dmtrsResponseStatus
) where
import Network.AWS.EFS.Types
import Network.AWS.EFS.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'describeMountTargets' smart constructor.
data DescribeMountTargets = DescribeMountTargets'
{ _dmtFileSystemId :: !(Maybe Text)
, _dmtMarker :: !(Maybe Text)
, _dmtMaxItems :: !(Maybe Nat)
, _dmtMountTargetId :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DescribeMountTargets' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dmtFileSystemId'
--
-- * 'dmtMarker'
--
-- * 'dmtMaxItems'
--
-- * 'dmtMountTargetId'
describeMountTargets
:: DescribeMountTargets
describeMountTargets =
DescribeMountTargets'
{ _dmtFileSystemId = Nothing
, _dmtMarker = Nothing
, _dmtMaxItems = Nothing
, _dmtMountTargetId = Nothing
}
-- | Optional. String. The ID of the file system whose mount targets you want
-- to list. It must be included in your request if 'MountTargetId' is not
-- included.
dmtFileSystemId :: Lens' DescribeMountTargets (Maybe Text)
dmtFileSystemId = lens _dmtFileSystemId (\ s a -> s{_dmtFileSystemId = a});
-- | Optional. String. Opaque pagination token returned from a previous
-- 'DescribeMountTargets' operation. If present, it specifies to continue
-- the list from where the previous returning call left off.
dmtMarker :: Lens' DescribeMountTargets (Maybe Text)
dmtMarker = lens _dmtMarker (\ s a -> s{_dmtMarker = a});
-- | Optional. Maximum number of mount targets to return in the response. It
-- must be an integer with a value greater than zero.
dmtMaxItems :: Lens' DescribeMountTargets (Maybe Natural)
dmtMaxItems = lens _dmtMaxItems (\ s a -> s{_dmtMaxItems = a}) . mapping _Nat;
-- | Optional. String. The ID of the mount target that you want to have
-- described. It must be included in your request if 'FileSystemId' is not
-- included.
dmtMountTargetId :: Lens' DescribeMountTargets (Maybe Text)
dmtMountTargetId = lens _dmtMountTargetId (\ s a -> s{_dmtMountTargetId = a});
instance AWSRequest DescribeMountTargets where
type Rs DescribeMountTargets =
DescribeMountTargetsResponse
request = get efs
response
= receiveJSON
(\ s h x ->
DescribeMountTargetsResponse' <$>
(x .?> "MountTargets" .!@ mempty) <*>
(x .?> "Marker")
<*> (x .?> "NextMarker")
<*> (pure (fromEnum s)))
instance Hashable DescribeMountTargets
instance NFData DescribeMountTargets
instance ToHeaders DescribeMountTargets where
toHeaders = const mempty
instance ToPath DescribeMountTargets where
toPath = const "/2015-02-01/mount-targets"
instance ToQuery DescribeMountTargets where
toQuery DescribeMountTargets'{..}
= mconcat
["FileSystemId" =: _dmtFileSystemId,
"Marker" =: _dmtMarker, "MaxItems" =: _dmtMaxItems,
"MountTargetId" =: _dmtMountTargetId]
-- | /See:/ 'describeMountTargetsResponse' smart constructor.
data DescribeMountTargetsResponse = DescribeMountTargetsResponse'
{ _dmtrsMountTargets :: !(Maybe [MountTargetDescription])
, _dmtrsMarker :: !(Maybe Text)
, _dmtrsNextMarker :: !(Maybe Text)
, _dmtrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DescribeMountTargetsResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dmtrsMountTargets'
--
-- * 'dmtrsMarker'
--
-- * 'dmtrsNextMarker'
--
-- * 'dmtrsResponseStatus'
describeMountTargetsResponse
:: Int -- ^ 'dmtrsResponseStatus'
-> DescribeMountTargetsResponse
describeMountTargetsResponse pResponseStatus_ =
DescribeMountTargetsResponse'
{ _dmtrsMountTargets = Nothing
, _dmtrsMarker = Nothing
, _dmtrsNextMarker = Nothing
, _dmtrsResponseStatus = pResponseStatus_
}
-- | Returns the file system\'s mount targets as an array of
-- 'MountTargetDescription' objects.
dmtrsMountTargets :: Lens' DescribeMountTargetsResponse [MountTargetDescription]
dmtrsMountTargets = lens _dmtrsMountTargets (\ s a -> s{_dmtrsMountTargets = a}) . _Default . _Coerce;
-- | If the request included the 'Marker', the response returns that value in
-- this field.
dmtrsMarker :: Lens' DescribeMountTargetsResponse (Maybe Text)
dmtrsMarker = lens _dmtrsMarker (\ s a -> s{_dmtrsMarker = a});
-- | If a value is present, there are more mount targets to return. In a
-- subsequent request, you can provide 'Marker' in your request with this
-- value to retrieve the next set of mount targets.
dmtrsNextMarker :: Lens' DescribeMountTargetsResponse (Maybe Text)
dmtrsNextMarker = lens _dmtrsNextMarker (\ s a -> s{_dmtrsNextMarker = a});
-- | The response status code.
dmtrsResponseStatus :: Lens' DescribeMountTargetsResponse Int
dmtrsResponseStatus = lens _dmtrsResponseStatus (\ s a -> s{_dmtrsResponseStatus = a});
instance NFData DescribeMountTargetsResponse