Synchronize new proto/yaml changes.

PiperOrigin-RevId: 235083289
This commit is contained in:
Google APIs 2019-02-21 15:35:38 -08:00 committed by Copybara-Service
parent acf32a44d9
commit a36242d9fa
18 changed files with 989 additions and 594 deletions

View File

@ -10,6 +10,7 @@ apis:
- name: google.cloud.talent.v4beta1.JobService
- name: google.cloud.talent.v4beta1.ProfileService
- name: google.cloud.talent.v4beta1.ResumeService
- name: google.cloud.talent.v4beta1.TenantService
documentation:
summary: |-
@ -83,6 +84,16 @@ backend:
deadline: 30.0
- selector: google.cloud.talent.v4beta1.ResumeService.ParseResume
deadline: 30.0
- selector: google.cloud.talent.v4beta1.TenantService.CreateTenant
deadline: 30.0
- selector: google.cloud.talent.v4beta1.TenantService.GetTenant
deadline: 30.0
- selector: google.cloud.talent.v4beta1.TenantService.UpdateTenant
deadline: 30.0
- selector: google.cloud.talent.v4beta1.TenantService.DeleteTenant
deadline: 30.0
- selector: google.cloud.talent.v4beta1.TenantService.ListTenants
deadline: 30.0
http:
rules:

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -18,9 +18,9 @@ syntax = "proto3";
package google.cloud.talent.v4beta1;
import "google/api/annotations.proto";
import "google/cloud/talent/v4beta1/job.proto";
import "google/protobuf/timestamp.proto";
import "google/rpc/status.proto";
import "google/cloud/talent/v4beta1/job.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -40,421 +40,6 @@ message TimestampRange {
google.protobuf.Timestamp end_time = 2;
}
// Output only.
//
// A resource that represents a location with full geographic information.
message Location {
// An enum which represents the type of a location.
enum LocationType {
// Default value if the type isn't specified.
LOCATION_TYPE_UNSPECIFIED = 0;
// A country level location.
COUNTRY = 1;
// A state or equivalent level location.
ADMINISTRATIVE_AREA = 2;
// A county or equivalent level location.
SUB_ADMINISTRATIVE_AREA = 3;
// A city or equivalent level location.
LOCALITY = 4;
// A postal code level location.
POSTAL_CODE = 5;
// A sublocality is a subdivision of a locality, for example a city borough,
// ward, or arrondissement. Sublocalities are usually recognized by a local
// political authority. For example, Manhattan and Brooklyn are recognized
// as boroughs by the City of New York, and are therefore modeled as
// sublocalities.
SUB_LOCALITY = 6;
// A district or equivalent level location.
SUB_LOCALITY_1 = 7;
// A smaller district or equivalent level display.
SUB_LOCALITY_2 = 8;
// A neighborhood level location.
NEIGHBORHOOD = 9;
// A street address level location.
STREET_ADDRESS = 10;
}
// The type of a location, which corresponds to the address lines field of
// [PostalAddress][]. For example, "Downtown, Atlanta, GA, USA" has a type of
// [LocationType#NEIGHBORHOOD][], and "Kansas City, KS, USA" has a type of
// [LocationType#LOCALITY][].
LocationType location_type = 1;
// Postal address of the location that includes human readable information,
// such as postal delivery and payments addresses. Given a postal address,
// a postal service can deliver items to a premises, P.O. Box, or other
// delivery location.
google.type.PostalAddress postal_address = 2;
// An object representing a latitude/longitude pair.
google.type.LatLng lat_lng = 3;
// Radius in miles of the job location. This value is derived from the
// location bounding box in which a circle with the specified radius
// centered from [LatLng][] covers the area associated with the job location.
// For example, currently, "Mountain View, CA, USA" has a radius of
// 6.17 miles.
double radius_miles = 4;
}
// Input only.
//
// Meta information related to the job searcher or entity
// conducting the job search. This information is used to improve the
// performance of the service.
message RequestMetadata {
// Required if [allow_missing_ids][google.cloud.talent.v4beta1.RequestMetadata.allow_missing_ids] is unset or `false`.
//
// The client-defined scope or source of the service call, which typically
// is the domain on
// which the service has been implemented and is currently being run.
//
// For example, if the service is being run by client <em>Foo, Inc.</em>, on
// job board www.foo.com and career site www.bar.com, then this field is
// set to "foo.com" for use on the job board, and "bar.com" for use on the
// career site.
//
// Note that any improvements to the model for a particular tenant site rely
// on this field being set correctly to a unique domain.
//
// The maximum number of allowed characters is 255.
string domain = 1;
// Required if [allow_missing_ids][google.cloud.talent.v4beta1.RequestMetadata.allow_missing_ids] is unset or `false`.
//
// A unique session identification string. A session is defined as the
// duration of an end user's interaction with the service over a certain
// period.
// Obfuscate this field for privacy concerns before
// providing it to the service.
//
// Note that any improvements to the model for a particular tenant site rely
// on this field being set correctly to a unique session ID.
//
// The maximum number of allowed characters is 255.
string session_id = 2;
// Required if [allow_missing_ids][google.cloud.talent.v4beta1.RequestMetadata.allow_missing_ids] is unset or `false`.
//
// A unique user identification string, as determined by the client.
// To have the strongest positive impact on search quality
// make sure the client-level is unique.
// Obfuscate this field for privacy concerns before
// providing it to the service.
//
// Note that any improvements to the model for a particular tenant site rely
// on this field being set correctly to a unique user ID.
//
// The maximum number of allowed characters is 255.
string user_id = 3;
// Optional.
//
// If set to `true`, [domain][google.cloud.talent.v4beta1.RequestMetadata.domain], [session_id][google.cloud.talent.v4beta1.RequestMetadata.session_id] and [user_id][google.cloud.talent.v4beta1.RequestMetadata.user_id] are optional.
// Only set when any of these fields isn't available for some reason. It
// is highly recommended not to set this field and provide accurate
// [domain][google.cloud.talent.v4beta1.RequestMetadata.domain], [session_id][google.cloud.talent.v4beta1.RequestMetadata.session_id] and [user_id][google.cloud.talent.v4beta1.RequestMetadata.user_id] for the best service experience.
bool allow_missing_ids = 4;
// Optional.
//
// The type of device used by the job seeker at the time of the call to the
// service.
DeviceInfo device_info = 5;
}
// Output only.
//
// Additional information returned to client, such as debugging information.
message ResponseMetadata {
// A unique id associated with this call.
// This id is logged for tracking purposes.
string request_id = 1;
}
// Device information collected from the job seeker, candidate, or
// other entity conducting the job search. Providing this information improves
// the quality of the search results across devices.
message DeviceInfo {
// An enumeration describing an API access portal and exposure mechanism.
enum DeviceType {
// The device type isn't specified.
DEVICE_TYPE_UNSPECIFIED = 0;
// A desktop web browser, such as, Chrome, Firefox, Safari, or Internet
// Explorer)
WEB = 1;
// A mobile device web browser, such as a phone or tablet with a Chrome
// browser.
MOBILE_WEB = 2;
// An Android device native application.
ANDROID = 3;
// An iOS device native application.
IOS = 4;
// A bot, as opposed to a device operated by human beings, such as a web
// crawler.
BOT = 5;
// Other devices types.
OTHER = 6;
}
// Optional.
//
// Type of the device.
DeviceType device_type = 1;
// Optional.
//
// A device-specific ID. The ID must be a unique identifier that
// distinguishes the device from other devices.
string id = 2;
}
// Custom attribute values that are either filterable or non-filterable.
message CustomAttribute {
// Optional but exactly one of [string_values][google.cloud.talent.v4beta1.CustomAttribute.string_values] or [long_values][google.cloud.talent.v4beta1.CustomAttribute.long_values] must
// be specified.
//
// This field is used to perform a string match (`CASE_SENSITIVE_MATCH` or
// `CASE_INSENSITIVE_MATCH`) search.
// For filterable `string_value`s, a maximum total number of 200 values
// is allowed, with each `string_value` has a byte size of no more than
// 255B. For unfilterable `string_values`, the maximum total byte size of
// unfilterable `string_values` is 50KB.
//
// Empty string isn't allowed.
repeated string string_values = 1;
// Optional but exactly one of [string_values][google.cloud.talent.v4beta1.CustomAttribute.string_values] or [long_values][google.cloud.talent.v4beta1.CustomAttribute.long_values] must
// be specified.
//
// This field is used to perform number range search.
// (`EQ`, `GT`, `GE`, `LE`, `LT`) over filterable `long_value`.
//
// Currently at most 1 [long_values][google.cloud.talent.v4beta1.CustomAttribute.long_values] is supported.
repeated int64 long_values = 2;
// Optional.
//
// If the `filterable` flag is true, custom field values are searchable.
// If false, values are not searchable.
//
// Default is false.
bool filterable = 3;
}
// Output only.
//
// Spell check result.
message SpellingCorrection {
// Indicates if the query was corrected by the spell checker.
bool corrected = 1;
// Correction output consisting of the corrected keyword string.
string corrected_text = 2;
// Corrected output with html tags to highlight the corrected words.
// Corrected words are called out with the "<b><i>...</i></b>" html tags.
//
// For example, the user input query is "software enginear", where the second
// word, "enginear," is incorrect. It should be "engineer". When spelling
// correction is enabled, this value is
// "software <b><i>engineer</i></b>".
string corrected_html = 3;
}
// Job compensation details.
message CompensationInfo {
// A compensation entry that represents one component of compensation, such
// as base pay, bonus, or other compensation type.
//
// Annualization: One compensation entry can be annualized if
// - it contains valid [amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or [range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range].
// - and its [expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year] is set or can be derived.
// Its annualized range is determined as ([amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or [range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range]) times
// [expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year].
message CompensationEntry {
// Optional.
//
// Compensation type.
//
// Default is [CompensationUnit.OTHER_COMPENSATION_TYPE][].
CompensationType type = 1;
// Optional.
//
// Frequency of the specified amount.
//
// Default is [CompensationUnit.OTHER_COMPENSATION_UNIT][google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit.OTHER_COMPENSATION_UNIT].
CompensationUnit unit = 2;
// Optional.
//
// Compensation amount. It could be a fixed amount or a floating range.
oneof compensation_amount {
// Optional.
//
// Compensation amount.
google.type.Money amount = 3;
// Optional.
//
// Compensation range.
CompensationRange range = 4;
}
// Optional.
//
// Compensation description. For example, could
// indicate equity terms or provide additional context to an estimated
// bonus.
string description = 5;
// Optional.
//
// Expected number of units paid each year. If not specified, when
// [Job.employment_types][google.cloud.talent.v4beta1.Job.employment_types] is FULLTIME, a default value is inferred
// based on [unit][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.unit]. Default values:
// - HOURLY: 2080
// - DAILY: 260
// - WEEKLY: 52
// - MONTHLY: 12
// - ANNUAL: 1
google.protobuf.DoubleValue expected_units_per_year = 6;
}
// Compensation range.
message CompensationRange {
// Optional.
//
// The maximum amount of compensation. If left empty, the value is set
// to a maximal compensation value and the currency code is set to
// match the [currency code][google.type.Money.currency_code] of
// min_compensation.
google.type.Money max_compensation = 2;
// Optional.
//
// The minimum amount of compensation. If left empty, the value is set
// to zero and the currency code is set to match the
// [currency code][google.type.Money.currency_code] of max_compensation.
google.type.Money min_compensation = 1;
}
// The type of compensation.
//
// For compensation amounts specified in non-monetary amounts,
// describe the compensation scheme in the [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description].
//
// For example, tipping format is described in
// [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description] (for example, expect 15-20% tips based
// on customer bill.) and an estimate of the tips provided in
// [CompensationEntry.amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or [CompensationEntry.range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range] ($10 per hour).
//
// For example, equity is described in [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description]
// (for example, 1% - 2% equity vesting over 4 years, 1 year cliff) and
// value estimated in [CompensationEntry.amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or
// [CompensationEntry.range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range]. If no value estimate is possible, units are
// [CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED][google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED] and then further
// clarified in [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description] field.
enum CompensationType {
// Default value.
COMPENSATION_TYPE_UNSPECIFIED = 0;
// Base compensation: Refers to the fixed amount of money paid to an
// employee by an employer in return for work performed. Base compensation
// does not include benefits, bonuses or any other potential compensation
// from an employer.
BASE = 1;
// Bonus.
BONUS = 2;
// Signing bonus.
SIGNING_BONUS = 3;
// Equity.
EQUITY = 4;
// Profit sharing.
PROFIT_SHARING = 5;
// Commission.
COMMISSIONS = 6;
// Tips.
TIPS = 7;
// Other compensation type.
OTHER_COMPENSATION_TYPE = 8;
}
// Pay frequency.
enum CompensationUnit {
// Default value.
COMPENSATION_UNIT_UNSPECIFIED = 0;
// Hourly.
HOURLY = 1;
// Daily.
DAILY = 2;
// Weekly
WEEKLY = 3;
// Monthly.
MONTHLY = 4;
// Yearly.
YEARLY = 5;
// One time.
ONE_TIME = 6;
// Other compensation units.
OTHER_COMPENSATION_UNIT = 7;
}
// Optional.
//
// Job compensation information.
//
// At most one entry can be of type
// [CompensationInfo.CompensationType.BASE][google.cloud.talent.v4beta1.CompensationInfo.CompensationType.BASE], which is
// referred as ** base compensation entry ** for the job.
repeated CompensationEntry entries = 1;
// Output only. Annualized base compensation range. Computed as
// base compensation entry's [CompensationEntry.compensation][] times
// [CompensationEntry.expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year].
//
// See [CompensationEntry][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry] for explanation on compensation annualization.
CompensationRange annualized_base_compensation_range = 2;
// Output only. Annualized total compensation range. Computed as
// all compensation entries' [CompensationEntry.compensation][] times
// [CompensationEntry.expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year].
//
// See [CompensationEntry][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry] for explanation on compensation annualization.
CompensationRange annualized_total_compensation_range = 3;
}
// An enum that represents the size of the company.
enum CompanySize {
// Default value if the size isn't specified.
@ -832,3 +417,441 @@ enum HtmlSanitization {
// unordered list markup tags.
SIMPLE_FORMATTING_ONLY = 2;
}
// Method for commute.
enum CommuteMethod {
// Commute method isn't specified.
COMMUTE_METHOD_UNSPECIFIED = 0;
// Commute time is calculated based on driving time.
DRIVING = 1;
// Commute time is calculated based on public transit including bus, metro,
// subway, etc.
TRANSIT = 2;
// Commute time is calculated based on walking time.
WALKING = 3;
// Commute time is calculated based on biking time.
CYCLING = 4;
// Commute time is calculated based on public transit that is wheelchair
// accessible.
TRANSIT_ACCESSIBLE = 5;
}
// Output only.
//
// A resource that represents a location with full geographic information.
message Location {
// An enum which represents the type of a location.
enum LocationType {
// Default value if the type isn't specified.
LOCATION_TYPE_UNSPECIFIED = 0;
// A country level location.
COUNTRY = 1;
// A state or equivalent level location.
ADMINISTRATIVE_AREA = 2;
// A county or equivalent level location.
SUB_ADMINISTRATIVE_AREA = 3;
// A city or equivalent level location.
LOCALITY = 4;
// A postal code level location.
POSTAL_CODE = 5;
// A sublocality is a subdivision of a locality, for example a city borough,
// ward, or arrondissement. Sublocalities are usually recognized by a local
// political authority. For example, Manhattan and Brooklyn are recognized
// as boroughs by the City of New York, and are therefore modeled as
// sublocalities.
SUB_LOCALITY = 6;
// A district or equivalent level location.
SUB_LOCALITY_1 = 7;
// A smaller district or equivalent level display.
SUB_LOCALITY_2 = 8;
// A neighborhood level location.
NEIGHBORHOOD = 9;
// A street address level location.
STREET_ADDRESS = 10;
}
// The type of a location, which corresponds to the address lines field of
// [PostalAddress][]. For example, "Downtown, Atlanta, GA, USA" has a type of
// [LocationType#NEIGHBORHOOD][], and "Kansas City, KS, USA" has a type of
// [LocationType#LOCALITY][].
LocationType location_type = 1;
// Postal address of the location that includes human readable information,
// such as postal delivery and payments addresses. Given a postal address,
// a postal service can deliver items to a premises, P.O. Box, or other
// delivery location.
google.type.PostalAddress postal_address = 2;
// An object representing a latitude/longitude pair.
google.type.LatLng lat_lng = 3;
// Radius in miles of the job location. This value is derived from the
// location bounding box in which a circle with the specified radius
// centered from [LatLng][] covers the area associated with the job location.
// For example, currently, "Mountain View, CA, USA" has a radius of
// 6.17 miles.
double radius_miles = 4;
}
// Input only.
//
// Meta information related to the job searcher or entity
// conducting the job search. This information is used to improve the
// performance of the service.
message RequestMetadata {
// Required if [allow_missing_ids][google.cloud.talent.v4beta1.RequestMetadata.allow_missing_ids] is unset or `false`.
//
// The client-defined scope or source of the service call, which typically
// is the domain on
// which the service has been implemented and is currently being run.
//
// For example, if the service is being run by client <em>Foo, Inc.</em>, on
// job board www.foo.com and career site www.bar.com, then this field is
// set to "foo.com" for use on the job board, and "bar.com" for use on the
// career site.
//
// Note that any improvements to the model for a particular tenant site rely
// on this field being set correctly to a unique domain.
//
// The maximum number of allowed characters is 255.
string domain = 1;
// Required if [allow_missing_ids][google.cloud.talent.v4beta1.RequestMetadata.allow_missing_ids] is unset or `false`.
//
// A unique session identification string. A session is defined as the
// duration of an end user's interaction with the service over a certain
// period.
// Obfuscate this field for privacy concerns before
// providing it to the service.
//
// Note that any improvements to the model for a particular tenant site rely
// on this field being set correctly to a unique session ID.
//
// The maximum number of allowed characters is 255.
string session_id = 2;
// Required if [allow_missing_ids][google.cloud.talent.v4beta1.RequestMetadata.allow_missing_ids] is unset or `false`.
//
// A unique user identification string, as determined by the client.
// To have the strongest positive impact on search quality
// make sure the client-level is unique.
// Obfuscate this field for privacy concerns before
// providing it to the service.
//
// Note that any improvements to the model for a particular tenant site rely
// on this field being set correctly to a unique user ID.
//
// The maximum number of allowed characters is 255.
string user_id = 3;
// Optional.
//
// If set to `true`, [domain][google.cloud.talent.v4beta1.RequestMetadata.domain], [session_id][google.cloud.talent.v4beta1.RequestMetadata.session_id] and [user_id][google.cloud.talent.v4beta1.RequestMetadata.user_id] are optional.
// Only set when any of these fields isn't available for some reason. It
// is highly recommended not to set this field and provide accurate
// [domain][google.cloud.talent.v4beta1.RequestMetadata.domain], [session_id][google.cloud.talent.v4beta1.RequestMetadata.session_id] and [user_id][google.cloud.talent.v4beta1.RequestMetadata.user_id] for the best service experience.
bool allow_missing_ids = 4;
// Optional.
//
// The type of device used by the job seeker at the time of the call to the
// service.
DeviceInfo device_info = 5;
}
// Output only.
//
// Additional information returned to client, such as debugging information.
message ResponseMetadata {
// A unique id associated with this call.
// This id is logged for tracking purposes.
string request_id = 1;
}
// Device information collected from the job seeker, candidate, or
// other entity conducting the job search. Providing this information improves
// the quality of the search results across devices.
message DeviceInfo {
// An enumeration describing an API access portal and exposure mechanism.
enum DeviceType {
// The device type isn't specified.
DEVICE_TYPE_UNSPECIFIED = 0;
// A desktop web browser, such as, Chrome, Firefox, Safari, or Internet
// Explorer)
WEB = 1;
// A mobile device web browser, such as a phone or tablet with a Chrome
// browser.
MOBILE_WEB = 2;
// An Android device native application.
ANDROID = 3;
// An iOS device native application.
IOS = 4;
// A bot, as opposed to a device operated by human beings, such as a web
// crawler.
BOT = 5;
// Other devices types.
OTHER = 6;
}
// Optional.
//
// Type of the device.
DeviceType device_type = 1;
// Optional.
//
// A device-specific ID. The ID must be a unique identifier that
// distinguishes the device from other devices.
string id = 2;
}
// Custom attribute values that are either filterable or non-filterable.
message CustomAttribute {
// Optional but exactly one of [string_values][google.cloud.talent.v4beta1.CustomAttribute.string_values] or [long_values][google.cloud.talent.v4beta1.CustomAttribute.long_values] must
// be specified.
//
// This field is used to perform a string match (`CASE_SENSITIVE_MATCH` or
// `CASE_INSENSITIVE_MATCH`) search.
// For filterable `string_value`s, a maximum total number of 200 values
// is allowed, with each `string_value` has a byte size of no more than
// 255B. For unfilterable `string_values`, the maximum total byte size of
// unfilterable `string_values` is 50KB.
//
// Empty string isn't allowed.
repeated string string_values = 1;
// Optional but exactly one of [string_values][google.cloud.talent.v4beta1.CustomAttribute.string_values] or [long_values][google.cloud.talent.v4beta1.CustomAttribute.long_values] must
// be specified.
//
// This field is used to perform number range search.
// (`EQ`, `GT`, `GE`, `LE`, `LT`) over filterable `long_value`.
//
// Currently at most 1 [long_values][google.cloud.talent.v4beta1.CustomAttribute.long_values] is supported.
repeated int64 long_values = 2;
// Optional.
//
// If the `filterable` flag is true, custom field values are searchable.
// If false, values are not searchable.
//
// Default is false.
bool filterable = 3;
}
// Output only.
//
// Spell check result.
message SpellingCorrection {
// Indicates if the query was corrected by the spell checker.
bool corrected = 1;
// Correction output consisting of the corrected keyword string.
string corrected_text = 2;
// Corrected output with html tags to highlight the corrected words.
// Corrected words are called out with the "<b><i>...</i></b>" html tags.
//
// For example, the user input query is "software enginear", where the second
// word, "enginear," is incorrect. It should be "engineer". When spelling
// correction is enabled, this value is
// "software <b><i>engineer</i></b>".
string corrected_html = 3;
}
// Job compensation details.
message CompensationInfo {
// A compensation entry that represents one component of compensation, such
// as base pay, bonus, or other compensation type.
//
// Annualization: One compensation entry can be annualized if
// - it contains valid [amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or [range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range].
// - and its [expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year] is set or can be derived.
// Its annualized range is determined as ([amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or [range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range]) times
// [expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year].
message CompensationEntry {
// Optional.
//
// Compensation type.
//
// Default is [CompensationUnit.OTHER_COMPENSATION_TYPE][].
CompensationType type = 1;
// Optional.
//
// Frequency of the specified amount.
//
// Default is [CompensationUnit.OTHER_COMPENSATION_UNIT][google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit.OTHER_COMPENSATION_UNIT].
CompensationUnit unit = 2;
// Optional.
//
// Compensation amount. It could be a fixed amount or a floating range.
oneof compensation_amount {
// Optional.
//
// Compensation amount.
google.type.Money amount = 3;
// Optional.
//
// Compensation range.
CompensationRange range = 4;
}
// Optional.
//
// Compensation description. For example, could
// indicate equity terms or provide additional context to an estimated
// bonus.
string description = 5;
// Optional.
//
// Expected number of units paid each year. If not specified, when
// [Job.employment_types][google.cloud.talent.v4beta1.Job.employment_types] is FULLTIME, a default value is inferred
// based on [unit][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.unit]. Default values:
// - HOURLY: 2080
// - DAILY: 260
// - WEEKLY: 52
// - MONTHLY: 12
// - ANNUAL: 1
google.protobuf.DoubleValue expected_units_per_year = 6;
}
// Compensation range.
message CompensationRange {
// Optional.
//
// The maximum amount of compensation. If left empty, the value is set
// to a maximal compensation value and the currency code is set to
// match the [currency code][google.type.Money.currency_code] of
// min_compensation.
google.type.Money max_compensation = 2;
// Optional.
//
// The minimum amount of compensation. If left empty, the value is set
// to zero and the currency code is set to match the
// [currency code][google.type.Money.currency_code] of max_compensation.
google.type.Money min_compensation = 1;
}
// The type of compensation.
//
// For compensation amounts specified in non-monetary amounts,
// describe the compensation scheme in the [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description].
//
// For example, tipping format is described in
// [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description] (for example, "expect 15-20% tips based
// on customer bill.") and an estimate of the tips provided in
// [CompensationEntry.amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or [CompensationEntry.range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range] ($10 per hour).
//
// For example, equity is described in [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description]
// (for example, "1% - 2% equity vesting over 4 years, 1 year cliff") and
// value estimated in [CompensationEntry.amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or
// [CompensationEntry.range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range]. If no value estimate is possible, units are
// [CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED][google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED] and then further
// clarified in [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description] field.
enum CompensationType {
// Default value.
COMPENSATION_TYPE_UNSPECIFIED = 0;
// Base compensation: Refers to the fixed amount of money paid to an
// employee by an employer in return for work performed. Base compensation
// does not include benefits, bonuses or any other potential compensation
// from an employer.
BASE = 1;
// Bonus.
BONUS = 2;
// Signing bonus.
SIGNING_BONUS = 3;
// Equity.
EQUITY = 4;
// Profit sharing.
PROFIT_SHARING = 5;
// Commission.
COMMISSIONS = 6;
// Tips.
TIPS = 7;
// Other compensation type.
OTHER_COMPENSATION_TYPE = 8;
}
// Pay frequency.
enum CompensationUnit {
// Default value.
COMPENSATION_UNIT_UNSPECIFIED = 0;
// Hourly.
HOURLY = 1;
// Daily.
DAILY = 2;
// Weekly
WEEKLY = 3;
// Monthly.
MONTHLY = 4;
// Yearly.
YEARLY = 5;
// One time.
ONE_TIME = 6;
// Other compensation units.
OTHER_COMPENSATION_UNIT = 7;
}
// Optional.
//
// Job compensation information.
//
// At most one entry can be of type
// [CompensationInfo.CompensationType.BASE][google.cloud.talent.v4beta1.CompensationInfo.CompensationType.BASE], which is
// referred as ** base compensation entry ** for the job.
repeated CompensationEntry entries = 1;
// Output only. Annualized base compensation range. Computed as
// base compensation entry's [CompensationEntry.compensation][] times
// [CompensationEntry.expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year].
//
// See [CompensationEntry][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry] for explanation on compensation annualization.
CompensationRange annualized_base_compensation_range = 2;
// Output only. Annualized total compensation range. Computed as
// all compensation entries' [CompensationEntry.compensation][] times
// [CompensationEntry.expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year].
//
// See [CompensationEntry][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry] for explanation on compensation annualization.
CompensationRange annualized_total_compensation_range = 3;
}

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -17,8 +17,8 @@ syntax = "proto3";
package google.cloud.talent.v4beta1;
import "google/api/annotations.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;
@ -38,20 +38,6 @@ message Company {
Location headquarters_location = 1;
}
// Enum that represents how user data owned by the company is used.
enum DataLearningType {
// Default value.
DATA_LEARNING_TYPE_UNSPECIFIED = 0;
// Data owned by this company is used to improve search/recommendation
// quality across companies.
AGGREGATED = 1;
// Data owned by this company is used to improve search/recommendation
// quality for this company only.
ISOLATED = 2;
}
// Required during company update.
//
// The resource name for a company. This is generated by the service when a
@ -140,12 +126,4 @@ message Company {
// public availability by the service when job content appears suspicious,
// abusive, or spammy.
bool suspended = 13;
// Optional.
//
// Indicates whether data owned by this company may be used to provide product
// improvements across other companies.
//
// Defaults behavior is [DataLearningType.ISOLATED][google.cloud.talent.v4beta1.Company.DataLearningType.ISOLATED] if it's unset.
DataLearningType learning_type = 14;
}

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -18,10 +18,10 @@ syntax = "proto3";
package google.cloud.talent.v4beta1;
import "google/api/annotations.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/company.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/company.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;
@ -30,7 +30,7 @@ option java_package = "com.google.cloud.talent.v4beta1";
option objc_class_prefix = "CTS";
// A service handles company management, including CRUD and job enumeration.
// A service that handles company management, including CRUD and enumeration.
service CompanyService {
// Creates a new company entity.
rpc CreateCompany(CreateCompanyRequest) returns (Company) {
@ -47,9 +47,7 @@ service CompanyService {
};
}
// Updates specified company. Company names can't be updated. To update a
// company name, delete the company and all jobs associated with it, and only
// then re-create them.
// Updates specified company.
rpc UpdateCompany(UpdateCompanyRequest) returns (Company) {
option (google.api.http) = {
patch: "/v4beta1/{company.name=projects/*/companies/*}"
@ -65,7 +63,7 @@ service CompanyService {
};
}
// Lists all companies associated with the service account.
// Lists all companies associated with the project.
rpc ListCompanies(ListCompaniesRequest) returns (ListCompaniesResponse) {
option (google.api.http) = {
get: "/v4beta1/{parent=projects/*}/companies"
@ -73,8 +71,6 @@ service CompanyService {
}
}
// Input only.
//
// The Request of the CreateCompany method.
message CreateCompanyRequest {
// Required.
@ -91,8 +87,6 @@ message CreateCompanyRequest {
Company company = 2;
}
// Input only.
//
// Request for getting a company by name.
message GetCompanyRequest {
// Required.
@ -104,8 +98,6 @@ message GetCompanyRequest {
string name = 1;
}
// Input only.
//
// Request for updating a specified company.
message UpdateCompanyRequest {
// Required.
@ -124,8 +116,6 @@ message UpdateCompanyRequest {
google.protobuf.FieldMask update_mask = 2;
}
// Input only.
//
// Request to delete a company.
message DeleteCompanyRequest {
// Required.
@ -137,8 +127,6 @@ message DeleteCompanyRequest {
string name = 1;
}
// Input only.
//
// List companies for which the client has ACL visibility.
message ListCompaniesRequest {
// Required.

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -41,22 +41,9 @@ message ClientEvent {
// Required.
//
// A unique identifier, generated by the client application. This `event_id`
// is used to establish the relationship between different events
// (see [parent_event_id][google.cloud.talent.v4beta1.ClientEvent.parent_event_id]).
// A unique identifier, generated by the client application.
string event_id = 2;
// Required except the first event.
//
// The event_id of an event that resulted in the current event. For example, a
// [Job view][JobEventType.VIEW] event usually follows a parent
// [impression][JobEventType.IMPRESSION] event: A job seeker first does a
// search where a list of jobs appears
// ([impression][JobEventType.IMPRESSION]). The job seeker then selects a
// result and views the description of a particular job ([Job
// view][JobEventType.VIEW]).
string parent_event_id = 3;
// Required.
//
// The timestamp of the event.
@ -160,7 +147,7 @@ message JobEvent {
// The job seeker or other entity interacting with the service was
// sent a notification, such as an email alert or device notification,
// contatining one or more jobs listings generated by the service.
// containing one or more jobs listings generated by the service.
NOTIFICATION = 12;
// The job seeker or other entity interacting with the service was

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -17,16 +17,16 @@ syntax = "proto3";
package google.cloud.talent.v4beta1;
import "google/api/annotations.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/job.proto";
import "google/cloud/talent/v4beta1/profile.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/type/date.proto";
import "google/type/latlng.proto";
import "google/type/timeofday.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/job.proto";
import "google/cloud/talent/v4beta1/profile.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;
@ -508,29 +508,6 @@ message CompensationFilter {
//
// Parameters needed for commute search.
message CommuteFilter {
// Method for commute.
enum CommuteMethod {
// Commute method isn't specified.
COMMUTE_METHOD_UNSPECIFIED = 0;
// Commute time is calculated based on driving time.
DRIVING = 1;
// Commute time is calculated based on public transit including bus, metro,
// subway, etc.
TRANSIT = 2;
// Commute time is calculated based on walking time.
WALKING = 3;
// Commute time is calculated based on biking time.
BICYCLING = 4;
// Commute time is calculated based on public transit that is wheelchair
// accessible.
TRANSIT_ACCESSIBLE = 5;
}
// The traffic density to use when calculating commute time.
enum RoadTraffic {
// Road traffic situation isn't specified.

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -17,8 +17,8 @@ syntax = "proto3";
package google.cloud.talent.v4beta1;
import "google/api/annotations.proto";
import "google/protobuf/wrappers.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -17,9 +17,9 @@ syntax = "proto3";
package google.cloud.talent.v4beta1;
import "google/api/annotations.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/protobuf/timestamp.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -18,15 +18,15 @@ syntax = "proto3";
package google.cloud.talent.v4beta1;
import "google/api/annotations.proto";
import "google/cloud/talent/v4beta1/batch.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/filters.proto";
import "google/cloud/talent/v4beta1/histogram.proto";
import "google/cloud/talent/v4beta1/job.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/longrunning/operations.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/filters.proto";
import "google/cloud/talent/v4beta1/job.proto";
import "google/cloud/talent/v4beta1/histogram.proto";
import "google/cloud/talent/v4beta1/batch.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;
@ -236,12 +236,16 @@ message ListJobsRequest {
//
// * `companyName` (Required)
// * `requisitionId` (Optional)
// * `status` (Optional) Available values: OPEN, EXPIRED, ALL. Defaults to
// OPEN if no value is specified.
//
// Sample Query:
//
// * companyName = "projects/api-test-project/companies/123"
// * companyName = "projects/api-test-project/companies/123" AND requisitionId
// = "req-1"
// * companyName = "projects/api-test-project/companies/123" AND status =
// "EXPIRED"
string filter = 2;
// Optional.
@ -267,6 +271,32 @@ message ListJobsRequest {
JobView job_view = 5;
}
// An enum that specifies the job attributes that are returned in the
// [MatchingJob.Job][] in [SearchJobsResponse][google.cloud.talent.v4beta1.SearchJobsResponse] or [Job][google.cloud.talent.v4beta1.Job] objects in
// [ListJobsResponse][google.cloud.talent.v4beta1.ListJobsResponse].
enum JobView {
// Default value.
JOB_VIEW_UNSPECIFIED = 0;
// A ID only view of job, with following attributes:
// [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.language_code][google.cloud.talent.v4beta1.Job.language_code].
JOB_VIEW_ID_ONLY = 1;
// A minimal view of the job, with the following attributes:
// [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.job_title][],
// [Job.company_name][google.cloud.talent.v4beta1.Job.company_name], [Job.DerivedInfo.locations][google.cloud.talent.v4beta1.Job.DerivedInfo.locations], [Job.language_code][google.cloud.talent.v4beta1.Job.language_code].
JOB_VIEW_MINIMAL = 2;
// A small view of the job, with the following attributes in the search
// results: [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.job_title][],
// [Job.company_name][google.cloud.talent.v4beta1.Job.company_name], [Job.DerivedInfo.locations][google.cloud.talent.v4beta1.Job.DerivedInfo.locations], [Job.visibility][google.cloud.talent.v4beta1.Job.visibility],
// [Job.language_code][google.cloud.talent.v4beta1.Job.language_code], [Job.description][google.cloud.talent.v4beta1.Job.description].
JOB_VIEW_SMALL = 3;
// All available attributes are included in the search results.
JOB_VIEW_FULL = 4;
}
// Output only.
//
// List jobs response.
@ -753,29 +783,3 @@ message SearchJobsResponse {
// The spell checking result, and correction.
SpellingCorrection spell_correction = 9;
}
// An enum that specifies the job attributes that are returned in the
// [MatchingJob.Job][] in [SearchJobsResponse][google.cloud.talent.v4beta1.SearchJobsResponse] or [Job][google.cloud.talent.v4beta1.Job] objects in
// [ListJobsResponse][google.cloud.talent.v4beta1.ListJobsResponse].
enum JobView {
// Default value.
JOB_VIEW_UNSPECIFIED = 0;
// A ID only view of job, with following attributes:
// [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.language_code][google.cloud.talent.v4beta1.Job.language_code].
JOB_VIEW_ID_ONLY = 1;
// A minimal view of the job, with the following attributes:
// [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.job_title][],
// [Job.company_name][google.cloud.talent.v4beta1.Job.company_name], [Job.DerivedInfo.locations][google.cloud.talent.v4beta1.Job.DerivedInfo.locations], [Job.language_code][google.cloud.talent.v4beta1.Job.language_code].
JOB_VIEW_MINIMAL = 2;
// A small view of the job, with the following attributes in the search
// results: [Job.name][google.cloud.talent.v4beta1.Job.name], [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id], [Job.job_title][],
// [Job.company_name][google.cloud.talent.v4beta1.Job.company_name], [Job.DerivedInfo.locations][google.cloud.talent.v4beta1.Job.DerivedInfo.locations], [Job.visibility][google.cloud.talent.v4beta1.Job.visibility],
// [Job.language_code][google.cloud.talent.v4beta1.Job.language_code], [Job.description][google.cloud.talent.v4beta1.Job.description].
JOB_VIEW_SMALL = 3;
// All available attributes are included in the search results.
JOB_VIEW_FULL = 4;
}

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -18,12 +18,12 @@ syntax = "proto3";
package google.cloud.talent.v4beta1;
import "google/api/annotations.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/job.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/type/date.proto";
import "google/type/postal_address.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/job.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;
@ -33,16 +33,16 @@ option objc_class_prefix = "CTS";
// Cloud Profile Discovery API definition
// A resource that represents the profile for a job candidate (also referred to
// as a "single-source profile"). A profile belongs to a [Company][google.cloud.talent.v4beta1.Company], which is
// the company/organization that owns the profile.
// as a "single-source profile"). A profile belongs to a [Tenant][google.cloud.talent.v4beta1.Tenant], which is
// an isolated instance of the customer that owns the profile.
message Profile {
// Required during profile update.
//
// Resource name assigned to a profile by the API.
//
// The format is
// "projects/{project_id}/companies/{company_id}/profiles/{profile_id}",
// for example, "projects/api-test-project/companies/foo/profiles/bar".
// "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}",
// for example, "projects/api-test-project/tenants/foo/profiles/bar".
string name = 1;
// Optional.

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -18,12 +18,12 @@ syntax = "proto3";
package google.cloud.talent.v4beta1;
import "google/api/annotations.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/filters.proto";
import "google/cloud/talent/v4beta1/histogram.proto";
import "google/cloud/talent/v4beta1/profile.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/histogram.proto";
import "google/cloud/talent/v4beta1/profile.proto";
import "google/cloud/talent/v4beta1/filters.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;
@ -38,14 +38,14 @@ service ProfileService {
// Lists profiles by filter. The order is unspecified.
rpc ListProfiles(ListProfilesRequest) returns (ListProfilesResponse) {
option (google.api.http) = {
get: "/v4beta1/{parent=projects/*/companies/*}/profiles"
get: "/v4beta1/{parent=projects/*/tenants/*}/profiles"
};
}
// Creates and returns a new profile.
rpc CreateProfile(CreateProfileRequest) returns (Profile) {
option (google.api.http) = {
post: "/v4beta1/{parent=projects/*/companies/*}/profiles"
post: "/v4beta1/{parent=projects/*/tenants/*}/profiles"
body: "*"
};
}
@ -53,14 +53,14 @@ service ProfileService {
// Gets the specified profile.
rpc GetProfile(GetProfileRequest) returns (Profile) {
option (google.api.http) = {
get: "/v4beta1/{name=projects/*/companies/*/profiles/*}"
get: "/v4beta1/{name=projects/*/tenants/*/profiles/*}"
};
}
// Updates the specified profile and returns the updated result.
rpc UpdateProfile(UpdateProfileRequest) returns (Profile) {
option (google.api.http) = {
patch: "/v4beta1/{profile.name=projects/*/companies/*/profiles/*}"
patch: "/v4beta1/{profile.name=projects/*/tenants/*/profiles/*}"
body: "*"
};
}
@ -68,11 +68,11 @@ service ProfileService {
// Deletes the specified profile.
rpc DeleteProfile(DeleteProfileRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v4beta1/{name=projects/*/companies/*/profiles/*}"
delete: "/v4beta1/{name=projects/*/tenants/*/profiles/*}"
};
}
// Searches for profiles within a company.
// Searches for profiles within a tenant.
//
// For example, search by raw queries "software engineer in Mountain View" or
// search by structured filters (location filter, education filter, etc.).
@ -80,7 +80,7 @@ service ProfileService {
// See [SearchProfilesRequest][google.cloud.talent.v4beta1.SearchProfilesRequest] for more information.
rpc SearchProfiles(SearchProfilesRequest) returns (SearchProfilesResponse) {
option (google.api.http) = {
post: "/v4beta1/{parent=projects/*/companies/*}:search"
post: "/v4beta1/{parent=projects/*/tenants/*}:search"
body: "*"
};
}
@ -90,10 +90,10 @@ service ProfileService {
message ListProfilesRequest {
// Required.
//
// The resource name of the company under which the job is created.
// The resource name of the tenant under which the job is created.
//
// The format is "projects/{project_id}/companies/{company_id}", for example,
// "projects/api-test-project/companies/foo".
// The format is "projects/{project_id}/tenants/{tenant_id}", for example,
// "projects/api-test-project/tenants/foo".
string parent = 1;
// Optional.
@ -124,7 +124,7 @@ message ListProfilesRequest {
// The List profiles response object.
message ListProfilesResponse {
// Profiles for the specific company.
// Profiles for the specific tenant.
repeated Profile profiles = 1;
// A token to retrieve the next page of results. This is empty if there are no
@ -136,10 +136,10 @@ message ListProfilesResponse {
message CreateProfileRequest {
// Required.
//
// The name of the company this profile belongs to.
// The name of the tenant this profile belongs to.
//
// The format is "projects/{project_id}/companies/{company_id}", for example,
// "projects/api-test-project/companies/foo".
// The format is "projects/{project_id}/tenants/{tenant_id}", for example,
// "projects/api-test-project/tenants/foo".
string parent = 1;
// Required.
@ -155,8 +155,8 @@ message GetProfileRequest {
// Resource name of the profile to get.
//
// The format is
// "projects/{project_id}/companies/{company_id}/profiles/{profile_id}",
// for example, "projects/api-test-project/companies/foo/profiles/bar".
// "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}",
// for example, "projects/api-test-project/tenants/foo/profiles/bar".
string name = 1;
}
@ -208,8 +208,8 @@ message DeleteProfileRequest {
// Resource name of the profile to be deleted.
//
// The format is
// "projects/{project_id}/companies/{company_id}/profiles/{profile_id}",
// for example, "projects/api-test-project/companies/foo/profiles/bar".
// "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}",
// for example, "projects/api-test-project/tenants/foo/profiles/bar".
string name = 1;
}
@ -217,10 +217,10 @@ message DeleteProfileRequest {
message SearchProfilesRequest {
// Required.
//
// The resource name of the company to search within.
// The resource name of the tenant to search within.
//
// The format is "projects/{project_id}/companies/{company_id}", for example,
// "projects/api-test-project/companies/foo".
// The format is "projects/{project_id}/tenants/{tenant_id}", for example,
// "projects/api-test-project/tenants/foo".
string parent = 1;
// Required.

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -48,15 +48,15 @@ service ResumeService {
// resume, clients need to call the CreateProfile method again with the
// profile returned.
//
// This API supports the following list of formats:
// The following list of formats are supported:
//
// * PDF
// * TXT
// * DOC
// * RTF
// * DOCX
//
// An error is thrown if the input format is not supported.
// * PNG (only when [ParseResumeRequest.enable_ocr][] is set to `true`,
// otherwise an error is thrown)
rpc ParseResume(ParseResumeRequest) returns (ParseResumeResponse) {
option (google.api.http) = {
post: "/v4beta1/{parent=projects/*}/resumes:parse"
@ -77,9 +77,9 @@ message ParseResumeRequest {
// Required.
//
// The bytes of the resume file in common format. Currently the API supports
// the following formats:
// PDF, TXT, DOC, RTF and DOCX.
// The bytes of the resume file in common format, for example, PDF, TXT.
// UTF-8 encoding is required if the resume is text-based, otherwise an error
// is thrown.
bytes resume = 2;
// Optional.
@ -102,6 +102,34 @@ message ParseResumeRequest {
// [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
// class="external" target="_blank" }.
string language_code = 4;
// Optional.
//
// Options that change how the resume parse is performed.
ParseResumeOptions options = 5;
}
// Options that change how the resume parse is performed.
message ParseResumeOptions {
// Optional.
//
// Controls whether Optical Character Recognition (OCR) is enabled.
//
// OCR is used to decipher pictorial resumes, or resumes that have some
// element of pictorial detail (for example, contact information placed within
// an image in a pdf). Note that the API call has a higher latency if OCR is
// enabled.
bool enable_ocr = 1;
// Optional.
//
// Controls whether detected skills are included in the parsed profile from
// sections of the resume other than just skills sections.
//
// Normally, returned skills are limited to those taken from a resume section
// intended to list skills. When enabled, this feature causes detected
// skills in other sections to also be included in the returned profile.
bool enable_full_skill_detection = 2;
}
// Parse resume response.

View File

@ -43,8 +43,10 @@ collections:
entity_name: company
- name_pattern: projects/{project}/jobs/{jobs}
entity_name: job
- name_pattern: projects/{project}/companies/{company}/profiles/{profile}
- name_pattern: projects/{project}/tenants/{tenant}/profiles/{profile}
entity_name: profile
- name_pattern: projects/{project}/tenants/{tenant}
entity_name: tenant
# A list of API interface configurations.
interfaces:
# The fully qualified name of the API interface.
@ -659,7 +661,7 @@ interfaces:
retry_codes_name: idempotent
retry_params_name: default
field_name_patterns:
parent: company
parent: tenant
timeout_millis: 30000
- name: CreateProfile
flattening:
@ -674,7 +676,7 @@ interfaces:
retry_codes_name: non_idempotent
retry_params_name: default
field_name_patterns:
parent: company
parent: tenant
timeout_millis: 30000
- name: GetProfile
flattening:
@ -727,7 +729,7 @@ interfaces:
retry_codes_name: non_idempotent
retry_params_name: default
field_name_patterns:
parent: company
parent: tenant
timeout_millis: 30000
# The fully qualified name of the API interface.
- name: google.cloud.talent.v4beta1.ResumeService
@ -819,6 +821,152 @@ interfaces:
field_name_patterns:
parent: project
timeout_millis: 30000
# The fully qualified name of the API interface.
- name: google.cloud.talent.v4beta1.TenantService
# Definition for retryable codes.
retry_codes_def:
- name: idempotent
retry_codes:
- DEADLINE_EXCEEDED
- UNAVAILABLE
- name: non_idempotent
retry_codes: []
# Definition for retry/backoff parameters.
retry_params_def:
- name: default
initial_retry_delay_millis: 100
retry_delay_multiplier: 1.3
max_retry_delay_millis: 60000
initial_rpc_timeout_millis: 20000
rpc_timeout_multiplier: 1
max_rpc_timeout_millis: 20000
total_timeout_millis: 600000
# A list of method configurations.
# Common properties:
#
# name - The simple name of the method.
#
# flattening - Specifies the configuration for parameter flattening.
# Describes the parameter groups for which a generator should produce method
# overloads which allow a client to directly pass request message fields as
# method parameters. This information may or may not be used, depending on
# the target language.
# Consists of groups, which each represent a list of parameters to be
# flattened. Each parameter listed must be a field of the request message.
#
# required_fields - Fields that are always required for a request to be
# valid.
#
# resource_name_treatment - An enum that specifies how to treat the resource
# name formats defined in the field_name_patterns and
# response_field_name_patterns fields.
# UNSET: default value
# NONE: the collection configs will not be used by the generated code.
# VALIDATE: string fields will be validated by the client against the
# specified resource name formats.
# STATIC_TYPES: the client will use generated types for resource names.
#
# page_streaming - Specifies the configuration for paging.
# Describes information for generating a method which transforms a paging
# list RPC into a stream of resources.
# Consists of a request and a response.
# The request specifies request information of the list method. It defines
# which fields match the paging pattern in the request. The request consists
# of a page_size_field and a token_field. The page_size_field is the name of
# the optional field specifying the maximum number of elements to be
# returned in the response. The token_field is the name of the field in the
# request containing the page token.
# The response specifies response information of the list method. It defines
# which fields match the paging pattern in the response. The response
# consists of a token_field and a resources_field. The token_field is the
# name of the field in the response containing the next page token. The
# resources_field is the name of the field in the response containing the
# list of resources belonging to the page.
#
# retry_codes_name - Specifies the configuration for retryable codes. The
# name must be defined in interfaces.retry_codes_def.
#
# retry_params_name - Specifies the configuration for retry/backoff
# parameters. The name must be defined in interfaces.retry_params_def.
#
# field_name_patterns - Maps the field name of the request type to
# entity_name of interfaces.collections.
# Specifies the string pattern that the field must follow.
#
# timeout_millis - Specifies the default timeout for a non-retrying call. If
# the call is retrying, refer to retry_params_name instead.
methods:
- name: CreateTenant
flattening:
groups:
- parameters:
- parent
- tenant
required_fields:
- parent
- tenant
resource_name_treatment: STATIC_TYPES
retry_codes_name: non_idempotent
retry_params_name: default
field_name_patterns:
parent: project
timeout_millis: 30000
- name: GetTenant
flattening:
groups:
- parameters:
- name
required_fields:
- name
resource_name_treatment: STATIC_TYPES
retry_codes_name: idempotent
retry_params_name: default
field_name_patterns:
name: tenant
timeout_millis: 30000
- name: UpdateTenant
flattening:
groups:
- parameters:
- tenant
required_fields:
- tenant
retry_codes_name: non_idempotent
retry_params_name: default
timeout_millis: 30000
- name: DeleteTenant
flattening:
groups:
- parameters:
- name
required_fields:
- name
resource_name_treatment: STATIC_TYPES
retry_codes_name: idempotent
retry_params_name: default
field_name_patterns:
name: tenant
timeout_millis: 30000
- name: ListTenants
flattening:
groups:
- parameters:
- parent
required_fields:
- parent
resource_name_treatment: STATIC_TYPES
page_streaming:
request:
page_size_field: page_size
token_field: page_token
response:
token_field: next_page_token
resources_field: tenants
retry_codes_name: idempotent
retry_params_name: default
field_name_patterns:
parent: project
timeout_millis: 30000
resource_name_generation:
- message_name: Company
field_entity_map:
@ -835,6 +983,12 @@ resource_name_generation:
- message_name: ListCompaniesRequest
field_entity_map:
parent: project
- message_name: CompleteQueryRequest
field_entity_map:
name: project
- message_name: CreateClientEventRequest
field_entity_map:
parent: project
- message_name: Job
field_entity_map:
name: job
@ -864,7 +1018,7 @@ resource_name_generation:
name: profile
- message_name: CreateProfileRequest
field_entity_map:
parent: company
parent: tenant
- message_name: GetProfileRequest
field_entity_map:
name: profile
@ -873,16 +1027,25 @@ resource_name_generation:
name: profile
- message_name: ListProfilesRequest
field_entity_map:
parent: company
parent: tenant
- message_name: SearchProfilesRequest
field_entity_map:
parent: company
parent: tenant
- message_name: ParseResumeRequest
field_entity_map:
parent: project
- message_name: CompleteQueryRequest
- message_name: Tenant
field_entity_map:
name: project
- message_name: CreateClientEventRequest
name: tenant
- message_name: CreateTenantRequest
field_entity_map:
parent: project
- message_name: GetTenantRequest
field_entity_map:
name: tenant
- message_name: DeleteTenantRequest
field_entity_map:
name: tenant
- message_name: ListTenantsRequest
field_entity_map:
parent: project

View File

@ -0,0 +1,72 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.cloud.talent.v4beta1;
import "google/cloud/talent/v4beta1/common.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;
option java_outer_classname = "TenantResourceProto";
option java_package = "com.google.cloud.talent.v4beta1";
option objc_class_prefix = "CTS";
// A Tenant resource represents a tenant in the service. A tenant is a group or
// entity that shares common access with specific privileges for resources like
// profiles. Customer may create multiple tenants to provide data isolation for
// different groups.
message Tenant {
// Enum that represents how user data owned by the tenant is used.
enum DataUsageType {
// Default value.
DATA_USAGE_TYPE_UNSPECIFIED = 0;
// Data owned by this tenant is used to improve search/recommendation
// quality across tenants.
AGGREGATED = 1;
// Data owned by this tenant is used to improve search/recommendation
// quality for this tenant only.
ISOLATED = 2;
}
// Required during tenant update.
//
// The resource name for a tenant. This is generated by the service when a
// tenant is created.
//
// The format is "projects/{project_id}/tenants/{tenant_id}", for example,
// "projects/api-test-project/tenants/foo".
string name = 1;
// Required.
//
// Client side tenant identifier, used to uniquely identify the tenant.
//
// The maximum number of allowed characters is 255.
string external_id = 2;
// Optional.
//
// Indicates whether data owned by this tenant may be used to provide product
// improvements across other tenants.
//
// Defaults behavior is [DataUsageType.ISOLATED][google.cloud.talent.v4beta1.Tenant.DataUsageType.ISOLATED] if it's unset.
DataUsageType usage_type = 3;
}

View File

@ -0,0 +1,164 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.cloud.talent.v4beta1;
import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/tenant.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;
option java_outer_classname = "TenantServiceProto";
option java_package = "com.google.cloud.talent.v4beta1";
option objc_class_prefix = "CTS";
// A service that handles tenant management, including CRUD and enumeration.
service TenantService {
// Creates a new tenant entity.
rpc CreateTenant(CreateTenantRequest) returns (Tenant) {
option (google.api.http) = {
post: "/v4beta1/{parent=projects/*}/tenants"
body: "*"
};
}
// Retrieves specified tenant.
rpc GetTenant(GetTenantRequest) returns (Tenant) {
option (google.api.http) = {
get: "/v4beta1/{name=projects/*/tenants/*}"
};
}
// Updates specified tenant.
rpc UpdateTenant(UpdateTenantRequest) returns (Tenant) {
option (google.api.http) = {
patch: "/v4beta1/{tenant.name=projects/*/tenants/*}"
body: "*"
};
}
// Deletes specified tenant.
rpc DeleteTenant(DeleteTenantRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v4beta1/{name=projects/*/tenants/*}"
};
}
// Lists all tenants associated with the project.
rpc ListTenants(ListTenantsRequest) returns (ListTenantsResponse) {
option (google.api.http) = {
get: "/v4beta1/{parent=projects/*}/tenants"
};
}
}
// The Request of the CreateTenant method.
message CreateTenantRequest {
// Required.
//
// Resource name of the project under which the tenant is created.
//
// The format is "projects/{project_id}", for example,
// "projects/api-test-project".
string parent = 1;
// Required.
//
// The tenant to be created.
Tenant tenant = 2;
}
// Request for getting a tenant by name.
message GetTenantRequest {
// Required.
//
// The resource name of the tenant to be retrieved.
//
// The format is "projects/{project_id}/tenants/{tenant_id}", for example,
// "projects/api-test-project/tenants/foo".
string name = 1;
}
// Request for updating a specified tenant.
message UpdateTenantRequest {
// Required.
//
// The tenant resource to replace the current resource in the system.
Tenant tenant = 1;
// Optional but strongly recommended for the best service
// experience.
//
// If [update_mask][google.cloud.talent.v4beta1.UpdateTenantRequest.update_mask] is provided, only the specified fields in
// [tenant][google.cloud.talent.v4beta1.UpdateTenantRequest.tenant] are updated. Otherwise all the fields are updated.
//
// A field mask to specify the tenant fields to be updated. Only
// top level fields of [Tenant][google.cloud.talent.v4beta1.Tenant] are supported.
google.protobuf.FieldMask update_mask = 2;
}
// Request to delete a tenant.
message DeleteTenantRequest {
// Required.
//
// The resource name of the tenant to be deleted.
//
// The format is "projects/{project_id}/tenants/{tenant_id}", for example,
// "projects/api-test-project/tenants/foo".
string name = 1;
}
// List tenants for which the client has ACL visibility.
message ListTenantsRequest {
// Required.
//
// Resource name of the project under which the tenant is created.
//
// The format is "projects/{project_id}", for example,
// "projects/api-test-project".
string parent = 1;
// Optional.
//
// The starting indicator from which to return results.
string page_token = 2;
// Optional.
//
// The maximum number of tenants to be returned, at most 100.
// Default is 100 if a non-positive number is provided.
int32 page_size = 3;
}
// Output only.
//
// The List tenants response object.
message ListTenantsResponse {
// Tenants for the current client.
repeated Tenant tenants = 1;
// A token to retrieve the next page of results.
string next_page_token = 2;
// Additional information for the API invocation, such as the request
// tracking id.
ResponseMetadata metadata = 3;
}