{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module Network.Google.Resource.Directory.Users.List
(
UsersListResource
, usersList
, UsersList
, ulEvent
, ulOrderBy
, ulViewType
, ulCustomFieldMask
, ulDomain
, ulShowDeleted
, ulSortOrder
, ulCustomer
, ulQuery
, ulProjection
, ulPageToken
, ulMaxResults
) where
import Network.Google.Directory.Types
import Network.Google.Prelude
type UsersListResource =
"admin" :>
"directory" :>
"v1" :>
"users" :>
QueryParam "event" UsersListEvent :>
QueryParam "orderBy" UsersListOrderBy :>
QueryParam "viewType" UsersListViewType :>
QueryParam "customFieldMask" Text :>
QueryParam "domain" Text :>
QueryParam "showDeleted" Text :>
QueryParam "sortOrder" UsersListSortOrder :>
QueryParam "customer" Text :>
QueryParam "query" Text :>
QueryParam "projection" UsersListProjection :>
QueryParam "pageToken" Text :>
QueryParam "maxResults" (Textual Int32) :>
QueryParam "alt" AltJSON :>
Get '[JSON] Users
-- | Retrieve either deleted users or all users in a domain (paginated)
--
-- /See:/ 'usersList' smart constructor.
data UsersList = UsersList'
{ _ulEvent :: !(Maybe UsersListEvent)
, _ulOrderBy :: !(Maybe UsersListOrderBy)
, _ulViewType :: !UsersListViewType
, _ulCustomFieldMask :: !(Maybe Text)
, _ulDomain :: !(Maybe Text)
, _ulShowDeleted :: !(Maybe Text)
, _ulSortOrder :: !(Maybe UsersListSortOrder)
, _ulCustomer :: !(Maybe Text)
, _ulQuery :: !(Maybe Text)
, _ulProjection :: !UsersListProjection
, _ulPageToken :: !(Maybe Text)
, _ulMaxResults :: !(Maybe (Textual Int32))
} deriving (Eq,Show,Data,Typeable,Generic)
-- | Creates a value of 'UsersList' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ulEvent'
--
-- * 'ulOrderBy'
--
-- * 'ulViewType'
--
-- * 'ulCustomFieldMask'
--
-- * 'ulDomain'
--
-- * 'ulShowDeleted'
--
-- * 'ulSortOrder'
--
-- * 'ulCustomer'
--
-- * 'ulQuery'
--
-- * 'ulProjection'
--
-- * 'ulPageToken'
--
-- * 'ulMaxResults'
usersList
:: UsersList
usersList =
UsersList'
{ _ulEvent = Nothing
, _ulOrderBy = Nothing
, _ulViewType = AdminView
, _ulCustomFieldMask = Nothing
, _ulDomain = Nothing
, _ulShowDeleted = Nothing
, _ulSortOrder = Nothing
, _ulCustomer = Nothing
, _ulQuery = Nothing
, _ulProjection = ULPBasic
, _ulPageToken = Nothing
, _ulMaxResults = Nothing
}
-- | Event on which subscription is intended (if subscribing)
ulEvent :: Lens' UsersList (Maybe UsersListEvent)
ulEvent = lens _ulEvent (\ s a -> s{_ulEvent = a})
-- | Column to use for sorting results
ulOrderBy :: Lens' UsersList (Maybe UsersListOrderBy)
ulOrderBy
= lens _ulOrderBy (\ s a -> s{_ulOrderBy = a})
-- | Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.
ulViewType :: Lens' UsersList UsersListViewType
ulViewType
= lens _ulViewType (\ s a -> s{_ulViewType = a})
-- | Comma-separated list of schema names. All fields from these schemas are
-- fetched. This should only be set when projection=custom.
ulCustomFieldMask :: Lens' UsersList (Maybe Text)
ulCustomFieldMask
= lens _ulCustomFieldMask
(\ s a -> s{_ulCustomFieldMask = a})
-- | Name of the domain. Fill this field to get users from only this domain.
-- To return all users in a multi-domain fill customer field instead.
ulDomain :: Lens' UsersList (Maybe Text)
ulDomain = lens _ulDomain (\ s a -> s{_ulDomain = a})
-- | If set to true retrieves the list of deleted users. Default is false
ulShowDeleted :: Lens' UsersList (Maybe Text)
ulShowDeleted
= lens _ulShowDeleted
(\ s a -> s{_ulShowDeleted = a})
-- | Whether to return results in ascending or descending order.
ulSortOrder :: Lens' UsersList (Maybe UsersListSortOrder)
ulSortOrder
= lens _ulSortOrder (\ s a -> s{_ulSortOrder = a})
-- | Immutable id of the Google Apps account. In case of multi-domain, to
-- fetch all users for a customer, fill this field instead of domain.
ulCustomer :: Lens' UsersList (Maybe Text)
ulCustomer
= lens _ulCustomer (\ s a -> s{_ulCustomer = a})
-- | Query string search. Should be of the form \"\". Complete documentation
-- is at
-- https:\/\/developers.google.com\/admin-sdk\/directory\/v1\/guides\/search-users
ulQuery :: Lens' UsersList (Maybe Text)
ulQuery = lens _ulQuery (\ s a -> s{_ulQuery = a})
-- | What subset of fields to fetch for this user.
ulProjection :: Lens' UsersList UsersListProjection
ulProjection
= lens _ulProjection (\ s a -> s{_ulProjection = a})
-- | Token to specify next page in the list
ulPageToken :: Lens' UsersList (Maybe Text)
ulPageToken
= lens _ulPageToken (\ s a -> s{_ulPageToken = a})
-- | Maximum number of results to return. Default is 100. Max allowed is 500
ulMaxResults :: Lens' UsersList (Maybe Int32)
ulMaxResults
= lens _ulMaxResults (\ s a -> s{_ulMaxResults = a})
. mapping _Coerce
instance GoogleRequest UsersList where
type Rs UsersList = Users
type Scopes UsersList =
'["https://www.googleapis.com/auth/admin.directory.user",
"https://www.googleapis.com/auth/admin.directory.user.readonly"]
requestClient UsersList'{..}
= go _ulEvent _ulOrderBy (Just _ulViewType)
_ulCustomFieldMask
_ulDomain
_ulShowDeleted
_ulSortOrder
_ulCustomer
_ulQuery
(Just _ulProjection)
_ulPageToken
_ulMaxResults
(Just AltJSON)
directoryService
where go
= buildClient (Proxy :: Proxy UsersListResource)
mempty