google-cloud-talent 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +9 -0
  3. data/LICENSE +201 -0
  4. data/README.md +69 -0
  5. data/lib/google/cloud/talent.rb +456 -0
  6. data/lib/google/cloud/talent/v4beta1.rb +484 -0
  7. data/lib/google/cloud/talent/v4beta1/batch_pb.rb +21 -0
  8. data/lib/google/cloud/talent/v4beta1/common_pb.rb +264 -0
  9. data/lib/google/cloud/talent/v4beta1/company_pb.rb +39 -0
  10. data/lib/google/cloud/talent/v4beta1/company_service_client.rb +479 -0
  11. data/lib/google/cloud/talent/v4beta1/company_service_client_config.json +51 -0
  12. data/lib/google/cloud/talent/v4beta1/company_service_pb.rb +53 -0
  13. data/lib/google/cloud/talent/v4beta1/company_service_services_pb.rb +56 -0
  14. data/lib/google/cloud/talent/v4beta1/completion_client.rb +303 -0
  15. data/lib/google/cloud/talent/v4beta1/completion_client_config.json +31 -0
  16. data/lib/google/cloud/talent/v4beta1/completion_service_pb.rb +53 -0
  17. data/lib/google/cloud/talent/v4beta1/completion_service_services_pb.rb +48 -0
  18. data/lib/google/cloud/talent/v4beta1/credentials.rb +42 -0
  19. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/common.rb +890 -0
  20. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/company.rb +125 -0
  21. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/company_service.rb +130 -0
  22. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/completion_service.rb +153 -0
  23. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/event.rb +252 -0
  24. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/event_service.rb +34 -0
  25. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/filters.rb +853 -0
  26. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/histogram.rb +56 -0
  27. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/job.rb +409 -0
  28. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/job_service.rb +732 -0
  29. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/profile.rb +1125 -0
  30. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/profile_service.rb +392 -0
  31. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/resume_service.rb +98 -0
  32. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/tenant.rb +68 -0
  33. data/lib/google/cloud/talent/v4beta1/doc/google/cloud/talent/v4beta1/tenant_service.rb +119 -0
  34. data/lib/google/cloud/talent/v4beta1/doc/google/protobuf/duration.rb +91 -0
  35. data/lib/google/cloud/talent/v4beta1/doc/google/protobuf/empty.rb +29 -0
  36. data/lib/google/cloud/talent/v4beta1/doc/google/protobuf/field_mask.rb +230 -0
  37. data/lib/google/cloud/talent/v4beta1/doc/google/protobuf/timestamp.rb +109 -0
  38. data/lib/google/cloud/talent/v4beta1/doc/google/protobuf/wrappers.rb +34 -0
  39. data/lib/google/cloud/talent/v4beta1/doc/google/type/date.rb +39 -0
  40. data/lib/google/cloud/talent/v4beta1/doc/google/type/latlng.rb +65 -0
  41. data/lib/google/cloud/talent/v4beta1/doc/google/type/money.rb +36 -0
  42. data/lib/google/cloud/talent/v4beta1/doc/google/type/postal_address.rb +126 -0
  43. data/lib/google/cloud/talent/v4beta1/doc/google/type/timeofday.rb +38 -0
  44. data/lib/google/cloud/talent/v4beta1/event_pb.rb +75 -0
  45. data/lib/google/cloud/talent/v4beta1/event_service_client.rb +239 -0
  46. data/lib/google/cloud/talent/v4beta1/event_service_client_config.json +31 -0
  47. data/lib/google/cloud/talent/v4beta1/event_service_pb.rb +24 -0
  48. data/lib/google/cloud/talent/v4beta1/event_service_services_pb.rb +53 -0
  49. data/lib/google/cloud/talent/v4beta1/filters_pb.rb +182 -0
  50. data/lib/google/cloud/talent/v4beta1/helpers.rb +90 -0
  51. data/lib/google/cloud/talent/v4beta1/histogram_pb.rb +28 -0
  52. data/lib/google/cloud/talent/v4beta1/job_pb.rb +69 -0
  53. data/lib/google/cloud/talent/v4beta1/job_service_client.rb +1295 -0
  54. data/lib/google/cloud/talent/v4beta1/job_service_client_config.json +66 -0
  55. data/lib/google/cloud/talent/v4beta1/job_service_pb.rb +142 -0
  56. data/lib/google/cloud/talent/v4beta1/job_service_services_pb.rb +88 -0
  57. data/lib/google/cloud/talent/v4beta1/profile_pb.rb +249 -0
  58. data/lib/google/cloud/talent/v4beta1/profile_service_client.rb +757 -0
  59. data/lib/google/cloud/talent/v4beta1/profile_service_client_config.json +56 -0
  60. data/lib/google/cloud/talent/v4beta1/profile_service_pb.rb +81 -0
  61. data/lib/google/cloud/talent/v4beta1/profile_service_services_pb.rb +65 -0
  62. data/lib/google/cloud/talent/v4beta1/resume_service_client.rb +296 -0
  63. data/lib/google/cloud/talent/v4beta1/resume_service_client_config.json +31 -0
  64. data/lib/google/cloud/talent/v4beta1/resume_service_pb.rb +37 -0
  65. data/lib/google/cloud/talent/v4beta1/resume_service_services_pb.rb +75 -0
  66. data/lib/google/cloud/talent/v4beta1/tenant_pb.rb +31 -0
  67. data/lib/google/cloud/talent/v4beta1/tenant_service_client.rb +466 -0
  68. data/lib/google/cloud/talent/v4beta1/tenant_service_client_config.json +51 -0
  69. data/lib/google/cloud/talent/v4beta1/tenant_service_pb.rb +52 -0
  70. data/lib/google/cloud/talent/v4beta1/tenant_service_services_pb.rb +55 -0
  71. metadata +197 -0
