Para gerenciar as licenças de um domínio, é necessário usar a ferramenta admin.google.com, e em alguns cliques, certas operações são feitas com bastante facilidade: habilitar licença de usuário, criar regras para aplicação, tudo isso e outras tarefas simples já fazem um excelente apoio pra aplicação das licenças.
Aplicar as licenças corretamente é importante, pois é custo diretamente realizado pela empresa. Usar o licenciamento sem freio, leva a gastos desnecessários, e existem vários pontos a serem otimizados.
Quando falamos de domínios com poucos usuários, muitas dessas tarefas podem ser feitas facilmente com o uso direto da ferramenta. Quando falamos de domínios grandes, a coisa muda de figura: é preciso automatizar, ter regras claras, objetivas e eventualmente, scripts, ou planilhas, ou seu próprio software que te auxilie no atendimento desse tipo de atividade em grande escala.
Pra isso, o Google fornece a Enterprise License API, que te permite por programação, observar e gerenciar as licenças do teu domínio. Aqui, vamos falar sobre como usar essa API em uma aplicação Java
Configuração Maven
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-licensing</artifactId>
<version>v1-rev20220430-2.0.0</version>
</dependency>
Hello World
Abaixo coloco um método Java que mostra as informações de licenças pros 10 primeiros usuários.
O parâmetro customerId é o identificador que o administrador do domínio tem acesso, e que identifica o cliente (domínio) para o Google.
public void downloadGLicensesByProductID(String customerId, String productId) {
final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
final String APPLICATION_NAME = "Cloud Admin Helper";
Licensing licensing;
ListForProduct licenses;
try {
licensing = cUtils.buildLicensing();
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
licensing = new Licensing.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
.setApplicationName(APPLICATION_NAME)
.build();
licenses = licensing.licenseAssignments().listForProduct(productId, customerId)
.setMaxResults(10L);
LicenseAssignmentList licenseList = licenses.execute();
for (String k : licenseList.keySet()) {
System.out.println(k);
System.out.println(licenseList.get(k));
};
System.out.println("---------");
} catch (GeneralSecurityException | IOException e) {
e.printStackTrace();
}
}