Noções básicas sobre locatários

Locatários são entidades proprietárias de objetos de vagas e empresas atribuídos a eles. Eles criam uma camada intermediária de organização entre um projeto do Google Cloud e os dados enviados. Os locatários permitem que isolar diferentes grupos de dados sem a necessidade de vários projetos, impedindo que os dados sejam compartilhados através das barreiras de locação. A multilocação é útil em situações em que você pode ter mais de um cliente e não quer compartilhar dados entre eles, mas quer manter um único projeto do Google Cloud para faturamento e relatórios internos. Exemplo:

  • Provedores de sites de vagas que montam sites para organizações com várias subsidiárias.
  • Agências de recrutamento que criam sistemas de rastreamento de candidatos para várias empresas.

Cada projeto do Google Cloud recebe um tenant_id para um único locatário padrão. O padrão pode ser alterado criando mais de um locatário em um determinado projeto.

Os locatários são totalmente isolados um do outro. Todas as APIs solicitam apenas um único locatário, impedindo que os dados sejam consultados em vários locatários em uma única chamada de API. Da mesma forma, o aprendizado de máquina (ML) similarmente trata os locatários como unidades isoladas e não ultrapassa barreiras de locação. Um projeto pode ter quantos locatários forem necessários.

Locatários padrão

Na Pesquisa de vagas v4 e mais recentes, é necessária uma entidade de locatário. Todos os projetos recebem um tenant_id para um único inquilino padrão. Se você não quiser usar vários locatários, pode:

  1. Usar o locatário padrão do projeto (recomendado). Para isso, você não precisa fazer uma referência específica ao locatário. Use o formato projects/{project_id}/jobs/{job_id} para que o back-end do Cloud Talent Solution assuma que você está usando o inquilino padrão.

  2. Criar um único locatário e usá-lo no lugar do locatário padrão. Se criar seu próprio locatário, você precisará referenciá-lo: projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}.

O tenant_id padrão é exclusivo para cada projeto e nunca é modificado ou substituído quando você cria locatários adicionais. Não é possível chamar métodos CRUD no locatário padrão.

Locatários criados (opcional)

Criar os próprios locatários é opcional. Cada projeto de Pesquisa de vagas é atribuído a um locatário padrão pelo backend do CTS. Se você não quiser usar a multilocação para separar os dados, recomendamos que você use o locatário padrão.

Criar um locatário

É necessário criar um valor externalId exclusivo e atribui-lo ao novo inquilino. Em seguida, a chamada retorna um name exclusivo atribuído pelo sistema de back-end que também é atribuído ao locatário. Registre e armazene os valores de name e externalId, eles são usados para atualizar/excluir/referenciar.

O exemplo de código abaixo cria um novo locatário:

Java

Para saber como instalar e usar a biblioteca de cliente para o CTS, consulte Bibliotecas de cliente do CTS. Para mais informações, consulte a documentação de referência da API Java do CTS.

Para autenticar no CTS, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


import com.google.cloud.talent.v4.CreateTenantRequest;
import com.google.cloud.talent.v4.ProjectName;
import com.google.cloud.talent.v4.Tenant;
import com.google.cloud.talent.v4.TenantServiceClient;
import java.io.IOException;

public class JobSearchCreateTenant {

  public static void createTenant() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String externalId = "your-external-id";
    createTenant(projectId, externalId);
  }

  // Create Tenant for scoping resources, e.g. companies and jobs.
  public static void createTenant(String projectId, String externalId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (TenantServiceClient tenantServiceClient = TenantServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      Tenant tenant = Tenant.newBuilder().setExternalId(externalId).build();

      CreateTenantRequest request =
          CreateTenantRequest.newBuilder().setParent(parent.toString()).setTenant(tenant).build();

      Tenant response = tenantServiceClient.createTenant(request);
      System.out.println("Created Tenant");
      System.out.format("Name: %s%n", response.getName());
      System.out.format("External ID: %s%n", response.getExternalId());
    }
  }
}

Node.js

Para saber como instalar e usar a biblioteca de cliente para o CTS, consulte Bibliotecas de cliente do CTS. Para mais informações, consulte a documentação de referência da API Node.js do CTS.

Para autenticar no CTS, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


const talent = require('@google-cloud/talent').v4;

/** Create Tenant for scoping resources, e.g. companies and jobs */
function sampleCreateTenant(projectId, externalId) {
  const client = new talent.TenantServiceClient();
  // const projectId = 'Your Google Cloud Project ID';
  // const externalId = 'Your Unique Identifier for Tenant';
  const formattedParent = client.projectPath(projectId);
  const tenant = {
    externalId: externalId,
  };
  const request = {
    parent: formattedParent,
    tenant: tenant,
  };
  client
    .createTenant(request)
    .then(responses => {
      const response = responses[0];
      console.log('Created Tenant');
      console.log(`Name: ${response.name}`);
      console.log(`External ID: ${response.externalId}`);
    })
    .catch(err => {
      console.error(err);
    });
}

Python

Para saber como instalar e usar a biblioteca de cliente para o CTS, consulte Bibliotecas de cliente do CTS. Para mais informações, consulte a documentação de referência da API Python do CTS.

Para autenticar no CTS, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


from google.cloud import talent

def create_tenant(project_id, external_id):
    """Create Tenant for scoping resources, e.g. companies and jobs"""

    client = talent.TenantServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # external_id = 'Your Unique Identifier for Tenant'

    if isinstance(project_id, bytes):
        project_id = project_id.decode("utf-8")
    if isinstance(external_id, bytes):
        external_id = external_id.decode("utf-8")
    parent = f"projects/{project_id}"
    tenant = talent.Tenant(external_id=external_id)

    response = client.create_tenant(parent=parent, tenant=tenant)
    print("Created Tenant")
    print(f"Name: {response.name}")
    print(f"External ID: {response.external_id}")
    return response.name

