google-api-client 0.23.5 → 0.23.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/generated/google/apis/adexperiencereport_v1.rb +1 -1
  4. data/generated/google/apis/cloudtrace_v1.rb +4 -2
  5. data/generated/google/apis/cloudtrace_v1/service.rb +3 -1
  6. data/generated/google/apis/cloudtrace_v2.rb +4 -2
  7. data/generated/google/apis/cloudtrace_v2/service.rb +3 -1
  8. data/generated/google/apis/container_v1.rb +1 -1
  9. data/generated/google/apis/container_v1/classes.rb +6 -3
  10. data/generated/google/apis/container_v1beta1.rb +1 -1
  11. data/generated/google/apis/container_v1beta1/classes.rb +51 -1
  12. data/generated/google/apis/container_v1beta1/representations.rb +18 -0
  13. data/generated/google/apis/content_v2.rb +1 -1
  14. data/generated/google/apis/content_v2/classes.rb +174 -0
  15. data/generated/google/apis/content_v2/representations.rb +73 -0
  16. data/generated/google/apis/content_v2/service.rb +100 -1
  17. data/generated/google/apis/content_v2sandbox.rb +1 -1
  18. data/generated/google/apis/content_v2sandbox/service.rb +2 -1
  19. data/generated/google/apis/dlp_v2.rb +1 -1
  20. data/generated/google/apis/dlp_v2/classes.rb +9 -7
  21. data/generated/google/apis/dlp_v2/service.rb +2 -0
  22. data/generated/google/apis/drive_v2.rb +1 -1
  23. data/generated/google/apis/drive_v2/classes.rb +72 -6
  24. data/generated/google/apis/drive_v2/representations.rb +8 -0
  25. data/generated/google/apis/drive_v3.rb +1 -1
  26. data/generated/google/apis/drive_v3/classes.rb +72 -6
  27. data/generated/google/apis/drive_v3/representations.rb +8 -0
  28. data/generated/google/apis/firestore_v1.rb +3 -2
  29. data/generated/google/apis/firestore_v1/service.rb +2 -1
  30. data/generated/google/apis/firestore_v1beta1.rb +3 -2
  31. data/generated/google/apis/firestore_v1beta1/service.rb +2 -1
  32. data/generated/google/apis/firestore_v1beta2.rb +3 -2
  33. data/generated/google/apis/firestore_v1beta2/service.rb +2 -1
  34. data/generated/google/apis/gmail_v1.rb +1 -1
  35. data/generated/google/apis/gmail_v1/classes.rb +47 -0
  36. data/generated/google/apis/gmail_v1/representations.rb +28 -0
  37. data/generated/google/apis/gmail_v1/service.rb +165 -0
  38. data/generated/google/apis/jobs_v2.rb +2 -2
  39. data/generated/google/apis/jobs_v2/classes.rb +4 -1
  40. data/generated/google/apis/jobs_v2/service.rb +1 -1
  41. data/generated/google/apis/jobs_v3.rb +38 -0
  42. data/generated/google/apis/jobs_v3/classes.rb +2587 -0
  43. data/generated/google/apis/jobs_v3/representations.rb +872 -0
  44. data/generated/google/apis/jobs_v3/service.rb +652 -0
  45. data/generated/google/apis/testing_v1.rb +1 -1
  46. data/generated/google/apis/testing_v1/classes.rb +7 -0
  47. data/generated/google/apis/testing_v1/representations.rb +1 -0
  48. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  49. data/lib/google/apis/version.rb +1 -1
  50. metadata +6 -2
@@ -1515,6 +1515,171 @@ module Google
1515
1515
  execute_or_queue_command(command, &block)
1516
1516
  end
1517
1517
 
