1// Copyright 2020 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package jobs provides access to the Cloud Talent Solution API.
8//
9// For product documentation, see: https://cloud.google.com/talent-solution/job-search/docs/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/jobs/v2"
16//   ...
17//   ctx := context.Background()
18//   jobsService, err := jobs.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   jobsService, err := jobs.NewService(ctx, option.WithScopes(jobs.JobsScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   jobsService, err := jobs.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   jobsService, err := jobs.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package jobs // import "google.golang.org/api/jobs/v2"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "jobs:v2"
79const apiName = "jobs"
80const apiVersion = "v2"
81const basePath = "https://jobs.googleapis.com/"
82const mtlsBasePath = "https://jobs.mtls.googleapis.com/"
83
84// OAuth2 scopes used by this API.
85const (
86	// View and manage your data across Google Cloud Platform services
87	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
88
89	// Manage job postings
90	JobsScope = "https://www.googleapis.com/auth/jobs"
91)
92
93// NewService creates a new Service.
94func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
95	scopesOption := option.WithScopes(
96		"https://www.googleapis.com/auth/cloud-platform",
97		"https://www.googleapis.com/auth/jobs",
98	)
99	// NOTE: prepend, so we don't override user-specified scopes.
100	opts = append([]option.ClientOption{scopesOption}, opts...)
101	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
102	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
103	client, endpoint, err := htransport.NewClient(ctx, opts...)
104	if err != nil {
105		return nil, err
106	}
107	s, err := New(client)
108	if err != nil {
109		return nil, err
110	}
111	if endpoint != "" {
112		s.BasePath = endpoint
113	}
114	return s, nil
115}
116
117// New creates a new Service. It uses the provided http.Client for requests.
118//
119// Deprecated: please use NewService instead.
120// To provide a custom HTTP client, use option.WithHTTPClient.
121// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
122func New(client *http.Client) (*Service, error) {
123	if client == nil {
124		return nil, errors.New("client is nil")
125	}
126	s := &Service{client: client, BasePath: basePath}
127	s.Companies = NewCompaniesService(s)
128	s.Jobs = NewJobsService(s)
129	s.V2 = NewV2Service(s)
130	return s, nil
131}
132
133type Service struct {
134	client    *http.Client
135	BasePath  string // API endpoint base URL
136	UserAgent string // optional additional User-Agent fragment
137
138	Companies *CompaniesService
139
140	Jobs *JobsService
141
142	V2 *V2Service
143}
144
145func (s *Service) userAgent() string {
146	if s.UserAgent == "" {
147		return googleapi.UserAgent
148	}
149	return googleapi.UserAgent + " " + s.UserAgent
150}
151
152func NewCompaniesService(s *Service) *CompaniesService {
153	rs := &CompaniesService{s: s}
154	rs.Jobs = NewCompaniesJobsService(s)
155	return rs
156}
157
158type CompaniesService struct {
159	s *Service
160
161	Jobs *CompaniesJobsService
162}
163
164func NewCompaniesJobsService(s *Service) *CompaniesJobsService {
165	rs := &CompaniesJobsService{s: s}
166	return rs
167}
168
169type CompaniesJobsService struct {
170	s *Service
171}
172
173func NewJobsService(s *Service) *JobsService {
174	rs := &JobsService{s: s}
175	return rs
176}
177
178type JobsService struct {
179	s *Service
180}
181
182func NewV2Service(s *Service) *V2Service {
183	rs := &V2Service{s: s}
184	return rs
185}
186
187type V2Service struct {
188	s *Service
189}
190
191// BatchDeleteJobsRequest: Input only. Batch delete jobs request.
192type BatchDeleteJobsRequest struct {
193	// Filter: Required. The filter string specifies the jobs to be deleted.
194	// Supported operator: =, AND The fields eligible for filtering are: *
195	// `companyName` (Required) * `requisitionId` (Required) Sample Query:
196	// companyName = "companies/123" AND requisitionId = "req-1"
197	Filter string `json:"filter,omitempty"`
198
199	// ForceSendFields is a list of field names (e.g. "Filter") to
200	// unconditionally include in API requests. By default, fields with
201	// empty values are omitted from API requests. However, any non-pointer,
202	// non-interface field appearing in ForceSendFields will be sent to the
203	// server regardless of whether the field is empty or not. This may be
204	// used to include empty fields in Patch requests.
205	ForceSendFields []string `json:"-"`
206
207	// NullFields is a list of field names (e.g. "Filter") to include in API
208	// requests with the JSON null value. By default, fields with empty
209	// values are omitted from API requests. However, any field with an
210	// empty value appearing in NullFields will be sent to the server as
211	// null. It is an error if a field in this list has a non-empty value.
212	// This may be used to include null fields in Patch requests.
213	NullFields []string `json:"-"`
214}
215
216func (s *BatchDeleteJobsRequest) MarshalJSON() ([]byte, error) {
217	type NoMethod BatchDeleteJobsRequest
218	raw := NoMethod(*s)
219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
220}
221
222// BucketRange: Represents starting and ending value of a range in
223// double.
224type BucketRange struct {
225	// From: Starting value of the bucket range.
226	From float64 `json:"from,omitempty"`
227
228	// To: Ending value of the bucket range.
229	To float64 `json:"to,omitempty"`
230
231	// ForceSendFields is a list of field names (e.g. "From") to
232	// unconditionally include in API requests. By default, fields with
233	// empty values are omitted from API requests. However, any non-pointer,
234	// non-interface field appearing in ForceSendFields will be sent to the
235	// server regardless of whether the field is empty or not. This may be
236	// used to include empty fields in Patch requests.
237	ForceSendFields []string `json:"-"`
238
239	// NullFields is a list of field names (e.g. "From") to include in API
240	// requests with the JSON null value. By default, fields with empty
241	// values are omitted from API requests. However, any field with an
242	// empty value appearing in NullFields will be sent to the server as
243	// null. It is an error if a field in this list has a non-empty value.
244	// This may be used to include null fields in Patch requests.
245	NullFields []string `json:"-"`
246}
247
248func (s *BucketRange) MarshalJSON() ([]byte, error) {
249	type NoMethod BucketRange
250	raw := NoMethod(*s)
251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
252}
253
254func (s *BucketRange) UnmarshalJSON(data []byte) error {
255	type NoMethod BucketRange
256	var s1 struct {
257		From gensupport.JSONFloat64 `json:"from"`
258		To   gensupport.JSONFloat64 `json:"to"`
259		*NoMethod
260	}
261	s1.NoMethod = (*NoMethod)(s)
262	if err := json.Unmarshal(data, &s1); err != nil {
263		return err
264	}
265	s.From = float64(s1.From)
266	s.To = float64(s1.To)
267	return nil
268}
269
270// BucketizedCount: Represents count of jobs within one bucket.
271type BucketizedCount struct {
272	// Count: Number of jobs whose numeric field value fall into `range`.
273	Count int64 `json:"count,omitempty"`
274
275	// Range: Bucket range on which histogram was performed for the numeric
276	// field, that is, the count represents number of jobs in this range.
277	Range *BucketRange `json:"range,omitempty"`
278
279	// ForceSendFields is a list of field names (e.g. "Count") to
280	// unconditionally include in API requests. By default, fields with
281	// empty values are omitted from API requests. However, any non-pointer,
282	// non-interface field appearing in ForceSendFields will be sent to the
283	// server regardless of whether the field is empty or not. This may be
284	// used to include empty fields in Patch requests.
285	ForceSendFields []string `json:"-"`
286
287	// NullFields is a list of field names (e.g. "Count") to include in API
288	// requests with the JSON null value. By default, fields with empty
289	// values are omitted from API requests. However, any field with an
290	// empty value appearing in NullFields will be sent to the server as
291	// null. It is an error if a field in this list has a non-empty value.
292	// This may be used to include null fields in Patch requests.
293	NullFields []string `json:"-"`
294}
295
296func (s *BucketizedCount) MarshalJSON() ([]byte, error) {
297	type NoMethod BucketizedCount
298	raw := NoMethod(*s)
299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
300}
301
302// CommuteInfo: Output only. Commute details related to this job.
303type CommuteInfo struct {
304	// JobLocation: Location used as the destination in the commute
305	// calculation.
306	JobLocation *JobLocation `json:"jobLocation,omitempty"`
307
308	// TravelDuration: The number of seconds required to travel to the job
309	// location from the query location. A duration of 0 seconds indicates
310	// that the job is not reachable within the requested duration, but was
311	// returned as part of an expanded query.
312	TravelDuration string `json:"travelDuration,omitempty"`
313
314	// ForceSendFields is a list of field names (e.g. "JobLocation") to
315	// unconditionally include in API requests. By default, fields with
316	// empty values are omitted from API requests. However, any non-pointer,
317	// non-interface field appearing in ForceSendFields will be sent to the
318	// server regardless of whether the field is empty or not. This may be
319	// used to include empty fields in Patch requests.
320	ForceSendFields []string `json:"-"`
321
322	// NullFields is a list of field names (e.g. "JobLocation") to include
323	// in API requests with the JSON null value. By default, fields with
324	// empty values are omitted from API requests. However, any field with
325	// an empty value appearing in NullFields will be sent to the server as
326	// null. It is an error if a field in this list has a non-empty value.
327	// This may be used to include null fields in Patch requests.
328	NullFields []string `json:"-"`
329}
330
331func (s *CommuteInfo) MarshalJSON() ([]byte, error) {
332	type NoMethod CommuteInfo
333	raw := NoMethod(*s)
334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
335}
336
337// CommutePreference: Input only. Parameters needed for commute search.
338type CommutePreference struct {
339	// AllowNonStreetLevelAddress: Optional. If `true`, jobs without street
340	// level addresses may also be returned. For city level addresses, the
341	// city center is used. For state and coarser level addresses, text
342	// matching is used. If this field is set to `false` or is not
343	// specified, only jobs that include street level addresses will be
344	// returned by commute search.
345	AllowNonStreetLevelAddress bool `json:"allowNonStreetLevelAddress,omitempty"`
346
347	// DepartureHourLocal: Optional. The departure hour to use to calculate
348	// traffic impact. Accepts an integer between 0 and 23, representing the
349	// hour in the time zone of the start_location. Must not be present if
350	// road_traffic is specified.
351	DepartureHourLocal int64 `json:"departureHourLocal,omitempty"`
352
353	// Method: Required. The method of transportation for which to calculate
354	// the commute time.
355	//
356	// Possible values:
357	//   "COMMUTE_METHOD_UNSPECIFIED" - Commute method is not specified.
358	//   "DRIVING" - Commute time is calculated based on driving time.
359	//   "TRANSIT" - Commute time is calculated based on public transit
360	// including bus, metro, subway, etc.
361	Method string `json:"method,omitempty"`
362
363	// RoadTraffic: Optional. Specifies the traffic density to use when
364	// calculating commute time. Must not be present if departure_hour_local
365	// is specified.
366	//
367	// Possible values:
368	//   "ROAD_TRAFFIC_UNSPECIFIED" - Road traffic situation is not
369	// specified.
370	//   "TRAFFIC_FREE" - Optimal commute time without considering any
371	// traffic impact.
372	//   "BUSY_HOUR" - Commute time calculation takes in account the peak
373	// traffic impact.
374	RoadTraffic string `json:"roadTraffic,omitempty"`
375
376	// StartLocation: Required. The latitude and longitude of the location
377	// from which to calculate the commute time.
378	StartLocation *LatLng `json:"startLocation,omitempty"`
379
380	// TravelTime: Required. The maximum travel time in seconds. The maximum
381	// allowed value is `3600s` (one hour). Format is `123s`.
382	TravelTime string `json:"travelTime,omitempty"`
383
384	// ForceSendFields is a list of field names (e.g.
385	// "AllowNonStreetLevelAddress") to unconditionally include in API
386	// requests. By default, fields with empty values are omitted from API
387	// requests. However, any non-pointer, non-interface field appearing in
388	// ForceSendFields will be sent to the server regardless of whether the
389	// field is empty or not. This may be used to include empty fields in
390	// Patch requests.
391	ForceSendFields []string `json:"-"`
392
393	// NullFields is a list of field names (e.g.
394	// "AllowNonStreetLevelAddress") to include in API requests with the
395	// JSON null value. By default, fields with empty values are omitted
396	// from API requests. However, any field with an empty value appearing
397	// in NullFields will be sent to the server as null. It is an error if a
398	// field in this list has a non-empty value. This may be used to include
399	// null fields in Patch requests.
400	NullFields []string `json:"-"`
401}
402
403func (s *CommutePreference) MarshalJSON() ([]byte, error) {
404	type NoMethod CommutePreference
405	raw := NoMethod(*s)
406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
407}
408
409// Company: A Company resource represents a company in the service. A
410// company is the entity that owns job listings, that is, the hiring
411// entity responsible for employing applicants for the job position.
412type Company struct {
413	// CareerPageLink: Optional. The URL to employer's career site or
414	// careers page on the employer's web site.
415	CareerPageLink string `json:"careerPageLink,omitempty"`
416
417	// CompanyInfoSources: Optional. Identifiers external to the application
418	// that help to further identify the employer.
419	CompanyInfoSources []*CompanyInfoSource `json:"companyInfoSources,omitempty"`
420
421	// CompanySize: Optional. The employer's company size.
422	//
423	// Possible values:
424	//   "COMPANY_SIZE_UNSPECIFIED" - Default value if the size is not
425	// specified.
426	//   "MINI" - The company has less than 50 employees.
427	//   "SMALL" - The company has between 50 and 99 employees.
428	//   "SMEDIUM" - The company has between 100 and 499 employees.
429	//   "MEDIUM" - The company has between 500 and 999 employees.
430	//   "BIG" - The company has between 1,000 and 4,999 employees.
431	//   "BIGGER" - The company has between 5,000 and 9,999 employees.
432	//   "GIANT" - The company has 10,000 or more employees.
433	CompanySize string `json:"companySize,omitempty"`
434
435	// DisableLocationOptimization: Deprecated. Do not use this field.
436	// Optional. This field is no longer used. Any value set to it is
437	// ignored.
438	DisableLocationOptimization bool `json:"disableLocationOptimization,omitempty"`
439
440	// DisplayName: Required. The name of the employer to be displayed with
441	// the job, for example, "Google, LLC.".
442	DisplayName string `json:"displayName,omitempty"`
443
444	// DistributorBillingCompanyId: Optional. The unique company identifier
445	// provided by the client to identify an employer for billing purposes.
446	// Recommended practice is to use the distributor_company_id. Defaults
447	// to same value as distributor_company_id when a value is not provided.
448	DistributorBillingCompanyId string `json:"distributorBillingCompanyId,omitempty"`
449
450	// DistributorCompanyId: Required. A client's company identifier, used
451	// to uniquely identify the company. If an employer has a subsidiary or
452	// sub-brand, such as "Alphabet" and "Google", which the client wishes
453	// to use as the company displayed on the job. Best practice is to
454	// create a distinct company identifier for each distinct brand
455	// displayed. The maximum number of allowed characters is 255.
456	DistributorCompanyId string `json:"distributorCompanyId,omitempty"`
457
458	// EeoText: Optional. Equal Employment Opportunity legal disclaimer text
459	// to be associated with all jobs, and typically to be displayed in all
460	// roles. The maximum number of allowed characters is 500.
461	EeoText string `json:"eeoText,omitempty"`
462
463	// HiringAgency: Optional. Set to true if it is the hiring agency that
464	// post jobs for other employers. Defaults to false if not provided.
465	HiringAgency bool `json:"hiringAgency,omitempty"`
466
467	// HqLocation: Optional. The street address of the company's main
468	// headquarters, which may be different from the job location. The
469	// service attempts to geolocate the provided address, and populates a
470	// more specific location wherever possible in
471	// structured_company_hq_location.
472	HqLocation string `json:"hqLocation,omitempty"`
473
474	// ImageUrl: Optional. A URL that hosts the employer's company logo. If
475	// provided, the logo image should be squared at 80x80 pixels. The url
476	// must be a Google Photos or Google Album url. Only images in these
477	// Google sub-domains are accepted.
478	ImageUrl string `json:"imageUrl,omitempty"`
479
480	// KeywordSearchableCustomAttributes: Optional. A list of keys of
481	// filterable Job.custom_attributes, whose corresponding `string_values`
482	// are used in keyword search. Jobs with `string_values` under these
483	// specified field keys are returned if any of the values matches the
484	// search keyword. Custom field values with parenthesis, brackets and
485	// special symbols might not be properly searchable, and those keyword
486	// queries need to be surrounded by quotes.
487	KeywordSearchableCustomAttributes []string `json:"keywordSearchableCustomAttributes,omitempty"`
488
489	// KeywordSearchableCustomFields: Deprecated. Use
490	// keyword_searchable_custom_attributes instead. Optional. A list of
491	// filterable custom fields that should be used in keyword search. The
492	// jobs of this company are returned if any of these custom fields
493	// matches the search keyword. Custom field values with parenthesis,
494	// brackets and special symbols might not be properly searchable, and
495	// those keyword queries need to be surrounded by quotes.
496	KeywordSearchableCustomFields []int64 `json:"keywordSearchableCustomFields,omitempty"`
497
498	// Name: Required during company update. The resource name for a
499	// company. This is generated by the service when a company is created,
500	// for example, "companies/0000aaaa-1111-bbbb-2222-cccc3333dddd".
501	Name string `json:"name,omitempty"`
502
503	// StructuredCompanyHqLocation: Output only. A structured headquarters
504	// location of the company, resolved from hq_location if possible.
505	StructuredCompanyHqLocation *JobLocation `json:"structuredCompanyHqLocation,omitempty"`
506
507	// Suspended: Output only. Indicates whether a company is flagged to be
508	// suspended from public availability by the service when job content
509	// appears suspicious, abusive, or spammy.
510	Suspended bool `json:"suspended,omitempty"`
511
512	// Title: Deprecated. Use display_name instead. Required. The name of
513	// the employer to be displayed with the job, for example, "Google,
514	// LLC.".
515	Title string `json:"title,omitempty"`
516
517	// Website: Optional. The URL representing the company's primary web
518	// site or home page, such as, "www.google.com".
519	Website string `json:"website,omitempty"`
520
521	// ServerResponse contains the HTTP response code and headers from the
522	// server.
523	googleapi.ServerResponse `json:"-"`
524
525	// ForceSendFields is a list of field names (e.g. "CareerPageLink") to
526	// unconditionally include in API requests. By default, fields with
527	// empty values are omitted from API requests. However, any non-pointer,
528	// non-interface field appearing in ForceSendFields will be sent to the
529	// server regardless of whether the field is empty or not. This may be
530	// used to include empty fields in Patch requests.
531	ForceSendFields []string `json:"-"`
532
533	// NullFields is a list of field names (e.g. "CareerPageLink") to
534	// include in API requests with the JSON null value. By default, fields
535	// with empty values are omitted from API requests. However, any field
536	// with an empty value appearing in NullFields will be sent to the
537	// server as null. It is an error if a field in this list has a
538	// non-empty value. This may be used to include null fields in Patch
539	// requests.
540	NullFields []string `json:"-"`
541}
542
543func (s *Company) MarshalJSON() ([]byte, error) {
544	type NoMethod Company
545	raw := NoMethod(*s)
546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
547}
548
549// CompanyInfoSource: A resource that represents an external Google
550// identifier for a company, for example, a Google+ business page or a
551// Google Maps business page. For unsupported types, use
552// `unknown_type_id`.
553type CompanyInfoSource struct {
554	// FreebaseMid: Optional. The Google's Knowledge Graph value for the
555	// employer's company.
556	FreebaseMid string `json:"freebaseMid,omitempty"`
557
558	// GplusId: Optional. The numeric identifier for the employer's Google+
559	// business page.
560	GplusId string `json:"gplusId,omitempty"`
561
562	// MapsCid: Optional. The numeric identifier for the employer's
563	// headquarters on Google Maps, namely, the Google Maps CID (cell id).
564	MapsCid string `json:"mapsCid,omitempty"`
565
566	// UnknownTypeId: Optional. A Google identifier that does not match any
567	// of the other types.
568	UnknownTypeId string `json:"unknownTypeId,omitempty"`
569
570	// ForceSendFields is a list of field names (e.g. "FreebaseMid") to
571	// unconditionally include in API requests. By default, fields with
572	// empty values are omitted from API requests. However, any non-pointer,
573	// non-interface field appearing in ForceSendFields will be sent to the
574	// server regardless of whether the field is empty or not. This may be
575	// used to include empty fields in Patch requests.
576	ForceSendFields []string `json:"-"`
577
578	// NullFields is a list of field names (e.g. "FreebaseMid") to include
579	// in API requests with the JSON null value. By default, fields with
580	// empty values are omitted from API requests. However, any field with
581	// an empty value appearing in NullFields will be sent to the server as
582	// null. It is an error if a field in this list has a non-empty value.
583	// This may be used to include null fields in Patch requests.
584	NullFields []string `json:"-"`
585}
586
587func (s *CompanyInfoSource) MarshalJSON() ([]byte, error) {
588	type NoMethod CompanyInfoSource
589	raw := NoMethod(*s)
590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
591}
592
593// CompensationEntry: A compensation entry that represents one component
594// of compensation, such as base pay, bonus, or other compensation type.
595// Annualization: One compensation entry can be annualized if - it
596// contains valid amount or range. - and its expected_units_per_year is
597// set or can be derived. Its annualized range is determined as (amount
598// or range) times expected_units_per_year.
599type CompensationEntry struct {
600	// Amount: Optional. Compensation amount.
601	Amount *Money `json:"amount,omitempty"`
602
603	// Description: Optional. Compensation description. For example, could
604	// indicate equity terms or provide additional context to an estimated
605	// bonus.
606	Description string `json:"description,omitempty"`
607
608	// ExpectedUnitsPerYear: Optional. Expected number of units paid each
609	// year. If not specified, when Job.employment_types is FULLTIME, a
610	// default value is inferred based on unit. Default values: - HOURLY:
611	// 2080 - DAILY: 260 - WEEKLY: 52 - MONTHLY: 12 - ANNUAL: 1
612	ExpectedUnitsPerYear float64 `json:"expectedUnitsPerYear,omitempty"`
613
614	// Range: Optional. Compensation range.
615	Range *CompensationRange `json:"range,omitempty"`
616
617	// Type: Required. Compensation type.
618	//
619	// Possible values:
620	//   "COMPENSATION_TYPE_UNSPECIFIED" - Default value. Equivalent to
621	// OTHER_COMPENSATION_TYPE.
622	//   "BASE" - Base compensation: Refers to the fixed amount of money
623	// paid to an employee by an employer in return for work performed. Base
624	// compensation does not include benefits, bonuses or any other
625	// potential compensation from an employer.
626	//   "BONUS" - Bonus.
627	//   "SIGNING_BONUS" - Signing bonus.
628	//   "EQUITY" - Equity.
629	//   "PROFIT_SHARING" - Profit sharing.
630	//   "COMMISSIONS" - Commission.
631	//   "TIPS" - Tips.
632	//   "OTHER_COMPENSATION_TYPE" - Other compensation type.
633	Type string `json:"type,omitempty"`
634
635	// Unit: Optional. Frequency of the specified amount. Default is
636	// CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.
637	//
638	// Possible values:
639	//   "COMPENSATION_UNIT_UNSPECIFIED" - Default value. Equivalent to
640	// OTHER_COMPENSATION_UNIT.
641	//   "HOURLY" - Hourly.
642	//   "DAILY" - Daily.
643	//   "WEEKLY" - Weekly
644	//   "MONTHLY" - Monthly.
645	//   "YEARLY" - Yearly.
646	//   "ONE_TIME" - One time.
647	//   "OTHER_COMPENSATION_UNIT" - Other compensation units.
648	Unit string `json:"unit,omitempty"`
649
650	// ForceSendFields is a list of field names (e.g. "Amount") to
651	// unconditionally include in API requests. By default, fields with
652	// empty values are omitted from API requests. However, any non-pointer,
653	// non-interface field appearing in ForceSendFields will be sent to the
654	// server regardless of whether the field is empty or not. This may be
655	// used to include empty fields in Patch requests.
656	ForceSendFields []string `json:"-"`
657
658	// NullFields is a list of field names (e.g. "Amount") to include in API
659	// requests with the JSON null value. By default, fields with empty
660	// values are omitted from API requests. However, any field with an
661	// empty value appearing in NullFields will be sent to the server as
662	// null. It is an error if a field in this list has a non-empty value.
663	// This may be used to include null fields in Patch requests.
664	NullFields []string `json:"-"`
665}
666
667func (s *CompensationEntry) MarshalJSON() ([]byte, error) {
668	type NoMethod CompensationEntry
669	raw := NoMethod(*s)
670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
671}
672
673func (s *CompensationEntry) UnmarshalJSON(data []byte) error {
674	type NoMethod CompensationEntry
675	var s1 struct {
676		ExpectedUnitsPerYear gensupport.JSONFloat64 `json:"expectedUnitsPerYear"`
677		*NoMethod
678	}
679	s1.NoMethod = (*NoMethod)(s)
680	if err := json.Unmarshal(data, &s1); err != nil {
681		return err
682	}
683	s.ExpectedUnitsPerYear = float64(s1.ExpectedUnitsPerYear)
684	return nil
685}
686
687// CompensationFilter: Input only. Filter on job compensation type and
688// amount.
689type CompensationFilter struct {
690	// IncludeJobsWithUnspecifiedCompensationRange: Optional. Whether to
691	// include jobs whose compensation range is unspecified.
692	IncludeJobsWithUnspecifiedCompensationRange bool `json:"includeJobsWithUnspecifiedCompensationRange,omitempty"`
693
694	// Range: Optional. Compensation range.
695	Range *CompensationRange `json:"range,omitempty"`
696
697	// Type: Required. Type of filter.
698	//
699	// Possible values:
700	//   "FILTER_TYPE_UNSPECIFIED" - Filter type unspecified. Position
701	// holder, INVALID, should never be used.
702	//   "UNIT_ONLY" - Filter by `base compensation entry's` unit. A job is
703	// a match if and only if the job contains a base CompensationEntry and
704	// the base CompensationEntry's unit matches provided units. Populate
705	// one or more units. See CompensationInfo.CompensationEntry for
706	// definition of base compensation entry.
707	//   "UNIT_AND_AMOUNT" - Filter by `base compensation entry's` unit and
708	// amount / range. A job is a match if and only if the job contains a
709	// base CompensationEntry, and the base entry's unit matches provided
710	// compensation_units and amount or range overlaps with provided
711	// compensation_range. See CompensationInfo.CompensationEntry for
712	// definition of base compensation entry. Set exactly one units and
713	// populate range.
714	//   "ANNUALIZED_BASE_AMOUNT" - Filter by annualized base compensation
715	// amount and `base compensation entry's` unit. Populate range and zero
716	// or more units.
717	//   "ANNUALIZED_TOTAL_AMOUNT" - Filter by annualized total compensation
718	// amount and `base compensation entry's` unit . Populate range and zero
719	// or more units.
720	Type string `json:"type,omitempty"`
721
722	// Units: Required. Specify desired `base compensation entry's`
723	// CompensationInfo.CompensationUnit.
724	//
725	// Possible values:
726	//   "COMPENSATION_UNIT_UNSPECIFIED" - Default value. Equivalent to
727	// OTHER_COMPENSATION_UNIT.
728	//   "HOURLY" - Hourly.
729	//   "DAILY" - Daily.
730	//   "WEEKLY" - Weekly
731	//   "MONTHLY" - Monthly.
732	//   "YEARLY" - Yearly.
733	//   "ONE_TIME" - One time.
734	//   "OTHER_COMPENSATION_UNIT" - Other compensation units.
735	Units []string `json:"units,omitempty"`
736
737	// ForceSendFields is a list of field names (e.g.
738	// "IncludeJobsWithUnspecifiedCompensationRange") to unconditionally
739	// include in API requests. By default, fields with empty values are
740	// omitted from API requests. However, any non-pointer, non-interface
741	// field appearing in ForceSendFields will be sent to the server
742	// regardless of whether the field is empty or not. This may be used to
743	// include empty fields in Patch requests.
744	ForceSendFields []string `json:"-"`
745
746	// NullFields is a list of field names (e.g.
747	// "IncludeJobsWithUnspecifiedCompensationRange") to include in API
748	// requests with the JSON null value. By default, fields with empty
749	// values are omitted from API requests. However, any field with an
750	// empty value appearing in NullFields will be sent to the server as
751	// null. It is an error if a field in this list has a non-empty value.
752	// This may be used to include null fields in Patch requests.
753	NullFields []string `json:"-"`
754}
755
756func (s *CompensationFilter) MarshalJSON() ([]byte, error) {
757	type NoMethod CompensationFilter
758	raw := NoMethod(*s)
759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
760}
761
762// CompensationHistogramRequest: Input only. Compensation based
763// histogram request.
764type CompensationHistogramRequest struct {
765	// BucketingOption: Required. Numeric histogram options, like buckets,
766	// whether include min or max value.
767	BucketingOption *NumericBucketingOption `json:"bucketingOption,omitempty"`
768
769	// Type: Required. Type of the request, representing which field the
770	// histogramming should be performed over. A single request can only
771	// specify one histogram of each `CompensationHistogramRequestType`.
772	//
773	// Possible values:
774	//   "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED" - Default value.
775	// Invalid.
776	//   "BASE" - Histogram by job's base compensation. See
777	// CompensationEntry for definition of base compensation.
778	//   "ANNUALIZED_BASE" - Histogram by job's annualized base
779	// compensation. See CompensationEntry for definition of annualized base
780	// compensation.
781	//   "ANNUALIZED_TOTAL" - Histogram by job's annualized total
782	// compensation. See CompensationEntry for definition of annualized
783	// total compensation.
784	Type string `json:"type,omitempty"`
785
786	// ForceSendFields is a list of field names (e.g. "BucketingOption") to
787	// unconditionally include in API requests. By default, fields with
788	// empty values are omitted from API requests. However, any non-pointer,
789	// non-interface field appearing in ForceSendFields will be sent to the
790	// server regardless of whether the field is empty or not. This may be
791	// used to include empty fields in Patch requests.
792	ForceSendFields []string `json:"-"`
793
794	// NullFields is a list of field names (e.g. "BucketingOption") to
795	// include in API requests with the JSON null value. By default, fields
796	// with empty values are omitted from API requests. However, any field
797	// with an empty value appearing in NullFields will be sent to the
798	// server as null. It is an error if a field in this list has a
799	// non-empty value. This may be used to include null fields in Patch
800	// requests.
801	NullFields []string `json:"-"`
802}
803
804func (s *CompensationHistogramRequest) MarshalJSON() ([]byte, error) {
805	type NoMethod CompensationHistogramRequest
806	raw := NoMethod(*s)
807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
808}
809
810// CompensationHistogramResult: Output only. Compensation based
811// histogram result.
812type CompensationHistogramResult struct {
813	// Result: Histogram result.
814	Result *NumericBucketingResult `json:"result,omitempty"`
815
816	// Type: Type of the request, corresponding to
817	// CompensationHistogramRequest.type.
818	//
819	// Possible values:
820	//   "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED" - Default value.
821	// Invalid.
822	//   "BASE" - Histogram by job's base compensation. See
823	// CompensationEntry for definition of base compensation.
824	//   "ANNUALIZED_BASE" - Histogram by job's annualized base
825	// compensation. See CompensationEntry for definition of annualized base
826	// compensation.
827	//   "ANNUALIZED_TOTAL" - Histogram by job's annualized total
828	// compensation. See CompensationEntry for definition of annualized
829	// total compensation.
830	Type string `json:"type,omitempty"`
831
832	// ForceSendFields is a list of field names (e.g. "Result") to
833	// unconditionally include in API requests. By default, fields with
834	// empty values are omitted from API requests. However, any non-pointer,
835	// non-interface field appearing in ForceSendFields will be sent to the
836	// server regardless of whether the field is empty or not. This may be
837	// used to include empty fields in Patch requests.
838	ForceSendFields []string `json:"-"`
839
840	// NullFields is a list of field names (e.g. "Result") to include in API
841	// requests with the JSON null value. By default, fields with empty
842	// values are omitted from API requests. However, any field with an
843	// empty value appearing in NullFields will be sent to the server as
844	// null. It is an error if a field in this list has a non-empty value.
845	// This may be used to include null fields in Patch requests.
846	NullFields []string `json:"-"`
847}
848
849func (s *CompensationHistogramResult) MarshalJSON() ([]byte, error) {
850	type NoMethod CompensationHistogramResult
851	raw := NoMethod(*s)
852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
853}
854
855// CompensationInfo: Job compensation details.
856type CompensationInfo struct {
857	// Amount: Deprecated. Use entries instead. Optional. The amount of
858	// compensation or pay for the job. As an alternative,
859	// compensation_amount_min and compensation_amount_max may be used to
860	// define a range of compensation.
861	Amount *Money `json:"amount,omitempty"`
862
863	// AnnualizedBaseCompensationRange: Output only. Annualized base
864	// compensation range. Computed as base compensation entry's
865	// CompensationEntry.compensation times
866	// CompensationEntry.expected_units_per_year. See CompensationEntry for
867	// explanation on compensation annualization.
868	AnnualizedBaseCompensationRange *CompensationRange `json:"annualizedBaseCompensationRange,omitempty"`
869
870	// AnnualizedTotalCompensationRange: Output only. Annualized total
871	// compensation range. Computed as all compensation entries'
872	// CompensationEntry.compensation times
873	// CompensationEntry.expected_units_per_year. See CompensationEntry for
874	// explanation on compensation annualization.
875	AnnualizedTotalCompensationRange *CompensationRange `json:"annualizedTotalCompensationRange,omitempty"`
876
877	// Entries: Optional. Job compensation information. At most one entry
878	// can be of type CompensationInfo.CompensationType.BASE, which is
879	// referred as ** base compensation entry ** for the job.
880	Entries []*CompensationEntry `json:"entries,omitempty"`
881
882	// Max: Deprecated. Use entries instead. Optional. An upper bound on a
883	// range for compensation or pay for the job. The currency type is
884	// specified in compensation_amount.
885	Max *Money `json:"max,omitempty"`
886
887	// Min: Deprecated. Use entries instead. Optional. A lower bound on a
888	// range for compensation or pay for the job. The currency type is
889	// specified in compensation_amount.
890	Min *Money `json:"min,omitempty"`
891
892	// Type: Deprecated. Use entries instead. Optional. Type of job
893	// compensation.
894	//
895	// Possible values:
896	//   "JOB_COMPENSATION_TYPE_UNSPECIFIED" - The default value if the type
897	// is not specified.
898	//   "HOURLY" - The job compensation is quoted by the number of hours
899	// worked.
900	//   "SALARY" - The job compensation is quoted on an annual basis.
901	//   "PER_PROJECT" - The job compensation is quoted by project
902	// completion.
903	//   "COMMISSION" - The job compensation is quoted based solely on
904	// commission.
905	//   "OTHER_TYPE" - The job compensation is not quoted according to the
906	// listed compensation options.
907	Type string `json:"type,omitempty"`
908
909	// ForceSendFields is a list of field names (e.g. "Amount") to
910	// unconditionally include in API requests. By default, fields with
911	// empty values are omitted from API requests. However, any non-pointer,
912	// non-interface field appearing in ForceSendFields will be sent to the
913	// server regardless of whether the field is empty or not. This may be
914	// used to include empty fields in Patch requests.
915	ForceSendFields []string `json:"-"`
916
917	// NullFields is a list of field names (e.g. "Amount") to include in API
918	// requests with the JSON null value. By default, fields with empty
919	// values are omitted from API requests. However, any field with an
920	// empty value appearing in NullFields will be sent to the server as
921	// null. It is an error if a field in this list has a non-empty value.
922	// This may be used to include null fields in Patch requests.
923	NullFields []string `json:"-"`
924}
925
926func (s *CompensationInfo) MarshalJSON() ([]byte, error) {
927	type NoMethod CompensationInfo
928	raw := NoMethod(*s)
929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
930}
931
932// CompensationRange: Compensation range.
933type CompensationRange struct {
934	// Max: Optional. The maximum amount of compensation. If left empty, the
935	// value is set to a maximal compensation value and the currency code is
936	// set to match the currency code of min_compensation.
937	Max *Money `json:"max,omitempty"`
938
939	// Min: Optional. The minimum amount of compensation. If left empty, the
940	// value is set to zero and the currency code is set to match the
941	// currency code of max_compensation.
942	Min *Money `json:"min,omitempty"`
943
944	// ForceSendFields is a list of field names (e.g. "Max") to
945	// unconditionally include in API requests. By default, fields with
946	// empty values are omitted from API requests. However, any non-pointer,
947	// non-interface field appearing in ForceSendFields will be sent to the
948	// server regardless of whether the field is empty or not. This may be
949	// used to include empty fields in Patch requests.
950	ForceSendFields []string `json:"-"`
951
952	// NullFields is a list of field names (e.g. "Max") to include in API
953	// requests with the JSON null value. By default, fields with empty
954	// values are omitted from API requests. However, any field with an
955	// empty value appearing in NullFields will be sent to the server as
956	// null. It is an error if a field in this list has a non-empty value.
957	// This may be used to include null fields in Patch requests.
958	NullFields []string `json:"-"`
959}
960
961func (s *CompensationRange) MarshalJSON() ([]byte, error) {
962	type NoMethod CompensationRange
963	raw := NoMethod(*s)
964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
965}
966
967// CompleteQueryResponse: Output only. Response of auto-complete query.
968type CompleteQueryResponse struct {
969	// CompletionResults: Results of the matching job/company candidates.
970	CompletionResults []*CompletionResult `json:"completionResults,omitempty"`
971
972	// Metadata: Additional information for the API invocation, such as the
973	// request tracking id.
974	Metadata *ResponseMetadata `json:"metadata,omitempty"`
975
976	// ServerResponse contains the HTTP response code and headers from the
977	// server.
978	googleapi.ServerResponse `json:"-"`
979
980	// ForceSendFields is a list of field names (e.g. "CompletionResults")
981	// to unconditionally include in API requests. By default, fields with
982	// empty values are omitted from API requests. However, any non-pointer,
983	// non-interface field appearing in ForceSendFields will be sent to the
984	// server regardless of whether the field is empty or not. This may be
985	// used to include empty fields in Patch requests.
986	ForceSendFields []string `json:"-"`
987
988	// NullFields is a list of field names (e.g. "CompletionResults") to
989	// include in API requests with the JSON null value. By default, fields
990	// with empty values are omitted from API requests. However, any field
991	// with an empty value appearing in NullFields will be sent to the
992	// server as null. It is an error if a field in this list has a
993	// non-empty value. This may be used to include null fields in Patch
994	// requests.
995	NullFields []string `json:"-"`
996}
997
998func (s *CompleteQueryResponse) MarshalJSON() ([]byte, error) {
999	type NoMethod CompleteQueryResponse
1000	raw := NoMethod(*s)
1001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1002}
1003
1004// CompletionResult: Output only. Resource that represents completion
1005// results.
1006type CompletionResult struct {
1007	// ImageUrl: The URL for the company logo if `type=COMPANY_NAME`.
1008	ImageUrl string `json:"imageUrl,omitempty"`
1009
1010	// Suggestion: The suggestion for the query.
1011	Suggestion string `json:"suggestion,omitempty"`
1012
1013	// Type: The completion topic.
1014	//
1015	// Possible values:
1016	//   "COMPLETION_TYPE_UNSPECIFIED" - Default value.
1017	//   "JOB_TITLE" - Only suggest job titles.
1018	//   "COMPANY_NAME" - Only suggest company names.
1019	//   "COMBINED" - Suggest both job titles and company names.
1020	Type string `json:"type,omitempty"`
1021
1022	// ForceSendFields is a list of field names (e.g. "ImageUrl") to
1023	// unconditionally include in API requests. By default, fields with
1024	// empty values are omitted from API requests. However, any non-pointer,
1025	// non-interface field appearing in ForceSendFields will be sent to the
1026	// server regardless of whether the field is empty or not. This may be
1027	// used to include empty fields in Patch requests.
1028	ForceSendFields []string `json:"-"`
1029
1030	// NullFields is a list of field names (e.g. "ImageUrl") to include in
1031	// API requests with the JSON null value. By default, fields with empty
1032	// values are omitted from API requests. However, any field with an
1033	// empty value appearing in NullFields will be sent to the server as
1034	// null. It is an error if a field in this list has a non-empty value.
1035	// This may be used to include null fields in Patch requests.
1036	NullFields []string `json:"-"`
1037}
1038
1039func (s *CompletionResult) MarshalJSON() ([]byte, error) {
1040	type NoMethod CompletionResult
1041	raw := NoMethod(*s)
1042	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1043}
1044
1045// CreateJobRequest: Input only. Create job request.
1046type CreateJobRequest struct {
1047	// DisableStreetAddressResolution: Deprecated. Please use
1048	// processing_options. This flag is ignored if processing_options is
1049	// set. Optional. If set to `true`, the service does not attempt to
1050	// resolve a more precise address for the job.
1051	DisableStreetAddressResolution bool `json:"disableStreetAddressResolution,omitempty"`
1052
1053	// Job: Required. The Job to be created.
1054	Job *Job `json:"job,omitempty"`
1055
1056	// ProcessingOptions: Optional. Options for job processing.
1057	ProcessingOptions *JobProcessingOptions `json:"processingOptions,omitempty"`
1058
1059	// ForceSendFields is a list of field names (e.g.
1060	// "DisableStreetAddressResolution") to unconditionally include in API
1061	// requests. By default, fields with empty values are omitted from API
1062	// requests. However, any non-pointer, non-interface field appearing in
1063	// ForceSendFields will be sent to the server regardless of whether the
1064	// field is empty or not. This may be used to include empty fields in
1065	// Patch requests.
1066	ForceSendFields []string `json:"-"`
1067
1068	// NullFields is a list of field names (e.g.
1069	// "DisableStreetAddressResolution") to include in API requests with the
1070	// JSON null value. By default, fields with empty values are omitted
1071	// from API requests. However, any field with an empty value appearing
1072	// in NullFields will be sent to the server as null. It is an error if a
1073	// field in this list has a non-empty value. This may be used to include
1074	// null fields in Patch requests.
1075	NullFields []string `json:"-"`
1076}
1077
1078func (s *CreateJobRequest) MarshalJSON() ([]byte, error) {
1079	type NoMethod CreateJobRequest
1080	raw := NoMethod(*s)
1081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1082}
1083
1084// CustomAttribute: Custom attribute values that are either filterable
1085// or non-filterable.
1086type CustomAttribute struct {
1087	// Filterable: Optional. If the `filterable` flag is true, custom field
1088	// values are searchable. If false, values are not searchable. Default
1089	// is false.
1090	Filterable bool `json:"filterable,omitempty"`
1091
1092	// LongValue: Optional but at least one of string_values or long_value
1093	// must be specified. This field is used to perform number range search.
1094	// (`EQ`, `GT`, `GE`, `LE`, `LT`) over filterable `long_value`. For
1095	// `long_value`, a value between Long.MIN and Long.MAX is allowed.
1096	LongValue int64 `json:"longValue,omitempty,string"`
1097
1098	// StringValues: Optional but at least one of string_values or
1099	// long_value must be specified. This field is used to perform a string
1100	// match (`CASE_SENSITIVE_MATCH` or `CASE_INSENSITIVE_MATCH`) search.
1101	// For filterable `string_values`, a maximum total number of 200 values
1102	// is allowed, with each `string_value` has a byte size of no more than
1103	// 255B. For unfilterable `string_values`, the maximum total byte size
1104	// of unfilterable `string_values` is 50KB. Empty strings are not
1105	// allowed.
1106	StringValues *StringValues `json:"stringValues,omitempty"`
1107
1108	// ForceSendFields is a list of field names (e.g. "Filterable") to
1109	// unconditionally include in API requests. By default, fields with
1110	// empty values are omitted from API requests. However, any non-pointer,
1111	// non-interface field appearing in ForceSendFields will be sent to the
1112	// server regardless of whether the field is empty or not. This may be
1113	// used to include empty fields in Patch requests.
1114	ForceSendFields []string `json:"-"`
1115
1116	// NullFields is a list of field names (e.g. "Filterable") to include in
1117	// API requests with the JSON null value. By default, fields with empty
1118	// values are omitted from API requests. However, any field with an
1119	// empty value appearing in NullFields will be sent to the server as
1120	// null. It is an error if a field in this list has a non-empty value.
1121	// This may be used to include null fields in Patch requests.
1122	NullFields []string `json:"-"`
1123}
1124
1125func (s *CustomAttribute) MarshalJSON() ([]byte, error) {
1126	type NoMethod CustomAttribute
1127	raw := NoMethod(*s)
1128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1129}
1130
1131// CustomAttributeHistogramRequest: Custom attributes histogram request.
1132// An error will be thrown if neither string_value_histogram or
1133// long_value_histogram_bucketing_option has been defined.
1134type CustomAttributeHistogramRequest struct {
1135	// Key: Required. Specifies the custom field key to perform a histogram
1136	// on. If specified without `long_value_histogram_bucketing_option`,
1137	// histogram on string values of the given `key` is triggered, otherwise
1138	// histogram is performed on long values.
1139	Key string `json:"key,omitempty"`
1140
1141	// LongValueHistogramBucketingOption: Optional. Specifies buckets used
1142	// to perform a range histogram on Job's filterable long custom field
1143	// values, or min/max value requirements.
1144	LongValueHistogramBucketingOption *NumericBucketingOption `json:"longValueHistogramBucketingOption,omitempty"`
1145
1146	// StringValueHistogram: Optional. If set to true, the response will
1147	// include the histogram value for each key as a string.
1148	StringValueHistogram bool `json:"stringValueHistogram,omitempty"`
1149
1150	// ForceSendFields is a list of field names (e.g. "Key") to
1151	// unconditionally include in API requests. By default, fields with
1152	// empty values are omitted from API requests. However, any non-pointer,
1153	// non-interface field appearing in ForceSendFields will be sent to the
1154	// server regardless of whether the field is empty or not. This may be
1155	// used to include empty fields in Patch requests.
1156	ForceSendFields []string `json:"-"`
1157
1158	// NullFields is a list of field names (e.g. "Key") to include in API
1159	// requests with the JSON null value. By default, fields with empty
1160	// values are omitted from API requests. However, any field with an
1161	// empty value appearing in NullFields will be sent to the server as
1162	// null. It is an error if a field in this list has a non-empty value.
1163	// This may be used to include null fields in Patch requests.
1164	NullFields []string `json:"-"`
1165}
1166
1167func (s *CustomAttributeHistogramRequest) MarshalJSON() ([]byte, error) {
1168	type NoMethod CustomAttributeHistogramRequest
1169	raw := NoMethod(*s)
1170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1171}
1172
1173// CustomAttributeHistogramResult: Output only. Custom attribute
1174// histogram result.
1175type CustomAttributeHistogramResult struct {
1176	// Key: Stores the key of custom attribute the histogram is performed
1177	// on.
1178	Key string `json:"key,omitempty"`
1179
1180	// LongValueHistogramResult: Stores bucketed histogram counting result
1181	// or min/max values for custom attribute long values associated with
1182	// `key`.
1183	LongValueHistogramResult *NumericBucketingResult `json:"longValueHistogramResult,omitempty"`
1184
1185	// StringValueHistogramResult: Stores a map from the values of string
1186	// custom field associated with `key` to the number of jobs with that
1187	// value in this histogram result.
1188	StringValueHistogramResult map[string]int64 `json:"stringValueHistogramResult,omitempty"`
1189
1190	// ForceSendFields is a list of field names (e.g. "Key") to
1191	// unconditionally include in API requests. By default, fields with
1192	// empty values are omitted from API requests. However, any non-pointer,
1193	// non-interface field appearing in ForceSendFields will be sent to the
1194	// server regardless of whether the field is empty or not. This may be
1195	// used to include empty fields in Patch requests.
1196	ForceSendFields []string `json:"-"`
1197
1198	// NullFields is a list of field names (e.g. "Key") to include in API
1199	// requests with the JSON null value. By default, fields with empty
1200	// values are omitted from API requests. However, any field with an
1201	// empty value appearing in NullFields will be sent to the server as
1202	// null. It is an error if a field in this list has a non-empty value.
1203	// This may be used to include null fields in Patch requests.
1204	NullFields []string `json:"-"`
1205}
1206
1207func (s *CustomAttributeHistogramResult) MarshalJSON() ([]byte, error) {
1208	type NoMethod CustomAttributeHistogramResult
1209	raw := NoMethod(*s)
1210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1211}
1212
1213// CustomField: Resource that represents the custom data not captured by
1214// the standard fields.
1215type CustomField struct {
1216	// Values: Optional. The values of the custom data.
1217	Values []string `json:"values,omitempty"`
1218
1219	// ForceSendFields is a list of field names (e.g. "Values") to
1220	// unconditionally include in API requests. By default, fields with
1221	// empty values are omitted from API requests. However, any non-pointer,
1222	// non-interface field appearing in ForceSendFields will be sent to the
1223	// server regardless of whether the field is empty or not. This may be
1224	// used to include empty fields in Patch requests.
1225	ForceSendFields []string `json:"-"`
1226
1227	// NullFields is a list of field names (e.g. "Values") to include in API
1228	// requests with the JSON null value. By default, fields with empty
1229	// values are omitted from API requests. However, any field with an
1230	// empty value appearing in NullFields will be sent to the server as
1231	// null. It is an error if a field in this list has a non-empty value.
1232	// This may be used to include null fields in Patch requests.
1233	NullFields []string `json:"-"`
1234}
1235
1236func (s *CustomField) MarshalJSON() ([]byte, error) {
1237	type NoMethod CustomField
1238	raw := NoMethod(*s)
1239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1240}
1241
1242// CustomFieldFilter: Input only. Custom field filter of the search.
1243type CustomFieldFilter struct {
1244	// Queries: Required. The query strings for the filter.
1245	Queries []string `json:"queries,omitempty"`
1246
1247	// Type: Optional. The type of filter. Defaults to FilterType.OR.
1248	//
1249	// Possible values:
1250	//   "FILTER_TYPE_UNSPECIFIED" - Default value.
1251	//   "OR" - Search for a match with any query.
1252	//   "AND" - Search for a match with all queries.
1253	//   "NOT" - Negate the set of filter values for the search.
1254	Type string `json:"type,omitempty"`
1255
1256	// ForceSendFields is a list of field names (e.g. "Queries") to
1257	// unconditionally include in API requests. By default, fields with
1258	// empty values are omitted from API requests. However, any non-pointer,
1259	// non-interface field appearing in ForceSendFields will be sent to the
1260	// server regardless of whether the field is empty or not. This may be
1261	// used to include empty fields in Patch requests.
1262	ForceSendFields []string `json:"-"`
1263
1264	// NullFields is a list of field names (e.g. "Queries") to include in
1265	// API requests with the JSON null value. By default, fields with empty
1266	// values are omitted from API requests. However, any field with an
1267	// empty value appearing in NullFields will be sent to the server as
1268	// null. It is an error if a field in this list has a non-empty value.
1269	// This may be used to include null fields in Patch requests.
1270	NullFields []string `json:"-"`
1271}
1272
1273func (s *CustomFieldFilter) MarshalJSON() ([]byte, error) {
1274	type NoMethod CustomFieldFilter
1275	raw := NoMethod(*s)
1276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1277}
1278
1279// Date: Represents a whole or partial calendar date, e.g. a birthday.
1280// The time of day and time zone are either specified elsewhere or are
1281// not significant. The date is relative to the Proleptic Gregorian
1282// Calendar. This can represent: * A full date, with non-zero year,
1283// month and day values * A month and day value, with a zero year, e.g.
1284// an anniversary * A year on its own, with zero month and day values *
1285// A year and month value, with a zero day, e.g. a credit card
1286// expiration date Related types are google.type.TimeOfDay and
1287// `google.protobuf.Timestamp`.
1288type Date struct {
1289	// Day: Day of month. Must be from 1 to 31 and valid for the year and
1290	// month, or 0 if specifying a year by itself or a year and month where
1291	// the day is not significant.
1292	Day int64 `json:"day,omitempty"`
1293
1294	// Month: Month of year. Must be from 1 to 12, or 0 if specifying a year
1295	// without a month and day.
1296	Month int64 `json:"month,omitempty"`
1297
1298	// Year: Year of date. Must be from 1 to 9999, or 0 if specifying a date
1299	// without a year.
1300	Year int64 `json:"year,omitempty"`
1301
1302	// ForceSendFields is a list of field names (e.g. "Day") to
1303	// unconditionally include in API requests. By default, fields with
1304	// empty values are omitted from API requests. However, any non-pointer,
1305	// non-interface field appearing in ForceSendFields will be sent to the
1306	// server regardless of whether the field is empty or not. This may be
1307	// used to include empty fields in Patch requests.
1308	ForceSendFields []string `json:"-"`
1309
1310	// NullFields is a list of field names (e.g. "Day") to include in API
1311	// requests with the JSON null value. By default, fields with empty
1312	// values are omitted from API requests. However, any field with an
1313	// empty value appearing in NullFields will be sent to the server as
1314	// null. It is an error if a field in this list has a non-empty value.
1315	// This may be used to include null fields in Patch requests.
1316	NullFields []string `json:"-"`
1317}
1318
1319func (s *Date) MarshalJSON() ([]byte, error) {
1320	type NoMethod Date
1321	raw := NoMethod(*s)
1322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1323}
1324
1325// DeleteJobsByFilterRequest: Deprecated. Use BatchDeleteJobsRequest
1326// instead. Input only. Delete job by filter request. The job typically
1327// becomes unsearchable within 10 seconds, but it may take up to 5
1328// minutes.
1329type DeleteJobsByFilterRequest struct {
1330	// DisableFastProcess: Optional. If set to true, this call waits for all
1331	// processing steps to complete before the job is cleaned up. Otherwise,
1332	// the call returns while some steps are still taking place
1333	// asynchronously, hence faster.
1334	DisableFastProcess bool `json:"disableFastProcess,omitempty"`
1335
1336	// Filter: Required. Restrictions on the scope of the delete request.
1337	Filter *Filter `json:"filter,omitempty"`
1338
1339	// ForceSendFields is a list of field names (e.g. "DisableFastProcess")
1340	// to unconditionally include in API requests. By default, fields with
1341	// empty values are omitted from API requests. However, any non-pointer,
1342	// non-interface field appearing in ForceSendFields will be sent to the
1343	// server regardless of whether the field is empty or not. This may be
1344	// used to include empty fields in Patch requests.
1345	ForceSendFields []string `json:"-"`
1346
1347	// NullFields is a list of field names (e.g. "DisableFastProcess") to
1348	// include in API requests with the JSON null value. By default, fields
1349	// with empty values are omitted from API requests. However, any field
1350	// with an empty value appearing in NullFields will be sent to the
1351	// server as null. It is an error if a field in this list has a
1352	// non-empty value. This may be used to include null fields in Patch
1353	// requests.
1354	NullFields []string `json:"-"`
1355}
1356
1357func (s *DeleteJobsByFilterRequest) MarshalJSON() ([]byte, error) {
1358	type NoMethod DeleteJobsByFilterRequest
1359	raw := NoMethod(*s)
1360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1361}
1362
1363// DeviceInfo: Input only. Device information collected from the job
1364// seeker, candidate, or other entity conducting the job search.
1365// Providing this information improves the quality of the search results
1366// across devices.
1367type DeviceInfo struct {
1368	// DeviceType: Optional. Type of the device.
1369	//
1370	// Possible values:
1371	//   "DEVICE_TYPE_UNSPECIFIED" - The device type isn't specified.
1372	//   "WEB" - A desktop web browser, such as, Chrome, Firefox, Safari, or
1373	// Internet Explorer)
1374	//   "MOBILE_WEB" - A mobile device web browser, such as a phone or
1375	// tablet with a Chrome browser.
1376	//   "ANDROID" - An Android device native application.
1377	//   "IOS" - An iOS device native application.
1378	//   "BOT" - A bot, as opposed to a device operated by human beings,
1379	// such as a web crawler.
1380	//   "OTHER" - Other devices types.
1381	DeviceType string `json:"deviceType,omitempty"`
1382
1383	// Id: Optional. A device-specific ID. The ID must be a unique
1384	// identifier that distinguishes the device from other devices.
1385	Id string `json:"id,omitempty"`
1386
1387	// ForceSendFields is a list of field names (e.g. "DeviceType") to
1388	// unconditionally include in API requests. By default, fields with
1389	// empty values are omitted from API requests. However, any non-pointer,
1390	// non-interface field appearing in ForceSendFields will be sent to the
1391	// server regardless of whether the field is empty or not. This may be
1392	// used to include empty fields in Patch requests.
1393	ForceSendFields []string `json:"-"`
1394
1395	// NullFields is a list of field names (e.g. "DeviceType") to include in
1396	// API requests with the JSON null value. By default, fields with empty
1397	// values are omitted from API requests. However, any field with an
1398	// empty value appearing in NullFields will be sent to the server as
1399	// null. It is an error if a field in this list has a non-empty value.
1400	// This may be used to include null fields in Patch requests.
1401	NullFields []string `json:"-"`
1402}
1403
1404func (s *DeviceInfo) MarshalJSON() ([]byte, error) {
1405	type NoMethod DeviceInfo
1406	raw := NoMethod(*s)
1407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1408}
1409
1410// Empty: A generic empty message that you can re-use to avoid defining
1411// duplicated empty messages in your APIs. A typical example is to use
1412// it as the request or the response type of an API method. For
1413// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
1414// (google.protobuf.Empty); } The JSON representation for `Empty` is
1415// empty JSON object `{}`.
1416type Empty struct {
1417	// ServerResponse contains the HTTP response code and headers from the
1418	// server.
1419	googleapi.ServerResponse `json:"-"`
1420}
1421
1422// ExtendedCompensationFilter: Deprecated. Always use
1423// CompensationFilter. Input only. Filter on job compensation type and
1424// amount.
1425type ExtendedCompensationFilter struct {
1426	// CompensationRange: Optional. Compensation range.
1427	CompensationRange *ExtendedCompensationInfoCompensationRange `json:"compensationRange,omitempty"`
1428
1429	// CompensationUnits: Required. Specify desired `base compensation
1430	// entry's` ExtendedCompensationInfo.CompensationUnit.
1431	//
1432	// Possible values:
1433	//   "EXTENDED_COMPENSATION_UNIT_UNSPECIFIED" - Default value.
1434	// Equivalent to OTHER_COMPENSATION_UNIT.
1435	//   "HOURLY" - Hourly.
1436	//   "DAILY" - Daily.
1437	//   "WEEKLY" - Weekly
1438	//   "MONTHLY" - Monthly.
1439	//   "YEARLY" - Yearly.
1440	//   "ONE_TIME" - One time.
1441	//   "OTHER_COMPENSATION_UNIT" - Other compensation units.
1442	CompensationUnits []string `json:"compensationUnits,omitempty"`
1443
1444	// Currency: Optional. Specify currency in 3-letter [ISO
1445	// 4217](https://www.iso.org/iso-4217-currency-codes.html) format. If
1446	// unspecified, jobs are returned regardless of currency.
1447	Currency string `json:"currency,omitempty"`
1448
1449	// IncludeJobWithUnspecifiedCompensationRange: Optional. Whether to
1450	// include jobs whose compensation range is unspecified.
1451	IncludeJobWithUnspecifiedCompensationRange bool `json:"includeJobWithUnspecifiedCompensationRange,omitempty"`
1452
1453	// Type: Required. Type of filter.
1454	//
1455	// Possible values:
1456	//   "FILTER_TYPE_UNSPECIFIED" - Filter type unspecified. Position
1457	// holder, INVALID, should never be used.
1458	//   "UNIT_ONLY" - Filter by `base compensation entry's` unit. A job is
1459	// a match if and only if the job contains a base CompensationEntry and
1460	// the base CompensationEntry's unit matches provided
1461	// compensation_units. Populate one or more compensation_units. See
1462	// ExtendedCompensationInfo.CompensationEntry for definition of base
1463	// compensation entry.
1464	//   "UNIT_AND_AMOUNT" - Filter by `base compensation entry's` unit and
1465	// amount / range. A job is a match if and only if the job contains a
1466	// base CompensationEntry, and the base entry's unit matches provided
1467	// compensation_units and amount or range overlaps with provided
1468	// compensation_range. See ExtendedCompensationInfo.CompensationEntry
1469	// for definition of base compensation entry. Set exactly one
1470	// compensation_units and populate compensation_range.
1471	//   "ANNUALIZED_BASE_AMOUNT" - Filter by annualized base compensation
1472	// amount and `base compensation entry's` unit. Populate
1473	// compensation_range and zero or more compensation_units.
1474	//   "ANNUALIZED_TOTAL_AMOUNT" - Filter by annualized total compensation
1475	// amount and `base compensation entry's` unit . Populate
1476	// compensation_range and zero or more compensation_units.
1477	Type string `json:"type,omitempty"`
1478
1479	// ForceSendFields is a list of field names (e.g. "CompensationRange")
1480	// to unconditionally include in API requests. By default, fields with
1481	// empty values are omitted from API requests. However, any non-pointer,
1482	// non-interface field appearing in ForceSendFields will be sent to the
1483	// server regardless of whether the field is empty or not. This may be
1484	// used to include empty fields in Patch requests.
1485	ForceSendFields []string `json:"-"`
1486
1487	// NullFields is a list of field names (e.g. "CompensationRange") to
1488	// include in API requests with the JSON null value. By default, fields
1489	// with empty values are omitted from API requests. However, any field
1490	// with an empty value appearing in NullFields will be sent to the
1491	// server as null. It is an error if a field in this list has a
1492	// non-empty value. This may be used to include null fields in Patch
1493	// requests.
1494	NullFields []string `json:"-"`
1495}
1496
1497func (s *ExtendedCompensationFilter) MarshalJSON() ([]byte, error) {
1498	type NoMethod ExtendedCompensationFilter
1499	raw := NoMethod(*s)
1500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1501}
1502
1503// ExtendedCompensationInfo: Deprecated. Use CompensationInfo. Describes
1504// job compensation.
1505type ExtendedCompensationInfo struct {
1506	// AnnualizedBaseCompensationRange: Output only. Annualized base
1507	// compensation range.
1508	AnnualizedBaseCompensationRange *ExtendedCompensationInfoCompensationRange `json:"annualizedBaseCompensationRange,omitempty"`
1509
1510	// AnnualizedBaseCompensationUnspecified: Output only. Indicates
1511	// annualized base compensation range cannot be derived, due to the
1512	// job's base compensation entry cannot be annualized. See
1513	// CompensationEntry for explanation on annualization and base
1514	// compensation entry.
1515	AnnualizedBaseCompensationUnspecified bool `json:"annualizedBaseCompensationUnspecified,omitempty"`
1516
1517	// AnnualizedTotalCompensationRange: Output only. Annualized total
1518	// compensation range.
1519	AnnualizedTotalCompensationRange *ExtendedCompensationInfoCompensationRange `json:"annualizedTotalCompensationRange,omitempty"`
1520
1521	// AnnualizedTotalCompensationUnspecified: Output only. Indicates
1522	// annualized total compensation range cannot be derived, due to the
1523	// job's all CompensationEntry cannot be annualized. See
1524	// CompensationEntry for explanation on annualization and base
1525	// compensation entry.
1526	AnnualizedTotalCompensationUnspecified bool `json:"annualizedTotalCompensationUnspecified,omitempty"`
1527
1528	// Currency: Optional. A 3-letter [ISO
1529	// 4217](https://www.iso.org/iso-4217-currency-codes.html) currency
1530	// code.
1531	Currency string `json:"currency,omitempty"`
1532
1533	// Entries: Optional. Job compensation information. At most one entry
1534	// can be of type ExtendedCompensationInfo.CompensationType.BASE, which
1535	// is referred as ** base compensation entry ** for the job.
1536	Entries []*ExtendedCompensationInfoCompensationEntry `json:"entries,omitempty"`
1537
1538	// ForceSendFields is a list of field names (e.g.
1539	// "AnnualizedBaseCompensationRange") to unconditionally include in API
1540	// requests. By default, fields with empty values are omitted from API
1541	// requests. However, any non-pointer, non-interface field appearing in
1542	// ForceSendFields will be sent to the server regardless of whether the
1543	// field is empty or not. This may be used to include empty fields in
1544	// Patch requests.
1545	ForceSendFields []string `json:"-"`
1546
1547	// NullFields is a list of field names (e.g.
1548	// "AnnualizedBaseCompensationRange") to include in API requests with
1549	// the JSON null value. By default, fields with empty values are omitted
1550	// from API requests. However, any field with an empty value appearing
1551	// in NullFields will be sent to the server as null. It is an error if a
1552	// field in this list has a non-empty value. This may be used to include
1553	// null fields in Patch requests.
1554	NullFields []string `json:"-"`
1555}
1556
1557func (s *ExtendedCompensationInfo) MarshalJSON() ([]byte, error) {
1558	type NoMethod ExtendedCompensationInfo
1559	raw := NoMethod(*s)
1560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1561}
1562
1563// ExtendedCompensationInfoCompensationEntry: Deprecated. See
1564// CompensationInfo. A compensation entry that represents one component
1565// of compensation, such as base pay, bonus, or other compensation type.
1566// Annualization: One compensation entry can be annualized if - it
1567// contains valid amount or range. - and its expected_units_per_year is
1568// set or can be derived. Its annualized range is determined as (amount
1569// or range) times expected_units_per_year.
1570type ExtendedCompensationInfoCompensationEntry struct {
1571	// Amount: Optional. Monetary amount.
1572	Amount *ExtendedCompensationInfoDecimal `json:"amount,omitempty"`
1573
1574	// Description: Optional. Compensation description.
1575	Description string `json:"description,omitempty"`
1576
1577	// ExpectedUnitsPerYear: Optional. Expected number of units paid each
1578	// year. If not specified, when Job.employment_types is FULLTIME, a
1579	// default value is inferred based on unit. Default values: - HOURLY:
1580	// 2080 - DAILY: 260 - WEEKLY: 52 - MONTHLY: 12 - ANNUAL: 1
1581	ExpectedUnitsPerYear *ExtendedCompensationInfoDecimal `json:"expectedUnitsPerYear,omitempty"`
1582
1583	// Range: Optional. Compensation range.
1584	Range *ExtendedCompensationInfoCompensationRange `json:"range,omitempty"`
1585
1586	// Type: Required. Compensation type.
1587	//
1588	// Possible values:
1589	//   "EXTENDED_COMPENSATION_TYPE_UNSPECIFIED" - Default value.
1590	// Equivalent to OTHER_COMPENSATION_TYPE.
1591	//   "BASE" - Base compensation: Refers to the fixed amount of money
1592	// paid to an employee by an employer in return for work performed. Base
1593	// compensation does not include benefits, bonuses or any other
1594	// potential compensation from an employer.
1595	//   "BONUS" - Bonus.
1596	//   "SIGNING_BONUS" - Signing bonus.
1597	//   "EQUITY" - Equity.
1598	//   "PROFIT_SHARING" - Profit sharing.
1599	//   "COMMISSIONS" - Commission.
1600	//   "TIPS" - Tips.
1601	//   "OTHER_COMPENSATION_TYPE" - Other compensation type.
1602	Type string `json:"type,omitempty"`
1603
1604	// Unit: Optional. Frequency of the specified amount. Default is
1605	// CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.
1606	//
1607	// Possible values:
1608	//   "EXTENDED_COMPENSATION_UNIT_UNSPECIFIED" - Default value.
1609	// Equivalent to OTHER_COMPENSATION_UNIT.
1610	//   "HOURLY" - Hourly.
1611	//   "DAILY" - Daily.
1612	//   "WEEKLY" - Weekly
1613	//   "MONTHLY" - Monthly.
1614	//   "YEARLY" - Yearly.
1615	//   "ONE_TIME" - One time.
1616	//   "OTHER_COMPENSATION_UNIT" - Other compensation units.
1617	Unit string `json:"unit,omitempty"`
1618
1619	// Unspecified: Optional. Indicates compensation amount and range are
1620	// unset.
1621	Unspecified bool `json:"unspecified,omitempty"`
1622
1623	// ForceSendFields is a list of field names (e.g. "Amount") to
1624	// unconditionally include in API requests. By default, fields with
1625	// empty values are omitted from API requests. However, any non-pointer,
1626	// non-interface field appearing in ForceSendFields will be sent to the
1627	// server regardless of whether the field is empty or not. This may be
1628	// used to include empty fields in Patch requests.
1629	ForceSendFields []string `json:"-"`
1630
1631	// NullFields is a list of field names (e.g. "Amount") to include in API
1632	// requests with the JSON null value. By default, fields with empty
1633	// values are omitted from API requests. However, any field with an
1634	// empty value appearing in NullFields will be sent to the server as
1635	// null. It is an error if a field in this list has a non-empty value.
1636	// This may be used to include null fields in Patch requests.
1637	NullFields []string `json:"-"`
1638}
1639
1640func (s *ExtendedCompensationInfoCompensationEntry) MarshalJSON() ([]byte, error) {
1641	type NoMethod ExtendedCompensationInfoCompensationEntry
1642	raw := NoMethod(*s)
1643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1644}
1645
1646// ExtendedCompensationInfoCompensationRange: Deprecated. See
1647// CompensationInfo. Compensation range.
1648type ExtendedCompensationInfoCompensationRange struct {
1649	// Max: Required. Maximum value.
1650	Max *ExtendedCompensationInfoDecimal `json:"max,omitempty"`
1651
1652	// Min: Required. Minimum value.
1653	Min *ExtendedCompensationInfoDecimal `json:"min,omitempty"`
1654
1655	// ForceSendFields is a list of field names (e.g. "Max") to
1656	// unconditionally include in API requests. By default, fields with
1657	// empty values are omitted from API requests. However, any non-pointer,
1658	// non-interface field appearing in ForceSendFields will be sent to the
1659	// server regardless of whether the field is empty or not. This may be
1660	// used to include empty fields in Patch requests.
1661	ForceSendFields []string `json:"-"`
1662
1663	// NullFields is a list of field names (e.g. "Max") to include in API
1664	// requests with the JSON null value. By default, fields with empty
1665	// values are omitted from API requests. However, any field with an
1666	// empty value appearing in NullFields will be sent to the server as
1667	// null. It is an error if a field in this list has a non-empty value.
1668	// This may be used to include null fields in Patch requests.
1669	NullFields []string `json:"-"`
1670}
1671
1672func (s *ExtendedCompensationInfoCompensationRange) MarshalJSON() ([]byte, error) {
1673	type NoMethod ExtendedCompensationInfoCompensationRange
1674	raw := NoMethod(*s)
1675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1676}
1677
1678// ExtendedCompensationInfoDecimal: Deprecated. See CompensationInfo.
1679// Decimal number.
1680type ExtendedCompensationInfoDecimal struct {
1681	// Micros: Micro (10^-6) units. The value must be between -999,999 and
1682	// +999,999 inclusive. If `units` is positive, `micros` must be positive
1683	// or zero. If `units` is zero, `micros` can be positive, zero, or
1684	// negative. If `units` is negative, `micros` must be negative or zero.
1685	// For example -1.75 is represented as `units`=-1 and `micros`=-750,000.
1686	Micros int64 `json:"micros,omitempty"`
1687
1688	// Units: Whole units.
1689	Units int64 `json:"units,omitempty,string"`
1690
1691	// ForceSendFields is a list of field names (e.g. "Micros") to
1692	// unconditionally include in API requests. By default, fields with
1693	// empty values are omitted from API requests. However, any non-pointer,
1694	// non-interface field appearing in ForceSendFields will be sent to the
1695	// server regardless of whether the field is empty or not. This may be
1696	// used to include empty fields in Patch requests.
1697	ForceSendFields []string `json:"-"`
1698
1699	// NullFields is a list of field names (e.g. "Micros") to include in API
1700	// requests with the JSON null value. By default, fields with empty
1701	// values are omitted from API requests. However, any field with an
1702	// empty value appearing in NullFields will be sent to the server as
1703	// null. It is an error if a field in this list has a non-empty value.
1704	// This may be used to include null fields in Patch requests.
1705	NullFields []string `json:"-"`
1706}
1707
1708func (s *ExtendedCompensationInfoDecimal) MarshalJSON() ([]byte, error) {
1709	type NoMethod ExtendedCompensationInfoDecimal
1710	raw := NoMethod(*s)
1711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1712}
1713
1714// Filter: Deprecated. Use BatchDeleteJobsRequest instead. Input only.
1715// Filter for jobs to be deleted.
1716type Filter struct {
1717	// RequisitionId: Required. The requisition ID (or posting ID) assigned
1718	// by the client to identify a job. This is intended for client
1719	// identification and tracking of listings. name takes precedence over
1720	// this field The maximum number of allowed characters is 225.
1721	RequisitionId string `json:"requisitionId,omitempty"`
1722
1723	// ForceSendFields is a list of field names (e.g. "RequisitionId") to
1724	// unconditionally include in API requests. By default, fields with
1725	// empty values are omitted from API requests. However, any non-pointer,
1726	// non-interface field appearing in ForceSendFields will be sent to the
1727	// server regardless of whether the field is empty or not. This may be
1728	// used to include empty fields in Patch requests.
1729	ForceSendFields []string `json:"-"`
1730
1731	// NullFields is a list of field names (e.g. "RequisitionId") to include
1732	// in API requests with the JSON null value. By default, fields with
1733	// empty values are omitted from API requests. However, any field with
1734	// an empty value appearing in NullFields will be sent to the server as
1735	// null. It is an error if a field in this list has a non-empty value.
1736	// This may be used to include null fields in Patch requests.
1737	NullFields []string `json:"-"`
1738}
1739
1740func (s *Filter) MarshalJSON() ([]byte, error) {
1741	type NoMethod Filter
1742	raw := NoMethod(*s)
1743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1744}
1745
1746// GetHistogramRequest: Deprecated. Use
1747// SearchJobsRequest.histogram_facets instead to make a single call with
1748// both search and histogram. Input only. A request for the
1749// `GetHistogram` method.
1750type GetHistogramRequest struct {
1751	// AllowBroadening: Optional. Controls whether to broaden the search to
1752	// avoid too few results for a given query in instances where a search
1753	// has sparse results. Results from a broadened query is a superset of
1754	// the results from the original query. Defaults to false.
1755	AllowBroadening bool `json:"allowBroadening,omitempty"`
1756
1757	// Filters: Deprecated. Use query instead. Optional. Restrictions on the
1758	// scope of the histogram.
1759	Filters *JobFilters `json:"filters,omitempty"`
1760
1761	// Query: Optional. Query used to search against jobs, such as keyword,
1762	// location filters, etc.
1763	Query *JobQuery `json:"query,omitempty"`
1764
1765	// RequestMetadata: Meta information, such as `user_id`, collected from
1766	// the job searcher or other entity conducting a job search, is used to
1767	// improve the service's search quality. Users determine identifier
1768	// values, which must be unique and consist.
1769	RequestMetadata *RequestMetadata `json:"requestMetadata,omitempty"`
1770
1771	// SearchTypes: Required. A list of facets that specify the histogram
1772	// data to be calculated against and returned. Histogram response times
1773	// can be slow, and counts can be approximations. This call may be
1774	// temporarily or permanently removed prior to the production release of
1775	// Cloud Talent Solution.
1776	//
1777	// Possible values:
1778	//   "JOB_FIELD_UNSPECIFIED" - The default value if search type is not
1779	// specified.
1780	//   "COMPANY_ID" - Filter by the company id field.
1781	//   "EMPLOYMENT_TYPE" - Filter by the employment type field, such as
1782	// `FULL_TIME` or `PART_TIME`.
1783	//   "COMPANY_SIZE" - Filter by the company size type field, such as
1784	// `BIG`, `SMALL` or `BIGGER`.
1785	//   "DATE_PUBLISHED" - Filter by the date published field. Values are
1786	// stringified with TimeRange, for example, TimeRange.PAST_MONTH.
1787	//   "CUSTOM_FIELD_1" - Filter by custom field 1.
1788	//   "CUSTOM_FIELD_2" - Filter by custom field 2.
1789	//   "CUSTOM_FIELD_3" - Filter by custom field 3.
1790	//   "CUSTOM_FIELD_4" - Filter by custom field 4.
1791	//   "CUSTOM_FIELD_5" - Filter by custom field 5.
1792	//   "CUSTOM_FIELD_6" - Filter by custom field 6.
1793	//   "CUSTOM_FIELD_7" - Filter by custom field 7.
1794	//   "CUSTOM_FIELD_8" - Filter by custom field 8.
1795	//   "CUSTOM_FIELD_9" - Filter by custom field 9.
1796	//   "CUSTOM_FIELD_10" - Filter by custom field 10.
1797	//   "CUSTOM_FIELD_11" - Filter by custom field 11.
1798	//   "CUSTOM_FIELD_12" - Filter by custom field 12.
1799	//   "CUSTOM_FIELD_13" - Filter by custom field 13.
1800	//   "CUSTOM_FIELD_14" - Filter by custom field 14.
1801	//   "CUSTOM_FIELD_15" - Filter by custom field 15.
1802	//   "CUSTOM_FIELD_16" - Filter by custom field 16.
1803	//   "CUSTOM_FIELD_17" - Filter by custom field 17.
1804	//   "CUSTOM_FIELD_18" - Filter by custom field 18.
1805	//   "CUSTOM_FIELD_19" - Filter by custom field 19.
1806	//   "CUSTOM_FIELD_20" - Filter by custom field 20.
1807	//   "EDUCATION_LEVEL" - Filter by the required education level of the
1808	// job.
1809	//   "EXPERIENCE_LEVEL" - Filter by the required experience level of the
1810	// job.
1811	//   "ADMIN1" - Filter by Admin1, which is a global placeholder for
1812	// referring to state, province, or the particular term a country uses
1813	// to define the geographic structure below the country level. Examples
1814	// include states codes such as "CA", "IL", "NY", and provinces, such as
1815	// "BC".
1816	//   "COUNTRY" - Filter by the country code of job, such as US, JP, FR.
1817	//   "CITY" - Filter by the "city name", "Admin1 code", for example,
1818	// "Mountain View, CA" or "New York, NY".
1819	//   "LOCALE" - Filter by the locale field of a job, such as "en-US",
1820	// "fr-FR". This is the BCP-47 language code, such as "en-US" or
1821	// "sr-Latn". For more information, see [Tags for Identifying
1822	// Languages](https://tools.ietf.org/html/bcp47).
1823	//   "LANGUAGE" - Filter by the language code portion of the locale
1824	// field, such as "en" or "fr".
1825	//   "CATEGORY" - Filter by the Category.
1826	//   "CITY_COORDINATE" - Filter by the city center GPS coordinate
1827	// (latitude and longitude), for example, 37.4038522,-122.0987765. Since
1828	// the coordinates of a city center can change, clients may need to
1829	// refresh them periodically.
1830	//   "ADMIN1_COUNTRY" - A combination of state or province code with a
1831	// country code. This field differs from `JOB_ADMIN1`, which can be used
1832	// in multiple countries.
1833	//   "COMPANY_TITLE" - Deprecated. Use COMPANY_DISPLAY_NAME instead.
1834	// Company display name.
1835	//   "COMPANY_DISPLAY_NAME" - Company display name.
1836	//   "BASE_COMPENSATION_UNIT" - Base compensation unit.
1837	SearchTypes []string `json:"searchTypes,omitempty"`
1838
1839	// ForceSendFields is a list of field names (e.g. "AllowBroadening") to
1840	// unconditionally include in API requests. By default, fields with
1841	// empty values are omitted from API requests. However, any non-pointer,
1842	// non-interface field appearing in ForceSendFields will be sent to the
1843	// server regardless of whether the field is empty or not. This may be
1844	// used to include empty fields in Patch requests.
1845	ForceSendFields []string `json:"-"`
1846
1847	// NullFields is a list of field names (e.g. "AllowBroadening") to
1848	// include in API requests with the JSON null value. By default, fields
1849	// with empty values are omitted from API requests. However, any field
1850	// with an empty value appearing in NullFields will be sent to the
1851	// server as null. It is an error if a field in this list has a
1852	// non-empty value. This may be used to include null fields in Patch
1853	// requests.
1854	NullFields []string `json:"-"`
1855}
1856
1857func (s *GetHistogramRequest) MarshalJSON() ([]byte, error) {
1858	type NoMethod GetHistogramRequest
1859	raw := NoMethod(*s)
1860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1861}
1862
1863// GetHistogramResponse: Deprecated. Use
1864// SearchJobsRequest.histogram_facets instead to make a single call with
1865// both search and histogram. Output only. The response of the
1866// GetHistogram method.
1867type GetHistogramResponse struct {
1868	// Metadata: Additional information for the API invocation, such as the
1869	// request tracking id.
1870	Metadata *ResponseMetadata `json:"metadata,omitempty"`
1871
1872	// Results: The Histogram results.
1873	Results []*HistogramResult `json:"results,omitempty"`
1874
1875	// ServerResponse contains the HTTP response code and headers from the
1876	// server.
1877	googleapi.ServerResponse `json:"-"`
1878
1879	// ForceSendFields is a list of field names (e.g. "Metadata") to
1880	// unconditionally include in API requests. By default, fields with
1881	// empty values are omitted from API requests. However, any non-pointer,
1882	// non-interface field appearing in ForceSendFields will be sent to the
1883	// server regardless of whether the field is empty or not. This may be
1884	// used to include empty fields in Patch requests.
1885	ForceSendFields []string `json:"-"`
1886
1887	// NullFields is a list of field names (e.g. "Metadata") to include in
1888	// API requests with the JSON null value. By default, fields with empty
1889	// values are omitted from API requests. However, any field with an
1890	// empty value appearing in NullFields will be sent to the server as
1891	// null. It is an error if a field in this list has a non-empty value.
1892	// This may be used to include null fields in Patch requests.
1893	NullFields []string `json:"-"`
1894}
1895
1896func (s *GetHistogramResponse) MarshalJSON() ([]byte, error) {
1897	type NoMethod GetHistogramResponse
1898	raw := NoMethod(*s)
1899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1900}
1901
1902// GoogleCloudTalentV4BatchCreateJobsResponse: The result of
1903// JobService.BatchCreateJobs. It's used to replace
1904// google.longrunning.Operation.response in case of success.
1905type GoogleCloudTalentV4BatchCreateJobsResponse struct {
1906	// JobResults: List of job mutation results from a batch create
1907	// operation. It can change until operation status is FINISHED, FAILED
1908	// or CANCELLED.
1909	JobResults []*GoogleCloudTalentV4JobResult `json:"jobResults,omitempty"`
1910
1911	// ForceSendFields is a list of field names (e.g. "JobResults") to
1912	// unconditionally include in API requests. By default, fields with
1913	// empty values are omitted from API requests. However, any non-pointer,
1914	// non-interface field appearing in ForceSendFields will be sent to the
1915	// server regardless of whether the field is empty or not. This may be
1916	// used to include empty fields in Patch requests.
1917	ForceSendFields []string `json:"-"`
1918
1919	// NullFields is a list of field names (e.g. "JobResults") to include in
1920	// API requests with the JSON null value. By default, fields with empty
1921	// values are omitted from API requests. However, any field with an
1922	// empty value appearing in NullFields will be sent to the server as
1923	// null. It is an error if a field in this list has a non-empty value.
1924	// This may be used to include null fields in Patch requests.
1925	NullFields []string `json:"-"`
1926}
1927
1928func (s *GoogleCloudTalentV4BatchCreateJobsResponse) MarshalJSON() ([]byte, error) {
1929	type NoMethod GoogleCloudTalentV4BatchCreateJobsResponse
1930	raw := NoMethod(*s)
1931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1932}
1933
1934// GoogleCloudTalentV4BatchDeleteJobsResponse: The result of
1935// JobService.BatchDeleteJobs. It's used to replace
1936// google.longrunning.Operation.response in case of success.
1937type GoogleCloudTalentV4BatchDeleteJobsResponse struct {
1938	// JobResults: List of job mutation results from a batch delete
1939	// operation. It can change until operation status is FINISHED, FAILED
1940	// or CANCELLED.
1941	JobResults []*GoogleCloudTalentV4JobResult `json:"jobResults,omitempty"`
1942
1943	// ForceSendFields is a list of field names (e.g. "JobResults") to
1944	// unconditionally include in API requests. By default, fields with
1945	// empty values are omitted from API requests. However, any non-pointer,
1946	// non-interface field appearing in ForceSendFields will be sent to the
1947	// server regardless of whether the field is empty or not. This may be
1948	// used to include empty fields in Patch requests.
1949	ForceSendFields []string `json:"-"`
1950
1951	// NullFields is a list of field names (e.g. "JobResults") to include in
1952	// API requests with the JSON null value. By default, fields with empty
1953	// values are omitted from API requests. However, any field with an
1954	// empty value appearing in NullFields will be sent to the server as
1955	// null. It is an error if a field in this list has a non-empty value.
1956	// This may be used to include null fields in Patch requests.
1957	NullFields []string `json:"-"`
1958}
1959
1960func (s *GoogleCloudTalentV4BatchDeleteJobsResponse) MarshalJSON() ([]byte, error) {
1961	type NoMethod GoogleCloudTalentV4BatchDeleteJobsResponse
1962	raw := NoMethod(*s)
1963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1964}
1965
1966// GoogleCloudTalentV4BatchOperationMetadata: Metadata used for long
1967// running operations returned by CTS batch APIs. It's used to replace
1968// google.longrunning.Operation.metadata.
1969type GoogleCloudTalentV4BatchOperationMetadata struct {
1970	// CreateTime: The time when the batch operation is created.
1971	CreateTime string `json:"createTime,omitempty"`
1972
1973	// EndTime: The time when the batch operation is finished and
1974	// google.longrunning.Operation.done is set to `true`.
1975	EndTime string `json:"endTime,omitempty"`
1976
1977	// FailureCount: Count of failed item(s) inside an operation.
1978	FailureCount int64 `json:"failureCount,omitempty"`
1979
1980	// State: The state of a long running operation.
1981	//
1982	// Possible values:
1983	//   "STATE_UNSPECIFIED" - Default value.
1984	//   "INITIALIZING" - The batch operation is being prepared for
1985	// processing.
1986	//   "PROCESSING" - The batch operation is actively being processed.
1987	//   "SUCCEEDED" - The batch operation is processed, and at least one
1988	// item has been successfully processed.
1989	//   "FAILED" - The batch operation is done and no item has been
1990	// successfully processed.
1991	//   "CANCELLING" - The batch operation is in the process of cancelling
1992	// after google.longrunning.Operations.CancelOperation is called.
1993	//   "CANCELLED" - The batch operation is done after
1994	// google.longrunning.Operations.CancelOperation is called. Any items
1995	// processed before cancelling are returned in the response.
1996	State string `json:"state,omitempty"`
1997
1998	// StateDescription: More detailed information about operation state.
1999	StateDescription string `json:"stateDescription,omitempty"`
2000
2001	// SuccessCount: Count of successful item(s) inside an operation.
2002	SuccessCount int64 `json:"successCount,omitempty"`
2003
2004	// TotalCount: Count of total item(s) inside an operation.
2005	TotalCount int64 `json:"totalCount,omitempty"`
2006
2007	// UpdateTime: The time when the batch operation status is updated. The
2008	// metadata and the update_time is refreshed every minute otherwise
2009	// cached data is returned.
2010	UpdateTime string `json:"updateTime,omitempty"`
2011
2012	// ForceSendFields is a list of field names (e.g. "CreateTime") to
2013	// unconditionally include in API requests. By default, fields with
2014	// empty values are omitted from API requests. However, any non-pointer,
2015	// non-interface field appearing in ForceSendFields will be sent to the
2016	// server regardless of whether the field is empty or not. This may be
2017	// used to include empty fields in Patch requests.
2018	ForceSendFields []string `json:"-"`
2019
2020	// NullFields is a list of field names (e.g. "CreateTime") to include in
2021	// API requests with the JSON null value. By default, fields with empty
2022	// values are omitted from API requests. However, any field with an
2023	// empty value appearing in NullFields will be sent to the server as
2024	// null. It is an error if a field in this list has a non-empty value.
2025	// This may be used to include null fields in Patch requests.
2026	NullFields []string `json:"-"`
2027}
2028
2029func (s *GoogleCloudTalentV4BatchOperationMetadata) MarshalJSON() ([]byte, error) {
2030	type NoMethod GoogleCloudTalentV4BatchOperationMetadata
2031	raw := NoMethod(*s)
2032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2033}
2034
2035// GoogleCloudTalentV4BatchUpdateJobsResponse: The result of
2036// JobService.BatchUpdateJobs. It's used to replace
2037// google.longrunning.Operation.response in case of success.
2038type GoogleCloudTalentV4BatchUpdateJobsResponse struct {
2039	// JobResults: List of job mutation results from a batch update
2040	// operation. It can change until operation status is FINISHED, FAILED
2041	// or CANCELLED.
2042	JobResults []*GoogleCloudTalentV4JobResult `json:"jobResults,omitempty"`
2043
2044	// ForceSendFields is a list of field names (e.g. "JobResults") to
2045	// unconditionally include in API requests. By default, fields with
2046	// empty values are omitted from API requests. However, any non-pointer,
2047	// non-interface field appearing in ForceSendFields will be sent to the
2048	// server regardless of whether the field is empty or not. This may be
2049	// used to include empty fields in Patch requests.
2050	ForceSendFields []string `json:"-"`
2051
2052	// NullFields is a list of field names (e.g. "JobResults") to include in
2053	// API requests with the JSON null value. By default, fields with empty
2054	// values are omitted from API requests. However, any field with an
2055	// empty value appearing in NullFields will be sent to the server as
2056	// null. It is an error if a field in this list has a non-empty value.
2057	// This may be used to include null fields in Patch requests.
2058	NullFields []string `json:"-"`
2059}
2060
2061func (s *GoogleCloudTalentV4BatchUpdateJobsResponse) MarshalJSON() ([]byte, error) {
2062	type NoMethod GoogleCloudTalentV4BatchUpdateJobsResponse
2063	raw := NoMethod(*s)
2064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2065}
2066
2067// GoogleCloudTalentV4CompensationInfo: Job compensation details.
2068type GoogleCloudTalentV4CompensationInfo struct {
2069	// AnnualizedBaseCompensationRange: Output only. Annualized base
2070	// compensation range. Computed as base compensation entry's
2071	// CompensationEntry.amount times
2072	// CompensationEntry.expected_units_per_year. See CompensationEntry for
2073	// explanation on compensation annualization.
2074	AnnualizedBaseCompensationRange *GoogleCloudTalentV4CompensationInfoCompensationRange `json:"annualizedBaseCompensationRange,omitempty"`
2075
2076	// AnnualizedTotalCompensationRange: Output only. Annualized total
2077	// compensation range. Computed as all compensation entries'
2078	// CompensationEntry.amount times
2079	// CompensationEntry.expected_units_per_year. See CompensationEntry for
2080	// explanation on compensation annualization.
2081	AnnualizedTotalCompensationRange *GoogleCloudTalentV4CompensationInfoCompensationRange `json:"annualizedTotalCompensationRange,omitempty"`
2082
2083	// Entries: Job compensation information. At most one entry can be of
2084	// type CompensationInfo.CompensationType.BASE, which is referred as
2085	// **base compensation entry** for the job.
2086	Entries []*GoogleCloudTalentV4CompensationInfoCompensationEntry `json:"entries,omitempty"`
2087
2088	// ForceSendFields is a list of field names (e.g.
2089	// "AnnualizedBaseCompensationRange") to unconditionally include in API
2090	// requests. By default, fields with empty values are omitted from API
2091	// requests. However, any non-pointer, non-interface field appearing in
2092	// ForceSendFields will be sent to the server regardless of whether the
2093	// field is empty or not. This may be used to include empty fields in
2094	// Patch requests.
2095	ForceSendFields []string `json:"-"`
2096
2097	// NullFields is a list of field names (e.g.
2098	// "AnnualizedBaseCompensationRange") to include in API requests with
2099	// the JSON null value. By default, fields with empty values are omitted
2100	// from API requests. However, any field with an empty value appearing
2101	// in NullFields will be sent to the server as null. It is an error if a
2102	// field in this list has a non-empty value. This may be used to include
2103	// null fields in Patch requests.
2104	NullFields []string `json:"-"`
2105}
2106
2107func (s *GoogleCloudTalentV4CompensationInfo) MarshalJSON() ([]byte, error) {
2108	type NoMethod GoogleCloudTalentV4CompensationInfo
2109	raw := NoMethod(*s)
2110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2111}
2112
2113// GoogleCloudTalentV4CompensationInfoCompensationEntry: A compensation
2114// entry that represents one component of compensation, such as base
2115// pay, bonus, or other compensation type. Annualization: One
2116// compensation entry can be annualized if - it contains valid amount or
2117// range. - and its expected_units_per_year is set or can be derived.
2118// Its annualized range is determined as (amount or range) times
2119// expected_units_per_year.
2120type GoogleCloudTalentV4CompensationInfoCompensationEntry struct {
2121	// Amount: Compensation amount.
2122	Amount *Money `json:"amount,omitempty"`
2123
2124	// Description: Compensation description. For example, could indicate
2125	// equity terms or provide additional context to an estimated bonus.
2126	Description string `json:"description,omitempty"`
2127
2128	// ExpectedUnitsPerYear: Expected number of units paid each year. If not
2129	// specified, when Job.employment_types is FULLTIME, a default value is
2130	// inferred based on unit. Default values: - HOURLY: 2080 - DAILY: 260 -
2131	// WEEKLY: 52 - MONTHLY: 12 - ANNUAL: 1
2132	ExpectedUnitsPerYear float64 `json:"expectedUnitsPerYear,omitempty"`
2133
2134	// Range: Compensation range.
2135	Range *GoogleCloudTalentV4CompensationInfoCompensationRange `json:"range,omitempty"`
2136
2137	// Type: Compensation type. Default is
2138	// CompensationType.COMPENSATION_TYPE_UNSPECIFIED.
2139	//
2140	// Possible values:
2141	//   "COMPENSATION_TYPE_UNSPECIFIED" - Default value.
2142	//   "BASE" - Base compensation: Refers to the fixed amount of money
2143	// paid to an employee by an employer in return for work performed. Base
2144	// compensation does not include benefits, bonuses or any other
2145	// potential compensation from an employer.
2146	//   "BONUS" - Bonus.
2147	//   "SIGNING_BONUS" - Signing bonus.
2148	//   "EQUITY" - Equity.
2149	//   "PROFIT_SHARING" - Profit sharing.
2150	//   "COMMISSIONS" - Commission.
2151	//   "TIPS" - Tips.
2152	//   "OTHER_COMPENSATION_TYPE" - Other compensation type.
2153	Type string `json:"type,omitempty"`
2154
2155	// Unit: Frequency of the specified amount. Default is
2156	// CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.
2157	//
2158	// Possible values:
2159	//   "COMPENSATION_UNIT_UNSPECIFIED" - Default value.
2160	//   "HOURLY" - Hourly.
2161	//   "DAILY" - Daily.
2162	//   "WEEKLY" - Weekly
2163	//   "MONTHLY" - Monthly.
2164	//   "YEARLY" - Yearly.
2165	//   "ONE_TIME" - One time.
2166	//   "OTHER_COMPENSATION_UNIT" - Other compensation units.
2167	Unit string `json:"unit,omitempty"`
2168
2169	// ForceSendFields is a list of field names (e.g. "Amount") to
2170	// unconditionally include in API requests. By default, fields with
2171	// empty values are omitted from API requests. However, any non-pointer,
2172	// non-interface field appearing in ForceSendFields will be sent to the
2173	// server regardless of whether the field is empty or not. This may be
2174	// used to include empty fields in Patch requests.
2175	ForceSendFields []string `json:"-"`
2176
2177	// NullFields is a list of field names (e.g. "Amount") to include in API
2178	// requests with the JSON null value. By default, fields with empty
2179	// values are omitted from API requests. However, any field with an
2180	// empty value appearing in NullFields will be sent to the server as
2181	// null. It is an error if a field in this list has a non-empty value.
2182	// This may be used to include null fields in Patch requests.
2183	NullFields []string `json:"-"`
2184}
2185
2186func (s *GoogleCloudTalentV4CompensationInfoCompensationEntry) MarshalJSON() ([]byte, error) {
2187	type NoMethod GoogleCloudTalentV4CompensationInfoCompensationEntry
2188	raw := NoMethod(*s)
2189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2190}
2191
2192func (s *GoogleCloudTalentV4CompensationInfoCompensationEntry) UnmarshalJSON(data []byte) error {
2193	type NoMethod GoogleCloudTalentV4CompensationInfoCompensationEntry
2194	var s1 struct {
2195		ExpectedUnitsPerYear gensupport.JSONFloat64 `json:"expectedUnitsPerYear"`
2196		*NoMethod
2197	}
2198	s1.NoMethod = (*NoMethod)(s)
2199	if err := json.Unmarshal(data, &s1); err != nil {
2200		return err
2201	}
2202	s.ExpectedUnitsPerYear = float64(s1.ExpectedUnitsPerYear)
2203	return nil
2204}
2205
2206// GoogleCloudTalentV4CompensationInfoCompensationRange: Compensation
2207// range.
2208type GoogleCloudTalentV4CompensationInfoCompensationRange struct {
2209	// MaxCompensation: The maximum amount of compensation. If left empty,
2210	// the value is set to a maximal compensation value and the currency
2211	// code is set to match the currency code of min_compensation.
2212	MaxCompensation *Money `json:"maxCompensation,omitempty"`
2213
2214	// MinCompensation: The minimum amount of compensation. If left empty,
2215	// the value is set to zero and the currency code is set to match the
2216	// currency code of max_compensation.
2217	MinCompensation *Money `json:"minCompensation,omitempty"`
2218
2219	// ForceSendFields is a list of field names (e.g. "MaxCompensation") to
2220	// unconditionally include in API requests. By default, fields with
2221	// empty values are omitted from API requests. However, any non-pointer,
2222	// non-interface field appearing in ForceSendFields will be sent to the
2223	// server regardless of whether the field is empty or not. This may be
2224	// used to include empty fields in Patch requests.
2225	ForceSendFields []string `json:"-"`
2226
2227	// NullFields is a list of field names (e.g. "MaxCompensation") to
2228	// include in API requests with the JSON null value. By default, fields
2229	// with empty values are omitted from API requests. However, any field
2230	// with an empty value appearing in NullFields will be sent to the
2231	// server as null. It is an error if a field in this list has a
2232	// non-empty value. This may be used to include null fields in Patch
2233	// requests.
2234	NullFields []string `json:"-"`
2235}
2236
2237func (s *GoogleCloudTalentV4CompensationInfoCompensationRange) MarshalJSON() ([]byte, error) {
2238	type NoMethod GoogleCloudTalentV4CompensationInfoCompensationRange
2239	raw := NoMethod(*s)
2240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2241}
2242
2243// GoogleCloudTalentV4CustomAttribute: Custom attribute values that are
2244// either filterable or non-filterable.
2245type GoogleCloudTalentV4CustomAttribute struct {
2246	// Filterable: If the `filterable` flag is true, the custom field values
2247	// may be used for custom attribute filters
2248	// JobQuery.custom_attribute_filter. If false, these values may not be
2249	// used for custom attribute filters. Default is false.
2250	Filterable bool `json:"filterable,omitempty"`
2251
2252	// KeywordSearchable: If the `keyword_searchable` flag is true, the
2253	// keywords in custom fields are searchable by keyword match. If false,
2254	// the values are not searchable by keyword match. Default is false.
2255	KeywordSearchable bool `json:"keywordSearchable,omitempty"`
2256
2257	// LongValues: Exactly one of string_values or long_values must be
2258	// specified. This field is used to perform number range search. (`EQ`,
2259	// `GT`, `GE`, `LE`, `LT`) over filterable `long_value`. Currently at
2260	// most 1 long_values is supported.
2261	LongValues googleapi.Int64s `json:"longValues,omitempty"`
2262
2263	// StringValues: Exactly one of string_values or long_values must be
2264	// specified. This field is used to perform a string match
2265	// (`CASE_SENSITIVE_MATCH` or `CASE_INSENSITIVE_MATCH`) search. For
2266	// filterable `string_value`s, a maximum total number of 200 values is
2267	// allowed, with each `string_value` has a byte size of no more than
2268	// 500B. For unfilterable `string_values`, the maximum total byte size
2269	// of unfilterable `string_values` is 50KB. Empty string isn't allowed.
2270	StringValues []string `json:"stringValues,omitempty"`
2271
2272	// ForceSendFields is a list of field names (e.g. "Filterable") to
2273	// unconditionally include in API requests. By default, fields with
2274	// empty values are omitted from API requests. However, any non-pointer,
2275	// non-interface field appearing in ForceSendFields will be sent to the
2276	// server regardless of whether the field is empty or not. This may be
2277	// used to include empty fields in Patch requests.
2278	ForceSendFields []string `json:"-"`
2279
2280	// NullFields is a list of field names (e.g. "Filterable") to include in
2281	// API requests with the JSON null value. By default, fields with empty
2282	// values are omitted from API requests. However, any field with an
2283	// empty value appearing in NullFields will be sent to the server as
2284	// null. It is an error if a field in this list has a non-empty value.
2285	// This may be used to include null fields in Patch requests.
2286	NullFields []string `json:"-"`
2287}
2288
2289func (s *GoogleCloudTalentV4CustomAttribute) MarshalJSON() ([]byte, error) {
2290	type NoMethod GoogleCloudTalentV4CustomAttribute
2291	raw := NoMethod(*s)
2292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2293}
2294
2295// GoogleCloudTalentV4Job: A Job resource represents a job posting (also
2296// referred to as a "job listing" or "job requisition"). A job belongs
2297// to a Company, which is the hiring entity responsible for the job.
2298type GoogleCloudTalentV4Job struct {
2299	// Addresses: Strongly recommended for the best service experience.
2300	// Location(s) where the employer is looking to hire for this job
2301	// posting. Specifying the full street address(es) of the hiring
2302	// location enables better API results, especially job searches by
2303	// commute time. At most 50 locations are allowed for best search
2304	// performance. If a job has more locations, it is suggested to split it
2305	// into multiple jobs with unique requisition_ids (e.g. 'ReqA' becomes
2306	// 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
2307	// company, language_code and requisition_id are not allowed. If the
2308	// original requisition_id must be preserved, a custom field should be
2309	// used for storage. It is also suggested to group the locations that
2310	// close to each other in the same job for better search experience. The
2311	// maximum number of allowed characters is 500.
2312	Addresses []string `json:"addresses,omitempty"`
2313
2314	// ApplicationInfo: Job application information.
2315	ApplicationInfo *GoogleCloudTalentV4JobApplicationInfo `json:"applicationInfo,omitempty"`
2316
2317	// Company: Required. The resource name of the company listing the job.
2318	// The format is
2319	// "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}".
2320	// For example, "projects/foo/tenants/bar/companies/baz".
2321	Company string `json:"company,omitempty"`
2322
2323	// CompanyDisplayName: Output only. Display name of the company listing
2324	// the job.
2325	CompanyDisplayName string `json:"companyDisplayName,omitempty"`
2326
2327	// CompensationInfo: Job compensation information (a.k.a. "pay rate")
2328	// i.e., the compensation that will paid to the employee.
2329	CompensationInfo *GoogleCloudTalentV4CompensationInfo `json:"compensationInfo,omitempty"`
2330
2331	// CustomAttributes: A map of fields to hold both filterable and
2332	// non-filterable custom job attributes that are not covered by the
2333	// provided structured fields. The keys of the map are strings up to 64
2334	// bytes and must match the pattern: a-zA-Z*. For example, key0LikeThis
2335	// or KEY_1_LIKE_THIS. At most 100 filterable and at most 100
2336	// unfilterable keys are supported. For filterable `string_values`,
2337	// across all keys at most 200 values are allowed, with each string no
2338	// more than 255 characters. For unfilterable `string_values`, the
2339	// maximum total size of `string_values` across all keys is 50KB.
2340	CustomAttributes map[string]GoogleCloudTalentV4CustomAttribute `json:"customAttributes,omitempty"`
2341
2342	// DegreeTypes: The desired education degrees for the job, such as
2343	// Bachelors, Masters.
2344	//
2345	// Possible values:
2346	//   "DEGREE_TYPE_UNSPECIFIED" - Default value. Represents no degree, or
2347	// early childhood education. Maps to ISCED code 0. Ex) Kindergarten
2348	//   "PRIMARY_EDUCATION" - Primary education which is typically the
2349	// first stage of compulsory education. ISCED code 1. Ex) Elementary
2350	// school
2351	//   "LOWER_SECONDARY_EDUCATION" - Lower secondary education; First
2352	// stage of secondary education building on primary education, typically
2353	// with a more subject-oriented curriculum. ISCED code 2. Ex) Middle
2354	// school
2355	//   "UPPER_SECONDARY_EDUCATION" - Middle education; Second/final stage
2356	// of secondary education preparing for tertiary education and/or
2357	// providing skills relevant to employment. Usually with an increased
2358	// range of subject options and streams. ISCED code 3. Ex) High school
2359	//   "ADULT_REMEDIAL_EDUCATION" - Adult Remedial Education; Programmes
2360	// providing learning experiences that build on secondary education and
2361	// prepare for labour market entry and/or tertiary education. The
2362	// content is broader than secondary but not as complex as tertiary
2363	// education. ISCED code 4.
2364	//   "ASSOCIATES_OR_EQUIVALENT" - Associate's or equivalent; Short first
2365	// tertiary programmes that are typically practically-based,
2366	// occupationally-specific and prepare for labour market entry. These
2367	// programmes may also provide a pathway to other tertiary programmes.
2368	// ISCED code 5.
2369	//   "BACHELORS_OR_EQUIVALENT" - Bachelor's or equivalent; Programmes
2370	// designed to provide intermediate academic and/or professional
2371	// knowledge, skills and competencies leading to a first tertiary degree
2372	// or equivalent qualification. ISCED code 6.
2373	//   "MASTERS_OR_EQUIVALENT" - Master's or equivalent; Programmes
2374	// designed to provide advanced academic and/or professional knowledge,
2375	// skills and competencies leading to a second tertiary degree or
2376	// equivalent qualification. ISCED code 7.
2377	//   "DOCTORAL_OR_EQUIVALENT" - Doctoral or equivalent; Programmes
2378	// designed primarily to lead to an advanced research qualification,
2379	// usually concluding with the submission and defense of a substantive
2380	// dissertation of publishable quality based on original research. ISCED
2381	// code 8.
2382	DegreeTypes []string `json:"degreeTypes,omitempty"`
2383
2384	// Department: The department or functional area within the company with
2385	// the open position. The maximum number of allowed characters is 255.
2386	Department string `json:"department,omitempty"`
2387
2388	// DerivedInfo: Output only. Derived details about the job posting.
2389	DerivedInfo *GoogleCloudTalentV4JobDerivedInfo `json:"derivedInfo,omitempty"`
2390
2391	// Description: Required. The description of the job, which typically
2392	// includes a multi-paragraph description of the company and related
2393	// information. Separate fields are provided on the job object for
2394	// responsibilities, qualifications, and other job characteristics. Use
2395	// of these separate job fields is recommended. This field accepts and
2396	// sanitizes HTML input, and also accepts bold, italic, ordered list,
2397	// and unordered list markup tags. The maximum number of allowed
2398	// characters is 100,000.
2399	Description string `json:"description,omitempty"`
2400
2401	// EmploymentTypes: The employment type(s) of a job, for example, full
2402	// time or part time.
2403	//
2404	// Possible values:
2405	//   "EMPLOYMENT_TYPE_UNSPECIFIED" - The default value if the employment
2406	// type isn't specified.
2407	//   "FULL_TIME" - The job requires working a number of hours that
2408	// constitute full time employment, typically 40 or more hours per week.
2409	//   "PART_TIME" - The job entails working fewer hours than a full time
2410	// job, typically less than 40 hours a week.
2411	//   "CONTRACTOR" - The job is offered as a contracted, as opposed to a
2412	// salaried employee, position.
2413	//   "CONTRACT_TO_HIRE" - The job is offered as a contracted position
2414	// with the understanding that it's converted into a full-time position
2415	// at the end of the contract. Jobs of this type are also returned by a
2416	// search for EmploymentType.CONTRACTOR jobs.
2417	//   "TEMPORARY" - The job is offered as a temporary employment
2418	// opportunity, usually a short-term engagement.
2419	//   "INTERN" - The job is a fixed-term opportunity for students or
2420	// entry-level job seekers to obtain on-the-job training, typically
2421	// offered as a summer position.
2422	//   "VOLUNTEER" - The is an opportunity for an individual to volunteer,
2423	// where there's no expectation of compensation for the provided
2424	// services.
2425	//   "PER_DIEM" - The job requires an employee to work on an as-needed
2426	// basis with a flexible schedule.
2427	//   "FLY_IN_FLY_OUT" - The job involves employing people in remote
2428	// areas and flying them temporarily to the work site instead of
2429	// relocating employees and their families permanently.
2430	//   "OTHER_EMPLOYMENT_TYPE" - The job does not fit any of the other
2431	// listed types.
2432	EmploymentTypes []string `json:"employmentTypes,omitempty"`
2433
2434	// Incentives: A description of bonus, commission, and other
2435	// compensation incentives associated with the job not including salary
2436	// or pay. The maximum number of allowed characters is 10,000.
2437	Incentives string `json:"incentives,omitempty"`
2438
2439	// JobBenefits: The benefits included with the job.
2440	//
2441	// Possible values:
2442	//   "JOB_BENEFIT_UNSPECIFIED" - Default value if the type isn't
2443	// specified.
2444	//   "CHILD_CARE" - The job includes access to programs that support
2445	// child care, such as daycare.
2446	//   "DENTAL" - The job includes dental services covered by a dental
2447	// insurance plan.
2448	//   "DOMESTIC_PARTNER" - The job offers specific benefits to domestic
2449	// partners.
2450	//   "FLEXIBLE_HOURS" - The job allows for a flexible work schedule.
2451	//   "MEDICAL" - The job includes health services covered by a medical
2452	// insurance plan.
2453	//   "LIFE_INSURANCE" - The job includes a life insurance plan provided
2454	// by the employer or available for purchase by the employee.
2455	//   "PARENTAL_LEAVE" - The job allows for a leave of absence to a
2456	// parent to care for a newborn child.
2457	//   "RETIREMENT_PLAN" - The job includes a workplace retirement plan
2458	// provided by the employer or available for purchase by the employee.
2459	//   "SICK_DAYS" - The job allows for paid time off due to illness.
2460	//   "VACATION" - The job includes paid time off for vacation.
2461	//   "VISION" - The job includes vision services covered by a vision
2462	// insurance plan.
2463	JobBenefits []string `json:"jobBenefits,omitempty"`
2464
2465	// JobEndTime: The end timestamp of the job. Typically this field is
2466	// used for contracting engagements. Invalid timestamps are ignored.
2467	JobEndTime string `json:"jobEndTime,omitempty"`
2468
2469	// JobLevel: The experience level associated with the job, such as
2470	// "Entry Level".
2471	//
2472	// Possible values:
2473	//   "JOB_LEVEL_UNSPECIFIED" - The default value if the level isn't
2474	// specified.
2475	//   "ENTRY_LEVEL" - Entry-level individual contributors, typically with
2476	// less than 2 years of experience in a similar role. Includes interns.
2477	//   "EXPERIENCED" - Experienced individual contributors, typically with
2478	// 2+ years of experience in a similar role.
2479	//   "MANAGER" - Entry- to mid-level managers responsible for managing a
2480	// team of people.
2481	//   "DIRECTOR" - Senior-level managers responsible for managing teams
2482	// of managers.
2483	//   "EXECUTIVE" - Executive-level managers and above, including C-level
2484	// positions.
2485	JobLevel string `json:"jobLevel,omitempty"`
2486
2487	// JobStartTime: The start timestamp of the job in UTC time zone.
2488	// Typically this field is used for contracting engagements. Invalid
2489	// timestamps are ignored.
2490	JobStartTime string `json:"jobStartTime,omitempty"`
2491
2492	// LanguageCode: The language of the posting. This field is distinct
2493	// from any requirements for fluency that are associated with the job.
2494	// Language codes must be in BCP-47 format, such as "en-US" or
2495	// "sr-Latn". For more information, see [Tags for Identifying
2496	// Languages](https://tools.ietf.org/html/bcp47){: class="external"
2497	// target="_blank" }. If this field is unspecified and Job.description
2498	// is present, detected language code based on Job.description is
2499	// assigned, otherwise defaults to 'en_US'.
2500	LanguageCode string `json:"languageCode,omitempty"`
2501
2502	// Name: Required during job update. The resource name for the job. This
2503	// is generated by the service when a job is created. The format is
2504	// "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}". For
2505	// example, "projects/foo/tenants/bar/jobs/baz". Use of this field in
2506	// job queries and API calls is preferred over the use of requisition_id
2507	// since this value is unique.
2508	Name string `json:"name,omitempty"`
2509
2510	// PostingCreateTime: Output only. The timestamp when this job posting
2511	// was created.
2512	PostingCreateTime string `json:"postingCreateTime,omitempty"`
2513
2514	// PostingExpireTime: Strongly recommended for the best service
2515	// experience. The expiration timestamp of the job. After this
2516	// timestamp, the job is marked as expired, and it no longer appears in
2517	// search results. The expired job can't be listed by the ListJobs API,
2518	// but it can be retrieved with the GetJob API or updated with the
2519	// UpdateJob API or deleted with the DeleteJob API. An expired job can
2520	// be updated and opened again by using a future expiration timestamp.
2521	// Updating an expired job fails if there is another existing open job
2522	// with same company, language_code and requisition_id. The expired jobs
2523	// are retained in our system for 90 days. However, the overall expired
2524	// job count cannot exceed 3 times the maximum number of open jobs over
2525	// previous 7 days. If this threshold is exceeded, expired jobs are
2526	// cleaned out in order of earliest expire time. Expired jobs are no
2527	// longer accessible after they are cleaned out. Invalid timestamps are
2528	// ignored, and treated as expire time not provided. If the timestamp is
2529	// before the instant request is made, the job is treated as expired
2530	// immediately on creation. This kind of job can not be updated. And
2531	// when creating a job with past timestamp, the posting_publish_time
2532	// must be set before posting_expire_time. The purpose of this feature
2533	// is to allow other objects, such as Application, to refer a job that
2534	// didn't exist in the system prior to becoming expired. If you want to
2535	// modify a job that was expired on creation, delete it and create a new
2536	// one. If this value isn't provided at the time of job creation or is
2537	// invalid, the job posting expires after 30 days from the job's
2538	// creation time. For example, if the job was created on 2017/01/01
2539	// 13:00AM UTC with an unspecified expiration date, the job expires
2540	// after 2017/01/31 13:00AM UTC. If this value isn't provided on job
2541	// update, it depends on the field masks set by
2542	// UpdateJobRequest.update_mask. If the field masks include
2543	// job_end_time, or the masks are empty meaning that every field is
2544	// updated, the job posting expires after 30 days from the job's last
2545	// update time. Otherwise the expiration date isn't updated.
2546	PostingExpireTime string `json:"postingExpireTime,omitempty"`
2547
2548	// PostingPublishTime: The timestamp this job posting was most recently
2549	// published. The default value is the time the request arrives at the
2550	// server. Invalid timestamps are ignored.
2551	PostingPublishTime string `json:"postingPublishTime,omitempty"`
2552
2553	// PostingRegion: The job PostingRegion (for example, state, country)
2554	// throughout which the job is available. If this field is set, a
2555	// LocationFilter in a search query within the job region finds this job
2556	// posting if an exact location match isn't specified. If this field is
2557	// set to PostingRegion.NATION or PostingRegion.ADMINISTRATIVE_AREA,
2558	// setting job Job.addresses to the same location level as this field is
2559	// strongly recommended.
2560	//
2561	// Possible values:
2562	//   "POSTING_REGION_UNSPECIFIED" - If the region is unspecified, the
2563	// job is only returned if it matches the LocationFilter.
2564	//   "ADMINISTRATIVE_AREA" - In addition to exact location matching, job
2565	// posting is returned when the LocationFilter in the search query is in
2566	// the same administrative area as the returned job posting. For
2567	// example, if a `ADMINISTRATIVE_AREA` job is posted in "CA, USA", it's
2568	// returned if LocationFilter has "Mountain View". Administrative area
2569	// refers to top-level administrative subdivision of this country. For
2570	// example, US state, IT region, UK constituent nation and JP
2571	// prefecture.
2572	//   "NATION" - In addition to exact location matching, job is returned
2573	// when LocationFilter in search query is in the same country as this
2574	// job. For example, if a `NATION_WIDE` job is posted in "USA", it's
2575	// returned if LocationFilter has 'Mountain View'.
2576	//   "TELECOMMUTE" - Job allows employees to work remotely
2577	// (telecommute). If locations are provided with this value, the job is
2578	// considered as having a location, but telecommuting is allowed.
2579	PostingRegion string `json:"postingRegion,omitempty"`
2580
2581	// PostingUpdateTime: Output only. The timestamp when this job posting
2582	// was last updated.
2583	PostingUpdateTime string `json:"postingUpdateTime,omitempty"`
2584
2585	// ProcessingOptions: Options for job processing.
2586	ProcessingOptions *GoogleCloudTalentV4JobProcessingOptions `json:"processingOptions,omitempty"`
2587
2588	// PromotionValue: A promotion value of the job, as determined by the
2589	// client. The value determines the sort order of the jobs returned when
2590	// searching for jobs using the featured jobs search call, with higher
2591	// promotional values being returned first and ties being resolved by
2592	// relevance sort. Only the jobs with a promotionValue >0 are returned
2593	// in a FEATURED_JOB_SEARCH. Default value is 0, and negative values are
2594	// treated as 0.
2595	PromotionValue int64 `json:"promotionValue,omitempty"`
2596
2597	// Qualifications: A description of the qualifications required to
2598	// perform the job. The use of this field is recommended as an
2599	// alternative to using the more general description field. This field
2600	// accepts and sanitizes HTML input, and also accepts bold, italic,
2601	// ordered list, and unordered list markup tags. The maximum number of
2602	// allowed characters is 10,000.
2603	Qualifications string `json:"qualifications,omitempty"`
2604
2605	// RequisitionId: Required. The requisition ID, also referred to as the
2606	// posting ID, is assigned by the client to identify a job. This field
2607	// is intended to be used by clients for client identification and
2608	// tracking of postings. A job isn't allowed to be created if there is
2609	// another job with the same company, language_code and requisition_id.
2610	// The maximum number of allowed characters is 255.
2611	RequisitionId string `json:"requisitionId,omitempty"`
2612
2613	// Responsibilities: A description of job responsibilities. The use of
2614	// this field is recommended as an alternative to using the more general
2615	// description field. This field accepts and sanitizes HTML input, and
2616	// also accepts bold, italic, ordered list, and unordered list markup
2617	// tags. The maximum number of allowed characters is 10,000.
2618	Responsibilities string `json:"responsibilities,omitempty"`
2619
2620	// Title: Required. The title of the job, such as "Software Engineer"
2621	// The maximum number of allowed characters is 500.
2622	Title string `json:"title,omitempty"`
2623
2624	// Visibility: Deprecated. The job is only visible to the owner. The
2625	// visibility of the job. Defaults to Visibility.ACCOUNT_ONLY if not
2626	// specified.
2627	//
2628	// Possible values:
2629	//   "VISIBILITY_UNSPECIFIED" - Default value.
2630	//   "ACCOUNT_ONLY" - The resource is only visible to the GCP account
2631	// who owns it.
2632	//   "SHARED_WITH_GOOGLE" - The resource is visible to the owner and may
2633	// be visible to other applications and processes at Google.
2634	//   "SHARED_WITH_PUBLIC" - The resource is visible to the owner and may
2635	// be visible to all other API clients.
2636	Visibility string `json:"visibility,omitempty"`
2637
2638	// ForceSendFields is a list of field names (e.g. "Addresses") to
2639	// unconditionally include in API requests. By default, fields with
2640	// empty values are omitted from API requests. However, any non-pointer,
2641	// non-interface field appearing in ForceSendFields will be sent to the
2642	// server regardless of whether the field is empty or not. This may be
2643	// used to include empty fields in Patch requests.
2644	ForceSendFields []string `json:"-"`
2645
2646	// NullFields is a list of field names (e.g. "Addresses") to include in
2647	// API requests with the JSON null value. By default, fields with empty
2648	// values are omitted from API requests. However, any field with an
2649	// empty value appearing in NullFields will be sent to the server as
2650	// null. It is an error if a field in this list has a non-empty value.
2651	// This may be used to include null fields in Patch requests.
2652	NullFields []string `json:"-"`
2653}
2654
2655func (s *GoogleCloudTalentV4Job) MarshalJSON() ([]byte, error) {
2656	type NoMethod GoogleCloudTalentV4Job
2657	raw := NoMethod(*s)
2658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2659}
2660
2661// GoogleCloudTalentV4JobApplicationInfo: Application related details of
2662// a job posting.
2663type GoogleCloudTalentV4JobApplicationInfo struct {
2664	// Emails: Use this field to specify email address(es) to which resumes
2665	// or applications can be sent. The maximum number of allowed characters
2666	// for each entry is 255.
2667	Emails []string `json:"emails,omitempty"`
2668
2669	// Instruction: Use this field to provide instructions, such as "Mail
2670	// your application to ...", that a candidate can follow to apply for
2671	// the job. This field accepts and sanitizes HTML input, and also
2672	// accepts bold, italic, ordered list, and unordered list markup tags.
2673	// The maximum number of allowed characters is 3,000.
2674	Instruction string `json:"instruction,omitempty"`
2675
2676	// Uris: Use this URI field to direct an applicant to a website, for
2677	// example to link to an online application form. The maximum number of
2678	// allowed characters for each entry is 2,000.
2679	Uris []string `json:"uris,omitempty"`
2680
2681	// ForceSendFields is a list of field names (e.g. "Emails") to
2682	// unconditionally include in API requests. By default, fields with
2683	// empty values are omitted from API requests. However, any non-pointer,
2684	// non-interface field appearing in ForceSendFields will be sent to the
2685	// server regardless of whether the field is empty or not. This may be
2686	// used to include empty fields in Patch requests.
2687	ForceSendFields []string `json:"-"`
2688
2689	// NullFields is a list of field names (e.g. "Emails") to include in API
2690	// requests with the JSON null value. By default, fields with empty
2691	// values are omitted from API requests. However, any field with an
2692	// empty value appearing in NullFields will be sent to the server as
2693	// null. It is an error if a field in this list has a non-empty value.
2694	// This may be used to include null fields in Patch requests.
2695	NullFields []string `json:"-"`
2696}
2697
2698func (s *GoogleCloudTalentV4JobApplicationInfo) MarshalJSON() ([]byte, error) {
2699	type NoMethod GoogleCloudTalentV4JobApplicationInfo
2700	raw := NoMethod(*s)
2701	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2702}
2703
2704// GoogleCloudTalentV4JobDerivedInfo: Derived details about the job
2705// posting.
2706type GoogleCloudTalentV4JobDerivedInfo struct {
2707	// JobCategories: Job categories derived from Job.title and
2708	// Job.description.
2709	//
2710	// Possible values:
2711	//   "JOB_CATEGORY_UNSPECIFIED" - The default value if the category
2712	// isn't specified.
2713	//   "ACCOUNTING_AND_FINANCE" - An accounting and finance job, such as
2714	// an Accountant.
2715	//   "ADMINISTRATIVE_AND_OFFICE" - An administrative and office job,
2716	// such as an Administrative Assistant.
2717	//   "ADVERTISING_AND_MARKETING" - An advertising and marketing job,
2718	// such as Marketing Manager.
2719	//   "ANIMAL_CARE" - An animal care job, such as Veterinarian.
2720	//   "ART_FASHION_AND_DESIGN" - An art, fashion, or design job, such as
2721	// Designer.
2722	//   "BUSINESS_OPERATIONS" - A business operations job, such as Business
2723	// Operations Manager.
2724	//   "CLEANING_AND_FACILITIES" - A cleaning and facilities job, such as
2725	// Custodial Staff.
2726	//   "COMPUTER_AND_IT" - A computer and IT job, such as Systems
2727	// Administrator.
2728	//   "CONSTRUCTION" - A construction job, such as General Laborer.
2729	//   "CUSTOMER_SERVICE" - A customer service job, such s Cashier.
2730	//   "EDUCATION" - An education job, such as School Teacher.
2731	//   "ENTERTAINMENT_AND_TRAVEL" - An entertainment and travel job, such
2732	// as Flight Attendant.
2733	//   "FARMING_AND_OUTDOORS" - A farming or outdoor job, such as Park
2734	// Ranger.
2735	//   "HEALTHCARE" - A healthcare job, such as Registered Nurse.
2736	//   "HUMAN_RESOURCES" - A human resources job, such as Human Resources
2737	// Director.
2738	//   "INSTALLATION_MAINTENANCE_AND_REPAIR" - An installation,
2739	// maintenance, or repair job, such as Electrician.
2740	//   "LEGAL" - A legal job, such as Law Clerk.
2741	//   "MANAGEMENT" - A management job, often used in conjunction with
2742	// another category, such as Store Manager.
2743	//   "MANUFACTURING_AND_WAREHOUSE" - A manufacturing or warehouse job,
2744	// such as Assembly Technician.
2745	//   "MEDIA_COMMUNICATIONS_AND_WRITING" - A media, communications, or
2746	// writing job, such as Media Relations.
2747	//   "OIL_GAS_AND_MINING" - An oil, gas or mining job, such as Offshore
2748	// Driller.
2749	//   "PERSONAL_CARE_AND_SERVICES" - A personal care and services job,
2750	// such as Hair Stylist.
2751	//   "PROTECTIVE_SERVICES" - A protective services job, such as Security
2752	// Guard.
2753	//   "REAL_ESTATE" - A real estate job, such as Buyer's Agent.
2754	//   "RESTAURANT_AND_HOSPITALITY" - A restaurant and hospitality job,
2755	// such as Restaurant Server.
2756	//   "SALES_AND_RETAIL" - A sales and/or retail job, such Sales
2757	// Associate.
2758	//   "SCIENCE_AND_ENGINEERING" - A science and engineering job, such as
2759	// Lab Technician.
2760	//   "SOCIAL_SERVICES_AND_NON_PROFIT" - A social services or non-profit
2761	// job, such as Case Worker.
2762	//   "SPORTS_FITNESS_AND_RECREATION" - A sports, fitness, or recreation
2763	// job, such as Personal Trainer.
2764	//   "TRANSPORTATION_AND_LOGISTICS" - A transportation or logistics job,
2765	// such as Truck Driver.
2766	JobCategories []string `json:"jobCategories,omitempty"`
2767
2768	// Locations: Structured locations of the job, resolved from
2769	// Job.addresses. locations are exactly matched to Job.addresses in the
2770	// same order.
2771	Locations []*GoogleCloudTalentV4Location `json:"locations,omitempty"`
2772
2773	// ForceSendFields is a list of field names (e.g. "JobCategories") to
2774	// unconditionally include in API requests. By default, fields with
2775	// empty values are omitted from API requests. However, any non-pointer,
2776	// non-interface field appearing in ForceSendFields will be sent to the
2777	// server regardless of whether the field is empty or not. This may be
2778	// used to include empty fields in Patch requests.
2779	ForceSendFields []string `json:"-"`
2780
2781	// NullFields is a list of field names (e.g. "JobCategories") to include
2782	// in API requests with the JSON null value. By default, fields with
2783	// empty values are omitted from API requests. However, any field with
2784	// an empty value appearing in NullFields will be sent to the server as
2785	// null. It is an error if a field in this list has a non-empty value.
2786	// This may be used to include null fields in Patch requests.
2787	NullFields []string `json:"-"`
2788}
2789
2790func (s *GoogleCloudTalentV4JobDerivedInfo) MarshalJSON() ([]byte, error) {
2791	type NoMethod GoogleCloudTalentV4JobDerivedInfo
2792	raw := NoMethod(*s)
2793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2794}
2795
2796// GoogleCloudTalentV4JobProcessingOptions: Options for job processing.
2797type GoogleCloudTalentV4JobProcessingOptions struct {
2798	// DisableStreetAddressResolution: If set to `true`, the service does
2799	// not attempt to resolve a more precise address for the job.
2800	DisableStreetAddressResolution bool `json:"disableStreetAddressResolution,omitempty"`
2801
2802	// HtmlSanitization: Option for job HTML content sanitization. Applied
2803	// fields are: * description * applicationInfo.instruction * incentives
2804	// * qualifications * responsibilities HTML tags in these fields may be
2805	// stripped if sanitiazation isn't disabled. Defaults to
2806	// HtmlSanitization.SIMPLE_FORMATTING_ONLY.
2807	//
2808	// Possible values:
2809	//   "HTML_SANITIZATION_UNSPECIFIED" - Default value.
2810	//   "HTML_SANITIZATION_DISABLED" - Disables sanitization on HTML input.
2811	//   "SIMPLE_FORMATTING_ONLY" - Sanitizes HTML input, only accepts bold,
2812	// italic, ordered list, and unordered list markup tags.
2813	HtmlSanitization string `json:"htmlSanitization,omitempty"`
2814
2815	// ForceSendFields is a list of field names (e.g.
2816	// "DisableStreetAddressResolution") to unconditionally include in API
2817	// requests. By default, fields with empty values are omitted from API
2818	// requests. However, any non-pointer, non-interface field appearing in
2819	// ForceSendFields will be sent to the server regardless of whether the
2820	// field is empty or not. This may be used to include empty fields in
2821	// Patch requests.
2822	ForceSendFields []string `json:"-"`
2823
2824	// NullFields is a list of field names (e.g.
2825	// "DisableStreetAddressResolution") to include in API requests with the
2826	// JSON null value. By default, fields with empty values are omitted
2827	// from API requests. However, any field with an empty value appearing
2828	// in NullFields will be sent to the server as null. It is an error if a
2829	// field in this list has a non-empty value. This may be used to include
2830	// null fields in Patch requests.
2831	NullFields []string `json:"-"`
2832}
2833
2834func (s *GoogleCloudTalentV4JobProcessingOptions) MarshalJSON() ([]byte, error) {
2835	type NoMethod GoogleCloudTalentV4JobProcessingOptions
2836	raw := NoMethod(*s)
2837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2838}
2839
2840// GoogleCloudTalentV4JobResult: Mutation result of a job from a batch
2841// operation.
2842type GoogleCloudTalentV4JobResult struct {
2843	// Job: Here Job only contains basic information including name,
2844	// company, language_code and requisition_id, use getJob method to
2845	// retrieve detailed information of the created/updated job.
2846	Job *GoogleCloudTalentV4Job `json:"job,omitempty"`
2847
2848	// Status: The status of the job processed. This field is populated if
2849	// the processing of the job fails.
2850	Status *Status `json:"status,omitempty"`
2851
2852	// ForceSendFields is a list of field names (e.g. "Job") to
2853	// unconditionally include in API requests. By default, fields with
2854	// empty values are omitted from API requests. However, any non-pointer,
2855	// non-interface field appearing in ForceSendFields will be sent to the
2856	// server regardless of whether the field is empty or not. This may be
2857	// used to include empty fields in Patch requests.
2858	ForceSendFields []string `json:"-"`
2859
2860	// NullFields is a list of field names (e.g. "Job") to include in API
2861	// requests with the JSON null value. By default, fields with empty
2862	// values are omitted from API requests. However, any field with an
2863	// empty value appearing in NullFields will be sent to the server as
2864	// null. It is an error if a field in this list has a non-empty value.
2865	// This may be used to include null fields in Patch requests.
2866	NullFields []string `json:"-"`
2867}
2868
2869func (s *GoogleCloudTalentV4JobResult) MarshalJSON() ([]byte, error) {
2870	type NoMethod GoogleCloudTalentV4JobResult
2871	raw := NoMethod(*s)
2872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2873}
2874
2875// GoogleCloudTalentV4Location: A resource that represents a location
2876// with full geographic information.
2877type GoogleCloudTalentV4Location struct {
2878	// LatLng: An object representing a latitude/longitude pair.
2879	LatLng *LatLng `json:"latLng,omitempty"`
2880
2881	// LocationType: The type of a location, which corresponds to the
2882	// address lines field of google.type.PostalAddress. For example,
2883	// "Downtown, Atlanta, GA, USA" has a type of LocationType.NEIGHBORHOOD,
2884	// and "Kansas City, KS, USA" has a type of LocationType.LOCALITY.
2885	//
2886	// Possible values:
2887	//   "LOCATION_TYPE_UNSPECIFIED" - Default value if the type isn't
2888	// specified.
2889	//   "COUNTRY" - A country level location.
2890	//   "ADMINISTRATIVE_AREA" - A state or equivalent level location.
2891	//   "SUB_ADMINISTRATIVE_AREA" - A county or equivalent level location.
2892	//   "LOCALITY" - A city or equivalent level location.
2893	//   "POSTAL_CODE" - A postal code level location.
2894	//   "SUB_LOCALITY" - A sublocality is a subdivision of a locality, for
2895	// example a city borough, ward, or arrondissement. Sublocalities are
2896	// usually recognized by a local political authority. For example,
2897	// Manhattan and Brooklyn are recognized as boroughs by the City of New
2898	// York, and are therefore modeled as sublocalities.
2899	//   "SUB_LOCALITY_1" - A district or equivalent level location.
2900	//   "SUB_LOCALITY_2" - A smaller district or equivalent level display.
2901	//   "NEIGHBORHOOD" - A neighborhood level location.
2902	//   "STREET_ADDRESS" - A street address level location.
2903	LocationType string `json:"locationType,omitempty"`
2904
2905	// PostalAddress: Postal address of the location that includes human
2906	// readable information, such as postal delivery and payments addresses.
2907	// Given a postal address, a postal service can deliver items to a
2908	// premises, P.O. Box, or other delivery location.
2909	PostalAddress *PostalAddress `json:"postalAddress,omitempty"`
2910
2911	// RadiusMiles: Radius in miles of the job location. This value is
2912	// derived from the location bounding box in which a circle with the
2913	// specified radius centered from google.type.LatLng covers the area
2914	// associated with the job location. For example, currently, "Mountain
2915	// View, CA, USA" has a radius of 6.17 miles.
2916	RadiusMiles float64 `json:"radiusMiles,omitempty"`
2917
2918	// ForceSendFields is a list of field names (e.g. "LatLng") to
2919	// unconditionally include in API requests. By default, fields with
2920	// empty values are omitted from API requests. However, any non-pointer,
2921	// non-interface field appearing in ForceSendFields will be sent to the
2922	// server regardless of whether the field is empty or not. This may be
2923	// used to include empty fields in Patch requests.
2924	ForceSendFields []string `json:"-"`
2925
2926	// NullFields is a list of field names (e.g. "LatLng") to include in API
2927	// requests with the JSON null value. By default, fields with empty
2928	// values are omitted from API requests. However, any field with an
2929	// empty value appearing in NullFields will be sent to the server as
2930	// null. It is an error if a field in this list has a non-empty value.
2931	// This may be used to include null fields in Patch requests.
2932	NullFields []string `json:"-"`
2933}
2934
2935func (s *GoogleCloudTalentV4Location) MarshalJSON() ([]byte, error) {
2936	type NoMethod GoogleCloudTalentV4Location
2937	raw := NoMethod(*s)
2938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2939}
2940
2941func (s *GoogleCloudTalentV4Location) UnmarshalJSON(data []byte) error {
2942	type NoMethod GoogleCloudTalentV4Location
2943	var s1 struct {
2944		RadiusMiles gensupport.JSONFloat64 `json:"radiusMiles"`
2945		*NoMethod
2946	}
2947	s1.NoMethod = (*NoMethod)(s)
2948	if err := json.Unmarshal(data, &s1); err != nil {
2949		return err
2950	}
2951	s.RadiusMiles = float64(s1.RadiusMiles)
2952	return nil
2953}
2954
2955// HistogramFacets: Input only. Histogram facets to be specified in
2956// SearchJobsRequest.
2957type HistogramFacets struct {
2958	// CompensationHistogramFacets: Optional. Specifies compensation
2959	// field-based histogram requests. Duplicate values of
2960	// CompensationHistogramRequest.type are not allowed.
2961	CompensationHistogramFacets []*CompensationHistogramRequest `json:"compensationHistogramFacets,omitempty"`
2962
2963	// CustomAttributeHistogramFacets: Optional. Specifies the custom
2964	// attributes histogram requests. Duplicate values of
2965	// CustomAttributeHistogramRequest.key are not allowed.
2966	CustomAttributeHistogramFacets []*CustomAttributeHistogramRequest `json:"customAttributeHistogramFacets,omitempty"`
2967
2968	// SimpleHistogramFacets: Optional. Specifies the simple type of
2969	// histogram facets, for example, `COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.
2970	// This field is equivalent to GetHistogramRequest.
2971	//
2972	// Possible values:
2973	//   "JOB_FIELD_UNSPECIFIED" - The default value if search type is not
2974	// specified.
2975	//   "COMPANY_ID" - Filter by the company id field.
2976	//   "EMPLOYMENT_TYPE" - Filter by the employment type field, such as
2977	// `FULL_TIME` or `PART_TIME`.
2978	//   "COMPANY_SIZE" - Filter by the company size type field, such as
2979	// `BIG`, `SMALL` or `BIGGER`.
2980	//   "DATE_PUBLISHED" - Filter by the date published field. Values are
2981	// stringified with TimeRange, for example, TimeRange.PAST_MONTH.
2982	//   "CUSTOM_FIELD_1" - Filter by custom field 1.
2983	//   "CUSTOM_FIELD_2" - Filter by custom field 2.
2984	//   "CUSTOM_FIELD_3" - Filter by custom field 3.
2985	//   "CUSTOM_FIELD_4" - Filter by custom field 4.
2986	//   "CUSTOM_FIELD_5" - Filter by custom field 5.
2987	//   "CUSTOM_FIELD_6" - Filter by custom field 6.
2988	//   "CUSTOM_FIELD_7" - Filter by custom field 7.
2989	//   "CUSTOM_FIELD_8" - Filter by custom field 8.
2990	//   "CUSTOM_FIELD_9" - Filter by custom field 9.
2991	//   "CUSTOM_FIELD_10" - Filter by custom field 10.
2992	//   "CUSTOM_FIELD_11" - Filter by custom field 11.
2993	//   "CUSTOM_FIELD_12" - Filter by custom field 12.
2994	//   "CUSTOM_FIELD_13" - Filter by custom field 13.
2995	//   "CUSTOM_FIELD_14" - Filter by custom field 14.
2996	//   "CUSTOM_FIELD_15" - Filter by custom field 15.
2997	//   "CUSTOM_FIELD_16" - Filter by custom field 16.
2998	//   "CUSTOM_FIELD_17" - Filter by custom field 17.
2999	//   "CUSTOM_FIELD_18" - Filter by custom field 18.
3000	//   "CUSTOM_FIELD_19" - Filter by custom field 19.
3001	//   "CUSTOM_FIELD_20" - Filter by custom field 20.
3002	//   "EDUCATION_LEVEL" - Filter by the required education level of the
3003	// job.
3004	//   "EXPERIENCE_LEVEL" - Filter by the required experience level of the
3005	// job.
3006	//   "ADMIN1" - Filter by Admin1, which is a global placeholder for
3007	// referring to state, province, or the particular term a country uses
3008	// to define the geographic structure below the country level. Examples
3009	// include states codes such as "CA", "IL", "NY", and provinces, such as
3010	// "BC".
3011	//   "COUNTRY" - Filter by the country code of job, such as US, JP, FR.
3012	//   "CITY" - Filter by the "city name", "Admin1 code", for example,
3013	// "Mountain View, CA" or "New York, NY".
3014	//   "LOCALE" - Filter by the locale field of a job, such as "en-US",
3015	// "fr-FR". This is the BCP-47 language code, such as "en-US" or
3016	// "sr-Latn". For more information, see [Tags for Identifying
3017	// Languages](https://tools.ietf.org/html/bcp47).
3018	//   "LANGUAGE" - Filter by the language code portion of the locale
3019	// field, such as "en" or "fr".
3020	//   "CATEGORY" - Filter by the Category.
3021	//   "CITY_COORDINATE" - Filter by the city center GPS coordinate
3022	// (latitude and longitude), for example, 37.4038522,-122.0987765. Since
3023	// the coordinates of a city center can change, clients may need to
3024	// refresh them periodically.
3025	//   "ADMIN1_COUNTRY" - A combination of state or province code with a
3026	// country code. This field differs from `JOB_ADMIN1`, which can be used
3027	// in multiple countries.
3028	//   "COMPANY_TITLE" - Deprecated. Use COMPANY_DISPLAY_NAME instead.
3029	// Company display name.
3030	//   "COMPANY_DISPLAY_NAME" - Company display name.
3031	//   "BASE_COMPENSATION_UNIT" - Base compensation unit.
3032	SimpleHistogramFacets []string `json:"simpleHistogramFacets,omitempty"`
3033
3034	// ForceSendFields is a list of field names (e.g.
3035	// "CompensationHistogramFacets") to unconditionally include in API
3036	// requests. By default, fields with empty values are omitted from API
3037	// requests. However, any non-pointer, non-interface field appearing in
3038	// ForceSendFields will be sent to the server regardless of whether the
3039	// field is empty or not. This may be used to include empty fields in
3040	// Patch requests.
3041	ForceSendFields []string `json:"-"`
3042
3043	// NullFields is a list of field names (e.g.
3044	// "CompensationHistogramFacets") to include in API requests with the
3045	// JSON null value. By default, fields with empty values are omitted
3046	// from API requests. However, any field with an empty value appearing
3047	// in NullFields will be sent to the server as null. It is an error if a
3048	// field in this list has a non-empty value. This may be used to include
3049	// null fields in Patch requests.
3050	NullFields []string `json:"-"`
3051}
3052
3053func (s *HistogramFacets) MarshalJSON() ([]byte, error) {
3054	type NoMethod HistogramFacets
3055	raw := NoMethod(*s)
3056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3057}
3058
3059// HistogramResult: Output only. Result of a histogram call. The
3060// response contains the histogram map for the search type specified by
3061// HistogramResult.field. The response is a map of each filter value to
3062// the corresponding count of jobs for that filter.
3063type HistogramResult struct {
3064	// SearchType: The Histogram search filters.
3065	//
3066	// Possible values:
3067	//   "JOB_FIELD_UNSPECIFIED" - The default value if search type is not
3068	// specified.
3069	//   "COMPANY_ID" - Filter by the company id field.
3070	//   "EMPLOYMENT_TYPE" - Filter by the employment type field, such as
3071	// `FULL_TIME` or `PART_TIME`.
3072	//   "COMPANY_SIZE" - Filter by the company size type field, such as
3073	// `BIG`, `SMALL` or `BIGGER`.
3074	//   "DATE_PUBLISHED" - Filter by the date published field. Values are
3075	// stringified with TimeRange, for example, TimeRange.PAST_MONTH.
3076	//   "CUSTOM_FIELD_1" - Filter by custom field 1.
3077	//   "CUSTOM_FIELD_2" - Filter by custom field 2.
3078	//   "CUSTOM_FIELD_3" - Filter by custom field 3.
3079	//   "CUSTOM_FIELD_4" - Filter by custom field 4.
3080	//   "CUSTOM_FIELD_5" - Filter by custom field 5.
3081	//   "CUSTOM_FIELD_6" - Filter by custom field 6.
3082	//   "CUSTOM_FIELD_7" - Filter by custom field 7.
3083	//   "CUSTOM_FIELD_8" - Filter by custom field 8.
3084	//   "CUSTOM_FIELD_9" - Filter by custom field 9.
3085	//   "CUSTOM_FIELD_10" - Filter by custom field 10.
3086	//   "CUSTOM_FIELD_11" - Filter by custom field 11.
3087	//   "CUSTOM_FIELD_12" - Filter by custom field 12.
3088	//   "CUSTOM_FIELD_13" - Filter by custom field 13.
3089	//   "CUSTOM_FIELD_14" - Filter by custom field 14.
3090	//   "CUSTOM_FIELD_15" - Filter by custom field 15.
3091	//   "CUSTOM_FIELD_16" - Filter by custom field 16.
3092	//   "CUSTOM_FIELD_17" - Filter by custom field 17.
3093	//   "CUSTOM_FIELD_18" - Filter by custom field 18.
3094	//   "CUSTOM_FIELD_19" - Filter by custom field 19.
3095	//   "CUSTOM_FIELD_20" - Filter by custom field 20.
3096	//   "EDUCATION_LEVEL" - Filter by the required education level of the
3097	// job.
3098	//   "EXPERIENCE_LEVEL" - Filter by the required experience level of the
3099	// job.
3100	//   "ADMIN1" - Filter by Admin1, which is a global placeholder for
3101	// referring to state, province, or the particular term a country uses
3102	// to define the geographic structure below the country level. Examples
3103	// include states codes such as "CA", "IL", "NY", and provinces, such as
3104	// "BC".
3105	//   "COUNTRY" - Filter by the country code of job, such as US, JP, FR.
3106	//   "CITY" - Filter by the "city name", "Admin1 code", for example,
3107	// "Mountain View, CA" or "New York, NY".
3108	//   "LOCALE" - Filter by the locale field of a job, such as "en-US",
3109	// "fr-FR". This is the BCP-47 language code, such as "en-US" or
3110	// "sr-Latn". For more information, see [Tags for Identifying
3111	// Languages](https://tools.ietf.org/html/bcp47).
3112	//   "LANGUAGE" - Filter by the language code portion of the locale
3113	// field, such as "en" or "fr".
3114	//   "CATEGORY" - Filter by the Category.
3115	//   "CITY_COORDINATE" - Filter by the city center GPS coordinate
3116	// (latitude and longitude), for example, 37.4038522,-122.0987765. Since
3117	// the coordinates of a city center can change, clients may need to
3118	// refresh them periodically.
3119	//   "ADMIN1_COUNTRY" - A combination of state or province code with a
3120	// country code. This field differs from `JOB_ADMIN1`, which can be used
3121	// in multiple countries.
3122	//   "COMPANY_TITLE" - Deprecated. Use COMPANY_DISPLAY_NAME instead.
3123	// Company display name.
3124	//   "COMPANY_DISPLAY_NAME" - Company display name.
3125	//   "BASE_COMPENSATION_UNIT" - Base compensation unit.
3126	SearchType string `json:"searchType,omitempty"`
3127
3128	// Values: A map from the values of field to the number of jobs with
3129	// that value in this search result. Key: search type (filter names,
3130	// such as the companyName). Values: the count of jobs that match the
3131	// filter for this search.
3132	Values map[string]int64 `json:"values,omitempty"`
3133
3134	// ForceSendFields is a list of field names (e.g. "SearchType") to
3135	// unconditionally include in API requests. By default, fields with
3136	// empty values are omitted from API requests. However, any non-pointer,
3137	// non-interface field appearing in ForceSendFields will be sent to the
3138	// server regardless of whether the field is empty or not. This may be
3139	// used to include empty fields in Patch requests.
3140	ForceSendFields []string `json:"-"`
3141
3142	// NullFields is a list of field names (e.g. "SearchType") to include in
3143	// API requests with the JSON null value. By default, fields with empty
3144	// values are omitted from API requests. However, any field with an
3145	// empty value appearing in NullFields will be sent to the server as
3146	// null. It is an error if a field in this list has a non-empty value.
3147	// This may be used to include null fields in Patch requests.
3148	NullFields []string `json:"-"`
3149}
3150
3151func (s *HistogramResult) MarshalJSON() ([]byte, error) {
3152	type NoMethod HistogramResult
3153	raw := NoMethod(*s)
3154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3155}
3156
3157// HistogramResults: Output only. Histogram results that matches
3158// HistogramFacets specified in SearchJobsRequest.
3159type HistogramResults struct {
3160	// CompensationHistogramResults: Specifies compensation field-based
3161	// histogram results that matches
3162	// HistogramFacets.compensation_histogram_requests.
3163	CompensationHistogramResults []*CompensationHistogramResult `json:"compensationHistogramResults,omitempty"`
3164
3165	// CustomAttributeHistogramResults: Specifies histogram results for
3166	// custom attributes that matches
3167	// HistogramFacets.custom_attribute_histogram_facets.
3168	CustomAttributeHistogramResults []*CustomAttributeHistogramResult `json:"customAttributeHistogramResults,omitempty"`
3169
3170	// SimpleHistogramResults: Specifies histogram results that matches
3171	// HistogramFacets.simple_histogram_facets.
3172	SimpleHistogramResults []*HistogramResult `json:"simpleHistogramResults,omitempty"`
3173
3174	// ForceSendFields is a list of field names (e.g.
3175	// "CompensationHistogramResults") to unconditionally include in API
3176	// requests. By default, fields with empty values are omitted from API
3177	// requests. However, any non-pointer, non-interface field appearing in
3178	// ForceSendFields will be sent to the server regardless of whether the
3179	// field is empty or not. This may be used to include empty fields in
3180	// Patch requests.
3181	ForceSendFields []string `json:"-"`
3182
3183	// NullFields is a list of field names (e.g.
3184	// "CompensationHistogramResults") to include in API requests with the
3185	// JSON null value. By default, fields with empty values are omitted
3186	// from API requests. However, any field with an empty value appearing
3187	// in NullFields will be sent to the server as null. It is an error if a
3188	// field in this list has a non-empty value. This may be used to include
3189	// null fields in Patch requests.
3190	NullFields []string `json:"-"`
3191}
3192
3193func (s *HistogramResults) MarshalJSON() ([]byte, error) {
3194	type NoMethod HistogramResults
3195	raw := NoMethod(*s)
3196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3197}
3198
3199// Job: A Job resource represents a job posting (also referred to as a
3200// "job listing" or "job requisition"). A job belongs to a Company,
3201// which is the hiring entity responsible for the job.
3202type Job struct {
3203	// ApplicationEmailList: Optional but at least one of application_urls,
3204	// application_email_list or application_instruction must be specified.
3205	// Use this field to specify email address(es) to which resumes or
3206	// applications can be sent. The maximum number of allowed characters is
3207	// 255.
3208	ApplicationEmailList []string `json:"applicationEmailList,omitempty"`
3209
3210	// ApplicationInstruction: Optional but at least one of
3211	// application_urls, application_email_list or application_instruction
3212	// must be specified. Use this field to provide instructions, such as
3213	// "Mail your application to ...", that a candidate can follow to apply
3214	// for the job. This field accepts and sanitizes HTML input, and also
3215	// accepts bold, italic, ordered list, and unordered list markup tags.
3216	// The maximum number of allowed characters is 3,000.
3217	ApplicationInstruction string `json:"applicationInstruction,omitempty"`
3218
3219	// ApplicationUrls: Optional but at least one of application_urls,
3220	// application_email_list or application_instruction must be specified.
3221	// Use this URL field to direct an applicant to a website, for example
3222	// to link to an online application form. The maximum number of allowed
3223	// characters is 2,000.
3224	ApplicationUrls []string `json:"applicationUrls,omitempty"`
3225
3226	// Benefits: Optional. The benefits included with the job.
3227	//
3228	// Possible values:
3229	//   "JOB_BENEFIT_TYPE_UNSPECIFIED" - Default value if the type is not
3230	// specified.
3231	//   "CHILD_CARE" - The job includes access to programs that support
3232	// child care, such as daycare.
3233	//   "DENTAL" - The job includes dental services that are covered by a
3234	// dental insurance plan.
3235	//   "DOMESTIC_PARTNER" - The job offers specific benefits to domestic
3236	// partners.
3237	//   "FLEXIBLE_HOURS" - The job allows for a flexible work schedule.
3238	//   "MEDICAL" - The job includes health services that are covered by a
3239	// medical insurance plan.
3240	//   "LIFE_INSURANCE" - The job includes a life insurance plan provided
3241	// by the employer or available for purchase by the employee.
3242	//   "PARENTAL_LEAVE" - The job allows for a leave of absence to a
3243	// parent to care for a newborn child.
3244	//   "RETIREMENT_PLAN" - The job includes a workplace retirement plan
3245	// provided by the employer or available for purchase by the employee.
3246	//   "SICK_DAYS" - The job allows for paid time off due to illness.
3247	//   "TELECOMMUTE" - Deprecated. Set Region.TELECOMMUTE instead. The job
3248	// allows telecommuting (working remotely).
3249	//   "VACATION" - The job includes paid time off for vacation.
3250	//   "VISION" - The job includes vision services that are covered by a
3251	// vision insurance plan.
3252	Benefits []string `json:"benefits,omitempty"`
3253
3254	// CompanyDisplayName: Output only. The name of the company listing the
3255	// job.
3256	CompanyDisplayName string `json:"companyDisplayName,omitempty"`
3257
3258	// CompanyName: Optional but one of company_name or
3259	// distributor_company_id must be provided. The resource name of the
3260	// company listing the job, such as /companies/foo. This field takes
3261	// precedence over the distributor-assigned company identifier,
3262	// distributor_company_id.
3263	CompanyName string `json:"companyName,omitempty"`
3264
3265	// CompanyTitle: Deprecated. Use company_display_name instead. Output
3266	// only. The name of the company listing the job.
3267	CompanyTitle string `json:"companyTitle,omitempty"`
3268
3269	// CompensationInfo: Optional. Job compensation information.
3270	CompensationInfo *CompensationInfo `json:"compensationInfo,omitempty"`
3271
3272	// CreateTime: Output only. The timestamp when this job was created.
3273	CreateTime string `json:"createTime,omitempty"`
3274
3275	// CustomAttributes: Optional. A map of fields to hold both filterable
3276	// and non-filterable custom job attributes that are not covered by the
3277	// provided structured fields. This field is a more general combination
3278	// of the deprecated id-based filterable_custom_fields and string-based
3279	// non_filterable_custom_fields. The keys of the map are strings up to
3280	// 64 bytes and must match the pattern: a-zA-Z*. At most 100 filterable
3281	// and at most 100 unfilterable keys are supported. For filterable
3282	// `string_values`, across all keys at most 200 values are allowed, with
3283	// each string no more than 255 characters. For unfilterable
3284	// `string_values`, the maximum total size of `string_values` across all
3285	// keys is 50KB.
3286	CustomAttributes map[string]CustomAttribute `json:"customAttributes,omitempty"`
3287
3288	// Department: Optional. The department or functional area within the
3289	// company with the open position. The maximum number of allowed
3290	// characters is 255.
3291	Department string `json:"department,omitempty"`
3292
3293	// Description: Required. The description of the job, which typically
3294	// includes a multi-paragraph description of the company and related
3295	// information. Separate fields are provided on the job object for
3296	// responsibilities, qualifications, and other job characteristics. Use
3297	// of these separate job fields is recommended. This field accepts and
3298	// sanitizes HTML input, and also accepts bold, italic, ordered list,
3299	// and unordered list markup tags. The maximum number of allowed
3300	// characters is 100,000.
3301	Description string `json:"description,omitempty"`
3302
3303	// DistributorCompanyId: Optional but one of company_name or
3304	// distributor_company_id must be provided. A unique company identifier
3305	// used by job distributors to identify an employer's company entity.
3306	// company_name takes precedence over this field, and is the recommended
3307	// field to use to identify companies. The maximum number of allowed
3308	// characters is 255.
3309	DistributorCompanyId string `json:"distributorCompanyId,omitempty"`
3310
3311	// EducationLevels: Optional. The desired education level for the job,
3312	// such as "Bachelors", "Masters", "Doctorate".
3313	//
3314	// Possible values:
3315	//   "EDUCATION_LEVEL_UNSPECIFIED" - The default value if the level is
3316	// not specified.
3317	//   "HIGH_SCHOOL" - A High School diploma is required for the position.
3318	//   "ASSOCIATE" - An Associate degree is required for the position.
3319	//   "BACHELORS" - A Bachelors degree is required for the position.
3320	//   "MASTERS" - A Masters degree is required for the position.
3321	//   "DOCTORATE" - A Doctorate degree is required for the position.
3322	//   "NO_DEGREE_REQUIRED" - No formal education is required for the
3323	// position.
3324	EducationLevels []string `json:"educationLevels,omitempty"`
3325
3326	// EmploymentTypes: Optional. The employment type(s) of a job, for
3327	// example, full time or part time.
3328	//
3329	// Possible values:
3330	//   "EMPLOYMENT_TYPE_UNSPECIFIED" - The default value if the employment
3331	// type is not specified.
3332	//   "FULL_TIME" - The job requires working a number of hours that
3333	// constitute full time employment, typically 40 or more hours per week.
3334	//   "PART_TIME" - The job entails working fewer hours than a full time
3335	// job, typically less than 40 hours a week.
3336	//   "CONTRACTOR" - The job is offered as a contracted, as opposed to a
3337	// salaried employee, position.
3338	//   "TEMPORARY" - The job is offered as a temporary employment
3339	// opportunity, usually a short-term engagement.
3340	//   "INTERN" - The job is a fixed-term opportunity for students or
3341	// entry-level job seekers to obtain on-the-job training, typically
3342	// offered as a summer position.
3343	//   "VOLUNTEER" - The is an opportunity for an individual to volunteer,
3344	// where there is no expectation of compensation for the provided
3345	// services.
3346	//   "PER_DIEM" - The job requires an employee to work on an as-needed
3347	// basis with a flexible schedule.
3348	//   "CONTRACT_TO_HIRE" - The job is offered as a contracted position
3349	// with the understanding that it is converted into a full-time position
3350	// at the end of the contract. Jobs of this type are also returned by a
3351	// search for EmploymentType.CONTRACTOR jobs.
3352	//   "FLY_IN_FLY_OUT" - The job involves employing people in remote
3353	// areas and flying them temporarily to the work site instead of
3354	// relocating employees and their families permanently.
3355	//   "OTHER" - The job does not fit any of the other listed types.
3356	EmploymentTypes []string `json:"employmentTypes,omitempty"`
3357
3358	// EndDate: Optional. The end date of the job in UTC time zone.
3359	// Typically this field is used for contracting engagements. Dates prior
3360	// to 1970/1/1 and invalid date formats are ignored.
3361	EndDate *Date `json:"endDate,omitempty"`
3362
3363	// ExpireTime: Optional but strongly recommended for the best service
3364	// experience. The expiration timestamp of the job. After this
3365	// timestamp, the job is marked as expired, and it no longer appears in
3366	// search results. The expired job can't be deleted or listed by the
3367	// DeleteJob and ListJobs APIs, but it can be retrieved with the GetJob
3368	// API or updated with the UpdateJob API. An expired job can be updated
3369	// and opened again by using a future expiration timestamp. Updating an
3370	// expired job fails if there is another existing open job with same
3371	// requisition_id, company_name and language_code. The expired jobs are
3372	// retained in our system for 90 days. However, the overall expired job
3373	// count cannot exceed 3 times the maximum of open jobs count over the
3374	// past week, otherwise jobs with earlier expire time are cleaned first.
3375	// Expired jobs are no longer accessible after they are cleaned out. The
3376	// format of this field is RFC 3339 date strings. Example:
3377	// 2000-01-01T00:00:00.999999999Z See
3378	// [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc333
3379	// 9.txt). A valid date range is between 1970-01-01T00:00:00.0Z and
3380	// 2100-12-31T23:59:59.999Z. Invalid dates are ignored and treated as
3381	// expire time not provided. If this value is not provided at the time
3382	// of job creation or is invalid, the job posting expires after 30 days
3383	// from the job's creation time. For example, if the job was created on
3384	// 2017/01/01 13:00AM UTC with an unspecified expiration date, the job
3385	// expires after 2017/01/31 13:00AM UTC. If this value is not provided
3386	// but expiry_date is, expiry_date is used. If this value is not
3387	// provided on job update, it depends on the field masks set by
3388	// UpdateJobRequest.update_job_fields. If the field masks include
3389	// expiry_time, or the masks are empty meaning that every field is
3390	// updated, the job posting expires after 30 days from the job's last
3391	// update time. Otherwise the expiration date isn't updated.
3392	ExpireTime string `json:"expireTime,omitempty"`
3393
3394	// ExpiryDate: Deprecated. Use expire_time instead. Optional but
3395	// strongly recommended to be provided for the best service experience.
3396	// The expiration date of the job in UTC time. After 12 am on this date,
3397	// the job is marked as expired, and it no longer appears in search
3398	// results. The expired job can't be deleted or listed by the DeleteJob
3399	// and ListJobs APIs, but it can be retrieved with the GetJob API or
3400	// updated with the UpdateJob API. An expired job can be updated and
3401	// opened again by using a future expiration date. It can also remain
3402	// expired. Updating an expired job to be open fails if there is another
3403	// existing open job with same requisition_id, company_name and
3404	// language_code. The expired jobs are retained in our system for 90
3405	// days. However, the overall expired job count cannot exceed 3 times
3406	// the maximum of open jobs count over the past week, otherwise jobs
3407	// with earlier expire time are removed first. Expired jobs are no
3408	// longer accessible after they are cleaned out. A valid date range is
3409	// between 1970/1/1 and 2100/12/31. Invalid dates are ignored and
3410	// treated as expiry date not provided. If this value is not provided on
3411	// job creation or is invalid, the job posting expires after 30 days
3412	// from the job's creation time. For example, if the job was created on
3413	// 2017/01/01 13:00AM UTC with an unspecified expiration date, the job
3414	// expires after 2017/01/31 13:00AM UTC. If this value is not provided
3415	// on job update, it depends on the field masks set by
3416	// UpdateJobRequest.update_job_fields. If the field masks include
3417	// expiry_date, or the masks are empty meaning that every field is
3418	// updated, the job expires after 30 days from the job's last update
3419	// time. Otherwise the expiration date isn't updated.
3420	ExpiryDate *Date `json:"expiryDate,omitempty"`
3421
3422	// ExtendedCompensationInfo: Deprecated. Always use compensation_info.
3423	// Optional. Job compensation information. This field replaces
3424	// compensation_info. Only CompensationInfo.entries or
3425	// extended_compensation_info can be set, otherwise an exception is
3426	// thrown.
3427	ExtendedCompensationInfo *ExtendedCompensationInfo `json:"extendedCompensationInfo,omitempty"`
3428
3429	// FilterableCustomFields: Deprecated. Use custom_attributes instead.
3430	// Optional. A map of fields to hold filterable custom job attributes
3431	// not captured by the standard fields such as job_title, company_name,
3432	// or level. These custom fields store arbitrary string values, and can
3433	// be used for purposes not covered by the structured fields. For the
3434	// best search experience, use of the structured rather than custom
3435	// fields is recommended. Data stored in these custom fields fields are
3436	// indexed and searched against by keyword searches (see
3437	// SearchJobsRequest.custom_field_filters][]). The map key must be a
3438	// number between 1-20. If an invalid key is provided on job create or
3439	// update, an error is returned.
3440	FilterableCustomFields map[string]CustomField `json:"filterableCustomFields,omitempty"`
3441
3442	// Incentives: Optional. A description of bonus, commission, and other
3443	// compensation incentives associated with the job not including salary
3444	// or pay. The maximum number of allowed characters is 10,000.
3445	Incentives string `json:"incentives,omitempty"`
3446
3447	// JobLocations: Output only. Structured locations of the job, resolved
3448	// from locations.
3449	JobLocations []*JobLocation `json:"jobLocations,omitempty"`
3450
3451	// JobTitle: Required. The title of the job, such as "Software Engineer"
3452	// The maximum number of allowed characters is 500.
3453	JobTitle string `json:"jobTitle,omitempty"`
3454
3455	// LanguageCode: Optional. The language of the posting. This field is
3456	// distinct from any requirements for fluency that are associated with
3457	// the job. Language codes must be in BCP-47 format, such as "en-US" or
3458	// "sr-Latn". For more information, see [Tags for Identifying
3459	// Languages](https://tools.ietf.org/html/bcp47){: class="external"
3460	// target="_blank" }. If this field is unspecified and Job.description
3461	// is present, detected language code based on Job.description is
3462	// assigned, otherwise defaults to 'en_US'.
3463	LanguageCode string `json:"languageCode,omitempty"`
3464
3465	// Level: Optional. The experience level associated with the job, such
3466	// as "Entry Level".
3467	//
3468	// Possible values:
3469	//   "JOB_LEVEL_UNSPECIFIED" - The default value if the level is not
3470	// specified.
3471	//   "ENTRY_LEVEL" - Entry-level individual contributors, typically with
3472	// less than 2 years of experience in a similar role. Includes interns.
3473	//   "EXPERIENCED" - Experienced individual contributors, typically with
3474	// 2+ years of experience in a similar role.
3475	//   "MANAGER" - Entry- to mid-level managers responsible for managing a
3476	// team of people.
3477	//   "DIRECTOR" - Senior-level managers responsible for managing teams
3478	// of managers.
3479	//   "EXECUTIVE" - Executive-level managers and above, including C-level
3480	// positions.
3481	Level string `json:"level,omitempty"`
3482
3483	// Locations: Optional but strongly recommended for the best service
3484	// experience. Location(s) where the emploeyer is looking to hire for
3485	// this job posting. Specifying the full street address(es) of the
3486	// hiring location enables better API results, especially job searches
3487	// by commute time. At most 50 locations are allowed for best search
3488	// performance. If a job has more locations, it is suggested to split it
3489	// into multiple jobs with unique requisition_ids (e.g. 'ReqA' becomes
3490	// 'ReqA-1', 'ReqA-2', etc.) as multiple jobs with the same
3491	// requisition_id, company_name and language_code are not allowed. If
3492	// the original requisition_id must be preserved, a custom field should
3493	// be used for storage. It is also suggested to group the locations that
3494	// close to each other in the same job for better search experience. The
3495	// maximum number of allowed characters is 500.
3496	Locations []string `json:"locations,omitempty"`
3497
3498	// Name: Required during job update. Resource name assigned to a job by
3499	// the API, for example, "/jobs/foo". Use of this field in job queries
3500	// and API calls is preferred over the use of requisition_id since this
3501	// value is unique.
3502	Name string `json:"name,omitempty"`
3503
3504	// PromotionValue: Optional. A promotion value of the job, as determined
3505	// by the client. The value determines the sort order of the jobs
3506	// returned when searching for jobs using the featured jobs search call,
3507	// with higher promotional values being returned first and ties being
3508	// resolved by relevance sort. Only the jobs with a promotionValue >0
3509	// are returned in a FEATURED_JOB_SEARCH. Default value is 0, and
3510	// negative values are treated as 0.
3511	PromotionValue int64 `json:"promotionValue,omitempty"`
3512
3513	// PublishDate: Optional. The date this job was most recently published
3514	// in UTC format. The default value is the time the request arrives at
3515	// the server.
3516	PublishDate *Date `json:"publishDate,omitempty"`
3517
3518	// Qualifications: Optional. A description of the qualifications
3519	// required to perform the job. The use of this field is recommended as
3520	// an alternative to using the more general description field. This
3521	// field accepts and sanitizes HTML input, and also accepts bold,
3522	// italic, ordered list, and unordered list markup tags. The maximum
3523	// number of allowed characters is 10,000.
3524	Qualifications string `json:"qualifications,omitempty"`
3525
3526	// ReferenceUrl: Output only. The URL of a web page that displays job
3527	// details.
3528	ReferenceUrl string `json:"referenceUrl,omitempty"`
3529
3530	// Region: Optional. The job Region (for example, state, country)
3531	// throughout which the job is available. If this field is set, a
3532	// LocationFilter in a search query within the job region finds this job
3533	// if an exact location match is not specified. If this field is set,
3534	// setting job locations to the same location level as this field is
3535	// strongly recommended.
3536	//
3537	// Possible values:
3538	//   "REGION_UNSPECIFIED" - If the region is unspecified, the job is
3539	// only returned if it matches the LocationFilter.
3540	//   "STATE_WIDE" - In additiona to exact location matching, job is
3541	// returned when the LocationFilter in search query is in the same state
3542	// as this job. For example, if a `STATE_WIDE` job is posted in "CA,
3543	// USA", it is returned if LocationFilter has "Mountain View".
3544	//   "NATION_WIDE" - In addition to exact location matching, job is
3545	// returned when LocationFilter in search query is in the same country
3546	// as this job. For example, if a `NATION_WIDE` job is posted in "USA",
3547	// it is returned if LocationFilter has 'Mountain View'.
3548	//   "TELECOMMUTE" - Job allows employees to work remotely
3549	// (telecommute). If locations are provided with this value, the job is
3550	// considered as having a location, but telecommuting is allowed.
3551	Region string `json:"region,omitempty"`
3552
3553	// RequisitionId: Required. The requisition ID, also referred to as the
3554	// posting ID, assigned by the client to identify a job. This field is
3555	// intended to be used by clients for client identification and tracking
3556	// of listings. A job is not allowed to be created if there is another
3557	// job with the same requisition_id, company_name and language_code. The
3558	// maximum number of allowed characters is 255.
3559	RequisitionId string `json:"requisitionId,omitempty"`
3560
3561	// Responsibilities: Optional. A description of job responsibilities.
3562	// The use of this field is recommended as an alternative to using the
3563	// more general description field. This field accepts and sanitizes HTML
3564	// input, and also accepts bold, italic, ordered list, and unordered
3565	// list markup tags. The maximum number of allowed characters is 10,000.
3566	Responsibilities string `json:"responsibilities,omitempty"`
3567
3568	// StartDate: Optional. The start date of the job in UTC time zone.
3569	// Typically this field is used for contracting engagements. Dates prior
3570	// to 1970/1/1 and invalid date formats are ignored.
3571	StartDate *Date `json:"startDate,omitempty"`
3572
3573	// UnindexedCustomFields: Deprecated. Use custom_attributes instead.
3574	// Optional. A map of fields to hold non-filterable custom job
3575	// attributes, similar to filterable_custom_fields. These fields are
3576	// distinct in that the data in these fields are not indexed. Therefore,
3577	// the client cannot search against them, nor can the client use them to
3578	// list jobs. The key of the map can be any valid string.
3579	UnindexedCustomFields map[string]CustomField `json:"unindexedCustomFields,omitempty"`
3580
3581	// UpdateTime: Output only. The timestamp when this job was last
3582	// updated.
3583	UpdateTime string `json:"updateTime,omitempty"`
3584
3585	// Visibility: Optional. The visibility of the job. Defaults to
3586	// JobVisibility.PRIVATE if not specified. Currently only
3587	// JobVisibility.PRIVATE is supported.
3588	//
3589	// Possible values:
3590	//   "JOB_VISIBILITY_UNSPECIFIED" - Default value.
3591	//   "PRIVATE" - The Job is only visible to the owner.
3592	//   "GOOGLE" - The Job is visible to the owner and may be visible to
3593	// other applications and processes at Google. Not yet supported. Use
3594	// PRIVATE.
3595	//   "PUBLIC" - The Job is visible to the owner and may be visible to
3596	// all other API clients. Not yet supported. Use PRIVATE.
3597	Visibility string `json:"visibility,omitempty"`
3598
3599	// ServerResponse contains the HTTP response code and headers from the
3600	// server.
3601	googleapi.ServerResponse `json:"-"`
3602
3603	// ForceSendFields is a list of field names (e.g.
3604	// "ApplicationEmailList") to unconditionally include in API requests.
3605	// By default, fields with empty values are omitted from API requests.
3606	// However, any non-pointer, non-interface field appearing in
3607	// ForceSendFields will be sent to the server regardless of whether the
3608	// field is empty or not. This may be used to include empty fields in
3609	// Patch requests.
3610	ForceSendFields []string `json:"-"`
3611
3612	// NullFields is a list of field names (e.g. "ApplicationEmailList") to
3613	// include in API requests with the JSON null value. By default, fields
3614	// with empty values are omitted from API requests. However, any field
3615	// with an empty value appearing in NullFields will be sent to the
3616	// server as null. It is an error if a field in this list has a
3617	// non-empty value. This may be used to include null fields in Patch
3618	// requests.
3619	NullFields []string `json:"-"`
3620}
3621
3622func (s *Job) MarshalJSON() ([]byte, error) {
3623	type NoMethod Job
3624	raw := NoMethod(*s)
3625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3626}
3627
3628// JobFilters: Input only. Deprecated. Use JobQuery instead. The filters
3629// required to perform a search query or histogram.
3630type JobFilters struct {
3631	// Categories: Optional. The category filter specifies the categories of
3632	// jobs to search against. See Category for more information. If a value
3633	// is not specified, jobs from any category are searched against. If
3634	// multiple values are specified, jobs from any of the specified
3635	// categories are searched against.
3636	//
3637	// Possible values:
3638	//   "JOB_CATEGORY_UNSPECIFIED" - The default value if the category is
3639	// not specified.
3640	//   "ACCOUNTING_AND_FINANCE" - An accounting and finance job, such as
3641	// an Accountant.
3642	//   "ADMINISTRATIVE_AND_OFFICE" - And administrative and office job,
3643	// such as an Administrative Assistant.
3644	//   "ADVERTISING_AND_MARKETING" - An advertising and marketing job,
3645	// such as Marketing Manager.
3646	//   "ANIMAL_CARE" - An animal care job, such as Veterinarian.
3647	//   "ART_FASHION_AND_DESIGN" - An art, fashion, or design job, such as
3648	// Designer.
3649	//   "BUSINESS_OPERATIONS" - A business operations job, such as Business
3650	// Operations Manager.
3651	//   "CLEANING_AND_FACILITIES" - A cleaning and facilities job, such as
3652	// Custodial Staff.
3653	//   "COMPUTER_AND_IT" - A computer and IT job, such as Systems
3654	// Administrator.
3655	//   "CONSTRUCTION" - A construction job, such as General Laborer.
3656	//   "CUSTOMER_SERVICE" - A customer service job, such s Cashier.
3657	//   "EDUCATION" - An education job, such as School Teacher.
3658	//   "ENTERTAINMENT_AND_TRAVEL" - An entertainment and travel job, such
3659	// as Flight Attendant.
3660	//   "FARMING_AND_OUTDOORS" - A farming or outdoor job, such as Park
3661	// Ranger.
3662	//   "HEALTHCARE" - A healthcare job, such as Registered Nurse.
3663	//   "HUMAN_RESOURCES" - A human resources job, such as Human Resources
3664	// Director.
3665	//   "INSTALLATION_MAINTENANCE_AND_REPAIR" - An installation,
3666	// maintenance, or repair job, such as Electrician.
3667	//   "LEGAL" - A legal job, such as Law Clerk.
3668	//   "MANAGEMENT" - A management job, often used in conjunction with
3669	// another category, such as Store Manager.
3670	//   "MANUFACTURING_AND_WAREHOUSE" - A manufacturing or warehouse job,
3671	// such as Assembly Technician.
3672	//   "MEDIA_COMMUNICATIONS_AND_WRITING" - A media, communications, or
3673	// writing job, such as Media Relations.
3674	//   "OIL_GAS_AND_MINING" - An oil, gas or mining job, such as Offshore
3675	// Driller.
3676	//   "PERSONAL_CARE_AND_SERVICES" - A personal care and services job,
3677	// such as Hair Stylist.
3678	//   "PROTECTIVE_SERVICES" - A protective services job, such as Security
3679	// Guard.
3680	//   "REAL_ESTATE" - A real estate job, such as Buyer's Agent.
3681	//   "RESTAURANT_AND_HOSPITALITY" - A restaurant and hospitality job,
3682	// such as Restaurant Server.
3683	//   "SALES_AND_RETAIL" - A sales and/or retail job, such Sales
3684	// Associate.
3685	//   "SCIENCE_AND_ENGINEERING" - A science and engineering job, such as
3686	// Lab Technician.
3687	//   "SOCIAL_SERVICES_AND_NON_PROFIT" - A social services or non-profit
3688	// job, such as Case Worker.
3689	//   "SPORTS_FITNESS_AND_RECREATION" - A sports, fitness, or recreation
3690	// job, such as Personal Trainer.
3691	//   "TRANSPORTATION_AND_LOGISTICS" - A transportation or logistics job,
3692	// such as Truck Driver.
3693	Categories []string `json:"categories,omitempty"`
3694
3695	// CommuteFilter: Optional. Allows filtering jobs by commute time with
3696	// different travel methods (e.g. driving or public transit). Note: this
3697	// only works with COMMUTE MODE. When specified,
3698	// [JobFilters.location_filters] will be ignored. Currently we do not
3699	// support sorting by commute time.
3700	CommuteFilter *CommutePreference `json:"commuteFilter,omitempty"`
3701
3702	// CompanyNames: Optional. The company names filter specifies the
3703	// company entities to search against. If a value is not specified, jobs
3704	// are searched for against all companies. If multiple values are
3705	// specified, jobs are searched against the specified companies. At most
3706	// 20 company filters are allowed.
3707	CompanyNames []string `json:"companyNames,omitempty"`
3708
3709	// CompanyTitles: Optional. This filter specifies the exact company
3710	// titles of jobs to search against. If a value is not specified, jobs
3711	// within the search results can be associated with any company. If
3712	// multiple values are specified, jobs within the search results may be
3713	// associated with any of the specified companies. At most 20 company
3714	// title filters are allowed.
3715	CompanyTitles []string `json:"companyTitles,omitempty"`
3716
3717	// CompensationFilter: Optional. This search filter is applied only to
3718	// Job.compensation_info. For example, if the filter is specified as
3719	// "Hourly job with per-hour compensation > $15", only jobs that meet
3720	// this criteria are searched. If a filter is not defined, all open jobs
3721	// are searched.
3722	CompensationFilter *CompensationFilter `json:"compensationFilter,omitempty"`
3723
3724	// CustomAttributeFilter: Optional. This filter specifies a structured
3725	// syntax to match against the Job.custom_attributes that are marked as
3726	// `filterable`. The syntax for this expression is a subset of Google
3727	// SQL syntax. Supported operators are: =, !=, <, <=, >, >= where the
3728	// left of the operator is a custom field key and the right of the
3729	// operator is a number or string (surrounded by quotes) value.
3730	// Supported functions are LOWER() to perform case insensitive match and
3731	// EMPTY() to filter on the existence of a key. Boolean expressions
3732	// (AND/OR/NOT) are supported up to 3 levels of nesting (For example,
3733	// "((A AND B AND C) OR NOT D) AND E"), and there can be a maximum of
3734	// 100 comparisons/functions in the expression. The expression must be <
3735	// 3000 bytes in length. Sample Query: (key1 = "TEST" OR
3736	// LOWER(key1)="test" OR NOT EMPTY(key1)) AND key2 > 100
3737	CustomAttributeFilter string `json:"customAttributeFilter,omitempty"`
3738
3739	// CustomFieldFilters: Deprecated. Use custom_attribute_filter instead.
3740	// Optional. This filter specifies searching against custom field
3741	// values. See Job.filterable_custom_fields for information. The key
3742	// value specifies a number between 1-20 (the service supports 20 custom
3743	// fields) corresponding to the desired custom field map value. If an
3744	// invalid key is provided or specified together with
3745	// custom_attribute_filter, an error is thrown.
3746	CustomFieldFilters map[string]CustomFieldFilter `json:"customFieldFilters,omitempty"`
3747
3748	// DisableSpellCheck: Optional. This flag controls the spell-check
3749	// feature. If false, the service attempts to correct a misspelled
3750	// query, for example, "enginee" is corrected to "engineer". Defaults to
3751	// false: a spell check is performed.
3752	DisableSpellCheck bool `json:"disableSpellCheck,omitempty"`
3753
3754	// EmploymentTypes: Optional. The employment type filter specifies the
3755	// employment type of jobs to search against, such as
3756	// EmploymentType.FULL_TIME. If a value is not specified, jobs in the
3757	// search results include any employment type. If multiple values are
3758	// specified, jobs in the search results include any of the specified
3759	// employment types.
3760	//
3761	// Possible values:
3762	//   "EMPLOYMENT_TYPE_UNSPECIFIED" - The default value if the employment
3763	// type is not specified.
3764	//   "FULL_TIME" - The job requires working a number of hours that
3765	// constitute full time employment, typically 40 or more hours per week.
3766	//   "PART_TIME" - The job entails working fewer hours than a full time
3767	// job, typically less than 40 hours a week.
3768	//   "CONTRACTOR" - The job is offered as a contracted, as opposed to a
3769	// salaried employee, position.
3770	//   "TEMPORARY" - The job is offered as a temporary employment
3771	// opportunity, usually a short-term engagement.
3772	//   "INTERN" - The job is a fixed-term opportunity for students or
3773	// entry-level job seekers to obtain on-the-job training, typically
3774	// offered as a summer position.
3775	//   "VOLUNTEER" - The is an opportunity for an individual to volunteer,
3776	// where there is no expectation of compensation for the provided
3777	// services.
3778	//   "PER_DIEM" - The job requires an employee to work on an as-needed
3779	// basis with a flexible schedule.
3780	//   "CONTRACT_TO_HIRE" - The job is offered as a contracted position
3781	// with the understanding that it is converted into a full-time position
3782	// at the end of the contract. Jobs of this type are also returned by a
3783	// search for EmploymentType.CONTRACTOR jobs.
3784	//   "FLY_IN_FLY_OUT" - The job involves employing people in remote
3785	// areas and flying them temporarily to the work site instead of
3786	// relocating employees and their families permanently.
3787	//   "OTHER" - The job does not fit any of the other listed types.
3788	EmploymentTypes []string `json:"employmentTypes,omitempty"`
3789
3790	// ExtendedCompensationFilter: Deprecated. Always use
3791	// compensation_filter. Optional. This search filter is applied only to
3792	// Job.extended_compensation_info. For example, if the filter is
3793	// specified as "Hourly job with per-hour compensation > $15", only jobs
3794	// that meet these criteria are searched. If a filter is not defined,
3795	// all open jobs are searched.
3796	ExtendedCompensationFilter *ExtendedCompensationFilter `json:"extendedCompensationFilter,omitempty"`
3797
3798	// LanguageCodes: Optional. This filter specifies the locale of jobs to
3799	// search against, for example, "en-US". If a value is not specified,
3800	// the search results may contain jobs in any locale. Language codes
3801	// should be in BCP-47 format, for example, "en-US" or "sr-Latn". For
3802	// more information, see [Tags for Identifying
3803	// Languages](https://tools.ietf.org/html/bcp47). At most 10 language
3804	// code filters are allowed.
3805	LanguageCodes []string `json:"languageCodes,omitempty"`
3806
3807	// LocationFilters: Optional. The location filter specifies geo-regions
3808	// containing the jobs to search against. See LocationFilter for more
3809	// information. If a location value is not specified, jobs are retrieved
3810	// from all locations. If multiple values are specified, jobs are
3811	// retrieved from any of the specified locations. If different values
3812	// are specified for the LocationFilter.distance_in_miles parameter, the
3813	// maximum provided distance is used for all locations. At most 5
3814	// location filters are allowed.
3815	LocationFilters []*LocationFilter `json:"locationFilters,omitempty"`
3816
3817	// PublishDateRange: Optional. Jobs published within a range specified
3818	// by this filter are searched against, for example,
3819	// DateRange.PAST_MONTH. If a value is not specified, all open jobs are
3820	// searched against regardless of the date they were published.
3821	//
3822	// Possible values:
3823	//   "DATE_RANGE_UNSPECIFIED" - Default value: Filtering on time is not
3824	// performed.
3825	//   "PAST_24_HOURS" - The past 24 hours
3826	//   "PAST_WEEK" - The past week (7 days)
3827	//   "PAST_MONTH" - The past month (30 days)
3828	//   "PAST_YEAR" - The past year (365 days)
3829	//   "PAST_3_DAYS" - The past 3 days
3830	PublishDateRange string `json:"publishDateRange,omitempty"`
3831
3832	// Query: Optional. The query filter contains the keywords that match
3833	// against the job title, description, and location fields. The maximum
3834	// query size is 255 bytes/characters.
3835	Query string `json:"query,omitempty"`
3836
3837	// TenantJobOnly: Deprecated. Do not use this field. This flag controls
3838	// whether the job search should be restricted to jobs owned by the
3839	// current user. Defaults to false where all jobs accessible to the user
3840	// are searched against.
3841	TenantJobOnly bool `json:"tenantJobOnly,omitempty"`
3842
3843	// ForceSendFields is a list of field names (e.g. "Categories") to
3844	// unconditionally include in API requests. By default, fields with
3845	// empty values are omitted from API requests. However, any non-pointer,
3846	// non-interface field appearing in ForceSendFields will be sent to the
3847	// server regardless of whether the field is empty or not. This may be
3848	// used to include empty fields in Patch requests.
3849	ForceSendFields []string `json:"-"`
3850
3851	// NullFields is a list of field names (e.g. "Categories") to include in
3852	// API requests with the JSON null value. By default, fields with empty
3853	// values are omitted from API requests. However, any field with an
3854	// empty value appearing in NullFields will be sent to the server as
3855	// null. It is an error if a field in this list has a non-empty value.
3856	// This may be used to include null fields in Patch requests.
3857	NullFields []string `json:"-"`
3858}
3859
3860func (s *JobFilters) MarshalJSON() ([]byte, error) {
3861	type NoMethod JobFilters
3862	raw := NoMethod(*s)
3863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3864}
3865
3866// JobLocation: Output only. A resource that represents a location with
3867// full geographic information.
3868type JobLocation struct {
3869	// LatLng: An object representing a latitude/longitude pair.
3870	LatLng *LatLng `json:"latLng,omitempty"`
3871
3872	// LocationType: The type of a location, which corresponds to the
3873	// address lines field of PostalAddress. For example, "Downtown,
3874	// Atlanta, GA, USA" has a type of LocationType#NEIGHBORHOOD, and
3875	// "Kansas City, KS, USA" has a type of LocationType#LOCALITY.
3876	//
3877	// Possible values:
3878	//   "LOCATION_TYPE_UNSPECIFIED" - Default value if the type is not
3879	// specified.
3880	//   "COUNTRY" - A country level location.
3881	//   "ADMINISTRATIVE_AREA" - A state or equivalent level location.
3882	//   "SUB_ADMINISTRATIVE_AREA" - A county or equivalent level location.
3883	//   "LOCALITY" - A city or equivalent level location.
3884	//   "POSTAL_CODE" - A postal code level location.
3885	//   "SUB_LOCALITY" - A sublocality is a subdivision of a locality, for
3886	// example a city borough, ward, or arrondissement. Sublocalities are
3887	// usually recognized by a local political authority. For example,
3888	// Manhattan and Brooklyn are recognized as boroughs by the City of New
3889	// York, and are therefore modeled as sublocalities.
3890	//   "SUB_LOCALITY_1" - A district or equivalent level location.
3891	//   "SUB_LOCALITY_2" - A smaller district or equivalent level display.
3892	//   "NEIGHBORHOOD" - A neighborhood level location.
3893	//   "STREET_ADDRESS" - A street address level location.
3894	LocationType string `json:"locationType,omitempty"`
3895
3896	// PostalAddress: Postal address of the location that includes human
3897	// readable information, such as postal delivery and payments addresses.
3898	// Given a postal address, a postal service can deliver items to a
3899	// premises, P.O. Box, or other delivery location.
3900	PostalAddress *PostalAddress `json:"postalAddress,omitempty"`
3901
3902	// RadiusMeters: Radius in meters of the job location. This value is
3903	// derived from the location bounding box in which a circle with the
3904	// specified radius centered from LatLng coves the area associated with
3905	// the job location. For example, currently, "Mountain View, CA, USA"
3906	// has a radius of 7885.79 meters.
3907	RadiusMeters float64 `json:"radiusMeters,omitempty"`
3908
3909	// ForceSendFields is a list of field names (e.g. "LatLng") to
3910	// unconditionally include in API requests. By default, fields with
3911	// empty values are omitted from API requests. However, any non-pointer,
3912	// non-interface field appearing in ForceSendFields will be sent to the
3913	// server regardless of whether the field is empty or not. This may be
3914	// used to include empty fields in Patch requests.
3915	ForceSendFields []string `json:"-"`
3916
3917	// NullFields is a list of field names (e.g. "LatLng") to include in API
3918	// requests with the JSON null value. By default, fields with empty
3919	// values are omitted from API requests. However, any field with an
3920	// empty value appearing in NullFields will be sent to the server as
3921	// null. It is an error if a field in this list has a non-empty value.
3922	// This may be used to include null fields in Patch requests.
3923	NullFields []string `json:"-"`
3924}
3925
3926func (s *JobLocation) MarshalJSON() ([]byte, error) {
3927	type NoMethod JobLocation
3928	raw := NoMethod(*s)
3929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3930}
3931
3932func (s *JobLocation) UnmarshalJSON(data []byte) error {
3933	type NoMethod JobLocation
3934	var s1 struct {
3935		RadiusMeters gensupport.JSONFloat64 `json:"radiusMeters"`
3936		*NoMethod
3937	}
3938	s1.NoMethod = (*NoMethod)(s)
3939	if err := json.Unmarshal(data, &s1); err != nil {
3940		return err
3941	}
3942	s.RadiusMeters = float64(s1.RadiusMeters)
3943	return nil
3944}
3945
3946// JobProcessingOptions: Input only. Options for job processing.
3947type JobProcessingOptions struct {
3948	// DisableStreetAddressResolution: Optional. If set to `true`, the
3949	// service does not attempt to resolve a more precise address for the
3950	// job.
3951	DisableStreetAddressResolution bool `json:"disableStreetAddressResolution,omitempty"`
3952
3953	// HtmlSanitization: Optional. Option for job HTML content sanitization.
3954	// Applied fields are: * description * applicationInstruction *
3955	// incentives * qualifications * responsibilities HTML tags in these
3956	// fields may be stripped if sanitiazation is not disabled. Defaults to
3957	// HtmlSanitization.SIMPLE_FORMATTING_ONLY.
3958	//
3959	// Possible values:
3960	//   "HTML_SANITIZATION_UNSPECIFIED" - Default value.
3961	//   "HTML_SANITIZATION_DISABLED" - Disables sanitization on HTML input.
3962	//   "SIMPLE_FORMATTING_ONLY" - Sanitizes HTML input, only accepts bold,
3963	// italic, ordered list, and unordered list markup tags.
3964	HtmlSanitization string `json:"htmlSanitization,omitempty"`
3965
3966	// ForceSendFields is a list of field names (e.g.
3967	// "DisableStreetAddressResolution") to unconditionally include in API
3968	// requests. By default, fields with empty values are omitted from API
3969	// requests. However, any non-pointer, non-interface field appearing in
3970	// ForceSendFields will be sent to the server regardless of whether the
3971	// field is empty or not. This may be used to include empty fields in
3972	// Patch requests.
3973	ForceSendFields []string `json:"-"`
3974
3975	// NullFields is a list of field names (e.g.
3976	// "DisableStreetAddressResolution") to include in API requests with the
3977	// JSON null value. By default, fields with empty values are omitted
3978	// from API requests. However, any field with an empty value appearing
3979	// in NullFields will be sent to the server as null. It is an error if a
3980	// field in this list has a non-empty value. This may be used to include
3981	// null fields in Patch requests.
3982	NullFields []string `json:"-"`
3983}
3984
3985func (s *JobProcessingOptions) MarshalJSON() ([]byte, error) {
3986	type NoMethod JobProcessingOptions
3987	raw := NoMethod(*s)
3988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3989}
3990
3991// JobQuery: Input only. The query required to perform a search query or
3992// histogram.
3993type JobQuery struct {
3994	// Categories: Optional. The category filter specifies the categories of
3995	// jobs to search against. See Category for more information. If a value
3996	// is not specified, jobs from any category are searched against. If
3997	// multiple values are specified, jobs from any of the specified
3998	// categories are searched against.
3999	//
4000	// Possible values:
4001	//   "JOB_CATEGORY_UNSPECIFIED" - The default value if the category is
4002	// not specified.
4003	//   "ACCOUNTING_AND_FINANCE" - An accounting and finance job, such as
4004	// an Accountant.
4005	//   "ADMINISTRATIVE_AND_OFFICE" - And administrative and office job,
4006	// such as an Administrative Assistant.
4007	//   "ADVERTISING_AND_MARKETING" - An advertising and marketing job,
4008	// such as Marketing Manager.
4009	//   "ANIMAL_CARE" - An animal care job, such as Veterinarian.
4010	//   "ART_FASHION_AND_DESIGN" - An art, fashion, or design job, such as
4011	// Designer.
4012	//   "BUSINESS_OPERATIONS" - A business operations job, such as Business
4013	// Operations Manager.
4014	//   "CLEANING_AND_FACILITIES" - A cleaning and facilities job, such as
4015	// Custodial Staff.
4016	//   "COMPUTER_AND_IT" - A computer and IT job, such as Systems
4017	// Administrator.
4018	//   "CONSTRUCTION" - A construction job, such as General Laborer.
4019	//   "CUSTOMER_SERVICE" - A customer service job, such s Cashier.
4020	//   "EDUCATION" - An education job, such as School Teacher.
4021	//   "ENTERTAINMENT_AND_TRAVEL" - An entertainment and travel job, such
4022	// as Flight Attendant.
4023	//   "FARMING_AND_OUTDOORS" - A farming or outdoor job, such as Park
4024	// Ranger.
4025	//   "HEALTHCARE" - A healthcare job, such as Registered Nurse.
4026	//   "HUMAN_RESOURCES" - A human resources job, such as Human Resources
4027	// Director.
4028	//   "INSTALLATION_MAINTENANCE_AND_REPAIR" - An installation,
4029	// maintenance, or repair job, such as Electrician.
4030	//   "LEGAL" - A legal job, such as Law Clerk.
4031	//   "MANAGEMENT" - A management job, often used in conjunction with
4032	// another category, such as Store Manager.
4033	//   "MANUFACTURING_AND_WAREHOUSE" - A manufacturing or warehouse job,
4034	// such as Assembly Technician.
4035	//   "MEDIA_COMMUNICATIONS_AND_WRITING" - A media, communications, or
4036	// writing job, such as Media Relations.
4037	//   "OIL_GAS_AND_MINING" - An oil, gas or mining job, such as Offshore
4038	// Driller.
4039	//   "PERSONAL_CARE_AND_SERVICES" - A personal care and services job,
4040	// such as Hair Stylist.
4041	//   "PROTECTIVE_SERVICES" - A protective services job, such as Security
4042	// Guard.
4043	//   "REAL_ESTATE" - A real estate job, such as Buyer's Agent.
4044	//   "RESTAURANT_AND_HOSPITALITY" - A restaurant and hospitality job,
4045	// such as Restaurant Server.
4046	//   "SALES_AND_RETAIL" - A sales and/or retail job, such Sales
4047	// Associate.
4048	//   "SCIENCE_AND_ENGINEERING" - A science and engineering job, such as
4049	// Lab Technician.
4050	//   "SOCIAL_SERVICES_AND_NON_PROFIT" - A social services or non-profit
4051	// job, such as Case Worker.
4052	//   "SPORTS_FITNESS_AND_RECREATION" - A sports, fitness, or recreation
4053	// job, such as Personal Trainer.
4054	//   "TRANSPORTATION_AND_LOGISTICS" - A transportation or logistics job,
4055	// such as Truck Driver.
4056	Categories []string `json:"categories,omitempty"`
4057
4058	// CommuteFilter: Optional. Allows filtering jobs by commute time with
4059	// different travel methods (for example, driving or public transit).
4060	// Note: This only works with COMMUTE MODE. When specified,
4061	// [JobQuery.location_filters] is ignored. Currently we don't support
4062	// sorting by commute time.
4063	CommuteFilter *CommutePreference `json:"commuteFilter,omitempty"`
4064
4065	// CompanyDisplayNames: Optional. This filter specifies the exact
4066	// company display name of the jobs to search against. If a value isn't
4067	// specified, jobs within the search results are associated with any
4068	// company. If multiple values are specified, jobs within the search
4069	// results may be associated with any of the specified companies. At
4070	// most 20 company display name filters are allowed.
4071	CompanyDisplayNames []string `json:"companyDisplayNames,omitempty"`
4072
4073	// CompanyNames: Optional. This filter specifies the company entities to
4074	// search against. If a value isn't specified, jobs are searched for
4075	// against all companies. If multiple values are specified, jobs are
4076	// searched against the companies specified. At most 20 company filters
4077	// are allowed.
4078	CompanyNames []string `json:"companyNames,omitempty"`
4079
4080	// CompensationFilter: Optional. This search filter is applied only to
4081	// Job.compensation_info. For example, if the filter is specified as
4082	// "Hourly job with per-hour compensation > $15", only jobs meeting
4083	// these criteria are searched. If a filter isn't defined, all open jobs
4084	// are searched.
4085	CompensationFilter *CompensationFilter `json:"compensationFilter,omitempty"`
4086
4087	// CustomAttributeFilter: Optional. This filter specifies a structured
4088	// syntax to match against the Job.custom_attributes marked as
4089	// `filterable`. The syntax for this expression is a subset of Google
4090	// SQL syntax. Supported operators are: =, !=, <, <=, >, >= where the
4091	// left of the operator is a custom field key and the right of the
4092	// operator is a number or string (surrounded by quotes) value.
4093	// Supported functions are LOWER() to perform case insensitive match and
4094	// EMPTY() to filter on the existence of a key. Boolean expressions
4095	// (AND/OR/NOT) are supported up to 3 levels of nesting (for example,
4096	// "((A AND B AND C) OR NOT D) AND E"), a maximum of 50
4097	// comparisons/functions are allowed in the expression. The expression
4098	// must be < 2000 characters in length. Sample Query: (key1 = "TEST" OR
4099	// LOWER(key1)="test" OR NOT EMPTY(key1)) AND key2 > 100
4100	CustomAttributeFilter string `json:"customAttributeFilter,omitempty"`
4101
4102	// DisableSpellCheck: Optional. This flag controls the spell-check
4103	// feature. If false, the service attempts to correct a misspelled
4104	// query, for example, "enginee" is corrected to "engineer". Defaults to
4105	// false: a spell check is performed.
4106	DisableSpellCheck bool `json:"disableSpellCheck,omitempty"`
4107
4108	// EmploymentTypes: Optional. The employment type filter specifies the
4109	// employment type of jobs to search against, such as
4110	// EmploymentType.FULL_TIME. If a value is not specified, jobs in the
4111	// search results include any employment type. If multiple values are
4112	// specified, jobs in the search results include any of the specified
4113	// employment types.
4114	//
4115	// Possible values:
4116	//   "EMPLOYMENT_TYPE_UNSPECIFIED" - The default value if the employment
4117	// type is not specified.
4118	//   "FULL_TIME" - The job requires working a number of hours that
4119	// constitute full time employment, typically 40 or more hours per week.
4120	//   "PART_TIME" - The job entails working fewer hours than a full time
4121	// job, typically less than 40 hours a week.
4122	//   "CONTRACTOR" - The job is offered as a contracted, as opposed to a
4123	// salaried employee, position.
4124	//   "TEMPORARY" - The job is offered as a temporary employment
4125	// opportunity, usually a short-term engagement.
4126	//   "INTERN" - The job is a fixed-term opportunity for students or
4127	// entry-level job seekers to obtain on-the-job training, typically
4128	// offered as a summer position.
4129	//   "VOLUNTEER" - The is an opportunity for an individual to volunteer,
4130	// where there is no expectation of compensation for the provided
4131	// services.
4132	//   "PER_DIEM" - The job requires an employee to work on an as-needed
4133	// basis with a flexible schedule.
4134	//   "CONTRACT_TO_HIRE" - The job is offered as a contracted position
4135	// with the understanding that it is converted into a full-time position
4136	// at the end of the contract. Jobs of this type are also returned by a
4137	// search for EmploymentType.CONTRACTOR jobs.
4138	//   "FLY_IN_FLY_OUT" - The job involves employing people in remote
4139	// areas and flying them temporarily to the work site instead of
4140	// relocating employees and their families permanently.
4141	//   "OTHER" - The job does not fit any of the other listed types.
4142	EmploymentTypes []string `json:"employmentTypes,omitempty"`
4143
4144	// LanguageCodes: Optional. This filter specifies the locale of jobs to
4145	// search against, for example, "en-US". If a value isn't specified, the
4146	// search results can contain jobs in any locale. Language codes should
4147	// be in BCP-47 format, such as "en-US" or "sr-Latn". For more
4148	// information, see [Tags for Identifying
4149	// Languages](https://tools.ietf.org/html/bcp47). At most 10 language
4150	// code filters are allowed.
4151	LanguageCodes []string `json:"languageCodes,omitempty"`
4152
4153	// LocationFilters: Optional. The location filter specifies geo-regions
4154	// containing the jobs to search against. See LocationFilter for more
4155	// information. If a location value isn't specified, jobs fitting the
4156	// other search criteria are retrieved regardless of where they're
4157	// located. If multiple values are specified, jobs are retrieved from
4158	// any of the specified locations. If different values are specified for
4159	// the LocationFilter.distance_in_miles parameter, the maximum provided
4160	// distance is used for all locations. At most 5 location filters are
4161	// allowed.
4162	LocationFilters []*LocationFilter `json:"locationFilters,omitempty"`
4163
4164	// PublishDateRange: Optional. Jobs published within a range specified
4165	// by this filter are searched against, for example,
4166	// DateRange.PAST_MONTH. If a value isn't specified, all open jobs are
4167	// searched against regardless of their published date.
4168	//
4169	// Possible values:
4170	//   "DATE_RANGE_UNSPECIFIED" - Default value: Filtering on time is not
4171	// performed.
4172	//   "PAST_24_HOURS" - The past 24 hours
4173	//   "PAST_WEEK" - The past week (7 days)
4174	//   "PAST_MONTH" - The past month (30 days)
4175	//   "PAST_YEAR" - The past year (365 days)
4176	//   "PAST_3_DAYS" - The past 3 days
4177	PublishDateRange string `json:"publishDateRange,omitempty"`
4178
4179	// Query: Optional. The query string that matches against the job title,
4180	// description, and location fields. The maximum query size is 255
4181	// bytes.
4182	Query string `json:"query,omitempty"`
4183
4184	// ForceSendFields is a list of field names (e.g. "Categories") to
4185	// unconditionally include in API requests. By default, fields with
4186	// empty values are omitted from API requests. However, any non-pointer,
4187	// non-interface field appearing in ForceSendFields will be sent to the
4188	// server regardless of whether the field is empty or not. This may be
4189	// used to include empty fields in Patch requests.
4190	ForceSendFields []string `json:"-"`
4191
4192	// NullFields is a list of field names (e.g. "Categories") to include in
4193	// API requests with the JSON null value. By default, fields with empty
4194	// values are omitted from API requests. However, any field with an
4195	// empty value appearing in NullFields will be sent to the server as
4196	// null. It is an error if a field in this list has a non-empty value.
4197	// This may be used to include null fields in Patch requests.
4198	NullFields []string `json:"-"`
4199}
4200
4201func (s *JobQuery) MarshalJSON() ([]byte, error) {
4202	type NoMethod JobQuery
4203	raw := NoMethod(*s)
4204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4205}
4206
4207// LatLng: An object representing a latitude/longitude pair. This is
4208// expressed as a pair of doubles representing degrees latitude and
4209// degrees longitude. Unless specified otherwise, this must conform to
4210// the WGS84 standard. Values must be within normalized ranges.
4211type LatLng struct {
4212	// Latitude: The latitude in degrees. It must be in the range [-90.0,
4213	// +90.0].
4214	Latitude float64 `json:"latitude,omitempty"`
4215
4216	// Longitude: The longitude in degrees. It must be in the range [-180.0,
4217	// +180.0].
4218	Longitude float64 `json:"longitude,omitempty"`
4219
4220	// ForceSendFields is a list of field names (e.g. "Latitude") to
4221	// unconditionally include in API requests. By default, fields with
4222	// empty values are omitted from API requests. However, any non-pointer,
4223	// non-interface field appearing in ForceSendFields will be sent to the
4224	// server regardless of whether the field is empty or not. This may be
4225	// used to include empty fields in Patch requests.
4226	ForceSendFields []string `json:"-"`
4227
4228	// NullFields is a list of field names (e.g. "Latitude") to include in
4229	// API requests with the JSON null value. By default, fields with empty
4230	// values are omitted from API requests. However, any field with an
4231	// empty value appearing in NullFields will be sent to the server as
4232	// null. It is an error if a field in this list has a non-empty value.
4233	// This may be used to include null fields in Patch requests.
4234	NullFields []string `json:"-"`
4235}
4236
4237func (s *LatLng) MarshalJSON() ([]byte, error) {
4238	type NoMethod LatLng
4239	raw := NoMethod(*s)
4240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4241}
4242
4243func (s *LatLng) UnmarshalJSON(data []byte) error {
4244	type NoMethod LatLng
4245	var s1 struct {
4246		Latitude  gensupport.JSONFloat64 `json:"latitude"`
4247		Longitude gensupport.JSONFloat64 `json:"longitude"`
4248		*NoMethod
4249	}
4250	s1.NoMethod = (*NoMethod)(s)
4251	if err := json.Unmarshal(data, &s1); err != nil {
4252		return err
4253	}
4254	s.Latitude = float64(s1.Latitude)
4255	s.Longitude = float64(s1.Longitude)
4256	return nil
4257}
4258
4259// ListCompaniesResponse: Output only. The List companies response
4260// object.
4261type ListCompaniesResponse struct {
4262	// Companies: Companies for the current client.
4263	Companies []*Company `json:"companies,omitempty"`
4264
4265	// Metadata: Additional information for the API invocation, such as the
4266	// request tracking id.
4267	Metadata *ResponseMetadata `json:"metadata,omitempty"`
4268
4269	// NextPageToken: A token to retrieve the next page of results.
4270	NextPageToken string `json:"nextPageToken,omitempty"`
4271
4272	// ServerResponse contains the HTTP response code and headers from the
4273	// server.
4274	googleapi.ServerResponse `json:"-"`
4275
4276	// ForceSendFields is a list of field names (e.g. "Companies") to
4277	// unconditionally include in API requests. By default, fields with
4278	// empty values are omitted from API requests. However, any non-pointer,
4279	// non-interface field appearing in ForceSendFields will be sent to the
4280	// server regardless of whether the field is empty or not. This may be
4281	// used to include empty fields in Patch requests.
4282	ForceSendFields []string `json:"-"`
4283
4284	// NullFields is a list of field names (e.g. "Companies") to include in
4285	// API requests with the JSON null value. By default, fields with empty
4286	// values are omitted from API requests. However, any field with an
4287	// empty value appearing in NullFields will be sent to the server as
4288	// null. It is an error if a field in this list has a non-empty value.
4289	// This may be used to include null fields in Patch requests.
4290	NullFields []string `json:"-"`
4291}
4292
4293func (s *ListCompaniesResponse) MarshalJSON() ([]byte, error) {
4294	type NoMethod ListCompaniesResponse
4295	raw := NoMethod(*s)
4296	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4297}
4298
4299// ListCompanyJobsResponse: Deprecated. Use ListJobsResponse instead.
4300// Output only. The List jobs response object.
4301type ListCompanyJobsResponse struct {
4302	// Jobs: The Jobs for a given company. The maximum number of items
4303	// returned is based on the limit field provided in the request.
4304	Jobs []*Job `json:"jobs,omitempty"`
4305
4306	// Metadata: Additional information for the API invocation, such as the
4307	// request tracking id.
4308	Metadata *ResponseMetadata `json:"metadata,omitempty"`
4309
4310	// NextPageToken: A token to retrieve the next page of results.
4311	NextPageToken string `json:"nextPageToken,omitempty"`
4312
4313	// TotalSize: The total number of open jobs. The result will be empty if
4314	// ListCompanyJobsRequest.include_jobs_count is not enabled or if no
4315	// open jobs are available.
4316	TotalSize int64 `json:"totalSize,omitempty,string"`
4317
4318	// ServerResponse contains the HTTP response code and headers from the
4319	// server.
4320	googleapi.ServerResponse `json:"-"`
4321
4322	// ForceSendFields is a list of field names (e.g. "Jobs") to
4323	// unconditionally include in API requests. By default, fields with
4324	// empty values are omitted from API requests. However, any non-pointer,
4325	// non-interface field appearing in ForceSendFields will be sent to the
4326	// server regardless of whether the field is empty or not. This may be
4327	// used to include empty fields in Patch requests.
4328	ForceSendFields []string `json:"-"`
4329
4330	// NullFields is a list of field names (e.g. "Jobs") to include in API
4331	// requests with the JSON null value. By default, fields with empty
4332	// values are omitted from API requests. However, any field with an
4333	// empty value appearing in NullFields will be sent to the server as
4334	// null. It is an error if a field in this list has a non-empty value.
4335	// This may be used to include null fields in Patch requests.
4336	NullFields []string `json:"-"`
4337}
4338
4339func (s *ListCompanyJobsResponse) MarshalJSON() ([]byte, error) {
4340	type NoMethod ListCompanyJobsResponse
4341	raw := NoMethod(*s)
4342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4343}
4344
4345// ListJobsResponse: Output only. List jobs response.
4346type ListJobsResponse struct {
4347	// Jobs: The Jobs for a given company. The maximum number of items
4348	// returned is based on the limit field provided in the request.
4349	Jobs []*Job `json:"jobs,omitempty"`
4350
4351	// Metadata: Additional information for the API invocation, such as the
4352	// request tracking id.
4353	Metadata *ResponseMetadata `json:"metadata,omitempty"`
4354
4355	// NextPageToken: A token to retrieve the next page of results.
4356	NextPageToken string `json:"nextPageToken,omitempty"`
4357
4358	// ServerResponse contains the HTTP response code and headers from the
4359	// server.
4360	googleapi.ServerResponse `json:"-"`
4361
4362	// ForceSendFields is a list of field names (e.g. "Jobs") to
4363	// unconditionally include in API requests. By default, fields with
4364	// empty values are omitted from API requests. However, any non-pointer,
4365	// non-interface field appearing in ForceSendFields will be sent to the
4366	// server regardless of whether the field is empty or not. This may be
4367	// used to include empty fields in Patch requests.
4368	ForceSendFields []string `json:"-"`
4369
4370	// NullFields is a list of field names (e.g. "Jobs") to include in API
4371	// requests with the JSON null value. By default, fields with empty
4372	// values are omitted from API requests. However, any field with an
4373	// empty value appearing in NullFields will be sent to the server as
4374	// null. It is an error if a field in this list has a non-empty value.
4375	// This may be used to include null fields in Patch requests.
4376	NullFields []string `json:"-"`
4377}
4378
4379func (s *ListJobsResponse) MarshalJSON() ([]byte, error) {
4380	type NoMethod ListJobsResponse
4381	raw := NoMethod(*s)
4382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4383}
4384
4385// LocationFilter: Input only. Geographic region of the search.
4386type LocationFilter struct {
4387	// DistanceInMiles: Optional. The distance_in_miles is applied when the
4388	// location being searched for is identified as a city or smaller. When
4389	// the location being searched for is a state or larger, this field is
4390	// ignored.
4391	DistanceInMiles float64 `json:"distanceInMiles,omitempty"`
4392
4393	// IsTelecommute: Optional. Allows the client to return jobs without a
4394	// set location, specifically, telecommuting jobs (telecomuting is
4395	// considered by the service as a special location.
4396	// Job.allow_telecommute indicates if a job permits telecommuting. If
4397	// this field is true, telecommuting jobs are searched, and name and
4398	// lat_lng are ignored. This filter can be used by itself to search
4399	// exclusively for telecommuting jobs, or it can be combined with
4400	// another location filter to search for a combination of job locations,
4401	// such as "Mountain View" or "telecommuting" jobs. However, when used
4402	// in combination with other location filters, telecommuting jobs can be
4403	// treated as less relevant than other jobs in the search response.
4404	IsTelecommute bool `json:"isTelecommute,omitempty"`
4405
4406	// LatLng: Optional. The latitude and longitude of the geographic center
4407	// from which to search. This field is ignored if `location_name` is
4408	// provided.
4409	LatLng *LatLng `json:"latLng,omitempty"`
4410
4411	// Name: Optional. The address name, such as "Mountain View" or "Bay
4412	// Area".
4413	Name string `json:"name,omitempty"`
4414
4415	// RegionCode: Optional. CLDR region code of the country/region of the
4416	// address. This will be used to address ambiguity of the user-input
4417	// location, e.g. "Liverpool" against "Liverpool, NY, US" or "Liverpool,
4418	// UK". Set this field if all the jobs to search against are from a same
4419	// region, or jobs are world-wide but the job seeker is from a specific
4420	// region. See http://cldr.unicode.org/ and
4421	// http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: "CH" for
4422	// Switzerland.
4423	RegionCode string `json:"regionCode,omitempty"`
4424
4425	// ForceSendFields is a list of field names (e.g. "DistanceInMiles") to
4426	// unconditionally include in API requests. By default, fields with
4427	// empty values are omitted from API requests. However, any non-pointer,
4428	// non-interface field appearing in ForceSendFields will be sent to the
4429	// server regardless of whether the field is empty or not. This may be
4430	// used to include empty fields in Patch requests.
4431	ForceSendFields []string `json:"-"`
4432
4433	// NullFields is a list of field names (e.g. "DistanceInMiles") to
4434	// include in API requests with the JSON null value. By default, fields
4435	// with empty values are omitted from API requests. However, any field
4436	// with an empty value appearing in NullFields will be sent to the
4437	// server as null. It is an error if a field in this list has a
4438	// non-empty value. This may be used to include null fields in Patch
4439	// requests.
4440	NullFields []string `json:"-"`
4441}
4442
4443func (s *LocationFilter) MarshalJSON() ([]byte, error) {
4444	type NoMethod LocationFilter
4445	raw := NoMethod(*s)
4446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4447}
4448
4449func (s *LocationFilter) UnmarshalJSON(data []byte) error {
4450	type NoMethod LocationFilter
4451	var s1 struct {
4452		DistanceInMiles gensupport.JSONFloat64 `json:"distanceInMiles"`
4453		*NoMethod
4454	}
4455	s1.NoMethod = (*NoMethod)(s)
4456	if err := json.Unmarshal(data, &s1); err != nil {
4457		return err
4458	}
4459	s.DistanceInMiles = float64(s1.DistanceInMiles)
4460	return nil
4461}
4462
4463// MatchingJob: Output only. Job entry with metadata inside
4464// SearchJobsResponse.
4465type MatchingJob struct {
4466	// CommuteInfo: Commute information which is generated based on
4467	// specified CommutePreference.
4468	CommuteInfo *CommuteInfo `json:"commuteInfo,omitempty"`
4469
4470	// Job: Job resource that matches the specified SearchJobsRequest.
4471	Job *Job `json:"job,omitempty"`
4472
4473	// JobSummary: A summary of the job with core information that's
4474	// displayed on the search results listing page.
4475	JobSummary string `json:"jobSummary,omitempty"`
4476
4477	// JobTitleSnippet: Contains snippets of text from the Job.job_title
4478	// field most closely matching a search query's keywords, if available.
4479	// The matching query keywords are enclosed in HTML bold tags.
4480	JobTitleSnippet string `json:"jobTitleSnippet,omitempty"`
4481
4482	// SearchTextSnippet: Contains snippets of text from the Job.description
4483	// and similar fields that most closely match a search query's keywords,
4484	// if available. All HTML tags in the original fields are stripped when
4485	// returned in this field, and matching query keywords are enclosed in
4486	// HTML bold tags.
4487	SearchTextSnippet string `json:"searchTextSnippet,omitempty"`
4488
4489	// ForceSendFields is a list of field names (e.g. "CommuteInfo") to
4490	// unconditionally include in API requests. By default, fields with
4491	// empty values are omitted from API requests. However, any non-pointer,
4492	// non-interface field appearing in ForceSendFields will be sent to the
4493	// server regardless of whether the field is empty or not. This may be
4494	// used to include empty fields in Patch requests.
4495	ForceSendFields []string `json:"-"`
4496
4497	// NullFields is a list of field names (e.g. "CommuteInfo") to include
4498	// in API requests with the JSON null value. By default, fields with
4499	// empty values are omitted from API requests. However, any field with
4500	// an empty value appearing in NullFields will be sent to the server as
4501	// null. It is an error if a field in this list has a non-empty value.
4502	// This may be used to include null fields in Patch requests.
4503	NullFields []string `json:"-"`
4504}
4505
4506func (s *MatchingJob) MarshalJSON() ([]byte, error) {
4507	type NoMethod MatchingJob
4508	raw := NoMethod(*s)
4509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4510}
4511
4512// MendelDebugInput: Message representing input to a Mendel server for
4513// debug forcing. See go/mendel-debug-forcing for more details. Next ID:
4514// 2
4515type MendelDebugInput struct {
4516	// NamespacedDebugInput: When a request spans multiple servers, a
4517	// MendelDebugInput may travel with the request and take effect in all
4518	// the servers. This field is a map of namespaces to
4519	// NamespacedMendelDebugInput protos. In a single server, up to two
4520	// NamespacedMendelDebugInput protos are applied: 1.
4521	// NamespacedMendelDebugInput with the global namespace (key == ""). 2.
4522	// NamespacedMendelDebugInput with the server's namespace. When both
4523	// NamespacedMendelDebugInput protos are present, they are merged. See
4524	// go/mendel-debug-forcing for more details.
4525	NamespacedDebugInput map[string]NamespacedDebugInput `json:"namespacedDebugInput,omitempty"`
4526
4527	// ForceSendFields is a list of field names (e.g.
4528	// "NamespacedDebugInput") to unconditionally include in API requests.
4529	// By default, fields with empty values are omitted from API requests.
4530	// However, any non-pointer, non-interface field appearing in
4531	// ForceSendFields will be sent to the server regardless of whether the
4532	// field is empty or not. This may be used to include empty fields in
4533	// Patch requests.
4534	ForceSendFields []string `json:"-"`
4535
4536	// NullFields is a list of field names (e.g. "NamespacedDebugInput") to
4537	// include in API requests with the JSON null value. By default, fields
4538	// with empty values are omitted from API requests. However, any field
4539	// with an empty value appearing in NullFields will be sent to the
4540	// server as null. It is an error if a field in this list has a
4541	// non-empty value. This may be used to include null fields in Patch
4542	// requests.
4543	NullFields []string `json:"-"`
4544}
4545
4546func (s *MendelDebugInput) MarshalJSON() ([]byte, error) {
4547	type NoMethod MendelDebugInput
4548	raw := NoMethod(*s)
4549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4550}
4551
4552// Money: Represents an amount of money with its currency type.
4553type Money struct {
4554	// CurrencyCode: The 3-letter currency code defined in ISO 4217.
4555	CurrencyCode string `json:"currencyCode,omitempty"`
4556
4557	// Nanos: Number of nano (10^-9) units of the amount. The value must be
4558	// between -999,999,999 and +999,999,999 inclusive. If `units` is
4559	// positive, `nanos` must be positive or zero. If `units` is zero,
4560	// `nanos` can be positive, zero, or negative. If `units` is negative,
4561	// `nanos` must be negative or zero. For example $-1.75 is represented
4562	// as `units`=-1 and `nanos`=-750,000,000.
4563	Nanos int64 `json:"nanos,omitempty"`
4564
4565	// Units: The whole units of the amount. For example if `currencyCode`
4566	// is "USD", then 1 unit is one US dollar.
4567	Units int64 `json:"units,omitempty,string"`
4568
4569	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
4570	// unconditionally include in API requests. By default, fields with
4571	// empty values are omitted from API requests. However, any non-pointer,
4572	// non-interface field appearing in ForceSendFields will be sent to the
4573	// server regardless of whether the field is empty or not. This may be
4574	// used to include empty fields in Patch requests.
4575	ForceSendFields []string `json:"-"`
4576
4577	// NullFields is a list of field names (e.g. "CurrencyCode") to include
4578	// in API requests with the JSON null value. By default, fields with
4579	// empty values are omitted from API requests. However, any field with
4580	// an empty value appearing in NullFields will be sent to the server as
4581	// null. It is an error if a field in this list has a non-empty value.
4582	// This may be used to include null fields in Patch requests.
4583	NullFields []string `json:"-"`
4584}
4585
4586func (s *Money) MarshalJSON() ([]byte, error) {
4587	type NoMethod Money
4588	raw := NoMethod(*s)
4589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4590}
4591
4592// NamespacedDebugInput: Next ID: 15
4593type NamespacedDebugInput struct {
4594	// AbsolutelyForcedExpNames: Set of experiment names to be absolutely
4595	// forced. These experiments will be forced without evaluating the
4596	// conditions.
4597	AbsolutelyForcedExpNames []string `json:"absolutelyForcedExpNames,omitempty"`
4598
4599	// AbsolutelyForcedExpTags: Set of experiment tags to be absolutely
4600	// forced. The experiments with these tags will be forced without
4601	// evaluating the conditions.
4602	AbsolutelyForcedExpTags []string `json:"absolutelyForcedExpTags,omitempty"`
4603
4604	// AbsolutelyForcedExps: Set of experiment ids to be absolutely forced.
4605	// These ids will be forced without evaluating the conditions.
4606	AbsolutelyForcedExps []int64 `json:"absolutelyForcedExps,omitempty"`
4607
4608	// ConditionallyForcedExpNames: Set of experiment names to be
4609	// conditionally forced. These experiments will be forced only if their
4610	// conditions and their parent domain's conditions are true.
4611	ConditionallyForcedExpNames []string `json:"conditionallyForcedExpNames,omitempty"`
4612
4613	// ConditionallyForcedExpTags: Set of experiment tags to be
4614	// conditionally forced. The experiments with these tags will be forced
4615	// only if their conditions and their parent domain's conditions are
4616	// true.
4617	ConditionallyForcedExpTags []string `json:"conditionallyForcedExpTags,omitempty"`
4618
4619	// ConditionallyForcedExps: Set of experiment ids to be conditionally
4620	// forced. These ids will be forced only if their conditions and their
4621	// parent domain's conditions are true.
4622	ConditionallyForcedExps []int64 `json:"conditionallyForcedExps,omitempty"`
4623
4624	// DisableAutomaticEnrollmentSelection: If true, disable automatic
4625	// enrollment selection (at all diversion points). Automatic enrollment
4626	// selection means experiment selection process based on the
4627	// experiment's automatic enrollment condition. This does not disable
4628	// selection of forced experiments.
4629	DisableAutomaticEnrollmentSelection bool `json:"disableAutomaticEnrollmentSelection,omitempty"`
4630
4631	// DisableExpNames: Set of experiment names to be disabled. If an
4632	// experiment is disabled, it is never selected nor forced. If an
4633	// aggregate experiment is disabled, its partitions are disabled
4634	// together. If an experiment with an enrollment is disabled, the
4635	// enrollment is disabled together. If a name corresponds to a domain,
4636	// the domain itself and all descendant experiments and domains are
4637	// disabled together.
4638	DisableExpNames []string `json:"disableExpNames,omitempty"`
4639
4640	// DisableExpTags: Set of experiment tags to be disabled. All
4641	// experiments that are tagged with one or more of these tags are
4642	// disabled. If an experiment is disabled, it is never selected nor
4643	// forced. If an aggregate experiment is disabled, its partitions are
4644	// disabled together. If an experiment with an enrollment is disabled,
4645	// the enrollment is disabled together.
4646	DisableExpTags []string `json:"disableExpTags,omitempty"`
4647
4648	// DisableExps: Set of experiment ids to be disabled. If an experiment
4649	// is disabled, it is never selected nor forced. If an aggregate
4650	// experiment is disabled, its partitions are disabled together. If an
4651	// experiment with an enrollment is disabled, the enrollment is disabled
4652	// together. If an ID corresponds to a domain, the domain itself and all
4653	// descendant experiments and domains are disabled together.
4654	DisableExps []int64 `json:"disableExps,omitempty"`
4655
4656	// DisableManualEnrollmentSelection: If true, disable manual enrollment
4657	// selection (at all diversion points). Manual enrollment selection
4658	// means experiment selection process based on the request's manual
4659	// enrollment states (a.k.a. opt-in experiments). This does not disable
4660	// selection of forced experiments.
4661	DisableManualEnrollmentSelection bool `json:"disableManualEnrollmentSelection,omitempty"`
4662
4663	// DisableOrganicSelection: If true, disable organic experiment
4664	// selection (at all diversion points). Organic selection means
4665	// experiment selection process based on traffic allocation and
4666	// diversion condition evaluation. This does not disable selection of
4667	// forced experiments. This is useful in cases when it is not known
4668	// whether experiment selection behavior is responsible for a error or
4669	// breakage. Disabling organic selection may help to isolate the cause
4670	// of a given problem.
4671	DisableOrganicSelection bool `json:"disableOrganicSelection,omitempty"`
4672
4673	// ForcedFlags: Flags to force in a particular experiment state. Map
4674	// from flag name to flag value.
4675	ForcedFlags map[string]string `json:"forcedFlags,omitempty"`
4676
4677	// ForcedRollouts: Rollouts to force in a particular experiment state.
4678	// Map from rollout name to rollout value.
4679	ForcedRollouts map[string]bool `json:"forcedRollouts,omitempty"`
4680
4681	// ForceSendFields is a list of field names (e.g.
4682	// "AbsolutelyForcedExpNames") to unconditionally include in API
4683	// requests. By default, fields with empty values are omitted from API
4684	// requests. However, any non-pointer, non-interface field appearing in
4685	// ForceSendFields will be sent to the server regardless of whether the
4686	// field is empty or not. This may be used to include empty fields in
4687	// Patch requests.
4688	ForceSendFields []string `json:"-"`
4689
4690	// NullFields is a list of field names (e.g. "AbsolutelyForcedExpNames")
4691	// to include in API requests with the JSON null value. By default,
4692	// fields with empty values are omitted from API requests. However, any
4693	// field with an empty value appearing in NullFields will be sent to the
4694	// server as null. It is an error if a field in this list has a
4695	// non-empty value. This may be used to include null fields in Patch
4696	// requests.
4697	NullFields []string `json:"-"`
4698}
4699
4700func (s *NamespacedDebugInput) MarshalJSON() ([]byte, error) {
4701	type NoMethod NamespacedDebugInput
4702	raw := NoMethod(*s)
4703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4704}
4705
4706// NumericBucketingOption: Input only. Use this field to specify
4707// bucketing option for the histogram search response.
4708type NumericBucketingOption struct {
4709	// BucketBounds: Required. Two adjacent values form a histogram bucket.
4710	// Values should be in ascending order. For example, if [5, 10, 15] are
4711	// provided, four buckets are created: (-inf, 5), 5, 10), [10, 15), [15,
4712	// inf). At most 20 [buckets_bound is supported.
4713	BucketBounds []float64 `json:"bucketBounds,omitempty"`
4714
4715	// RequiresMinMax: Optional. If set to true, the histogram result
4716	// includes minimum/maximum value of the numeric field.
4717	RequiresMinMax bool `json:"requiresMinMax,omitempty"`
4718
4719	// ForceSendFields is a list of field names (e.g. "BucketBounds") to
4720	// unconditionally include in API requests. By default, fields with
4721	// empty values are omitted from API requests. However, any non-pointer,
4722	// non-interface field appearing in ForceSendFields will be sent to the
4723	// server regardless of whether the field is empty or not. This may be
4724	// used to include empty fields in Patch requests.
4725	ForceSendFields []string `json:"-"`
4726
4727	// NullFields is a list of field names (e.g. "BucketBounds") to include
4728	// in API requests with the JSON null value. By default, fields with
4729	// empty values are omitted from API requests. However, any field with
4730	// an empty value appearing in NullFields will be sent to the server as
4731	// null. It is an error if a field in this list has a non-empty value.
4732	// This may be used to include null fields in Patch requests.
4733	NullFields []string `json:"-"`
4734}
4735
4736func (s *NumericBucketingOption) MarshalJSON() ([]byte, error) {
4737	type NoMethod NumericBucketingOption
4738	raw := NoMethod(*s)
4739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4740}
4741
4742// NumericBucketingResult: Output only. Custom numeric bucketing result.
4743type NumericBucketingResult struct {
4744	// Counts: Count within each bucket. Its size is the length of
4745	// NumericBucketingOption.bucket_bounds plus 1.
4746	Counts []*BucketizedCount `json:"counts,omitempty"`
4747
4748	// MaxValue: Stores the maximum value of the numeric field. Will be
4749	// populated only if [NumericBucketingOption.requires_min_max] is set to
4750	// true.
4751	MaxValue float64 `json:"maxValue,omitempty"`
4752
4753	// MinValue: Stores the minimum value of the numeric field. Will be
4754	// populated only if [NumericBucketingOption.requires_min_max] is set to
4755	// true.
4756	MinValue float64 `json:"minValue,omitempty"`
4757
4758	// ForceSendFields is a list of field names (e.g. "Counts") to
4759	// unconditionally include in API requests. By default, fields with
4760	// empty values are omitted from API requests. However, any non-pointer,
4761	// non-interface field appearing in ForceSendFields will be sent to the
4762	// server regardless of whether the field is empty or not. This may be
4763	// used to include empty fields in Patch requests.
4764	ForceSendFields []string `json:"-"`
4765
4766	// NullFields is a list of field names (e.g. "Counts") to include in API
4767	// requests with the JSON null value. By default, fields with empty
4768	// values are omitted from API requests. However, any field with an
4769	// empty value appearing in NullFields will be sent to the server as
4770	// null. It is an error if a field in this list has a non-empty value.
4771	// This may be used to include null fields in Patch requests.
4772	NullFields []string `json:"-"`
4773}
4774
4775func (s *NumericBucketingResult) MarshalJSON() ([]byte, error) {
4776	type NoMethod NumericBucketingResult
4777	raw := NoMethod(*s)
4778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4779}
4780
4781func (s *NumericBucketingResult) UnmarshalJSON(data []byte) error {
4782	type NoMethod NumericBucketingResult
4783	var s1 struct {
4784		MaxValue gensupport.JSONFloat64 `json:"maxValue"`
4785		MinValue gensupport.JSONFloat64 `json:"minValue"`
4786		*NoMethod
4787	}
4788	s1.NoMethod = (*NoMethod)(s)
4789	if err := json.Unmarshal(data, &s1); err != nil {
4790		return err
4791	}
4792	s.MaxValue = float64(s1.MaxValue)
4793	s.MinValue = float64(s1.MinValue)
4794	return nil
4795}
4796
4797// PostalAddress: Represents a postal address, e.g. for postal delivery
4798// or payments addresses. Given a postal address, a postal service can
4799// deliver items to a premise, P.O. Box or similar. It is not intended
4800// to model geographical locations (roads, towns, mountains). In typical
4801// usage an address would be created via user input or from importing
4802// existing data, depending on the type of process. Advice on address
4803// input / editing: - Use an i18n-ready address widget such as
4804// https://github.com/google/libaddressinput) - Users should not be
4805// presented with UI elements for input or editing of fields outside
4806// countries where that field is used. For more guidance on how to use
4807// this schema, please see:
4808// https://support.google.com/business/answer/6397478
4809type PostalAddress struct {
4810	// AddressLines: Unstructured address lines describing the lower levels
4811	// of an address. Because values in address_lines do not have type
4812	// information and may sometimes contain multiple values in a single
4813	// field (e.g. "Austin, TX"), it is important that the line order is
4814	// clear. The order of address lines should be "envelope order" for the
4815	// country/region of the address. In places where this can vary (e.g.
4816	// Japan), address_language is used to make it explicit (e.g. "ja" for
4817	// large-to-small ordering and "ja-Latn" or "en" for small-to-large).
4818	// This way, the most specific line of an address can be selected based
4819	// on the language. The minimum permitted structural representation of
4820	// an address consists of a region_code with all remaining information
4821	// placed in the address_lines. It would be possible to format such an
4822	// address very approximately without geocoding, but no semantic
4823	// reasoning could be made about any of the address components until it
4824	// was at least partially resolved. Creating an address only containing
4825	// a region_code and address_lines, and then geocoding is the
4826	// recommended way to handle completely unstructured addresses (as
4827	// opposed to guessing which parts of the address should be localities
4828	// or administrative areas).
4829	AddressLines []string `json:"addressLines,omitempty"`
4830
4831	// AdministrativeArea: Optional. Highest administrative subdivision
4832	// which is used for postal addresses of a country or region. For
4833	// example, this can be a state, a province, an oblast, or a prefecture.
4834	// Specifically, for Spain this is the province and not the autonomous
4835	// community (e.g. "Barcelona" and not "Catalonia"). Many countries
4836	// don't use an administrative area in postal addresses. E.g. in
4837	// Switzerland this should be left unpopulated.
4838	AdministrativeArea string `json:"administrativeArea,omitempty"`
4839
4840	// LanguageCode: Optional. BCP-47 language code of the contents of this
4841	// address (if known). This is often the UI language of the input form
4842	// or is expected to match one of the languages used in the address'
4843	// country/region, or their transliterated equivalents. This can affect
4844	// formatting in certain countries, but is not critical to the
4845	// correctness of the data and will never affect any validation or other
4846	// non-formatting related operations. If this value is not known, it
4847	// should be omitted (rather than specifying a possibly incorrect
4848	// default). Examples: "zh-Hant", "ja", "ja-Latn", "en".
4849	LanguageCode string `json:"languageCode,omitempty"`
4850
4851	// Locality: Optional. Generally refers to the city/town portion of the
4852	// address. Examples: US city, IT comune, UK post town. In regions of
4853	// the world where localities are not well defined or do not fit into
4854	// this structure well, leave locality empty and use address_lines.
4855	Locality string `json:"locality,omitempty"`
4856
4857	// Organization: Optional. The name of the organization at the address.
4858	Organization string `json:"organization,omitempty"`
4859
4860	// PostalCode: Optional. Postal code of the address. Not all countries
4861	// use or require postal codes to be present, but where they are used,
4862	// they may trigger additional validation with other parts of the
4863	// address (e.g. state/zip validation in the U.S.A.).
4864	PostalCode string `json:"postalCode,omitempty"`
4865
4866	// Recipients: Optional. The recipient at the address. This field may,
4867	// under certain circumstances, contain multiline information. For
4868	// example, it might contain "care of" information.
4869	Recipients []string `json:"recipients,omitempty"`
4870
4871	// RegionCode: Required. CLDR region code of the country/region of the
4872	// address. This is never inferred and it is up to the user to ensure
4873	// the value is correct. See http://cldr.unicode.org/ and
4874	// http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: "CH" for
4875	// Switzerland.
4876	RegionCode string `json:"regionCode,omitempty"`
4877
4878	// Revision: The schema revision of the `PostalAddress`. This must be
4879	// set to 0, which is the latest revision. All new revisions **must** be
4880	// backward compatible with old revisions.
4881	Revision int64 `json:"revision,omitempty"`
4882
4883	// SortingCode: Optional. Additional, country-specific, sorting code.
4884	// This is not used in most regions. Where it is used, the value is
4885	// either a string like "CEDEX", optionally followed by a number (e.g.
4886	// "CEDEX 7"), or just a number alone, representing the "sector code"
4887	// (Jamaica), "delivery area indicator" (Malawi) or "post office
4888	// indicator" (e.g. Côte d'Ivoire).
4889	SortingCode string `json:"sortingCode,omitempty"`
4890
4891	// Sublocality: Optional. Sublocality of the address. For example, this
4892	// can be neighborhoods, boroughs, districts.
4893	Sublocality string `json:"sublocality,omitempty"`
4894
4895	// ForceSendFields is a list of field names (e.g. "AddressLines") to
4896	// unconditionally include in API requests. By default, fields with
4897	// empty values are omitted from API requests. However, any non-pointer,
4898	// non-interface field appearing in ForceSendFields will be sent to the
4899	// server regardless of whether the field is empty or not. This may be
4900	// used to include empty fields in Patch requests.
4901	ForceSendFields []string `json:"-"`
4902
4903	// NullFields is a list of field names (e.g. "AddressLines") to include
4904	// in API requests with the JSON null value. By default, fields with
4905	// empty values are omitted from API requests. However, any field with
4906	// an empty value appearing in NullFields will be sent to the server as
4907	// null. It is an error if a field in this list has a non-empty value.
4908	// This may be used to include null fields in Patch requests.
4909	NullFields []string `json:"-"`
4910}
4911
4912func (s *PostalAddress) MarshalJSON() ([]byte, error) {
4913	type NoMethod PostalAddress
4914	raw := NoMethod(*s)
4915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4916}
4917
4918// RequestMetadata: Input only. Meta information related to the job
4919// searcher or entity conducting the job search. This information is
4920// used to improve the performance of the service.
4921type RequestMetadata struct {
4922	// DeviceInfo: Optional. The type of device used by the job seeker at
4923	// the time of the call to the service.
4924	DeviceInfo *DeviceInfo `json:"deviceInfo,omitempty"`
4925
4926	// Domain: Required. The client-defined scope or source of the service
4927	// call, which typically is the domain on which the service has been
4928	// implemented and is currently being run. For example, if the service
4929	// is being run by client *Foo, Inc.*, on job board www.foo.com and
4930	// career site www.bar.com, then this field is set to "foo.com" for use
4931	// on the job board, and "bar.com" for use on the career site. If this
4932	// field is not available for some reason, send "UNKNOWN". Note that any
4933	// improvements to the service model for a particular tenant site rely
4934	// on this field being set correctly to some domain.
4935	Domain string `json:"domain,omitempty"`
4936
4937	// SessionId: Required. A unique session identification string. A
4938	// session is defined as the duration of an end user's interaction with
4939	// the service over a period. Obfuscate this field for privacy concerns
4940	// before providing it to the API. If this field is not available for
4941	// some reason, please send "UNKNOWN". Note that any improvements to the
4942	// service model for a particular tenant site, rely on this field being
4943	// set correctly to some unique session_id.
4944	SessionId string `json:"sessionId,omitempty"`
4945
4946	// UserId: Required. A unique user identification string, as determined
4947	// by the client. The client is responsible for ensuring client-level
4948	// uniqueness of this value in order to have the strongest positive
4949	// impact on search quality. Obfuscate this field for privacy concerns
4950	// before providing it to the service. If this field is not available
4951	// for some reason, please send "UNKNOWN". Note that any improvements to
4952	// the service model for a particular tenant site, rely on this field
4953	// being set correctly to some unique user_id.
4954	UserId string `json:"userId,omitempty"`
4955
4956	// ForceSendFields is a list of field names (e.g. "DeviceInfo") to
4957	// unconditionally include in API requests. By default, fields with
4958	// empty values are omitted from API requests. However, any non-pointer,
4959	// non-interface field appearing in ForceSendFields will be sent to the
4960	// server regardless of whether the field is empty or not. This may be
4961	// used to include empty fields in Patch requests.
4962	ForceSendFields []string `json:"-"`
4963
4964	// NullFields is a list of field names (e.g. "DeviceInfo") to include in
4965	// API requests with the JSON null value. By default, fields with empty
4966	// values are omitted from API requests. However, any field with an
4967	// empty value appearing in NullFields will be sent to the server as
4968	// null. It is an error if a field in this list has a non-empty value.
4969	// This may be used to include null fields in Patch requests.
4970	NullFields []string `json:"-"`
4971}
4972
4973func (s *RequestMetadata) MarshalJSON() ([]byte, error) {
4974	type NoMethod RequestMetadata
4975	raw := NoMethod(*s)
4976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4977}
4978
4979// ResponseMetadata: Output only. Additional information returned to
4980// client, such as debugging information.
4981type ResponseMetadata struct {
4982	// ExperimentIdList: Identifiers for the versions of the search
4983	// algorithm used during this API invocation if multiple algorithms are
4984	// used. The default value is empty. For search response only.
4985	ExperimentIdList []int64 `json:"experimentIdList,omitempty"`
4986
4987	// Mode: For search response only. Indicates the mode of a performed
4988	// search.
4989	//
4990	// Possible values:
4991	//   "SEARCH_MODE_UNSPECIFIED" - The mode of the search method isn't
4992	// specified.
4993	//   "JOB_SEARCH" - The job search doesn't include support for featured
4994	// jobs.
4995	//   "FEATURED_JOB_SEARCH" - The job search matches only against
4996	// featured jobs (jobs with a promotionValue > 0). This method doesn't
4997	// return any jobs having a promotionValue <= 0. The search results
4998	// order is determined by the promotionValue (jobs with a higher
4999	// promotionValue are returned higher up in the search results), with
5000	// relevance being used as a tiebreaker.
5001	//   "EMAIL_ALERT_SEARCH" - Deprecated. Please use the
5002	// SearchJobsForAlert API. The job search matches against jobs suited to
5003	// email notifications.
5004	Mode string `json:"mode,omitempty"`
5005
5006	// RequestId: A unique id associated with this call. This id is logged
5007	// for tracking purposes.
5008	RequestId string `json:"requestId,omitempty"`
5009
5010	// ForceSendFields is a list of field names (e.g. "ExperimentIdList") to
5011	// unconditionally include in API requests. By default, fields with
5012	// empty values are omitted from API requests. However, any non-pointer,
5013	// non-interface field appearing in ForceSendFields will be sent to the
5014	// server regardless of whether the field is empty or not. This may be
5015	// used to include empty fields in Patch requests.
5016	ForceSendFields []string `json:"-"`
5017
5018	// NullFields is a list of field names (e.g. "ExperimentIdList") to
5019	// include in API requests with the JSON null value. By default, fields
5020	// with empty values are omitted from API requests. However, any field
5021	// with an empty value appearing in NullFields will be sent to the
5022	// server as null. It is an error if a field in this list has a
5023	// non-empty value. This may be used to include null fields in Patch
5024	// requests.
5025	NullFields []string `json:"-"`
5026}
5027
5028func (s *ResponseMetadata) MarshalJSON() ([]byte, error) {
5029	type NoMethod ResponseMetadata
5030	raw := NoMethod(*s)
5031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5032}
5033
5034// SearchJobsRequest: Input only. The Request body of the `SearchJobs`
5035// call.
5036type SearchJobsRequest struct {
5037	// DisableRelevanceThresholding: Optional. Controls whether to disable
5038	// relevance thresholding. Relevance thresholding removes jobs that have
5039	// low relevance in search results, for example, removing "Assistant to
5040	// the CEO" positions from the search results of a search for "CEO".
5041	// Disabling relevance thresholding improves the accuracy of subsequent
5042	// search requests. Defaults to false.
5043	DisableRelevanceThresholding bool `json:"disableRelevanceThresholding,omitempty"`
5044
5045	// EnableBroadening: Optional. Controls whether to broaden the search
5046	// when it produces sparse results. Broadened queries append results to
5047	// the end of the matching results list. Defaults to false.
5048	EnableBroadening bool `json:"enableBroadening,omitempty"`
5049
5050	// EnablePreciseResultSize: Optional. Controls if the search job request
5051	// requires the return of a precise count of the first 300 results.
5052	// Setting this to `true` ensures consistency in the number of results
5053	// per page. Best practice is to set this value to true if a client
5054	// allows users to jump directly to a non-sequential search results
5055	// page. Enabling this flag may adversely impact performance. Defaults
5056	// to false.
5057	EnablePreciseResultSize bool `json:"enablePreciseResultSize,omitempty"`
5058
5059	// Filters: Deprecated. Use query instead. Optional. Restrictions on the
5060	// scope of the search request, such as filtering by location.
5061	Filters *JobFilters `json:"filters,omitempty"`
5062
5063	// HistogramFacets: Optional. Restrictions on what fields to perform
5064	// histogram on, such as `COMPANY_SIZE` etc.
5065	HistogramFacets *HistogramFacets `json:"histogramFacets,omitempty"`
5066
5067	// JobView: Optional. The number of job attributes returned for jobs in
5068	// the search response. Defaults to JobView.SMALL if no value is
5069	// specified.
5070	//
5071	// Possible values:
5072	//   "JOB_VIEW_UNSPECIFIED" - Default value.
5073	//   "SMALL" - A small view of the job, with the following attributes in
5074	// the search results: Job.name, Job.requisition_id, Job.job_title,
5075	// Job.company_name, Job.job_locations, Job.description, Job.visibility.
5076	// Note: Job.description is deprecated. It is scheduled to be removed
5077	// from MatchingJob.Job objects in the SearchJobsResponse results on
5078	// 12/31/2018.
5079	//   "MINIMAL" - A minimal view of the job, with the following
5080	// attributes in the search results: Job.name, Job.requisition_id,
5081	// Job.job_title, Job.company_name, Job.job_locations.
5082	//   "FULL" - All available attributes are included in the search
5083	// results. Note: [Job.description, Job.responsibilities,
5084	// Job.qualifications and Job.incentives are deprecated. These fields
5085	// are scheduled to be removed from MatchingJob.Job objects in the
5086	// SearchJobsResponse results on 12/31/2018. See the alternative
5087	// MatchingJob.search_text_snippet and MatchingJob.job_summary fields.
5088	JobView string `json:"jobView,omitempty"`
5089
5090	// Mode: Required. Mode of a search.
5091	//
5092	// Possible values:
5093	//   "SEARCH_MODE_UNSPECIFIED" - The mode of the search method isn't
5094	// specified.
5095	//   "JOB_SEARCH" - The job search doesn't include support for featured
5096	// jobs.
5097	//   "FEATURED_JOB_SEARCH" - The job search matches only against
5098	// featured jobs (jobs with a promotionValue > 0). This method doesn't
5099	// return any jobs having a promotionValue <= 0. The search results
5100	// order is determined by the promotionValue (jobs with a higher
5101	// promotionValue are returned higher up in the search results), with
5102	// relevance being used as a tiebreaker.
5103	//   "EMAIL_ALERT_SEARCH" - Deprecated. Please use the
5104	// SearchJobsForAlert API. The job search matches against jobs suited to
5105	// email notifications.
5106	Mode string `json:"mode,omitempty"`
5107
5108	// Offset: Optional. An integer that specifies the current offset (that
5109	// is, starting result location, amongst the jobs deemed by the API as
5110	// relevant) in search results. This field is only considered if
5111	// page_token is unset. For example, 0 means to return results starting
5112	// from the first matching job, and 10 means to return from the 11th
5113	// job. This can be used for pagination, (for example, pageSize = 10 and
5114	// offset = 10 means to return from the second page).
5115	Offset int64 `json:"offset,omitempty"`
5116
5117	// OrderBy: Deprecated. Use sort_by instead. Optional. The criteria
5118	// determining how search results are sorted. Defaults to
5119	// SortBy.RELEVANCE_DESC if no value is specified.
5120	//
5121	// Possible values:
5122	//   "SORT_BY_UNSPECIFIED" - Default value.
5123	//   "RELEVANCE_DESC" - By descending relevance, as determined by the
5124	// API algorithms. Relevance thresholding of query results is only
5125	// available for queries if RELEVANCE_DESC sort ordering is specified.
5126	//   "PUBLISHED_DATE_DESC" - Sort by published date descending.
5127	//   "UPDATED_DATE_DESC" - Sort by updated date descending.
5128	//   "TITLE" - Sort by job title ascending.
5129	//   "TITLE_DESC" - Sort by job title descending.
5130	//   "ANNUALIZED_BASE_COMPENSATION" - Sort by job annualized base
5131	// compensation in ascending order. If job's annualized base
5132	// compensation is unspecified, they are put at the end of search
5133	// result.
5134	//   "ANNUALIZED_TOTAL_COMPENSATION" - Sort by job annualized total
5135	// compensation in ascending order. If job's annualized total
5136	// compensation is unspecified, they are put at the end of search
5137	// result.
5138	//   "ANNUALIZED_BASE_COMPENSATION_DESC" - Sort by job annualized base
5139	// compensation in descending order. If job's annualized base
5140	// compensation is unspecified, they are put at the end of search
5141	// result.
5142	//   "ANNUALIZED_TOTAL_COMPENSATION_DESC" - Sort by job annualized total
5143	// compensation in descending order. If job's annualized total
5144	// compensation is unspecified, they are put at the end of search
5145	// result.
5146	OrderBy string `json:"orderBy,omitempty"`
5147
5148	// PageSize: Optional. A limit on the number of jobs returned in the
5149	// search results. Increasing this value above the default value of 10
5150	// can increase search response time. The value can be between 1 and
5151	// 100.
5152	PageSize int64 `json:"pageSize,omitempty"`
5153
5154	// PageToken: Optional. The token specifying the current offset within
5155	// search results. See SearchJobsResponse.next_page_token for an
5156	// explanation of how to obtain the next set of query results.
5157	PageToken string `json:"pageToken,omitempty"`
5158
5159	// Query: Optional. Query used to search against jobs, such as keyword,
5160	// location filters, etc.
5161	Query *JobQuery `json:"query,omitempty"`
5162
5163	// RequestMetadata: Required. The meta information collected about the
5164	// job searcher, used to improve the search quality of the service. The
5165	// identifiers, (such as `user_id`) are provided by users, and must be
5166	// unique and consistent.
5167	RequestMetadata *RequestMetadata `json:"requestMetadata,omitempty"`
5168
5169	// SortBy: Optional. The criteria determining how search results are
5170	// sorted. Defaults to SortBy.RELEVANCE_DESC if no value is specified.
5171	//
5172	// Possible values:
5173	//   "SORT_BY_UNSPECIFIED" - Default value.
5174	//   "RELEVANCE_DESC" - By descending relevance, as determined by the
5175	// API algorithms. Relevance thresholding of query results is only
5176	// available for queries if RELEVANCE_DESC sort ordering is specified.
5177	//   "PUBLISHED_DATE_DESC" - Sort by published date descending.
5178	//   "UPDATED_DATE_DESC" - Sort by updated date descending.
5179	//   "TITLE" - Sort by job title ascending.
5180	//   "TITLE_DESC" - Sort by job title descending.
5181	//   "ANNUALIZED_BASE_COMPENSATION" - Sort by job annualized base
5182	// compensation in ascending order. If job's annualized base
5183	// compensation is unspecified, they are put at the end of search
5184	// result.
5185	//   "ANNUALIZED_TOTAL_COMPENSATION" - Sort by job annualized total
5186	// compensation in ascending order. If job's annualized total
5187	// compensation is unspecified, they are put at the end of search
5188	// result.
5189	//   "ANNUALIZED_BASE_COMPENSATION_DESC" - Sort by job annualized base
5190	// compensation in descending order. If job's annualized base
5191	// compensation is unspecified, they are put at the end of search
5192	// result.
5193	//   "ANNUALIZED_TOTAL_COMPENSATION_DESC" - Sort by job annualized total
5194	// compensation in descending order. If job's annualized total
5195	// compensation is unspecified, they are put at the end of search
5196	// result.
5197	SortBy string `json:"sortBy,omitempty"`
5198
5199	// ForceSendFields is a list of field names (e.g.
5200	// "DisableRelevanceThresholding") to unconditionally include in API
5201	// requests. By default, fields with empty values are omitted from API
5202	// requests. However, any non-pointer, non-interface field appearing in
5203	// ForceSendFields will be sent to the server regardless of whether the
5204	// field is empty or not. This may be used to include empty fields in
5205	// Patch requests.
5206	ForceSendFields []string `json:"-"`
5207
5208	// NullFields is a list of field names (e.g.
5209	// "DisableRelevanceThresholding") to include in API requests with the
5210	// JSON null value. By default, fields with empty values are omitted
5211	// from API requests. However, any field with an empty value appearing
5212	// in NullFields will be sent to the server as null. It is an error if a
5213	// field in this list has a non-empty value. This may be used to include
5214	// null fields in Patch requests.
5215	NullFields []string `json:"-"`
5216}
5217
5218func (s *SearchJobsRequest) MarshalJSON() ([]byte, error) {
5219	type NoMethod SearchJobsRequest
5220	raw := NoMethod(*s)
5221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5222}
5223
5224// SearchJobsResponse: Output only. Response for SearchJob method.
5225type SearchJobsResponse struct {
5226	// AppliedCommuteFilter: The commute filter the service applied to the
5227	// specified query. This information is only available when query has a
5228	// valid CommutePreference.
5229	AppliedCommuteFilter *CommutePreference `json:"appliedCommuteFilter,omitempty"`
5230
5231	// AppliedJobLocationFilters: The location filters that the service
5232	// applied to the specified query. If any filters are lat-lng based, the
5233	// JobLocation.location_type is
5234	// JobLocation.LocationType#LOCATION_TYPE_UNSPECIFIED.
5235	AppliedJobLocationFilters []*JobLocation `json:"appliedJobLocationFilters,omitempty"`
5236
5237	// EstimatedTotalSize: An estimation of the number of jobs that match
5238	// the specified query. This number is not guaranteed to be accurate.
5239	// For accurate results, seenenable_precise_result_size.
5240	EstimatedTotalSize int64 `json:"estimatedTotalSize,omitempty,string"`
5241
5242	// HistogramResults: The histogram results that match specified
5243	// SearchJobsRequest.HistogramFacets.
5244	HistogramResults *HistogramResults `json:"histogramResults,omitempty"`
5245
5246	// JobView: Corresponds to SearchJobsRequest.job_view.
5247	//
5248	// Possible values:
5249	//   "JOB_VIEW_UNSPECIFIED" - Default value.
5250	//   "SMALL" - A small view of the job, with the following attributes in
5251	// the search results: Job.name, Job.requisition_id, Job.job_title,
5252	// Job.company_name, Job.job_locations, Job.description, Job.visibility.
5253	// Note: Job.description is deprecated. It is scheduled to be removed
5254	// from MatchingJob.Job objects in the SearchJobsResponse results on
5255	// 12/31/2018.
5256	//   "MINIMAL" - A minimal view of the job, with the following
5257	// attributes in the search results: Job.name, Job.requisition_id,
5258	// Job.job_title, Job.company_name, Job.job_locations.
5259	//   "FULL" - All available attributes are included in the search
5260	// results. Note: [Job.description, Job.responsibilities,
5261	// Job.qualifications and Job.incentives are deprecated. These fields
5262	// are scheduled to be removed from MatchingJob.Job objects in the
5263	// SearchJobsResponse results on 12/31/2018. See the alternative
5264	// MatchingJob.search_text_snippet and MatchingJob.job_summary fields.
5265	JobView string `json:"jobView,omitempty"`
5266
5267	// MatchingJobs: The Job entities that match the specified
5268	// SearchJobsRequest.
5269	MatchingJobs []*MatchingJob `json:"matchingJobs,omitempty"`
5270
5271	// Metadata: Additional information for the API invocation, such as the
5272	// request tracking id.
5273	Metadata *ResponseMetadata `json:"metadata,omitempty"`
5274
5275	// NextPageToken: The token that specifies the starting position of the
5276	// next page of results. This field is empty if there are no more
5277	// results.
5278	NextPageToken string `json:"nextPageToken,omitempty"`
5279
5280	// NumJobsFromBroadenedQuery: If query broadening is enabled, we may
5281	// append additional results from the broadened query. This number
5282	// indicates how many of the jobs returned in the jobs field are from
5283	// the broadened query. These results are always at the end of the jobs
5284	// list. In particular, a value of 0 means all the jobs in the jobs list
5285	// are from the original (without broadening) query. If this field is
5286	// non-zero, subsequent requests with offset after this result set
5287	// should contain all broadened results.
5288	NumJobsFromBroadenedQuery int64 `json:"numJobsFromBroadenedQuery,omitempty"`
5289
5290	// SpellResult: The spell checking result, and correction.
5291	SpellResult *SpellingCorrection `json:"spellResult,omitempty"`
5292
5293	// TotalSize: The precise result count, which is available only if the
5294	// client set enable_precise_result_size to `true` or if the response is
5295	// the last page of results. Otherwise, the value will be `-1`.
5296	TotalSize int64 `json:"totalSize,omitempty,string"`
5297
5298	// ServerResponse contains the HTTP response code and headers from the
5299	// server.
5300	googleapi.ServerResponse `json:"-"`
5301
5302	// ForceSendFields is a list of field names (e.g.
5303	// "AppliedCommuteFilter") to unconditionally include in API requests.
5304	// By default, fields with empty values are omitted from API requests.
5305	// However, any non-pointer, non-interface field appearing in
5306	// ForceSendFields will be sent to the server regardless of whether the
5307	// field is empty or not. This may be used to include empty fields in
5308	// Patch requests.
5309	ForceSendFields []string `json:"-"`
5310
5311	// NullFields is a list of field names (e.g. "AppliedCommuteFilter") to
5312	// include in API requests with the JSON null value. By default, fields
5313	// with empty values are omitted from API requests. However, any field
5314	// with an empty value appearing in NullFields will be sent to the
5315	// server as null. It is an error if a field in this list has a
5316	// non-empty value. This may be used to include null fields in Patch
5317	// requests.
5318	NullFields []string `json:"-"`
5319}
5320
5321func (s *SearchJobsResponse) MarshalJSON() ([]byte, error) {
5322	type NoMethod SearchJobsResponse
5323	raw := NoMethod(*s)
5324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5325}
5326
5327// SpellingCorrection: Output only. Spell check result.
5328type SpellingCorrection struct {
5329	// Corrected: Indicates if the query was corrected by the spell checker.
5330	Corrected bool `json:"corrected,omitempty"`
5331
5332	// CorrectedText: Correction output consisting of the corrected keyword
5333	// string.
5334	CorrectedText string `json:"correctedText,omitempty"`
5335
5336	// ForceSendFields is a list of field names (e.g. "Corrected") to
5337	// unconditionally include in API requests. By default, fields with
5338	// empty values are omitted from API requests. However, any non-pointer,
5339	// non-interface field appearing in ForceSendFields will be sent to the
5340	// server regardless of whether the field is empty or not. This may be
5341	// used to include empty fields in Patch requests.
5342	ForceSendFields []string `json:"-"`
5343
5344	// NullFields is a list of field names (e.g. "Corrected") to include in
5345	// API requests with the JSON null value. By default, fields with empty
5346	// values are omitted from API requests. However, any field with an
5347	// empty value appearing in NullFields will be sent to the server as
5348	// null. It is an error if a field in this list has a non-empty value.
5349	// This may be used to include null fields in Patch requests.
5350	NullFields []string `json:"-"`
5351}
5352
5353func (s *SpellingCorrection) MarshalJSON() ([]byte, error) {
5354	type NoMethod SpellingCorrection
5355	raw := NoMethod(*s)
5356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5357}
5358
5359// Status: The `Status` type defines a logical error model that is
5360// suitable for different programming environments, including REST APIs
5361// and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each
5362// `Status` message contains three pieces of data: error code, error
5363// message, and error details. You can find out more about this error
5364// model and how to work with it in the [API Design
5365// Guide](https://cloud.google.com/apis/design/errors).
5366type Status struct {
5367	// Code: The status code, which should be an enum value of
5368	// google.rpc.Code.
5369	Code int64 `json:"code,omitempty"`
5370
5371	// Details: A list of messages that carry the error details. There is a
5372	// common set of message types for APIs to use.
5373	Details []googleapi.RawMessage `json:"details,omitempty"`
5374
5375	// Message: A developer-facing error message, which should be in
5376	// English. Any user-facing error message should be localized and sent
5377	// in the google.rpc.Status.details field, or localized by the client.
5378	Message string `json:"message,omitempty"`
5379
5380	// ForceSendFields is a list of field names (e.g. "Code") to
5381	// unconditionally include in API requests. By default, fields with
5382	// empty values are omitted from API requests. However, any non-pointer,
5383	// non-interface field appearing in ForceSendFields will be sent to the
5384	// server regardless of whether the field is empty or not. This may be
5385	// used to include empty fields in Patch requests.
5386	ForceSendFields []string `json:"-"`
5387
5388	// NullFields is a list of field names (e.g. "Code") to include in API
5389	// requests with the JSON null value. By default, fields with empty
5390	// values are omitted from API requests. However, any field with an
5391	// empty value appearing in NullFields will be sent to the server as
5392	// null. It is an error if a field in this list has a non-empty value.
5393	// This may be used to include null fields in Patch requests.
5394	NullFields []string `json:"-"`
5395}
5396
5397func (s *Status) MarshalJSON() ([]byte, error) {
5398	type NoMethod Status
5399	raw := NoMethod(*s)
5400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5401}
5402
5403// StringValues: Represents array of string values.
5404type StringValues struct {
5405	// Values: Required. String values.
5406	Values []string `json:"values,omitempty"`
5407
5408	// ForceSendFields is a list of field names (e.g. "Values") to
5409	// unconditionally include in API requests. By default, fields with
5410	// empty values are omitted from API requests. However, any non-pointer,
5411	// non-interface field appearing in ForceSendFields will be sent to the
5412	// server regardless of whether the field is empty or not. This may be
5413	// used to include empty fields in Patch requests.
5414	ForceSendFields []string `json:"-"`
5415
5416	// NullFields is a list of field names (e.g. "Values") to include in API
5417	// requests with the JSON null value. By default, fields with empty
5418	// values are omitted from API requests. However, any field with an
5419	// empty value appearing in NullFields will be sent to the server as
5420	// null. It is an error if a field in this list has a non-empty value.
5421	// This may be used to include null fields in Patch requests.
5422	NullFields []string `json:"-"`
5423}
5424
5425func (s *StringValues) MarshalJSON() ([]byte, error) {
5426	type NoMethod StringValues
5427	raw := NoMethod(*s)
5428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5429}
5430
5431// UpdateJobRequest: Input only. Update job request.
5432type UpdateJobRequest struct {
5433	// DisableStreetAddressResolution: Deprecated. Please use
5434	// processing_options. This flag is ignored if processing_options is
5435	// set. Optional. If set to `true`, the service does not attempt resolve
5436	// a more precise address for the job.
5437	DisableStreetAddressResolution bool `json:"disableStreetAddressResolution,omitempty"`
5438
5439	// Job: Required. The Job to be updated.
5440	Job *Job `json:"job,omitempty"`
5441
5442	// ProcessingOptions: Optional. Options for job processing.
5443	// UpdateJobRequest.disable_street_address_resolution is ignored if this
5444	// flag is set.
5445	ProcessingOptions *JobProcessingOptions `json:"processingOptions,omitempty"`
5446
5447	// UpdateJobFields: Optional but strongly recommended to be provided for
5448	// the best service experience. If update_job_fields is provided, only
5449	// the specified fields in job are updated. Otherwise all the fields are
5450	// updated. A field mask to restrict the fields that are updated. Valid
5451	// values are: * jobTitle * employmentTypes * description *
5452	// applicationUrls * applicationEmailList * applicationInstruction *
5453	// responsibilities * qualifications * educationLevels * level *
5454	// department * startDate * endDate * compensationInfo * incentives *
5455	// languageCode * benefits * expireTime * customAttributes * visibility
5456	// * publishDate * promotionValue * locations * region * expiryDate
5457	// (deprecated) * filterableCustomFields (deprecated) *
5458	// unindexedCustomFields (deprecated)
5459	UpdateJobFields string `json:"updateJobFields,omitempty"`
5460
5461	// ForceSendFields is a list of field names (e.g.
5462	// "DisableStreetAddressResolution") to unconditionally include in API
5463	// requests. By default, fields with empty values are omitted from API
5464	// requests. However, any non-pointer, non-interface field appearing in
5465	// ForceSendFields will be sent to the server regardless of whether the
5466	// field is empty or not. This may be used to include empty fields in
5467	// Patch requests.
5468	ForceSendFields []string `json:"-"`
5469
5470	// NullFields is a list of field names (e.g.
5471	// "DisableStreetAddressResolution") to include in API requests with the
5472	// JSON null value. By default, fields with empty values are omitted
5473	// from API requests. However, any field with an empty value appearing
5474	// in NullFields will be sent to the server as null. It is an error if a
5475	// field in this list has a non-empty value. This may be used to include
5476	// null fields in Patch requests.
5477	NullFields []string `json:"-"`
5478}
5479
5480func (s *UpdateJobRequest) MarshalJSON() ([]byte, error) {
5481	type NoMethod UpdateJobRequest
5482	raw := NoMethod(*s)
5483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5484}
5485
5486// method id "jobs.companies.create":
5487
5488type CompaniesCreateCall struct {
5489	s          *Service
5490	company    *Company
5491	urlParams_ gensupport.URLParams
5492	ctx_       context.Context
5493	header_    http.Header
5494}
5495
5496// Create: Creates a new company entity.
5497func (r *CompaniesService) Create(company *Company) *CompaniesCreateCall {
5498	c := &CompaniesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5499	c.company = company
5500	return c
5501}
5502
5503// Fields allows partial responses to be retrieved. See
5504// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5505// for more information.
5506func (c *CompaniesCreateCall) Fields(s ...googleapi.Field) *CompaniesCreateCall {
5507	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5508	return c
5509}
5510
5511// Context sets the context to be used in this call's Do method. Any
5512// pending HTTP request will be aborted if the provided context is
5513// canceled.
5514func (c *CompaniesCreateCall) Context(ctx context.Context) *CompaniesCreateCall {
5515	c.ctx_ = ctx
5516	return c
5517}
5518
5519// Header returns an http.Header that can be modified by the caller to
5520// add HTTP headers to the request.
5521func (c *CompaniesCreateCall) Header() http.Header {
5522	if c.header_ == nil {
5523		c.header_ = make(http.Header)
5524	}
5525	return c.header_
5526}
5527
5528func (c *CompaniesCreateCall) doRequest(alt string) (*http.Response, error) {
5529	reqHeaders := make(http.Header)
5530	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
5531	for k, v := range c.header_ {
5532		reqHeaders[k] = v
5533	}
5534	reqHeaders.Set("User-Agent", c.s.userAgent())
5535	var body io.Reader = nil
5536	body, err := googleapi.WithoutDataWrapper.JSONReader(c.company)
5537	if err != nil {
5538		return nil, err
5539	}
5540	reqHeaders.Set("Content-Type", "application/json")
5541	c.urlParams_.Set("alt", alt)
5542	c.urlParams_.Set("prettyPrint", "false")
5543	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/companies")
5544	urls += "?" + c.urlParams_.Encode()
5545	req, err := http.NewRequest("POST", urls, body)
5546	if err != nil {
5547		return nil, err
5548	}
5549	req.Header = reqHeaders
5550	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5551}
5552
5553// Do executes the "jobs.companies.create" call.
5554// Exactly one of *Company or error will be non-nil. Any non-2xx status
5555// code is an error. Response headers are in either
5556// *Company.ServerResponse.Header or (if a response was returned at all)
5557// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5558// check whether the returned error was because http.StatusNotModified
5559// was returned.
5560func (c *CompaniesCreateCall) Do(opts ...googleapi.CallOption) (*Company, error) {
5561	gensupport.SetOptions(c.urlParams_, opts...)
5562	res, err := c.doRequest("json")
5563	if res != nil && res.StatusCode == http.StatusNotModified {
5564		if res.Body != nil {
5565			res.Body.Close()
5566		}
5567		return nil, &googleapi.Error{
5568			Code:   res.StatusCode,
5569			Header: res.Header,
5570		}
5571	}
5572	if err != nil {
5573		return nil, err
5574	}
5575	defer googleapi.CloseBody(res)
5576	if err := googleapi.CheckResponse(res); err != nil {
5577		return nil, err
5578	}
5579	ret := &Company{
5580		ServerResponse: googleapi.ServerResponse{
5581			Header:         res.Header,
5582			HTTPStatusCode: res.StatusCode,
5583		},
5584	}
5585	target := &ret
5586	if err := gensupport.DecodeResponse(target, res); err != nil {
5587		return nil, err
5588	}
5589	return ret, nil
5590	// {
5591	//   "description": "Creates a new company entity.",
5592	//   "flatPath": "v2/companies",
5593	//   "httpMethod": "POST",
5594	//   "id": "jobs.companies.create",
5595	//   "parameterOrder": [],
5596	//   "parameters": {},
5597	//   "path": "v2/companies",
5598	//   "request": {
5599	//     "$ref": "Company"
5600	//   },
5601	//   "response": {
5602	//     "$ref": "Company"
5603	//   },
5604	//   "scopes": [
5605	//     "https://www.googleapis.com/auth/cloud-platform",
5606	//     "https://www.googleapis.com/auth/jobs"
5607	//   ]
5608	// }
5609
5610}
5611
5612// method id "jobs.companies.delete":
5613
5614type CompaniesDeleteCall struct {
5615	s          *Service
5616	name       string
5617	urlParams_ gensupport.URLParams
5618	ctx_       context.Context
5619	header_    http.Header
5620}
5621
5622// Delete: Deletes the specified company.
5623func (r *CompaniesService) Delete(name string) *CompaniesDeleteCall {
5624	c := &CompaniesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5625	c.name = name
5626	return c
5627}
5628
5629// Fields allows partial responses to be retrieved. See
5630// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5631// for more information.
5632func (c *CompaniesDeleteCall) Fields(s ...googleapi.Field) *CompaniesDeleteCall {
5633	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5634	return c
5635}
5636
5637// Context sets the context to be used in this call's Do method. Any
5638// pending HTTP request will be aborted if the provided context is
5639// canceled.
5640func (c *CompaniesDeleteCall) Context(ctx context.Context) *CompaniesDeleteCall {
5641	c.ctx_ = ctx
5642	return c
5643}
5644
5645// Header returns an http.Header that can be modified by the caller to
5646// add HTTP headers to the request.
5647func (c *CompaniesDeleteCall) Header() http.Header {
5648	if c.header_ == nil {
5649		c.header_ = make(http.Header)
5650	}
5651	return c.header_
5652}
5653
5654func (c *CompaniesDeleteCall) doRequest(alt string) (*http.Response, error) {
5655	reqHeaders := make(http.Header)
5656	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
5657	for k, v := range c.header_ {
5658		reqHeaders[k] = v
5659	}
5660	reqHeaders.Set("User-Agent", c.s.userAgent())
5661	var body io.Reader = nil
5662	c.urlParams_.Set("alt", alt)
5663	c.urlParams_.Set("prettyPrint", "false")
5664	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
5665	urls += "?" + c.urlParams_.Encode()
5666	req, err := http.NewRequest("DELETE", urls, body)
5667	if err != nil {
5668		return nil, err
5669	}
5670	req.Header = reqHeaders
5671	googleapi.Expand(req.URL, map[string]string{
5672		"name": c.name,
5673	})
5674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5675}
5676
5677// Do executes the "jobs.companies.delete" call.
5678// Exactly one of *Empty or error will be non-nil. Any non-2xx status
5679// code is an error. Response headers are in either
5680// *Empty.ServerResponse.Header or (if a response was returned at all)
5681// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5682// check whether the returned error was because http.StatusNotModified
5683// was returned.
5684func (c *CompaniesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
5685	gensupport.SetOptions(c.urlParams_, opts...)
5686	res, err := c.doRequest("json")
5687	if res != nil && res.StatusCode == http.StatusNotModified {
5688		if res.Body != nil {
5689			res.Body.Close()
5690		}
5691		return nil, &googleapi.Error{
5692			Code:   res.StatusCode,
5693			Header: res.Header,
5694		}
5695	}
5696	if err != nil {
5697		return nil, err
5698	}
5699	defer googleapi.CloseBody(res)
5700	if err := googleapi.CheckResponse(res); err != nil {
5701		return nil, err
5702	}
5703	ret := &Empty{
5704		ServerResponse: googleapi.ServerResponse{
5705			Header:         res.Header,
5706			HTTPStatusCode: res.StatusCode,
5707		},
5708	}
5709	target := &ret
5710	if err := gensupport.DecodeResponse(target, res); err != nil {
5711		return nil, err
5712	}
5713	return ret, nil
5714	// {
5715	//   "description": "Deletes the specified company.",
5716	//   "flatPath": "v2/companies/{companiesId}",
5717	//   "httpMethod": "DELETE",
5718	//   "id": "jobs.companies.delete",
5719	//   "parameterOrder": [
5720	//     "name"
5721	//   ],
5722	//   "parameters": {
5723	//     "name": {
5724	//       "description": "Required. The resource name of the company to be deleted, such as, \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
5725	//       "location": "path",
5726	//       "pattern": "^companies/[^/]+$",
5727	//       "required": true,
5728	//       "type": "string"
5729	//     }
5730	//   },
5731	//   "path": "v2/{+name}",
5732	//   "response": {
5733	//     "$ref": "Empty"
5734	//   },
5735	//   "scopes": [
5736	//     "https://www.googleapis.com/auth/cloud-platform",
5737	//     "https://www.googleapis.com/auth/jobs"
5738	//   ]
5739	// }
5740
5741}
5742
5743// method id "jobs.companies.get":
5744
5745type CompaniesGetCall struct {
5746	s            *Service
5747	name         string
5748	urlParams_   gensupport.URLParams
5749	ifNoneMatch_ string
5750	ctx_         context.Context
5751	header_      http.Header
5752}
5753
5754// Get: Retrieves the specified company.
5755func (r *CompaniesService) Get(name string) *CompaniesGetCall {
5756	c := &CompaniesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5757	c.name = name
5758	return c
5759}
5760
5761// Fields allows partial responses to be retrieved. See
5762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5763// for more information.
5764func (c *CompaniesGetCall) Fields(s ...googleapi.Field) *CompaniesGetCall {
5765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5766	return c
5767}
5768
5769// IfNoneMatch sets the optional parameter which makes the operation
5770// fail if the object's ETag matches the given value. This is useful for
5771// getting updates only after the object has changed since the last
5772// request. Use googleapi.IsNotModified to check whether the response
5773// error from Do is the result of In-None-Match.
5774func (c *CompaniesGetCall) IfNoneMatch(entityTag string) *CompaniesGetCall {
5775	c.ifNoneMatch_ = entityTag
5776	return c
5777}
5778
5779// Context sets the context to be used in this call's Do method. Any
5780// pending HTTP request will be aborted if the provided context is
5781// canceled.
5782func (c *CompaniesGetCall) Context(ctx context.Context) *CompaniesGetCall {
5783	c.ctx_ = ctx
5784	return c
5785}
5786
5787// Header returns an http.Header that can be modified by the caller to
5788// add HTTP headers to the request.
5789func (c *CompaniesGetCall) Header() http.Header {
5790	if c.header_ == nil {
5791		c.header_ = make(http.Header)
5792	}
5793	return c.header_
5794}
5795
5796func (c *CompaniesGetCall) doRequest(alt string) (*http.Response, error) {
5797	reqHeaders := make(http.Header)
5798	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
5799	for k, v := range c.header_ {
5800		reqHeaders[k] = v
5801	}
5802	reqHeaders.Set("User-Agent", c.s.userAgent())
5803	if c.ifNoneMatch_ != "" {
5804		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5805	}
5806	var body io.Reader = nil
5807	c.urlParams_.Set("alt", alt)
5808	c.urlParams_.Set("prettyPrint", "false")
5809	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
5810	urls += "?" + c.urlParams_.Encode()
5811	req, err := http.NewRequest("GET", urls, body)
5812	if err != nil {
5813		return nil, err
5814	}
5815	req.Header = reqHeaders
5816	googleapi.Expand(req.URL, map[string]string{
5817		"name": c.name,
5818	})
5819	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5820}
5821
5822// Do executes the "jobs.companies.get" call.
5823// Exactly one of *Company or error will be non-nil. Any non-2xx status
5824// code is an error. Response headers are in either
5825// *Company.ServerResponse.Header or (if a response was returned at all)
5826// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5827// check whether the returned error was because http.StatusNotModified
5828// was returned.
5829func (c *CompaniesGetCall) Do(opts ...googleapi.CallOption) (*Company, error) {
5830	gensupport.SetOptions(c.urlParams_, opts...)
5831	res, err := c.doRequest("json")
5832	if res != nil && res.StatusCode == http.StatusNotModified {
5833		if res.Body != nil {
5834			res.Body.Close()
5835		}
5836		return nil, &googleapi.Error{
5837			Code:   res.StatusCode,
5838			Header: res.Header,
5839		}
5840	}
5841	if err != nil {
5842		return nil, err
5843	}
5844	defer googleapi.CloseBody(res)
5845	if err := googleapi.CheckResponse(res); err != nil {
5846		return nil, err
5847	}
5848	ret := &Company{
5849		ServerResponse: googleapi.ServerResponse{
5850			Header:         res.Header,
5851			HTTPStatusCode: res.StatusCode,
5852		},
5853	}
5854	target := &ret
5855	if err := gensupport.DecodeResponse(target, res); err != nil {
5856		return nil, err
5857	}
5858	return ret, nil
5859	// {
5860	//   "description": "Retrieves the specified company.",
5861	//   "flatPath": "v2/companies/{companiesId}",
5862	//   "httpMethod": "GET",
5863	//   "id": "jobs.companies.get",
5864	//   "parameterOrder": [
5865	//     "name"
5866	//   ],
5867	//   "parameters": {
5868	//     "name": {
5869	//       "description": "Required. Resource name of the company to retrieve, such as \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
5870	//       "location": "path",
5871	//       "pattern": "^companies/[^/]+$",
5872	//       "required": true,
5873	//       "type": "string"
5874	//     }
5875	//   },
5876	//   "path": "v2/{+name}",
5877	//   "response": {
5878	//     "$ref": "Company"
5879	//   },
5880	//   "scopes": [
5881	//     "https://www.googleapis.com/auth/cloud-platform",
5882	//     "https://www.googleapis.com/auth/jobs"
5883	//   ]
5884	// }
5885
5886}
5887
5888// method id "jobs.companies.list":
5889
5890type CompaniesListCall struct {
5891	s            *Service
5892	urlParams_   gensupport.URLParams
5893	ifNoneMatch_ string
5894	ctx_         context.Context
5895	header_      http.Header
5896}
5897
5898// List: Lists all companies associated with a Cloud Talent Solution
5899// account.
5900func (r *CompaniesService) List() *CompaniesListCall {
5901	c := &CompaniesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5902	return c
5903}
5904
5905// MustHaveOpenJobs sets the optional parameter "mustHaveOpenJobs": Set
5906// to true if the companies request must have open jobs. Defaults to
5907// false. If true, at most page_size of companies are fetched, among
5908// which only those with open jobs are returned.
5909func (c *CompaniesListCall) MustHaveOpenJobs(mustHaveOpenJobs bool) *CompaniesListCall {
5910	c.urlParams_.Set("mustHaveOpenJobs", fmt.Sprint(mustHaveOpenJobs))
5911	return c
5912}
5913
5914// PageSize sets the optional parameter "pageSize": The maximum number
5915// of companies to be returned, at most 100. Default is 100 if a
5916// non-positive number is provided.
5917func (c *CompaniesListCall) PageSize(pageSize int64) *CompaniesListCall {
5918	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5919	return c
5920}
5921
5922// PageToken sets the optional parameter "pageToken": The starting
5923// indicator from which to return results.
5924func (c *CompaniesListCall) PageToken(pageToken string) *CompaniesListCall {
5925	c.urlParams_.Set("pageToken", pageToken)
5926	return c
5927}
5928
5929// Fields allows partial responses to be retrieved. See
5930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5931// for more information.
5932func (c *CompaniesListCall) Fields(s ...googleapi.Field) *CompaniesListCall {
5933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5934	return c
5935}
5936
5937// IfNoneMatch sets the optional parameter which makes the operation
5938// fail if the object's ETag matches the given value. This is useful for
5939// getting updates only after the object has changed since the last
5940// request. Use googleapi.IsNotModified to check whether the response
5941// error from Do is the result of In-None-Match.
5942func (c *CompaniesListCall) IfNoneMatch(entityTag string) *CompaniesListCall {
5943	c.ifNoneMatch_ = entityTag
5944	return c
5945}
5946
5947// Context sets the context to be used in this call's Do method. Any
5948// pending HTTP request will be aborted if the provided context is
5949// canceled.
5950func (c *CompaniesListCall) Context(ctx context.Context) *CompaniesListCall {
5951	c.ctx_ = ctx
5952	return c
5953}
5954
5955// Header returns an http.Header that can be modified by the caller to
5956// add HTTP headers to the request.
5957func (c *CompaniesListCall) Header() http.Header {
5958	if c.header_ == nil {
5959		c.header_ = make(http.Header)
5960	}
5961	return c.header_
5962}
5963
5964func (c *CompaniesListCall) doRequest(alt string) (*http.Response, error) {
5965	reqHeaders := make(http.Header)
5966	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
5967	for k, v := range c.header_ {
5968		reqHeaders[k] = v
5969	}
5970	reqHeaders.Set("User-Agent", c.s.userAgent())
5971	if c.ifNoneMatch_ != "" {
5972		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5973	}
5974	var body io.Reader = nil
5975	c.urlParams_.Set("alt", alt)
5976	c.urlParams_.Set("prettyPrint", "false")
5977	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/companies")
5978	urls += "?" + c.urlParams_.Encode()
5979	req, err := http.NewRequest("GET", urls, body)
5980	if err != nil {
5981		return nil, err
5982	}
5983	req.Header = reqHeaders
5984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5985}
5986
5987// Do executes the "jobs.companies.list" call.
5988// Exactly one of *ListCompaniesResponse or error will be non-nil. Any
5989// non-2xx status code is an error. Response headers are in either
5990// *ListCompaniesResponse.ServerResponse.Header or (if a response was
5991// returned at all) in error.(*googleapi.Error).Header. Use
5992// googleapi.IsNotModified to check whether the returned error was
5993// because http.StatusNotModified was returned.
5994func (c *CompaniesListCall) Do(opts ...googleapi.CallOption) (*ListCompaniesResponse, error) {
5995	gensupport.SetOptions(c.urlParams_, opts...)
5996	res, err := c.doRequest("json")
5997	if res != nil && res.StatusCode == http.StatusNotModified {
5998		if res.Body != nil {
5999			res.Body.Close()
6000		}
6001		return nil, &googleapi.Error{
6002			Code:   res.StatusCode,
6003			Header: res.Header,
6004		}
6005	}
6006	if err != nil {
6007		return nil, err
6008	}
6009	defer googleapi.CloseBody(res)
6010	if err := googleapi.CheckResponse(res); err != nil {
6011		return nil, err
6012	}
6013	ret := &ListCompaniesResponse{
6014		ServerResponse: googleapi.ServerResponse{
6015			Header:         res.Header,
6016			HTTPStatusCode: res.StatusCode,
6017		},
6018	}
6019	target := &ret
6020	if err := gensupport.DecodeResponse(target, res); err != nil {
6021		return nil, err
6022	}
6023	return ret, nil
6024	// {
6025	//   "description": "Lists all companies associated with a Cloud Talent Solution account.",
6026	//   "flatPath": "v2/companies",
6027	//   "httpMethod": "GET",
6028	//   "id": "jobs.companies.list",
6029	//   "parameterOrder": [],
6030	//   "parameters": {
6031	//     "mustHaveOpenJobs": {
6032	//       "description": "Optional. Set to true if the companies request must have open jobs. Defaults to false. If true, at most page_size of companies are fetched, among which only those with open jobs are returned.",
6033	//       "location": "query",
6034	//       "type": "boolean"
6035	//     },
6036	//     "pageSize": {
6037	//       "description": "Optional. The maximum number of companies to be returned, at most 100. Default is 100 if a non-positive number is provided.",
6038	//       "format": "int32",
6039	//       "location": "query",
6040	//       "type": "integer"
6041	//     },
6042	//     "pageToken": {
6043	//       "description": "Optional. The starting indicator from which to return results.",
6044	//       "location": "query",
6045	//       "type": "string"
6046	//     }
6047	//   },
6048	//   "path": "v2/companies",
6049	//   "response": {
6050	//     "$ref": "ListCompaniesResponse"
6051	//   },
6052	//   "scopes": [
6053	//     "https://www.googleapis.com/auth/cloud-platform",
6054	//     "https://www.googleapis.com/auth/jobs"
6055	//   ]
6056	// }
6057
6058}
6059
6060// Pages invokes f for each page of results.
6061// A non-nil error returned from f will halt the iteration.
6062// The provided context supersedes any context provided to the Context method.
6063func (c *CompaniesListCall) Pages(ctx context.Context, f func(*ListCompaniesResponse) error) error {
6064	c.ctx_ = ctx
6065	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
6066	for {
6067		x, err := c.Do()
6068		if err != nil {
6069			return err
6070		}
6071		if err := f(x); err != nil {
6072			return err
6073		}
6074		if x.NextPageToken == "" {
6075			return nil
6076		}
6077		c.PageToken(x.NextPageToken)
6078	}
6079}
6080
6081// method id "jobs.companies.patch":
6082
6083type CompaniesPatchCall struct {
6084	s          *Service
6085	name       string
6086	company    *Company
6087	urlParams_ gensupport.URLParams
6088	ctx_       context.Context
6089	header_    http.Header
6090}
6091
6092// Patch: Updates the specified company. Company names can't be updated.
6093// To update a company name, delete the company and all jobs associated
6094// with it, and only then re-create them.
6095func (r *CompaniesService) Patch(name string, company *Company) *CompaniesPatchCall {
6096	c := &CompaniesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6097	c.name = name
6098	c.company = company
6099	return c
6100}
6101
6102// UpdateCompanyFields sets the optional parameter
6103// "updateCompanyFields": Optional but strongly recommended to be
6104// provided for the best service experience. If update_company_fields is
6105// provided, only the specified fields in company are updated. Otherwise
6106// all the fields are updated. A field mask to specify the company
6107// fields to update. Valid values are: * displayName * website *
6108// imageUrl * companySize * distributorBillingCompanyId *
6109// companyInfoSources * careerPageLink * hiringAgency * hqLocation *
6110// eeoText * keywordSearchableCustomAttributes * title (deprecated) *
6111// keywordSearchableCustomFields (deprecated)
6112func (c *CompaniesPatchCall) UpdateCompanyFields(updateCompanyFields string) *CompaniesPatchCall {
6113	c.urlParams_.Set("updateCompanyFields", updateCompanyFields)
6114	return c
6115}
6116
6117// Fields allows partial responses to be retrieved. See
6118// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6119// for more information.
6120func (c *CompaniesPatchCall) Fields(s ...googleapi.Field) *CompaniesPatchCall {
6121	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6122	return c
6123}
6124
6125// Context sets the context to be used in this call's Do method. Any
6126// pending HTTP request will be aborted if the provided context is
6127// canceled.
6128func (c *CompaniesPatchCall) Context(ctx context.Context) *CompaniesPatchCall {
6129	c.ctx_ = ctx
6130	return c
6131}
6132
6133// Header returns an http.Header that can be modified by the caller to
6134// add HTTP headers to the request.
6135func (c *CompaniesPatchCall) Header() http.Header {
6136	if c.header_ == nil {
6137		c.header_ = make(http.Header)
6138	}
6139	return c.header_
6140}
6141
6142func (c *CompaniesPatchCall) doRequest(alt string) (*http.Response, error) {
6143	reqHeaders := make(http.Header)
6144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
6145	for k, v := range c.header_ {
6146		reqHeaders[k] = v
6147	}
6148	reqHeaders.Set("User-Agent", c.s.userAgent())
6149	var body io.Reader = nil
6150	body, err := googleapi.WithoutDataWrapper.JSONReader(c.company)
6151	if err != nil {
6152		return nil, err
6153	}
6154	reqHeaders.Set("Content-Type", "application/json")
6155	c.urlParams_.Set("alt", alt)
6156	c.urlParams_.Set("prettyPrint", "false")
6157	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
6158	urls += "?" + c.urlParams_.Encode()
6159	req, err := http.NewRequest("PATCH", urls, body)
6160	if err != nil {
6161		return nil, err
6162	}
6163	req.Header = reqHeaders
6164	googleapi.Expand(req.URL, map[string]string{
6165		"name": c.name,
6166	})
6167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6168}
6169
6170// Do executes the "jobs.companies.patch" call.
6171// Exactly one of *Company or error will be non-nil. Any non-2xx status
6172// code is an error. Response headers are in either
6173// *Company.ServerResponse.Header or (if a response was returned at all)
6174// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6175// check whether the returned error was because http.StatusNotModified
6176// was returned.
6177func (c *CompaniesPatchCall) Do(opts ...googleapi.CallOption) (*Company, error) {
6178	gensupport.SetOptions(c.urlParams_, opts...)
6179	res, err := c.doRequest("json")
6180	if res != nil && res.StatusCode == http.StatusNotModified {
6181		if res.Body != nil {
6182			res.Body.Close()
6183		}
6184		return nil, &googleapi.Error{
6185			Code:   res.StatusCode,
6186			Header: res.Header,
6187		}
6188	}
6189	if err != nil {
6190		return nil, err
6191	}
6192	defer googleapi.CloseBody(res)
6193	if err := googleapi.CheckResponse(res); err != nil {
6194		return nil, err
6195	}
6196	ret := &Company{
6197		ServerResponse: googleapi.ServerResponse{
6198			Header:         res.Header,
6199			HTTPStatusCode: res.StatusCode,
6200		},
6201	}
6202	target := &ret
6203	if err := gensupport.DecodeResponse(target, res); err != nil {
6204		return nil, err
6205	}
6206	return ret, nil
6207	// {
6208	//   "description": "Updates the specified company. Company names can't be updated. To update a company name, delete the company and all jobs associated with it, and only then re-create them.",
6209	//   "flatPath": "v2/companies/{companiesId}",
6210	//   "httpMethod": "PATCH",
6211	//   "id": "jobs.companies.patch",
6212	//   "parameterOrder": [
6213	//     "name"
6214	//   ],
6215	//   "parameters": {
6216	//     "name": {
6217	//       "description": "Required during company update. The resource name for a company. This is generated by the service when a company is created, for example, \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
6218	//       "location": "path",
6219	//       "pattern": "^companies/[^/]+$",
6220	//       "required": true,
6221	//       "type": "string"
6222	//     },
6223	//     "updateCompanyFields": {
6224	//       "description": "Optional but strongly recommended to be provided for the best service experience. If update_company_fields is provided, only the specified fields in company are updated. Otherwise all the fields are updated. A field mask to specify the company fields to update. Valid values are: * displayName * website * imageUrl * companySize * distributorBillingCompanyId * companyInfoSources * careerPageLink * hiringAgency * hqLocation * eeoText * keywordSearchableCustomAttributes * title (deprecated) * keywordSearchableCustomFields (deprecated)",
6225	//       "format": "google-fieldmask",
6226	//       "location": "query",
6227	//       "type": "string"
6228	//     }
6229	//   },
6230	//   "path": "v2/{+name}",
6231	//   "request": {
6232	//     "$ref": "Company"
6233	//   },
6234	//   "response": {
6235	//     "$ref": "Company"
6236	//   },
6237	//   "scopes": [
6238	//     "https://www.googleapis.com/auth/cloud-platform",
6239	//     "https://www.googleapis.com/auth/jobs"
6240	//   ]
6241	// }
6242
6243}
6244
6245// method id "jobs.companies.jobs.list":
6246
6247type CompaniesJobsListCall struct {
6248	s            *Service
6249	companyName  string
6250	urlParams_   gensupport.URLParams
6251	ifNoneMatch_ string
6252	ctx_         context.Context
6253	header_      http.Header
6254}
6255
6256// List: Deprecated. Use ListJobs instead. Lists all jobs associated
6257// with a company.
6258func (r *CompaniesJobsService) List(companyName string) *CompaniesJobsListCall {
6259	c := &CompaniesJobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6260	c.companyName = companyName
6261	return c
6262}
6263
6264// IdsOnly sets the optional parameter "idsOnly": If set to `true`, only
6265// job ID, job requisition ID and language code will be returned. A
6266// typical use is to synchronize job repositories. Defaults to false.
6267func (c *CompaniesJobsListCall) IdsOnly(idsOnly bool) *CompaniesJobsListCall {
6268	c.urlParams_.Set("idsOnly", fmt.Sprint(idsOnly))
6269	return c
6270}
6271
6272// IncludeJobsCount sets the optional parameter "includeJobsCount":
6273// Deprecated. Please DO NOT use this field except for small companies.
6274// Suggest counting jobs page by page instead.  Set to true if the total
6275// number of open jobs is to be returned. Defaults to false.
6276func (c *CompaniesJobsListCall) IncludeJobsCount(includeJobsCount bool) *CompaniesJobsListCall {
6277	c.urlParams_.Set("includeJobsCount", fmt.Sprint(includeJobsCount))
6278	return c
6279}
6280
6281// JobRequisitionId sets the optional parameter "jobRequisitionId": The
6282// requisition ID, also known as posting ID, assigned by the company to
6283// the job. The maximum number of allowable characters is 225.
6284func (c *CompaniesJobsListCall) JobRequisitionId(jobRequisitionId string) *CompaniesJobsListCall {
6285	c.urlParams_.Set("jobRequisitionId", jobRequisitionId)
6286	return c
6287}
6288
6289// PageSize sets the optional parameter "pageSize": The maximum number
6290// of jobs to be returned per page of results. If ids_only is set to
6291// true, the maximum allowed page size is 1000. Otherwise, the maximum
6292// allowed page size is 100. Default is 100 if empty or a number < 1 is
6293// specified.
6294func (c *CompaniesJobsListCall) PageSize(pageSize int64) *CompaniesJobsListCall {
6295	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
6296	return c
6297}
6298
6299// PageToken sets the optional parameter "pageToken": The starting point
6300// of a query result.
6301func (c *CompaniesJobsListCall) PageToken(pageToken string) *CompaniesJobsListCall {
6302	c.urlParams_.Set("pageToken", pageToken)
6303	return c
6304}
6305
6306// Fields allows partial responses to be retrieved. See
6307// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6308// for more information.
6309func (c *CompaniesJobsListCall) Fields(s ...googleapi.Field) *CompaniesJobsListCall {
6310	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6311	return c
6312}
6313
6314// IfNoneMatch sets the optional parameter which makes the operation
6315// fail if the object's ETag matches the given value. This is useful for
6316// getting updates only after the object has changed since the last
6317// request. Use googleapi.IsNotModified to check whether the response
6318// error from Do is the result of In-None-Match.
6319func (c *CompaniesJobsListCall) IfNoneMatch(entityTag string) *CompaniesJobsListCall {
6320	c.ifNoneMatch_ = entityTag
6321	return c
6322}
6323
6324// Context sets the context to be used in this call's Do method. Any
6325// pending HTTP request will be aborted if the provided context is
6326// canceled.
6327func (c *CompaniesJobsListCall) Context(ctx context.Context) *CompaniesJobsListCall {
6328	c.ctx_ = ctx
6329	return c
6330}
6331
6332// Header returns an http.Header that can be modified by the caller to
6333// add HTTP headers to the request.
6334func (c *CompaniesJobsListCall) Header() http.Header {
6335	if c.header_ == nil {
6336		c.header_ = make(http.Header)
6337	}
6338	return c.header_
6339}
6340
6341func (c *CompaniesJobsListCall) doRequest(alt string) (*http.Response, error) {
6342	reqHeaders := make(http.Header)
6343	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
6344	for k, v := range c.header_ {
6345		reqHeaders[k] = v
6346	}
6347	reqHeaders.Set("User-Agent", c.s.userAgent())
6348	if c.ifNoneMatch_ != "" {
6349		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6350	}
6351	var body io.Reader = nil
6352	c.urlParams_.Set("alt", alt)
6353	c.urlParams_.Set("prettyPrint", "false")
6354	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+companyName}/jobs")
6355	urls += "?" + c.urlParams_.Encode()
6356	req, err := http.NewRequest("GET", urls, body)
6357	if err != nil {
6358		return nil, err
6359	}
6360	req.Header = reqHeaders
6361	googleapi.Expand(req.URL, map[string]string{
6362		"companyName": c.companyName,
6363	})
6364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6365}
6366
6367// Do executes the "jobs.companies.jobs.list" call.
6368// Exactly one of *ListCompanyJobsResponse or error will be non-nil. Any
6369// non-2xx status code is an error. Response headers are in either
6370// *ListCompanyJobsResponse.ServerResponse.Header or (if a response was
6371// returned at all) in error.(*googleapi.Error).Header. Use
6372// googleapi.IsNotModified to check whether the returned error was
6373// because http.StatusNotModified was returned.
6374func (c *CompaniesJobsListCall) Do(opts ...googleapi.CallOption) (*ListCompanyJobsResponse, error) {
6375	gensupport.SetOptions(c.urlParams_, opts...)
6376	res, err := c.doRequest("json")
6377	if res != nil && res.StatusCode == http.StatusNotModified {
6378		if res.Body != nil {
6379			res.Body.Close()
6380		}
6381		return nil, &googleapi.Error{
6382			Code:   res.StatusCode,
6383			Header: res.Header,
6384		}
6385	}
6386	if err != nil {
6387		return nil, err
6388	}
6389	defer googleapi.CloseBody(res)
6390	if err := googleapi.CheckResponse(res); err != nil {
6391		return nil, err
6392	}
6393	ret := &ListCompanyJobsResponse{
6394		ServerResponse: googleapi.ServerResponse{
6395			Header:         res.Header,
6396			HTTPStatusCode: res.StatusCode,
6397		},
6398	}
6399	target := &ret
6400	if err := gensupport.DecodeResponse(target, res); err != nil {
6401		return nil, err
6402	}
6403	return ret, nil
6404	// {
6405	//   "description": "Deprecated. Use ListJobs instead. Lists all jobs associated with a company.",
6406	//   "flatPath": "v2/companies/{companiesId}/jobs",
6407	//   "httpMethod": "GET",
6408	//   "id": "jobs.companies.jobs.list",
6409	//   "parameterOrder": [
6410	//     "companyName"
6411	//   ],
6412	//   "parameters": {
6413	//     "companyName": {
6414	//       "description": "Required. The resource name of the company that owns the jobs to be listed, such as, \"companies/0000aaaa-1111-bbbb-2222-cccc3333dddd\".",
6415	//       "location": "path",
6416	//       "pattern": "^companies/[^/]+$",
6417	//       "required": true,
6418	//       "type": "string"
6419	//     },
6420	//     "idsOnly": {
6421	//       "description": "Optional. If set to `true`, only job ID, job requisition ID and language code will be returned. A typical use is to synchronize job repositories. Defaults to false.",
6422	//       "location": "query",
6423	//       "type": "boolean"
6424	//     },
6425	//     "includeJobsCount": {
6426	//       "description": "Deprecated. Please DO NOT use this field except for small companies. Suggest counting jobs page by page instead. Optional. Set to true if the total number of open jobs is to be returned. Defaults to false.",
6427	//       "location": "query",
6428	//       "type": "boolean"
6429	//     },
6430	//     "jobRequisitionId": {
6431	//       "description": "Optional. The requisition ID, also known as posting ID, assigned by the company to the job. The maximum number of allowable characters is 225.",
6432	//       "location": "query",
6433	//       "type": "string"
6434	//     },
6435	//     "pageSize": {
6436	//       "description": "Optional. The maximum number of jobs to be returned per page of results. If ids_only is set to true, the maximum allowed page size is 1000. Otherwise, the maximum allowed page size is 100. Default is 100 if empty or a number \u003c 1 is specified.",
6437	//       "format": "int32",
6438	//       "location": "query",
6439	//       "type": "integer"
6440	//     },
6441	//     "pageToken": {
6442	//       "description": "Optional. The starting point of a query result.",
6443	//       "location": "query",
6444	//       "type": "string"
6445	//     }
6446	//   },
6447	//   "path": "v2/{+companyName}/jobs",
6448	//   "response": {
6449	//     "$ref": "ListCompanyJobsResponse"
6450	//   },
6451	//   "scopes": [
6452	//     "https://www.googleapis.com/auth/cloud-platform",
6453	//     "https://www.googleapis.com/auth/jobs"
6454	//   ]
6455	// }
6456
6457}
6458
6459// Pages invokes f for each page of results.
6460// A non-nil error returned from f will halt the iteration.
6461// The provided context supersedes any context provided to the Context method.
6462func (c *CompaniesJobsListCall) Pages(ctx context.Context, f func(*ListCompanyJobsResponse) error) error {
6463	c.ctx_ = ctx
6464	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
6465	for {
6466		x, err := c.Do()
6467		if err != nil {
6468			return err
6469		}
6470		if err := f(x); err != nil {
6471			return err
6472		}
6473		if x.NextPageToken == "" {
6474			return nil
6475		}
6476		c.PageToken(x.NextPageToken)
6477	}
6478}
6479
6480// method id "jobs.jobs.batchDelete":
6481
6482type JobsBatchDeleteCall struct {
6483	s                      *Service
6484	batchdeletejobsrequest *BatchDeleteJobsRequest
6485	urlParams_             gensupport.URLParams
6486	ctx_                   context.Context
6487	header_                http.Header
6488}
6489
6490// BatchDelete: Deletes a list of Job postings by filter.
6491func (r *JobsService) BatchDelete(batchdeletejobsrequest *BatchDeleteJobsRequest) *JobsBatchDeleteCall {
6492	c := &JobsBatchDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6493	c.batchdeletejobsrequest = batchdeletejobsrequest
6494	return c
6495}
6496
6497// Fields allows partial responses to be retrieved. See
6498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6499// for more information.
6500func (c *JobsBatchDeleteCall) Fields(s ...googleapi.Field) *JobsBatchDeleteCall {
6501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6502	return c
6503}
6504
6505// Context sets the context to be used in this call's Do method. Any
6506// pending HTTP request will be aborted if the provided context is
6507// canceled.
6508func (c *JobsBatchDeleteCall) Context(ctx context.Context) *JobsBatchDeleteCall {
6509	c.ctx_ = ctx
6510	return c
6511}
6512
6513// Header returns an http.Header that can be modified by the caller to
6514// add HTTP headers to the request.
6515func (c *JobsBatchDeleteCall) Header() http.Header {
6516	if c.header_ == nil {
6517		c.header_ = make(http.Header)
6518	}
6519	return c.header_
6520}
6521
6522func (c *JobsBatchDeleteCall) doRequest(alt string) (*http.Response, error) {
6523	reqHeaders := make(http.Header)
6524	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
6525	for k, v := range c.header_ {
6526		reqHeaders[k] = v
6527	}
6528	reqHeaders.Set("User-Agent", c.s.userAgent())
6529	var body io.Reader = nil
6530	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchdeletejobsrequest)
6531	if err != nil {
6532		return nil, err
6533	}
6534	reqHeaders.Set("Content-Type", "application/json")
6535	c.urlParams_.Set("alt", alt)
6536	c.urlParams_.Set("prettyPrint", "false")
6537	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/jobs:batchDelete")
6538	urls += "?" + c.urlParams_.Encode()
6539	req, err := http.NewRequest("POST", urls, body)
6540	if err != nil {
6541		return nil, err
6542	}
6543	req.Header = reqHeaders
6544	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6545}
6546
6547// Do executes the "jobs.jobs.batchDelete" call.
6548// Exactly one of *Empty or error will be non-nil. Any non-2xx status
6549// code is an error. Response headers are in either
6550// *Empty.ServerResponse.Header or (if a response was returned at all)
6551// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6552// check whether the returned error was because http.StatusNotModified
6553// was returned.
6554func (c *JobsBatchDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
6555	gensupport.SetOptions(c.urlParams_, opts...)
6556	res, err := c.doRequest("json")
6557	if res != nil && res.StatusCode == http.StatusNotModified {
6558		if res.Body != nil {
6559			res.Body.Close()
6560		}
6561		return nil, &googleapi.Error{
6562			Code:   res.StatusCode,
6563			Header: res.Header,
6564		}
6565	}
6566	if err != nil {
6567		return nil, err
6568	}
6569	defer googleapi.CloseBody(res)
6570	if err := googleapi.CheckResponse(res); err != nil {
6571		return nil, err
6572	}
6573	ret := &Empty{
6574		ServerResponse: googleapi.ServerResponse{
6575			Header:         res.Header,
6576			HTTPStatusCode: res.StatusCode,
6577		},
6578	}
6579	target := &ret
6580	if err := gensupport.DecodeResponse(target, res); err != nil {
6581		return nil, err
6582	}
6583	return ret, nil
6584	// {
6585	//   "description": "Deletes a list of Job postings by filter.",
6586	//   "flatPath": "v2/jobs:batchDelete",
6587	//   "httpMethod": "POST",
6588	//   "id": "jobs.jobs.batchDelete",
6589	//   "parameterOrder": [],
6590	//   "parameters": {},
6591	//   "path": "v2/jobs:batchDelete",
6592	//   "request": {
6593	//     "$ref": "BatchDeleteJobsRequest"
6594	//   },
6595	//   "response": {
6596	//     "$ref": "Empty"
6597	//   },
6598	//   "scopes": [
6599	//     "https://www.googleapis.com/auth/cloud-platform",
6600	//     "https://www.googleapis.com/auth/jobs"
6601	//   ]
6602	// }
6603
6604}
6605
6606// method id "jobs.jobs.create":
6607
6608type JobsCreateCall struct {
6609	s                *Service
6610	createjobrequest *CreateJobRequest
6611	urlParams_       gensupport.URLParams
6612	ctx_             context.Context
6613	header_          http.Header
6614}
6615
6616// Create: Creates a new job. Typically, the job becomes searchable
6617// within 10 seconds, but it may take up to 5 minutes.
6618func (r *JobsService) Create(createjobrequest *CreateJobRequest) *JobsCreateCall {
6619	c := &JobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6620	c.createjobrequest = createjobrequest
6621	return c
6622}
6623
6624// Fields allows partial responses to be retrieved. See
6625// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6626// for more information.
6627func (c *JobsCreateCall) Fields(s ...googleapi.Field) *JobsCreateCall {
6628	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6629	return c
6630}
6631
6632// Context sets the context to be used in this call's Do method. Any
6633// pending HTTP request will be aborted if the provided context is
6634// canceled.
6635func (c *JobsCreateCall) Context(ctx context.Context) *JobsCreateCall {
6636	c.ctx_ = ctx
6637	return c
6638}
6639
6640// Header returns an http.Header that can be modified by the caller to
6641// add HTTP headers to the request.
6642func (c *JobsCreateCall) Header() http.Header {
6643	if c.header_ == nil {
6644		c.header_ = make(http.Header)
6645	}
6646	return c.header_
6647}
6648
6649func (c *JobsCreateCall) doRequest(alt string) (*http.Response, error) {
6650	reqHeaders := make(http.Header)
6651	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
6652	for k, v := range c.header_ {
6653		reqHeaders[k] = v
6654	}
6655	reqHeaders.Set("User-Agent", c.s.userAgent())
6656	var body io.Reader = nil
6657	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createjobrequest)
6658	if err != nil {
6659		return nil, err
6660	}
6661	reqHeaders.Set("Content-Type", "application/json")
6662	c.urlParams_.Set("alt", alt)
6663	c.urlParams_.Set("prettyPrint", "false")
6664	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/jobs")
6665	urls += "?" + c.urlParams_.Encode()
6666	req, err := http.NewRequest("POST", urls, body)
6667	if err != nil {
6668		return nil, err
6669	}
6670	req.Header = reqHeaders
6671	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6672}
6673
6674// Do executes the "jobs.jobs.create" call.
6675// Exactly one of *Job or error will be non-nil. Any non-2xx status code
6676// is an error. Response headers are in either
6677// *Job.ServerResponse.Header or (if a response was returned at all) in
6678// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
6679// whether the returned error was because http.StatusNotModified was
6680// returned.
6681func (c *JobsCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
6682	gensupport.SetOptions(c.urlParams_, opts...)
6683	res, err := c.doRequest("json")
6684	if res != nil && res.StatusCode == http.StatusNotModified {
6685		if res.Body != nil {
6686			res.Body.Close()
6687		}
6688		return nil, &googleapi.Error{
6689			Code:   res.StatusCode,
6690			Header: res.Header,
6691		}
6692	}
6693	if err != nil {
6694		return nil, err
6695	}
6696	defer googleapi.CloseBody(res)
6697	if err := googleapi.CheckResponse(res); err != nil {
6698		return nil, err
6699	}
6700	ret := &Job{
6701		ServerResponse: googleapi.ServerResponse{
6702			Header:         res.Header,
6703			HTTPStatusCode: res.StatusCode,
6704		},
6705	}
6706	target := &ret
6707	if err := gensupport.DecodeResponse(target, res); err != nil {
6708		return nil, err
6709	}
6710	return ret, nil
6711	// {
6712	//   "description": "Creates a new job. Typically, the job becomes searchable within 10 seconds, but it may take up to 5 minutes.",
6713	//   "flatPath": "v2/jobs",
6714	//   "httpMethod": "POST",
6715	//   "id": "jobs.jobs.create",
6716	//   "parameterOrder": [],
6717	//   "parameters": {},
6718	//   "path": "v2/jobs",
6719	//   "request": {
6720	//     "$ref": "CreateJobRequest"
6721	//   },
6722	//   "response": {
6723	//     "$ref": "Job"
6724	//   },
6725	//   "scopes": [
6726	//     "https://www.googleapis.com/auth/cloud-platform",
6727	//     "https://www.googleapis.com/auth/jobs"
6728	//   ]
6729	// }
6730
6731}
6732
6733// method id "jobs.jobs.delete":
6734
6735type JobsDeleteCall struct {
6736	s          *Service
6737	name       string
6738	urlParams_ gensupport.URLParams
6739	ctx_       context.Context
6740	header_    http.Header
6741}
6742
6743// Delete: Deletes the specified job. Typically, the job becomes
6744// unsearchable within 10 seconds, but it may take up to 5 minutes.
6745func (r *JobsService) Delete(name string) *JobsDeleteCall {
6746	c := &JobsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6747	c.name = name
6748	return c
6749}
6750
6751// DisableFastProcess sets the optional parameter "disableFastProcess":
6752// Deprecated. This field is not working anymore.  If set to true, this
6753// call waits for all processing steps to complete before the job is
6754// cleaned up. Otherwise, the call returns while some steps are still
6755// taking place asynchronously, hence faster.
6756func (c *JobsDeleteCall) DisableFastProcess(disableFastProcess bool) *JobsDeleteCall {
6757	c.urlParams_.Set("disableFastProcess", fmt.Sprint(disableFastProcess))
6758	return c
6759}
6760
6761// Fields allows partial responses to be retrieved. See
6762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6763// for more information.
6764func (c *JobsDeleteCall) Fields(s ...googleapi.Field) *JobsDeleteCall {
6765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6766	return c
6767}
6768
6769// Context sets the context to be used in this call's Do method. Any
6770// pending HTTP request will be aborted if the provided context is
6771// canceled.
6772func (c *JobsDeleteCall) Context(ctx context.Context) *JobsDeleteCall {
6773	c.ctx_ = ctx
6774	return c
6775}
6776
6777// Header returns an http.Header that can be modified by the caller to
6778// add HTTP headers to the request.
6779func (c *JobsDeleteCall) Header() http.Header {
6780	if c.header_ == nil {
6781		c.header_ = make(http.Header)
6782	}
6783	return c.header_
6784}
6785
6786func (c *JobsDeleteCall) doRequest(alt string) (*http.Response, error) {
6787	reqHeaders := make(http.Header)
6788	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
6789	for k, v := range c.header_ {
6790		reqHeaders[k] = v
6791	}
6792	reqHeaders.Set("User-Agent", c.s.userAgent())
6793	var body io.Reader = nil
6794	c.urlParams_.Set("alt", alt)
6795	c.urlParams_.Set("prettyPrint", "false")
6796	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
6797	urls += "?" + c.urlParams_.Encode()
6798	req, err := http.NewRequest("DELETE", urls, body)
6799	if err != nil {
6800		return nil, err
6801	}
6802	req.Header = reqHeaders
6803	googleapi.Expand(req.URL, map[string]string{
6804		"name": c.name,
6805	})
6806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6807}
6808
6809// Do executes the "jobs.jobs.delete" call.
6810// Exactly one of *Empty or error will be non-nil. Any non-2xx status
6811// code is an error. Response headers are in either
6812// *Empty.ServerResponse.Header or (if a response was returned at all)
6813// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6814// check whether the returned error was because http.StatusNotModified
6815// was returned.
6816func (c *JobsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
6817	gensupport.SetOptions(c.urlParams_, opts...)
6818	res, err := c.doRequest("json")
6819	if res != nil && res.StatusCode == http.StatusNotModified {
6820		if res.Body != nil {
6821			res.Body.Close()
6822		}
6823		return nil, &googleapi.Error{
6824			Code:   res.StatusCode,
6825			Header: res.Header,
6826		}
6827	}
6828	if err != nil {
6829		return nil, err
6830	}
6831	defer googleapi.CloseBody(res)
6832	if err := googleapi.CheckResponse(res); err != nil {
6833		return nil, err
6834	}
6835	ret := &Empty{
6836		ServerResponse: googleapi.ServerResponse{
6837			Header:         res.Header,
6838			HTTPStatusCode: res.StatusCode,
6839		},
6840	}
6841	target := &ret
6842	if err := gensupport.DecodeResponse(target, res); err != nil {
6843		return nil, err
6844	}
6845	return ret, nil
6846	// {
6847	//   "description": "Deletes the specified job. Typically, the job becomes unsearchable within 10 seconds, but it may take up to 5 minutes.",
6848	//   "flatPath": "v2/jobs/{jobsId}",
6849	//   "httpMethod": "DELETE",
6850	//   "id": "jobs.jobs.delete",
6851	//   "parameterOrder": [
6852	//     "name"
6853	//   ],
6854	//   "parameters": {
6855	//     "disableFastProcess": {
6856	//       "description": "Deprecated. This field is not working anymore. Optional. If set to true, this call waits for all processing steps to complete before the job is cleaned up. Otherwise, the call returns while some steps are still taking place asynchronously, hence faster.",
6857	//       "location": "query",
6858	//       "type": "boolean"
6859	//     },
6860	//     "name": {
6861	//       "description": "Required. The resource name of the job to be deleted, such as \"jobs/11111111\".",
6862	//       "location": "path",
6863	//       "pattern": "^jobs/[^/]+$",
6864	//       "required": true,
6865	//       "type": "string"
6866	//     }
6867	//   },
6868	//   "path": "v2/{+name}",
6869	//   "response": {
6870	//     "$ref": "Empty"
6871	//   },
6872	//   "scopes": [
6873	//     "https://www.googleapis.com/auth/cloud-platform",
6874	//     "https://www.googleapis.com/auth/jobs"
6875	//   ]
6876	// }
6877
6878}
6879
6880// method id "jobs.jobs.deleteByFilter":
6881
6882type JobsDeleteByFilterCall struct {
6883	s                         *Service
6884	deletejobsbyfilterrequest *DeleteJobsByFilterRequest
6885	urlParams_                gensupport.URLParams
6886	ctx_                      context.Context
6887	header_                   http.Header
6888}
6889
6890// DeleteByFilter: Deprecated. Use BatchDeleteJobs instead. Deletes the
6891// specified job by filter. You can specify whether to synchronously
6892// wait for validation, indexing, and general processing to be completed
6893// before the response is returned.
6894func (r *JobsService) DeleteByFilter(deletejobsbyfilterrequest *DeleteJobsByFilterRequest) *JobsDeleteByFilterCall {
6895	c := &JobsDeleteByFilterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6896	c.deletejobsbyfilterrequest = deletejobsbyfilterrequest
6897	return c
6898}
6899
6900// Fields allows partial responses to be retrieved. See
6901// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6902// for more information.
6903func (c *JobsDeleteByFilterCall) Fields(s ...googleapi.Field) *JobsDeleteByFilterCall {
6904	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6905	return c
6906}
6907
6908// Context sets the context to be used in this call's Do method. Any
6909// pending HTTP request will be aborted if the provided context is
6910// canceled.
6911func (c *JobsDeleteByFilterCall) Context(ctx context.Context) *JobsDeleteByFilterCall {
6912	c.ctx_ = ctx
6913	return c
6914}
6915
6916// Header returns an http.Header that can be modified by the caller to
6917// add HTTP headers to the request.
6918func (c *JobsDeleteByFilterCall) Header() http.Header {
6919	if c.header_ == nil {
6920		c.header_ = make(http.Header)
6921	}
6922	return c.header_
6923}
6924
6925func (c *JobsDeleteByFilterCall) doRequest(alt string) (*http.Response, error) {
6926	reqHeaders := make(http.Header)
6927	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
6928	for k, v := range c.header_ {
6929		reqHeaders[k] = v
6930	}
6931	reqHeaders.Set("User-Agent", c.s.userAgent())
6932	var body io.Reader = nil
6933	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deletejobsbyfilterrequest)
6934	if err != nil {
6935		return nil, err
6936	}
6937	reqHeaders.Set("Content-Type", "application/json")
6938	c.urlParams_.Set("alt", alt)
6939	c.urlParams_.Set("prettyPrint", "false")
6940	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/jobs:deleteByFilter")
6941	urls += "?" + c.urlParams_.Encode()
6942	req, err := http.NewRequest("POST", urls, body)
6943	if err != nil {
6944		return nil, err
6945	}
6946	req.Header = reqHeaders
6947	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6948}
6949
6950// Do executes the "jobs.jobs.deleteByFilter" call.
6951// Exactly one of *Empty or error will be non-nil. Any non-2xx status
6952// code is an error. Response headers are in either
6953// *Empty.ServerResponse.Header or (if a response was returned at all)
6954// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6955// check whether the returned error was because http.StatusNotModified
6956// was returned.
6957func (c *JobsDeleteByFilterCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
6958	gensupport.SetOptions(c.urlParams_, opts...)
6959	res, err := c.doRequest("json")
6960	if res != nil && res.StatusCode == http.StatusNotModified {
6961		if res.Body != nil {
6962			res.Body.Close()
6963		}
6964		return nil, &googleapi.Error{
6965			Code:   res.StatusCode,
6966			Header: res.Header,
6967		}
6968	}
6969	if err != nil {
6970		return nil, err
6971	}
6972	defer googleapi.CloseBody(res)
6973	if err := googleapi.CheckResponse(res); err != nil {
6974		return nil, err
6975	}
6976	ret := &Empty{
6977		ServerResponse: googleapi.ServerResponse{
6978			Header:         res.Header,
6979			HTTPStatusCode: res.StatusCode,
6980		},
6981	}
6982	target := &ret
6983	if err := gensupport.DecodeResponse(target, res); err != nil {
6984		return nil, err
6985	}
6986	return ret, nil
6987	// {
6988	//   "description": "Deprecated. Use BatchDeleteJobs instead. Deletes the specified job by filter. You can specify whether to synchronously wait for validation, indexing, and general processing to be completed before the response is returned.",
6989	//   "flatPath": "v2/jobs:deleteByFilter",
6990	//   "httpMethod": "POST",
6991	//   "id": "jobs.jobs.deleteByFilter",
6992	//   "parameterOrder": [],
6993	//   "parameters": {},
6994	//   "path": "v2/jobs:deleteByFilter",
6995	//   "request": {
6996	//     "$ref": "DeleteJobsByFilterRequest"
6997	//   },
6998	//   "response": {
6999	//     "$ref": "Empty"
7000	//   },
7001	//   "scopes": [
7002	//     "https://www.googleapis.com/auth/cloud-platform",
7003	//     "https://www.googleapis.com/auth/jobs"
7004	//   ]
7005	// }
7006
7007}
7008
7009// method id "jobs.jobs.get":
7010
7011type JobsGetCall struct {
7012	s            *Service
7013	name         string
7014	urlParams_   gensupport.URLParams
7015	ifNoneMatch_ string
7016	ctx_         context.Context
7017	header_      http.Header
7018}
7019
7020// Get: Retrieves the specified job, whose status is OPEN or recently
7021// EXPIRED within the last 90 days.
7022func (r *JobsService) Get(name string) *JobsGetCall {
7023	c := &JobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7024	c.name = name
7025	return c
7026}
7027
7028// Fields allows partial responses to be retrieved. See
7029// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7030// for more information.
7031func (c *JobsGetCall) Fields(s ...googleapi.Field) *JobsGetCall {
7032	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7033	return c
7034}
7035
7036// IfNoneMatch sets the optional parameter which makes the operation
7037// fail if the object's ETag matches the given value. This is useful for
7038// getting updates only after the object has changed since the last
7039// request. Use googleapi.IsNotModified to check whether the response
7040// error from Do is the result of In-None-Match.
7041func (c *JobsGetCall) IfNoneMatch(entityTag string) *JobsGetCall {
7042	c.ifNoneMatch_ = entityTag
7043	return c
7044}
7045
7046// Context sets the context to be used in this call's Do method. Any
7047// pending HTTP request will be aborted if the provided context is
7048// canceled.
7049func (c *JobsGetCall) Context(ctx context.Context) *JobsGetCall {
7050	c.ctx_ = ctx
7051	return c
7052}
7053
7054// Header returns an http.Header that can be modified by the caller to
7055// add HTTP headers to the request.
7056func (c *JobsGetCall) Header() http.Header {
7057	if c.header_ == nil {
7058		c.header_ = make(http.Header)
7059	}
7060	return c.header_
7061}
7062
7063func (c *JobsGetCall) doRequest(alt string) (*http.Response, error) {
7064	reqHeaders := make(http.Header)
7065	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
7066	for k, v := range c.header_ {
7067		reqHeaders[k] = v
7068	}
7069	reqHeaders.Set("User-Agent", c.s.userAgent())
7070	if c.ifNoneMatch_ != "" {
7071		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7072	}
7073	var body io.Reader = nil
7074	c.urlParams_.Set("alt", alt)
7075	c.urlParams_.Set("prettyPrint", "false")
7076	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
7077	urls += "?" + c.urlParams_.Encode()
7078	req, err := http.NewRequest("GET", urls, body)
7079	if err != nil {
7080		return nil, err
7081	}
7082	req.Header = reqHeaders
7083	googleapi.Expand(req.URL, map[string]string{
7084		"name": c.name,
7085	})
7086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7087}
7088
7089// Do executes the "jobs.jobs.get" call.
7090// Exactly one of *Job or error will be non-nil. Any non-2xx status code
7091// is an error. Response headers are in either
7092// *Job.ServerResponse.Header or (if a response was returned at all) in
7093// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
7094// whether the returned error was because http.StatusNotModified was
7095// returned.
7096func (c *JobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
7097	gensupport.SetOptions(c.urlParams_, opts...)
7098	res, err := c.doRequest("json")
7099	if res != nil && res.StatusCode == http.StatusNotModified {
7100		if res.Body != nil {
7101			res.Body.Close()
7102		}
7103		return nil, &googleapi.Error{
7104			Code:   res.StatusCode,
7105			Header: res.Header,
7106		}
7107	}
7108	if err != nil {
7109		return nil, err
7110	}
7111	defer googleapi.CloseBody(res)
7112	if err := googleapi.CheckResponse(res); err != nil {
7113		return nil, err
7114	}
7115	ret := &Job{
7116		ServerResponse: googleapi.ServerResponse{
7117			Header:         res.Header,
7118			HTTPStatusCode: res.StatusCode,
7119		},
7120	}
7121	target := &ret
7122	if err := gensupport.DecodeResponse(target, res); err != nil {
7123		return nil, err
7124	}
7125	return ret, nil
7126	// {
7127	//   "description": "Retrieves the specified job, whose status is OPEN or recently EXPIRED within the last 90 days.",
7128	//   "flatPath": "v2/jobs/{jobsId}",
7129	//   "httpMethod": "GET",
7130	//   "id": "jobs.jobs.get",
7131	//   "parameterOrder": [
7132	//     "name"
7133	//   ],
7134	//   "parameters": {
7135	//     "name": {
7136	//       "description": "Required. The resource name of the job to retrieve, such as \"jobs/11111111\".",
7137	//       "location": "path",
7138	//       "pattern": "^jobs/[^/]+$",
7139	//       "required": true,
7140	//       "type": "string"
7141	//     }
7142	//   },
7143	//   "path": "v2/{+name}",
7144	//   "response": {
7145	//     "$ref": "Job"
7146	//   },
7147	//   "scopes": [
7148	//     "https://www.googleapis.com/auth/cloud-platform",
7149	//     "https://www.googleapis.com/auth/jobs"
7150	//   ]
7151	// }
7152
7153}
7154
7155// method id "jobs.jobs.histogram":
7156
7157type JobsHistogramCall struct {
7158	s                   *Service
7159	gethistogramrequest *GetHistogramRequest
7160	urlParams_          gensupport.URLParams
7161	ctx_                context.Context
7162	header_             http.Header
7163}
7164
7165// Histogram: Deprecated. Use SearchJobsRequest.histogram_facets instead
7166// to make a single call with both search and histogram. Retrieves a
7167// histogram for the given GetHistogramRequest. This call provides a
7168// structured count of jobs that match against the search query, grouped
7169// by specified facets. This call constrains the visibility of jobs
7170// present in the database, and only counts jobs the caller has
7171// permission to search against. For example, use this call to generate
7172// the number of jobs in the U.S. by state.
7173func (r *JobsService) Histogram(gethistogramrequest *GetHistogramRequest) *JobsHistogramCall {
7174	c := &JobsHistogramCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7175	c.gethistogramrequest = gethistogramrequest
7176	return c
7177}
7178
7179// Fields allows partial responses to be retrieved. See
7180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7181// for more information.
7182func (c *JobsHistogramCall) Fields(s ...googleapi.Field) *JobsHistogramCall {
7183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7184	return c
7185}
7186
7187// Context sets the context to be used in this call's Do method. Any
7188// pending HTTP request will be aborted if the provided context is
7189// canceled.
7190func (c *JobsHistogramCall) Context(ctx context.Context) *JobsHistogramCall {
7191	c.ctx_ = ctx
7192	return c
7193}
7194
7195// Header returns an http.Header that can be modified by the caller to
7196// add HTTP headers to the request.
7197func (c *JobsHistogramCall) Header() http.Header {
7198	if c.header_ == nil {
7199		c.header_ = make(http.Header)
7200	}
7201	return c.header_
7202}
7203
7204func (c *JobsHistogramCall) doRequest(alt string) (*http.Response, error) {
7205	reqHeaders := make(http.Header)
7206	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
7207	for k, v := range c.header_ {
7208		reqHeaders[k] = v
7209	}
7210	reqHeaders.Set("User-Agent", c.s.userAgent())
7211	var body io.Reader = nil
7212	body, err := googleapi.WithoutDataWrapper.JSONReader(c.gethistogramrequest)
7213	if err != nil {
7214		return nil, err
7215	}
7216	reqHeaders.Set("Content-Type", "application/json")
7217	c.urlParams_.Set("alt", alt)
7218	c.urlParams_.Set("prettyPrint", "false")
7219	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/jobs:histogram")
7220	urls += "?" + c.urlParams_.Encode()
7221	req, err := http.NewRequest("POST", urls, body)
7222	if err != nil {
7223		return nil, err
7224	}
7225	req.Header = reqHeaders
7226	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7227}
7228
7229// Do executes the "jobs.jobs.histogram" call.
7230// Exactly one of *GetHistogramResponse or error will be non-nil. Any
7231// non-2xx status code is an error. Response headers are in either
7232// *GetHistogramResponse.ServerResponse.Header or (if a response was
7233// returned at all) in error.(*googleapi.Error).Header. Use
7234// googleapi.IsNotModified to check whether the returned error was
7235// because http.StatusNotModified was returned.
7236func (c *JobsHistogramCall) Do(opts ...googleapi.CallOption) (*GetHistogramResponse, error) {
7237	gensupport.SetOptions(c.urlParams_, opts...)
7238	res, err := c.doRequest("json")
7239	if res != nil && res.StatusCode == http.StatusNotModified {
7240		if res.Body != nil {
7241			res.Body.Close()
7242		}
7243		return nil, &googleapi.Error{
7244			Code:   res.StatusCode,
7245			Header: res.Header,
7246		}
7247	}
7248	if err != nil {
7249		return nil, err
7250	}
7251	defer googleapi.CloseBody(res)
7252	if err := googleapi.CheckResponse(res); err != nil {
7253		return nil, err
7254	}
7255	ret := &GetHistogramResponse{
7256		ServerResponse: googleapi.ServerResponse{
7257			Header:         res.Header,
7258			HTTPStatusCode: res.StatusCode,
7259		},
7260	}
7261	target := &ret
7262	if err := gensupport.DecodeResponse(target, res); err != nil {
7263		return nil, err
7264	}
7265	return ret, nil
7266	// {
7267	//   "description": "Deprecated. Use SearchJobsRequest.histogram_facets instead to make a single call with both search and histogram. Retrieves a histogram for the given GetHistogramRequest. This call provides a structured count of jobs that match against the search query, grouped by specified facets. This call constrains the visibility of jobs present in the database, and only counts jobs the caller has permission to search against. For example, use this call to generate the number of jobs in the U.S. by state.",
7268	//   "flatPath": "v2/jobs:histogram",
7269	//   "httpMethod": "POST",
7270	//   "id": "jobs.jobs.histogram",
7271	//   "parameterOrder": [],
7272	//   "parameters": {},
7273	//   "path": "v2/jobs:histogram",
7274	//   "request": {
7275	//     "$ref": "GetHistogramRequest"
7276	//   },
7277	//   "response": {
7278	//     "$ref": "GetHistogramResponse"
7279	//   },
7280	//   "scopes": [
7281	//     "https://www.googleapis.com/auth/cloud-platform",
7282	//     "https://www.googleapis.com/auth/jobs"
7283	//   ]
7284	// }
7285
7286}
7287
7288// method id "jobs.jobs.list":
7289
7290type JobsListCall struct {
7291	s            *Service
7292	urlParams_   gensupport.URLParams
7293	ifNoneMatch_ string
7294	ctx_         context.Context
7295	header_      http.Header
7296}
7297
7298// List: Lists jobs by filter.
7299func (r *JobsService) List() *JobsListCall {
7300	c := &JobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7301	return c
7302}
7303
7304// Filter sets the optional parameter "filter": Required. The filter
7305// string specifies the jobs to be enumerated. Supported operator: =,
7306// AND The fields eligible for filtering are: * `companyName` (Required)
7307// * `requisitionId` (Optional) Sample Query: * companyName =
7308// "companies/123" * companyName = "companies/123" AND requisitionId =
7309// "req-1"
7310func (c *JobsListCall) Filter(filter string) *JobsListCall {
7311	c.urlParams_.Set("filter", filter)
7312	return c
7313}
7314
7315// IdsOnly sets the optional parameter "idsOnly": If set to `true`, only
7316// Job.name, Job.requisition_id and Job.language_code will be returned.
7317// A typical use case is to synchronize job repositories. Defaults to
7318// false.
7319func (c *JobsListCall) IdsOnly(idsOnly bool) *JobsListCall {
7320	c.urlParams_.Set("idsOnly", fmt.Sprint(idsOnly))
7321	return c
7322}
7323
7324// PageSize sets the optional parameter "pageSize": The maximum number
7325// of jobs to be returned per page of results. If ids_only is set to
7326// true, the maximum allowed page size is 1000. Otherwise, the maximum
7327// allowed page size is 100. Default is 100 if empty or a number < 1 is
7328// specified.
7329func (c *JobsListCall) PageSize(pageSize int64) *JobsListCall {
7330	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
7331	return c
7332}
7333
7334// PageToken sets the optional parameter "pageToken": The starting point
7335// of a query result.
7336func (c *JobsListCall) PageToken(pageToken string) *JobsListCall {
7337	c.urlParams_.Set("pageToken", pageToken)
7338	return c
7339}
7340
7341// Fields allows partial responses to be retrieved. See
7342// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7343// for more information.
7344func (c *JobsListCall) Fields(s ...googleapi.Field) *JobsListCall {
7345	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7346	return c
7347}
7348
7349// IfNoneMatch sets the optional parameter which makes the operation
7350// fail if the object's ETag matches the given value. This is useful for
7351// getting updates only after the object has changed since the last
7352// request. Use googleapi.IsNotModified to check whether the response
7353// error from Do is the result of In-None-Match.
7354func (c *JobsListCall) IfNoneMatch(entityTag string) *JobsListCall {
7355	c.ifNoneMatch_ = entityTag
7356	return c
7357}
7358
7359// Context sets the context to be used in this call's Do method. Any
7360// pending HTTP request will be aborted if the provided context is
7361// canceled.
7362func (c *JobsListCall) Context(ctx context.Context) *JobsListCall {
7363	c.ctx_ = ctx
7364	return c
7365}
7366
7367// Header returns an http.Header that can be modified by the caller to
7368// add HTTP headers to the request.
7369func (c *JobsListCall) Header() http.Header {
7370	if c.header_ == nil {
7371		c.header_ = make(http.Header)
7372	}
7373	return c.header_
7374}
7375
7376func (c *JobsListCall) doRequest(alt string) (*http.Response, error) {
7377	reqHeaders := make(http.Header)
7378	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
7379	for k, v := range c.header_ {
7380		reqHeaders[k] = v
7381	}
7382	reqHeaders.Set("User-Agent", c.s.userAgent())
7383	if c.ifNoneMatch_ != "" {
7384		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7385	}
7386	var body io.Reader = nil
7387	c.urlParams_.Set("alt", alt)
7388	c.urlParams_.Set("prettyPrint", "false")
7389	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/jobs")
7390	urls += "?" + c.urlParams_.Encode()
7391	req, err := http.NewRequest("GET", urls, body)
7392	if err != nil {
7393		return nil, err
7394	}
7395	req.Header = reqHeaders
7396	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7397}
7398
7399// Do executes the "jobs.jobs.list" call.
7400// Exactly one of *ListJobsResponse or error will be non-nil. Any
7401// non-2xx status code is an error. Response headers are in either
7402// *ListJobsResponse.ServerResponse.Header or (if a response was
7403// returned at all) in error.(*googleapi.Error).Header. Use
7404// googleapi.IsNotModified to check whether the returned error was
7405// because http.StatusNotModified was returned.
7406func (c *JobsListCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
7407	gensupport.SetOptions(c.urlParams_, opts...)
7408	res, err := c.doRequest("json")
7409	if res != nil && res.StatusCode == http.StatusNotModified {
7410		if res.Body != nil {
7411			res.Body.Close()
7412		}
7413		return nil, &googleapi.Error{
7414			Code:   res.StatusCode,
7415			Header: res.Header,
7416		}
7417	}
7418	if err != nil {
7419		return nil, err
7420	}
7421	defer googleapi.CloseBody(res)
7422	if err := googleapi.CheckResponse(res); err != nil {
7423		return nil, err
7424	}
7425	ret := &ListJobsResponse{
7426		ServerResponse: googleapi.ServerResponse{
7427			Header:         res.Header,
7428			HTTPStatusCode: res.StatusCode,
7429		},
7430	}
7431	target := &ret
7432	if err := gensupport.DecodeResponse(target, res); err != nil {
7433		return nil, err
7434	}
7435	return ret, nil
7436	// {
7437	//   "description": "Lists jobs by filter.",
7438	//   "flatPath": "v2/jobs",
7439	//   "httpMethod": "GET",
7440	//   "id": "jobs.jobs.list",
7441	//   "parameterOrder": [],
7442	//   "parameters": {
7443	//     "filter": {
7444	//       "description": "Required. The filter string specifies the jobs to be enumerated. Supported operator: =, AND The fields eligible for filtering are: * `companyName` (Required) * `requisitionId` (Optional) Sample Query: * companyName = \"companies/123\" * companyName = \"companies/123\" AND requisitionId = \"req-1\"",
7445	//       "location": "query",
7446	//       "type": "string"
7447	//     },
7448	//     "idsOnly": {
7449	//       "description": "Optional. If set to `true`, only Job.name, Job.requisition_id and Job.language_code will be returned. A typical use case is to synchronize job repositories. Defaults to false.",
7450	//       "location": "query",
7451	//       "type": "boolean"
7452	//     },
7453	//     "pageSize": {
7454	//       "description": "Optional. The maximum number of jobs to be returned per page of results. If ids_only is set to true, the maximum allowed page size is 1000. Otherwise, the maximum allowed page size is 100. Default is 100 if empty or a number \u003c 1 is specified.",
7455	//       "format": "int32",
7456	//       "location": "query",
7457	//       "type": "integer"
7458	//     },
7459	//     "pageToken": {
7460	//       "description": "Optional. The starting point of a query result.",
7461	//       "location": "query",
7462	//       "type": "string"
7463	//     }
7464	//   },
7465	//   "path": "v2/jobs",
7466	//   "response": {
7467	//     "$ref": "ListJobsResponse"
7468	//   },
7469	//   "scopes": [
7470	//     "https://www.googleapis.com/auth/cloud-platform",
7471	//     "https://www.googleapis.com/auth/jobs"
7472	//   ]
7473	// }
7474
7475}
7476
7477// Pages invokes f for each page of results.
7478// A non-nil error returned from f will halt the iteration.
7479// The provided context supersedes any context provided to the Context method.
7480func (c *JobsListCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
7481	c.ctx_ = ctx
7482	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7483	for {
7484		x, err := c.Do()
7485		if err != nil {
7486			return err
7487		}
7488		if err := f(x); err != nil {
7489			return err
7490		}
7491		if x.NextPageToken == "" {
7492			return nil
7493		}
7494		c.PageToken(x.NextPageToken)
7495	}
7496}
7497
7498// method id "jobs.jobs.patch":
7499
7500type JobsPatchCall struct {
7501	s                *Service
7502	name             string
7503	updatejobrequest *UpdateJobRequest
7504	urlParams_       gensupport.URLParams
7505	ctx_             context.Context
7506	header_          http.Header
7507}
7508
7509// Patch: Updates specified job. Typically, updated contents become
7510// visible in search results within 10 seconds, but it may take up to 5
7511// minutes.
7512func (r *JobsService) Patch(name string, updatejobrequest *UpdateJobRequest) *JobsPatchCall {
7513	c := &JobsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7514	c.name = name
7515	c.updatejobrequest = updatejobrequest
7516	return c
7517}
7518
7519// Fields allows partial responses to be retrieved. See
7520// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7521// for more information.
7522func (c *JobsPatchCall) Fields(s ...googleapi.Field) *JobsPatchCall {
7523	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7524	return c
7525}
7526
7527// Context sets the context to be used in this call's Do method. Any
7528// pending HTTP request will be aborted if the provided context is
7529// canceled.
7530func (c *JobsPatchCall) Context(ctx context.Context) *JobsPatchCall {
7531	c.ctx_ = ctx
7532	return c
7533}
7534
7535// Header returns an http.Header that can be modified by the caller to
7536// add HTTP headers to the request.
7537func (c *JobsPatchCall) Header() http.Header {
7538	if c.header_ == nil {
7539		c.header_ = make(http.Header)
7540	}
7541	return c.header_
7542}
7543
7544func (c *JobsPatchCall) doRequest(alt string) (*http.Response, error) {
7545	reqHeaders := make(http.Header)
7546	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
7547	for k, v := range c.header_ {
7548		reqHeaders[k] = v
7549	}
7550	reqHeaders.Set("User-Agent", c.s.userAgent())
7551	var body io.Reader = nil
7552	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatejobrequest)
7553	if err != nil {
7554		return nil, err
7555	}
7556	reqHeaders.Set("Content-Type", "application/json")
7557	c.urlParams_.Set("alt", alt)
7558	c.urlParams_.Set("prettyPrint", "false")
7559	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
7560	urls += "?" + c.urlParams_.Encode()
7561	req, err := http.NewRequest("PATCH", urls, body)
7562	if err != nil {
7563		return nil, err
7564	}
7565	req.Header = reqHeaders
7566	googleapi.Expand(req.URL, map[string]string{
7567		"name": c.name,
7568	})
7569	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7570}
7571
7572// Do executes the "jobs.jobs.patch" call.
7573// Exactly one of *Job or error will be non-nil. Any non-2xx status code
7574// is an error. Response headers are in either
7575// *Job.ServerResponse.Header or (if a response was returned at all) in
7576// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
7577// whether the returned error was because http.StatusNotModified was
7578// returned.
7579func (c *JobsPatchCall) Do(opts ...googleapi.CallOption) (*Job, error) {
7580	gensupport.SetOptions(c.urlParams_, opts...)
7581	res, err := c.doRequest("json")
7582	if res != nil && res.StatusCode == http.StatusNotModified {
7583		if res.Body != nil {
7584			res.Body.Close()
7585		}
7586		return nil, &googleapi.Error{
7587			Code:   res.StatusCode,
7588			Header: res.Header,
7589		}
7590	}
7591	if err != nil {
7592		return nil, err
7593	}
7594	defer googleapi.CloseBody(res)
7595	if err := googleapi.CheckResponse(res); err != nil {
7596		return nil, err
7597	}
7598	ret := &Job{
7599		ServerResponse: googleapi.ServerResponse{
7600			Header:         res.Header,
7601			HTTPStatusCode: res.StatusCode,
7602		},
7603	}
7604	target := &ret
7605	if err := gensupport.DecodeResponse(target, res); err != nil {
7606		return nil, err
7607	}
7608	return ret, nil
7609	// {
7610	//   "description": "Updates specified job. Typically, updated contents become visible in search results within 10 seconds, but it may take up to 5 minutes.",
7611	//   "flatPath": "v2/jobs/{jobsId}",
7612	//   "httpMethod": "PATCH",
7613	//   "id": "jobs.jobs.patch",
7614	//   "parameterOrder": [
7615	//     "name"
7616	//   ],
7617	//   "parameters": {
7618	//     "name": {
7619	//       "description": "Required during job update. Resource name assigned to a job by the API, for example, \"/jobs/foo\". Use of this field in job queries and API calls is preferred over the use of requisition_id since this value is unique.",
7620	//       "location": "path",
7621	//       "pattern": "^jobs/[^/]+$",
7622	//       "required": true,
7623	//       "type": "string"
7624	//     }
7625	//   },
7626	//   "path": "v2/{+name}",
7627	//   "request": {
7628	//     "$ref": "UpdateJobRequest"
7629	//   },
7630	//   "response": {
7631	//     "$ref": "Job"
7632	//   },
7633	//   "scopes": [
7634	//     "https://www.googleapis.com/auth/cloud-platform",
7635	//     "https://www.googleapis.com/auth/jobs"
7636	//   ]
7637	// }
7638
7639}
7640
7641// method id "jobs.jobs.search":
7642
7643type JobsSearchCall struct {
7644	s                 *Service
7645	searchjobsrequest *SearchJobsRequest
7646	urlParams_        gensupport.URLParams
7647	ctx_              context.Context
7648	header_           http.Header
7649}
7650
7651// Search: Searches for jobs using the provided SearchJobsRequest. This
7652// call constrains the visibility of jobs present in the database, and
7653// only returns jobs that the caller has permission to search against.
7654func (r *JobsService) Search(searchjobsrequest *SearchJobsRequest) *JobsSearchCall {
7655	c := &JobsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7656	c.searchjobsrequest = searchjobsrequest
7657	return c
7658}
7659
7660// Fields allows partial responses to be retrieved. See
7661// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7662// for more information.
7663func (c *JobsSearchCall) Fields(s ...googleapi.Field) *JobsSearchCall {
7664	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7665	return c
7666}
7667
7668// Context sets the context to be used in this call's Do method. Any
7669// pending HTTP request will be aborted if the provided context is
7670// canceled.
7671func (c *JobsSearchCall) Context(ctx context.Context) *JobsSearchCall {
7672	c.ctx_ = ctx
7673	return c
7674}
7675
7676// Header returns an http.Header that can be modified by the caller to
7677// add HTTP headers to the request.
7678func (c *JobsSearchCall) Header() http.Header {
7679	if c.header_ == nil {
7680		c.header_ = make(http.Header)
7681	}
7682	return c.header_
7683}
7684
7685func (c *JobsSearchCall) doRequest(alt string) (*http.Response, error) {
7686	reqHeaders := make(http.Header)
7687	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
7688	for k, v := range c.header_ {
7689		reqHeaders[k] = v
7690	}
7691	reqHeaders.Set("User-Agent", c.s.userAgent())
7692	var body io.Reader = nil
7693	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchjobsrequest)
7694	if err != nil {
7695		return nil, err
7696	}
7697	reqHeaders.Set("Content-Type", "application/json")
7698	c.urlParams_.Set("alt", alt)
7699	c.urlParams_.Set("prettyPrint", "false")
7700	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/jobs:search")
7701	urls += "?" + c.urlParams_.Encode()
7702	req, err := http.NewRequest("POST", urls, body)
7703	if err != nil {
7704		return nil, err
7705	}
7706	req.Header = reqHeaders
7707	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7708}
7709
7710// Do executes the "jobs.jobs.search" call.
7711// Exactly one of *SearchJobsResponse or error will be non-nil. Any
7712// non-2xx status code is an error. Response headers are in either
7713// *SearchJobsResponse.ServerResponse.Header or (if a response was
7714// returned at all) in error.(*googleapi.Error).Header. Use
7715// googleapi.IsNotModified to check whether the returned error was
7716// because http.StatusNotModified was returned.
7717func (c *JobsSearchCall) Do(opts ...googleapi.CallOption) (*SearchJobsResponse, error) {
7718	gensupport.SetOptions(c.urlParams_, opts...)
7719	res, err := c.doRequest("json")
7720	if res != nil && res.StatusCode == http.StatusNotModified {
7721		if res.Body != nil {
7722			res.Body.Close()
7723		}
7724		return nil, &googleapi.Error{
7725			Code:   res.StatusCode,
7726			Header: res.Header,
7727		}
7728	}
7729	if err != nil {
7730		return nil, err
7731	}
7732	defer googleapi.CloseBody(res)
7733	if err := googleapi.CheckResponse(res); err != nil {
7734		return nil, err
7735	}
7736	ret := &SearchJobsResponse{
7737		ServerResponse: googleapi.ServerResponse{
7738			Header:         res.Header,
7739			HTTPStatusCode: res.StatusCode,
7740		},
7741	}
7742	target := &ret
7743	if err := gensupport.DecodeResponse(target, res); err != nil {
7744		return nil, err
7745	}
7746	return ret, nil
7747	// {
7748	//   "description": "Searches for jobs using the provided SearchJobsRequest. This call constrains the visibility of jobs present in the database, and only returns jobs that the caller has permission to search against.",
7749	//   "flatPath": "v2/jobs:search",
7750	//   "httpMethod": "POST",
7751	//   "id": "jobs.jobs.search",
7752	//   "parameterOrder": [],
7753	//   "parameters": {},
7754	//   "path": "v2/jobs:search",
7755	//   "request": {
7756	//     "$ref": "SearchJobsRequest"
7757	//   },
7758	//   "response": {
7759	//     "$ref": "SearchJobsResponse"
7760	//   },
7761	//   "scopes": [
7762	//     "https://www.googleapis.com/auth/cloud-platform",
7763	//     "https://www.googleapis.com/auth/jobs"
7764	//   ]
7765	// }
7766
7767}
7768
7769// Pages invokes f for each page of results.
7770// A non-nil error returned from f will halt the iteration.
7771// The provided context supersedes any context provided to the Context method.
7772func (c *JobsSearchCall) Pages(ctx context.Context, f func(*SearchJobsResponse) error) error {
7773	c.ctx_ = ctx
7774	defer func(pt string) { c.searchjobsrequest.PageToken = pt }(c.searchjobsrequest.PageToken) // reset paging to original point
7775	for {
7776		x, err := c.Do()
7777		if err != nil {
7778			return err
7779		}
7780		if err := f(x); err != nil {
7781			return err
7782		}
7783		if x.NextPageToken == "" {
7784			return nil
7785		}
7786		c.searchjobsrequest.PageToken = x.NextPageToken
7787	}
7788}
7789
7790// method id "jobs.jobs.searchForAlert":
7791
7792type JobsSearchForAlertCall struct {
7793	s                 *Service
7794	searchjobsrequest *SearchJobsRequest
7795	urlParams_        gensupport.URLParams
7796	ctx_              context.Context
7797	header_           http.Header
7798}
7799
7800// SearchForAlert: Searches for jobs using the provided
7801// SearchJobsRequest. This API call is intended for the use case of
7802// targeting passive job seekers (for example, job seekers who have
7803// signed up to receive email alerts about potential job opportunities),
7804// and has different algorithmic adjustments that are targeted to
7805// passive job seekers. This call constrains the visibility of jobs
7806// present in the database, and only returns jobs the caller has
7807// permission to search against.
7808func (r *JobsService) SearchForAlert(searchjobsrequest *SearchJobsRequest) *JobsSearchForAlertCall {
7809	c := &JobsSearchForAlertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7810	c.searchjobsrequest = searchjobsrequest
7811	return c
7812}
7813
7814// Fields allows partial responses to be retrieved. See
7815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7816// for more information.
7817func (c *JobsSearchForAlertCall) Fields(s ...googleapi.Field) *JobsSearchForAlertCall {
7818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7819	return c
7820}
7821
7822// Context sets the context to be used in this call's Do method. Any
7823// pending HTTP request will be aborted if the provided context is
7824// canceled.
7825func (c *JobsSearchForAlertCall) Context(ctx context.Context) *JobsSearchForAlertCall {
7826	c.ctx_ = ctx
7827	return c
7828}
7829
7830// Header returns an http.Header that can be modified by the caller to
7831// add HTTP headers to the request.
7832func (c *JobsSearchForAlertCall) Header() http.Header {
7833	if c.header_ == nil {
7834		c.header_ = make(http.Header)
7835	}
7836	return c.header_
7837}
7838
7839func (c *JobsSearchForAlertCall) doRequest(alt string) (*http.Response, error) {
7840	reqHeaders := make(http.Header)
7841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
7842	for k, v := range c.header_ {
7843		reqHeaders[k] = v
7844	}
7845	reqHeaders.Set("User-Agent", c.s.userAgent())
7846	var body io.Reader = nil
7847	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchjobsrequest)
7848	if err != nil {
7849		return nil, err
7850	}
7851	reqHeaders.Set("Content-Type", "application/json")
7852	c.urlParams_.Set("alt", alt)
7853	c.urlParams_.Set("prettyPrint", "false")
7854	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/jobs:searchForAlert")
7855	urls += "?" + c.urlParams_.Encode()
7856	req, err := http.NewRequest("POST", urls, body)
7857	if err != nil {
7858		return nil, err
7859	}
7860	req.Header = reqHeaders
7861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7862}
7863
7864// Do executes the "jobs.jobs.searchForAlert" call.
7865// Exactly one of *SearchJobsResponse or error will be non-nil. Any
7866// non-2xx status code is an error. Response headers are in either
7867// *SearchJobsResponse.ServerResponse.Header or (if a response was
7868// returned at all) in error.(*googleapi.Error).Header. Use
7869// googleapi.IsNotModified to check whether the returned error was
7870// because http.StatusNotModified was returned.
7871func (c *JobsSearchForAlertCall) Do(opts ...googleapi.CallOption) (*SearchJobsResponse, error) {
7872	gensupport.SetOptions(c.urlParams_, opts...)
7873	res, err := c.doRequest("json")
7874	if res != nil && res.StatusCode == http.StatusNotModified {
7875		if res.Body != nil {
7876			res.Body.Close()
7877		}
7878		return nil, &googleapi.Error{
7879			Code:   res.StatusCode,
7880			Header: res.Header,
7881		}
7882	}
7883	if err != nil {
7884		return nil, err
7885	}
7886	defer googleapi.CloseBody(res)
7887	if err := googleapi.CheckResponse(res); err != nil {
7888		return nil, err
7889	}
7890	ret := &SearchJobsResponse{
7891		ServerResponse: googleapi.ServerResponse{
7892			Header:         res.Header,
7893			HTTPStatusCode: res.StatusCode,
7894		},
7895	}
7896	target := &ret
7897	if err := gensupport.DecodeResponse(target, res); err != nil {
7898		return nil, err
7899	}
7900	return ret, nil
7901	// {
7902	//   "description": "Searches for jobs using the provided SearchJobsRequest. This API call is intended for the use case of targeting passive job seekers (for example, job seekers who have signed up to receive email alerts about potential job opportunities), and has different algorithmic adjustments that are targeted to passive job seekers. This call constrains the visibility of jobs present in the database, and only returns jobs the caller has permission to search against.",
7903	//   "flatPath": "v2/jobs:searchForAlert",
7904	//   "httpMethod": "POST",
7905	//   "id": "jobs.jobs.searchForAlert",
7906	//   "parameterOrder": [],
7907	//   "parameters": {},
7908	//   "path": "v2/jobs:searchForAlert",
7909	//   "request": {
7910	//     "$ref": "SearchJobsRequest"
7911	//   },
7912	//   "response": {
7913	//     "$ref": "SearchJobsResponse"
7914	//   },
7915	//   "scopes": [
7916	//     "https://www.googleapis.com/auth/cloud-platform",
7917	//     "https://www.googleapis.com/auth/jobs"
7918	//   ]
7919	// }
7920
7921}
7922
7923// Pages invokes f for each page of results.
7924// A non-nil error returned from f will halt the iteration.
7925// The provided context supersedes any context provided to the Context method.
7926func (c *JobsSearchForAlertCall) Pages(ctx context.Context, f func(*SearchJobsResponse) error) error {
7927	c.ctx_ = ctx
7928	defer func(pt string) { c.searchjobsrequest.PageToken = pt }(c.searchjobsrequest.PageToken) // reset paging to original point
7929	for {
7930		x, err := c.Do()
7931		if err != nil {
7932			return err
7933		}
7934		if err := f(x); err != nil {
7935			return err
7936		}
7937		if x.NextPageToken == "" {
7938			return nil
7939		}
7940		c.searchjobsrequest.PageToken = x.NextPageToken
7941	}
7942}
7943
7944// method id "jobs.complete":
7945
7946type V2CompleteCall struct {
7947	s            *Service
7948	urlParams_   gensupport.URLParams
7949	ifNoneMatch_ string
7950	ctx_         context.Context
7951	header_      http.Header
7952}
7953
7954// Complete: Completes the specified prefix with job keyword
7955// suggestions. Intended for use by a job search auto-complete search
7956// box.
7957func (r *V2Service) Complete() *V2CompleteCall {
7958	c := &V2CompleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7959	return c
7960}
7961
7962// CompanyName sets the optional parameter "companyName": If provided,
7963// restricts completion to the specified company.
7964func (c *V2CompleteCall) CompanyName(companyName string) *V2CompleteCall {
7965	c.urlParams_.Set("companyName", companyName)
7966	return c
7967}
7968
7969// LanguageCode sets the optional parameter "languageCode": Required.
7970// The language of the query. This is the BCP-47 language code, such as
7971// "en-US" or "sr-Latn". For more information, see [Tags for Identifying
7972// Languages](https://tools.ietf.org/html/bcp47). For
7973// CompletionType.JOB_TITLE type, only open jobs with same language_code
7974// are returned. For CompletionType.COMPANY_NAME type, only companies
7975// having open jobs with same language_code are returned. For
7976// CompletionType.COMBINED type, only open jobs with same language_code
7977// or companies having open jobs with same language_code are returned.
7978func (c *V2CompleteCall) LanguageCode(languageCode string) *V2CompleteCall {
7979	c.urlParams_.Set("languageCode", languageCode)
7980	return c
7981}
7982
7983// PageSize sets the optional parameter "pageSize": Required. Completion
7984// result count. The maximum allowed page size is 10.
7985func (c *V2CompleteCall) PageSize(pageSize int64) *V2CompleteCall {
7986	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
7987	return c
7988}
7989
7990// Query sets the optional parameter "query": Required. The query used
7991// to generate suggestions.
7992func (c *V2CompleteCall) Query(query string) *V2CompleteCall {
7993	c.urlParams_.Set("query", query)
7994	return c
7995}
7996
7997// Scope sets the optional parameter "scope": The scope of the
7998// completion. The defaults is CompletionScope.PUBLIC.
7999//
8000// Possible values:
8001//   "COMPLETION_SCOPE_UNSPECIFIED" - Default value.
8002//   "TENANT" - Suggestions are based only on the data provided by the
8003// client.
8004//   "PUBLIC" - Suggestions are based on all jobs data in the system
8005// that's visible to the client
8006func (c *V2CompleteCall) Scope(scope string) *V2CompleteCall {
8007	c.urlParams_.Set("scope", scope)
8008	return c
8009}
8010
8011// Type sets the optional parameter "type": The completion topic. The
8012// default is CompletionType.COMBINED.
8013//
8014// Possible values:
8015//   "COMPLETION_TYPE_UNSPECIFIED" - Default value.
8016//   "JOB_TITLE" - Only suggest job titles.
8017//   "COMPANY_NAME" - Only suggest company names.
8018//   "COMBINED" - Suggest both job titles and company names.
8019func (c *V2CompleteCall) Type(type_ string) *V2CompleteCall {
8020	c.urlParams_.Set("type", type_)
8021	return c
8022}
8023
8024// Fields allows partial responses to be retrieved. See
8025// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8026// for more information.
8027func (c *V2CompleteCall) Fields(s ...googleapi.Field) *V2CompleteCall {
8028	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8029	return c
8030}
8031
8032// IfNoneMatch sets the optional parameter which makes the operation
8033// fail if the object's ETag matches the given value. This is useful for
8034// getting updates only after the object has changed since the last
8035// request. Use googleapi.IsNotModified to check whether the response
8036// error from Do is the result of In-None-Match.
8037func (c *V2CompleteCall) IfNoneMatch(entityTag string) *V2CompleteCall {
8038	c.ifNoneMatch_ = entityTag
8039	return c
8040}
8041
8042// Context sets the context to be used in this call's Do method. Any
8043// pending HTTP request will be aborted if the provided context is
8044// canceled.
8045func (c *V2CompleteCall) Context(ctx context.Context) *V2CompleteCall {
8046	c.ctx_ = ctx
8047	return c
8048}
8049
8050// Header returns an http.Header that can be modified by the caller to
8051// add HTTP headers to the request.
8052func (c *V2CompleteCall) Header() http.Header {
8053	if c.header_ == nil {
8054		c.header_ = make(http.Header)
8055	}
8056	return c.header_
8057}
8058
8059func (c *V2CompleteCall) doRequest(alt string) (*http.Response, error) {
8060	reqHeaders := make(http.Header)
8061	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20201123")
8062	for k, v := range c.header_ {
8063		reqHeaders[k] = v
8064	}
8065	reqHeaders.Set("User-Agent", c.s.userAgent())
8066	if c.ifNoneMatch_ != "" {
8067		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8068	}
8069	var body io.Reader = nil
8070	c.urlParams_.Set("alt", alt)
8071	c.urlParams_.Set("prettyPrint", "false")
8072	urls := googleapi.ResolveRelative(c.s.BasePath, "v2:complete")
8073	urls += "?" + c.urlParams_.Encode()
8074	req, err := http.NewRequest("GET", urls, body)
8075	if err != nil {
8076		return nil, err
8077	}
8078	req.Header = reqHeaders
8079	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8080}
8081
8082// Do executes the "jobs.complete" call.
8083// Exactly one of *CompleteQueryResponse or error will be non-nil. Any
8084// non-2xx status code is an error. Response headers are in either
8085// *CompleteQueryResponse.ServerResponse.Header or (if a response was
8086// returned at all) in error.(*googleapi.Error).Header. Use
8087// googleapi.IsNotModified to check whether the returned error was
8088// because http.StatusNotModified was returned.
8089func (c *V2CompleteCall) Do(opts ...googleapi.CallOption) (*CompleteQueryResponse, error) {
8090	gensupport.SetOptions(c.urlParams_, opts...)
8091	res, err := c.doRequest("json")
8092	if res != nil && res.StatusCode == http.StatusNotModified {
8093		if res.Body != nil {
8094			res.Body.Close()
8095		}
8096		return nil, &googleapi.Error{
8097			Code:   res.StatusCode,
8098			Header: res.Header,
8099		}
8100	}
8101	if err != nil {
8102		return nil, err
8103	}
8104	defer googleapi.CloseBody(res)
8105	if err := googleapi.CheckResponse(res); err != nil {
8106		return nil, err
8107	}
8108	ret := &CompleteQueryResponse{
8109		ServerResponse: googleapi.ServerResponse{
8110			Header:         res.Header,
8111			HTTPStatusCode: res.StatusCode,
8112		},
8113	}
8114	target := &ret
8115	if err := gensupport.DecodeResponse(target, res); err != nil {
8116		return nil, err
8117	}
8118	return ret, nil
8119	// {
8120	//   "description": "Completes the specified prefix with job keyword suggestions. Intended for use by a job search auto-complete search box.",
8121	//   "flatPath": "v2:complete",
8122	//   "httpMethod": "GET",
8123	//   "id": "jobs.complete",
8124	//   "parameterOrder": [],
8125	//   "parameters": {
8126	//     "companyName": {
8127	//       "description": "Optional. If provided, restricts completion to the specified company.",
8128	//       "location": "query",
8129	//       "type": "string"
8130	//     },
8131	//     "languageCode": {
8132	//       "description": "Required. The language of the query. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). For CompletionType.JOB_TITLE type, only open jobs with same language_code are returned. For CompletionType.COMPANY_NAME type, only companies having open jobs with same language_code are returned. For CompletionType.COMBINED type, only open jobs with same language_code or companies having open jobs with same language_code are returned.",
8133	//       "location": "query",
8134	//       "type": "string"
8135	//     },
8136	//     "pageSize": {
8137	//       "description": "Required. Completion result count. The maximum allowed page size is 10.",
8138	//       "format": "int32",
8139	//       "location": "query",
8140	//       "type": "integer"
8141	//     },
8142	//     "query": {
8143	//       "description": "Required. The query used to generate suggestions.",
8144	//       "location": "query",
8145	//       "type": "string"
8146	//     },
8147	//     "scope": {
8148	//       "description": "Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.",
8149	//       "enum": [
8150	//         "COMPLETION_SCOPE_UNSPECIFIED",
8151	//         "TENANT",
8152	//         "PUBLIC"
8153	//       ],
8154	//       "enumDescriptions": [
8155	//         "Default value.",
8156	//         "Suggestions are based only on the data provided by the client.",
8157	//         "Suggestions are based on all jobs data in the system that's visible to the client"
8158	//       ],
8159	//       "location": "query",
8160	//       "type": "string"
8161	//     },
8162	//     "type": {
8163	//       "description": "Optional. The completion topic. The default is CompletionType.COMBINED.",
8164	//       "enum": [
8165	//         "COMPLETION_TYPE_UNSPECIFIED",
8166	//         "JOB_TITLE",
8167	//         "COMPANY_NAME",
8168	//         "COMBINED"
8169	//       ],
8170	//       "enumDescriptions": [
8171	//         "Default value.",
8172	//         "Only suggest job titles.",
8173	//         "Only suggest company names.",
8174	//         "Suggest both job titles and company names."
8175	//       ],
8176	//       "location": "query",
8177	//       "type": "string"
8178	//     }
8179	//   },
8180	//   "path": "v2:complete",
8181	//   "response": {
8182	//     "$ref": "CompleteQueryResponse"
8183	//   },
8184	//   "scopes": [
8185	//     "https://www.googleapis.com/auth/cloud-platform",
8186	//     "https://www.googleapis.com/auth/jobs"
8187	//   ]
8188	// }
8189
8190}
8191