diff --git a/google/cloud/talent/talent_v4beta1.yaml b/google/cloud/talent/talent_v4beta1.yaml index 7bb9de2f..b5cd345c 100644 --- a/google/cloud/talent/talent_v4beta1.yaml +++ b/google/cloud/talent/talent_v4beta1.yaml @@ -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: diff --git a/google/cloud/talent/v4beta1/batch.proto b/google/cloud/talent/v4beta1/batch.proto index cb92ac88..6b330c3c 100644 --- a/google/cloud/talent/v4beta1/batch.proto +++ b/google/cloud/talent/v4beta1/batch.proto @@ -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; diff --git a/google/cloud/talent/v4beta1/common.proto b/google/cloud/talent/v4beta1/common.proto index 5ed452d3..d174a2c6 100644 --- a/google/cloud/talent/v4beta1/common.proto +++ b/google/cloud/talent/v4beta1/common.proto @@ -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 Foo, Inc., 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 "..." 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 engineer". - 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 Foo, Inc., 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 "..." 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 engineer". + 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; +} diff --git a/google/cloud/talent/v4beta1/company.proto b/google/cloud/talent/v4beta1/company.proto index 8cd727d1..d9264b52 100644 --- a/google/cloud/talent/v4beta1/company.proto +++ b/google/cloud/talent/v4beta1/company.proto @@ -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; } diff --git a/google/cloud/talent/v4beta1/company_service.proto b/google/cloud/talent/v4beta1/company_service.proto index a2654317..275cd2bf 100644 --- a/google/cloud/talent/v4beta1/company_service.proto +++ b/google/cloud/talent/v4beta1/company_service.proto @@ -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. diff --git a/google/cloud/talent/v4beta1/completion_service.proto b/google/cloud/talent/v4beta1/completion_service.proto index 80041e7f..2429a944 100644 --- a/google/cloud/talent/v4beta1/completion_service.proto +++ b/google/cloud/talent/v4beta1/completion_service.proto @@ -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. diff --git a/google/cloud/talent/v4beta1/event.proto b/google/cloud/talent/v4beta1/event.proto index 56043497..d573c165 100644 --- a/google/cloud/talent/v4beta1/event.proto +++ b/google/cloud/talent/v4beta1/event.proto @@ -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 diff --git a/google/cloud/talent/v4beta1/event_service.proto b/google/cloud/talent/v4beta1/event_service.proto index 454eebcf..f8623fc8 100644 --- a/google/cloud/talent/v4beta1/event_service.proto +++ b/google/cloud/talent/v4beta1/event_service.proto @@ -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. diff --git a/google/cloud/talent/v4beta1/filters.proto b/google/cloud/talent/v4beta1/filters.proto index b060a56f..36f70546 100644 --- a/google/cloud/talent/v4beta1/filters.proto +++ b/google/cloud/talent/v4beta1/filters.proto @@ -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. diff --git a/google/cloud/talent/v4beta1/histogram.proto b/google/cloud/talent/v4beta1/histogram.proto index 9f882e94..b69f2f7b 100644 --- a/google/cloud/talent/v4beta1/histogram.proto +++ b/google/cloud/talent/v4beta1/histogram.proto @@ -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; diff --git a/google/cloud/talent/v4beta1/job.proto b/google/cloud/talent/v4beta1/job.proto index 91826bed..51f67958 100644 --- a/google/cloud/talent/v4beta1/job.proto +++ b/google/cloud/talent/v4beta1/job.proto @@ -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; diff --git a/google/cloud/talent/v4beta1/job_service.proto b/google/cloud/talent/v4beta1/job_service.proto index a02b2899..c6fa957a 100644 --- a/google/cloud/talent/v4beta1/job_service.proto +++ b/google/cloud/talent/v4beta1/job_service.proto @@ -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; -} diff --git a/google/cloud/talent/v4beta1/profile.proto b/google/cloud/talent/v4beta1/profile.proto index 5db6bf56..604b187f 100644 --- a/google/cloud/talent/v4beta1/profile.proto +++ b/google/cloud/talent/v4beta1/profile.proto @@ -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. diff --git a/google/cloud/talent/v4beta1/profile_service.proto b/google/cloud/talent/v4beta1/profile_service.proto index 309c4fd7..e7b657fe 100644 --- a/google/cloud/talent/v4beta1/profile_service.proto +++ b/google/cloud/talent/v4beta1/profile_service.proto @@ -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. diff --git a/google/cloud/talent/v4beta1/resume_service.proto b/google/cloud/talent/v4beta1/resume_service.proto index f8116331..7dc81931 100644 --- a/google/cloud/talent/v4beta1/resume_service.proto +++ b/google/cloud/talent/v4beta1/resume_service.proto @@ -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. diff --git a/google/cloud/talent/v4beta1/talent_gapic.yaml b/google/cloud/talent/v4beta1/talent_gapic.yaml index ffab023e..21dcb876 100644 --- a/google/cloud/talent/v4beta1/talent_gapic.yaml +++ b/google/cloud/talent/v4beta1/talent_gapic.yaml @@ -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 diff --git a/google/cloud/talent/v4beta1/tenant.proto b/google/cloud/talent/v4beta1/tenant.proto new file mode 100644 index 00000000..36573096 --- /dev/null +++ b/google/cloud/talent/v4beta1/tenant.proto @@ -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; +} diff --git a/google/cloud/talent/v4beta1/tenant_service.proto b/google/cloud/talent/v4beta1/tenant_service.proto new file mode 100644 index 00000000..95c8bbf0 --- /dev/null +++ b/google/cloud/talent/v4beta1/tenant_service.proto @@ -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; +}