1518
+ # Adds a delegate with its verification status set directly to accepted, without
1519
+ # sending any verification email. The delegate user must be a member of the same
1520
+ # G Suite organization as the delegator user.
1521
+ # Gmail imposes limtations on the number of delegates and delegators each user
1522
+ # in a G Suite organization can have. These limits depend on your organization,
1523
+ # but in general each user can have up to 25 delegates and up to 10 delegators.
1524
+ # Note that a delegate user must be referred to by their primary email address,
1525
+ # and not an email alias.
1526
+ # Also note that when a new delegate is created, there may be up to a one minute
1527
+ # delay before the new delegate is available for use.
1528
+ # This method is only available to service account clients that have been
1529
+ # delegated domain-wide authority.
1530
+ # @param [String] user_id
1531
+ # User's email address. The special value "me" can be used to indicate the
1532
+ # authenticated user.
1533
+ # @param [Google::Apis::GmailV1::Delegate] delegate_object
1534
+ # @param [String] fields
1535
+ # Selector specifying which fields to include in a partial response.
1536
+ # @param [String] quota_user
1537
+ # An opaque string that represents a user for quota purposes. Must not exceed 40
1538
+ # characters.
1539
+ # @param [String] user_ip
1540
+ # Deprecated. Please use quotaUser instead.
1541
+ # @param [Google::Apis::RequestOptions] options
1542
+ # Request-specific options
1543
+ #
1544
+ # @yield [result, err] Result & error if block supplied
1545
+ # @yieldparam result [Google::Apis::GmailV1::Delegate] parsed result object
1546
+ # @yieldparam err [StandardError] error object if request failed
1547
+ #
1548
+ # @return [Google::Apis::GmailV1::Delegate]
1549
+ #
1550
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
1551
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
1552
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
1553
+ def create_user_setting_delegate(user_id, delegate_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
1554
+ command = make_simple_command(:post, '{userId}/settings/delegates', options)
1555
+ command.request_representation = Google::Apis::GmailV1::Delegate::Representation
1556
+ command.request_object = delegate_object
1557
+ command.response_representation = Google::Apis::GmailV1::Delegate::Representation
1558
+ command.response_class = Google::Apis::GmailV1::Delegate
1559
+ command.params['userId'] = user_id unless user_id.nil?
1560
+ command.query['fields'] = fields unless fields.nil?
1561
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
1562
+ command.query['userIp'] = user_ip unless user_ip.nil?
1563
+ execute_or_queue_command(command, &block)
1564
+ end
1565
+
1566
+ # Removes the specified delegate (which can be of any verification status), and
1567
+ # revokes any verification that may have been required for using it.
1568
+ # Note that a delegate user must be referred to by their primary email address,
1569
+ # and not an email alias.
1570
+ # This method is only available to service account clients that have been
1571
+ # delegated domain-wide authority.
1572
+ # @param [String] user_id
1573
+ # User's email address. The special value "me" can be used to indicate the
1574
+ # authenticated user.
1575
+ # @param [String] delegate_email
1576
+ # The email address of the user to be removed as a delegate.
1577
+ # @param [String] fields
1578
+ # Selector specifying which fields to include in a partial response.
1579
+ # @param [String] quota_user
1580
+ # An opaque string that represents a user for quota purposes. Must not exceed 40
1581
+ # characters.
1582
+ # @param [String] user_ip
1583
+ # Deprecated. Please use quotaUser instead.
1584
+ # @param [Google::Apis::RequestOptions] options
1585
+ # Request-specific options
1586
+ #
1587
+ # @yield [result, err] Result & error if block supplied
1588
+ # @yieldparam result [NilClass] No result returned for this method
1589
+ # @yieldparam err [StandardError] error object if request failed
1590
+ #
1591
+ # @return [void]
1592
+ #
1593
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
1594
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
1595
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
1596
+ def delete_user_setting_delegate(user_id, delegate_email, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
1597
+ command = make_simple_command(:delete, '{userId}/settings/delegates/{delegateEmail}', options)
1598
+ command.params['userId'] = user_id unless user_id.nil?
1599
+ command.params['delegateEmail'] = delegate_email unless delegate_email.nil?
1600
+ command.query['fields'] = fields unless fields.nil?
1601
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
1602
+ command.query['userIp'] = user_ip unless user_ip.nil?
1603
+ execute_or_queue_command(command, &block)
1604
+ end
1605
+
1606
+ # Gets the specified delegate.
1607
+ # Note that a delegate user must be referred to by their primary email address,
1608
+ # and not an email alias.
1609
+ # This method is only available to service account clients that have been
1610
+ # delegated domain-wide authority.
1611
+ # @param [String] user_id
1612
+ # User's email address. The special value "me" can be used to indicate the
1613
+ # authenticated user.
1614
+ # @param [String] delegate_email
1615
+ # The email address of the user whose delegate relationship is to be retrieved.
1616
+ # @param [String] fields
1617
+ # Selector specifying which fields to include in a partial response.
1618
+ # @param [String] quota_user
1619
+ # An opaque string that represents a user for quota purposes. Must not exceed 40
1620
+ # characters.
1621
+ # @param [String] user_ip
1622
+ # Deprecated. Please use quotaUser instead.
1623
+ # @param [Google::Apis::RequestOptions] options
1624
+ # Request-specific options
1625
+ #
1626
+ # @yield [result, err] Result & error if block supplied
1627
+ # @yieldparam result [Google::Apis::GmailV1::Delegate] parsed result object
1628
+ # @yieldparam err [StandardError] error object if request failed
1629
+ #
1630
+ # @return [Google::Apis::GmailV1::Delegate]
1631
+ #
1632
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
1633
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
1634
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
1635
+ def get_user_setting_delegate(user_id, delegate_email, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
1636
+ command = make_simple_command(:get, '{userId}/settings/delegates/{delegateEmail}', options)
1637
+ command.response_representation = Google::Apis::GmailV1::Delegate::Representation
1638
+ command.response_class = Google::Apis::GmailV1::Delegate
1639
+ command.params['userId'] = user_id unless user_id.nil?
1640
+ command.params['delegateEmail'] = delegate_email unless delegate_email.nil?
1641
+ command.query['fields'] = fields unless fields.nil?
1642
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
1643
+ command.query['userIp'] = user_ip unless user_ip.nil?
1644
+ execute_or_queue_command(command, &block)
1645
+ end
1646
+
1647
+ # Lists the delegates for the specified account.
1648
+ # This method is only available to service account clients that have been
1649
+ # delegated domain-wide authority.
1650
+ # @param [String] user_id
1651
+ # User's email address. The special value "me" can be used to indicate the
1652
+ # authenticated user.
1653
+ # @param [String] fields
1654
+ # Selector specifying which fields to include in a partial response.
1655
+ # @param [String] quota_user
1656
+ # An opaque string that represents a user for quota purposes. Must not exceed 40
1657
+ # characters.
1658
+ # @param [String] user_ip
1659
+ # Deprecated. Please use quotaUser instead.
1660
+ # @param [Google::Apis::RequestOptions] options
1661
+ # Request-specific options
1662
+ #
1663
+ # @yield [result, err] Result & error if block supplied
1664
+ # @yieldparam result [Google::Apis::GmailV1::ListDelegatesResponse] parsed result object
1665
+ # @yieldparam err [StandardError] error object if request failed
1666
+ #
1667
+ # @return [Google::Apis::GmailV1::ListDelegatesResponse]
1668
+ #
1669
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
1670
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
1671
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
1672
+ def list_user_setting_delegates(user_id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
1673
+ command = make_simple_command(:get, '{userId}/settings/delegates', options)
1674
+ command.response_representation = Google::Apis::GmailV1::ListDelegatesResponse::Representation
1675
+ command.response_class = Google::Apis::GmailV1::ListDelegatesResponse
1676
+ command.params['userId'] = user_id unless user_id.nil?
1677
+ command.query['fields'] = fields unless fields.nil?
1678
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
1679
+ command.query['userIp'] = user_ip unless user_ip.nil?
1680
+ execute_or_queue_command(command, &block)
1681
+ end
1682
+
1518
1683
  # Creates a filter.
1519
1684
  # @param [String] user_id
1520
1685
  # User's email address. The special value "me" can be used to indicate the
@@ -23,10 +23,10 @@ module Google
23
23
  # Cloud Talent Solution provides the capability to create, read, update, and
24
24
  # delete job postings, as well as search jobs based on keywords and filters.
25
25
  #
26
- # @see https://cloud.google.com/job-discovery/docs
26
+ # @see https://cloud.google.com/talent-solution/job-search/docs/
27
27
  module JobsV2
28
28
  VERSION = 'V2'
29
- REVISION = '20180726'
29
+ REVISION = '20180821'
30
30
 
31
31
  # View and manage your data across Google Cloud Platform services
32
32
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -110,7 +110,10 @@ module Google
110
110
  # @return [Google::Apis::JobsV2::JobLocation]
111
111
  attr_accessor :job_location
112
112
 
113
- # Travel time to reach the job.
113
+ # The number of seconds required to travel to the job location from the query
114
+ # location. A duration of 0 seconds indicates that the job is not
115
+ # reachable within the requested duration, but was returned as part of an
116
+ # expanded query.
114
117
  # Corresponds to the JSON property `travelDuration`
115
118
  # @return [String]
116
119
  attr_accessor :travel_duration
@@ -31,7 +31,7 @@ module Google
31
31
  # Jobs = Google::Apis::JobsV2 # Alias the module
32
32
  # service = Jobs::JobServiceService.new
33
33
  #
34
- # @see https://cloud.google.com/job-discovery/docs
34
+ # @see https://cloud.google.com/talent-solution/job-search/docs/
35
35
  class JobServiceService < Google::Apis::Core::BaseService
36
36
  # @return [String]
37
37
  # API key. Your API key identifies your project and provides you with API access,
@@ -0,0 +1,38 @@
1
+ # Copyright 2015 Google Inc.
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
+ # http://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
+ require 'google/apis/jobs_v3/service.rb'
16
+ require 'google/apis/jobs_v3/classes.rb'
17
+ require 'google/apis/jobs_v3/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Cloud Talent Solution API
22
+ #
23
+ # Cloud Talent Solution provides the capability to create, read, update, and
24
+ # delete job postings, as well as search jobs based on keywords and filters.
25
+ #
26
+ # @see https://cloud.google.com/talent-solution/job-search/docs/
27
+ module JobsV3
28
+ VERSION = 'V3'
29
+ REVISION = '20180821'
30
+
31
+ # View and manage your data across Google Cloud Platform services
32
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
33
+
34
+ # Manage job postings
35
+ AUTH_JOBS = 'https://www.googleapis.com/auth/jobs'
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,2587 @@
1
+ # Copyright 2015 Google Inc.
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
+ # http://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
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module JobsV3
24
+
25
+ # Application related details of a job posting.
26
+ class ApplicationInfo
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Optional but at least one of uris,
30
+ # emails or instruction must be
31
+ # specified.
32
+ # Use this field to specify email address(es) to which resumes or
33
+ # applications can be sent.
34
+ # The maximum number of allowed characters for each entry is 255.
35
+ # Corresponds to the JSON property `emails`
36
+ # @return [Array<String>]
37
+ attr_accessor :emails
38
+
39
+ # Optional but at least one of uris,
40
+ # emails or instruction must be
41
+ # specified.
42
+ # Use this field to provide instructions, such as "Mail your application
43
+ # to ...", that a candidate can follow to apply for the job.
44
+ # This field accepts and sanitizes HTML input, and also accepts
45
+ # bold, italic, ordered list, and unordered list markup tags.
46
+ # The maximum number of allowed characters is 3,000.
47
+ # Corresponds to the JSON property `instruction`
48
+ # @return [String]
49
+ attr_accessor :instruction
50
+
51
+ # Optional but at least one of uris,
52
+ # emails or instruction must be
53
+ # specified.
54
+ # Use this URI field to direct an applicant to a website, for example to
55
+ # link to an online application form.
56
+ # The maximum number of allowed characters for each entry is 2,000.
57
+ # Corresponds to the JSON property `uris`
58
+ # @return [Array<String>]
59
+ attr_accessor :uris
60
+
61
+ def initialize(**args)
62
+ update!(**args)
63
+ end
64
+
65
+ # Update properties of this object
66
+ def update!(**args)
67
+ @emails = args[:emails] if args.key?(:emails)
68
+ @instruction = args[:instruction] if args.key?(:instruction)
69
+ @uris = args[:uris] if args.key?(:uris)
70
+ end
71
+ end
72
+
73
+ # Input only.
74
+ # Batch delete jobs request.
75
+ class BatchDeleteJobsRequest
76
+ include Google::Apis::Core::Hashable
77
+
78
+ # Required.
79
+ # The filter string specifies the jobs to be deleted.
80
+ # Supported operator: =, AND
81
+ # The fields eligible for filtering are:
82
+ # * `companyName` (Required)
83
+ # * `requisitionId` (Required)
84
+ # Sample Query: companyName = "projects/api-test-project/companies/123" AND
85
+ # requisitionId = "req-1"
86
+ # Corresponds to the JSON property `filter`
87
+ # @return [String]
88
+ attr_accessor :filter
89
+
90
+ def initialize(**args)
91
+ update!(**args)
92
+ end
93
+
94
+ # Update properties of this object
95
+ def update!(**args)
96
+ @filter = args[:filter] if args.key?(:filter)
97
+ end
98
+ end
99
+
100
+ # Represents starting and ending value of a range in double.
101
+ class BucketRange
102
+ include Google::Apis::Core::Hashable
103
+
104
+ # Starting value of the bucket range.
105
+ # Corresponds to the JSON property `from`
106
+ # @return [Float]
107
+ attr_accessor :from
108
+
109
+ # Ending value of the bucket range.
110
+ # Corresponds to the JSON property `to`
111
+ # @return [Float]
112
+ attr_accessor :to
113
+
114
+ def initialize(**args)
115
+ update!(**args)
116
+ end
117
+
118
+ # Update properties of this object
119
+ def update!(**args)
120
+ @from = args[:from] if args.key?(:from)
121
+ @to = args[:to] if args.key?(:to)
122
+ end
123
+ end
124
+
125
+ # Represents count of jobs within one bucket.
126
+ class BucketizedCount
127
+ include Google::Apis::Core::Hashable
128
+
129
+ # Number of jobs whose numeric field value fall into `range`.
130
+ # Corresponds to the JSON property `count`
131
+ # @return [Fixnum]
132
+ attr_accessor :count
133
+
134
+ # Represents starting and ending value of a range in double.
135
+ # Corresponds to the JSON property `range`
136
+ # @return [Google::Apis::JobsV3::BucketRange]
137
+ attr_accessor :range
138
+
139
+ def initialize(**args)
140
+ update!(**args)
141
+ end
142
+
143
+ # Update properties of this object
144
+ def update!(**args)
145
+ @count = args[:count] if args.key?(:count)
146
+ @range = args[:range] if args.key?(:range)
147
+ end
148
+ end
149
+
150
+ # Input only.
151
+ # Parameters needed for commute search.
152
+ class CommuteFilter
153
+ include Google::Apis::Core::Hashable
154
+
155
+ # Optional.
156
+ # If `true`, jobs without street level addresses may also be returned.
157
+ # For city level addresses, the city center is used. For state and coarser
158
+ # level addresses, text matching is used.
159
+ # If this field is set to `false` or is not specified, only jobs that include
160
+ # street level addresses will be returned by commute search.
161
+ # Corresponds to the JSON property `allowImpreciseAddresses`
162
+ # @return [Boolean]
163
+ attr_accessor :allow_imprecise_addresses
164
+ alias_method :allow_imprecise_addresses?, :allow_imprecise_addresses
165
+
166
+ # Required.
167
+ # The method of transportation for which to calculate the commute time.
168
+ # Corresponds to the JSON property `commuteMethod`
169
+ # @return [String]
170
+ attr_accessor :commute_method
171
+
172
+ # Represents a time of day. The date and time zone are either not significant
173
+ # or are specified elsewhere. An API may choose to allow leap seconds. Related
174
+ # types are google.type.Date and `google.protobuf.Timestamp`.
175
+ # Corresponds to the JSON property `departureTime`
176
+ # @return [Google::Apis::JobsV3::TimeOfDay]
177
+ attr_accessor :departure_time
178
+
179
+ # Optional.
180
+ # Specifies the traffic density to use when caculating commute time.
181
+ # Corresponds to the JSON property `roadTraffic`
182
+ # @return [String]
183
+ attr_accessor :road_traffic
184
+
185
+ # An object representing a latitude/longitude pair. This is expressed as a pair
186
+ # of doubles representing degrees latitude and degrees longitude. Unless
187
+ # specified otherwise, this must conform to the
188
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
189
+ # standard</a>. Values must be within normalized ranges.
190
+ # Corresponds to the JSON property `startCoordinates`
191
+ # @return [Google::Apis::JobsV3::LatLng]
192
+ attr_accessor :start_coordinates
193
+
194
+ # Required.
195
+ # The maximum travel time in seconds. The maximum allowed value is `3600s`
196
+ # (one hour). Format is `123s`.
197
+ # Corresponds to the JSON property `travelDuration`
198
+ # @return [String]
199
+ attr_accessor :travel_duration
200
+
201
+ def initialize(**args)
202
+ update!(**args)
203
+ end
204
+
205
+ # Update properties of this object
206
+ def update!(**args)
207
+ @allow_imprecise_addresses = args[:allow_imprecise_addresses] if args.key?(:allow_imprecise_addresses)
208
+ @commute_method = args[:commute_method] if args.key?(:commute_method)
209
+ @departure_time = args[:departure_time] if args.key?(:departure_time)
210
+ @road_traffic = args[:road_traffic] if args.key?(:road_traffic)
211
+ @start_coordinates = args[:start_coordinates] if args.key?(:start_coordinates)
212
+ @travel_duration = args[:travel_duration] if args.key?(:travel_duration)
213
+ end
214
+ end
215
+
216
+ # Output only.
217
+ # Commute details related to this job.
218
+ class CommuteInfo
219
+ include Google::Apis::Core::Hashable
220
+
221
+ # Output only.
222
+ # A resource that represents a location with full geographic information.
223
+ # Corresponds to the JSON property `jobLocation`
224
+ # @return [Google::Apis::JobsV3::Location]
225
+ attr_accessor :job_location
226
+
227
+ # The number of seconds required to travel to the job location from the
228
+ # query location. A duration of 0 seconds indicates that the job is not
229
+ # reachable within the requested duration, but was returned as part of an
230
+ # expanded query.
231
+ # Corresponds to the JSON property `travelDuration`
232
+ # @return [String]
233
+ attr_accessor :travel_duration
234
+
235
+ def initialize(**args)
236
+ update!(**args)
237
+ end
238
+
239
+ # Update properties of this object
240
+ def update!(**args)
241
+ @job_location = args[:job_location] if args.key?(:job_location)
242
+ @travel_duration = args[:travel_duration] if args.key?(:travel_duration)
243
+ end
244
+ end
245
+
246
+ # A Company resource represents a company in the service. A company is the
247
+ # entity that owns job postings, that is, the hiring entity responsible for
248
+ # employing applicants for the job position.
249
+ class Company
250
+ include Google::Apis::Core::Hashable
251
+
252
+ # Optional.
253
+ # The URI to employer's career site or careers page on the employer's web
254
+ # site, for example, "https://careers.google.com".
255
+ # Corresponds to the JSON property `careerSiteUri`
256
+ # @return [String]
257
+ attr_accessor :career_site_uri
258
+
259
+ # Derived details about the company.
260
+ # Corresponds to the JSON property `derivedInfo`
261
+ # @return [Google::Apis::JobsV3::CompanyDerivedInfo]
262
+ attr_accessor :derived_info
263
+
264
+ # Required.
265
+ # The display name of the company, for example, "Google, LLC".
266
+ # Corresponds to the JSON property `displayName`
267
+ # @return [String]
268
+ attr_accessor :display_name
269
+
270
+ # Optional.
271
+ # Equal Employment Opportunity legal disclaimer text to be
272
+ # associated with all jobs, and typically to be displayed in all
273
+ # roles.
274
+ # The maximum number of allowed characters is 500.
275
+ # Corresponds to the JSON property `eeoText`
276
+ # @return [String]
277
+ attr_accessor :eeo_text
278
+
279
+ # Required.
280
+ # Client side company identifier, used to uniquely identify the
281
+ # company.
282
+ # The maximum number of allowed characters is 255.
283
+ # Corresponds to the JSON property `externalId`
284
+ # @return [String]
285
+ attr_accessor :external_id
286
+
287
+ # Optional.
288
+ # The street address of the company's main headquarters, which may be
289
+ # different from the job location. The service attempts
290
+ # to geolocate the provided address, and populates a more specific
291
+ # location wherever possible in DerivedInfo.headquarters_location.
292
+ # Corresponds to the JSON property `headquartersAddress`
293
+ # @return [String]
294
+ attr_accessor :headquarters_address
295
+
296
+ # Optional.
297
+ # Set to true if it is the hiring agency that post jobs for other
298
+ # employers.
299
+ # Defaults to false if not provided.
300
+ # Corresponds to the JSON property `hiringAgency`
301
+ # @return [Boolean]
302
+ attr_accessor :hiring_agency
303
+ alias_method :hiring_agency?, :hiring_agency
304
+
305
+ # Optional.
306
+ # A URI that hosts the employer's company logo.
307
+ # Corresponds to the JSON property `imageUri`
308
+ # @return [String]
309
+ attr_accessor :image_uri
310
+
311
+ # Optional.
312
+ # A list of keys of filterable Job.custom_attributes, whose
313
+ # corresponding `string_values` are used in keyword search. Jobs with
314
+ # `string_values` under these specified field keys are returned if any
315
+ # of the values matches the search keyword. Custom field values with
316
+ # parenthesis, brackets and special symbols won't be properly searchable,
317
+ # and those keyword queries need to be surrounded by quotes.
318
+ # Corresponds to the JSON property `keywordSearchableJobCustomAttributes`
319
+ # @return [Array<String>]
320
+ attr_accessor :keyword_searchable_job_custom_attributes
321
+
322
+ # Required during company update.
323
+ # The resource name for a company. This is generated by the service when a
324
+ # company is created.
325
+ # The format is "projects/`project_id`/companies/`company_id`", for example,
326
+ # "projects/api-test-project/companies/foo".
327
+ # Corresponds to the JSON property `name`
328
+ # @return [String]
329
+ attr_accessor :name
330
+
331
+ # Optional.
332
+ # The employer's company size.
333
+ # Corresponds to the JSON property `size`
334
+ # @return [String]
335
+ attr_accessor :size
336
+
337
+ # Output only. Indicates whether a company is flagged to be suspended from
338
+ # public availability by the service when job content appears suspicious,
339
+ # abusive, or spammy.
340
+ # Corresponds to the JSON property `suspended`
341
+ # @return [Boolean]
342
+ attr_accessor :suspended
343
+ alias_method :suspended?, :suspended
344
+
345
+ # Optional.
346
+ # The URI representing the company's primary web site or home page,
347
+ # for example, "https://www.google.com".
348
+ # The maximum number of allowed characters is 255.
349
+ # Corresponds to the JSON property `websiteUri`
350
+ # @return [String]
351
+ attr_accessor :website_uri
352
+
353
+ def initialize(**args)
354
+ update!(**args)
355
+ end
356
+
357
+ # Update properties of this object
358
+ def update!(**args)
359
+ @career_site_uri = args[:career_site_uri] if args.key?(:career_site_uri)
360
+ @derived_info = args[:derived_info] if args.key?(:derived_info)
361
+ @display_name = args[:display_name] if args.key?(:display_name)
362
+ @eeo_text = args[:eeo_text] if args.key?(:eeo_text)
363
+ @external_id = args[:external_id] if args.key?(:external_id)
364
+ @headquarters_address = args[:headquarters_address] if args.key?(:headquarters_address)
365
+ @hiring_agency = args[:hiring_agency] if args.key?(:hiring_agency)
366
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
367
+ @keyword_searchable_job_custom_attributes = args[:keyword_searchable_job_custom_attributes] if args.key?(:keyword_searchable_job_custom_attributes)
368
+ @name = args[:name] if args.key?(:name)
369
+ @size = args[:size] if args.key?(:size)
370
+ @suspended = args[:suspended] if args.key?(:suspended)
371
+ @website_uri = args[:website_uri] if args.key?(:website_uri)
372
+ end
373
+ end
374
+
375
+ # Derived details about the company.
376
+ class CompanyDerivedInfo
377
+ include Google::Apis::Core::Hashable
378
+
379
+ # Output only.
380
+ # A resource that represents a location with full geographic information.
381
+ # Corresponds to the JSON property `headquartersLocation`
382
+ # @return [Google::Apis::JobsV3::Location]
383
+ attr_accessor :headquarters_location
384
+
385
+ def initialize(**args)
386
+ update!(**args)
387
+ end
388
+
389
+ # Update properties of this object
390
+ def update!(**args)
391
+ @headquarters_location = args[:headquarters_location] if args.key?(:headquarters_location)
392
+ end
393
+ end
394
+
395
+ # A compensation entry that represents one component of compensation, such
396
+ # as base pay, bonus, or other compensation type.
397
+ # Annualization: One compensation entry can be annualized if
398
+ # - it contains valid amount or range.
399
+ # - and its expected_units_per_year is set or can be derived.
400
+ # Its annualized range is determined as (amount or range) times
401
+ # expected_units_per_year.
402
+ class CompensationEntry
403
+ include Google::Apis::Core::Hashable
404
+
405
+ # Represents an amount of money with its currency type.
406
+ # Corresponds to the JSON property `amount`
407
+ # @return [Google::Apis::JobsV3::Money]
408
+ attr_accessor :amount
409
+
410
+ # Optional.
411
+ # Compensation description. For example, could
412
+ # indicate equity terms or provide additional context to an estimated
413
+ # bonus.
414
+ # Corresponds to the JSON property `description`
415
+ # @return [String]
416
+ attr_accessor :description
417
+
418
+ # Optional.
419
+ # Expected number of units paid each year. If not specified, when
420
+ # Job.employment_types is FULLTIME, a default value is inferred
421
+ # based on unit. Default values:
422
+ # - HOURLY: 2080
423
+ # - DAILY: 260
424
+ # - WEEKLY: 52
425
+ # - MONTHLY: 12
426
+ # - ANNUAL: 1
427
+ # Corresponds to the JSON property `expectedUnitsPerYear`
428
+ # @return [Float]
429
+ attr_accessor :expected_units_per_year
430
+
431
+ # Compensation range.
432
+ # Corresponds to the JSON property `range`
433
+ # @return [Google::Apis::JobsV3::CompensationRange]
434
+ attr_accessor :range
435
+
436
+ # Optional.
437
+ # Compensation type.
438
+ # Default is CompensationUnit.OTHER_COMPENSATION_TYPE.
439
+ # Corresponds to the JSON property `type`
440
+ # @return [String]
441
+ attr_accessor :type
442
+
443
+ # Optional.
444
+ # Frequency of the specified amount.
445
+ # Default is CompensationUnit.OTHER_COMPENSATION_UNIT.
446
+ # Corresponds to the JSON property `unit`
447
+ # @return [String]
448
+ attr_accessor :unit
449
+
450
+ def initialize(**args)
451
+ update!(**args)
452
+ end
453
+
454
+ # Update properties of this object
455
+ def update!(**args)
456
+ @amount = args[:amount] if args.key?(:amount)
457
+ @description = args[:description] if args.key?(:description)
458
+ @expected_units_per_year = args[:expected_units_per_year] if args.key?(:expected_units_per_year)
459
+ @range = args[:range] if args.key?(:range)
460
+ @type = args[:type] if args.key?(:type)
461
+ @unit = args[:unit] if args.key?(:unit)
462
+ end
463
+ end
464
+
465
+ # Input only.
466
+ # Filter on job compensation type and amount.
467
+ class CompensationFilter
468
+ include Google::Apis::Core::Hashable
469
+
470
+ # Optional.
471
+ # Whether to include jobs whose compensation range is unspecified.
472
+ # Corresponds to the JSON property `includeJobsWithUnspecifiedCompensationRange`
473
+ # @return [Boolean]
474
+ attr_accessor :include_jobs_with_unspecified_compensation_range
475
+ alias_method :include_jobs_with_unspecified_compensation_range?, :include_jobs_with_unspecified_compensation_range
476
+
477
+ # Compensation range.
478
+ # Corresponds to the JSON property `range`
479
+ # @return [Google::Apis::JobsV3::CompensationRange]
480
+ attr_accessor :range
481
+
482
+ # Required.
483
+ # Type of filter.
484
+ # Corresponds to the JSON property `type`
485
+ # @return [String]
486
+ attr_accessor :type
487
+
488
+ # Required.
489
+ # Specify desired `base compensation entry's`
490
+ # CompensationInfo.CompensationUnit.
491
+ # Corresponds to the JSON property `units`
492
+ # @return [Array<String>]
493
+ attr_accessor :units
494
+
495
+ def initialize(**args)
496
+ update!(**args)
497
+ end
498
+
499
+ # Update properties of this object
500
+ def update!(**args)
501
+ @include_jobs_with_unspecified_compensation_range = args[:include_jobs_with_unspecified_compensation_range] if args.key?(:include_jobs_with_unspecified_compensation_range)
502
+ @range = args[:range] if args.key?(:range)
503
+ @type = args[:type] if args.key?(:type)
504
+ @units = args[:units] if args.key?(:units)
505
+ end
506
+ end
507
+
508
+ # Input only.
509
+ # Compensation based histogram request.
510
+ class CompensationHistogramRequest
511
+ include Google::Apis::Core::Hashable
512
+
513
+ # Input only.
514
+ # Use this field to specify bucketing option for the histogram search response.
515
+ # Corresponds to the JSON property `bucketingOption`
516
+ # @return [Google::Apis::JobsV3::NumericBucketingOption]
517
+ attr_accessor :bucketing_option
518
+
519
+ # Required.
520
+ # Type of the request, representing which field the histogramming should be
521
+ # performed over. A single request can only specify one histogram of each
522
+ # `CompensationHistogramRequestType`.
523
+ # Corresponds to the JSON property `type`
524
+ # @return [String]
525
+ attr_accessor :type
526
+
527
+ def initialize(**args)
528
+ update!(**args)
529
+ end
530
+
531
+ # Update properties of this object
532
+ def update!(**args)
533
+ @bucketing_option = args[:bucketing_option] if args.key?(:bucketing_option)
534
+ @type = args[:type] if args.key?(:type)
535
+ end
536
+ end
537
+
538
+ # Output only.
539
+ # Compensation based histogram result.
540
+ class CompensationHistogramResult
541
+ include Google::Apis::Core::Hashable
542
+
543
+ # Output only.
544
+ # Custom numeric bucketing result.
545
+ # Corresponds to the JSON property `result`
546
+ # @return [Google::Apis::JobsV3::NumericBucketingResult]
547
+ attr_accessor :result
548
+
549
+ # Type of the request, corresponding to
550
+ # CompensationHistogramRequest.type.
551
+ # Corresponds to the JSON property `type`
552
+ # @return [String]
553
+ attr_accessor :type
554
+
555
+ def initialize(**args)
556
+ update!(**args)
557
+ end
558
+
559
+ # Update properties of this object
560
+ def update!(**args)
561
+ @result = args[:result] if args.key?(:result)
562
+ @type = args[:type] if args.key?(:type)
563
+ end
564
+ end
565
+
566
+ # Job compensation details.
567
+ class CompensationInfo
568
+ include Google::Apis::Core::Hashable
569
+
570
+ # Compensation range.
571
+ # Corresponds to the JSON property `annualizedBaseCompensationRange`
572
+ # @return [Google::Apis::JobsV3::CompensationRange]
573
+ attr_accessor :annualized_base_compensation_range
574
+
575
+ # Compensation range.
576
+ # Corresponds to the JSON property `annualizedTotalCompensationRange`
577
+ # @return [Google::Apis::JobsV3::CompensationRange]
578
+ attr_accessor :annualized_total_compensation_range
579
+
580
+ # Optional.
581
+ # Job compensation information.
582
+ # At most one entry can be of type
583
+ # CompensationInfo.CompensationType.BASE, which is
584
+ # referred as ** base compensation entry ** for the job.
585
+ # Corresponds to the JSON property `entries`
586
+ # @return [Array<Google::Apis::JobsV3::CompensationEntry>]
587
+ attr_accessor :entries
588
+
589
+ def initialize(**args)
590
+ update!(**args)
591
+ end
592
+
593
+ # Update properties of this object
594
+ def update!(**args)
595
+ @annualized_base_compensation_range = args[:annualized_base_compensation_range] if args.key?(:annualized_base_compensation_range)
596
+ @annualized_total_compensation_range = args[:annualized_total_compensation_range] if args.key?(:annualized_total_compensation_range)
597
+ @entries = args[:entries] if args.key?(:entries)
598
+ end
599
+ end
600
+
601
+ # Compensation range.
602
+ class CompensationRange
603
+ include Google::Apis::Core::Hashable
604
+
605
+ # Represents an amount of money with its currency type.
606
+ # Corresponds to the JSON property `maxCompensation`
607
+ # @return [Google::Apis::JobsV3::Money]
608
+ attr_accessor :max_compensation
609
+
610
+ # Represents an amount of money with its currency type.
611
+ # Corresponds to the JSON property `minCompensation`
612
+ # @return [Google::Apis::JobsV3::Money]
613
+ attr_accessor :min_compensation
614
+
615
+ def initialize(**args)
616
+ update!(**args)
617
+ end
618
+
619
+ # Update properties of this object
620
+ def update!(**args)
621
+ @max_compensation = args[:max_compensation] if args.key?(:max_compensation)
622
+ @min_compensation = args[:min_compensation] if args.key?(:min_compensation)
623
+ end
624
+ end
625
+
626
+ # Output only.
627
+ # Response of auto-complete query.
628
+ class CompleteQueryResponse
629
+ include Google::Apis::Core::Hashable
630
+
631
+ # Results of the matching job/company candidates.
632
+ # Corresponds to the JSON property `completionResults`
633
+ # @return [Array<Google::Apis::JobsV3::CompletionResult>]
634
+ attr_accessor :completion_results
635
+
636
+ # Output only.
637
+ # Additional information returned to client, such as debugging information.
638
+ # Corresponds to the JSON property `metadata`
639
+ # @return [Google::Apis::JobsV3::ResponseMetadata]
640
+ attr_accessor :metadata
641
+
642
+ def initialize(**args)
643
+ update!(**args)
644
+ end
645
+
646
+ # Update properties of this object
647
+ def update!(**args)
648
+ @completion_results = args[:completion_results] if args.key?(:completion_results)
649
+ @metadata = args[:metadata] if args.key?(:metadata)
650
+ end
651
+ end
652
+
653
+ # Output only.
654
+ # Resource that represents completion results.
655
+ class CompletionResult
656
+ include Google::Apis::Core::Hashable
657
+
658
+ # The URI of the company image for CompletionType.COMPANY_NAME.
659
+ # Corresponds to the JSON property `imageUri`
660
+ # @return [String]
661
+ attr_accessor :image_uri
662
+
663
+ # The suggestion for the query.
664
+ # Corresponds to the JSON property `suggestion`
665
+ # @return [String]
666
+ attr_accessor :suggestion
667
+
668
+ # The completion topic.
669
+ # Corresponds to the JSON property `type`
670
+ # @return [String]
671
+ attr_accessor :type
672
+
673
+ def initialize(**args)
674
+ update!(**args)
675
+ end
676
+
677
+ # Update properties of this object
678
+ def update!(**args)
679
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
680
+ @suggestion = args[:suggestion] if args.key?(:suggestion)
681
+ @type = args[:type] if args.key?(:type)
682
+ end
683
+ end
684
+
685
+ # Input only.
686
+ # The Request of the CreateCompany method.
687
+ class CreateCompanyRequest
688
+ include Google::Apis::Core::Hashable
689
+
690
+ # A Company resource represents a company in the service. A company is the
691
+ # entity that owns job postings, that is, the hiring entity responsible for
692
+ # employing applicants for the job position.
693
+ # Corresponds to the JSON property `company`
694
+ # @return [Google::Apis::JobsV3::Company]
695
+ attr_accessor :company
696
+
697
+ def initialize(**args)
698
+ update!(**args)
699
+ end
700
+
701
+ # Update properties of this object
702
+ def update!(**args)
703
+ @company = args[:company] if args.key?(:company)
704
+ end
705
+ end
706
+
707
+ # Input only.
708
+ # Create job request.
709
+ class CreateJobRequest
710
+ include Google::Apis::Core::Hashable
711
+
712
+ # A Job resource represents a job posting (also referred to as a "job listing"
713
+ # or "job requisition"). A job belongs to a Company, which is the hiring
714
+ # entity responsible for the job.
715
+ # Corresponds to the JSON property `job`
716
+ # @return [Google::Apis::JobsV3::Job]
717
+ attr_accessor :job
718
+
719
+ def initialize(**args)
720
+ update!(**args)
721
+ end
722
+
723
+ # Update properties of this object
724
+ def update!(**args)
725
+ @job = args[:job] if args.key?(:job)
726
+ end
727
+ end
728
+
729
+ # Custom attribute values that are either filterable or non-filterable.
730
+ class CustomAttribute
731
+ include Google::Apis::Core::Hashable
732
+
733
+ # Optional.
734
+ # If the `filterable` flag is true, custom field values are searchable.
735
+ # If false, values are not searchable.
736
+ # Default is false.
737
+ # Corresponds to the JSON property `filterable`
738
+ # @return [Boolean]
739
+ attr_accessor :filterable
740
+ alias_method :filterable?, :filterable
741
+
742
+ # Optional but exactly one of string_values or long_values must
743
+ # be specified.
744
+ # This field is used to perform number range search.
745
+ # (`EQ`, `GT`, `GE`, `LE`, `LT`) over filterable `long_value`.
746
+ # Currently at most 1 long_values is supported.
747
+ # Corresponds to the JSON property `longValues`
748
+ # @return [Array<Fixnum>]
749
+ attr_accessor :long_values
750
+
751
+ # Optional but exactly one of string_values or long_values must
752
+ # be specified.
753
+ # This field is used to perform a string match (`CASE_SENSITIVE_MATCH` or
754
+ # `CASE_INSENSITIVE_MATCH`) search.
755
+ # For filterable `string_value`s, a maximum total number of 200 values
756
+ # is allowed, with each `string_value` has a byte size of no more than
757
+ # 255B. For unfilterable `string_values`, the maximum total byte size of
758
+ # unfilterable `string_values` is 50KB.
759
+ # Empty string is not allowed.
760
+ # Corresponds to the JSON property `stringValues`
761
+ # @return [Array<String>]
762
+ attr_accessor :string_values
763
+
764
+ def initialize(**args)
765
+ update!(**args)
766
+ end
767
+
768
+ # Update properties of this object
769
+ def update!(**args)
770
+ @filterable = args[:filterable] if args.key?(:filterable)
771
+ @long_values = args[:long_values] if args.key?(:long_values)
772
+ @string_values = args[:string_values] if args.key?(:string_values)
773
+ end
774
+ end
775
+
776
+ # Custom attributes histogram request. An error is thrown if neither
777
+ # string_value_histogram or long_value_histogram_bucketing_option has
778
+ # been defined.
779
+ class CustomAttributeHistogramRequest
780
+ include Google::Apis::Core::Hashable
781
+
782
+ # Required.
783
+ # Specifies the custom field key to perform a histogram on. If specified
784
+ # without `long_value_histogram_bucketing_option`, histogram on string values
785
+ # of the given `key` is triggered, otherwise histogram is performed on long
786
+ # values.
787
+ # Corresponds to the JSON property `key`
788
+ # @return [String]
789
+ attr_accessor :key
790
+
791
+ # Input only.
792
+ # Use this field to specify bucketing option for the histogram search response.
793
+ # Corresponds to the JSON property `longValueHistogramBucketingOption`
794
+ # @return [Google::Apis::JobsV3::NumericBucketingOption]
795
+ attr_accessor :long_value_histogram_bucketing_option
796
+
797
+ # Optional. If set to true, the response includes the histogram value for
798
+ # each key as a string.
799
+ # Corresponds to the JSON property `stringValueHistogram`
800
+ # @return [Boolean]
801
+ attr_accessor :string_value_histogram
802
+ alias_method :string_value_histogram?, :string_value_histogram
803
+
804
+ def initialize(**args)
805
+ update!(**args)
806
+ end
807
+
808
+ # Update properties of this object
809
+ def update!(**args)
810
+ @key = args[:key] if args.key?(:key)
811
+ @long_value_histogram_bucketing_option = args[:long_value_histogram_bucketing_option] if args.key?(:long_value_histogram_bucketing_option)
812
+ @string_value_histogram = args[:string_value_histogram] if args.key?(:string_value_histogram)
813
+ end
814
+ end
815
+
816
+ # Output only.
817
+ # Custom attribute histogram result.
818
+ class CustomAttributeHistogramResult
819
+ include Google::Apis::Core::Hashable
820
+
821
+ # Stores the key of custom attribute the histogram is performed on.
822
+ # Corresponds to the JSON property `key`
823
+ # @return [String]
824
+ attr_accessor :key
825
+
826
+ # Output only.
827
+ # Custom numeric bucketing result.
828
+ # Corresponds to the JSON property `longValueHistogramResult`
829
+ # @return [Google::Apis::JobsV3::NumericBucketingResult]
830
+ attr_accessor :long_value_histogram_result
831
+
832
+ # Stores a map from the values of string custom field associated
833
+ # with `key` to the number of jobs with that value in this histogram result.
834
+ # Corresponds to the JSON property `stringValueHistogramResult`
835
+ # @return [Hash<String,Fixnum>]
836
+ attr_accessor :string_value_histogram_result
837
+
838
+ def initialize(**args)
839
+ update!(**args)
840
+ end
841
+
842
+ # Update properties of this object
843
+ def update!(**args)
844
+ @key = args[:key] if args.key?(:key)
845
+ @long_value_histogram_result = args[:long_value_histogram_result] if args.key?(:long_value_histogram_result)
846
+ @string_value_histogram_result = args[:string_value_histogram_result] if args.key?(:string_value_histogram_result)
847
+ end
848
+ end
849
+
850
+ # Device information collected from the job seeker, candidate, or
851
+ # other entity conducting the job search. Providing this information improves
852
+ # the quality of the search results across devices.
853
+ class DeviceInfo
854
+ include Google::Apis::Core::Hashable
855
+
856
+ # Optional.
857
+ # Type of the device.
858
+ # Corresponds to the JSON property `deviceType`
859
+ # @return [String]
860
+ attr_accessor :device_type
861
+
862
+ # Optional.
863
+ # A device-specific ID. The ID must be a unique identifier that
864
+ # distinguishes the device from other devices.
865
+ # Corresponds to the JSON property `id`
866
+ # @return [String]
867
+ attr_accessor :id
868
+
869
+ def initialize(**args)
870
+ update!(**args)
871
+ end
872
+
873
+ # Update properties of this object
874
+ def update!(**args)
875
+ @device_type = args[:device_type] if args.key?(:device_type)
876
+ @id = args[:id] if args.key?(:id)
877
+ end
878
+ end
879
+
880
+ # A generic empty message that you can re-use to avoid defining duplicated
881
+ # empty messages in your APIs. A typical example is to use it as the request
882
+ # or the response type of an API method. For instance:
883
+ # service Foo `
884
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
885
+ # `
886
+ # The JSON representation for `Empty` is empty JSON object ````.
887
+ class Empty
888
+ include Google::Apis::Core::Hashable
889
+
890
+ def initialize(**args)
891
+ update!(**args)
892
+ end
893
+
894
+ # Update properties of this object
895
+ def update!(**args)
896
+ end
897
+ end
898
+
899
+ # Input only.
900
+ # Histogram facets to be specified in SearchJobsRequest.
901
+ class HistogramFacets
902
+ include Google::Apis::Core::Hashable
903
+
904
+ # Optional.
905
+ # Specifies compensation field-based histogram requests.
906
+ # Duplicate values of CompensationHistogramRequest.type are not allowed.
907
+ # Corresponds to the JSON property `compensationHistogramFacets`
908
+ # @return [Array<Google::Apis::JobsV3::CompensationHistogramRequest>]
909
+ attr_accessor :compensation_histogram_facets
910
+
911
+ # Optional.
912
+ # Specifies the custom attributes histogram requests.
913
+ # Duplicate values of CustomAttributeHistogramRequest.key are not
914
+ # allowed.
915
+ # Corresponds to the JSON property `customAttributeHistogramFacets`
916
+ # @return [Array<Google::Apis::JobsV3::CustomAttributeHistogramRequest>]
917
+ attr_accessor :custom_attribute_histogram_facets
918
+
919
+ # Optional. Specifies the simple type of histogram facets, for example,
920
+ # `COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc. This field is equivalent to
921
+ # GetHistogramRequest.
922
+ # Corresponds to the JSON property `simpleHistogramFacets`
923
+ # @return [Array<String>]
924
+ attr_accessor :simple_histogram_facets
925
+
926
+ def initialize(**args)
927
+ update!(**args)
928
+ end
929
+
930
+ # Update properties of this object
931
+ def update!(**args)
932
+ @compensation_histogram_facets = args[:compensation_histogram_facets] if args.key?(:compensation_histogram_facets)
933
+ @custom_attribute_histogram_facets = args[:custom_attribute_histogram_facets] if args.key?(:custom_attribute_histogram_facets)
934
+ @simple_histogram_facets = args[:simple_histogram_facets] if args.key?(:simple_histogram_facets)
935
+ end
936
+ end
937
+
938
+ # Output only.
939
+ # Result of a histogram call. The response contains the histogram map for the
940
+ # search type specified by HistogramResult.field.
941
+ # The response is a map of each filter value to the corresponding count of
942
+ # jobs for that filter.
943
+ class HistogramResult
944
+ include Google::Apis::Core::Hashable
945
+
946
+ # The Histogram search filters.
947
+ # Corresponds to the JSON property `searchType`
948
+ # @return [String]
949
+ attr_accessor :search_type
950
+
951
+ # A map from the values of field to the number of jobs with that value
952
+ # in this search result.
953
+ # Key: search type (filter names, such as the companyName).
954
+ # Values: the count of jobs that match the filter for this search.
955
+ # Corresponds to the JSON property `values`
956
+ # @return [Hash<String,Fixnum>]
957
+ attr_accessor :values
958
+
959
+ def initialize(**args)
960
+ update!(**args)
961
+ end
962
+
963
+ # Update properties of this object
964
+ def update!(**args)
965
+ @search_type = args[:search_type] if args.key?(:search_type)
966
+ @values = args[:values] if args.key?(:values)
967
+ end
968
+ end
969
+
970
+ # Output only.
971
+ # Histogram results that match HistogramFacets specified in
972
+ # SearchJobsRequest.
973
+ class HistogramResults
974
+ include Google::Apis::Core::Hashable
975
+
976
+ # Specifies compensation field-based histogram results that match
977
+ # HistogramFacets.compensation_histogram_requests.
978
+ # Corresponds to the JSON property `compensationHistogramResults`
979
+ # @return [Array<Google::Apis::JobsV3::CompensationHistogramResult>]
980
+ attr_accessor :compensation_histogram_results
981
+
982
+ # Specifies histogram results for custom attributes that match
983
+ # HistogramFacets.custom_attribute_histogram_facets.
984
+ # Corresponds to the JSON property `customAttributeHistogramResults`
985
+ # @return [Array<Google::Apis::JobsV3::CustomAttributeHistogramResult>]
986
+ attr_accessor :custom_attribute_histogram_results
987
+
988
+ # Specifies histogram results that matches
989
+ # HistogramFacets.simple_histogram_facets.
990
+ # Corresponds to the JSON property `simpleHistogramResults`
991
+ # @return [Array<Google::Apis::JobsV3::HistogramResult>]
992
+ attr_accessor :simple_histogram_results
993
+
994
+ def initialize(**args)
995
+ update!(**args)
996
+ end
997
+
998
+ # Update properties of this object
999
+ def update!(**args)
1000
+ @compensation_histogram_results = args[:compensation_histogram_results] if args.key?(:compensation_histogram_results)
1001
+ @custom_attribute_histogram_results = args[:custom_attribute_histogram_results] if args.key?(:custom_attribute_histogram_results)
1002
+ @simple_histogram_results = args[:simple_histogram_results] if args.key?(:simple_histogram_results)
1003
+ end
1004
+ end
1005
+
1006
+ # A Job resource represents a job posting (also referred to as a "job listing"
1007
+ # or "job requisition"). A job belongs to a Company, which is the hiring
1008
+ # entity responsible for the job.
1009
+ class Job
1010
+ include Google::Apis::Core::Hashable
1011
+
1012
+ # Optional but strongly recommended for the best service experience.
1013
+ # Location(s) where the employer is looking to hire for this job posting.
1014
+ # Specifying the full street address(es) of the hiring location enables
1015
+ # better API results, especially job searches by commute time.
1016
+ # At most 50 locations are allowed for best search performance. If a job has
1017
+ # more locations, it is suggested to split it into multiple jobs with unique
1018
+ # requisition_ids (e.g. 'ReqA' becomes 'ReqA-1', 'ReqA-2', etc.) as
1019
+ # multiple jobs with the same company_name, language_code and
1020
+ # requisition_id are not allowed. If the original requisition_id must
1021
+ # be preserved, a custom field should be used for storage. It is also
1022
+ # suggested to group the locations that close to each other in the same job
1023
+ # for better search experience.
1024
+ # The maximum number of allowed characters is 500.
1025
+ # Corresponds to the JSON property `addresses`
1026
+ # @return [Array<String>]
1027
+ attr_accessor :addresses
1028
+
1029
+ # Application related details of a job posting.
1030
+ # Corresponds to the JSON property `applicationInfo`
1031
+ # @return [Google::Apis::JobsV3::ApplicationInfo]
1032
+ attr_accessor :application_info
1033
+
1034
+ # Output only. Display name of the company listing the job.
1035
+ # Corresponds to the JSON property `companyDisplayName`
1036
+ # @return [String]
1037
+ attr_accessor :company_display_name
1038
+
1039
+ # Required.
1040
+ # The resource name of the company listing the job, such as
1041
+ # "projects/api-test-project/companies/foo".
1042
+ # Corresponds to the JSON property `companyName`
1043
+ # @return [String]
1044
+ attr_accessor :company_name
1045
+
1046
+ # Job compensation details.
1047
+ # Corresponds to the JSON property `compensationInfo`
1048
+ # @return [Google::Apis::JobsV3::CompensationInfo]
1049
+ attr_accessor :compensation_info
1050
+
1051
+ # Optional.
1052
+ # A map of fields to hold both filterable and non-filterable custom job
1053
+ # attributes that are not covered by the provided structured fields.
1054
+ # The keys of the map are strings up to 64 bytes and must match the
1055
+ # pattern: a-zA-Z*. For example, key0LikeThis or
1056
+ # KEY_1_LIKE_THIS.
1057
+ # At most 100 filterable and at most 100 unfilterable keys are supported.
1058
+ # For filterable `string_values`, across all keys at most 200 values are
1059
+ # allowed, with each string no more than 255 characters. For unfilterable
1060
+ # `string_values`, the maximum total size of `string_values` across all keys
1061
+ # is 50KB.
1062
+ # Corresponds to the JSON property `customAttributes`
1063
+ # @return [Hash<String,Google::Apis::JobsV3::CustomAttribute>]
1064
+ attr_accessor :custom_attributes
1065
+
1066
+ # Optional.
1067
+ # The desired education degrees for the job, such as Bachelors, Masters.
1068
+ # Corresponds to the JSON property `degreeTypes`
1069
+ # @return [Array<String>]
1070
+ attr_accessor :degree_types
1071
+
1072
+ # Optional.
1073
+ # The department or functional area within the company with the open
1074
+ # position.
1075
+ # The maximum number of allowed characters is 255.
1076
+ # Corresponds to the JSON property `department`
1077
+ # @return [String]
1078
+ attr_accessor :department
1079
+
1080
+ # Output only.
1081
+ # Derived details about the job posting.
1082
+ # Corresponds to the JSON property `derivedInfo`
1083
+ # @return [Google::Apis::JobsV3::JobDerivedInfo]
1084
+ attr_accessor :derived_info
1085
+
1086
+ # Required.
1087
+ # The description of the job, which typically includes a multi-paragraph
1088
+ # description of the company and related information. Separate fields are
1089
+ # provided on the job object for responsibilities,
1090
+ # qualifications, and other job characteristics. Use of
1091
+ # these separate job fields is recommended.
1092
+ # This field accepts and sanitizes HTML input, and also accepts
1093
+ # bold, italic, ordered list, and unordered list markup tags.
1094
+ # The maximum number of allowed characters is 100,000.
1095
+ # Corresponds to the JSON property `description`
1096
+ # @return [String]
1097
+ attr_accessor :description
1098
+
1099
+ # Optional.
1100
+ # The employment type(s) of a job, for example,
1101
+ # full time or
1102
+ # part time.
1103
+ # Corresponds to the JSON property `employmentTypes`
1104
+ # @return [Array<String>]
1105
+ attr_accessor :employment_types
1106
+
1107
+ # Optional.
1108
+ # A description of bonus, commission, and other compensation
1109
+ # incentives associated with the job not including salary or pay.
1110
+ # The maximum number of allowed characters is 10,000.
1111
+ # Corresponds to the JSON property `incentives`
1112
+ # @return [String]
1113
+ attr_accessor :incentives
1114
+
1115
+ # Optional.
1116
+ # The benefits included with the job.
1117
+ # Corresponds to the JSON property `jobBenefits`
1118
+ # @return [Array<String>]
1119
+ attr_accessor :job_benefits
1120
+
1121
+ # Optional.
1122
+ # The end timestamp of the job. Typically this field is used for contracting
1123
+ # engagements. Invalid timestamps are ignored.
1124
+ # Corresponds to the JSON property `jobEndTime`
1125
+ # @return [String]
1126
+ attr_accessor :job_end_time
1127
+
1128
+ # Optional.
1129
+ # The experience level associated with the job, such as "Entry Level".
1130
+ # Corresponds to the JSON property `jobLevel`
1131
+ # @return [String]
1132
+ attr_accessor :job_level
1133
+
1134
+ # Optional.
1135
+ # The start timestamp of the job in UTC time zone. Typically this field
1136
+ # is used for contracting engagements. Invalid timestamps are ignored.
1137
+ # Corresponds to the JSON property `jobStartTime`
1138
+ # @return [String]
1139
+ attr_accessor :job_start_time
1140
+
1141
+ # Optional.
1142
+ # The language of the posting. This field is distinct from
1143
+ # any requirements for fluency that are associated with the job.
1144
+ # Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
1145
+ # For more information, see
1146
+ # [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47)`:
1147
+ # class="external" target="_blank" `.
1148
+ # The default value is `en-US`.
1149
+ # Corresponds to the JSON property `languageCode`
1150
+ # @return [String]
1151
+ attr_accessor :language_code
1152
+
1153
+ # Required during job update.
1154
+ # The resource name for the job. This is generated by the service when a
1155
+ # job is created.
1156
+ # The format is "projects/`project_id`/jobs/`job_id`",
1157
+ # for example, "projects/api-test-project/jobs/1234".
1158
+ # Use of this field in job queries and API calls is preferred over the use of
1159
+ # requisition_id since this value is unique.
1160
+ # Corresponds to the JSON property `name`
1161
+ # @return [String]
1162
+ attr_accessor :name
1163
+
1164
+ # Output only. The timestamp when this job posting was created.
1165
+ # Corresponds to the JSON property `postingCreateTime`
1166
+ # @return [String]
1167
+ attr_accessor :posting_create_time
1168
+
1169
+ # Optional but strongly recommended for the best service
1170
+ # experience.
1171
+ # The expiration timestamp of the job. After this timestamp, the
1172
+ # job is marked as expired, and it no longer appears in search results. The
1173
+ # expired job can't be deleted or listed by the DeleteJob and
1174
+ # ListJobs APIs, but it can be retrieved with the GetJob API or
1175
+ # updated with the UpdateJob API. An expired job can be updated and
1176
+ # opened again by using a future expiration timestamp. Updating an expired
1177
+ # job fails if there is another existing open job with same company_name,
1178
+ # language_code and requisition_id.
1179
+ # The expired jobs are retained in our system for 90 days. However, the
1180
+ # overall expired job count cannot exceed 3 times the maximum of open jobs
1181
+ # count over the past week, otherwise jobs with earlier expire time are
1182
+ # cleaned first. Expired jobs are no longer accessible after they are cleaned
1183
+ # out.
1184
+ # Invalid timestamps are ignored, and treated as expire time not provided.
1185
+ # Timestamp before the instant request is made is considered valid, the job
1186
+ # will be treated as expired immediately.
1187
+ # If this value is not provided at the time of job creation or is invalid,
1188
+ # the job posting expires after 30 days from the job's creation time. For
1189
+ # example, if the job was created on 2017/01/01 13:00AM UTC with an
1190
+ # unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
1191
+ # If this value is not provided on job update, it depends on the field masks
1192
+ # set by UpdateJobRequest.update_mask. If the field masks include
1193
+ # expiry_time, or the masks are empty meaning that every field is
1194
+ # updated, the job posting expires after 30 days from the job's last
1195
+ # update time. Otherwise the expiration date isn't updated.
1196
+ # Corresponds to the JSON property `postingExpireTime`
1197
+ # @return [String]
1198
+ attr_accessor :posting_expire_time
1199
+
1200
+ # Optional.
1201
+ # The timestamp this job posting was most recently published. The default
1202
+ # value is the time the request arrives at the server. Invalid timestamps are
1203
+ # ignored.
1204
+ # Corresponds to the JSON property `postingPublishTime`
1205
+ # @return [String]
1206
+ attr_accessor :posting_publish_time
1207
+
1208
+ # Optional.
1209
+ # The job PostingRegion (for example, state, country) throughout which
1210
+ # the job is available. If this field is set, a
1211
+ # LocationFilter in a search query within the job region
1212
+ # finds this job posting if an exact location match is not specified.
1213
+ # If this field is set to PostingRegion.NATION_WIDE or
1214
+ # [PostingRegion.ADMINISTRATIVE_AREA], setting job addresses
1215
+ # to the same location level as this field is strongly recommended.
1216
+ # Corresponds to the JSON property `postingRegion`
1217
+ # @return [String]
1218
+ attr_accessor :posting_region
1219
+
1220
+ # Output only. The timestamp when this job posting was last updated.
1221
+ # Corresponds to the JSON property `postingUpdateTime`
1222
+ # @return [String]
1223
+ attr_accessor :posting_update_time
1224
+
1225
+ # Input only.
1226
+ # Options for job processing.
1227
+ # Corresponds to the JSON property `processingOptions`
1228
+ # @return [Google::Apis::JobsV3::ProcessingOptions]
1229
+ attr_accessor :processing_options
1230
+
1231
+ # Optional.
1232
+ # A promotion value of the job, as determined by the client.
1233
+ # The value determines the sort order of the jobs returned when searching for
1234
+ # jobs using the featured jobs search call, with higher promotional values
1235
+ # being returned first and ties being resolved by relevance sort. Only the
1236
+ # jobs with a promotionValue >0 are returned in a FEATURED_JOB_SEARCH.
1237
+ # Default value is 0, and negative values are treated as 0.
1238
+ # Corresponds to the JSON property `promotionValue`
1239
+ # @return [Fixnum]
1240
+ attr_accessor :promotion_value
1241
+
1242
+ # Optional.
1243
+ # A description of the qualifications required to perform the
1244
+ # job. The use of this field is recommended
1245
+ # as an alternative to using the more general description field.
1246
+ # This field accepts and sanitizes HTML input, and also accepts
1247
+ # bold, italic, ordered list, and unordered list markup tags.
1248
+ # The maximum number of allowed characters is 10,000.
1249
+ # Corresponds to the JSON property `qualifications`
1250
+ # @return [String]
1251
+ attr_accessor :qualifications
1252
+
1253
+ # Required.
1254
+ # The requisition ID, also referred to as the posting ID, assigned by the
1255
+ # client to identify a job. This field is intended to be used by clients
1256
+ # for client identification and tracking of postings. A job is not allowed
1257
+ # to be created if there is another job with the same [company_name],
1258
+ # language_code and requisition_id.
1259
+ # The maximum number of allowed characters is 255.
1260
+ # Corresponds to the JSON property `requisitionId`
1261
+ # @return [String]
1262
+ attr_accessor :requisition_id
1263
+
1264
+ # Optional.
1265
+ # A description of job responsibilities. The use of this field is
1266
+ # recommended as an alternative to using the more general description
1267
+ # field.
1268
+ # This field accepts and sanitizes HTML input, and also accepts
1269
+ # bold, italic, ordered list, and unordered list markup tags.
1270
+ # The maximum number of allowed characters is 10,000.
1271
+ # Corresponds to the JSON property `responsibilities`
1272
+ # @return [String]
1273
+ attr_accessor :responsibilities
1274
+
1275
+ # Required.
1276
+ # The title of the job, such as "Software Engineer"
1277
+ # The maximum number of allowed characters is 500.
1278
+ # Corresponds to the JSON property `title`
1279
+ # @return [String]
1280
+ attr_accessor :title
1281
+
1282
+ # Optional.
1283
+ # The visibility of the job.
1284
+ # Defaults to Visibility.ACCOUNT_ONLY if not specified.
1285
+ # Corresponds to the JSON property `visibility`
1286
+ # @return [String]
1287
+ attr_accessor :visibility
1288
+
1289
+ def initialize(**args)
1290
+ update!(**args)
1291
+ end
1292
+
1293
+ # Update properties of this object
1294
+ def update!(**args)
1295
+ @addresses = args[:addresses] if args.key?(:addresses)
1296
+ @application_info = args[:application_info] if args.key?(:application_info)
1297
+ @company_display_name = args[:company_display_name] if args.key?(:company_display_name)
1298
+ @company_name = args[:company_name] if args.key?(:company_name)
1299
+ @compensation_info = args[:compensation_info] if args.key?(:compensation_info)
1300
+ @custom_attributes = args[:custom_attributes] if args.key?(:custom_attributes)
1301
+ @degree_types = args[:degree_types] if args.key?(:degree_types)
1302
+ @department = args[:department] if args.key?(:department)
1303
+ @derived_info = args[:derived_info] if args.key?(:derived_info)
1304
+ @description = args[:description] if args.key?(:description)
1305
+ @employment_types = args[:employment_types] if args.key?(:employment_types)
1306
+ @incentives = args[:incentives] if args.key?(:incentives)
1307
+ @job_benefits = args[:job_benefits] if args.key?(:job_benefits)
1308
+ @job_end_time = args[:job_end_time] if args.key?(:job_end_time)
1309
+ @job_level = args[:job_level] if args.key?(:job_level)
1310
+ @job_start_time = args[:job_start_time] if args.key?(:job_start_time)
1311
+ @language_code = args[:language_code] if args.key?(:language_code)
1312
+ @name = args[:name] if args.key?(:name)
1313
+ @posting_create_time = args[:posting_create_time] if args.key?(:posting_create_time)
1314
+ @posting_expire_time = args[:posting_expire_time] if args.key?(:posting_expire_time)
1315
+ @posting_publish_time = args[:posting_publish_time] if args.key?(:posting_publish_time)
1316
+ @posting_region = args[:posting_region] if args.key?(:posting_region)
1317
+ @posting_update_time = args[:posting_update_time] if args.key?(:posting_update_time)
1318
+ @processing_options = args[:processing_options] if args.key?(:processing_options)
1319
+ @promotion_value = args[:promotion_value] if args.key?(:promotion_value)
1320
+ @qualifications = args[:qualifications] if args.key?(:qualifications)
1321
+ @requisition_id = args[:requisition_id] if args.key?(:requisition_id)
1322
+ @responsibilities = args[:responsibilities] if args.key?(:responsibilities)
1323
+ @title = args[:title] if args.key?(:title)
1324
+ @visibility = args[:visibility] if args.key?(:visibility)
1325
+ end
1326
+ end
1327
+
1328
+ # Output only.
1329
+ # Derived details about the job posting.
1330
+ class JobDerivedInfo
1331
+ include Google::Apis::Core::Hashable
1332
+
1333
+ # Job categories derived from Job.title and Job.description.
1334
+ # Corresponds to the JSON property `jobCategories`
1335
+ # @return [Array<String>]
1336
+ attr_accessor :job_categories
1337
+
1338
+ # Structured locations of the job, resolved from Job.addresses.
1339
+ # locations are exactly matched to Job.addresses in the same
1340
+ # order.
1341
+ # Corresponds to the JSON property `locations`
1342
+ # @return [Array<Google::Apis::JobsV3::Location>]
1343
+ attr_accessor :locations
1344
+
1345
+ def initialize(**args)
1346
+ update!(**args)
1347
+ end
1348
+
1349
+ # Update properties of this object
1350
+ def update!(**args)
1351
+ @job_categories = args[:job_categories] if args.key?(:job_categories)
1352
+ @locations = args[:locations] if args.key?(:locations)
1353
+ end
1354
+ end
1355
+
1356
+ # Input only.
1357
+ # The query required to perform a search query.
1358
+ class JobQuery
1359
+ include Google::Apis::Core::Hashable
1360
+
1361
+ # Input only.
1362
+ # Parameters needed for commute search.
1363
+ # Corresponds to the JSON property `commuteFilter`
1364
+ # @return [Google::Apis::JobsV3::CommuteFilter]
1365
+ attr_accessor :commute_filter
1366
+
1367
+ # Optional.
1368
+ # This filter specifies the exact company display
1369
+ # name of the jobs to search against.
1370
+ # If a value isn't specified, jobs within the search results are
1371
+ # associated with any company.
1372
+ # If multiple values are specified, jobs within the search results may be
1373
+ # associated with any of the specified companies.
1374
+ # At most 20 company display name filters are allowed.
1375
+ # Corresponds to the JSON property `companyDisplayNames`
1376
+ # @return [Array<String>]
1377
+ attr_accessor :company_display_names
1378
+
1379
+ # Optional.
1380
+ # This filter specifies the company entities to search against.
1381
+ # If a value isn't specified, jobs are searched for against all
1382
+ # companies.
1383
+ # If multiple values are specified, jobs are searched against the
1384
+ # companies specified.
1385
+ # The format is "projects/`project_id`/companies/`company_id`", for example,
1386
+ # "projects/api-test-project/companies/foo".
1387
+ # At most 20 company filters are allowed.
1388
+ # Corresponds to the JSON property `companyNames`
1389
+ # @return [Array<String>]
1390
+ attr_accessor :company_names
1391
+
1392
+ # Input only.
1393
+ # Filter on job compensation type and amount.
1394
+ # Corresponds to the JSON property `compensationFilter`
1395
+ # @return [Google::Apis::JobsV3::CompensationFilter]
1396
+ attr_accessor :compensation_filter
1397
+
1398
+ # Optional.
1399
+ # This filter specifies a structured syntax to match against the
1400
+ # Job.custom_attributes marked as `filterable`.
1401
+ # The syntax for this expression is a subset of Google SQL syntax.
1402
+ # Supported operators are: =, !=, <, <=, >, >= where the left of the operator
1403
+ # is a custom field key and the right of the operator is a number or string
1404
+ # (surrounded by quotes) value.
1405
+ # Supported functions are LOWER(<field_name>) to
1406
+ # perform case insensitive match and EMPTY(<field_name>) to filter on the
1407
+ # existence of a key.
1408
+ # Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
1409
+ # nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 50
1410
+ # comparisons/functions are allowed in the expression. The expression
1411
+ # must be < 2000 characters in length.
1412
+ # Sample Query:
1413
+ # (LOWER(driving_license)="class a" OR EMPTY(driving_license)) AND
1414
+ # driving_years > 10
1415
+ # Corresponds to the JSON property `customAttributeFilter`
1416
+ # @return [String]
1417
+ attr_accessor :custom_attribute_filter
1418
+
1419
+ # Optional.
1420
+ # This flag controls the spell-check feature. If false, the
1421
+ # service attempts to correct a misspelled query,
1422
+ # for example, "enginee" is corrected to "engineer".
1423
+ # Defaults to false: a spell check is performed.
1424
+ # Corresponds to the JSON property `disableSpellCheck`
1425
+ # @return [Boolean]
1426
+ attr_accessor :disable_spell_check
1427
+ alias_method :disable_spell_check?, :disable_spell_check
1428
+
1429
+ # Optional.
1430
+ # The employment type filter specifies the employment type of jobs to
1431
+ # search against, such as EmploymentType.FULL_TIME.
1432
+ # If a value is not specified, jobs in the search results includes any
1433
+ # employment type.
1434
+ # If multiple values are specified, jobs in the search results include
1435
+ # any of the specified employment types.
1436
+ # Corresponds to the JSON property `employmentTypes`
1437
+ # @return [Array<String>]
1438
+ attr_accessor :employment_types
1439
+
1440
+ # Optional.
1441
+ # The category filter specifies the categories of jobs to search against.
1442
+ # See Category for more information.
1443
+ # If a value is not specified, jobs from any category are searched against.
1444
+ # If multiple values are specified, jobs from any of the specified
1445
+ # categories are searched against.
1446
+ # Corresponds to the JSON property `jobCategories`
1447
+ # @return [Array<String>]
1448
+ attr_accessor :job_categories
1449
+
1450
+ # Optional.
1451
+ # This filter specifies the locale of jobs to search against,
1452
+ # for example, "en-US".
1453
+ # If a value isn't specified, the search results can contain jobs in any
1454
+ # locale.
1455
+ # Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
1456
+ # For more information, see
1457
+ # [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
1458
+ # At most 10 language code filters are allowed.
1459
+ # Corresponds to the JSON property `languageCodes`
1460
+ # @return [Array<String>]
1461
+ attr_accessor :language_codes
1462
+
1463
+ # Optional.
1464
+ # The location filter specifies geo-regions containing the jobs to
1465
+ # search against. See LocationFilter for more information.
1466
+ # If a location value isn't specified, jobs fitting the other search
1467
+ # criteria are retrieved regardless of where they're located.
1468
+ # If multiple values are specified, jobs are retrieved from any of the
1469
+ # specified locations, and, if different values are specified
1470
+ # for the LocationFilter.distance_in_miles parameter, the maximum
1471
+ # provided distance is used for all locations.
1472
+ # At most 5 location filters are allowed.
1473
+ # Corresponds to the JSON property `locationFilters`
1474
+ # @return [Array<Google::Apis::JobsV3::LocationFilter>]
1475
+ attr_accessor :location_filters
1476
+
1477
+ # Message representing a period of time between two timestamps.
1478
+ # Corresponds to the JSON property `publishTimeRange`
1479
+ # @return [Google::Apis::JobsV3::TimestampRange]
1480
+ attr_accessor :publish_time_range
1481
+
1482
+ # Optional.
1483
+ # The query string that matches against the job title, description, and
1484
+ # location fields.
1485
+ # The maximum number of allowed characters is 255.
1486
+ # Corresponds to the JSON property `query`
1487
+ # @return [String]
1488
+ attr_accessor :query
1489
+
1490
+ def initialize(**args)
1491
+ update!(**args)
1492
+ end
1493
+
1494
+ # Update properties of this object
1495
+ def update!(**args)
1496
+ @commute_filter = args[:commute_filter] if args.key?(:commute_filter)
1497
+ @company_display_names = args[:company_display_names] if args.key?(:company_display_names)
1498
+ @company_names = args[:company_names] if args.key?(:company_names)
1499
+ @compensation_filter = args[:compensation_filter] if args.key?(:compensation_filter)
1500
+ @custom_attribute_filter = args[:custom_attribute_filter] if args.key?(:custom_attribute_filter)
1501
+ @disable_spell_check = args[:disable_spell_check] if args.key?(:disable_spell_check)
1502
+ @employment_types = args[:employment_types] if args.key?(:employment_types)
1503
+ @job_categories = args[:job_categories] if args.key?(:job_categories)
1504
+ @language_codes = args[:language_codes] if args.key?(:language_codes)
1505
+ @location_filters = args[:location_filters] if args.key?(:location_filters)
1506
+ @publish_time_range = args[:publish_time_range] if args.key?(:publish_time_range)
1507
+ @query = args[:query] if args.key?(:query)
1508
+ end
1509
+ end
1510
+
1511
+ # An object representing a latitude/longitude pair. This is expressed as a pair
1512
+ # of doubles representing degrees latitude and degrees longitude. Unless
1513
+ # specified otherwise, this must conform to the
1514
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
1515
+ # standard</a>. Values must be within normalized ranges.
1516
+ class LatLng
1517
+ include Google::Apis::Core::Hashable
1518
+
1519
+ # The latitude in degrees. It must be in the range [-90.0, +90.0].
1520
+ # Corresponds to the JSON property `latitude`
1521
+ # @return [Float]
1522
+ attr_accessor :latitude
1523
+
1524
+ # The longitude in degrees. It must be in the range [-180.0, +180.0].
1525
+ # Corresponds to the JSON property `longitude`
1526
+ # @return [Float]
1527
+ attr_accessor :longitude
1528
+
1529
+ def initialize(**args)
1530
+ update!(**args)
1531
+ end
1532
+
1533
+ # Update properties of this object
1534
+ def update!(**args)
1535
+ @latitude = args[:latitude] if args.key?(:latitude)
1536
+ @longitude = args[:longitude] if args.key?(:longitude)
1537
+ end
1538
+ end
1539
+
1540
+ # Output only.
1541
+ # The List companies response object.
1542
+ class ListCompaniesResponse
1543
+ include Google::Apis::Core::Hashable
1544
+
1545
+ # Companies for the current client.
1546
+ # Corresponds to the JSON property `companies`
1547
+ # @return [Array<Google::Apis::JobsV3::Company>]
1548
+ attr_accessor :companies
1549
+
1550
+ # Output only.
1551
+ # Additional information returned to client, such as debugging information.
1552
+ # Corresponds to the JSON property `metadata`
1553
+ # @return [Google::Apis::JobsV3::ResponseMetadata]
1554
+ attr_accessor :metadata
1555
+
1556
+ # A token to retrieve the next page of results.
1557
+ # Corresponds to the JSON property `nextPageToken`
1558
+ # @return [String]
1559
+ attr_accessor :next_page_token
1560
+
1561
+ def initialize(**args)
1562
+ update!(**args)
1563
+ end
1564
+
1565
+ # Update properties of this object
1566
+ def update!(**args)
1567
+ @companies = args[:companies] if args.key?(:companies)
1568
+ @metadata = args[:metadata] if args.key?(:metadata)
1569
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1570
+ end
1571
+ end
1572
+
1573
+ # Output only.
1574
+ # List jobs response.
1575
+ class ListJobsResponse
1576
+ include Google::Apis::Core::Hashable
1577
+
1578
+ # The Jobs for a given company.
1579
+ # The maximum number of items returned is based on the limit field
1580
+ # provided in the request.
1581
+ # Corresponds to the JSON property `jobs`
1582
+ # @return [Array<Google::Apis::JobsV3::Job>]
1583
+ attr_accessor :jobs
1584
+
1585
+ # Output only.
1586
+ # Additional information returned to client, such as debugging information.
1587
+ # Corresponds to the JSON property `metadata`
1588
+ # @return [Google::Apis::JobsV3::ResponseMetadata]
1589
+ attr_accessor :metadata
1590
+
1591
+ # A token to retrieve the next page of results.
1592
+ # Corresponds to the JSON property `nextPageToken`
1593
+ # @return [String]
1594
+ attr_accessor :next_page_token
1595
+
1596
+ def initialize(**args)
1597
+ update!(**args)
1598
+ end
1599
+
1600
+ # Update properties of this object
1601
+ def update!(**args)
1602
+ @jobs = args[:jobs] if args.key?(:jobs)
1603
+ @metadata = args[:metadata] if args.key?(:metadata)
1604
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1605
+ end
1606
+ end
1607
+
1608
+ # Output only.
1609
+ # A resource that represents a location with full geographic information.
1610
+ class Location
1611
+ include Google::Apis::Core::Hashable
1612
+
1613
+ # An object representing a latitude/longitude pair. This is expressed as a pair
1614
+ # of doubles representing degrees latitude and degrees longitude. Unless
1615
+ # specified otherwise, this must conform to the
1616
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
1617
+ # standard</a>. Values must be within normalized ranges.
1618
+ # Corresponds to the JSON property `latLng`
1619
+ # @return [Google::Apis::JobsV3::LatLng]
1620
+ attr_accessor :lat_lng
1621
+
1622
+ # The type of a location, which corresponds to the address lines field of
1623
+ # PostalAddress. For example, "Downtown, Atlanta, GA, USA" has a type of
1624
+ # LocationType#NEIGHBORHOOD, and "Kansas City, KS, USA" has a type of
1625
+ # LocationType#LOCALITY.
1626
+ # Corresponds to the JSON property `locationType`
1627
+ # @return [String]
1628
+ attr_accessor :location_type
1629
+
1630
+ # Represents a postal address, e.g. for postal delivery or payments addresses.
1631
+ # Given a postal address, a postal service can deliver items to a premise, P.O.
1632
+ # Box or similar.
1633
+ # It is not intended to model geographical locations (roads, towns,
1634
+ # mountains).
1635
+ # In typical usage an address would be created via user input or from importing
1636
+ # existing data, depending on the type of process.
1637
+ # Advice on address input / editing:
1638
+ # - Use an i18n-ready address widget such as
1639
+ # https://github.com/googlei18n/libaddressinput)
1640
+ # - Users should not be presented with UI elements for input or editing of
1641
+ # fields outside countries where that field is used.
1642
+ # For more guidance on how to use this schema, please see:
1643
+ # https://support.google.com/business/answer/6397478
1644
+ # Corresponds to the JSON property `postalAddress`
1645
+ # @return [Google::Apis::JobsV3::PostalAddress]
1646
+ attr_accessor :postal_address
1647
+
1648
+ # Radius in meters of the job location. This value is derived from the
1649
+ # location bounding box in which a circle with the specified radius
1650
+ # centered from LatLng coves the area associated with the job location.
1651
+ # For example, currently, "Mountain View, CA, USA" has a radius of
1652
+ # 6.17 miles.
1653
+ # Corresponds to the JSON property `radiusInMiles`
1654
+ # @return [Float]
1655
+ attr_accessor :radius_in_miles
1656
+
1657
+ def initialize(**args)
1658
+ update!(**args)
1659
+ end
1660
+
1661
+ # Update properties of this object
1662
+ def update!(**args)
1663
+ @lat_lng = args[:lat_lng] if args.key?(:lat_lng)
1664
+ @location_type = args[:location_type] if args.key?(:location_type)
1665
+ @postal_address = args[:postal_address] if args.key?(:postal_address)
1666
+ @radius_in_miles = args[:radius_in_miles] if args.key?(:radius_in_miles)
1667
+ end
1668
+ end
1669
+
1670
+ # Input only.
1671
+ # Geographic region of the search.
1672
+ class LocationFilter
1673
+ include Google::Apis::Core::Hashable
1674
+
1675
+ # Optional.
1676
+ # The address name, such as "Mountain View" or "Bay Area".
1677
+ # Corresponds to the JSON property `address`
1678
+ # @return [String]
1679
+ attr_accessor :address
1680
+
1681
+ # Optional.
1682
+ # The distance_in_miles is applied when the location being searched for is
1683
+ # identified as a city or smaller. When the location being searched for is a
1684
+ # state or larger, this field is ignored.
1685
+ # Corresponds to the JSON property `distanceInMiles`
1686
+ # @return [Float]
1687
+ attr_accessor :distance_in_miles
1688
+
1689
+ # An object representing a latitude/longitude pair. This is expressed as a pair
1690
+ # of doubles representing degrees latitude and degrees longitude. Unless
1691
+ # specified otherwise, this must conform to the
1692
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
1693
+ # standard</a>. Values must be within normalized ranges.
1694
+ # Corresponds to the JSON property `latLng`
1695
+ # @return [Google::Apis::JobsV3::LatLng]
1696
+ attr_accessor :lat_lng
1697
+
1698
+ # Optional.
1699
+ # CLDR region code of the country/region of the address. This is used
1700
+ # to address ambiguity of the user-input location, for example, "Liverpool"
1701
+ # against "Liverpool, NY, US" or "Liverpool, UK".
1702
+ # Set this field if all the jobs to search against are from a same region,
1703
+ # or jobs are world-wide, but the job seeker is from a specific region.
1704
+ # See http://cldr.unicode.org/ and
1705
+ # http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
1706
+ # for details. Example: "CH" for Switzerland.
1707
+ # Corresponds to the JSON property `regionCode`
1708
+ # @return [String]
1709
+ attr_accessor :region_code
1710
+
1711
+ # Optional.
1712
+ # Allows the client to return jobs without a
1713
+ # set location, specifically, telecommuting jobs (telecomuting is considered
1714
+ # by the service as a special location.
1715
+ # Job.posting_region indicates if a job permits telecommuting.
1716
+ # If this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED,
1717
+ # telecommuting jobs are searched, and address and lat_lng are
1718
+ # ignored. If not set or set to
1719
+ # TelecommutePreference.TELECOMMUTE_EXCLUDED, telecommute job are not
1720
+ # searched.
1721
+ # This filter can be used by itself to search exclusively for telecommuting
1722
+ # jobs, or it can be combined with another location
1723
+ # filter to search for a combination of job locations,
1724
+ # such as "Mountain View" or "telecommuting" jobs. However, when used in
1725
+ # combination with other location filters, telecommuting jobs can be
1726
+ # treated as less relevant than other jobs in the search response.
1727
+ # Corresponds to the JSON property `telecommutePreference`
1728
+ # @return [String]
1729
+ attr_accessor :telecommute_preference
1730
+
1731
+ def initialize(**args)
1732
+ update!(**args)
1733
+ end
1734
+
1735
+ # Update properties of this object
1736
+ def update!(**args)
1737
+ @address = args[:address] if args.key?(:address)
1738
+ @distance_in_miles = args[:distance_in_miles] if args.key?(:distance_in_miles)
1739
+ @lat_lng = args[:lat_lng] if args.key?(:lat_lng)
1740
+ @region_code = args[:region_code] if args.key?(:region_code)
1741
+ @telecommute_preference = args[:telecommute_preference] if args.key?(:telecommute_preference)
1742
+ end
1743
+ end
1744
+
1745
+ # Output only.
1746
+ # Job entry with metadata inside SearchJobsResponse.
1747
+ class MatchingJob
1748
+ include Google::Apis::Core::Hashable
1749
+
1750
+ # Output only.
1751
+ # Commute details related to this job.
1752
+ # Corresponds to the JSON property `commuteInfo`
1753
+ # @return [Google::Apis::JobsV3::CommuteInfo]
1754
+ attr_accessor :commute_info
1755
+
1756
+ # A Job resource represents a job posting (also referred to as a "job listing"
1757
+ # or "job requisition"). A job belongs to a Company, which is the hiring
1758
+ # entity responsible for the job.
1759
+ # Corresponds to the JSON property `job`
1760
+ # @return [Google::Apis::JobsV3::Job]
1761
+ attr_accessor :job
1762
+
1763
+ # A summary of the job with core information that's displayed on the search
1764
+ # results listing page.
1765
+ # Corresponds to the JSON property `jobSummary`
1766
+ # @return [String]
1767
+ attr_accessor :job_summary
1768
+
1769
+ # Contains snippets of text from the Job.job_title field most
1770
+ # closely matching a search query's keywords, if available. The matching
1771
+ # query keywords are enclosed in HTML bold tags.
1772
+ # Corresponds to the JSON property `jobTitleSnippet`
1773
+ # @return [String]
1774
+ attr_accessor :job_title_snippet
1775
+
1776
+ # Contains snippets of text from the Job.description and similar
1777
+ # fields that most closely match a search query's keywords, if available.
1778
+ # All HTML tags in the original fields are stripped when returned in this
1779
+ # field, and matching query keywords are enclosed in HTML bold tags.
1780
+ # Corresponds to the JSON property `searchTextSnippet`
1781
+ # @return [String]
1782
+ attr_accessor :search_text_snippet
1783
+
1784
+ def initialize(**args)
1785
+ update!(**args)
1786
+ end
1787
+
1788
+ # Update properties of this object
1789
+ def update!(**args)
1790
+ @commute_info = args[:commute_info] if args.key?(:commute_info)
1791
+ @job = args[:job] if args.key?(:job)
1792
+ @job_summary = args[:job_summary] if args.key?(:job_summary)
1793
+ @job_title_snippet = args[:job_title_snippet] if args.key?(:job_title_snippet)
1794
+ @search_text_snippet = args[:search_text_snippet] if args.key?(:search_text_snippet)
1795
+ end
1796
+ end
1797
+
1798
+ # Represents an amount of money with its currency type.
1799
+ class Money
1800
+ include Google::Apis::Core::Hashable
1801
+
1802
+ # The 3-letter currency code defined in ISO 4217.
1803
+ # Corresponds to the JSON property `currencyCode`
1804
+ # @return [String]
1805
+ attr_accessor :currency_code
1806
+
1807
+ # Number of nano (10^-9) units of the amount.
1808
+ # The value must be between -999,999,999 and +999,999,999 inclusive.
1809
+ # If `units` is positive, `nanos` must be positive or zero.
1810
+ # If `units` is zero, `nanos` can be positive, zero, or negative.
1811
+ # If `units` is negative, `nanos` must be negative or zero.
1812
+ # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
1813
+ # Corresponds to the JSON property `nanos`
1814
+ # @return [Fixnum]
1815
+ attr_accessor :nanos
1816
+
1817
+ # The whole units of the amount.
1818
+ # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
1819
+ # Corresponds to the JSON property `units`
1820
+ # @return [Fixnum]
1821
+ attr_accessor :units
1822
+
1823
+ def initialize(**args)
1824
+ update!(**args)
1825
+ end
1826
+
1827
+ # Update properties of this object
1828
+ def update!(**args)
1829
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
1830
+ @nanos = args[:nanos] if args.key?(:nanos)
1831
+ @units = args[:units] if args.key?(:units)
1832
+ end
1833
+ end
1834
+
1835
+ # Input only.
1836
+ # Use this field to specify bucketing option for the histogram search response.
1837
+ class NumericBucketingOption
1838
+ include Google::Apis::Core::Hashable
1839
+
1840
+ # Required.
1841
+ # Two adjacent values form a histogram bucket. Values should be in
1842
+ # ascending order. For example, if [5, 10, 15] are provided, four buckets are
1843
+ # created: (-inf, 5), 5, 10), [10, 15), [15, inf). At most 20
1844
+ # [buckets_bound is supported.
1845
+ # Corresponds to the JSON property `bucketBounds`
1846
+ # @return [Array<Float>]
1847
+ attr_accessor :bucket_bounds
1848
+
1849
+ # Optional.
1850
+ # If set to true, the histogram result includes minimum/maximum
1851
+ # value of the numeric field.
1852
+ # Corresponds to the JSON property `requiresMinMax`
1853
+ # @return [Boolean]
1854
+ attr_accessor :requires_min_max
1855
+ alias_method :requires_min_max?, :requires_min_max
1856
+
1857
+ def initialize(**args)
1858
+ update!(**args)
1859
+ end
1860
+
1861
+ # Update properties of this object
1862
+ def update!(**args)
1863
+ @bucket_bounds = args[:bucket_bounds] if args.key?(:bucket_bounds)
1864
+ @requires_min_max = args[:requires_min_max] if args.key?(:requires_min_max)
1865
+ end
1866
+ end
1867
+
1868
+ # Output only.
1869
+ # Custom numeric bucketing result.
1870
+ class NumericBucketingResult
1871
+ include Google::Apis::Core::Hashable
1872
+
1873
+ # Count within each bucket. Its size is the length of
1874
+ # NumericBucketingOption.bucket_bounds plus 1.
1875
+ # Corresponds to the JSON property `counts`
1876
+ # @return [Array<Google::Apis::JobsV3::BucketizedCount>]
1877
+ attr_accessor :counts
1878
+
1879
+ # Stores the maximum value of the numeric field. Is populated only if
1880
+ # [NumericBucketingOption.requires_min_max] is set to true.
1881
+ # Corresponds to the JSON property `maxValue`
1882
+ # @return [Float]
1883
+ attr_accessor :max_value
1884
+
1885
+ # Stores the minimum value of the numeric field. Will be populated only if
1886
+ # [NumericBucketingOption.requires_min_max] is set to true.
1887
+ # Corresponds to the JSON property `minValue`
1888
+ # @return [Float]
1889
+ attr_accessor :min_value
1890
+
1891
+ def initialize(**args)
1892
+ update!(**args)
1893
+ end
1894
+
1895
+ # Update properties of this object
1896
+ def update!(**args)
1897
+ @counts = args[:counts] if args.key?(:counts)
1898
+ @max_value = args[:max_value] if args.key?(:max_value)
1899
+ @min_value = args[:min_value] if args.key?(:min_value)
1900
+ end
1901
+ end
1902
+
1903
+ # Represents a postal address, e.g. for postal delivery or payments addresses.
1904
+ # Given a postal address, a postal service can deliver items to a premise, P.O.
1905
+ # Box or similar.
1906
+ # It is not intended to model geographical locations (roads, towns,
1907
+ # mountains).
1908
+ # In typical usage an address would be created via user input or from importing
1909
+ # existing data, depending on the type of process.
1910
+ # Advice on address input / editing:
1911
+ # - Use an i18n-ready address widget such as
1912
+ # https://github.com/googlei18n/libaddressinput)
1913
+ # - Users should not be presented with UI elements for input or editing of
1914
+ # fields outside countries where that field is used.
1915
+ # For more guidance on how to use this schema, please see:
1916
+ # https://support.google.com/business/answer/6397478
1917
+ class PostalAddress
1918
+ include Google::Apis::Core::Hashable
1919
+
1920
+ # Unstructured address lines describing the lower levels of an address.
1921
+ # Because values in address_lines do not have type information and may
1922
+ # sometimes contain multiple values in a single field (e.g.
1923
+ # "Austin, TX"), it is important that the line order is clear. The order of
1924
+ # address lines should be "envelope order" for the country/region of the
1925
+ # address. In places where this can vary (e.g. Japan), address_language is
1926
+ # used to make it explicit (e.g. "ja" for large-to-small ordering and
1927
+ # "ja-Latn" or "en" for small-to-large). This way, the most specific line of
1928
+ # an address can be selected based on the language.
1929
+ # The minimum permitted structural representation of an address consists
1930
+ # of a region_code with all remaining information placed in the
1931
+ # address_lines. It would be possible to format such an address very
1932
+ # approximately without geocoding, but no semantic reasoning could be
1933
+ # made about any of the address components until it was at least
1934
+ # partially resolved.
1935
+ # Creating an address only containing a region_code and address_lines, and
1936
+ # then geocoding is the recommended way to handle completely unstructured
1937
+ # addresses (as opposed to guessing which parts of the address should be
1938
+ # localities or administrative areas).
1939
+ # Corresponds to the JSON property `addressLines`
1940
+ # @return [Array<String>]
1941
+ attr_accessor :address_lines
1942
+
1943
+ # Optional. Highest administrative subdivision which is used for postal
1944
+ # addresses of a country or region.
1945
+ # For example, this can be a state, a province, an oblast, or a prefecture.
1946
+ # Specifically, for Spain this is the province and not the autonomous
1947
+ # community (e.g. "Barcelona" and not "Catalonia").
1948
+ # Many countries don't use an administrative area in postal addresses. E.g.
1949
+ # in Switzerland this should be left unpopulated.
1950
+ # Corresponds to the JSON property `administrativeArea`
1951
+ # @return [String]
1952
+ attr_accessor :administrative_area
1953
+
1954
+ # Optional. BCP-47 language code of the contents of this address (if
1955
+ # known). This is often the UI language of the input form or is expected
1956
+ # to match one of the languages used in the address' country/region, or their
1957
+ # transliterated equivalents.
1958
+ # This can affect formatting in certain countries, but is not critical
1959
+ # to the correctness of the data and will never affect any validation or
1960
+ # other non-formatting related operations.
1961
+ # If this value is not known, it should be omitted (rather than specifying a
1962
+ # possibly incorrect default).
1963
+ # Examples: "zh-Hant", "ja", "ja-Latn", "en".
1964
+ # Corresponds to the JSON property `languageCode`
1965
+ # @return [String]
1966
+ attr_accessor :language_code
1967
+
1968
+ # Optional. Generally refers to the city/town portion of the address.
1969
+ # Examples: US city, IT comune, UK post town.
1970
+ # In regions of the world where localities are not well defined or do not fit
1971
+ # into this structure well, leave locality empty and use address_lines.
1972
+ # Corresponds to the JSON property `locality`
1973
+ # @return [String]
1974
+ attr_accessor :locality
1975
+
1976
+ # Optional. The name of the organization at the address.
1977
+ # Corresponds to the JSON property `organization`
1978
+ # @return [String]
1979
+ attr_accessor :organization
1980
+
1981
+ # Optional. Postal code of the address. Not all countries use or require
1982
+ # postal codes to be present, but where they are used, they may trigger
1983
+ # additional validation with other parts of the address (e.g. state/zip
1984
+ # validation in the U.S.A.).
1985
+ # Corresponds to the JSON property `postalCode`
1986
+ # @return [String]
1987
+ attr_accessor :postal_code
1988
+
1989
+ # Optional. The recipient at the address.
1990
+ # This field may, under certain circumstances, contain multiline information.
1991
+ # For example, it might contain "care of" information.
1992
+ # Corresponds to the JSON property `recipients`
1993
+ # @return [Array<String>]
1994
+ attr_accessor :recipients
1995
+
1996
+ # Required. CLDR region code of the country/region of the address. This
1997
+ # is never inferred and it is up to the user to ensure the value is
1998
+ # correct. See http://cldr.unicode.org/ and
1999
+ # http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
2000
+ # for details. Example: "CH" for Switzerland.
2001
+ # Corresponds to the JSON property `regionCode`
2002
+ # @return [String]
2003
+ attr_accessor :region_code
2004
+
2005
+ # The schema revision of the `PostalAddress`. This must be set to 0, which is
2006
+ # the latest revision.
2007
+ # All new revisions **must** be backward compatible with old revisions.
2008
+ # Corresponds to the JSON property `revision`
2009
+ # @return [Fixnum]
2010
+ attr_accessor :revision
2011
+
2012
+ # Optional. Additional, country-specific, sorting code. This is not used
2013
+ # in most regions. Where it is used, the value is either a string like
2014
+ # "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
2015
+ # alone, representing the "sector code" (Jamaica), "delivery area indicator"
2016
+ # (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
2017
+ # Corresponds to the JSON property `sortingCode`
2018
+ # @return [String]
2019
+ attr_accessor :sorting_code
2020
+
2021
+ # Optional. Sublocality of the address.
2022
+ # For example, this can be neighborhoods, boroughs, districts.
2023
+ # Corresponds to the JSON property `sublocality`
2024
+ # @return [String]
2025
+ attr_accessor :sublocality
2026
+
2027
+ def initialize(**args)
2028
+ update!(**args)
2029
+ end
2030
+
2031
+ # Update properties of this object
2032
+ def update!(**args)
2033
+ @address_lines = args[:address_lines] if args.key?(:address_lines)
2034
+ @administrative_area = args[:administrative_area] if args.key?(:administrative_area)
2035
+ @language_code = args[:language_code] if args.key?(:language_code)
2036
+ @locality = args[:locality] if args.key?(:locality)
2037
+ @organization = args[:organization] if args.key?(:organization)
2038
+ @postal_code = args[:postal_code] if args.key?(:postal_code)
2039
+ @recipients = args[:recipients] if args.key?(:recipients)
2040
+ @region_code = args[:region_code] if args.key?(:region_code)
2041
+ @revision = args[:revision] if args.key?(:revision)
2042
+ @sorting_code = args[:sorting_code] if args.key?(:sorting_code)
2043
+ @sublocality = args[:sublocality] if args.key?(:sublocality)
2044
+ end
2045
+ end
2046
+
2047
+ # Input only.
2048
+ # Options for job processing.
2049
+ class ProcessingOptions
2050
+ include Google::Apis::Core::Hashable
2051
+
2052
+ # Optional.
2053
+ # If set to `true`, the service does not attempt to resolve a
2054
+ # more precise address for the job.
2055
+ # Corresponds to the JSON property `disableStreetAddressResolution`
2056
+ # @return [Boolean]
2057
+ attr_accessor :disable_street_address_resolution
2058
+ alias_method :disable_street_address_resolution?, :disable_street_address_resolution
2059
+
2060
+ # Optional.
2061
+ # Option for job HTML content sanitization. Applied fields are:
2062
+ # * description
2063
+ # * applicationInfo.instruction
2064
+ # * incentives
2065
+ # * qualifications
2066
+ # * responsibilities
2067
+ # HTML tags in these fields may be stripped if sanitiazation is not
2068
+ # disabled.
2069
+ # Defaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.
2070
+ # Corresponds to the JSON property `htmlSanitization`
2071
+ # @return [String]
2072
+ attr_accessor :html_sanitization
2073
+
2074
+ def initialize(**args)
2075
+ update!(**args)
2076
+ end
2077
+
2078
+ # Update properties of this object
2079
+ def update!(**args)
2080
+ @disable_street_address_resolution = args[:disable_street_address_resolution] if args.key?(:disable_street_address_resolution)
2081
+ @html_sanitization = args[:html_sanitization] if args.key?(:html_sanitization)
2082
+ end
2083
+ end
2084
+
2085
+ # Input only.
2086
+ # Meta information related to the job searcher or entity
2087
+ # conducting the job search. This information is used to improve the
2088
+ # performance of the service.
2089
+ class RequestMetadata
2090
+ include Google::Apis::Core::Hashable
2091
+
2092
+ # Device information collected from the job seeker, candidate, or
2093
+ # other entity conducting the job search. Providing this information improves
2094
+ # the quality of the search results across devices.
2095
+ # Corresponds to the JSON property `deviceInfo`
2096
+ # @return [Google::Apis::JobsV3::DeviceInfo]
2097
+ attr_accessor :device_info
2098
+
2099
+ # Required.
2100
+ # The client-defined scope or source of the service call, which typically
2101
+ # is the domain on
2102
+ # which the service has been implemented and is currently being run.
2103
+ # For example, if the service is being run by client <em>Foo, Inc.</em>, on
2104
+ # job board www.foo.com and career site www.bar.com, then this field is
2105
+ # set to "foo.com" for use on the job board, and "bar.com" for use on the
2106
+ # career site.
2107
+ # If this field isn't available for some reason, send "UNKNOWN".
2108
+ # Any improvements to the model for a particular tenant site rely on this
2109
+ # field being set correctly to a domain.
2110
+ # The maximum number of allowed characters is 255.
2111
+ # Corresponds to the JSON property `domain`
2112
+ # @return [String]
2113
+ attr_accessor :domain
2114
+
2115
+ # Required.
2116
+ # A unique session identification string. A session is defined as the
2117
+ # duration of an end user's interaction with the service over a certain
2118
+ # period.
2119
+ # Obfuscate this field for privacy concerns before
2120
+ # providing it to the service.
2121
+ # If this field is not available for some reason, send "UNKNOWN". Note
2122
+ # that any improvements to the model for a particular tenant
2123
+ # site, rely on this field being set correctly to some unique session_id.
2124
+ # The maximum number of allowed characters is 255.
2125
+ # Corresponds to the JSON property `sessionId`
2126
+ # @return [String]
2127
+ attr_accessor :session_id
2128
+
2129
+ # Required.
2130
+ # A unique user identification string, as determined by the client.
2131
+ # To have the strongest positive impact on search quality
2132
+ # make sure the client-level is unique.
2133
+ # Obfuscate this field for privacy concerns before
2134
+ # providing it to the service.
2135
+ # If this field is not available for some reason, send "UNKNOWN". Note
2136
+ # that any improvements to the model for a particular tenant
2137
+ # site, rely on this field being set correctly to a unique user_id.
2138
+ # The maximum number of allowed characters is 255.
2139
+ # Corresponds to the JSON property `userId`
2140
+ # @return [String]
2141
+ attr_accessor :user_id
2142
+
2143
+ def initialize(**args)
2144
+ update!(**args)
2145
+ end
2146
+
2147
+ # Update properties of this object
2148
+ def update!(**args)
2149
+ @device_info = args[:device_info] if args.key?(:device_info)
2150
+ @domain = args[:domain] if args.key?(:domain)
2151
+ @session_id = args[:session_id] if args.key?(:session_id)
2152
+ @user_id = args[:user_id] if args.key?(:user_id)
2153
+ end
2154
+ end
2155
+
2156
+ # Output only.
2157
+ # Additional information returned to client, such as debugging information.
2158
+ class ResponseMetadata
2159
+ include Google::Apis::Core::Hashable
2160
+
2161
+ # A unique id associated with this call.
2162
+ # This id is logged for tracking purposes.
2163
+ # Corresponds to the JSON property `requestId`
2164
+ # @return [String]
2165
+ attr_accessor :request_id
2166
+
2167
+ def initialize(**args)
2168
+ update!(**args)
2169
+ end
2170
+
2171
+ # Update properties of this object
2172
+ def update!(**args)
2173
+ @request_id = args[:request_id] if args.key?(:request_id)
2174
+ end
2175
+ end
2176
+
2177
+ # Input only.
2178
+ # The Request body of the `SearchJobs` call.
2179
+ class SearchJobsRequest
2180
+ include Google::Apis::Core::Hashable
2181
+
2182
+ # Optional.
2183
+ # Controls whether to disable exact keyword match on Job.job_title,
2184
+ # Job.description, Job.company_display_name, Job.locations,
2185
+ # Job.qualifications. When disable keyword match is turned off, a
2186
+ # keyword match returns jobs that do not match given category filters when
2187
+ # there are matching keywords. For example, the query "program manager," a
2188
+ # result is returned even if the job posting has the title "software
2189
+ # developer," which does not fall into "program manager" ontology, but does
2190
+ # have "program manager" appearing in its description.
2191
+ # For queries like "cloud" that does not contain title or
2192
+ # location specific ontology, jobs with "cloud" keyword matches are returned
2193
+ # regardless of this flag's value.
2194
+ # Please use Company.keyword_searchable_custom_fields or
2195
+ # Company.keyword_searchable_custom_attributes if company specific
2196
+ # globally matched custom field/attribute string values is needed. Enabling
2197
+ # keyword match improves recall of subsequent search requests.
2198
+ # Defaults to false.
2199
+ # Corresponds to the JSON property `disableKeywordMatch`
2200
+ # @return [Boolean]
2201
+ attr_accessor :disable_keyword_match
2202
+ alias_method :disable_keyword_match?, :disable_keyword_match
2203
+
2204
+ # Optional.
2205
+ # Controls whether to broaden the search when it produces sparse results.
2206
+ # Broadened queries append results to the end of the matching results
2207
+ # list.
2208
+ # Defaults to false.
2209
+ # Corresponds to the JSON property `enableBroadening`
2210
+ # @return [Boolean]
2211
+ attr_accessor :enable_broadening
2212
+ alias_method :enable_broadening?, :enable_broadening
2213
+
2214
+ # Input only.
2215
+ # Histogram facets to be specified in SearchJobsRequest.
2216
+ # Corresponds to the JSON property `histogramFacets`
2217
+ # @return [Google::Apis::JobsV3::HistogramFacets]
2218
+ attr_accessor :histogram_facets
2219
+
2220
+ # Input only.
2221
+ # The query required to perform a search query.
2222
+ # Corresponds to the JSON property `jobQuery`
2223
+ # @return [Google::Apis::JobsV3::JobQuery]
2224
+ attr_accessor :job_query
2225
+
2226
+ # Optional.
2227
+ # The desired job attributes returned for jobs in the
2228
+ # search response. Defaults to JobView.SMALL if no value is specified.
2229
+ # Corresponds to the JSON property `jobView`
2230
+ # @return [String]
2231
+ attr_accessor :job_view
2232
+
2233
+ # Optional.
2234
+ # An integer that specifies the current offset (that is, starting result
2235
+ # location, amongst the jobs deemed by the API as relevant) in search
2236
+ # results. This field is only considered if page_token is unset.
2237
+ # For example, 0 means to return results starting from the first matching
2238
+ # job, and 10 means to return from the 11th job. This can be used for
2239
+ # pagination, (for example, pageSize = 10 and offset = 10 means to return
2240
+ # from the second page).
2241
+ # Corresponds to the JSON property `offset`
2242
+ # @return [Fixnum]
2243
+ attr_accessor :offset
2244
+
2245
+ # Optional.
2246
+ # The criteria determining how search results are sorted. Default is
2247
+ # "relevance desc".
2248
+ # Supported options are:
2249
+ # * "relevance desc": By relevance descending, as determined by the API
2250
+ # algorithms. Relevance thresholding of query results is only available
2251
+ # with this ordering.
2252
+ # * "posting_publish_time desc": By Job.posting_publish_time
2253
+ # descending.
2254
+ # * "posting_update_time desc": By Job.posting_update_time descending.
2255
+ # * "title": By Job.title ascending.
2256
+ # * "title desc": By Job.title descending.
2257
+ # * "annualized_base_compensation": By job's
2258
+ # CompensationInfo.annualized_base_compensation ascending. If job's
2259
+ # annualized base compensation is unspecified, they are put at the end of
2260
+ # search result.
2261
+ # * "annualized_base_compensation desc": By job's
2262
+ # CompensationInfo.annualized_base_compensation descending. If job's
2263
+ # annualized base compensation is unspecified, they are put at the end of
2264
+ # search result.
2265
+ # * "annualized_total_compensation": By job's
2266
+ # CompensationInfo.annualized_total_compensation ascending. If job's
2267
+ # annualized total compensation is unspecified, they are put at the end
2268
+ # of search result.
2269
+ # * "annualized_total_compensation desc": By job's
2270
+ # CompensationInfo.annualized_total_compensation descending. If job's
2271
+ # annualized total compensation is unspecified, they are put at the end
2272
+ # of search result.
2273
+ # Corresponds to the JSON property `orderBy`
2274
+ # @return [String]
2275
+ attr_accessor :order_by
2276
+
2277
+ # Optional.
2278
+ # A limit on the number of jobs returned in the search results.
2279
+ # Increasing this value above the default value of 10 can increase search
2280
+ # response time. The value can be between 1 and 100.
2281
+ # Corresponds to the JSON property `pageSize`
2282
+ # @return [Fixnum]
2283
+ attr_accessor :page_size
2284
+
2285
+ # Optional.
2286
+ # The token specifying the current offset within
2287
+ # search results. See SearchJobsResponse.next_page_token for
2288
+ # an explanation of how to obtain the next set of query results.
2289
+ # Corresponds to the JSON property `pageToken`
2290
+ # @return [String]
2291
+ attr_accessor :page_token
2292
+
2293
+ # Input only.
2294
+ # Meta information related to the job searcher or entity
2295
+ # conducting the job search. This information is used to improve the
2296
+ # performance of the service.
2297
+ # Corresponds to the JSON property `requestMetadata`
2298
+ # @return [Google::Apis::JobsV3::RequestMetadata]
2299
+ attr_accessor :request_metadata
2300
+
2301
+ # Optional.
2302
+ # Controls if the search job request requires the return of a precise
2303
+ # count of the first 300 results. Setting this to `true` ensures
2304
+ # consistency in the number of results per page. Best practice is to set this
2305
+ # value to true if a client allows users to jump directly to a
2306
+ # non-sequential search results page.
2307
+ # Enabling this flag may adversely impact performance.
2308
+ # Defaults to false.
2309
+ # Corresponds to the JSON property `requirePreciseResultSize`
2310
+ # @return [Boolean]
2311
+ attr_accessor :require_precise_result_size
2312
+ alias_method :require_precise_result_size?, :require_precise_result_size
2313
+
2314
+ # Optional.
2315
+ # Mode of a search.
2316
+ # Defaults to SearchMode.JOB_SEARCH.
2317
+ # Corresponds to the JSON property `searchMode`
2318
+ # @return [String]
2319
+ attr_accessor :search_mode
2320
+
2321
+ def initialize(**args)
2322
+ update!(**args)
2323
+ end
2324
+
2325
+ # Update properties of this object
2326
+ def update!(**args)
2327
+ @disable_keyword_match = args[:disable_keyword_match] if args.key?(:disable_keyword_match)
2328
+ @enable_broadening = args[:enable_broadening] if args.key?(:enable_broadening)
2329
+ @histogram_facets = args[:histogram_facets] if args.key?(:histogram_facets)
2330
+ @job_query = args[:job_query] if args.key?(:job_query)
2331
+ @job_view = args[:job_view] if args.key?(:job_view)
2332
+ @offset = args[:offset] if args.key?(:offset)
2333
+ @order_by = args[:order_by] if args.key?(:order_by)
2334
+ @page_size = args[:page_size] if args.key?(:page_size)
2335
+ @page_token = args[:page_token] if args.key?(:page_token)
2336
+ @request_metadata = args[:request_metadata] if args.key?(:request_metadata)
2337
+ @require_precise_result_size = args[:require_precise_result_size] if args.key?(:require_precise_result_size)
2338
+ @search_mode = args[:search_mode] if args.key?(:search_mode)
2339
+ end
2340
+ end
2341
+
2342
+ # Output only.
2343
+ # Response for SearchJob method.
2344
+ class SearchJobsResponse
2345
+ include Google::Apis::Core::Hashable
2346
+
2347
+ # If query broadening is enabled, we may append additional results from the
2348
+ # broadened query. This number indicates how many of the jobs returned in the
2349
+ # jobs field are from the broadened query. These results are always at the
2350
+ # end of the jobs list. In particular, a value of 0, or if the field isn't
2351
+ # set, all the jobs in the jobs list are from the original
2352
+ # (without broadening) query. If this field is non-zero, subsequent requests
2353
+ # with offset after this result set should contain all broadened results.
2354
+ # Corresponds to the JSON property `broadenedQueryJobsCount`
2355
+ # @return [Fixnum]
2356
+ attr_accessor :broadened_query_jobs_count
2357
+
2358
+ # An estimation of the number of jobs that match the specified query.
2359
+ # This number is not guaranteed to be accurate. For accurate results,
2360
+ # see enable_precise_result_size.
2361
+ # Corresponds to the JSON property `estimatedTotalSize`
2362
+ # @return [Fixnum]
2363
+ attr_accessor :estimated_total_size
2364
+
2365
+ # Output only.
2366
+ # Histogram results that match HistogramFacets specified in
2367
+ # SearchJobsRequest.
2368
+ # Corresponds to the JSON property `histogramResults`
2369
+ # @return [Google::Apis::JobsV3::HistogramResults]
2370
+ attr_accessor :histogram_results
2371
+
2372
+ # The location filters that the service applied to the specified query. If
2373
+ # any filters are lat-lng based, the JobLocation.location_type is
2374
+ # JobLocation.LocationType#LOCATION_TYPE_UNSPECIFIED.
2375
+ # Corresponds to the JSON property `locationFilters`
2376
+ # @return [Array<Google::Apis::JobsV3::Location>]
2377
+ attr_accessor :location_filters
2378
+
2379
+ # The Job entities that match the specified SearchJobsRequest.
2380
+ # Corresponds to the JSON property `matchingJobs`
2381
+ # @return [Array<Google::Apis::JobsV3::MatchingJob>]
2382
+ attr_accessor :matching_jobs
2383
+
2384
+ # Output only.
2385
+ # Additional information returned to client, such as debugging information.
2386
+ # Corresponds to the JSON property `metadata`
2387
+ # @return [Google::Apis::JobsV3::ResponseMetadata]
2388
+ attr_accessor :metadata
2389
+
2390
+ # The token that specifies the starting position of the next page of results.
2391
+ # This field is empty if there are no more results.
2392
+ # Corresponds to the JSON property `nextPageToken`
2393
+ # @return [String]
2394
+ attr_accessor :next_page_token
2395
+
2396
+ # Output only.
2397
+ # Spell check result.
2398
+ # Corresponds to the JSON property `spellCorrection`
2399
+ # @return [Google::Apis::JobsV3::SpellingCorrection]
2400
+ attr_accessor :spell_correction
2401
+
2402
+ # The precise result count, which is available only if the client set
2403
+ # enable_precise_result_size to `true` or if the response
2404
+ # is the last page of results. Otherwise, the value will be `-1`.
2405
+ # Corresponds to the JSON property `totalSize`
2406
+ # @return [Fixnum]
2407
+ attr_accessor :total_size
2408
+
2409
+ def initialize(**args)
2410
+ update!(**args)
2411
+ end
2412
+
2413
+ # Update properties of this object
2414
+ def update!(**args)
2415
+ @broadened_query_jobs_count = args[:broadened_query_jobs_count] if args.key?(:broadened_query_jobs_count)
2416
+ @estimated_total_size = args[:estimated_total_size] if args.key?(:estimated_total_size)
2417
+ @histogram_results = args[:histogram_results] if args.key?(:histogram_results)
2418
+ @location_filters = args[:location_filters] if args.key?(:location_filters)
2419
+ @matching_jobs = args[:matching_jobs] if args.key?(:matching_jobs)
2420
+ @metadata = args[:metadata] if args.key?(:metadata)
2421
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2422
+ @spell_correction = args[:spell_correction] if args.key?(:spell_correction)
2423
+ @total_size = args[:total_size] if args.key?(:total_size)
2424
+ end
2425
+ end
2426
+
2427
+ # Output only.
2428
+ # Spell check result.
2429
+ class SpellingCorrection
2430
+ include Google::Apis::Core::Hashable
2431
+
2432
+ # Indicates if the query was corrected by the spell checker.
2433
+ # Corresponds to the JSON property `corrected`
2434
+ # @return [Boolean]
2435
+ attr_accessor :corrected
2436
+ alias_method :corrected?, :corrected
2437
+
2438
+ # Correction output consisting of the corrected keyword string.
2439
+ # Corresponds to the JSON property `correctedText`
2440
+ # @return [String]
2441
+ attr_accessor :corrected_text
2442
+
2443
+ def initialize(**args)
2444
+ update!(**args)
2445
+ end
2446
+
2447
+ # Update properties of this object
2448
+ def update!(**args)
2449
+ @corrected = args[:corrected] if args.key?(:corrected)
2450
+ @corrected_text = args[:corrected_text] if args.key?(:corrected_text)
2451
+ end
2452
+ end
2453
+
2454
+ # Represents a time of day. The date and time zone are either not significant
2455
+ # or are specified elsewhere. An API may choose to allow leap seconds. Related
2456
+ # types are google.type.Date and `google.protobuf.Timestamp`.
2457
+ class TimeOfDay
2458
+ include Google::Apis::Core::Hashable
2459
+
2460
+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2461
+ # to allow the value "24:00:00" for scenarios like business closing time.
2462
+ # Corresponds to the JSON property `hours`
2463
+ # @return [Fixnum]
2464
+ attr_accessor :hours
2465
+
2466
+ # Minutes of hour of day. Must be from 0 to 59.
2467
+ # Corresponds to the JSON property `minutes`
2468
+ # @return [Fixnum]
2469
+ attr_accessor :minutes
2470
+
2471
+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2472
+ # Corresponds to the JSON property `nanos`
2473
+ # @return [Fixnum]
2474
+ attr_accessor :nanos
2475
+
2476
+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2477
+ # allow the value 60 if it allows leap-seconds.
2478
+ # Corresponds to the JSON property `seconds`
2479
+ # @return [Fixnum]
2480
+ attr_accessor :seconds
2481
+
2482
+ def initialize(**args)
2483
+ update!(**args)
2484
+ end
2485
+
2486
+ # Update properties of this object
2487
+ def update!(**args)
2488
+ @hours = args[:hours] if args.key?(:hours)
2489
+ @minutes = args[:minutes] if args.key?(:minutes)
2490
+ @nanos = args[:nanos] if args.key?(:nanos)
2491
+ @seconds = args[:seconds] if args.key?(:seconds)
2492
+ end
2493
+ end
2494
+
2495
+ # Message representing a period of time between two timestamps.
2496
+ class TimestampRange
2497
+ include Google::Apis::Core::Hashable
2498
+
2499
+ # End of the period.
2500
+ # Corresponds to the JSON property `endTime`
2501
+ # @return [String]
2502
+ attr_accessor :end_time
2503
+
2504
+ # Begin of the period.
2505
+ # Corresponds to the JSON property `startTime`
2506
+ # @return [String]
2507
+ attr_accessor :start_time
2508
+
2509
+ def initialize(**args)
2510
+ update!(**args)
2511
+ end
2512
+
2513
+ # Update properties of this object
2514
+ def update!(**args)
2515
+ @end_time = args[:end_time] if args.key?(:end_time)
2516
+ @start_time = args[:start_time] if args.key?(:start_time)
2517
+ end
2518
+ end
2519
+
2520
+ # Input only.
2521
+ # Request for updating a specified company.
2522
+ class UpdateCompanyRequest
2523
+ include Google::Apis::Core::Hashable
2524
+
2525
+ # A Company resource represents a company in the service. A company is the
2526
+ # entity that owns job postings, that is, the hiring entity responsible for
2527
+ # employing applicants for the job position.
2528
+ # Corresponds to the JSON property `company`
2529
+ # @return [Google::Apis::JobsV3::Company]
2530
+ attr_accessor :company
2531
+
2532
+ # Optional but strongly recommended for the best service
2533
+ # experience.
2534
+ # If update_mask is provided, only the specified fields in
2535
+ # company are updated. Otherwise all the fields are updated.
2536
+ # A field mask to specify the company fields to be updated. Only
2537
+ # top level fields of Company are supported.
2538
+ # Corresponds to the JSON property `updateMask`
2539
+ # @return [String]
2540
+ attr_accessor :update_mask
2541
+
2542
+ def initialize(**args)
2543
+ update!(**args)
2544
+ end
2545
+
2546
+ # Update properties of this object
2547
+ def update!(**args)
2548
+ @company = args[:company] if args.key?(:company)
2549
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
2550
+ end
2551
+ end
2552
+
2553
+ # Input only.
2554
+ # Update job request.
2555
+ class UpdateJobRequest
2556
+ include Google::Apis::Core::Hashable
2557
+
2558
+ # A Job resource represents a job posting (also referred to as a "job listing"
2559
+ # or "job requisition"). A job belongs to a Company, which is the hiring
2560
+ # entity responsible for the job.
2561
+ # Corresponds to the JSON property `job`
2562
+ # @return [Google::Apis::JobsV3::Job]
2563
+ attr_accessor :job
2564
+
2565
+ # Optional but strongly recommended to be provided for the best service
2566
+ # experience.
2567
+ # If update_mask is provided, only the specified fields in
2568
+ # job are updated. Otherwise all the fields are updated.
2569
+ # A field mask to restrict the fields that are updated. Only
2570
+ # top level fields of Job are supported.
2571
+ # Corresponds to the JSON property `updateMask`
2572
+ # @return [String]
2573
+ attr_accessor :update_mask
2574
+
2575
+ def initialize(**args)
2576
+ update!(**args)
2577
+ end
2578
+
2579
+ # Update properties of this object
2580
+ def update!(**args)
2581
+ @job = args[:job] if args.key?(:job)
2582
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
2583
+ end
2584
+ end
2585
+ end
2586
+ end
2587
+ end