Recuperar um locatário

Java

Para saber como instalar e usar a biblioteca de cliente para o CTS, consulte Bibliotecas de cliente do CTS. Para mais informações, consulte a documentação de referência da API Java do CTS.

Para autenticar no CTS, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


import com.google.cloud.talent.v4.GetTenantRequest;
import com.google.cloud.talent.v4.Tenant;
import com.google.cloud.talent.v4.TenantName;
import com.google.cloud.talent.v4.TenantServiceClient;
import java.io.IOException;

public class JobSearchGetTenant {

  public static void getTenant() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String tenantId = "your-tenant-id";
    getTenant(projectId, tenantId);
  }

  // Get Tenant by name.
  public static void getTenant(String projectId, String tenantId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (TenantServiceClient tenantServiceClient = TenantServiceClient.create()) {
      TenantName name = TenantName.of(projectId, tenantId);

      GetTenantRequest request = GetTenantRequest.newBuilder().setName(name.toString()).build();

      Tenant response = tenantServiceClient.getTenant(request);
      System.out.format("Name: %s%n", response.getName());
      System.out.format("External ID: %s%n", response.getExternalId());
    }
  }
}

Python

Para saber como instalar e usar a biblioteca de cliente para o CTS, consulte Bibliotecas de cliente do CTS. Para mais informações, consulte a documentação de referência da API Python do CTS.

Para autenticar no CTS, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


from google.cloud import talent

def get_tenant(project_id, tenant_id):
    """Get Tenant by name"""

    client = talent.TenantServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # tenant_id = 'Your Tenant ID'

    if isinstance(project_id, bytes):
        project_id = project_id.decode("utf-8")
    if isinstance(tenant_id, bytes):
        tenant_id = tenant_id.decode("utf-8")
    name = client.tenant_path(project_id, tenant_id)

    response = client.get_tenant(name=name)
    print(f"Name: {response.name}")
    print(f"External ID: {response.external_id}")

Listar locatários

Java

Para saber como instalar e usar a biblioteca de cliente para o CTS, consulte Bibliotecas de cliente do CTS. Para mais informações, consulte a documentação de referência da API Java do CTS.

Para autenticar no CTS, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


import com.google.cloud.talent.v4.ListTenantsRequest;
import com.google.cloud.talent.v4.ProjectName;
import com.google.cloud.talent.v4.Tenant;
import com.google.cloud.talent.v4.TenantServiceClient;
import java.io.IOException;

public class JobSearchListTenants {

  public static void listTenants() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    listTenants(projectId);
  }

  // List Tenants.
  public static void listTenants(String projectId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (TenantServiceClient tenantServiceClient = TenantServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);

      ListTenantsRequest request =
          ListTenantsRequest.newBuilder().setParent(parent.toString()).build();

      for (Tenant responseItem : tenantServiceClient.listTenants(request).iterateAll()) {
        System.out.format("Tenant Name: %s%n", responseItem.getName());
        System.out.format("External ID: %s%n", responseItem.getExternalId());
      }
    }
  }
}

Python

Para saber como instalar e usar a biblioteca de cliente para o CTS, consulte Bibliotecas de cliente do CTS. Para mais informações, consulte a documentação de referência da API Python do CTS.

Para autenticar no CTS, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


from google.cloud import talent

def list_tenants(project_id):
    """List Tenants"""

    client = talent.TenantServiceClient()

    # project_id = 'Your Google Cloud Project ID'

    if isinstance(project_id, bytes):
        project_id = project_id.decode("utf-8")
    parent = f"projects/{project_id}"

    # Iterate over all results
    for response_item in client.list_tenants(parent=parent):
        print(f"Tenant Name: {response_item.name}")
        print(f"External ID: {response_item.external_id}")

Excluir um locatário

Java

Para saber como instalar e usar a biblioteca de cliente para o CTS, consulte Bibliotecas de cliente do CTS. Para mais informações, consulte a documentação de referência da API Java do CTS.

Para autenticar no CTS, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


import com.google.cloud.talent.v4.DeleteTenantRequest;
import com.google.cloud.talent.v4.TenantName;
import com.google.cloud.talent.v4.TenantServiceClient;
import java.io.IOException;

public class JobSearchDeleteTenant {

  public static void deleteTenant() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String tenantId = "your-tenant-id";
    deleteTenant(projectId, tenantId);
  }

  // Delete Tenant.
  public static void deleteTenant(String projectId, String tenantId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (TenantServiceClient tenantServiceClient = TenantServiceClient.create()) {
      TenantName name = TenantName.of(projectId, tenantId);

      DeleteTenantRequest request =
          DeleteTenantRequest.newBuilder().setName(name.toString()).build();

      tenantServiceClient.deleteTenant(request);
      System.out.println("Deleted Tenant.");
    }
  }
}

Python

Para saber como instalar e usar a biblioteca de cliente para o CTS, consulte Bibliotecas de cliente do CTS. Para mais informações, consulte a documentação de referência da API Python do CTS.

Para autenticar no CTS, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


from google.cloud import talent

def delete_tenant(project_id, tenant_id):
    """Delete Tenant"""

    client = talent.TenantServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # tenant_id = 'Your Tenant ID)'

    if isinstance(project_id, bytes):
        project_id = project_id.decode("utf-8")
    if isinstance(tenant_id, bytes):
        tenant_id = tenant_id.decode("utf-8")
    name = client.tenant_path(project_id, tenant_id)

    client.delete_tenant(name=name)
    print("Deleted Tenant.")