google-api-client 0.24.0 → 0.24.1

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