google-api-client 0.23.5 → 0.23.6

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