É possível pesquisar usuários que correspondem a determinados atributos com o método
users.list() da
API Directory. Esse método aceita o parâmetro query, que é uma consulta de pesquisa que combina uma ou mais cláusulas de pesquisa. Cada cláusula de pesquisa é composta de
três partes:
- Campo
- Atributo do usuário pesquisado. Por exemplo, givenName.
- Operador
- Teste que é realizado nos dados para fornecer uma correspondência. Por exemplo, o operador :testa se um atributo de texto contém um valor.
- Valor
- O conteúdo do atributo testado. Por exemplo, Jane.
Para pesquisar vários campos em uma consulta, adicione cada cláusula de pesquisa separada por um espaço. A operação é uma AND implícita.
Campos
| Campo | Tipo de valor | Operadores | Descrição | 
|---|---|---|---|
| Nenhum especificado | string | Compare com o valor em givenName,familyNameouemail. | |
| name | string | =, : | O valor concatenado de givenNameefamilyName. | 
| email | string | =,:,:{PREFIX}* | Os endereços de e-mail do usuário, incluindo aliases. | 
| givenName | string | =,:,:{PREFIX}* | O nome de batismo ou de registro do usuário. | 
| familyName | string | =,:,:{PREFIX}* | O sobrenome ou sobrenome de um usuário. | 
| isAdmin | booleano | = | Se um usuário tem privilégios de superadministrador. | 
| isDelegatedAdmin | booleano | = | Se um usuário tem privilégios de administrador delegados. | 
| isSuspended | booleano | = | Indica se a conta de um usuário está suspensa. | 
| isArchived | booleano | = | Indica se a conta de um usuário está arquivada. | 
| im | string | =, : | ID da rede de mensagens instantâneas. | 
| externalId | string | =, : | Valor do ID externo. | 
| manager | string | = | O endereço de e-mail do gerente de um usuário, seja diretamente ou na cadeia de gerenciamento. | 
| managerId | string | = | O ID do gerente de um usuário, diretamente ou na cadeia de gerenciamento. | 
| directManager | string | = | O endereço de e-mail do gerente direto de um usuário. | 
| directManagerId | string | = | O ID do administrador direto de um usuário. | 
| address | string | : | Corresponde a todos os campos de endereço. | 
| addressPoBox | string | =, : | Uma caixa postal. | 
| addressExtended | string | =, : | Um endereço estendido, como um que inclui uma sub-região. | 
| addressStreet | string | =, : | Um endereço. | 
| addressLocality | string | =, : | Uma cidade do endereço. | 
| addressRegion | string | =, : | Uma província ou estado abreviado. | 
| addressPostalCode | string | =, : | Um código postal ou CEP. | 
| addressCountry | string | =, : | Um país. | 
| orgName | string | =, : | Um nome de organização. | 
| orgTitle | string | =, : | O cargo de um usuário na organização. | 
| orgDepartment | string | =, : | Um departamento dentro da organização. | 
| orgDescription | string | =, : | Uma descrição da organização. | 
| orgCostCenter | string | =, : | O centro de custo de uma organização. | 
| phone | string | = | O número de telefone do usuário. | 
| orgUnitPath | string | = | O caminho completo de uma unidade organizacional. Isso corresponde a todas as cadeias de unidades organizacionais do destino. Por exemplo, 'orgUnitPath=/'retorna todos os usuários na organização. Este campo só pode ser usado quandoviewType=admin_view. | 
| isEnrolledIn2Sv | booleano | = | Indica se um usuário está inscrito na verificação em duas etapas. | 
| isEnforcedIn2Sv | booleano | = | Indica se a verificação em duas etapas é aplicada ao usuário. | 
| schemaName.fieldName | ? | ? | Um atributo de usuário personalizado, referenciado pelo esquema e pelo nome do campo. O campo precisa ter a propriedade indexeddefinida comotrue. | 
Tipos de valor
| Tipo de valor | Esquema equivalente fieldType | Observações | 
|---|---|---|
| string | STRING,EMAIL,PHONE | Use aspas simples 'se a consulta tiver espaços em branco. Use\'para escapar de aspas simples em consultas, por exemplo,'Valentine\'s Day'. | 
| booleano | BOOL | Precisa ter um valor de trueoufalse. Somente compatível com o operador=. | 
| número | INT64,DOUBLE | Use um ponto como separador decimal e nenhum separador de milhar, por exemplo, 150430.25. | 
| data | DATE | Especificado no formato AAAA-MM-DD, por exemplo, 2001-02-15. | 
Operadores
| Operador | Tipos de valor aceitos | Observações | 
|---|---|---|
| = | string, booleano, número, data | O campo e o valor correspondem exatamente. Por exemplo, givenName=Janecorresponde a todos os usuários com o atributogivenName"Jane", mas não"Jane Ann". Compatível com a maioria dos campos de string (consulte acima). | 
| : | string | O campo contém as palavras inteiras no valor, em ordem. Por exemplo, uma consulta com givenName:Janecorresponde a usuários com valoresgivenNamede"Jane"e"Jane Ann", mas não"Janet". Uma consulta de várias palavras para'givenName:Mary Ann'corresponderia aos valores de"Mary Ann Evans"e"Sarah Mary Ann", mas não a"Ann Mary". Compatível com a maioria dos campos de string (consulte acima). | 
| :{PREFIX}* | string | O campo começa com o valor. Por exemplo, uma consulta com givenName:Jane*corresponde a usuários com valores degivenNamede"Jane","Jane Ann"e"Janet", mas não"Sarah Jane". Somente compatível com um conjunto limitado de campos de string (consulte acima). Não é compatível com atributos personalizados. | 
| :[{MIN},{MAX}] | número, data | O campo está dentro de um intervalo. Para fazer a correspondência, o valor do campo precisa ser maior ou igual a {MIN}e menor que{MAX}. Os atributos de número personalizado precisam especificar umnumericIndexingSpecpara oferecer suporte a esse operador. | 
| > | número, data | O campo é maior que o valor. Os atributos de número personalizado precisam especificar um numericIndexingSpecpara oferecer suporte a esse operador. | 
| >= | número, data | O campo é maior ou igual ao valor. Os atributos de número personalizado precisam especificar um numericIndexingSpecpara oferecer suporte a esse operador. | 
| < | número, data | O campo é menor que o valor. Os atributos de número personalizado precisam especificar um numericIndexingSpecpara oferecer suporte a esse operador. | 
| <= | número, data | O campo é menor ou igual ao valor. Os atributos de número personalizado precisam especificar um numericIndexingSpecpara oferecer suporte a esse operador. | 
Exemplos
Todas as consultas usam o método users.list, que tem uma solicitação HTTP semelhante a esta (quebras de linha incluídas para facilitar a leitura):
GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS
Pesquisar um usuário pelo nome
O campo de consulta name testa o valor concatenado de givenName e familyName. Uma consulta de name='Jane' não retorna resultados para um usuário com
givenName='Jane' e familyName='Smith'.
name='Jane Smith'
Pesquisar usuários com um givenName OU familyName que contenha um valor
name:'Jane'
Pesquisar usuários que correspondem a um prefixo de e-mail
email:admin*
Pesquisar todos os superadministradores
isAdmin=true
Pesquisar usuários com orgTitles contendo "Gerente"
orgTitle:Manager
Pesquisar usuários com um gerente comum na cadeia de relatórios
manager='janesmith@example.com'
Pesquisar usuários com o mesmo gerente direto
directManager='bobjones@example.com'
Pesquisar usuários em um determinado país
addressCountry='Sweden'
Pesquisar usuários em uma organização específica
orgName='Human Resources'
Pesquisar gerentes em uma organização específica
orgName=Engineering orgTitle:Manager
Pesquisar atributos personalizados do usuário
Pesquisar todos os funcionários que trabalham em um projeto específico
EmploymentData.projects:'GeneGnomes'
Pesquisar todos os funcionários em um local específico
EmploymentData.location='Atlanta'
Pesquisar todos os funcionários acima do nível de cargo 7
EmploymentData.jobLevel>=7
Pesquisar todos os funcionários com níveis de cargo maiores ou iguais a 5 e menores que 8
EmploymentData.jobLevel:[5,8]
Pesquisar todos os funcionários inscritos na verificação em duas etapas
isEnrolledIn2Sv=true
Pesquisar todos os funcionários com a verificação em duas etapas ativada
isEnforcedIn2Sv=true