def create_company(project_id, tenant_id, display_name, external_id): """Create Company""" client = talent.CompanyServiceClient() # project_id = 'Your Google Cloud Project ID' # tenant_id = 'Your Tenant ID (using tenancy is optional)' # display_name = 'My Company Name' # external_id = 'Identifier of this company in my system' if isinstance(project_id, six.binary_type): project_id = project_id.decode("utf-8") if isinstance(tenant_id, six.binary_type): tenant_id = tenant_id.decode("utf-8") if isinstance(display_name, six.binary_type): display_name = display_name.decode("utf-8") if isinstance(external_id, six.binary_type): external_id = external_id.decode("utf-8") parent = f"projects/{project_id}/tenants/{tenant_id}" company = {"display_name": display_name, "external_id": external_id} response = client.create_company(parent=parent, company=company) print("Created Company") print("Name: {}".format(response.name)) print("Display Name: {}".format(response.display_name)) print("External ID: {}".format(response.external_id)) return response.name
def delete_company(project_id, tenant_id, company_id): """Delete Company""" client = talent.CompanyServiceClient() # project_id = 'Your Google Cloud Project ID' # tenant_id = 'Your Tenant ID (using tenancy is optional)' # company_id = 'ID of the company to delete' if isinstance(project_id, six.binary_type): project_id = project_id.decode("utf-8") if isinstance(tenant_id, six.binary_type): tenant_id = tenant_id.decode("utf-8") if isinstance(company_id, six.binary_type): company_id = company_id.decode("utf-8") name = client.company_path(project_id, tenant_id, company_id) client.delete_company(name=name) print("Deleted company")
def get_company(project_id, tenant_id, company_id): """Get Company""" client = talent.CompanyServiceClient() # project_id = 'Your Google Cloud Project ID' # tenant_id = 'Your Tenant ID (using tenancy is optional)' # company_id = 'Company ID' if isinstance(project_id, six.binary_type): project_id = project_id.decode("utf-8") if isinstance(tenant_id, six.binary_type): tenant_id = tenant_id.decode("utf-8") if isinstance(company_id, six.binary_type): company_id = company_id.decode("utf-8") name = client.company_path(project_id, tenant_id, company_id) response = client.get_company(name=name) print(f"Company name: {response.name}") print(f"Display name: {response.display_name}")
def list_companies(project_id, tenant_id): """List Companies""" client = talent.CompanyServiceClient() # project_id = 'Your Google Cloud Project ID' # tenant_id = 'Your Tenant ID (using tenancy is optional)' if isinstance(project_id, six.binary_type): project_id = project_id.decode("utf-8") if isinstance(tenant_id, six.binary_type): tenant_id = tenant_id.decode("utf-8") parent = client.tenant_path(project_id, tenant_id) # Iterate over all results results = [] for company in client.list_companies(parent): results.append(company.name) print("Company Name: {}".format(company.name)) print("Display Name: {}".format(company.display_name)) print("External ID: {}".format(company.external_id)) return results
from typing import List, Optional, Union from google.cloud import talent from google.cloud.talent_v4 import CompanySize, Location as CTS_Location from proto.marshal.collections import Repeated from pydantic import BaseModel, PrivateAttr, validator from pytalentsolution import Tenant from pytalentsolution.cts import CTSModel client_company = talent.CompanyServiceClient() class LatLng(BaseModel): """ https://cloud.google.com/talent-solution/job-search/docs/reference/rest/v4beta1/Location#LatLng """ latitude: int longitude: int class PostalAddress(BaseModel): """ https://cloud.google.com/talent-solution/job-search/docs/reference/rest/v4beta1/PostalAddress """ revision: Optional[int] region_code: str language_code: Optional[str] postal_code: Optional[str] sorting_code: Optional[str] administrative_area: Optional[str]