google-cloud-talent 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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