Noções básicas sobre inquilinos

Inquilinos são entidades proprietárias de quaisquer objetos de empregos e empresas que lhes sejam atribuídos. Criar uma camada intermédia de organização entre um Google Cloud projeto e os seus dados carregados. Os inquilinos permitem-lhe isolar diferentes agrupamentos dos seus dados sem precisar de vários projetos, impedindo que os dados sejam partilhados entre barreiras de arrendamento. A multi-posse é útil em situações em que pode ter mais do que um cliente e não quer partilhar dados entre eles, mas quer manter um único projeto para faturação e relatórios internos. Google CloudPor exemplo:

  • Fornecedores de sites de emprego que criam sites de emprego para organizações com várias empresas subsidiárias.
  • Agências de recrutamento que criam sistemas de acompanhamento de candidatos para várias empresas.

A cada Google Cloud projeto é atribuído um tenant_idpara um único inquilino predefinido. Opcionalmente, pode alterar a predefinição criando mais do que um inquilino num determinado projeto.

Os inquilinos estão totalmente isolados uns dos outros. Todas as APIs pedem apenas um único inquilino para evitar que os dados sejam consultados em vários inquilinos numa única chamada API. Da mesma forma, a aprendizagem automática (AA) trata os inquilinos como unidades discretas e não ultrapassa as barreiras de arrendamento. Um projeto pode suportar tantos inquilinos quantos os necessários.

Inquilinos predefinidos

Na API Job Search v4 e mais recente, é necessária uma entidade Tenant. Todos os projetos são atribuídos a um tenant_id para um único inquilino predefinido. Se não quiser usar vários inquilinos, pode:

  1. Use o inquilino predefinido do seu projeto (recomendado). Não precisa de fazer referência especificamente ao inquilino para o fazer. Pode usar o formato projects/{project_id}/jobs/{job_id} e o back-end da Cloud Talent Solution vai assumir que está a usar o inquilino predefinido.

  2. Crie um único inquilino e use-o em vez do inquilino predefinido. Se criar o seu próprio inquilino, tem de fazer referência ao mesmo: projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}.

O tenant_id predefinido é exclusivo de cada projeto e nunca é substituído se criar inquilinos adicionais. Não pode chamar métodos CRUD no inquilino predefinido.

Inquilinos criados (opcional)

A criação dos seus próprios inquilinos é opcional. A cada projeto de pesquisa de emprego é atribuído um inquilino predefinido pelo back-end do CTS. Se não quiser usar a multilocação para separar subdivisões dos seus dados, recomendamos que use o inquilino predefinido.

Crie um inquilino

Tem de criar um valor externalId exclusivo e atribuí-lo ao novo inquilino. Em seguida, a chamada devolve um name exclusivo atribuído pelo nosso sistema de back-end, que também é atribuído a esse inquilino. Certifique-se de que regista e armazena os valores name e externalId, uma vez que são usados para atualizar/eliminar/referenciar.

O exemplo de código abaixo cria um novo inquilino:

Java

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

Para se autenticar no CTS, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 cliente para o CTS, consulte o artigo Bibliotecas cliente do CTS. Para mais informações, consulte a documentação de referência da API Node.js CTS.

Para se autenticar no CTS, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 cliente para o CTS, consulte o artigo Bibliotecas cliente do CTS. Para mais informações, consulte a documentação de referência da API Python CTS.

Para se autenticar no CTS, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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

Recupere um inquilino

Java

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

Para se autenticar no CTS, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 cliente para o CTS, consulte o artigo Bibliotecas cliente do CTS. Para mais informações, consulte a documentação de referência da API Python CTS.

Para se autenticar no CTS, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 inquilinos

Java

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

Para se autenticar no CTS, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 cliente para o CTS, consulte o artigo Bibliotecas cliente do CTS. Para mais informações, consulte a documentação de referência da API Python CTS.

Para se autenticar no CTS, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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}")

Elimine um inquilino

Java

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

Para se autenticar no CTS, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 cliente para o CTS, consulte o artigo Bibliotecas cliente do CTS. Para mais informações, consulte a documentação de referência da API Python CTS.

Para se autenticar no CTS, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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.")