{-# 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 #-}
module Network.AWS.WorkDocs.DescribeUsers
(
describeUsers
, DescribeUsers
, duInclude
, duUserIds
, duAuthenticationToken
, duSort
, duMarker
, duQuery
, duLimit
, duOrder
, duOrganizationId
, duFields
, describeUsersResponse
, DescribeUsersResponse
, dursUsers
, dursTotalNumberOfUsers
, dursMarker
, dursResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WorkDocs.Types
import Network.AWS.WorkDocs.Types.Product
data DescribeUsers = DescribeUsers'
{ _duInclude :: !(Maybe UserFilterType)
, _duUserIds :: !(Maybe Text)
, _duAuthenticationToken :: !(Maybe (Sensitive Text))
, _duSort :: !(Maybe UserSortType)
, _duMarker :: !(Maybe Text)
, _duQuery :: !(Maybe (Sensitive Text))
, _duLimit :: !(Maybe Nat)
, _duOrder :: !(Maybe OrderType)
, _duOrganizationId :: !(Maybe Text)
, _duFields :: !(Maybe Text)
} deriving (Eq, Show, Data, Typeable, Generic)
describeUsers
:: DescribeUsers
describeUsers =
DescribeUsers'
{ _duInclude = Nothing
, _duUserIds = Nothing
, _duAuthenticationToken = Nothing
, _duSort = Nothing
, _duMarker = Nothing
, _duQuery = Nothing
, _duLimit = Nothing
, _duOrder = Nothing
, _duOrganizationId = Nothing
, _duFields = Nothing
}
duInclude :: Lens' DescribeUsers (Maybe UserFilterType)
duInclude = lens _duInclude (\ s a -> s{_duInclude = a})
duUserIds :: Lens' DescribeUsers (Maybe Text)
duUserIds = lens _duUserIds (\ s a -> s{_duUserIds = a})
duAuthenticationToken :: Lens' DescribeUsers (Maybe Text)
duAuthenticationToken = lens _duAuthenticationToken (\ s a -> s{_duAuthenticationToken = a}) . mapping _Sensitive
duSort :: Lens' DescribeUsers (Maybe UserSortType)
duSort = lens _duSort (\ s a -> s{_duSort = a})
duMarker :: Lens' DescribeUsers (Maybe Text)
duMarker = lens _duMarker (\ s a -> s{_duMarker = a})
duQuery :: Lens' DescribeUsers (Maybe Text)
duQuery = lens _duQuery (\ s a -> s{_duQuery = a}) . mapping _Sensitive
duLimit :: Lens' DescribeUsers (Maybe Natural)
duLimit = lens _duLimit (\ s a -> s{_duLimit = a}) . mapping _Nat
duOrder :: Lens' DescribeUsers (Maybe OrderType)
duOrder = lens _duOrder (\ s a -> s{_duOrder = a})
duOrganizationId :: Lens' DescribeUsers (Maybe Text)
duOrganizationId = lens _duOrganizationId (\ s a -> s{_duOrganizationId = a})
duFields :: Lens' DescribeUsers (Maybe Text)
duFields = lens _duFields (\ s a -> s{_duFields = a})
instance AWSPager DescribeUsers where
page rq rs
| stop (rs ^. dursMarker) = Nothing
| stop (rs ^. dursUsers) = Nothing
| otherwise =
Just $ rq & duMarker .~ rs ^. dursMarker
instance AWSRequest DescribeUsers where
type Rs DescribeUsers = DescribeUsersResponse
request = get workDocs
response
= receiveJSON
(\ s h x ->
DescribeUsersResponse' <$>
(x .?> "Users" .!@ mempty) <*>
(x .?> "TotalNumberOfUsers")
<*> (x .?> "Marker")
<*> (pure (fromEnum s)))
instance Hashable DescribeUsers where
instance NFData DescribeUsers where
instance ToHeaders DescribeUsers where
toHeaders DescribeUsers'{..}
= mconcat
["Authentication" =# _duAuthenticationToken,
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)]
instance ToPath DescribeUsers where
toPath = const "/api/v1/users"
instance ToQuery DescribeUsers where
toQuery DescribeUsers'{..}
= mconcat
["include" =: _duInclude, "userIds" =: _duUserIds,
"sort" =: _duSort, "marker" =: _duMarker,
"query" =: _duQuery, "limit" =: _duLimit,
"order" =: _duOrder,
"organizationId" =: _duOrganizationId,
"fields" =: _duFields]
data DescribeUsersResponse = DescribeUsersResponse'
{ _dursUsers :: !(Maybe [User])
, _dursTotalNumberOfUsers :: !(Maybe Integer)
, _dursMarker :: !(Maybe Text)
, _dursResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeUsersResponse
:: Int
-> DescribeUsersResponse
describeUsersResponse pResponseStatus_ =
DescribeUsersResponse'
{ _dursUsers = Nothing
, _dursTotalNumberOfUsers = Nothing
, _dursMarker = Nothing
, _dursResponseStatus = pResponseStatus_
}
dursUsers :: Lens' DescribeUsersResponse [User]
dursUsers = lens _dursUsers (\ s a -> s{_dursUsers = a}) . _Default . _Coerce
dursTotalNumberOfUsers :: Lens' DescribeUsersResponse (Maybe Integer)
dursTotalNumberOfUsers = lens _dursTotalNumberOfUsers (\ s a -> s{_dursTotalNumberOfUsers = a})
dursMarker :: Lens' DescribeUsersResponse (Maybe Text)
dursMarker = lens _dursMarker (\ s a -> s{_dursMarker = a})
dursResponseStatus :: Lens' DescribeUsersResponse Int
dursResponseStatus = lens _dursResponseStatus (\ s a -> s{_dursResponseStatus = a})
instance NFData DescribeUsersResponse where