amazonka-ssm-1.3.7: gen/Network/AWS/SSM/ListCommands.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.SSM.ListCommands
-- Copyright : (c) 2013-2015 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)
--
-- Lists the commands requested by users of the AWS account.
--
-- /See:/ <http://docs.aws.amazon.com/ssm/latest/APIReference/API_ListCommands.html AWS API Reference> for ListCommands.
module Network.AWS.SSM.ListCommands
(
-- * Creating a Request
listCommands
, ListCommands
-- * Request Lenses
, lcInstanceId
, lcFilters
, lcNextToken
, lcCommandId
, lcMaxResults
-- * Destructuring the Response
, listCommandsResponse
, ListCommandsResponse
-- * Response Lenses
, lcrsCommands
, lcrsNextToken
, lcrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.SSM.Types
import Network.AWS.SSM.Types.Product
-- | /See:/ 'listCommands' smart constructor.
data ListCommands = ListCommands'
{ _lcInstanceId :: !(Maybe Text)
, _lcFilters :: !(Maybe (List1 CommandFilter))
, _lcNextToken :: !(Maybe Text)
, _lcCommandId :: !(Maybe Text)
, _lcMaxResults :: !(Maybe Nat)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ListCommands' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'lcInstanceId'
--
-- * 'lcFilters'
--
-- * 'lcNextToken'
--
-- * 'lcCommandId'
--
-- * 'lcMaxResults'
listCommands
:: ListCommands
listCommands =
ListCommands'
{ _lcInstanceId = Nothing
, _lcFilters = Nothing
, _lcNextToken = Nothing
, _lcCommandId = Nothing
, _lcMaxResults = Nothing
}
-- | (Optional) Lists commands issued against this instance ID.
lcInstanceId :: Lens' ListCommands (Maybe Text)
lcInstanceId = lens _lcInstanceId (\ s a -> s{_lcInstanceId = a});
-- | (Optional) One or more filters. Use a filter to return a more specific
-- list of results.
lcFilters :: Lens' ListCommands (Maybe (NonEmpty CommandFilter))
lcFilters = lens _lcFilters (\ s a -> s{_lcFilters = a}) . mapping _List1;
-- | (Optional) The token for the next set of items to return. (You received
-- this token from a previous call.)
lcNextToken :: Lens' ListCommands (Maybe Text)
lcNextToken = lens _lcNextToken (\ s a -> s{_lcNextToken = a});
-- | (Optional) If provided, lists only the specified command.
lcCommandId :: Lens' ListCommands (Maybe Text)
lcCommandId = lens _lcCommandId (\ s a -> s{_lcCommandId = a});
-- | (Optional) The maximum number of items to return for this call. The call
-- also returns a token that you can specify in a subsequent call to get
-- the next set of results.
lcMaxResults :: Lens' ListCommands (Maybe Natural)
lcMaxResults = lens _lcMaxResults (\ s a -> s{_lcMaxResults = a}) . mapping _Nat;
instance AWSRequest ListCommands where
type Rs ListCommands = ListCommandsResponse
request = postJSON sSM
response
= receiveJSON
(\ s h x ->
ListCommandsResponse' <$>
(x .?> "Commands" .!@ mempty) <*> (x .?> "NextToken")
<*> (pure (fromEnum s)))
instance ToHeaders ListCommands where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonSSM.ListCommands" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListCommands where
toJSON ListCommands'{..}
= object
(catMaybes
[("InstanceId" .=) <$> _lcInstanceId,
("Filters" .=) <$> _lcFilters,
("NextToken" .=) <$> _lcNextToken,
("CommandId" .=) <$> _lcCommandId,
("MaxResults" .=) <$> _lcMaxResults])
instance ToPath ListCommands where
toPath = const "/"
instance ToQuery ListCommands where
toQuery = const mempty
-- | /See:/ 'listCommandsResponse' smart constructor.
data ListCommandsResponse = ListCommandsResponse'
{ _lcrsCommands :: !(Maybe [Command])
, _lcrsNextToken :: !(Maybe Text)
, _lcrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ListCommandsResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'lcrsCommands'
--
-- * 'lcrsNextToken'
--
-- * 'lcrsResponseStatus'
listCommandsResponse
:: Int -- ^ 'lcrsResponseStatus'
-> ListCommandsResponse
listCommandsResponse pResponseStatus_ =
ListCommandsResponse'
{ _lcrsCommands = Nothing
, _lcrsNextToken = Nothing
, _lcrsResponseStatus = pResponseStatus_
}
-- | (Optional) The list of commands requested by the user.
lcrsCommands :: Lens' ListCommandsResponse [Command]
lcrsCommands = lens _lcrsCommands (\ s a -> s{_lcrsCommands = a}) . _Default . _Coerce;
-- | (Optional) The token for the next set of items to return. (You received
-- this token from a previous call.)
lcrsNextToken :: Lens' ListCommandsResponse (Maybe Text)
lcrsNextToken = lens _lcrsNextToken (\ s a -> s{_lcrsNextToken = a});
-- | The response status code.
lcrsResponseStatus :: Lens' ListCommandsResponse Int
lcrsResponseStatus = lens _lcrsResponseStatus (\ s a -> s{_lcrsResponseStatus = a});