searchUsers method

Future<SearchUsersResult> searchUsers({
  1. required String directoryId,
  2. required List<String> searchAttributes,
  3. required String searchString,
  4. int? maxResults,
  5. String? nextToken,
  6. String? realm,
})

Searches the specified directory for a user. You can find users that match the SearchString parameter with the value of their attributes included in the SearchString parameter.

This operation supports pagination with the use of the NextToken request and response parameters. If more results are available, the SearchUsers.NextToken member contains a token that you pass in the next call to SearchUsers. This retrieves the next set of items.

You can also specify a maximum number of return results with the MaxResults parameter.

May throw AccessDeniedException. May throw DirectoryUnavailableException. May throw InternalServerException. May throw ThrottlingException. May throw ValidationException.

Parameter directoryId : The identifier (ID) of the directory that's associated with the user.

Parameter searchAttributes : One or more data attributes that are used to search for a user. For a list of supported attributes, see Directory Service Data Attributes.

Parameter searchString : The attribute value that you want to search for.

Parameter maxResults : The maximum number of results to be returned per request.

Parameter nextToken : An encoded paging token for paginated calls that can be passed back to retrieve the next page.

Parameter realm : The domain name that's associated with the user.

This value is case insensitive.

Implementation

Future<SearchUsersResult> searchUsers({
  required String directoryId,
  required List<String> searchAttributes,
  required String searchString,
  int? maxResults,
  String? nextToken,
  String? realm,
}) async {
  _s.validateNumRange(
    'maxResults',
    maxResults,
    1,
    250,
  );
  final $query = <String, List<String>>{
    'DirectoryId': [directoryId],
  };
  final $payload = <String, dynamic>{
    'SearchAttributes': searchAttributes,
    'SearchString': searchString,
    if (maxResults != null) 'MaxResults': maxResults,
    if (nextToken != null) 'NextToken': nextToken,
    if (realm != null) 'Realm': realm,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/Users/SearchUsers',
    queryParams: $query,
    exceptionFnMap: _exceptionFns,
  );
  return SearchUsersResult.fromJson(response);
}