Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-proto-files / google / cloud / talent / v4beta1 / profile_service.proto
diff --git a/legacy-libs/google-proto-files/google/cloud/talent/v4beta1/profile_service.proto b/legacy-libs/google-proto-files/google/cloud/talent/v4beta1/profile_service.proto
new file mode 100644 (file)
index 0000000..aa6f5c5
--- /dev/null
@@ -0,0 +1,458 @@
+// 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/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";
+
+option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
+option java_multiple_files = true;
+option java_outer_classname = "ProfileServiceProto";
+option java_package = "com.google.cloud.talent.v4beta1";
+option objc_class_prefix = "CTS";
+
+// A service that handles profile management, including profile CRUD,
+// enumeration and search.
+service ProfileService {
+  // Lists profiles by filter. The order is unspecified.
+  rpc ListProfiles(ListProfilesRequest) returns (ListProfilesResponse) {
+    option (google.api.http) = {
+      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/*/tenants/*}/profiles"
+      body: "*"
+    };
+  }
+
+  // Gets the specified profile.
+  rpc GetProfile(GetProfileRequest) returns (Profile) {
+    option (google.api.http) = {
+      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/*/tenants/*/profiles/*}"
+      body: "*"
+    };
+  }
+
+  // Deletes the specified profile.
+  rpc DeleteProfile(DeleteProfileRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v4beta1/{name=projects/*/tenants/*/profiles/*}"
+    };
+  }
+
+  // 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.).
+  //
+  // See
+  // [SearchProfilesRequest][google.cloud.talent.v4beta1.SearchProfilesRequest]
+  // for more information.
+  rpc SearchProfiles(SearchProfilesRequest) returns (SearchProfilesResponse) {
+    option (google.api.http) = {
+      post: "/v4beta1/{parent=projects/*/tenants/*}:search"
+      body: "*"
+    };
+  }
+}
+
+// List profiles request.
+message ListProfilesRequest {
+  // Required.
+  //
+  // The resource name of the tenant under which the job is created.
+  //
+  // The format is "projects/{project_id}/tenants/{tenant_id}", for example,
+  // "projects/api-test-project/tenants/foo".
+  string parent = 1;
+
+  // Optional.
+  //
+  // The token that specifies the current offset (that is, starting result).
+  //
+  // Please set the value to
+  // [ListProfilesResponse.next_page_token][google.cloud.talent.v4beta1.ListProfilesResponse.next_page_token]
+  // to continue the list.
+  string page_token = 2;
+
+  // Optional.
+  //
+  // The maximum number of profiles to be returned, at most 100.
+  //
+  // Default is 100 unless a positive number smaller than 100 is specified.
+  int32 page_size = 3;
+
+  // Optional.
+  //
+  // A field mask to specify the profile fields to be listed in response.
+  // All fields are listed if it is unset.
+  //
+  // Valid values are:
+  //
+  // * name
+  google.protobuf.FieldMask field_mask = 4;
+}
+
+// The List profiles response object.
+message ListProfilesResponse {
+  // 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
+  // more results.
+  string next_page_token = 2;
+}
+
+// Create profile request.
+message CreateProfileRequest {
+  // Required.
+  //
+  // The name of the tenant this profile belongs to.
+  //
+  // The format is "projects/{project_id}/tenants/{tenant_id}", for example,
+  // "projects/api-test-project/tenants/foo".
+  string parent = 1;
+
+  // Required.
+  //
+  // The profile to be created.
+  Profile profile = 2;
+}
+
+// Get profile request.
+message GetProfileRequest {
+  // Required.
+  //
+  // Resource name of the profile to get.
+  //
+  // The format is
+  // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}",
+  // for example, "projects/api-test-project/tenants/foo/profiles/bar".
+  string name = 1;
+}
+
+// Update profile request
+message UpdateProfileRequest {
+  // Required.
+  //
+  // Profile to be updated.
+  Profile profile = 1;
+
+  // Optional.
+  //
+  // A field mask to specify the profile fields to update.
+  //
+  // A full update is performed if it is unset.
+  //
+  // Valid values are:
+  //
+  // * externalId
+  // * source
+  // * uri
+  // * isHirable
+  // * createTime
+  // * updateTime
+  // * resumeHrxml
+  // * personNames
+  // * addresses
+  // * emailAddresses
+  // * phoneNumbers
+  // * personalUris
+  // * additionalContactInfo
+  // * employmentRecords
+  // * educationRecords
+  // * skills
+  // * projects
+  // * publications
+  // * patents
+  // * certifications
+  // * jobApplications
+  // * recruitingNotes
+  // * customAttributes
+  google.protobuf.FieldMask update_mask = 2;
+}
+
+// Delete profile request.
+message DeleteProfileRequest {
+  // Required.
+  //
+  // Resource name of the profile to be deleted.
+  //
+  // The format is
+  // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}",
+  // for example, "projects/api-test-project/tenants/foo/profiles/bar".
+  string name = 1;
+}
+
+// The request body of the `SearchProfiles` call.
+message SearchProfilesRequest {
+  // Required.
+  //
+  // The resource name of the tenant to search within.
+  //
+  // The format is "projects/{project_id}/tenants/{tenant_id}", for example,
+  // "projects/api-test-project/tenants/foo".
+  string parent = 1;
+
+  // Required.
+  //
+  // The meta information collected about the profile search user. This is used
+  // to improve the search quality of the service. These values are provided by
+  // users, and must be precise and consistent.
+  RequestMetadata request_metadata = 2;
+
+  // Optional.
+  //
+  // Search query to execute. See
+  // [ProfileQuery][google.cloud.talent.v4beta1.ProfileQuery] for more details.
+  ProfileQuery profile_query = 3;
+
+  // Optional.
+  //
+  // A limit on the number of profiles returned in the search results.
+  // A value above the default value 10 can increase search response time.
+  //
+  // The maximum value allowed is 100. Otherwise an error is thrown.
+  int32 page_size = 4;
+
+  // Optional.
+  //
+  // The pageToken, similar to offset enables users of the API to paginate
+  // through the search results. To retrieve the first page of results, set the
+  // pageToken to empty. The search response includes a
+  // [nextPageToken][google.cloud.talent.v4beta1.SearchProfilesResponse.next_page_token]
+  // field that can be used to populate the pageToken field for the next page of
+  // results. Using pageToken instead of offset increases the performance of the
+  // API, especially compared to larger offset values.
+  string page_token = 5;
+
+  // Optional.
+  //
+  // An integer that specifies the current offset (that is, starting result) in
+  // search results. This field is only considered if
+  // [page_token][google.cloud.talent.v4beta1.SearchProfilesRequest.page_token]
+  // is unset.
+  //
+  // The maximum allowed value is 5000. Otherwise an error is thrown.
+  //
+  // For example, 0 means to search from the first profile, and 10 means to
+  // search from the 11th profile. This can be used for pagination, for example
+  // pageSize = 10 and offset = 10 means to search from the second page.
+  int32 offset = 6;
+
+  // Optional.
+  //
+  // This flag controls the spell-check feature. If `false`, the
+  // service attempts to correct a misspelled query.
+  //
+  // For example, "enginee" is corrected to "engineer".
+  bool disable_spell_check = 7;
+
+  // Optional.
+  //
+  // The criteria that determines how search results are sorted.
+  // Defaults is "relevance desc" if no value is specified.
+  //
+  // Supported options are:
+  //
+  // * "relevance desc": By descending relevance, as determined by the API
+  //    algorithms.
+  // * "update_date desc": Sort by [Profile.update_date][] in descending order
+  //   (recently updated profiles first).
+  // * "create_date desc": Sort by [Profile.create_date][] in descending order
+  //   (recently created profiles first).
+  // * "first_name": Sort by [PersonStrcuturedName.given_name][] in ascending
+  //   order.
+  // * "first_name desc": Sort by [PersonStrcuturedName.given_name][] in
+  //   descending order.
+  // * "last_name": Sort by [PersonStrcuturedName.family_name][] in ascending
+  //   order.
+  // * "last_name desc": Sort by [PersonStrcuturedName.family_name][] in
+  //   ascending order.
+  string order_by = 8;
+
+  // Optional.
+  //
+  // When sort by field is based on alphabetical order, sort values case
+  // sensitively (based on ASCII) when the value is set to true. Default value
+  // is case in-sensitive sort (false).
+  bool case_sensitive_sort = 9;
+
+  // Optional.
+  //
+  // A list of expressions specifies histogram requests against matching
+  // profiles for
+  // [SearchProfilesRequest][google.cloud.talent.v4beta1.SearchProfilesRequest].
+  //
+  // The expression syntax looks like a function definition with optional
+  // parameters.
+  //
+  // Function syntax: function_name(histogram_facet[, list of buckets])
+  //
+  // Data types:
+  //
+  // * Histogram facet: facet names with format [a-zA-Z][a-zA-Z0-9_]+.
+  // * String: string like "any string with backslash escape for quote(\")."
+  // * Number: whole number and floating point number like 10, -1 and -0.01.
+  // * List: list of elements with comma(,) separator surrounded by square
+  // brackets. For example, [1, 2, 3] and ["one", "two", "three"].
+  //
+  // Built-in constants:
+  //
+  // * MIN (minimum number similar to java Double.MIN_VALUE)
+  // * MAX (maximum number similar to java Double.MAX_VALUE)
+  //
+  // Built-in functions:
+  //
+  // * bucket(start, end[, label])
+  // Bucket build-in function creates a bucket with range of [start, end). Note
+  // that the end is exclusive.
+  // For example, bucket(1, MAX, "positive number") or bucket(1, 10).
+  //
+  // Histogram Facets:
+  //
+  // * admin1: Admin1 is a global placeholder for referring to state, province,
+  // or the particular term a country uses to define the geographic structure
+  // below the country level. Examples include states codes such as "CA", "IL",
+  // "NY", and provinces, such as "BC".
+  // * locality: Locality is a global placeholder for referring to city, town,
+  // or the particular term a country uses to define the geographic structure
+  // below the admin1 level. Examples include city names such as
+  // "Mountain View" and "New York".
+  // * extended_locality: Extended locality is concatenated version of admin1
+  // and locality with comma separator. For example, "Mountain View, CA" and
+  // "New York, NY".
+  // * postal_code: Postal code of profile which follows locale code.
+  // * country: Country code (ISO-3166-1 alpha-2 code) of profile, such as US,
+  //  JP, GB.
+  // * job_title: Normalized job titles specified in EmploymentHistory.
+  // * company_name: Normalized company name of profiles to match on.
+  // * institution: The school name. For example, "MIT",
+  // "University of California, Berkeley"
+  // * degree: Highest education degree in ISCED code. Each value in degree
+  // covers specific level of education, without any expansion to upper nor
+  // lower levels of education degree.
+  // * experience_in_months: experience in months. 0 means 0 month to 1 month
+  // (exclusive).
+  // * application_date: The application date specifies application start dates.
+  // See
+  // [ApplicationDateFilter][google.cloud.talent.v4beta1.ApplicationDateFilter]
+  // for more details.
+  // * application_outcome_reason: The application outcome reason specifies the
+  // outcome reasons of job application.
+  // See
+  // [ApplicationOutcomeReasonFilter][google.cloud.talent.v4beta1.ApplicationOutcomeReasonFilter]
+  // for more details.
+  // * application_last_stage: The application last stage specifies the last
+  // stage of job application.
+  // See
+  // [ApplicationLastStageFilter][google.cloud.talent.v4beta1.ApplicationLastStageFilter]
+  // for more details.
+  // * application_job_title: The application job title specifies the job
+  // applied for in the application.
+  // See
+  // [ApplicationJobFilter][google.cloud.talent.v4beta1.ApplicationJobFilter]
+  // for more details.
+  // * application_status: The application status specifies the status of job
+  // application.
+  // See
+  // [ApplicationStatusFilter][google.cloud.talent.v4beta1.ApplicationStatusFilter]
+  // for more details.
+  // * hirable_status: Hirable status specifies the profile's hirable status.
+  // * string_custom_attribute: String custom attributes. Values can be accessed
+  // via square bracket notation like string_custom_attribute["key1"].
+  // * numeric_custom_attribute: Numeric custom attributes. Values can be
+  // accessed via square bracket notation like numeric_custom_attribute["key1"].
+  //
+  // Example expressions:
+  //
+  // * count(admin1)
+  // * count(experience_in_months, [bucket(0, 12, "1 year"),
+  // bucket(12, 36, "1-3 years"), bucket(36, MAX, "3+ years")])
+  // * count(string_custom_attribute["assigned_recruiter"])
+  // * count(numeric_custom_attribute["favorite_number"],
+  // [bucket(MIN, 0, "negative"), bucket(0, MAX, "non-negative")])
+  repeated HistogramQuery histogram_queries = 10;
+}
+
+// Response of SearchProfiles method.
+message SearchProfilesResponse {
+  // An estimation of the number of profiles that match the specified query.
+  //
+  // This number isn't guaranteed to be accurate.
+  int64 estimated_total_size = 1;
+
+  // The spell checking result, and correction.
+  SpellingCorrection spell_correction = 2;
+
+  // Additional information for the API invocation, such as the request
+  // tracking id.
+  ResponseMetadata metadata = 3;
+
+  // A token to retrieve the next page of results. This is empty if there are no
+  // more results.
+  string next_page_token = 4;
+
+  // The histogram results that match with specified
+  // [SearchProfilesRequest.histogram_queries][google.cloud.talent.v4beta1.SearchProfilesRequest.histogram_queries].
+  repeated HistogramQueryResult histogram_query_results = 5;
+
+  // The profile entities that match the specified
+  // [SearchProfilesRequest][google.cloud.talent.v4beta1.SearchProfilesRequest].
+  repeated SummarizedProfile summarized_profiles = 6;
+}
+
+// Output only.
+//
+// Profile entry with metadata inside
+// [SearchProfilesResponse][google.cloud.talent.v4beta1.SearchProfilesResponse].
+message SummarizedProfile {
+  // A list of profiles that are linked by [Profile.cluster_id][].
+  repeated Profile profiles = 1;
+
+  // A profile summary shows the profile summary and how the profile matches the
+  // search query.
+  //
+  // In profile summary, the profiles with the same [Profile.cluster_id][] are
+  // merged together. Among profiles, same education/employment records may be
+  // slightly different but they are merged into one with best efforts.
+  //
+  // For example, in one profile the school name is "UC Berkeley" and the field
+  // study is "Computer Science" and in another one the school name is
+  // "University of California at Berkeley" and the field study is "CS". The API
+  // merges these two inputs into one and selects one value for each field. For
+  // example, the school name in summary is set to "University of California at
+  // Berkeley" and the field of study is set to "Computer Science".
+  Profile summary = 2;
+}