@@ -0,0 +1,90 @@
1
+ # Copyright 2018 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # # limitations under the License.
14
+ module Google
15
+ module Cloud
16
+ module Talent
17
+ module V4beta1
18
+ class CompanyServiceClient
19
+ # Alias for Google::Cloud::Talent::V4beta1::CompanyServiceClient.company_path.
20
+ # @param project [String]
21
+ # @param company [String]
22
+ # @return [String]
23
+ def company_path project, company
24
+ self.class.company_path project, company
25
+ end
26
+
27
+ # Alias for Google::Cloud::Talent::V4beta1::CompanyServiceClient.project_path.
28
+ # @param project [String]
29
+ # @return [String]
30
+ def project_path project
31
+ self.class.project_path project
32
+ end
33
+ end
34
+
35
+ class JobServiceClient
36
+ # Alias for Google::Cloud::Talent::V4beta1::JobServiceClient.job_path.
37
+ # @param project [String]
38
+ # @param jobs [String]
39
+ # @return [String]
40
+ def job_path project, jobs
41
+ self.class.job_path project, jobs
42
+ end
43
+
44
+ # Alias for Google::Cloud::Talent::V4beta1::JobServiceClient.project_path.
45
+ # @param project [String]
46
+ # @return [String]
47
+ def project_path project
48
+ self.class.project_path project
49
+ end
50
+ end
51
+
52
+ class ProfileServiceClient
53
+ # Alias for Google::Cloud::Talent::V4beta1::ProfileServiceClient.profile_path.
54
+ # @param project [String]
55
+ # @param tenant [String]
56
+ # @param profile [String]
57
+ # @return [String]
58
+ def profile_path project, tenant, profile
59
+ self.class.profile_path project, tenant, profile
60
+ end
61
+
62
+ # Alias for Google::Cloud::Talent::V4beta1::ProfileServiceClient.tenant_path.
63
+ # @param project [String]
64
+ # @param tenant [String]
65
+ # @return [String]
66
+ def tenant_path project, tenant
67
+ self.class.tenant_path project, tenant
68
+ end
69
+ end
70
+
71
+ class TenantServiceClient
72
+ # Alias for Google::Cloud::Talent::V4beta1::TenantServiceClient.project_path.
73
+ # @param project [String]
74
+ # @return [String]
75
+ def project_path project
76
+ self.class.project_path project
77
+ end
78
+
79
+ # Alias for Google::Cloud::Talent::V4beta1::TenantServiceClient.tenant_path.
80
+ # @param project [String]
81
+ # @param tenant [String]
82
+ # @return [String]
83
+ def tenant_path project, tenant
84
+ self.class.tenant_path project, tenant
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,28 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: google/cloud/talent/v4beta1/histogram.proto
3
+
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/api/annotations_pb'
8
+ require 'google/protobuf/wrappers_pb'
9
+ Google::Protobuf::DescriptorPool.generated_pool.build do
10
+ add_message "google.cloud.talent.v4beta1.HistogramQuery" do
11
+ optional :histogram_query, :string, 1
12
+ end
13
+ add_message "google.cloud.talent.v4beta1.HistogramQueryResult" do
14
+ optional :histogram_query, :string, 1
15
+ map :histogram, :string, :int64, 2
16
+ end
17
+ end
18
+
19
+ module Google
20
+ module Cloud
21
+ module Talent
22
+ module V4beta1
23
+ HistogramQuery = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.talent.v4beta1.HistogramQuery").msgclass
24
+ HistogramQueryResult = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.talent.v4beta1.HistogramQueryResult").msgclass
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,69 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: google/cloud/talent/v4beta1/job.proto
3
+
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/api/annotations_pb'
8
+ require 'google/cloud/talent/v4beta1/common_pb'
9
+ require 'google/protobuf/timestamp_pb'
10
+ Google::Protobuf::DescriptorPool.generated_pool.build do
11
+ add_message "google.cloud.talent.v4beta1.Job" do
12
+ optional :name, :string, 1
13
+ optional :company_name, :string, 2
14
+ optional :requisition_id, :string, 3
15
+ optional :title, :string, 4
16
+ optional :description, :string, 5
17
+ repeated :addresses, :string, 6
18
+ optional :application_info, :message, 7, "google.cloud.talent.v4beta1.Job.ApplicationInfo"
19
+ repeated :job_benefits, :enum, 8, "google.cloud.talent.v4beta1.JobBenefit"
20
+ optional :compensation_info, :message, 9, "google.cloud.talent.v4beta1.CompensationInfo"
21
+ map :custom_attributes, :string, :message, 10, "google.cloud.talent.v4beta1.CustomAttribute"
22
+ repeated :degree_types, :enum, 11, "google.cloud.talent.v4beta1.DegreeType"
23
+ optional :department, :string, 12
24
+ repeated :employment_types, :enum, 13, "google.cloud.talent.v4beta1.EmploymentType"
25
+ optional :incentives, :string, 14
26
+ optional :language_code, :string, 15
27
+ optional :job_level, :enum, 16, "google.cloud.talent.v4beta1.JobLevel"
28
+ optional :promotion_value, :int32, 17
29
+ optional :qualifications, :string, 18
30
+ optional :responsibilities, :string, 19
31
+ optional :posting_region, :enum, 20, "google.cloud.talent.v4beta1.PostingRegion"
32
+ optional :visibility, :enum, 21, "google.cloud.talent.v4beta1.Visibility"
33
+ optional :job_start_time, :message, 22, "google.protobuf.Timestamp"
34
+ optional :job_end_time, :message, 23, "google.protobuf.Timestamp"
35
+ optional :posting_publish_time, :message, 24, "google.protobuf.Timestamp"
36
+ optional :posting_expire_time, :message, 25, "google.protobuf.Timestamp"
37
+ optional :posting_create_time, :message, 26, "google.protobuf.Timestamp"
38
+ optional :posting_update_time, :message, 27, "google.protobuf.Timestamp"
39
+ optional :company_display_name, :string, 28
40
+ optional :derived_info, :message, 29, "google.cloud.talent.v4beta1.Job.DerivedInfo"
41
+ optional :processing_options, :message, 30, "google.cloud.talent.v4beta1.Job.ProcessingOptions"
42
+ end
43
+ add_message "google.cloud.talent.v4beta1.Job.ApplicationInfo" do
44
+ repeated :emails, :string, 1
45
+ optional :instruction, :string, 2
46
+ repeated :uris, :string, 3
47
+ end
48
+ add_message "google.cloud.talent.v4beta1.Job.DerivedInfo" do
49
+ repeated :locations, :message, 1, "google.cloud.talent.v4beta1.Location"
50
+ repeated :job_categories, :enum, 3, "google.cloud.talent.v4beta1.JobCategory"
51
+ end
52
+ add_message "google.cloud.talent.v4beta1.Job.ProcessingOptions" do
53
+ optional :disable_street_address_resolution, :bool, 1
54
+ optional :html_sanitization, :enum, 2, "google.cloud.talent.v4beta1.HtmlSanitization"
55
+ end
56
+ end
57
+
58
+ module Google
59
+ module Cloud
60
+ module Talent
61
+ module V4beta1
62
+ Job = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.talent.v4beta1.Job").msgclass
63
+ Job::ApplicationInfo = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.talent.v4beta1.Job.ApplicationInfo").msgclass
64
+ Job::DerivedInfo = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.talent.v4beta1.Job.DerivedInfo").msgclass
65
+ Job::ProcessingOptions = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.talent.v4beta1.Job.ProcessingOptions").msgclass
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,1295 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # EDITING INSTRUCTIONS
16
+ # This file was generated from the file
17
+ # https://github.com/googleapis/googleapis/blob/master/google/cloud/talent/v4beta1/job_service.proto,
18
+ # and updates to that file get reflected here through a refresh process.
19
+ # For the short term, the refresh process will only be runnable by Google
20
+ # engineers.
21
+
22
+
23
+ require "json"
24
+ require "pathname"
25
+
26
+ require "google/gax"
27
+
28
+ require "google/cloud/talent/v4beta1/job_service_pb"
29
+ require "google/cloud/talent/v4beta1/credentials"
30
+
31
+ module Google
32
+ module Cloud
33
+ module Talent
34
+ module V4beta1
35
+ # A service handles job management, including job CRUD, enumeration and search.
36
+ #
37
+ # @!attribute [r] job_service_stub
38
+ # @return [Google::Cloud::Talent::V4beta1::JobService::Stub]
39
+ class JobServiceClient
40
+ # @private
41
+ attr_reader :job_service_stub
42
+
43
+ # The default address of the service.
44
+ SERVICE_ADDRESS = "jobs.googleapis.com".freeze
45
+
46
+ # The default port of the service.
47
+ DEFAULT_SERVICE_PORT = 443
48
+
49
+ # The default set of gRPC interceptors.
50
+ GRPC_INTERCEPTORS = []
51
+
52
+ DEFAULT_TIMEOUT = 30
53
+
54
+ PAGE_DESCRIPTORS = {
55
+ "list_jobs" => Google::Gax::PageDescriptor.new(
56
+ "page_token",
57
+ "next_page_token",
58
+ "jobs"),
59
+ "search_jobs" => Google::Gax::PageDescriptor.new(
60
+ "page_token",
61
+ "next_page_token",
62
+ "matching_jobs"),
63
+ "search_jobs_for_alert" => Google::Gax::PageDescriptor.new(
64
+ "page_token",
65
+ "next_page_token",
66
+ "matching_jobs")
67
+ }.freeze
68
+
69
+ private_constant :PAGE_DESCRIPTORS
70
+
71
+ # The scopes needed to make gRPC calls to all of the methods defined in
72
+ # this service.
73
+ ALL_SCOPES = [
74
+ "https://www.googleapis.com/auth/cloud-platform",
75
+ "https://www.googleapis.com/auth/jobs"
76
+ ].freeze
77
+
78
+
79
+ PROJECT_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
80
+ "projects/{project}"
81
+ )
82
+
83
+ private_constant :PROJECT_PATH_TEMPLATE
84
+
85
+ JOB_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
86
+ "projects/{project}/jobs/{jobs}"
87
+ )
88
+
89
+ private_constant :JOB_PATH_TEMPLATE
90
+
91
+ # Returns a fully-qualified project resource name string.
92
+ # @param project [String]
93
+ # @return [String]
94
+ def self.project_path project
95
+ PROJECT_PATH_TEMPLATE.render(
96
+ :"project" => project
97
+ )
98
+ end
99
+
100
+ # Returns a fully-qualified job resource name string.
101
+ # @param project [String]
102
+ # @param jobs [String]
103
+ # @return [String]
104
+ def self.job_path project, jobs
105
+ JOB_PATH_TEMPLATE.render(
106
+ :"project" => project,
107
+ :"jobs" => jobs
108
+ )
109
+ end
110
+
111
+ # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
112
+ # Provides the means for authenticating requests made by the client. This parameter can
113
+ # be many types.
114
+ # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
115
+ # authenticating requests made by this client.
116
+ # A `String` will be treated as the path to the keyfile to be used for the construction of
117
+ # credentials for this client.
118
+ # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
119
+ # credentials for this client.
120
+ # A `GRPC::Core::Channel` will be used to make calls through.
121
+ # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
122
+ # should already be composed with a `GRPC::Core::CallCredentials` object.
123
+ # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
124
+ # metadata for requests, generally, to give OAuth credentials.
125
+ # @param scopes [Array<String>]
126
+ # The OAuth scopes for this service. This parameter is ignored if
127
+ # an updater_proc is supplied.
128
+ # @param client_config [Hash]
129
+ # A Hash for call options for each method. See
130
+ # Google::Gax#construct_settings for the structure of
131
+ # this data. Falls back to the default config if not specified
132
+ # or the specified config is missing data points.
133
+ # @param timeout [Numeric]
134
+ # The default timeout, in seconds, for calls made through this client.
135
+ # @param metadata [Hash]
136
+ # Default metadata to be sent with each request. This can be overridden on a per call basis.
137
+ # @param exception_transformer [Proc]
138
+ # An optional proc that intercepts any exceptions raised during an API call to inject
139
+ # custom error handling.
140
+ def initialize \
141
+ credentials: nil,
142
+ scopes: ALL_SCOPES,
143
+ client_config: {},
144
+ timeout: DEFAULT_TIMEOUT,
145
+ metadata: nil,
146
+ exception_transformer: nil,
147
+ lib_name: nil,
148
+ lib_version: ""
149
+ # These require statements are intentionally placed here to initialize
150
+ # the gRPC module only when it's required.
151
+ # See https://github.com/googleapis/toolkit/issues/446
152
+ require "google/gax/grpc"
153
+ require "google/cloud/talent/v4beta1/job_service_services_pb"
154
+
155
+ credentials ||= Google::Cloud::Talent::V4beta1::Credentials.default
156
+
157
+ if credentials.is_a?(String) || credentials.is_a?(Hash)
158
+ updater_proc = Google::Cloud::Talent::V4beta1::Credentials.new(credentials).updater_proc
159
+ end
160
+ if credentials.is_a?(GRPC::Core::Channel)
161
+ channel = credentials
162
+ end
163
+ if credentials.is_a?(GRPC::Core::ChannelCredentials)
164
+ chan_creds = credentials
165
+ end
166
+ if credentials.is_a?(Proc)
167
+ updater_proc = credentials
168
+ end
169
+ if credentials.is_a?(Google::Auth::Credentials)
170
+ updater_proc = credentials.updater_proc
171
+ end
172
+
173
+ package_version = Gem.loaded_specs['google-cloud-talent'].version.version
174
+
175
+ google_api_client = "gl-ruby/#{RUBY_VERSION}"
176
+ google_api_client << " #{lib_name}/#{lib_version}" if lib_name
177
+ google_api_client << " gapic/#{package_version} gax/#{Google::Gax::VERSION}"
178
+ google_api_client << " grpc/#{GRPC::VERSION}"
179
+ google_api_client.freeze
180
+
181
+ headers = { :"x-goog-api-client" => google_api_client }
182
+ headers.merge!(metadata) unless metadata.nil?
183
+ client_config_file = Pathname.new(__dir__).join(
184
+ "job_service_client_config.json"
185
+ )
186
+ defaults = client_config_file.open do |f|
187
+ Google::Gax.construct_settings(
188
+ "google.cloud.talent.v4beta1.JobService",
189
+ JSON.parse(f.read),
190
+ client_config,
191
+ Google::Gax::Grpc::STATUS_CODE_NAMES,
192
+ timeout,
193
+ page_descriptors: PAGE_DESCRIPTORS,
194
+ errors: Google::Gax::Grpc::API_ERRORS,
195
+ metadata: headers
196
+ )
197
+ end
198
+
199
+ # Allow overriding the service path/port in subclasses.
200
+ service_path = self.class::SERVICE_ADDRESS
201
+ port = self.class::DEFAULT_SERVICE_PORT
202
+ interceptors = self.class::GRPC_INTERCEPTORS
203
+ @job_service_stub = Google::Gax::Grpc.create_stub(
204
+ service_path,
205
+ port,
206
+ chan_creds: chan_creds,
207
+ channel: channel,
208
+ updater_proc: updater_proc,
209
+ scopes: scopes,
210
+ interceptors: interceptors,
211
+ &Google::Cloud::Talent::V4beta1::JobService::Stub.method(:new)
212
+ )
213
+
214
+ @create_job = Google::Gax.create_api_call(
215
+ @job_service_stub.method(:create_job),
216
+ defaults["create_job"],
217
+ exception_transformer: exception_transformer
218
+ )
219
+ @get_job = Google::Gax.create_api_call(
220
+ @job_service_stub.method(:get_job),
221
+ defaults["get_job"],
222
+ exception_transformer: exception_transformer
223
+ )
224
+ @update_job = Google::Gax.create_api_call(
225
+ @job_service_stub.method(:update_job),
226
+ defaults["update_job"],
227
+ exception_transformer: exception_transformer
228
+ )
229
+ @delete_job = Google::Gax.create_api_call(
230
+ @job_service_stub.method(:delete_job),
231
+ defaults["delete_job"],
232
+ exception_transformer: exception_transformer
233
+ )
234
+ @list_jobs = Google::Gax.create_api_call(
235
+ @job_service_stub.method(:list_jobs),
236
+ defaults["list_jobs"],
237
+ exception_transformer: exception_transformer
238
+ )
239
+ @batch_delete_jobs = Google::Gax.create_api_call(
240
+ @job_service_stub.method(:batch_delete_jobs),
241
+ defaults["batch_delete_jobs"],
242
+ exception_transformer: exception_transformer
243
+ )
244
+ @search_jobs = Google::Gax.create_api_call(
245
+ @job_service_stub.method(:search_jobs),
246
+ defaults["search_jobs"],
247
+ exception_transformer: exception_transformer
248
+ )
249
+ @search_jobs_for_alert = Google::Gax.create_api_call(
250
+ @job_service_stub.method(:search_jobs_for_alert),
251
+ defaults["search_jobs_for_alert"],
252
+ exception_transformer: exception_transformer
253
+ )
254
+ end
255
+
256
+ # Service calls
257
+
258
+ # Creates a new job.
259
+ #
260
+ # Typically, the job becomes searchable within 10 seconds, but it may take
261
+ # up to 5 minutes.
262
+ #
263
+ # @param parent [String]
264
+ # Required.
265
+ #
266
+ # The resource name of the project under which the job is created.
267
+ #
268
+ # The format is "projects/{project_id}", for example,
269
+ # "projects/api-test-project".
270
+ # @param job [Google::Cloud::Talent::V4beta1::Job | Hash]
271
+ # Required.
272
+ #
273
+ # The Job to be created.
274
+ # A hash of the same form as `Google::Cloud::Talent::V4beta1::Job`
275
+ # can also be provided.
276
+ # @param options [Google::Gax::CallOptions]
277
+ # Overrides the default settings for this call, e.g, timeout,
278
+ # retries, etc.
279
+ # @yield [result, operation] Access the result along with the RPC operation
280
+ # @yieldparam result [Google::Cloud::Talent::V4beta1::Job]
281
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
282
+ # @return [Google::Cloud::Talent::V4beta1::Job]
283
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
284
+ # @example
285
+ # require "google/cloud/talent"
286
+ #
287
+ # job_service_client = Google::Cloud::Talent::JobService.new(version: :v4beta1)
288
+ # formatted_parent = Google::Cloud::Talent::V4beta1::JobServiceClient.project_path("[PROJECT]")
289
+ #
290
+ # # TODO: Initialize `job`:
291
+ # job = {}
292
+ # response = job_service_client.create_job(formatted_parent, job)
293
+
294
+ def create_job \
295
+ parent,
296
+ job,
297
+ options: nil,
298
+ &block
299
+ req = {
300
+ parent: parent,
301
+ job: job
302
+ }.delete_if { |_, v| v.nil? }
303
+ req = Google::Gax::to_proto(req, Google::Cloud::Talent::V4beta1::CreateJobRequest)
304
+ @create_job.call(req, options, &block)
305
+ end
306
+
307
+ # Retrieves the specified job, whose status is OPEN or recently EXPIRED
308
+ # within the last 90 days.
309
+ #
310
+ # @param name [String]
311
+ # Required.
312
+ #
313
+ # The resource name of the job to retrieve.
314
+ #
315
+ # The format is "projects/{project_id}/jobs/{job_id}",
316
+ # for example, "projects/api-test-project/jobs/1234".
317
+ # @param options [Google::Gax::CallOptions]
318
+ # Overrides the default settings for this call, e.g, timeout,
319
+ # retries, etc.
320
+ # @yield [result, operation] Access the result along with the RPC operation
321
+ # @yieldparam result [Google::Cloud::Talent::V4beta1::Job]
322
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
323
+ # @return [Google::Cloud::Talent::V4beta1::Job]
324
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
325
+ # @example
326
+ # require "google/cloud/talent"
327
+ #
328
+ # job_service_client = Google::Cloud::Talent::JobService.new(version: :v4beta1)
329
+ # formatted_name = Google::Cloud::Talent::V4beta1::JobServiceClient.job_path("[PROJECT]", "[JOBS]")
330
+ # response = job_service_client.get_job(formatted_name)
331
+
332
+ def get_job \
333
+ name,
334
+ options: nil,
335
+ &block
336
+ req = {
337
+ name: name
338
+ }.delete_if { |_, v| v.nil? }
339
+ req = Google::Gax::to_proto(req, Google::Cloud::Talent::V4beta1::GetJobRequest)
340
+ @get_job.call(req, options, &block)
341
+ end
342
+
343
+ # Updates specified job.
344
+ #
345
+ # Typically, updated contents become visible in search results within 10
346
+ # seconds, but it may take up to 5 minutes.
347
+ #
348
+ # @param job [Google::Cloud::Talent::V4beta1::Job | Hash]
349
+ # Required.
350
+ #
351
+ # The Job to be updated.
352
+ # A hash of the same form as `Google::Cloud::Talent::V4beta1::Job`
353
+ # can also be provided.
354
+ # @param update_mask [Google::Protobuf::FieldMask | Hash]
355
+ # Optional but strongly recommended to be provided for the best service
356
+ # experience.
357
+ #
358
+ # If {Google::Cloud::Talent::V4beta1::UpdateJobRequest#update_mask update_mask}
359
+ # is provided, only the specified fields in
360
+ # {Google::Cloud::Talent::V4beta1::UpdateJobRequest#job job} are updated.
361
+ # Otherwise all the fields are updated.
362
+ #
363
+ # A field mask to restrict the fields that are updated. Only
364
+ # top level fields of {Google::Cloud::Talent::V4beta1::Job Job} are supported.
365
+ # A hash of the same form as `Google::Protobuf::FieldMask`
366
+ # can also be provided.
367
+ # @param options [Google::Gax::CallOptions]
368
+ # Overrides the default settings for this call, e.g, timeout,
369
+ # retries, etc.
370
+ # @yield [result, operation] Access the result along with the RPC operation
371
+ # @yieldparam result [Google::Cloud::Talent::V4beta1::Job]
372
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
373
+ # @return [Google::Cloud::Talent::V4beta1::Job]
374
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
375
+ # @example
376
+ # require "google/cloud/talent"
377
+ #
378
+ # job_service_client = Google::Cloud::Talent::JobService.new(version: :v4beta1)
379
+ #
380
+ # # TODO: Initialize `job`:
381
+ # job = {}
382
+ # response = job_service_client.update_job(job)
383
+
384
+ def update_job \
385
+ job,
386
+ update_mask: nil,
387
+ options: nil,
388
+ &block
389
+ req = {
390
+ job: job,
391
+ update_mask: update_mask
392
+ }.delete_if { |_, v| v.nil? }
393
+ req = Google::Gax::to_proto(req, Google::Cloud::Talent::V4beta1::UpdateJobRequest)
394
+ @update_job.call(req, options, &block)
395
+ end
396
+
397
+ # Deletes the specified job.
398
+ #
399
+ # Typically, the job becomes unsearchable within 10 seconds, but it may take
400
+ # up to 5 minutes.
401
+ #
402
+ # @param name [String]
403
+ # Required.
404
+ #
405
+ # The resource name of the job to be deleted.
406
+ #
407
+ # The format is "projects/{project_id}/jobs/{job_id}",
408
+ # for example, "projects/api-test-project/jobs/1234".
409
+ # @param options [Google::Gax::CallOptions]
410
+ # Overrides the default settings for this call, e.g, timeout,
411
+ # retries, etc.
412
+ # @yield [result, operation] Access the result along with the RPC operation
413
+ # @yieldparam result []
414
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
415
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
416
+ # @example
417
+ # require "google/cloud/talent"
418
+ #
419
+ # job_service_client = Google::Cloud::Talent::JobService.new(version: :v4beta1)
420
+ # formatted_name = Google::Cloud::Talent::V4beta1::JobServiceClient.job_path("[PROJECT]", "[JOBS]")
421
+ # job_service_client.delete_job(formatted_name)
422
+
423
+ def delete_job \
424
+ name,
425
+ options: nil,
426
+ &block
427
+ req = {
428
+ name: name
429
+ }.delete_if { |_, v| v.nil? }
430
+ req = Google::Gax::to_proto(req, Google::Cloud::Talent::V4beta1::DeleteJobRequest)
431
+ @delete_job.call(req, options, &block)
432
+ nil
433
+ end
434
+
435
+ # Lists jobs by filter.
436
+ #
437
+ # @param parent [String]
438
+ # Required.
439
+ #
440
+ # The resource name of the project under which the job is created.
441
+ #
442
+ # The format is "projects/{project_id}", for example,
443
+ # "projects/api-test-project".
444
+ # @param filter [String]
445
+ # Required.
446
+ #
447
+ # The filter string specifies the jobs to be enumerated.
448
+ #
449
+ # Supported operator: =, AND
450
+ #
451
+ # The fields eligible for filtering are:
452
+ #
453
+ # * `companyName` (Required)
454
+ # * `requisitionId` (Optional)
455
+ # * `status` (Optional) Available values: OPEN, EXPIRED, ALL. Defaults to
456
+ # OPEN if no value is specified.
457
+ #
458
+ # Sample Query:
459
+ #
460
+ # * companyName = "projects/api-test-project/companies/123"
461
+ # * companyName = "projects/api-test-project/companies/123" AND requisitionId
462
+ # = "req-1"
463
+ # * companyName = "projects/api-test-project/companies/123" AND status =
464
+ # "EXPIRED"
465
+ # @param page_size [Integer]
466
+ # The maximum number of resources contained in the underlying API
467
+ # response. If page streaming is performed per-resource, this
468
+ # parameter does not affect the return value. If page streaming is
469
+ # performed per-page, this determines the maximum number of
470
+ # resources in a page.
471
+ # @param job_view [Google::Cloud::Talent::V4beta1::JobView]
472
+ # Optional.
473
+ #
474
+ # The desired job attributes returned for jobs in the
475
+ # search response. Defaults to
476
+ # {Google::Cloud::Talent::V4beta1::JobView::JOB_VIEW_FULL JobView::JOB_VIEW_FULL}
477
+ # if no value is specified.
478
+ # @param options [Google::Gax::CallOptions]
479
+ # Overrides the default settings for this call, e.g, timeout,
480
+ # retries, etc.
481
+ # @yield [result, operation] Access the result along with the RPC operation
482
+ # @yieldparam result [Google::Gax::PagedEnumerable<Google::Cloud::Talent::V4beta1::Job>]
483
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
484
+ # @return [Google::Gax::PagedEnumerable<Google::Cloud::Talent::V4beta1::Job>]
485
+ # An enumerable of Google::Cloud::Talent::V4beta1::Job instances.
486
+ # See Google::Gax::PagedEnumerable documentation for other
487
+ # operations such as per-page iteration or access to the response
488
+ # object.
489
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
490
+ # @example
491
+ # require "google/cloud/talent"
492
+ #
493
+ # job_service_client = Google::Cloud::Talent::JobService.new(version: :v4beta1)
494
+ # formatted_parent = Google::Cloud::Talent::V4beta1::JobServiceClient.project_path("[PROJECT]")
495
+ #
496
+ # # TODO: Initialize `filter`:
497
+ # filter = ''
498
+ #
499
+ # # Iterate over all results.
500
+ # job_service_client.list_jobs(formatted_parent, filter).each do |element|
501
+ # # Process element.
502
+ # end
503
+ #
504
+ # # Or iterate over results one page at a time.
505
+ # job_service_client.list_jobs(formatted_parent, filter).each_page do |page|
506
+ # # Process each page at a time.
507
+ # page.each do |element|
508
+ # # Process element.
509
+ # end
510
+ # end
511
+
512
+ def list_jobs \
513
+ parent,
514
+ filter,
515
+ page_size: nil,
516
+ job_view: nil,
517
+ options: nil,
518
+ &block
519
+ req = {
520
+ parent: parent,
521
+ filter: filter,
522
+ page_size: page_size,
523
+ job_view: job_view
524
+ }.delete_if { |_, v| v.nil? }
525
+ req = Google::Gax::to_proto(req, Google::Cloud::Talent::V4beta1::ListJobsRequest)
526
+ @list_jobs.call(req, options, &block)
527
+ end
528
+
529
+ # Deletes a list of {Google::Cloud::Talent::V4beta1::Job Job}s by filter.
530
+ #
531
+ # @param parent [String]
532
+ # Required.
533
+ #
534
+ # The resource name of the project under which the job is created.
535
+ #
536
+ # The format is "projects/{project_id}", for example,
537
+ # "projects/api-test-project".
538
+ # @param filter [String]
539
+ # Required.
540
+ #
541
+ # The filter string specifies the jobs to be deleted.
542
+ #
543
+ # Supported operator: =, AND
544
+ #
545
+ # The fields eligible for filtering are:
546
+ #
547
+ # * `companyName` (Required)
548
+ # * `requisitionId` (Required)
549
+ #
550
+ # Sample Query: companyName = "projects/api-test-project/companies/123" AND
551
+ # requisitionId = "req-1"
552
+ # @param options [Google::Gax::CallOptions]
553
+ # Overrides the default settings for this call, e.g, timeout,
554
+ # retries, etc.
555
+ # @yield [result, operation] Access the result along with the RPC operation
556
+ # @yieldparam result []
557
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
558
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
559
+ # @example
560
+ # require "google/cloud/talent"
561
+ #
562
+ # job_service_client = Google::Cloud::Talent::JobService.new(version: :v4beta1)
563
+ # formatted_parent = Google::Cloud::Talent::V4beta1::JobServiceClient.project_path("[PROJECT]")
564
+ #
565
+ # # TODO: Initialize `filter`:
566
+ # filter = ''
567
+ # job_service_client.batch_delete_jobs(formatted_parent, filter)
568
+
569
+ def batch_delete_jobs \
570
+ parent,
571
+ filter,
572
+ options: nil,
573
+ &block
574
+ req = {
575
+ parent: parent,
576
+ filter: filter
577
+ }.delete_if { |_, v| v.nil? }
578
+ req = Google::Gax::to_proto(req, Google::Cloud::Talent::V4beta1::BatchDeleteJobsRequest)
579
+ @batch_delete_jobs.call(req, options, &block)
580
+ nil
581
+ end
582
+
583
+ # Searches for jobs using the provided
584
+ # {Google::Cloud::Talent::V4beta1::SearchJobsRequest SearchJobsRequest}.
585
+ #
586
+ # This call constrains the
587
+ # {Google::Cloud::Talent::V4beta1::Job#visibility visibility} of jobs present in
588
+ # the database, and only returns jobs that the caller has permission to
589
+ # search against.
590
+ #
591
+ # @param parent [String]
592
+ # Required.
593
+ #
594
+ # The resource name of the project to search within.
595
+ #
596
+ # The format is "projects/{project_id}", for example,
597
+ # "projects/api-test-project".
598
+ # @param request_metadata [Google::Cloud::Talent::V4beta1::RequestMetadata | Hash]
599
+ # Required.
600
+ #
601
+ # The meta information collected about the job searcher, used to improve the
602
+ # search quality of the service.. The identifiers, (such as `user_id`) are
603
+ # provided by users, and must be unique and consistent.
604
+ # A hash of the same form as `Google::Cloud::Talent::V4beta1::RequestMetadata`
605
+ # can also be provided.
606
+ # @param search_mode [Google::Cloud::Talent::V4beta1::SearchJobsRequest::SearchMode]
607
+ # Optional.
608
+ #
609
+ # Mode of a search.
610
+ #
611
+ # Defaults to
612
+ # {Google::Cloud::Talent::V4beta1::SearchJobsRequest::SearchMode::JOB_SEARCH SearchMode::JOB_SEARCH}.
613
+ # @param job_query [Google::Cloud::Talent::V4beta1::JobQuery | Hash]
614
+ # Optional.
615
+ #
616
+ # Query used to search against jobs, such as keyword, location filters, etc.
617
+ # A hash of the same form as `Google::Cloud::Talent::V4beta1::JobQuery`
618
+ # can also be provided.
619
+ # @param enable_broadening [true, false]
620
+ # Optional.
621
+ #
622
+ # Controls whether to broaden the search when it produces sparse results.
623
+ # Broadened queries append results to the end of the matching results
624
+ # list.
625
+ #
626
+ # Defaults to false.
627
+ # @param require_precise_result_size [true, false]
628
+ # Optional.
629
+ #
630
+ # Controls if the search job request requires the return of a precise
631
+ # count of the first 300 results. Setting this to `true` ensures
632
+ # consistency in the number of results per page. Best practice is to set this
633
+ # value to true if a client allows users to jump directly to a
634
+ # non-sequential search results page.
635
+ #
636
+ # Enabling this flag may adversely impact performance.
637
+ #
638
+ # Defaults to false.
639
+ # @param histogram_queries [Array<Google::Cloud::Talent::V4beta1::HistogramQuery | Hash>]
640
+ # Optional.
641
+ #
642
+ # An expression specifies a histogram request against matching jobs.
643
+ #
644
+ # Expression syntax is an aggregation function call with histogram facets and
645
+ # other options.
646
+ #
647
+ # Available aggregation function calls are:
648
+ # * `count(string_histogram_facet)`: Count the number of matching entities,
649
+ # for each distinct attribute value.
650
+ # * `count(numeric_histogram_facet, list of buckets)`: Count the number of
651
+ # matching entities within each bucket.
652
+ #
653
+ # Data types:
654
+ #
655
+ # * Histogram facet: facet names with format [a-zA-Z][a-zA-Z0-9_]+.
656
+ # * String: string like "any string with backslash escape for quote(\")."
657
+ # * Number: whole number and floating point number like 10, -1 and -0.01.
658
+ # * List: list of elements with comma(,) separator surrounded by square
659
+ # brackets, for example, [1, 2, 3] and ["one", "two", "three"].
660
+ #
661
+ # Built-in constants:
662
+ #
663
+ # * MIN (minimum number similar to java Double.MIN_VALUE)
664
+ # * MAX (maximum number similar to java Double.MAX_VALUE)
665
+ #
666
+ # Built-in functions:
667
+ #
668
+ # * bucket(start, end[, label]): bucket built-in function creates a bucket
669
+ # with range of [start, end). Note that the end is exclusive, for example,
670
+ # bucket(1, MAX, "positive number") or bucket(1, 10).
671
+ #
672
+ # Job histogram facets:
673
+ #
674
+ # * company_id: histogram by {Job#distributor_company_id}.
675
+ # * company_display_name: histogram by
676
+ # {Google::Cloud::Talent::V4beta1::Job#company_display_name Job#company_display_name}.
677
+ # * employment_type: histogram by
678
+ # {Google::Cloud::Talent::V4beta1::Job#employment_types Job#employment_types},
679
+ # for example, "FULL_TIME", "PART_TIME".
680
+ # * company_size: histogram by
681
+ # {Google::Cloud::Talent::V4beta1::CompanySize CompanySize}, for example,
682
+ # "SMALL", "MEDIUM", "BIG".
683
+ # * publish_time_in_month: histogram by the {Job#publish_time} in months.
684
+ # Must specify list of numeric buckets in spec.
685
+ # * publish_time_in_year: histogram by the {Job#publish_time} in years.
686
+ # Must specify list of numeric buckets in spec.
687
+ # * degree_type: histogram by the {Job#degree_type}, for example,
688
+ # "Bachelors", "Masters".
689
+ # * job_level: histogram by the
690
+ # {Google::Cloud::Talent::V4beta1::Job#job_level Job#job_level}, for example,
691
+ # "Entry Level".
692
+ # * country: histogram by the country code of jobs, for example, "US", "FR".
693
+ # * admin1: histogram by the admin1 code of jobs, which is a global
694
+ # placeholder referring to the state, province, or the particular term a
695
+ # country uses to define the geographic structure below the country level,
696
+ # for example, "CA", "IL".
697
+ # * city: histogram by a combination of the "city name, admin1 code". For
698
+ # example, "Mountain View, CA", "New York, NY".
699
+ # * admin1_country: histogram by a combination of the "admin1 code, country",
700
+ # for example, "CA, US", "IL, US".
701
+ # * city_coordinate: histogram by the city center's GPS coordinates (latitude
702
+ # and longitude), for example, 37.4038522,-122.0987765. Since the coordinates
703
+ # of a city center can change, customers may need to refresh them
704
+ # periodically.
705
+ # * locale: histogram by the
706
+ # {Google::Cloud::Talent::V4beta1::Job#language_code Job#language_code}, for
707
+ # example, "en-US", "fr-FR".
708
+ # * language: histogram by the language subtag of the
709
+ # {Google::Cloud::Talent::V4beta1::Job#language_code Job#language_code}, for
710
+ # example, "en", "fr".
711
+ # * category: histogram by the
712
+ # {Google::Cloud::Talent::V4beta1::JobCategory JobCategory}, for example,
713
+ # "COMPUTER_AND_IT", "HEALTHCARE".
714
+ # * base_compensation_unit: histogram by the {CompensationUnit} of base
715
+ # salary, for example, "WEEKLY", "MONTHLY".
716
+ # * base_compensation: histogram by the base salary. Must specify list of
717
+ # numeric buckets to group results by.
718
+ # * annualized_base_compensation: histogram by the base annualized salary.
719
+ # Must specify list of numeric buckets to group results by.
720
+ # * annualized_total_compensation: histogram by the total annualized salary.
721
+ # Must specify list of numeric buckets to group results by.
722
+ # * string_custom_attribute: histogram by string
723
+ # {Google::Cloud::Talent::V4beta1::Job#custom_attributes Job#custom_attributes}.
724
+ # Values can be accessed via square bracket notations like
725
+ # string_custom_attribute["key1"].
726
+ # * numeric_custom_attribute: histogram by numeric
727
+ # {Google::Cloud::Talent::V4beta1::Job#custom_attributes Job#custom_attributes}.
728
+ # Values can be accessed via square bracket notations like
729
+ # numeric_custom_attribute["key1"]. Must specify list of numeric buckets to
730
+ # group results by.
731
+ #
732
+ # Example expressions:
733
+ # * count(admin1)
734
+ # * count(base_compensation, [bucket(1000, 10000), bucket(10000, 100000),
735
+ # bucket(100000, MAX)])
736
+ # * count(string_custom_attribute["some-string-custom-attribute"])
737
+ # * count(numeric_custom_attribute["some-numeric-custom-attribute"],
738
+ # [bucket(MIN, 0, "negative"), bucket(0, MAX, "non-negative"])
739
+ # A hash of the same form as `Google::Cloud::Talent::V4beta1::HistogramQuery`
740
+ # can also be provided.
741
+ # @param job_view [Google::Cloud::Talent::V4beta1::JobView]
742
+ # Optional.
743
+ #
744
+ # The desired job attributes returned for jobs in the
745
+ # search response. Defaults to {JobView::SMALL} if no value is specified.
746
+ # @param offset [Integer]
747
+ # Optional.
748
+ #
749
+ # An integer that specifies the current offset (that is, starting result
750
+ # location, amongst the jobs deemed by the API as relevant) in search
751
+ # results. This field is only considered if
752
+ # {Google::Cloud::Talent::V4beta1::SearchJobsRequest#page_token page_token} is
753
+ # unset.
754
+ #
755
+ # For example, 0 means to return results starting from the first matching
756
+ # job, and 10 means to return from the 11th job. This can be used for
757
+ # pagination, (for example, pageSize = 10 and offset = 10 means to return
758
+ # from the second page).
759
+ # @param page_size [Integer]
760
+ # The maximum number of resources contained in the underlying API
761
+ # response. If page streaming is performed per-resource, this
762
+ # parameter does not affect the return value. If page streaming is
763
+ # performed per-page, this determines the maximum number of
764
+ # resources in a page.
765
+ # @param order_by [String]
766
+ # Optional.
767
+ #
768
+ # The criteria determining how search results are sorted. Default is
769
+ # "relevance desc".
770
+ #
771
+ # Supported options are:
772
+ #
773
+ # * "relevance desc": By relevance descending, as determined by the API
774
+ # algorithms. Relevance thresholding of query results is only available
775
+ # with this ordering.
776
+ # * "posting`_`publish`_`time desc": By
777
+ # {Google::Cloud::Talent::V4beta1::Job#posting_publish_time Job#posting_publish_time}
778
+ # descending.
779
+ # * "posting`_`update`_`time desc": By
780
+ # {Google::Cloud::Talent::V4beta1::Job#posting_update_time Job#posting_update_time}
781
+ # descending.
782
+ # * "title": By {Google::Cloud::Talent::V4beta1::Job#title Job#title} ascending.
783
+ # * "title desc": By {Google::Cloud::Talent::V4beta1::Job#title Job#title}
784
+ # descending.
785
+ # * "annualized`_`base`_`compensation": By job's
786
+ # {Google::Cloud::Talent::V4beta1::CompensationInfo#annualized_base_compensation_range CompensationInfo#annualized_base_compensation_range}
787
+ # ascending. Jobs whose annualized base compensation is unspecified are put
788
+ # at the end of search results.
789
+ # * "annualized`_`base`_`compensation desc": By job's
790
+ # {Google::Cloud::Talent::V4beta1::CompensationInfo#annualized_base_compensation_range CompensationInfo#annualized_base_compensation_range}
791
+ # descending. Jobs whose annualized base compensation is unspecified are put
792
+ # at the end of search results.
793
+ # * "annualized`_`total`_`compensation": By job's
794
+ # {Google::Cloud::Talent::V4beta1::CompensationInfo#annualized_total_compensation_range CompensationInfo#annualized_total_compensation_range}
795
+ # ascending. Jobs whose annualized base compensation is unspecified are put
796
+ # at the end of search results.
797
+ # * "annualized`_`total`_`compensation desc": By job's
798
+ # {Google::Cloud::Talent::V4beta1::CompensationInfo#annualized_total_compensation_range CompensationInfo#annualized_total_compensation_range}
799
+ # descending. Jobs whose annualized base compensation is unspecified are put
800
+ # at the end of search results.
801
+ # * "custom`_`ranking desc": By the relevance score adjusted to the
802
+ # {SearchJobsRequest#custom_ranking_info#ranking_expression} with weight
803
+ # factor assigned by
804
+ # {SearchJobsRequest#custom_ranking_info#importance_level} in descending
805
+ # order.
806
+ # * "location`_`distance": By the distance between the location on jobs and
807
+ # locations specified in the
808
+ # {SearchJobsRequest#job_query#location_filters}.
809
+ # When this order is selected, the
810
+ # {SearchJobsRequest#job_query#location_filters} must not be empty. When
811
+ # a job has multiple locations, the location closest to one of the locations
812
+ # specified in the location filter will be used to calculate location
813
+ # distance. Distance is calculated by the distance between two lat/long
814
+ # coordinates, with a precision of 10e-4 degrees (11.3 meters).
815
+ # Jobs that don't have locations specified will be ranked below jobs having
816
+ # locations.
817
+ # Diversification strategy is still applied unless explicitly disabled in
818
+ # {Google::Cloud::Talent::V4beta1::SearchJobsRequest#diversification_level SearchJobsRequest#diversification_level}.
819
+ # @param diversification_level [Google::Cloud::Talent::V4beta1::SearchJobsRequest::DiversificationLevel]
820
+ # Optional.
821
+ #
822
+ # Controls whether highly similar jobs are returned next to each other in
823
+ # the search results. Jobs are identified as highly similar based on
824
+ # their titles, job categories, and locations. Highly similar results are
825
+ # clustered so that only one representative job of the cluster is
826
+ # displayed to the job seeker higher up in the results, with the other jobs
827
+ # being displayed lower down in the results.
828
+ #
829
+ # Defaults to
830
+ # {Google::Cloud::Talent::V4beta1::SearchJobsRequest::DiversificationLevel::SIMPLE DiversificationLevel::SIMPLE}
831
+ # if no value is specified.
832
+ # @param custom_ranking_info [Google::Cloud::Talent::V4beta1::SearchJobsRequest::CustomRankingInfo | Hash]
833
+ # Optional.
834
+ #
835
+ # Controls over how job documents get ranked on top of existing relevance
836
+ # score (determined by API algorithm).
837
+ # A hash of the same form as `Google::Cloud::Talent::V4beta1::SearchJobsRequest::CustomRankingInfo`
838
+ # can also be provided.
839
+ # @param disable_keyword_match [true, false]
840
+ # Optional.
841
+ #
842
+ # Controls whether to disable exact keyword match on {Job#job_title},
843
+ # {Google::Cloud::Talent::V4beta1::Job#description Job#description},
844
+ # {Google::Cloud::Talent::V4beta1::Job#company_display_name Job#company_display_name},
845
+ # [Job.locations][0],
846
+ # {Google::Cloud::Talent::V4beta1::Job#qualifications Job#qualifications}. When
847
+ # disable keyword match is turned off, a keyword match returns jobs that do
848
+ # not match given category filters when there are matching keywords. For
849
+ # example, for the query "program manager," a result is returned even if the
850
+ # job posting has the title "software developer," which doesn't fall into
851
+ # "program manager" ontology, but does have "program manager" appearing in
852
+ # its description.
853
+ #
854
+ # For queries like "cloud" that don't contain title or
855
+ # location specific ontology, jobs with "cloud" keyword matches are returned
856
+ # regardless of this flag's value.
857
+ #
858
+ # Please use {Company#keyword_searchable_custom_fields} or
859
+ # {Company#keyword_searchable_custom_attributes} if company specific
860
+ # globally matched custom field/attribute string values is needed. Enabling
861
+ # keyword match improves recall of subsequent search requests.
862
+ #
863
+ # Defaults to false.
864
+ # @param options [Google::Gax::CallOptions]
865
+ # Overrides the default settings for this call, e.g, timeout,
866
+ # retries, etc.
867
+ # @yield [result, operation] Access the result along with the RPC operation
868
+ # @yieldparam result [Google::Gax::PagedEnumerable<Google::Cloud::Talent::V4beta1::SearchJobsResponse::MatchingJob>]
869
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
870
+ # @return [Google::Gax::PagedEnumerable<Google::Cloud::Talent::V4beta1::SearchJobsResponse::MatchingJob>]
871
+ # An enumerable of Google::Cloud::Talent::V4beta1::SearchJobsResponse::MatchingJob instances.
872
+ # See Google::Gax::PagedEnumerable documentation for other
873
+ # operations such as per-page iteration or access to the response
874
+ # object.
875
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
876
+ # @example
877
+ # require "google/cloud/talent"
878
+ #
879
+ # job_service_client = Google::Cloud::Talent::JobService.new(version: :v4beta1)
880
+ # formatted_parent = Google::Cloud::Talent::V4beta1::JobServiceClient.project_path("[PROJECT]")
881
+ #
882
+ # # TODO: Initialize `request_metadata`:
883
+ # request_metadata = {}
884
+ #
885
+ # # Iterate over all results.
886
+ # job_service_client.search_jobs(formatted_parent, request_metadata).each do |element|
887
+ # # Process element.
888
+ # end
889
+ #
890
+ # # Or iterate over results one page at a time.
891
+ # job_service_client.search_jobs(formatted_parent, request_metadata).each_page do |page|
892
+ # # Process each page at a time.
893
+ # page.each do |element|
894
+ # # Process element.
895
+ # end
896
+ # end
897
+
898
+ def search_jobs \
899
+ parent,
900
+ request_metadata,
901
+ search_mode: nil,
902
+ job_query: nil,
903
+ enable_broadening: nil,
904
+ require_precise_result_size: nil,
905
+ histogram_queries: nil,
906
+ job_view: nil,
907
+ offset: nil,
908
+ page_size: nil,
909
+ order_by: nil,
910
+ diversification_level: nil,
911
+ custom_ranking_info: nil,
912
+ disable_keyword_match: nil,
913
+ options: nil,
914
+ &block
915
+ req = {
916
+ parent: parent,
917
+ request_metadata: request_metadata,
918
+ search_mode: search_mode,
919
+ job_query: job_query,
920
+ enable_broadening: enable_broadening,
921
+ require_precise_result_size: require_precise_result_size,
922
+ histogram_queries: histogram_queries,
923
+ job_view: job_view,
924
+ offset: offset,
925
+ page_size: page_size,
926
+ order_by: order_by,
927
+ diversification_level: diversification_level,
928
+ custom_ranking_info: custom_ranking_info,
929
+ disable_keyword_match: disable_keyword_match
930
+ }.delete_if { |_, v| v.nil? }
931
+ req = Google::Gax::to_proto(req, Google::Cloud::Talent::V4beta1::SearchJobsRequest)
932
+ @search_jobs.call(req, options, &block)
933
+ end
934
+
935
+ # Searches for jobs using the provided
936
+ # {Google::Cloud::Talent::V4beta1::SearchJobsRequest SearchJobsRequest}.
937
+ #
938
+ # This API call is intended for the use case of targeting passive job
939
+ # seekers (for example, job seekers who have signed up to receive email
940
+ # alerts about potential job opportunities), and has different algorithmic
941
+ # adjustments that are targeted to passive job seekers.
942
+ #
943
+ # This call constrains the
944
+ # {Google::Cloud::Talent::V4beta1::Job#visibility visibility} of jobs present in
945
+ # the database, and only returns jobs the caller has permission to search
946
+ # against.
947
+ #
948
+ # @param parent [String]
949
+ # Required.
950
+ #
951
+ # The resource name of the project to search within.
952
+ #
953
+ # The format is "projects/{project_id}", for example,
954
+ # "projects/api-test-project".
955
+ # @param request_metadata [Google::Cloud::Talent::V4beta1::RequestMetadata | Hash]
956
+ # Required.
957
+ #
958
+ # The meta information collected about the job searcher, used to improve the
959
+ # search quality of the service.. The identifiers, (such as `user_id`) are
960
+ # provided by users, and must be unique and consistent.
961
+ # A hash of the same form as `Google::Cloud::Talent::V4beta1::RequestMetadata`
962
+ # can also be provided.
963
+ # @param search_mode [Google::Cloud::Talent::V4beta1::SearchJobsRequest::SearchMode]
964
+ # Optional.
965
+ #
966
+ # Mode of a search.
967
+ #
968
+ # Defaults to
969
+ # {Google::Cloud::Talent::V4beta1::SearchJobsRequest::SearchMode::JOB_SEARCH SearchMode::JOB_SEARCH}.
970
+ # @param job_query [Google::Cloud::Talent::V4beta1::JobQuery | Hash]
971
+ # Optional.
972
+ #
973
+ # Query used to search against jobs, such as keyword, location filters, etc.
974
+ # A hash of the same form as `Google::Cloud::Talent::V4beta1::JobQuery`
975
+ # can also be provided.
976
+ # @param enable_broadening [true, false]
977
+ # Optional.
978
+ #
979
+ # Controls whether to broaden the search when it produces sparse results.
980
+ # Broadened queries append results to the end of the matching results
981
+ # list.
982
+ #
983
+ # Defaults to false.
984
+ # @param require_precise_result_size [true, false]
985
+ # Optional.
986
+ #
987
+ # Controls if the search job request requires the return of a precise
988
+ # count of the first 300 results. Setting this to `true` ensures
989
+ # consistency in the number of results per page. Best practice is to set this
990
+ # value to true if a client allows users to jump directly to a
991
+ # non-sequential search results page.
992
+ #
993
+ # Enabling this flag may adversely impact performance.
994
+ #
995
+ # Defaults to false.
996
+ # @param histogram_queries [Array<Google::Cloud::Talent::V4beta1::HistogramQuery | Hash>]
997
+ # Optional.
998
+ #
999
+ # An expression specifies a histogram request against matching jobs.
1000
+ #
1001
+ # Expression syntax is an aggregation function call with histogram facets and
1002
+ # other options.
1003
+ #
1004
+ # Available aggregation function calls are:
1005
+ # * `count(string_histogram_facet)`: Count the number of matching entities,
1006
+ # for each distinct attribute value.
1007
+ # * `count(numeric_histogram_facet, list of buckets)`: Count the number of
1008
+ # matching entities within each bucket.
1009
+ #
1010
+ # Data types:
1011
+ #
1012
+ # * Histogram facet: facet names with format [a-zA-Z][a-zA-Z0-9_]+.
1013
+ # * String: string like "any string with backslash escape for quote(\")."
1014
+ # * Number: whole number and floating point number like 10, -1 and -0.01.
1015
+ # * List: list of elements with comma(,) separator surrounded by square
1016
+ # brackets, for example, [1, 2, 3] and ["one", "two", "three"].
1017
+ #
1018
+ # Built-in constants:
1019
+ #
1020
+ # * MIN (minimum number similar to java Double.MIN_VALUE)
1021
+ # * MAX (maximum number similar to java Double.MAX_VALUE)
1022
+ #
1023
+ # Built-in functions:
1024
+ #
1025
+ # * bucket(start, end[, label]): bucket built-in function creates a bucket
1026
+ # with range of [start, end). Note that the end is exclusive, for example,
1027
+ # bucket(1, MAX, "positive number") or bucket(1, 10).
1028
+ #
1029
+ # Job histogram facets:
1030
+ #
1031
+ # * company_id: histogram by {Job#distributor_company_id}.
1032
+ # * company_display_name: histogram by
1033
+ # {Google::Cloud::Talent::V4beta1::Job#company_display_name Job#company_display_name}.
1034
+ # * employment_type: histogram by
1035
+ # {Google::Cloud::Talent::V4beta1::Job#employment_types Job#employment_types},
1036
+ # for example, "FULL_TIME", "PART_TIME".
1037
+ # * company_size: histogram by
1038
+ # {Google::Cloud::Talent::V4beta1::CompanySize CompanySize}, for example,
1039
+ # "SMALL", "MEDIUM", "BIG".
1040
+ # * publish_time_in_month: histogram by the {Job#publish_time} in months.
1041
+ # Must specify list of numeric buckets in spec.
1042
+ # * publish_time_in_year: histogram by the {Job#publish_time} in years.
1043
+ # Must specify list of numeric buckets in spec.
1044
+ # * degree_type: histogram by the {Job#degree_type}, for example,
1045
+ # "Bachelors", "Masters".
1046
+ # * job_level: histogram by the
1047
+ # {Google::Cloud::Talent::V4beta1::Job#job_level Job#job_level}, for example,
1048
+ # "Entry Level".
1049
+ # * country: histogram by the country code of jobs, for example, "US", "FR".
1050
+ # * admin1: histogram by the admin1 code of jobs, which is a global
1051
+ # placeholder referring to the state, province, or the particular term a
1052
+ # country uses to define the geographic structure below the country level,
1053
+ # for example, "CA", "IL".
1054
+ # * city: histogram by a combination of the "city name, admin1 code". For
1055
+ # example, "Mountain View, CA", "New York, NY".
1056
+ # * admin1_country: histogram by a combination of the "admin1 code, country",
1057
+ # for example, "CA, US", "IL, US".
1058
+ # * city_coordinate: histogram by the city center's GPS coordinates (latitude
1059
+ # and longitude), for example, 37.4038522,-122.0987765. Since the coordinates
1060
+ # of a city center can change, customers may need to refresh them
1061
+ # periodically.
1062
+ # * locale: histogram by the
1063
+ # {Google::Cloud::Talent::V4beta1::Job#language_code Job#language_code}, for
1064
+ # example, "en-US", "fr-FR".
1065
+ # * language: histogram by the language subtag of the
1066
+ # {Google::Cloud::Talent::V4beta1::Job#language_code Job#language_code}, for
1067
+ # example, "en", "fr".
1068
+ # * category: histogram by the
1069
+ # {Google::Cloud::Talent::V4beta1::JobCategory JobCategory}, for example,
1070
+ # "COMPUTER_AND_IT", "HEALTHCARE".
1071
+ # * base_compensation_unit: histogram by the {CompensationUnit} of base
1072
+ # salary, for example, "WEEKLY", "MONTHLY".
1073
+ # * base_compensation: histogram by the base salary. Must specify list of
1074
+ # numeric buckets to group results by.
1075
+ # * annualized_base_compensation: histogram by the base annualized salary.
1076
+ # Must specify list of numeric buckets to group results by.
1077
+ # * annualized_total_compensation: histogram by the total annualized salary.
1078
+ # Must specify list of numeric buckets to group results by.
1079
+ # * string_custom_attribute: histogram by string
1080
+ # {Google::Cloud::Talent::V4beta1::Job#custom_attributes Job#custom_attributes}.
1081
+ # Values can be accessed via square bracket notations like
1082
+ # string_custom_attribute["key1"].
1083
+ # * numeric_custom_attribute: histogram by numeric
1084
+ # {Google::Cloud::Talent::V4beta1::Job#custom_attributes Job#custom_attributes}.
1085
+ # Values can be accessed via square bracket notations like
1086
+ # numeric_custom_attribute["key1"]. Must specify list of numeric buckets to
1087
+ # group results by.
1088
+ #
1089
+ # Example expressions:
1090
+ # * count(admin1)
1091
+ # * count(base_compensation, [bucket(1000, 10000), bucket(10000, 100000),
1092
+ # bucket(100000, MAX)])
1093
+ # * count(string_custom_attribute["some-string-custom-attribute"])
1094
+ # * count(numeric_custom_attribute["some-numeric-custom-attribute"],
1095
+ # [bucket(MIN, 0, "negative"), bucket(0, MAX, "non-negative"])
1096
+ # A hash of the same form as `Google::Cloud::Talent::V4beta1::HistogramQuery`
1097
+ # can also be provided.
1098
+ # @param job_view [Google::Cloud::Talent::V4beta1::JobView]
1099
+ # Optional.
1100
+ #
1101
+ # The desired job attributes returned for jobs in the
1102
+ # search response. Defaults to {JobView::SMALL} if no value is specified.
1103
+ # @param offset [Integer]
1104
+ # Optional.
1105
+ #
1106
+ # An integer that specifies the current offset (that is, starting result
1107
+ # location, amongst the jobs deemed by the API as relevant) in search
1108
+ # results. This field is only considered if
1109
+ # {Google::Cloud::Talent::V4beta1::SearchJobsRequest#page_token page_token} is
1110
+ # unset.
1111
+ #
1112
+ # For example, 0 means to return results starting from the first matching
1113
+ # job, and 10 means to return from the 11th job. This can be used for
1114
+ # pagination, (for example, pageSize = 10 and offset = 10 means to return
1115
+ # from the second page).
1116
+ # @param page_size [Integer]
1117
+ # The maximum number of resources contained in the underlying API
1118
+ # response. If page streaming is performed per-resource, this
1119
+ # parameter does not affect the return value. If page streaming is
1120
+ # performed per-page, this determines the maximum number of
1121
+ # resources in a page.
1122
+ # @param order_by [String]
1123
+ # Optional.
1124
+ #
1125
+ # The criteria determining how search results are sorted. Default is
1126
+ # "relevance desc".
1127
+ #
1128
+ # Supported options are:
1129
+ #
1130
+ # * "relevance desc": By relevance descending, as determined by the API
1131
+ # algorithms. Relevance thresholding of query results is only available
1132
+ # with this ordering.
1133
+ # * "posting`_`publish`_`time desc": By
1134
+ # {Google::Cloud::Talent::V4beta1::Job#posting_publish_time Job#posting_publish_time}
1135
+ # descending.
1136
+ # * "posting`_`update`_`time desc": By
1137
+ # {Google::Cloud::Talent::V4beta1::Job#posting_update_time Job#posting_update_time}
1138
+ # descending.
1139
+ # * "title": By {Google::Cloud::Talent::V4beta1::Job#title Job#title} ascending.
1140
+ # * "title desc": By {Google::Cloud::Talent::V4beta1::Job#title Job#title}
1141
+ # descending.
1142
+ # * "annualized`_`base`_`compensation": By job's
1143
+ # {Google::Cloud::Talent::V4beta1::CompensationInfo#annualized_base_compensation_range CompensationInfo#annualized_base_compensation_range}
1144
+ # ascending. Jobs whose annualized base compensation is unspecified are put
1145
+ # at the end of search results.
1146
+ # * "annualized`_`base`_`compensation desc": By job's
1147
+ # {Google::Cloud::Talent::V4beta1::CompensationInfo#annualized_base_compensation_range CompensationInfo#annualized_base_compensation_range}
1148
+ # descending. Jobs whose annualized base compensation is unspecified are put
1149
+ # at the end of search results.
1150
+ # * "annualized`_`total`_`compensation": By job's
1151
+ # {Google::Cloud::Talent::V4beta1::CompensationInfo#annualized_total_compensation_range CompensationInfo#annualized_total_compensation_range}
1152
+ # ascending. Jobs whose annualized base compensation is unspecified are put
1153
+ # at the end of search results.
1154
+ # * "annualized`_`total`_`compensation desc": By job's
1155
+ # {Google::Cloud::Talent::V4beta1::CompensationInfo#annualized_total_compensation_range CompensationInfo#annualized_total_compensation_range}
1156
+ # descending. Jobs whose annualized base compensation is unspecified are put
1157
+ # at the end of search results.
1158
+ # * "custom`_`ranking desc": By the relevance score adjusted to the
1159
+ # {SearchJobsRequest#custom_ranking_info#ranking_expression} with weight
1160
+ # factor assigned by
1161
+ # {SearchJobsRequest#custom_ranking_info#importance_level} in descending
1162
+ # order.
1163
+ # * "location`_`distance": By the distance between the location on jobs and
1164
+ # locations specified in the
1165
+ # {SearchJobsRequest#job_query#location_filters}.
1166
+ # When this order is selected, the
1167
+ # {SearchJobsRequest#job_query#location_filters} must not be empty. When
1168
+ # a job has multiple locations, the location closest to one of the locations
1169
+ # specified in the location filter will be used to calculate location
1170
+ # distance. Distance is calculated by the distance between two lat/long
1171
+ # coordinates, with a precision of 10e-4 degrees (11.3 meters).
1172
+ # Jobs that don't have locations specified will be ranked below jobs having
1173
+ # locations.
1174
+ # Diversification strategy is still applied unless explicitly disabled in
1175
+ # {Google::Cloud::Talent::V4beta1::SearchJobsRequest#diversification_level SearchJobsRequest#diversification_level}.
1176
+ # @param diversification_level [Google::Cloud::Talent::V4beta1::SearchJobsRequest::DiversificationLevel]
1177
+ # Optional.
1178
+ #
1179
+ # Controls whether highly similar jobs are returned next to each other in
1180
+ # the search results. Jobs are identified as highly similar based on
1181
+ # their titles, job categories, and locations. Highly similar results are
1182
+ # clustered so that only one representative job of the cluster is
1183
+ # displayed to the job seeker higher up in the results, with the other jobs
1184
+ # being displayed lower down in the results.
1185
+ #
1186
+ # Defaults to
1187
+ # {Google::Cloud::Talent::V4beta1::SearchJobsRequest::DiversificationLevel::SIMPLE DiversificationLevel::SIMPLE}
1188
+ # if no value is specified.
1189
+ # @param custom_ranking_info [Google::Cloud::Talent::V4beta1::SearchJobsRequest::CustomRankingInfo | Hash]
1190
+ # Optional.
1191
+ #
1192
+ # Controls over how job documents get ranked on top of existing relevance
1193
+ # score (determined by API algorithm).
1194
+ # A hash of the same form as `Google::Cloud::Talent::V4beta1::SearchJobsRequest::CustomRankingInfo`
1195
+ # can also be provided.
1196
+ # @param disable_keyword_match [true, false]
1197
+ # Optional.
1198
+ #
1199
+ # Controls whether to disable exact keyword match on {Job#job_title},
1200
+ # {Google::Cloud::Talent::V4beta1::Job#description Job#description},
1201
+ # {Google::Cloud::Talent::V4beta1::Job#company_display_name Job#company_display_name},
1202
+ # [Job.locations][0],
1203
+ # {Google::Cloud::Talent::V4beta1::Job#qualifications Job#qualifications}. When
1204
+ # disable keyword match is turned off, a keyword match returns jobs that do
1205
+ # not match given category filters when there are matching keywords. For
1206
+ # example, for the query "program manager," a result is returned even if the
1207
+ # job posting has the title "software developer," which doesn't fall into
1208
+ # "program manager" ontology, but does have "program manager" appearing in
1209
+ # its description.
1210
+ #
1211
+ # For queries like "cloud" that don't contain title or
1212
+ # location specific ontology, jobs with "cloud" keyword matches are returned
1213
+ # regardless of this flag's value.
1214
+ #
1215
+ # Please use {Company#keyword_searchable_custom_fields} or
1216
+ # {Company#keyword_searchable_custom_attributes} if company specific
1217
+ # globally matched custom field/attribute string values is needed. Enabling
1218
+ # keyword match improves recall of subsequent search requests.
1219
+ #
1220
+ # Defaults to false.
1221
+ # @param options [Google::Gax::CallOptions]
1222
+ # Overrides the default settings for this call, e.g, timeout,
1223
+ # retries, etc.
1224
+ # @yield [result, operation] Access the result along with the RPC operation
1225
+ # @yieldparam result [Google::Gax::PagedEnumerable<Google::Cloud::Talent::V4beta1::SearchJobsResponse::MatchingJob>]
1226
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
1227
+ # @return [Google::Gax::PagedEnumerable<Google::Cloud::Talent::V4beta1::SearchJobsResponse::MatchingJob>]
1228
+ # An enumerable of Google::Cloud::Talent::V4beta1::SearchJobsResponse::MatchingJob instances.
1229
+ # See Google::Gax::PagedEnumerable documentation for other
1230
+ # operations such as per-page iteration or access to the response
1231
+ # object.
1232
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
1233
+ # @example
1234
+ # require "google/cloud/talent"
1235
+ #
1236
+ # job_service_client = Google::Cloud::Talent::JobService.new(version: :v4beta1)
1237
+ # formatted_parent = Google::Cloud::Talent::V4beta1::JobServiceClient.project_path("[PROJECT]")
1238
+ #
1239
+ # # TODO: Initialize `request_metadata`:
1240
+ # request_metadata = {}
1241
+ #
1242
+ # # Iterate over all results.
1243
+ # job_service_client.search_jobs_for_alert(formatted_parent, request_metadata).each do |element|
1244
+ # # Process element.
1245
+ # end
1246
+ #
1247
+ # # Or iterate over results one page at a time.
1248
+ # job_service_client.search_jobs_for_alert(formatted_parent, request_metadata).each_page do |page|
1249
+ # # Process each page at a time.
1250
+ # page.each do |element|
1251
+ # # Process element.
1252
+ # end
1253
+ # end
1254
+
1255
+ def search_jobs_for_alert \
1256
+ parent,
1257
+ request_metadata,
1258
+ search_mode: nil,
1259
+ job_query: nil,
1260
+ enable_broadening: nil,
1261
+ require_precise_result_size: nil,
1262
+ histogram_queries: nil,
1263
+ job_view: nil,
1264
+ offset: nil,
1265
+ page_size: nil,
1266
+ order_by: nil,
1267
+ diversification_level: nil,
1268
+ custom_ranking_info: nil,
1269
+ disable_keyword_match: nil,
1270
+ options: nil,
1271
+ &block
1272
+ req = {
1273
+ parent: parent,
1274
+ request_metadata: request_metadata,
1275
+ search_mode: search_mode,
1276
+ job_query: job_query,
1277
+ enable_broadening: enable_broadening,
1278
+ require_precise_result_size: require_precise_result_size,
1279
+ histogram_queries: histogram_queries,
1280
+ job_view: job_view,
1281
+ offset: offset,
1282
+ page_size: page_size,
1283
+ order_by: order_by,
1284
+ diversification_level: diversification_level,
1285
+ custom_ranking_info: custom_ranking_info,
1286
+ disable_keyword_match: disable_keyword_match
1287
+ }.delete_if { |_, v| v.nil? }
1288
+ req = Google::Gax::to_proto(req, Google::Cloud::Talent::V4beta1::SearchJobsRequest)
1289
+ @search_jobs_for_alert.call(req, options, &block)
1290
+ end
1291
+ end
1292
+ end
1293
+ end
1294
+ end
1295
+ end