1// Copyright 2021 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/v3"
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/v3"
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:v3"
79const apiName = "jobs"
80const apiVersion = "v3"
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.Projects = NewProjectsService(s)
128	return s, nil
129}
130
131type Service struct {
132	client    *http.Client
133	BasePath  string // API endpoint base URL
134	UserAgent string // optional additional User-Agent fragment
135
136	Projects *ProjectsService
137}
138
139func (s *Service) userAgent() string {
140	if s.UserAgent == "" {
141		return googleapi.UserAgent
142	}
143	return googleapi.UserAgent + " " + s.UserAgent
144}
145
146func NewProjectsService(s *Service) *ProjectsService {
147	rs := &ProjectsService{s: s}
148	rs.ClientEvents = NewProjectsClientEventsService(s)
149	rs.Companies = NewProjectsCompaniesService(s)
150	rs.Jobs = NewProjectsJobsService(s)
151	return rs
152}
153
154type ProjectsService struct {
155	s *Service
156
157	ClientEvents *ProjectsClientEventsService
158
159	Companies *ProjectsCompaniesService
160
161	Jobs *ProjectsJobsService
162}
163
164func NewProjectsClientEventsService(s *Service) *ProjectsClientEventsService {
165	rs := &ProjectsClientEventsService{s: s}
166	return rs
167}
168
169type ProjectsClientEventsService struct {
170	s *Service
171}
172
173func NewProjectsCompaniesService(s *Service) *ProjectsCompaniesService {
174	rs := &ProjectsCompaniesService{s: s}
175	return rs
176}
177
178type ProjectsCompaniesService struct {
179	s *Service
180}
181
182func NewProjectsJobsService(s *Service) *ProjectsJobsService {
183	rs := &ProjectsJobsService{s: s}
184	return rs
185}
186
187type ProjectsJobsService struct {
188	s *Service
189}
190
191// ApplicationInfo: Application related details of a job posting.
192type ApplicationInfo struct {
193	// Emails: Optional but at least one of uris, emails or instruction must
194	// be specified. Use this field to specify email address(es) to which
195	// resumes or applications can be sent. The maximum number of allowed
196	// characters for each entry is 255.
197	Emails []string `json:"emails,omitempty"`
198
199	// Instruction: Optional but at least one of uris, emails or instruction
200	// must be specified. Use this field to provide instructions, such as
201	// "Mail your application to ...", that a candidate can follow to apply
202	// for the job. This field accepts and sanitizes HTML input, and also
203	// accepts bold, italic, ordered list, and unordered list markup tags.
204	// The maximum number of allowed characters is 3,000.
205	Instruction string `json:"instruction,omitempty"`
206
207	// Uris: Optional but at least one of uris, emails or instruction must
208	// be specified. Use this URI field to direct an applicant to a website,
209	// for example to link to an online application form. The maximum number
210	// of allowed characters for each entry is 2,000.
211	Uris []string `json:"uris,omitempty"`
212
213	// ForceSendFields is a list of field names (e.g. "Emails") to
214	// unconditionally include in API requests. By default, fields with
215	// empty values are omitted from API requests. However, any non-pointer,
216	// non-interface field appearing in ForceSendFields will be sent to the
217	// server regardless of whether the field is empty or not. This may be
218	// used to include empty fields in Patch requests.
219	ForceSendFields []string `json:"-"`
220
221	// NullFields is a list of field names (e.g. "Emails") to include in API
222	// requests with the JSON null value. By default, fields with empty
223	// values are omitted from API requests. However, any field with an
224	// empty value appearing in NullFields will be sent to the server as
225	// null. It is an error if a field in this list has a non-empty value.
226	// This may be used to include null fields in Patch requests.
227	NullFields []string `json:"-"`
228}
229
230func (s *ApplicationInfo) MarshalJSON() ([]byte, error) {
231	type NoMethod ApplicationInfo
232	raw := NoMethod(*s)
233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
234}
235
236// BatchDeleteJobsRequest: Input only. Batch delete jobs request.
237type BatchDeleteJobsRequest struct {
238	// Filter: Required. The filter string specifies the jobs to be deleted.
239	// Supported operator: =, AND The fields eligible for filtering are: *
240	// `companyName` (Required) * `requisitionId` (Required) Sample Query:
241	// companyName = "projects/api-test-project/companies/123" AND
242	// requisitionId = "req-1"
243	Filter string `json:"filter,omitempty"`
244
245	// ForceSendFields is a list of field names (e.g. "Filter") to
246	// unconditionally include in API requests. By default, fields with
247	// empty values are omitted from API requests. However, any non-pointer,
248	// non-interface field appearing in ForceSendFields will be sent to the
249	// server regardless of whether the field is empty or not. This may be
250	// used to include empty fields in Patch requests.
251	ForceSendFields []string `json:"-"`
252
253	// NullFields is a list of field names (e.g. "Filter") to include in API
254	// requests with the JSON null value. By default, fields with empty
255	// values are omitted from API requests. However, any field with an
256	// empty value appearing in NullFields will be sent to the server as
257	// null. It is an error if a field in this list has a non-empty value.
258	// This may be used to include null fields in Patch requests.
259	NullFields []string `json:"-"`
260}
261
262func (s *BatchDeleteJobsRequest) MarshalJSON() ([]byte, error) {
263	type NoMethod BatchDeleteJobsRequest
264	raw := NoMethod(*s)
265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
266}
267
268// BucketRange: Represents starting and ending value of a range in
269// double.
270type BucketRange struct {
271	// From: Starting value of the bucket range.
272	From float64 `json:"from,omitempty"`
273
274	// To: Ending value of the bucket range.
275	To float64 `json:"to,omitempty"`
276
277	// ForceSendFields is a list of field names (e.g. "From") to
278	// unconditionally include in API requests. By default, fields with
279	// empty values are omitted from API requests. However, any non-pointer,
280	// non-interface field appearing in ForceSendFields will be sent to the
281	// server regardless of whether the field is empty or not. This may be
282	// used to include empty fields in Patch requests.
283	ForceSendFields []string `json:"-"`
284
285	// NullFields is a list of field names (e.g. "From") to include in API
286	// requests with the JSON null value. By default, fields with empty
287	// values are omitted from API requests. However, any field with an
288	// empty value appearing in NullFields will be sent to the server as
289	// null. It is an error if a field in this list has a non-empty value.
290	// This may be used to include null fields in Patch requests.
291	NullFields []string `json:"-"`
292}
293
294func (s *BucketRange) MarshalJSON() ([]byte, error) {
295	type NoMethod BucketRange
296	raw := NoMethod(*s)
297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
298}
299
300func (s *BucketRange) UnmarshalJSON(data []byte) error {
301	type NoMethod BucketRange
302	var s1 struct {
303		From gensupport.JSONFloat64 `json:"from"`
304		To   gensupport.JSONFloat64 `json:"to"`
305		*NoMethod
306	}
307	s1.NoMethod = (*NoMethod)(s)
308	if err := json.Unmarshal(data, &s1); err != nil {
309		return err
310	}
311	s.From = float64(s1.From)
312	s.To = float64(s1.To)
313	return nil
314}
315
316// BucketizedCount: Represents count of jobs within one bucket.
317type BucketizedCount struct {
318	// Count: Number of jobs whose numeric field value fall into `range`.
319	Count int64 `json:"count,omitempty"`
320
321	// Range: Bucket range on which histogram was performed for the numeric
322	// field, that is, the count represents number of jobs in this range.
323	Range *BucketRange `json:"range,omitempty"`
324
325	// ForceSendFields is a list of field names (e.g. "Count") to
326	// unconditionally include in API requests. By default, fields with
327	// empty values are omitted from API requests. However, any non-pointer,
328	// non-interface field appearing in ForceSendFields will be sent to the
329	// server regardless of whether the field is empty or not. This may be
330	// used to include empty fields in Patch requests.
331	ForceSendFields []string `json:"-"`
332
333	// NullFields is a list of field names (e.g. "Count") to include in API
334	// requests with the JSON null value. By default, fields with empty
335	// values are omitted from API requests. However, any field with an
336	// empty value appearing in NullFields will be sent to the server as
337	// null. It is an error if a field in this list has a non-empty value.
338	// This may be used to include null fields in Patch requests.
339	NullFields []string `json:"-"`
340}
341
342func (s *BucketizedCount) MarshalJSON() ([]byte, error) {
343	type NoMethod BucketizedCount
344	raw := NoMethod(*s)
345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
346}
347
348// ClientEvent: An event issued when an end user interacts with the
349// application that implements Cloud Talent Solution. Providing this
350// information improves the quality of search and recommendation for the
351// API clients, enabling the service to perform optimally. The number of
352// events sent must be consistent with other calls, such as job
353// searches, issued to the service by the client.
354type ClientEvent struct {
355	// CreateTime: Required. The timestamp of the event.
356	CreateTime string `json:"createTime,omitempty"`
357
358	// EventId: Required. A unique identifier, generated by the client
359	// application. This `event_id` is used to establish the relationship
360	// between different events (see parent_event_id).
361	EventId string `json:"eventId,omitempty"`
362
363	// ExtraInfo: Optional. Extra information about this event. Used for
364	// storing information with no matching field in event payload, for
365	// example, user application specific context or details. At most 20
366	// keys are supported. The maximum total size of all keys and values is
367	// 2 KB.
368	ExtraInfo map[string]string `json:"extraInfo,omitempty"`
369
370	// JobEvent: A event issued when a job seeker interacts with the
371	// application that implements Cloud Talent Solution.
372	JobEvent *JobEvent `json:"jobEvent,omitempty"`
373
374	// ParentEventId: Optional. The event_id of an event that resulted in
375	// the current event. For example, a Job view event usually follows a
376	// parent impression event: A job seeker first does a search where a
377	// list of jobs appears (impression). The job seeker then selects a
378	// result and views the description of a particular job (Job view).
379	ParentEventId string `json:"parentEventId,omitempty"`
380
381	// RequestId: Required. A unique ID generated in the API responses. It
382	// can be found in ResponseMetadata.request_id.
383	RequestId string `json:"requestId,omitempty"`
384
385	// ServerResponse contains the HTTP response code and headers from the
386	// server.
387	googleapi.ServerResponse `json:"-"`
388
389	// ForceSendFields is a list of field names (e.g. "CreateTime") to
390	// unconditionally include in API requests. By default, fields with
391	// empty values are omitted from API requests. However, any non-pointer,
392	// non-interface field appearing in ForceSendFields will be sent to the
393	// server regardless of whether the field is empty or not. This may be
394	// used to include empty fields in Patch requests.
395	ForceSendFields []string `json:"-"`
396
397	// NullFields is a list of field names (e.g. "CreateTime") to include in
398	// API requests with the JSON null value. By default, fields with empty
399	// values are omitted from API requests. However, any field with an
400	// empty value appearing in NullFields will be sent to the server as
401	// null. It is an error if a field in this list has a non-empty value.
402	// This may be used to include null fields in Patch requests.
403	NullFields []string `json:"-"`
404}
405
406func (s *ClientEvent) MarshalJSON() ([]byte, error) {
407	type NoMethod ClientEvent
408	raw := NoMethod(*s)
409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
410}
411
412// CommuteFilter: Input only. Parameters needed for commute search.
413type CommuteFilter struct {
414	// AllowImpreciseAddresses: Optional. If true, jobs without "precise"
415	// addresses (street level addresses or GPS coordinates) might also be
416	// returned. For city and coarser level addresses, text matching is
417	// used. If this field is set to false or is not specified, only jobs
418	// that include precise addresses are returned by Commute Search. Note:
419	// If `allow_imprecise_addresses` is set to true, Commute Search is not
420	// able to calculate accurate commute times to jobs with city level and
421	// coarser address information. Jobs with imprecise addresses will
422	// return a `travel_duration` time of 0 regardless of distance from the
423	// job seeker.
424	AllowImpreciseAddresses bool `json:"allowImpreciseAddresses,omitempty"`
425
426	// CommuteMethod: Required. The method of transportation for which to
427	// calculate the commute time.
428	//
429	// Possible values:
430	//   "COMMUTE_METHOD_UNSPECIFIED" - Commute method is not specified.
431	//   "DRIVING" - Commute time is calculated based on driving time.
432	//   "TRANSIT" - Commute time is calculated based on public transit
433	// including bus, metro, subway, etc.
434	CommuteMethod string `json:"commuteMethod,omitempty"`
435
436	// DepartureTime: Optional. The departure time used to calculate traffic
437	// impact, represented as google.type.TimeOfDay in local time zone.
438	// Currently traffic model is restricted to hour level resolution.
439	DepartureTime *TimeOfDay `json:"departureTime,omitempty"`
440
441	// RoadTraffic: Optional. Specifies the traffic density to use when
442	// calculating commute time.
443	//
444	// Possible values:
445	//   "ROAD_TRAFFIC_UNSPECIFIED" - Road traffic situation is not
446	// specified.
447	//   "TRAFFIC_FREE" - Optimal commute time without considering any
448	// traffic impact.
449	//   "BUSY_HOUR" - Commute time calculation takes in account the peak
450	// traffic impact.
451	RoadTraffic string `json:"roadTraffic,omitempty"`
452
453	// StartCoordinates: Required. The latitude and longitude of the
454	// location from which to calculate the commute time.
455	StartCoordinates *LatLng `json:"startCoordinates,omitempty"`
456
457	// TravelDuration: Required. The maximum travel time in seconds. The
458	// maximum allowed value is `3600s` (one hour). Format is `123s`.
459	TravelDuration string `json:"travelDuration,omitempty"`
460
461	// ForceSendFields is a list of field names (e.g.
462	// "AllowImpreciseAddresses") to unconditionally include in API
463	// requests. By default, fields with empty values are omitted from API
464	// requests. However, any non-pointer, non-interface field appearing in
465	// ForceSendFields will be sent to the server regardless of whether the
466	// field is empty or not. This may be used to include empty fields in
467	// Patch requests.
468	ForceSendFields []string `json:"-"`
469
470	// NullFields is a list of field names (e.g. "AllowImpreciseAddresses")
471	// to include in API requests with the JSON null value. By default,
472	// fields with empty values are omitted from API requests. However, any
473	// field with an empty value appearing in NullFields will be sent to the
474	// server as null. It is an error if a field in this list has a
475	// non-empty value. This may be used to include null fields in Patch
476	// requests.
477	NullFields []string `json:"-"`
478}
479
480func (s *CommuteFilter) MarshalJSON() ([]byte, error) {
481	type NoMethod CommuteFilter
482	raw := NoMethod(*s)
483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
484}
485
486// CommuteInfo: Output only. Commute details related to this job.
487type CommuteInfo struct {
488	// JobLocation: Location used as the destination in the commute
489	// calculation.
490	JobLocation *Location `json:"jobLocation,omitempty"`
491
492	// TravelDuration: The number of seconds required to travel to the job
493	// location from the query location. A duration of 0 seconds indicates
494	// that the job is not reachable within the requested duration, but was
495	// returned as part of an expanded query.
496	TravelDuration string `json:"travelDuration,omitempty"`
497
498	// ForceSendFields is a list of field names (e.g. "JobLocation") to
499	// unconditionally include in API requests. By default, fields with
500	// empty values are omitted from API requests. However, any non-pointer,
501	// non-interface field appearing in ForceSendFields will be sent to the
502	// server regardless of whether the field is empty or not. This may be
503	// used to include empty fields in Patch requests.
504	ForceSendFields []string `json:"-"`
505
506	// NullFields is a list of field names (e.g. "JobLocation") to include
507	// in API requests with the JSON null value. By default, fields with
508	// empty values are omitted from API requests. However, any field with
509	// an empty value appearing in NullFields will be sent to the server as
510	// null. It is an error if a field in this list has a non-empty value.
511	// This may be used to include null fields in Patch requests.
512	NullFields []string `json:"-"`
513}
514
515func (s *CommuteInfo) MarshalJSON() ([]byte, error) {
516	type NoMethod CommuteInfo
517	raw := NoMethod(*s)
518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
519}
520
521// Company: A Company resource represents a company in the service. A
522// company is the entity that owns job postings, that is, the hiring
523// entity responsible for employing applicants for the job position.
524type Company struct {
525	// CareerSiteUri: Optional. The URI to employer's career site or careers
526	// page on the employer's web site, for example,
527	// "https://careers.google.com".
528	CareerSiteUri string `json:"careerSiteUri,omitempty"`
529
530	// DerivedInfo: Output only. Derived details about the company.
531	DerivedInfo *CompanyDerivedInfo `json:"derivedInfo,omitempty"`
532
533	// DisplayName: Required. The display name of the company, for example,
534	// "Google LLC".
535	DisplayName string `json:"displayName,omitempty"`
536
537	// EeoText: Optional. Equal Employment Opportunity legal disclaimer text
538	// to be associated with all jobs, and typically to be displayed in all
539	// roles. The maximum number of allowed characters is 500.
540	EeoText string `json:"eeoText,omitempty"`
541
542	// ExternalId: Required. Client side company identifier, used to
543	// uniquely identify the company. The maximum number of allowed
544	// characters is 255.
545	ExternalId string `json:"externalId,omitempty"`
546
547	// HeadquartersAddress: Optional. The street address of the company's
548	// main headquarters, which may be different from the job location. The
549	// service attempts to geolocate the provided address, and populates a
550	// more specific location wherever possible in
551	// DerivedInfo.headquarters_location.
552	HeadquartersAddress string `json:"headquartersAddress,omitempty"`
553
554	// HiringAgency: Optional. Set to true if it is the hiring agency that
555	// post jobs for other employers. Defaults to false if not provided.
556	HiringAgency bool `json:"hiringAgency,omitempty"`
557
558	// ImageUri: Optional. A URI that hosts the employer's company logo.
559	ImageUri string `json:"imageUri,omitempty"`
560
561	// KeywordSearchableJobCustomAttributes: Optional. A list of keys of
562	// filterable Job.custom_attributes, whose corresponding `string_values`
563	// are used in keyword search. Jobs with `string_values` under these
564	// specified field keys are returned if any of the values matches the
565	// search keyword. Custom field values with parenthesis, brackets and
566	// special symbols won't be properly searchable, and those keyword
567	// queries need to be surrounded by quotes.
568	KeywordSearchableJobCustomAttributes []string `json:"keywordSearchableJobCustomAttributes,omitempty"`
569
570	// Name: Required during company update. The resource name for a
571	// company. This is generated by the service when a company is created.
572	// The format is "projects/{project_id}/companies/{company_id}", for
573	// example, "projects/api-test-project/companies/foo".
574	Name string `json:"name,omitempty"`
575
576	// Size: Optional. The employer's company size.
577	//
578	// Possible values:
579	//   "COMPANY_SIZE_UNSPECIFIED" - Default value if the size is not
580	// specified.
581	//   "MINI" - The company has less than 50 employees.
582	//   "SMALL" - The company has between 50 and 99 employees.
583	//   "SMEDIUM" - The company has between 100 and 499 employees.
584	//   "MEDIUM" - The company has between 500 and 999 employees.
585	//   "BIG" - The company has between 1,000 and 4,999 employees.
586	//   "BIGGER" - The company has between 5,000 and 9,999 employees.
587	//   "GIANT" - The company has 10,000 or more employees.
588	Size string `json:"size,omitempty"`
589
590	// Suspended: Output only. Indicates whether a company is flagged to be
591	// suspended from public availability by the service when job content
592	// appears suspicious, abusive, or spammy.
593	Suspended bool `json:"suspended,omitempty"`
594
595	// WebsiteUri: Optional. The URI representing the company's primary web
596	// site or home page, for example, "https://www.google.com". The maximum
597	// number of allowed characters is 255.
598	WebsiteUri string `json:"websiteUri,omitempty"`
599
600	// ServerResponse contains the HTTP response code and headers from the
601	// server.
602	googleapi.ServerResponse `json:"-"`
603
604	// ForceSendFields is a list of field names (e.g. "CareerSiteUri") to
605	// unconditionally include in API requests. By default, fields with
606	// empty values are omitted from API requests. However, any non-pointer,
607	// non-interface field appearing in ForceSendFields will be sent to the
608	// server regardless of whether the field is empty or not. This may be
609	// used to include empty fields in Patch requests.
610	ForceSendFields []string `json:"-"`
611
612	// NullFields is a list of field names (e.g. "CareerSiteUri") to include
613	// in API requests with the JSON null value. By default, fields with
614	// empty values are omitted from API requests. However, any field with
615	// an empty value appearing in NullFields will be sent to the server as
616	// null. It is an error if a field in this list has a non-empty value.
617	// This may be used to include null fields in Patch requests.
618	NullFields []string `json:"-"`
619}
620
621func (s *Company) MarshalJSON() ([]byte, error) {
622	type NoMethod Company
623	raw := NoMethod(*s)
624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
625}
626
627// CompanyDerivedInfo: Derived details about the company.
628type CompanyDerivedInfo struct {
629	// HeadquartersLocation: A structured headquarters location of the
630	// company, resolved from Company.hq_location if provided.
631	HeadquartersLocation *Location `json:"headquartersLocation,omitempty"`
632
633	// ForceSendFields is a list of field names (e.g.
634	// "HeadquartersLocation") to unconditionally include in API requests.
635	// By default, fields with empty values are omitted from API requests.
636	// However, any non-pointer, non-interface field appearing in
637	// ForceSendFields will be sent to the server regardless of whether the
638	// field is empty or not. This may be used to include empty fields in
639	// Patch requests.
640	ForceSendFields []string `json:"-"`
641
642	// NullFields is a list of field names (e.g. "HeadquartersLocation") to
643	// include in API requests with the JSON null value. By default, fields
644	// with empty values are omitted from API requests. However, any field
645	// with an empty value appearing in NullFields will be sent to the
646	// server as null. It is an error if a field in this list has a
647	// non-empty value. This may be used to include null fields in Patch
648	// requests.
649	NullFields []string `json:"-"`
650}
651
652func (s *CompanyDerivedInfo) MarshalJSON() ([]byte, error) {
653	type NoMethod CompanyDerivedInfo
654	raw := NoMethod(*s)
655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
656}
657
658// CompensationEntry: A compensation entry that represents one component
659// of compensation, such as base pay, bonus, or other compensation type.
660// Annualization: One compensation entry can be annualized if - it
661// contains valid amount or range. - and its expected_units_per_year is
662// set or can be derived. Its annualized range is determined as (amount
663// or range) times expected_units_per_year.
664type CompensationEntry struct {
665	// Amount: Optional. Compensation amount.
666	Amount *Money `json:"amount,omitempty"`
667
668	// Description: Optional. Compensation description. For example, could
669	// indicate equity terms or provide additional context to an estimated
670	// bonus.
671	Description string `json:"description,omitempty"`
672
673	// ExpectedUnitsPerYear: Optional. Expected number of units paid each
674	// year. If not specified, when Job.employment_types is FULLTIME, a
675	// default value is inferred based on unit. Default values: - HOURLY:
676	// 2080 - DAILY: 260 - WEEKLY: 52 - MONTHLY: 12 - ANNUAL: 1
677	ExpectedUnitsPerYear float64 `json:"expectedUnitsPerYear,omitempty"`
678
679	// Range: Optional. Compensation range.
680	Range *CompensationRange `json:"range,omitempty"`
681
682	// Type: Optional. Compensation type. Default is
683	// CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED.
684	//
685	// Possible values:
686	//   "COMPENSATION_TYPE_UNSPECIFIED" - Default value.
687	//   "BASE" - Base compensation: Refers to the fixed amount of money
688	// paid to an employee by an employer in return for work performed. Base
689	// compensation does not include benefits, bonuses or any other
690	// potential compensation from an employer.
691	//   "BONUS" - Bonus.
692	//   "SIGNING_BONUS" - Signing bonus.
693	//   "EQUITY" - Equity.
694	//   "PROFIT_SHARING" - Profit sharing.
695	//   "COMMISSIONS" - Commission.
696	//   "TIPS" - Tips.
697	//   "OTHER_COMPENSATION_TYPE" - Other compensation type.
698	Type string `json:"type,omitempty"`
699
700	// Unit: Optional. Frequency of the specified amount. Default is
701	// CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.
702	//
703	// Possible values:
704	//   "COMPENSATION_UNIT_UNSPECIFIED" - Default value.
705	//   "HOURLY" - Hourly.
706	//   "DAILY" - Daily.
707	//   "WEEKLY" - Weekly
708	//   "MONTHLY" - Monthly.
709	//   "YEARLY" - Yearly.
710	//   "ONE_TIME" - One time.
711	//   "OTHER_COMPENSATION_UNIT" - Other compensation units.
712	Unit string `json:"unit,omitempty"`
713
714	// ForceSendFields is a list of field names (e.g. "Amount") to
715	// unconditionally include in API requests. By default, fields with
716	// empty values are omitted from API requests. However, any non-pointer,
717	// non-interface field appearing in ForceSendFields will be sent to the
718	// server regardless of whether the field is empty or not. This may be
719	// used to include empty fields in Patch requests.
720	ForceSendFields []string `json:"-"`
721
722	// NullFields is a list of field names (e.g. "Amount") to include in API
723	// requests with the JSON null value. By default, fields with empty
724	// values are omitted from API requests. However, any field with an
725	// empty value appearing in NullFields will be sent to the server as
726	// null. It is an error if a field in this list has a non-empty value.
727	// This may be used to include null fields in Patch requests.
728	NullFields []string `json:"-"`
729}
730
731func (s *CompensationEntry) MarshalJSON() ([]byte, error) {
732	type NoMethod CompensationEntry
733	raw := NoMethod(*s)
734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
735}
736
737func (s *CompensationEntry) UnmarshalJSON(data []byte) error {
738	type NoMethod CompensationEntry
739	var s1 struct {
740		ExpectedUnitsPerYear gensupport.JSONFloat64 `json:"expectedUnitsPerYear"`
741		*NoMethod
742	}
743	s1.NoMethod = (*NoMethod)(s)
744	if err := json.Unmarshal(data, &s1); err != nil {
745		return err
746	}
747	s.ExpectedUnitsPerYear = float64(s1.ExpectedUnitsPerYear)
748	return nil
749}
750
751// CompensationFilter: Input only. Filter on job compensation type and
752// amount.
753type CompensationFilter struct {
754	// IncludeJobsWithUnspecifiedCompensationRange: Optional. If set to
755	// true, jobs with unspecified compensation range fields are included.
756	IncludeJobsWithUnspecifiedCompensationRange bool `json:"includeJobsWithUnspecifiedCompensationRange,omitempty"`
757
758	// Range: Optional. Compensation range.
759	Range *CompensationRange `json:"range,omitempty"`
760
761	// Type: Required. Type of filter.
762	//
763	// Possible values:
764	//   "FILTER_TYPE_UNSPECIFIED" - Filter type unspecified. Position
765	// holder, INVALID, should never be used.
766	//   "UNIT_ONLY" - Filter by `base compensation entry's` unit. A job is
767	// a match if and only if the job contains a base CompensationEntry and
768	// the base CompensationEntry's unit matches provided units. Populate
769	// one or more units. See CompensationInfo.CompensationEntry for
770	// definition of base compensation entry.
771	//   "UNIT_AND_AMOUNT" - Filter by `base compensation entry's` unit and
772	// amount / range. A job is a match if and only if the job contains a
773	// base CompensationEntry, and the base entry's unit matches provided
774	// compensation_units and amount or range overlaps with provided
775	// compensation_range. See CompensationInfo.CompensationEntry for
776	// definition of base compensation entry. Set exactly one units and
777	// populate range.
778	//   "ANNUALIZED_BASE_AMOUNT" - Filter by annualized base compensation
779	// amount and `base compensation entry's` unit. Populate range and zero
780	// or more units.
781	//   "ANNUALIZED_TOTAL_AMOUNT" - Filter by annualized total compensation
782	// amount and `base compensation entry's` unit . Populate range and zero
783	// or more units.
784	Type string `json:"type,omitempty"`
785
786	// Units: Required. Specify desired `base compensation entry's`
787	// CompensationInfo.CompensationUnit.
788	//
789	// Possible values:
790	//   "COMPENSATION_UNIT_UNSPECIFIED" - Default value.
791	//   "HOURLY" - Hourly.
792	//   "DAILY" - Daily.
793	//   "WEEKLY" - Weekly
794	//   "MONTHLY" - Monthly.
795	//   "YEARLY" - Yearly.
796	//   "ONE_TIME" - One time.
797	//   "OTHER_COMPENSATION_UNIT" - Other compensation units.
798	Units []string `json:"units,omitempty"`
799
800	// ForceSendFields is a list of field names (e.g.
801	// "IncludeJobsWithUnspecifiedCompensationRange") to unconditionally
802	// include in API requests. By default, fields with empty values are
803	// omitted from API requests. However, any non-pointer, non-interface
804	// field appearing in ForceSendFields will be sent to the server
805	// regardless of whether the field is empty or not. This may be used to
806	// include empty fields in Patch requests.
807	ForceSendFields []string `json:"-"`
808
809	// NullFields is a list of field names (e.g.
810	// "IncludeJobsWithUnspecifiedCompensationRange") to include in API
811	// requests with the JSON null value. By default, fields with empty
812	// values are omitted from API requests. However, any field with an
813	// empty value appearing in NullFields will be sent to the server as
814	// null. It is an error if a field in this list has a non-empty value.
815	// This may be used to include null fields in Patch requests.
816	NullFields []string `json:"-"`
817}
818
819func (s *CompensationFilter) MarshalJSON() ([]byte, error) {
820	type NoMethod CompensationFilter
821	raw := NoMethod(*s)
822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
823}
824
825// CompensationHistogramRequest: Input only. Compensation based
826// histogram request.
827type CompensationHistogramRequest struct {
828	// BucketingOption: Required. Numeric histogram options, like buckets,
829	// whether include min or max value.
830	BucketingOption *NumericBucketingOption `json:"bucketingOption,omitempty"`
831
832	// Type: Required. Type of the request, representing which field the
833	// histogramming should be performed over. A single request can only
834	// specify one histogram of each `CompensationHistogramRequestType`.
835	//
836	// Possible values:
837	//   "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED" - Default value.
838	// Invalid.
839	//   "BASE" - Histogram by job's base compensation. See
840	// CompensationEntry for definition of base compensation.
841	//   "ANNUALIZED_BASE" - Histogram by job's annualized base
842	// compensation. See CompensationEntry for definition of annualized base
843	// compensation.
844	//   "ANNUALIZED_TOTAL" - Histogram by job's annualized total
845	// compensation. See CompensationEntry for definition of annualized
846	// total compensation.
847	Type string `json:"type,omitempty"`
848
849	// ForceSendFields is a list of field names (e.g. "BucketingOption") to
850	// unconditionally include in API requests. By default, fields with
851	// empty values are omitted from API requests. However, any non-pointer,
852	// non-interface field appearing in ForceSendFields will be sent to the
853	// server regardless of whether the field is empty or not. This may be
854	// used to include empty fields in Patch requests.
855	ForceSendFields []string `json:"-"`
856
857	// NullFields is a list of field names (e.g. "BucketingOption") to
858	// include in API requests with the JSON null value. By default, fields
859	// with empty values are omitted from API requests. However, any field
860	// with an empty value appearing in NullFields will be sent to the
861	// server as null. It is an error if a field in this list has a
862	// non-empty value. This may be used to include null fields in Patch
863	// requests.
864	NullFields []string `json:"-"`
865}
866
867func (s *CompensationHistogramRequest) MarshalJSON() ([]byte, error) {
868	type NoMethod CompensationHistogramRequest
869	raw := NoMethod(*s)
870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
871}
872
873// CompensationHistogramResult: Output only. Compensation based
874// histogram result.
875type CompensationHistogramResult struct {
876	// Result: Histogram result.
877	Result *NumericBucketingResult `json:"result,omitempty"`
878
879	// Type: Type of the request, corresponding to
880	// CompensationHistogramRequest.type.
881	//
882	// Possible values:
883	//   "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED" - Default value.
884	// Invalid.
885	//   "BASE" - Histogram by job's base compensation. See
886	// CompensationEntry for definition of base compensation.
887	//   "ANNUALIZED_BASE" - Histogram by job's annualized base
888	// compensation. See CompensationEntry for definition of annualized base
889	// compensation.
890	//   "ANNUALIZED_TOTAL" - Histogram by job's annualized total
891	// compensation. See CompensationEntry for definition of annualized
892	// total compensation.
893	Type string `json:"type,omitempty"`
894
895	// ForceSendFields is a list of field names (e.g. "Result") to
896	// unconditionally include in API requests. By default, fields with
897	// empty values are omitted from API requests. However, any non-pointer,
898	// non-interface field appearing in ForceSendFields will be sent to the
899	// server regardless of whether the field is empty or not. This may be
900	// used to include empty fields in Patch requests.
901	ForceSendFields []string `json:"-"`
902
903	// NullFields is a list of field names (e.g. "Result") to include in API
904	// requests with the JSON null value. By default, fields with empty
905	// values are omitted from API requests. However, any field with an
906	// empty value appearing in NullFields will be sent to the server as
907	// null. It is an error if a field in this list has a non-empty value.
908	// This may be used to include null fields in Patch requests.
909	NullFields []string `json:"-"`
910}
911
912func (s *CompensationHistogramResult) MarshalJSON() ([]byte, error) {
913	type NoMethod CompensationHistogramResult
914	raw := NoMethod(*s)
915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
916}
917
918// CompensationInfo: Job compensation details.
919type CompensationInfo struct {
920	// AnnualizedBaseCompensationRange: Output only. Annualized base
921	// compensation range. Computed as base compensation entry's
922	// CompensationEntry.compensation times
923	// CompensationEntry.expected_units_per_year. See CompensationEntry for
924	// explanation on compensation annualization.
925	AnnualizedBaseCompensationRange *CompensationRange `json:"annualizedBaseCompensationRange,omitempty"`
926
927	// AnnualizedTotalCompensationRange: Output only. Annualized total
928	// compensation range. Computed as all compensation entries'
929	// CompensationEntry.compensation times
930	// CompensationEntry.expected_units_per_year. See CompensationEntry for
931	// explanation on compensation annualization.
932	AnnualizedTotalCompensationRange *CompensationRange `json:"annualizedTotalCompensationRange,omitempty"`
933
934	// Entries: Optional. Job compensation information. At most one entry
935	// can be of type CompensationInfo.CompensationType.BASE, which is
936	// referred as ** base compensation entry ** for the job.
937	Entries []*CompensationEntry `json:"entries,omitempty"`
938
939	// ForceSendFields is a list of field names (e.g.
940	// "AnnualizedBaseCompensationRange") to unconditionally include in API
941	// requests. By default, fields with empty values are omitted from API
942	// requests. However, any non-pointer, non-interface field appearing in
943	// ForceSendFields will be sent to the server regardless of whether the
944	// field is empty or not. This may be used to include empty fields in
945	// Patch requests.
946	ForceSendFields []string `json:"-"`
947
948	// NullFields is a list of field names (e.g.
949	// "AnnualizedBaseCompensationRange") to include in API requests with
950	// the JSON null value. By default, fields with empty values are omitted
951	// from API requests. However, any field with an empty value appearing
952	// in NullFields will be sent to the server as null. It is an error if a
953	// field in this list has a non-empty value. This may be used to include
954	// null fields in Patch requests.
955	NullFields []string `json:"-"`
956}
957
958func (s *CompensationInfo) MarshalJSON() ([]byte, error) {
959	type NoMethod CompensationInfo
960	raw := NoMethod(*s)
961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
962}
963
964// CompensationRange: Compensation range.
965type CompensationRange struct {
966	// MaxCompensation: Optional. The maximum amount of compensation. If
967	// left empty, the value is set to a maximal compensation value and the
968	// currency code is set to match the currency code of min_compensation.
969	MaxCompensation *Money `json:"maxCompensation,omitempty"`
970
971	// MinCompensation: Optional. The minimum amount of compensation. If
972	// left empty, the value is set to zero and the currency code is set to
973	// match the currency code of max_compensation.
974	MinCompensation *Money `json:"minCompensation,omitempty"`
975
976	// ForceSendFields is a list of field names (e.g. "MaxCompensation") to
977	// unconditionally include in API requests. By default, fields with
978	// empty values are omitted from API requests. However, any non-pointer,
979	// non-interface field appearing in ForceSendFields will be sent to the
980	// server regardless of whether the field is empty or not. This may be
981	// used to include empty fields in Patch requests.
982	ForceSendFields []string `json:"-"`
983
984	// NullFields is a list of field names (e.g. "MaxCompensation") to
985	// include in API requests with the JSON null value. By default, fields
986	// with empty values are omitted from API requests. However, any field
987	// with an empty value appearing in NullFields will be sent to the
988	// server as null. It is an error if a field in this list has a
989	// non-empty value. This may be used to include null fields in Patch
990	// requests.
991	NullFields []string `json:"-"`
992}
993
994func (s *CompensationRange) MarshalJSON() ([]byte, error) {
995	type NoMethod CompensationRange
996	raw := NoMethod(*s)
997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
998}
999
1000// CompleteQueryResponse: Output only. Response of auto-complete query.
1001type CompleteQueryResponse struct {
1002	// CompletionResults: Results of the matching job/company candidates.
1003	CompletionResults []*CompletionResult `json:"completionResults,omitempty"`
1004
1005	// Metadata: Additional information for the API invocation, such as the
1006	// request tracking id.
1007	Metadata *ResponseMetadata `json:"metadata,omitempty"`
1008
1009	// ServerResponse contains the HTTP response code and headers from the
1010	// server.
1011	googleapi.ServerResponse `json:"-"`
1012
1013	// ForceSendFields is a list of field names (e.g. "CompletionResults")
1014	// to unconditionally include in API requests. By default, fields with
1015	// empty values are omitted from API requests. However, any non-pointer,
1016	// non-interface field appearing in ForceSendFields will be sent to the
1017	// server regardless of whether the field is empty or not. This may be
1018	// used to include empty fields in Patch requests.
1019	ForceSendFields []string `json:"-"`
1020
1021	// NullFields is a list of field names (e.g. "CompletionResults") to
1022	// include in API requests with the JSON null value. By default, fields
1023	// with empty values are omitted from API requests. However, any field
1024	// with an empty value appearing in NullFields will be sent to the
1025	// server as null. It is an error if a field in this list has a
1026	// non-empty value. This may be used to include null fields in Patch
1027	// requests.
1028	NullFields []string `json:"-"`
1029}
1030
1031func (s *CompleteQueryResponse) MarshalJSON() ([]byte, error) {
1032	type NoMethod CompleteQueryResponse
1033	raw := NoMethod(*s)
1034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1035}
1036
1037// CompletionResult: Output only. Resource that represents completion
1038// results.
1039type CompletionResult struct {
1040	// ImageUri: The URI of the company image for
1041	// CompletionType.COMPANY_NAME.
1042	ImageUri string `json:"imageUri,omitempty"`
1043
1044	// Suggestion: The suggestion for the query.
1045	Suggestion string `json:"suggestion,omitempty"`
1046
1047	// Type: The completion topic.
1048	//
1049	// Possible values:
1050	//   "COMPLETION_TYPE_UNSPECIFIED" - Default value.
1051	//   "JOB_TITLE" - Only suggest job titles.
1052	//   "COMPANY_NAME" - Only suggest company names.
1053	//   "COMBINED" - Suggest both job titles and company names.
1054	Type string `json:"type,omitempty"`
1055
1056	// ForceSendFields is a list of field names (e.g. "ImageUri") to
1057	// unconditionally include in API requests. By default, fields with
1058	// empty values are omitted from API requests. However, any non-pointer,
1059	// non-interface field appearing in ForceSendFields will be sent to the
1060	// server regardless of whether the field is empty or not. This may be
1061	// used to include empty fields in Patch requests.
1062	ForceSendFields []string `json:"-"`
1063
1064	// NullFields is a list of field names (e.g. "ImageUri") to include in
1065	// API requests with the JSON null value. By default, fields with empty
1066	// values are omitted from API requests. However, any field with an
1067	// empty value appearing in NullFields will be sent to the server as
1068	// null. It is an error if a field in this list has a non-empty value.
1069	// This may be used to include null fields in Patch requests.
1070	NullFields []string `json:"-"`
1071}
1072
1073func (s *CompletionResult) MarshalJSON() ([]byte, error) {
1074	type NoMethod CompletionResult
1075	raw := NoMethod(*s)
1076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1077}
1078
1079// CreateClientEventRequest: The report event request.
1080type CreateClientEventRequest struct {
1081	// ClientEvent: Required. Events issued when end user interacts with
1082	// customer's application that uses Cloud Talent Solution.
1083	ClientEvent *ClientEvent `json:"clientEvent,omitempty"`
1084
1085	// ForceSendFields is a list of field names (e.g. "ClientEvent") to
1086	// unconditionally include in API requests. By default, fields with
1087	// empty values are omitted from API requests. However, any non-pointer,
1088	// non-interface field appearing in ForceSendFields will be sent to the
1089	// server regardless of whether the field is empty or not. This may be
1090	// used to include empty fields in Patch requests.
1091	ForceSendFields []string `json:"-"`
1092
1093	// NullFields is a list of field names (e.g. "ClientEvent") to include
1094	// in API requests with the JSON null value. By default, fields with
1095	// empty values are omitted from API requests. However, any field with
1096	// an empty value appearing in NullFields will be sent to the server as
1097	// null. It is an error if a field in this list has a non-empty value.
1098	// This may be used to include null fields in Patch requests.
1099	NullFields []string `json:"-"`
1100}
1101
1102func (s *CreateClientEventRequest) MarshalJSON() ([]byte, error) {
1103	type NoMethod CreateClientEventRequest
1104	raw := NoMethod(*s)
1105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1106}
1107
1108// CreateCompanyRequest: Input only. The Request of the CreateCompany
1109// method.
1110type CreateCompanyRequest struct {
1111	// Company: Required. The company to be created.
1112	Company *Company `json:"company,omitempty"`
1113
1114	// ForceSendFields is a list of field names (e.g. "Company") to
1115	// unconditionally include in API requests. By default, fields with
1116	// empty values are omitted from API requests. However, any non-pointer,
1117	// non-interface field appearing in ForceSendFields will be sent to the
1118	// server regardless of whether the field is empty or not. This may be
1119	// used to include empty fields in Patch requests.
1120	ForceSendFields []string `json:"-"`
1121
1122	// NullFields is a list of field names (e.g. "Company") to include in
1123	// API requests with the JSON null value. By default, fields with empty
1124	// values are omitted from API requests. However, any field with an
1125	// empty value appearing in NullFields will be sent to the server as
1126	// null. It is an error if a field in this list has a non-empty value.
1127	// This may be used to include null fields in Patch requests.
1128	NullFields []string `json:"-"`
1129}
1130
1131func (s *CreateCompanyRequest) MarshalJSON() ([]byte, error) {
1132	type NoMethod CreateCompanyRequest
1133	raw := NoMethod(*s)
1134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1135}
1136
1137// CreateJobRequest: Input only. Create job request.
1138type CreateJobRequest struct {
1139	// Job: Required. The Job to be created.
1140	Job *Job `json:"job,omitempty"`
1141
1142	// ForceSendFields is a list of field names (e.g. "Job") to
1143	// unconditionally include in API requests. By default, fields with
1144	// empty values are omitted from API requests. However, any non-pointer,
1145	// non-interface field appearing in ForceSendFields will be sent to the
1146	// server regardless of whether the field is empty or not. This may be
1147	// used to include empty fields in Patch requests.
1148	ForceSendFields []string `json:"-"`
1149
1150	// NullFields is a list of field names (e.g. "Job") to include in API
1151	// requests with the JSON null value. By default, fields with empty
1152	// values are omitted from API requests. However, any field with an
1153	// empty value appearing in NullFields will be sent to the server as
1154	// null. It is an error if a field in this list has a non-empty value.
1155	// This may be used to include null fields in Patch requests.
1156	NullFields []string `json:"-"`
1157}
1158
1159func (s *CreateJobRequest) MarshalJSON() ([]byte, error) {
1160	type NoMethod CreateJobRequest
1161	raw := NoMethod(*s)
1162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1163}
1164
1165// CustomAttribute: Custom attribute values that are either filterable
1166// or non-filterable.
1167type CustomAttribute struct {
1168	// Filterable: Optional. If the `filterable` flag is true, the custom
1169	// field values may be used for custom attribute filters
1170	// JobQuery.custom_attribute_filter. If false, these values may not be
1171	// used for custom attribute filters. Default is false.
1172	Filterable bool `json:"filterable,omitempty"`
1173
1174	// LongValues: Optional but exactly one of string_values or long_values
1175	// must be specified. This field is used to perform number range search.
1176	// (`EQ`, `GT`, `GE`, `LE`, `LT`) over filterable `long_value`.
1177	// Currently at most 1 long_values is supported.
1178	LongValues googleapi.Int64s `json:"longValues,omitempty"`
1179
1180	// StringValues: Optional but exactly one of string_values or
1181	// long_values must be specified. This field is used to perform a string
1182	// match (`CASE_SENSITIVE_MATCH` or `CASE_INSENSITIVE_MATCH`) search.
1183	// For filterable `string_value`s, a maximum total number of 200 values
1184	// is allowed, with each `string_value` has a byte size of no more than
1185	// 500B. For unfilterable `string_values`, the maximum total byte size
1186	// of unfilterable `string_values` is 50KB. Empty string is not allowed.
1187	StringValues []string `json:"stringValues,omitempty"`
1188
1189	// ForceSendFields is a list of field names (e.g. "Filterable") to
1190	// unconditionally include in API requests. By default, fields with
1191	// empty values are omitted from API requests. However, any non-pointer,
1192	// non-interface field appearing in ForceSendFields will be sent to the
1193	// server regardless of whether the field is empty or not. This may be
1194	// used to include empty fields in Patch requests.
1195	ForceSendFields []string `json:"-"`
1196
1197	// NullFields is a list of field names (e.g. "Filterable") to include in
1198	// API requests with the JSON null value. By default, fields with empty
1199	// values are omitted from API requests. However, any field with an
1200	// empty value appearing in NullFields will be sent to the server as
1201	// null. It is an error if a field in this list has a non-empty value.
1202	// This may be used to include null fields in Patch requests.
1203	NullFields []string `json:"-"`
1204}
1205
1206func (s *CustomAttribute) MarshalJSON() ([]byte, error) {
1207	type NoMethod CustomAttribute
1208	raw := NoMethod(*s)
1209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1210}
1211
1212// CustomAttributeHistogramRequest: Custom attributes histogram request.
1213// An error is thrown if neither string_value_histogram or
1214// long_value_histogram_bucketing_option has been defined.
1215type CustomAttributeHistogramRequest struct {
1216	// Key: Required. Specifies the custom field key to perform a histogram
1217	// on. If specified without `long_value_histogram_bucketing_option`,
1218	// histogram on string values of the given `key` is triggered, otherwise
1219	// histogram is performed on long values.
1220	Key string `json:"key,omitempty"`
1221
1222	// LongValueHistogramBucketingOption: Optional. Specifies buckets used
1223	// to perform a range histogram on Job's filterable long custom field
1224	// values, or min/max value requirements.
1225	LongValueHistogramBucketingOption *NumericBucketingOption `json:"longValueHistogramBucketingOption,omitempty"`
1226
1227	// StringValueHistogram: Optional. If set to true, the response includes
1228	// the histogram value for each key as a string.
1229	StringValueHistogram bool `json:"stringValueHistogram,omitempty"`
1230
1231	// ForceSendFields is a list of field names (e.g. "Key") to
1232	// unconditionally include in API requests. By default, fields with
1233	// empty values are omitted from API requests. However, any non-pointer,
1234	// non-interface field appearing in ForceSendFields will be sent to the
1235	// server regardless of whether the field is empty or not. This may be
1236	// used to include empty fields in Patch requests.
1237	ForceSendFields []string `json:"-"`
1238
1239	// NullFields is a list of field names (e.g. "Key") to include in API
1240	// requests with the JSON null value. By default, fields with empty
1241	// values are omitted from API requests. However, any field with an
1242	// empty value appearing in NullFields will be sent to the server as
1243	// null. It is an error if a field in this list has a non-empty value.
1244	// This may be used to include null fields in Patch requests.
1245	NullFields []string `json:"-"`
1246}
1247
1248func (s *CustomAttributeHistogramRequest) MarshalJSON() ([]byte, error) {
1249	type NoMethod CustomAttributeHistogramRequest
1250	raw := NoMethod(*s)
1251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1252}
1253
1254// CustomAttributeHistogramResult: Output only. Custom attribute
1255// histogram result.
1256type CustomAttributeHistogramResult struct {
1257	// Key: Stores the key of custom attribute the histogram is performed
1258	// on.
1259	Key string `json:"key,omitempty"`
1260
1261	// LongValueHistogramResult: Stores bucketed histogram counting result
1262	// or min/max values for custom attribute long values associated with
1263	// `key`.
1264	LongValueHistogramResult *NumericBucketingResult `json:"longValueHistogramResult,omitempty"`
1265
1266	// StringValueHistogramResult: Stores a map from the values of string
1267	// custom field associated with `key` to the number of jobs with that
1268	// value in this histogram result.
1269	StringValueHistogramResult map[string]int64 `json:"stringValueHistogramResult,omitempty"`
1270
1271	// ForceSendFields is a list of field names (e.g. "Key") to
1272	// unconditionally include in API requests. By default, fields with
1273	// empty values are omitted from API requests. However, any non-pointer,
1274	// non-interface field appearing in ForceSendFields will be sent to the
1275	// server regardless of whether the field is empty or not. This may be
1276	// used to include empty fields in Patch requests.
1277	ForceSendFields []string `json:"-"`
1278
1279	// NullFields is a list of field names (e.g. "Key") to include in API
1280	// requests with the JSON null value. By default, fields with empty
1281	// values are omitted from API requests. However, any field with an
1282	// empty value appearing in NullFields will be sent to the server as
1283	// null. It is an error if a field in this list has a non-empty value.
1284	// This may be used to include null fields in Patch requests.
1285	NullFields []string `json:"-"`
1286}
1287
1288func (s *CustomAttributeHistogramResult) MarshalJSON() ([]byte, error) {
1289	type NoMethod CustomAttributeHistogramResult
1290	raw := NoMethod(*s)
1291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1292}
1293
1294// DeviceInfo: Device information collected from the job seeker,
1295// candidate, or other entity conducting the job search. Providing this
1296// information improves the quality of the search results across
1297// devices.
1298type DeviceInfo struct {
1299	// DeviceType: Optional. Type of the device.
1300	//
1301	// Possible values:
1302	//   "DEVICE_TYPE_UNSPECIFIED" - The device type isn't specified.
1303	//   "WEB" - A desktop web browser, such as, Chrome, Firefox, Safari, or
1304	// Internet Explorer)
1305	//   "MOBILE_WEB" - A mobile device web browser, such as a phone or
1306	// tablet with a Chrome browser.
1307	//   "ANDROID" - An Android device native application.
1308	//   "IOS" - An iOS device native application.
1309	//   "BOT" - A bot, as opposed to a device operated by human beings,
1310	// such as a web crawler.
1311	//   "OTHER" - Other devices types.
1312	DeviceType string `json:"deviceType,omitempty"`
1313
1314	// Id: Optional. A device-specific ID. The ID must be a unique
1315	// identifier that distinguishes the device from other devices.
1316	Id string `json:"id,omitempty"`
1317
1318	// ForceSendFields is a list of field names (e.g. "DeviceType") to
1319	// unconditionally include in API requests. By default, fields with
1320	// empty values are omitted from API requests. However, any non-pointer,
1321	// non-interface field appearing in ForceSendFields will be sent to the
1322	// server regardless of whether the field is empty or not. This may be
1323	// used to include empty fields in Patch requests.
1324	ForceSendFields []string `json:"-"`
1325
1326	// NullFields is a list of field names (e.g. "DeviceType") to include in
1327	// API requests with the JSON null value. By default, fields with empty
1328	// values are omitted from API requests. However, any field with an
1329	// empty value appearing in NullFields will be sent to the server as
1330	// null. It is an error if a field in this list has a non-empty value.
1331	// This may be used to include null fields in Patch requests.
1332	NullFields []string `json:"-"`
1333}
1334
1335func (s *DeviceInfo) MarshalJSON() ([]byte, error) {
1336	type NoMethod DeviceInfo
1337	raw := NoMethod(*s)
1338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1339}
1340
1341// Empty: A generic empty message that you can re-use to avoid defining
1342// duplicated empty messages in your APIs. A typical example is to use
1343// it as the request or the response type of an API method. For
1344// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
1345// (google.protobuf.Empty); } The JSON representation for `Empty` is
1346// empty JSON object `{}`.
1347type Empty struct {
1348	// ServerResponse contains the HTTP response code and headers from the
1349	// server.
1350	googleapi.ServerResponse `json:"-"`
1351}
1352
1353// HistogramFacets: Input only. Histogram facets to be specified in
1354// SearchJobsRequest.
1355type HistogramFacets struct {
1356	// CompensationHistogramFacets: Optional. Specifies compensation
1357	// field-based histogram requests. Duplicate values of
1358	// CompensationHistogramRequest.type are not allowed.
1359	CompensationHistogramFacets []*CompensationHistogramRequest `json:"compensationHistogramFacets,omitempty"`
1360
1361	// CustomAttributeHistogramFacets: Optional. Specifies the custom
1362	// attributes histogram requests. Duplicate values of
1363	// CustomAttributeHistogramRequest.key are not allowed.
1364	CustomAttributeHistogramFacets []*CustomAttributeHistogramRequest `json:"customAttributeHistogramFacets,omitempty"`
1365
1366	// SimpleHistogramFacets: Optional. Specifies the simple type of
1367	// histogram facets, for example, `COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.
1368	//
1369	// Possible values:
1370	//   "SEARCH_TYPE_UNSPECIFIED" - The default value if search type is not
1371	// specified.
1372	//   "COMPANY_ID" - Filter by the company id field.
1373	//   "EMPLOYMENT_TYPE" - Filter by the employment type field, such as
1374	// `FULL_TIME` or `PART_TIME`.
1375	//   "COMPANY_SIZE" - Filter by the company size type field, such as
1376	// `BIG`, `SMALL` or `BIGGER`.
1377	//   "DATE_PUBLISHED" - Filter by the date published field. Possible
1378	// return values are: * PAST_24_HOURS (The past 24 hours) * PAST_3_DAYS
1379	// (The past 3 days) * PAST_WEEK (The past 7 days) * PAST_MONTH (The
1380	// past 30 days) * PAST_YEAR (The past 365 days)
1381	//   "EDUCATION_LEVEL" - Filter by the required education level of the
1382	// job.
1383	//   "EXPERIENCE_LEVEL" - Filter by the required experience level of the
1384	// job.
1385	//   "ADMIN_1" - Filter by Admin1, which is a global placeholder for
1386	// referring to state, province, or the particular term a country uses
1387	// to define the geographic structure below the country level. Examples
1388	// include states codes such as "CA", "IL", "NY", and provinces, such as
1389	// "BC".
1390	//   "COUNTRY" - Filter by the country code of job, such as US, JP, FR.
1391	//   "CITY" - Filter by the "city name", "Admin1 code", for example,
1392	// "Mountain View, CA" or "New York, NY".
1393	//   "LOCALE" - Filter by the locale field of a job, such as "en-US",
1394	// "fr-FR". This is the BCP-47 language code, such as "en-US" or
1395	// "sr-Latn". For more information, see [Tags for Identifying
1396	// Languages](https://tools.ietf.org/html/bcp47).
1397	//   "LANGUAGE" - Filter by the language code portion of the locale
1398	// field, such as "en" or "fr".
1399	//   "CATEGORY" - Filter by the Category.
1400	//   "CITY_COORDINATE" - Filter by the city center GPS coordinate
1401	// (latitude and longitude), for example, 37.4038522,-122.0987765. Since
1402	// the coordinates of a city center can change, clients may need to
1403	// refresh them periodically.
1404	//   "ADMIN_1_COUNTRY" - A combination of state or province code with a
1405	// country code. This field differs from `JOB_ADMIN1`, which can be used
1406	// in multiple countries.
1407	//   "COMPANY_DISPLAY_NAME" - Company display name.
1408	//   "BASE_COMPENSATION_UNIT" - Base compensation unit.
1409	SimpleHistogramFacets []string `json:"simpleHistogramFacets,omitempty"`
1410
1411	// ForceSendFields is a list of field names (e.g.
1412	// "CompensationHistogramFacets") to unconditionally include in API
1413	// requests. By default, fields with empty values are omitted from API
1414	// requests. However, any non-pointer, non-interface field appearing in
1415	// ForceSendFields will be sent to the server regardless of whether the
1416	// field is empty or not. This may be used to include empty fields in
1417	// Patch requests.
1418	ForceSendFields []string `json:"-"`
1419
1420	// NullFields is a list of field names (e.g.
1421	// "CompensationHistogramFacets") to include in API requests with the
1422	// JSON null value. By default, fields with empty values are omitted
1423	// from API requests. However, any field with an empty value appearing
1424	// in NullFields will be sent to the server as null. It is an error if a
1425	// field in this list has a non-empty value. This may be used to include
1426	// null fields in Patch requests.
1427	NullFields []string `json:"-"`
1428}
1429
1430func (s *HistogramFacets) MarshalJSON() ([]byte, error) {
1431	type NoMethod HistogramFacets
1432	raw := NoMethod(*s)
1433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1434}
1435
1436// HistogramResult: Output only. Result of a histogram call. The
1437// response contains the histogram map for the search type specified by
1438// HistogramResult.field. The response is a map of each filter value to
1439// the corresponding count of jobs for that filter.
1440type HistogramResult struct {
1441	// SearchType: The Histogram search filters.
1442	//
1443	// Possible values:
1444	//   "SEARCH_TYPE_UNSPECIFIED" - The default value if search type is not
1445	// specified.
1446	//   "COMPANY_ID" - Filter by the company id field.
1447	//   "EMPLOYMENT_TYPE" - Filter by the employment type field, such as
1448	// `FULL_TIME` or `PART_TIME`.
1449	//   "COMPANY_SIZE" - Filter by the company size type field, such as
1450	// `BIG`, `SMALL` or `BIGGER`.
1451	//   "DATE_PUBLISHED" - Filter by the date published field. Possible
1452	// return values are: * PAST_24_HOURS (The past 24 hours) * PAST_3_DAYS
1453	// (The past 3 days) * PAST_WEEK (The past 7 days) * PAST_MONTH (The
1454	// past 30 days) * PAST_YEAR (The past 365 days)
1455	//   "EDUCATION_LEVEL" - Filter by the required education level of the
1456	// job.
1457	//   "EXPERIENCE_LEVEL" - Filter by the required experience level of the
1458	// job.
1459	//   "ADMIN_1" - Filter by Admin1, which is a global placeholder for
1460	// referring to state, province, or the particular term a country uses
1461	// to define the geographic structure below the country level. Examples
1462	// include states codes such as "CA", "IL", "NY", and provinces, such as
1463	// "BC".
1464	//   "COUNTRY" - Filter by the country code of job, such as US, JP, FR.
1465	//   "CITY" - Filter by the "city name", "Admin1 code", for example,
1466	// "Mountain View, CA" or "New York, NY".
1467	//   "LOCALE" - Filter by the locale field of a job, such as "en-US",
1468	// "fr-FR". This is the BCP-47 language code, such as "en-US" or
1469	// "sr-Latn". For more information, see [Tags for Identifying
1470	// Languages](https://tools.ietf.org/html/bcp47).
1471	//   "LANGUAGE" - Filter by the language code portion of the locale
1472	// field, such as "en" or "fr".
1473	//   "CATEGORY" - Filter by the Category.
1474	//   "CITY_COORDINATE" - Filter by the city center GPS coordinate
1475	// (latitude and longitude), for example, 37.4038522,-122.0987765. Since
1476	// the coordinates of a city center can change, clients may need to
1477	// refresh them periodically.
1478	//   "ADMIN_1_COUNTRY" - A combination of state or province code with a
1479	// country code. This field differs from `JOB_ADMIN1`, which can be used
1480	// in multiple countries.
1481	//   "COMPANY_DISPLAY_NAME" - Company display name.
1482	//   "BASE_COMPENSATION_UNIT" - Base compensation unit.
1483	SearchType string `json:"searchType,omitempty"`
1484
1485	// Values: A map from the values of field to the number of jobs with
1486	// that value in this search result. Key: search type (filter names,
1487	// such as the companyName). Values: the count of jobs that match the
1488	// filter for this search.
1489	Values map[string]int64 `json:"values,omitempty"`
1490
1491	// ForceSendFields is a list of field names (e.g. "SearchType") to
1492	// unconditionally include in API requests. By default, fields with
1493	// empty values are omitted from API requests. However, any non-pointer,
1494	// non-interface field appearing in ForceSendFields will be sent to the
1495	// server regardless of whether the field is empty or not. This may be
1496	// used to include empty fields in Patch requests.
1497	ForceSendFields []string `json:"-"`
1498
1499	// NullFields is a list of field names (e.g. "SearchType") to include in
1500	// API requests with the JSON null value. By default, fields with empty
1501	// values are omitted from API requests. However, any field with an
1502	// empty value appearing in NullFields will be sent to the server as
1503	// null. It is an error if a field in this list has a non-empty value.
1504	// This may be used to include null fields in Patch requests.
1505	NullFields []string `json:"-"`
1506}
1507
1508func (s *HistogramResult) MarshalJSON() ([]byte, error) {
1509	type NoMethod HistogramResult
1510	raw := NoMethod(*s)
1511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1512}
1513
1514// HistogramResults: Output only. Histogram results that match
1515// HistogramFacets specified in SearchJobsRequest.
1516type HistogramResults struct {
1517	// CompensationHistogramResults: Specifies compensation field-based
1518	// histogram results that match
1519	// HistogramFacets.compensation_histogram_requests.
1520	CompensationHistogramResults []*CompensationHistogramResult `json:"compensationHistogramResults,omitempty"`
1521
1522	// CustomAttributeHistogramResults: Specifies histogram results for
1523	// custom attributes that match
1524	// HistogramFacets.custom_attribute_histogram_facets.
1525	CustomAttributeHistogramResults []*CustomAttributeHistogramResult `json:"customAttributeHistogramResults,omitempty"`
1526
1527	// SimpleHistogramResults: Specifies histogram results that matches
1528	// HistogramFacets.simple_histogram_facets.
1529	SimpleHistogramResults []*HistogramResult `json:"simpleHistogramResults,omitempty"`
1530
1531	// ForceSendFields is a list of field names (e.g.
1532	// "CompensationHistogramResults") to unconditionally include in API
1533	// requests. By default, fields with empty values are omitted from API
1534	// requests. However, any non-pointer, non-interface field appearing in
1535	// ForceSendFields will be sent to the server regardless of whether the
1536	// field is empty or not. This may be used to include empty fields in
1537	// Patch requests.
1538	ForceSendFields []string `json:"-"`
1539
1540	// NullFields is a list of field names (e.g.
1541	// "CompensationHistogramResults") to include in API requests with the
1542	// JSON null value. By default, fields with empty values are omitted
1543	// from API requests. However, any field with an empty value appearing
1544	// in NullFields will be sent to the server as null. It is an error if a
1545	// field in this list has a non-empty value. This may be used to include
1546	// null fields in Patch requests.
1547	NullFields []string `json:"-"`
1548}
1549
1550func (s *HistogramResults) MarshalJSON() ([]byte, error) {
1551	type NoMethod HistogramResults
1552	raw := NoMethod(*s)
1553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1554}
1555
1556// Job: A Job resource represents a job posting (also referred to as a
1557// "job listing" or "job requisition"). A job belongs to a Company,
1558// which is the hiring entity responsible for the job.
1559type Job struct {
1560	// Addresses: Optional but strongly recommended for the best service
1561	// experience. Location(s) where the employer is looking to hire for
1562	// this job posting. Specifying the full street address(es) of the
1563	// hiring location enables better API results, especially job searches
1564	// by commute time. At most 50 locations are allowed for best search
1565	// performance. If a job has more locations, it is suggested to split it
1566	// into multiple jobs with unique requisition_ids (e.g. 'ReqA' becomes
1567	// 'ReqA-1', 'ReqA-2', etc.) as multiple jobs with the same
1568	// company_name, language_code and requisition_id are not allowed. If
1569	// the original requisition_id must be preserved, a custom field should
1570	// be used for storage. It is also suggested to group the locations that
1571	// close to each other in the same job for better search experience. The
1572	// maximum number of allowed characters is 500.
1573	Addresses []string `json:"addresses,omitempty"`
1574
1575	// ApplicationInfo: Required. At least one field within ApplicationInfo
1576	// must be specified. Job application information.
1577	ApplicationInfo *ApplicationInfo `json:"applicationInfo,omitempty"`
1578
1579	// CompanyDisplayName: Output only. Display name of the company listing
1580	// the job.
1581	CompanyDisplayName string `json:"companyDisplayName,omitempty"`
1582
1583	// CompanyName: Required. The resource name of the company listing the
1584	// job, such as "projects/api-test-project/companies/foo".
1585	CompanyName string `json:"companyName,omitempty"`
1586
1587	// CompensationInfo: Optional. Job compensation information.
1588	CompensationInfo *CompensationInfo `json:"compensationInfo,omitempty"`
1589
1590	// CustomAttributes: Optional. A map of fields to hold both filterable
1591	// and non-filterable custom job attributes that are not covered by the
1592	// provided structured fields. The keys of the map are strings up to 64
1593	// bytes and must match the pattern: a-zA-Z*. For example, key0LikeThis
1594	// or KEY_1_LIKE_THIS. At most 100 filterable and at most 100
1595	// unfilterable keys are supported. For filterable `string_values`,
1596	// across all keys at most 200 values are allowed, with each string no
1597	// more than 255 characters. For unfilterable `string_values`, the
1598	// maximum total size of `string_values` across all keys is 50KB.
1599	CustomAttributes map[string]CustomAttribute `json:"customAttributes,omitempty"`
1600
1601	// DegreeTypes: Optional. The desired education degrees for the job,
1602	// such as Bachelors, Masters.
1603	//
1604	// Possible values:
1605	//   "DEGREE_TYPE_UNSPECIFIED" - Default value. Represents no degree, or
1606	// early childhood education. Maps to ISCED code 0. Ex) Kindergarten
1607	//   "PRIMARY_EDUCATION" - Primary education which is typically the
1608	// first stage of compulsory education. ISCED code 1. Ex) Elementary
1609	// school
1610	//   "LOWER_SECONDARY_EDUCATION" - Lower secondary education; First
1611	// stage of secondary education building on primary education, typically
1612	// with a more subject-oriented curriculum. ISCED code 2. Ex) Middle
1613	// school
1614	//   "UPPER_SECONDARY_EDUCATION" - Middle education; Second/final stage
1615	// of secondary education preparing for tertiary education and/or
1616	// providing skills relevant to employment. Usually with an increased
1617	// range of subject options and streams. ISCED code 3. Ex) High school
1618	//   "ADULT_REMEDIAL_EDUCATION" - Adult Remedial Education; Programmes
1619	// providing learning experiences that build on secondary education and
1620	// prepare for labour market entry and/or tertiary education. The
1621	// content is broader than secondary but not as complex as tertiary
1622	// education. ISCED code 4.
1623	//   "ASSOCIATES_OR_EQUIVALENT" - Associate's or equivalent; Short first
1624	// tertiary programmes that are typically practically-based,
1625	// occupationally-specific and prepare for labour market entry. These
1626	// programmes may also provide a pathway to other tertiary programmes.
1627	// ISCED code 5.
1628	//   "BACHELORS_OR_EQUIVALENT" - Bachelor's or equivalent; Programmes
1629	// designed to provide intermediate academic and/or professional
1630	// knowledge, skills and competencies leading to a first tertiary degree
1631	// or equivalent qualification. ISCED code 6.
1632	//   "MASTERS_OR_EQUIVALENT" - Master's or equivalent; Programmes
1633	// designed to provide advanced academic and/or professional knowledge,
1634	// skills and competencies leading to a second tertiary degree or
1635	// equivalent qualification. ISCED code 7.
1636	//   "DOCTORAL_OR_EQUIVALENT" - Doctoral or equivalent; Programmes
1637	// designed primarily to lead to an advanced research qualification,
1638	// usually concluding with the submission and defense of a substantive
1639	// dissertation of publishable quality based on original research. ISCED
1640	// code 8.
1641	DegreeTypes []string `json:"degreeTypes,omitempty"`
1642
1643	// Department: Optional. The department or functional area within the
1644	// company with the open position. The maximum number of allowed
1645	// characters is 255.
1646	Department string `json:"department,omitempty"`
1647
1648	// DerivedInfo: Output only. Derived details about the job posting.
1649	DerivedInfo *JobDerivedInfo `json:"derivedInfo,omitempty"`
1650
1651	// Description: Required. The description of the job, which typically
1652	// includes a multi-paragraph description of the company and related
1653	// information. Separate fields are provided on the job object for
1654	// responsibilities, qualifications, and other job characteristics. Use
1655	// of these separate job fields is recommended. This field accepts and
1656	// sanitizes HTML input, and also accepts bold, italic, ordered list,
1657	// and unordered list markup tags. The maximum number of allowed
1658	// characters is 100,000.
1659	Description string `json:"description,omitempty"`
1660
1661	// EmploymentTypes: Optional. The employment type(s) of a job, for
1662	// example, full time or part time.
1663	//
1664	// Possible values:
1665	//   "EMPLOYMENT_TYPE_UNSPECIFIED" - The default value if the employment
1666	// type is not specified.
1667	//   "FULL_TIME" - The job requires working a number of hours that
1668	// constitute full time employment, typically 40 or more hours per week.
1669	//   "PART_TIME" - The job entails working fewer hours than a full time
1670	// job, typically less than 40 hours a week.
1671	//   "CONTRACTOR" - The job is offered as a contracted, as opposed to a
1672	// salaried employee, position.
1673	//   "CONTRACT_TO_HIRE" - The job is offered as a contracted position
1674	// with the understanding that it's converted into a full-time position
1675	// at the end of the contract. Jobs of this type are also returned by a
1676	// search for EmploymentType.CONTRACTOR jobs.
1677	//   "TEMPORARY" - The job is offered as a temporary employment
1678	// opportunity, usually a short-term engagement.
1679	//   "INTERN" - The job is a fixed-term opportunity for students or
1680	// entry-level job seekers to obtain on-the-job training, typically
1681	// offered as a summer position.
1682	//   "VOLUNTEER" - The is an opportunity for an individual to volunteer,
1683	// where there's no expectation of compensation for the provided
1684	// services.
1685	//   "PER_DIEM" - The job requires an employee to work on an as-needed
1686	// basis with a flexible schedule.
1687	//   "FLY_IN_FLY_OUT" - The job involves employing people in remote
1688	// areas and flying them temporarily to the work site instead of
1689	// relocating employees and their families permanently.
1690	//   "OTHER_EMPLOYMENT_TYPE" - The job does not fit any of the other
1691	// listed types.
1692	EmploymentTypes []string `json:"employmentTypes,omitempty"`
1693
1694	// Incentives: Optional. A description of bonus, commission, and other
1695	// compensation incentives associated with the job not including salary
1696	// or pay. The maximum number of allowed characters is 10,000.
1697	Incentives string `json:"incentives,omitempty"`
1698
1699	// JobBenefits: Optional. The benefits included with the job.
1700	//
1701	// Possible values:
1702	//   "JOB_BENEFIT_UNSPECIFIED" - Default value if the type is not
1703	// specified.
1704	//   "CHILD_CARE" - The job includes access to programs that support
1705	// child care, such as daycare.
1706	//   "DENTAL" - The job includes dental services covered by a dental
1707	// insurance plan.
1708	//   "DOMESTIC_PARTNER" - The job offers specific benefits to domestic
1709	// partners.
1710	//   "FLEXIBLE_HOURS" - The job allows for a flexible work schedule.
1711	//   "MEDICAL" - The job includes health services covered by a medical
1712	// insurance plan.
1713	//   "LIFE_INSURANCE" - The job includes a life insurance plan provided
1714	// by the employer or available for purchase by the employee.
1715	//   "PARENTAL_LEAVE" - The job allows for a leave of absence to a
1716	// parent to care for a newborn child.
1717	//   "RETIREMENT_PLAN" - The job includes a workplace retirement plan
1718	// provided by the employer or available for purchase by the employee.
1719	//   "SICK_DAYS" - The job allows for paid time off due to illness.
1720	//   "VACATION" - The job includes paid time off for vacation.
1721	//   "VISION" - The job includes vision services covered by a vision
1722	// insurance plan.
1723	JobBenefits []string `json:"jobBenefits,omitempty"`
1724
1725	// JobEndTime: Optional. The end timestamp of the job. Typically this
1726	// field is used for contracting engagements. Invalid timestamps are
1727	// ignored.
1728	JobEndTime string `json:"jobEndTime,omitempty"`
1729
1730	// JobLevel: Optional. The experience level associated with the job,
1731	// such as "Entry Level".
1732	//
1733	// Possible values:
1734	//   "JOB_LEVEL_UNSPECIFIED" - The default value if the level is not
1735	// specified.
1736	//   "ENTRY_LEVEL" - Entry-level individual contributors, typically with
1737	// less than 2 years of experience in a similar role. Includes interns.
1738	//   "EXPERIENCED" - Experienced individual contributors, typically with
1739	// 2+ years of experience in a similar role.
1740	//   "MANAGER" - Entry- to mid-level managers responsible for managing a
1741	// team of people.
1742	//   "DIRECTOR" - Senior-level managers responsible for managing teams
1743	// of managers.
1744	//   "EXECUTIVE" - Executive-level managers and above, including C-level
1745	// positions.
1746	JobLevel string `json:"jobLevel,omitempty"`
1747
1748	// JobStartTime: Optional. The start timestamp of the job in UTC time
1749	// zone. Typically this field is used for contracting engagements.
1750	// Invalid timestamps are ignored.
1751	JobStartTime string `json:"jobStartTime,omitempty"`
1752
1753	// LanguageCode: Optional. The language of the posting. This field is
1754	// distinct from any requirements for fluency that are associated with
1755	// the job. Language codes must be in BCP-47 format, such as "en-US" or
1756	// "sr-Latn". For more information, see Tags for Identifying Languages
1757	// (https://tools.ietf.org/html/bcp47){: class="external"
1758	// target="_blank" }. If this field is unspecified and Job.description
1759	// is present, detected language code based on Job.description is
1760	// assigned, otherwise defaults to 'en_US'.
1761	LanguageCode string `json:"languageCode,omitempty"`
1762
1763	// Name: Required during job update. The resource name for the job. This
1764	// is generated by the service when a job is created. The format is
1765	// "projects/{project_id}/jobs/{job_id}", for example,
1766	// "projects/api-test-project/jobs/1234". Use of this field in job
1767	// queries and API calls is preferred over the use of requisition_id
1768	// since this value is unique.
1769	Name string `json:"name,omitempty"`
1770
1771	// PostingCreateTime: Output only. The timestamp when this job posting
1772	// was created.
1773	PostingCreateTime string `json:"postingCreateTime,omitempty"`
1774
1775	// PostingExpireTime: Optional but strongly recommended for the best
1776	// service experience. The expiration timestamp of the job. After this
1777	// timestamp, the job is marked as expired, and it no longer appears in
1778	// search results. The expired job can't be deleted or listed by the
1779	// DeleteJob and ListJobs APIs, but it can be retrieved with the GetJob
1780	// API or updated with the UpdateJob API. An expired job can be updated
1781	// and opened again by using a future expiration timestamp. Updating an
1782	// expired job fails if there is another existing open job with same
1783	// company_name, language_code and requisition_id. The expired jobs are
1784	// retained in our system for 90 days. However, the overall expired job
1785	// count cannot exceed 3 times the maximum of open jobs count over the
1786	// past week, otherwise jobs with earlier expire time are cleaned first.
1787	// Expired jobs are no longer accessible after they are cleaned out.
1788	// Invalid timestamps are ignored, and treated as expire time not
1789	// provided. Timestamp before the instant request is made is considered
1790	// valid, the job will be treated as expired immediately. If this value
1791	// is not provided at the time of job creation or is invalid, the job
1792	// posting expires after 30 days from the job's creation time. For
1793	// example, if the job was created on 2017/01/01 13:00AM UTC with an
1794	// unspecified expiration date, the job expires after 2017/01/31 13:00AM
1795	// UTC. If this value is not provided on job update, it depends on the
1796	// field masks set by UpdateJobRequest.update_mask. If the field masks
1797	// include expiry_time, or the masks are empty meaning that every field
1798	// is updated, the job posting expires after 30 days from the job's last
1799	// update time. Otherwise the expiration date isn't updated.
1800	PostingExpireTime string `json:"postingExpireTime,omitempty"`
1801
1802	// PostingPublishTime: Optional. The timestamp this job posting was most
1803	// recently published. The default value is the time the request arrives
1804	// at the server. Invalid timestamps are ignored.
1805	PostingPublishTime string `json:"postingPublishTime,omitempty"`
1806
1807	// PostingRegion: Optional. The job PostingRegion (for example, state,
1808	// country) throughout which the job is available. If this field is set,
1809	// a LocationFilter in a search query within the job region finds this
1810	// job posting if an exact location match isn't specified. If this field
1811	// is set to PostingRegion.NATION or PostingRegion.ADMINISTRATIVE_AREA,
1812	// setting job Job.addresses to the same location level as this field is
1813	// strongly recommended.
1814	//
1815	// Possible values:
1816	//   "POSTING_REGION_UNSPECIFIED" - If the region is unspecified, the
1817	// job is only returned if it matches the LocationFilter.
1818	//   "ADMINISTRATIVE_AREA" - In addition to exact location matching, job
1819	// posting is returned when the LocationFilter in the search query is in
1820	// the same administrative area as the returned job posting. For
1821	// example, if a `ADMINISTRATIVE_AREA` job is posted in "CA, USA", it's
1822	// returned if LocationFilter has "Mountain View". Administrative area
1823	// refers to top-level administrative subdivision of this country. For
1824	// example, US state, IT region, UK constituent nation and JP
1825	// prefecture.
1826	//   "NATION" - In addition to exact location matching, job is returned
1827	// when LocationFilter in search query is in the same country as this
1828	// job. For example, if a `NATION_WIDE` job is posted in "USA", it's
1829	// returned if LocationFilter has 'Mountain View'.
1830	//   "TELECOMMUTE" - Job allows employees to work remotely
1831	// (telecommute). If locations are provided with this value, the job is
1832	// considered as having a location, but telecommuting is allowed.
1833	PostingRegion string `json:"postingRegion,omitempty"`
1834
1835	// PostingUpdateTime: Output only. The timestamp when this job posting
1836	// was last updated.
1837	PostingUpdateTime string `json:"postingUpdateTime,omitempty"`
1838
1839	// ProcessingOptions: Optional. Options for job processing.
1840	ProcessingOptions *ProcessingOptions `json:"processingOptions,omitempty"`
1841
1842	// PromotionValue: Optional. A promotion value of the job, as determined
1843	// by the client. The value determines the sort order of the jobs
1844	// returned when searching for jobs using the featured jobs search call,
1845	// with higher promotional values being returned first and ties being
1846	// resolved by relevance sort. Only the jobs with a promotionValue >0
1847	// are returned in a FEATURED_JOB_SEARCH. Default value is 0, and
1848	// negative values are treated as 0.
1849	PromotionValue int64 `json:"promotionValue,omitempty"`
1850
1851	// Qualifications: Optional. A description of the qualifications
1852	// required to perform the job. The use of this field is recommended as
1853	// an alternative to using the more general description field. This
1854	// field accepts and sanitizes HTML input, and also accepts bold,
1855	// italic, ordered list, and unordered list markup tags. The maximum
1856	// number of allowed characters is 10,000.
1857	Qualifications string `json:"qualifications,omitempty"`
1858
1859	// RequisitionId: Required. The requisition ID, also referred to as the
1860	// posting ID, assigned by the client to identify a job. This field is
1861	// intended to be used by clients for client identification and tracking
1862	// of postings. A job is not allowed to be created if there is another
1863	// job with the same [company_name], language_code and requisition_id.
1864	// The maximum number of allowed characters is 255.
1865	RequisitionId string `json:"requisitionId,omitempty"`
1866
1867	// Responsibilities: Optional. A description of job responsibilities.
1868	// The use of this field is recommended as an alternative to using the
1869	// more general description field. This field accepts and sanitizes HTML
1870	// input, and also accepts bold, italic, ordered list, and unordered
1871	// list markup tags. The maximum number of allowed characters is 10,000.
1872	Responsibilities string `json:"responsibilities,omitempty"`
1873
1874	// Title: Required. The title of the job, such as "Software Engineer"
1875	// The maximum number of allowed characters is 500.
1876	Title string `json:"title,omitempty"`
1877
1878	// Visibility: Deprecated. The job is only visible to the owner. The
1879	// visibility of the job. Defaults to Visibility.ACCOUNT_ONLY if not
1880	// specified.
1881	//
1882	// Possible values:
1883	//   "VISIBILITY_UNSPECIFIED" - Default value.
1884	//   "ACCOUNT_ONLY" - The resource is only visible to the GCP account
1885	// who owns it.
1886	//   "SHARED_WITH_GOOGLE" - The resource is visible to the owner and may
1887	// be visible to other applications and processes at Google.
1888	//   "SHARED_WITH_PUBLIC" - The resource is visible to the owner and may
1889	// be visible to all other API clients.
1890	Visibility string `json:"visibility,omitempty"`
1891
1892	// ServerResponse contains the HTTP response code and headers from the
1893	// server.
1894	googleapi.ServerResponse `json:"-"`
1895
1896	// ForceSendFields is a list of field names (e.g. "Addresses") to
1897	// unconditionally include in API requests. By default, fields with
1898	// empty values are omitted from API requests. However, any non-pointer,
1899	// non-interface field appearing in ForceSendFields will be sent to the
1900	// server regardless of whether the field is empty or not. This may be
1901	// used to include empty fields in Patch requests.
1902	ForceSendFields []string `json:"-"`
1903
1904	// NullFields is a list of field names (e.g. "Addresses") to include in
1905	// API requests with the JSON null value. By default, fields with empty
1906	// values are omitted from API requests. However, any field with an
1907	// empty value appearing in NullFields will be sent to the server as
1908	// null. It is an error if a field in this list has a non-empty value.
1909	// This may be used to include null fields in Patch requests.
1910	NullFields []string `json:"-"`
1911}
1912
1913func (s *Job) MarshalJSON() ([]byte, error) {
1914	type NoMethod Job
1915	raw := NoMethod(*s)
1916	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1917}
1918
1919// JobDerivedInfo: Output only. Derived details about the job posting.
1920type JobDerivedInfo struct {
1921	// JobCategories: Job categories derived from Job.title and
1922	// Job.description.
1923	//
1924	// Possible values:
1925	//   "JOB_CATEGORY_UNSPECIFIED" - The default value if the category
1926	// isn't specified.
1927	//   "ACCOUNTING_AND_FINANCE" - An accounting and finance job, such as
1928	// an Accountant.
1929	//   "ADMINISTRATIVE_AND_OFFICE" - An administrative and office job,
1930	// such as an Administrative Assistant.
1931	//   "ADVERTISING_AND_MARKETING" - An advertising and marketing job,
1932	// such as Marketing Manager.
1933	//   "ANIMAL_CARE" - An animal care job, such as Veterinarian.
1934	//   "ART_FASHION_AND_DESIGN" - An art, fashion, or design job, such as
1935	// Designer.
1936	//   "BUSINESS_OPERATIONS" - A business operations job, such as Business
1937	// Operations Manager.
1938	//   "CLEANING_AND_FACILITIES" - A cleaning and facilities job, such as
1939	// Custodial Staff.
1940	//   "COMPUTER_AND_IT" - A computer and IT job, such as Systems
1941	// Administrator.
1942	//   "CONSTRUCTION" - A construction job, such as General Laborer.
1943	//   "CUSTOMER_SERVICE" - A customer service job, such s Cashier.
1944	//   "EDUCATION" - An education job, such as School Teacher.
1945	//   "ENTERTAINMENT_AND_TRAVEL" - An entertainment and travel job, such
1946	// as Flight Attendant.
1947	//   "FARMING_AND_OUTDOORS" - A farming or outdoor job, such as Park
1948	// Ranger.
1949	//   "HEALTHCARE" - A healthcare job, such as Registered Nurse.
1950	//   "HUMAN_RESOURCES" - A human resources job, such as Human Resources
1951	// Director.
1952	//   "INSTALLATION_MAINTENANCE_AND_REPAIR" - An installation,
1953	// maintenance, or repair job, such as Electrician.
1954	//   "LEGAL" - A legal job, such as Law Clerk.
1955	//   "MANAGEMENT" - A management job, often used in conjunction with
1956	// another category, such as Store Manager.
1957	//   "MANUFACTURING_AND_WAREHOUSE" - A manufacturing or warehouse job,
1958	// such as Assembly Technician.
1959	//   "MEDIA_COMMUNICATIONS_AND_WRITING" - A media, communications, or
1960	// writing job, such as Media Relations.
1961	//   "OIL_GAS_AND_MINING" - An oil, gas or mining job, such as Offshore
1962	// Driller.
1963	//   "PERSONAL_CARE_AND_SERVICES" - A personal care and services job,
1964	// such as Hair Stylist.
1965	//   "PROTECTIVE_SERVICES" - A protective services job, such as Security
1966	// Guard.
1967	//   "REAL_ESTATE" - A real estate job, such as Buyer's Agent.
1968	//   "RESTAURANT_AND_HOSPITALITY" - A restaurant and hospitality job,
1969	// such as Restaurant Server.
1970	//   "SALES_AND_RETAIL" - A sales and/or retail job, such Sales
1971	// Associate.
1972	//   "SCIENCE_AND_ENGINEERING" - A science and engineering job, such as
1973	// Lab Technician.
1974	//   "SOCIAL_SERVICES_AND_NON_PROFIT" - A social services or non-profit
1975	// job, such as Case Worker.
1976	//   "SPORTS_FITNESS_AND_RECREATION" - A sports, fitness, or recreation
1977	// job, such as Personal Trainer.
1978	//   "TRANSPORTATION_AND_LOGISTICS" - A transportation or logistics job,
1979	// such as Truck Driver.
1980	JobCategories []string `json:"jobCategories,omitempty"`
1981
1982	// Locations: Structured locations of the job, resolved from
1983	// Job.addresses. locations are exactly matched to Job.addresses in the
1984	// same order.
1985	Locations []*Location `json:"locations,omitempty"`
1986
1987	// ForceSendFields is a list of field names (e.g. "JobCategories") to
1988	// unconditionally include in API requests. By default, fields with
1989	// empty values are omitted from API requests. However, any non-pointer,
1990	// non-interface field appearing in ForceSendFields will be sent to the
1991	// server regardless of whether the field is empty or not. This may be
1992	// used to include empty fields in Patch requests.
1993	ForceSendFields []string `json:"-"`
1994
1995	// NullFields is a list of field names (e.g. "JobCategories") to include
1996	// in API requests with the JSON null value. By default, fields with
1997	// empty values are omitted from API requests. However, any field with
1998	// an empty value appearing in NullFields will be sent to the server as
1999	// null. It is an error if a field in this list has a non-empty value.
2000	// This may be used to include null fields in Patch requests.
2001	NullFields []string `json:"-"`
2002}
2003
2004func (s *JobDerivedInfo) MarshalJSON() ([]byte, error) {
2005	type NoMethod JobDerivedInfo
2006	raw := NoMethod(*s)
2007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2008}
2009
2010// JobEvent: An event issued when a job seeker interacts with the
2011// application that implements Cloud Talent Solution.
2012type JobEvent struct {
2013	// Jobs: Required. The job name(s) associated with this event. For
2014	// example, if this is an impression event, this field contains the
2015	// identifiers of all jobs shown to the job seeker. If this was a view
2016	// event, this field contains the identifier of the viewed job.
2017	Jobs []string `json:"jobs,omitempty"`
2018
2019	// Type: Required. The type of the event (see JobEventType).
2020	//
2021	// Possible values:
2022	//   "JOB_EVENT_TYPE_UNSPECIFIED" - The event is unspecified by other
2023	// provided values.
2024	//   "IMPRESSION" - The job seeker or other entity interacting with the
2025	// service has had a job rendered in their view, such as in a list of
2026	// search results in a compressed or clipped format. This event is
2027	// typically associated with the viewing of a jobs list on a single page
2028	// by a job seeker.
2029	//   "VIEW" - The job seeker, or other entity interacting with the
2030	// service, has viewed the details of a job, including the full
2031	// description. This event doesn't apply to the viewing a snippet of a
2032	// job appearing as a part of the job search results. Viewing a snippet
2033	// is associated with an impression).
2034	//   "VIEW_REDIRECT" - The job seeker or other entity interacting with
2035	// the service performed an action to view a job and was redirected to a
2036	// different website for job.
2037	//   "APPLICATION_START" - The job seeker or other entity interacting
2038	// with the service began the process or demonstrated the intention of
2039	// applying for a job.
2040	//   "APPLICATION_FINISH" - The job seeker or other entity interacting
2041	// with the service submitted an application for a job.
2042	//   "APPLICATION_QUICK_SUBMISSION" - The job seeker or other entity
2043	// interacting with the service submitted an application for a job with
2044	// a single click without entering information. If a job seeker performs
2045	// this action, send only this event to the service. Do not also send
2046	// JobEventType.APPLICATION_START or JobEventType.APPLICATION_FINISH
2047	// events.
2048	//   "APPLICATION_REDIRECT" - The job seeker or other entity interacting
2049	// with the service performed an action to apply to a job and was
2050	// redirected to a different website to complete the application.
2051	//   "APPLICATION_START_FROM_SEARCH" - The job seeker or other entity
2052	// interacting with the service began the process or demonstrated the
2053	// intention of applying for a job from the search results page without
2054	// viewing the details of the job posting. If sending this event,
2055	// JobEventType.VIEW event shouldn't be sent.
2056	//   "APPLICATION_REDIRECT_FROM_SEARCH" - The job seeker, or other
2057	// entity interacting with the service, performs an action with a single
2058	// click from the search results page to apply to a job (without viewing
2059	// the details of the job posting), and is redirected to a different
2060	// website to complete the application. If a candidate performs this
2061	// action, send only this event to the service. Do not also send
2062	// JobEventType.APPLICATION_START, JobEventType.APPLICATION_FINISH or
2063	// JobEventType.VIEW events.
2064	//   "APPLICATION_COMPANY_SUBMIT" - This event should be used when a
2065	// company submits an application on behalf of a job seeker. This event
2066	// is intended for use by staffing agencies attempting to place
2067	// candidates.
2068	//   "BOOKMARK" - The job seeker or other entity interacting with the
2069	// service demonstrated an interest in a job by bookmarking or saving
2070	// it.
2071	//   "NOTIFICATION" - The job seeker or other entity interacting with
2072	// the service was sent a notification, such as an email alert or device
2073	// notification, containing one or more jobs listings generated by the
2074	// service.
2075	//   "HIRED" - The job seeker or other entity interacting with the
2076	// service was employed by the hiring entity (employer). Send this event
2077	// only if the job seeker was hired through an application that was
2078	// initiated by a search conducted through the Cloud Talent Solution
2079	// service.
2080	//   "SENT_CV" - A recruiter or staffing agency submitted an application
2081	// on behalf of the candidate after interacting with the service to
2082	// identify a suitable job posting.
2083	//   "INTERVIEW_GRANTED" - The entity interacting with the service (for
2084	// example, the job seeker), was granted an initial interview by the
2085	// hiring entity (employer). This event should only be sent if the job
2086	// seeker was granted an interview as part of an application that was
2087	// initiated by a search conducted through / recommendation provided by
2088	// the Cloud Talent Solution service.
2089	//   "NOT_INTERESTED" - The job seeker or other entity interacting with
2090	// the service showed no interest in the job.
2091	Type string `json:"type,omitempty"`
2092
2093	// ForceSendFields is a list of field names (e.g. "Jobs") to
2094	// unconditionally include in API requests. By default, fields with
2095	// empty values are omitted from API requests. However, any non-pointer,
2096	// non-interface field appearing in ForceSendFields will be sent to the
2097	// server regardless of whether the field is empty or not. This may be
2098	// used to include empty fields in Patch requests.
2099	ForceSendFields []string `json:"-"`
2100
2101	// NullFields is a list of field names (e.g. "Jobs") to include in API
2102	// requests with the JSON null value. By default, fields with empty
2103	// values are omitted from API requests. However, any field with an
2104	// empty value appearing in NullFields will be sent to the server as
2105	// null. It is an error if a field in this list has a non-empty value.
2106	// This may be used to include null fields in Patch requests.
2107	NullFields []string `json:"-"`
2108}
2109
2110func (s *JobEvent) MarshalJSON() ([]byte, error) {
2111	type NoMethod JobEvent
2112	raw := NoMethod(*s)
2113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2114}
2115
2116// JobQuery: Input only. The query required to perform a search query.
2117type JobQuery struct {
2118	// CommuteFilter: Optional. Allows filtering jobs by commute time with
2119	// different travel methods (for example, driving or public transit).
2120	// Note: This only works with COMMUTE MODE. When specified,
2121	// [JobQuery.location_filters] is ignored. Currently we don't support
2122	// sorting by commute time.
2123	CommuteFilter *CommuteFilter `json:"commuteFilter,omitempty"`
2124
2125	// CompanyDisplayNames: Optional. This filter specifies the exact
2126	// company display name of the jobs to search against. If a value isn't
2127	// specified, jobs within the search results are associated with any
2128	// company. If multiple values are specified, jobs within the search
2129	// results may be associated with any of the specified companies. At
2130	// most 20 company display name filters are allowed.
2131	CompanyDisplayNames []string `json:"companyDisplayNames,omitempty"`
2132
2133	// CompanyNames: Optional. This filter specifies the company entities to
2134	// search against. If a value isn't specified, jobs are searched for
2135	// against all companies. If multiple values are specified, jobs are
2136	// searched against the companies specified. The format is
2137	// "projects/{project_id}/companies/{company_id}", for example,
2138	// "projects/api-test-project/companies/foo". At most 20 company filters
2139	// are allowed.
2140	CompanyNames []string `json:"companyNames,omitempty"`
2141
2142	// CompensationFilter: Optional. This search filter is applied only to
2143	// Job.compensation_info. For example, if the filter is specified as
2144	// "Hourly job with per-hour compensation > $15", only jobs meeting
2145	// these criteria are searched. If a filter isn't defined, all open jobs
2146	// are searched.
2147	CompensationFilter *CompensationFilter `json:"compensationFilter,omitempty"`
2148
2149	// CustomAttributeFilter: Optional. This filter specifies a structured
2150	// syntax to match against the Job.custom_attributes marked as
2151	// `filterable`. The syntax for this expression is a subset of SQL
2152	// syntax. Supported operators are: `=`, `!=`, `<`, `<=`, `>`, and `>=`
2153	// where the left of the operator is a custom field key and the right of
2154	// the operator is a number or a quoted string. You must escape
2155	// backslash (\\) and quote (\") characters. Supported functions are
2156	// `LOWER([field_name])` to perform a case insensitive match and
2157	// `EMPTY([field_name])` to filter on the existence of a key. Boolean
2158	// expressions (AND/OR/NOT) are supported up to 3 levels of nesting (for
2159	// example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
2160	// comparisons or functions are allowed in the expression. The
2161	// expression must be < 6000 bytes in length. Sample Query:
2162	// `(LOWER(driving_license)="class \"a\"" OR EMPTY(driving_license)) AND
2163	// driving_years > 10`
2164	CustomAttributeFilter string `json:"customAttributeFilter,omitempty"`
2165
2166	// DisableSpellCheck: Optional. This flag controls the spell-check
2167	// feature. If false, the service attempts to correct a misspelled
2168	// query, for example, "enginee" is corrected to "engineer". Defaults to
2169	// false: a spell check is performed.
2170	DisableSpellCheck bool `json:"disableSpellCheck,omitempty"`
2171
2172	// EmploymentTypes: Optional. The employment type filter specifies the
2173	// employment type of jobs to search against, such as
2174	// EmploymentType.FULL_TIME. If a value is not specified, jobs in the
2175	// search results includes any employment type. If multiple values are
2176	// specified, jobs in the search results include any of the specified
2177	// employment types.
2178	//
2179	// Possible values:
2180	//   "EMPLOYMENT_TYPE_UNSPECIFIED" - The default value if the employment
2181	// type is not specified.
2182	//   "FULL_TIME" - The job requires working a number of hours that
2183	// constitute full time employment, typically 40 or more hours per week.
2184	//   "PART_TIME" - The job entails working fewer hours than a full time
2185	// job, typically less than 40 hours a week.
2186	//   "CONTRACTOR" - The job is offered as a contracted, as opposed to a
2187	// salaried employee, position.
2188	//   "CONTRACT_TO_HIRE" - The job is offered as a contracted position
2189	// with the understanding that it's converted into a full-time position
2190	// at the end of the contract. Jobs of this type are also returned by a
2191	// search for EmploymentType.CONTRACTOR jobs.
2192	//   "TEMPORARY" - The job is offered as a temporary employment
2193	// opportunity, usually a short-term engagement.
2194	//   "INTERN" - The job is a fixed-term opportunity for students or
2195	// entry-level job seekers to obtain on-the-job training, typically
2196	// offered as a summer position.
2197	//   "VOLUNTEER" - The is an opportunity for an individual to volunteer,
2198	// where there's no expectation of compensation for the provided
2199	// services.
2200	//   "PER_DIEM" - The job requires an employee to work on an as-needed
2201	// basis with a flexible schedule.
2202	//   "FLY_IN_FLY_OUT" - The job involves employing people in remote
2203	// areas and flying them temporarily to the work site instead of
2204	// relocating employees and their families permanently.
2205	//   "OTHER_EMPLOYMENT_TYPE" - The job does not fit any of the other
2206	// listed types.
2207	EmploymentTypes []string `json:"employmentTypes,omitempty"`
2208
2209	// JobCategories: Optional. The category filter specifies the categories
2210	// of jobs to search against. See Category for more information. If a
2211	// value is not specified, jobs from any category are searched against.
2212	// If multiple values are specified, jobs from any of the specified
2213	// categories are searched against.
2214	//
2215	// Possible values:
2216	//   "JOB_CATEGORY_UNSPECIFIED" - The default value if the category
2217	// isn't specified.
2218	//   "ACCOUNTING_AND_FINANCE" - An accounting and finance job, such as
2219	// an Accountant.
2220	//   "ADMINISTRATIVE_AND_OFFICE" - An administrative and office job,
2221	// such as an Administrative Assistant.
2222	//   "ADVERTISING_AND_MARKETING" - An advertising and marketing job,
2223	// such as Marketing Manager.
2224	//   "ANIMAL_CARE" - An animal care job, such as Veterinarian.
2225	//   "ART_FASHION_AND_DESIGN" - An art, fashion, or design job, such as
2226	// Designer.
2227	//   "BUSINESS_OPERATIONS" - A business operations job, such as Business
2228	// Operations Manager.
2229	//   "CLEANING_AND_FACILITIES" - A cleaning and facilities job, such as
2230	// Custodial Staff.
2231	//   "COMPUTER_AND_IT" - A computer and IT job, such as Systems
2232	// Administrator.
2233	//   "CONSTRUCTION" - A construction job, such as General Laborer.
2234	//   "CUSTOMER_SERVICE" - A customer service job, such s Cashier.
2235	//   "EDUCATION" - An education job, such as School Teacher.
2236	//   "ENTERTAINMENT_AND_TRAVEL" - An entertainment and travel job, such
2237	// as Flight Attendant.
2238	//   "FARMING_AND_OUTDOORS" - A farming or outdoor job, such as Park
2239	// Ranger.
2240	//   "HEALTHCARE" - A healthcare job, such as Registered Nurse.
2241	//   "HUMAN_RESOURCES" - A human resources job, such as Human Resources
2242	// Director.
2243	//   "INSTALLATION_MAINTENANCE_AND_REPAIR" - An installation,
2244	// maintenance, or repair job, such as Electrician.
2245	//   "LEGAL" - A legal job, such as Law Clerk.
2246	//   "MANAGEMENT" - A management job, often used in conjunction with
2247	// another category, such as Store Manager.
2248	//   "MANUFACTURING_AND_WAREHOUSE" - A manufacturing or warehouse job,
2249	// such as Assembly Technician.
2250	//   "MEDIA_COMMUNICATIONS_AND_WRITING" - A media, communications, or
2251	// writing job, such as Media Relations.
2252	//   "OIL_GAS_AND_MINING" - An oil, gas or mining job, such as Offshore
2253	// Driller.
2254	//   "PERSONAL_CARE_AND_SERVICES" - A personal care and services job,
2255	// such as Hair Stylist.
2256	//   "PROTECTIVE_SERVICES" - A protective services job, such as Security
2257	// Guard.
2258	//   "REAL_ESTATE" - A real estate job, such as Buyer's Agent.
2259	//   "RESTAURANT_AND_HOSPITALITY" - A restaurant and hospitality job,
2260	// such as Restaurant Server.
2261	//   "SALES_AND_RETAIL" - A sales and/or retail job, such Sales
2262	// Associate.
2263	//   "SCIENCE_AND_ENGINEERING" - A science and engineering job, such as
2264	// Lab Technician.
2265	//   "SOCIAL_SERVICES_AND_NON_PROFIT" - A social services or non-profit
2266	// job, such as Case Worker.
2267	//   "SPORTS_FITNESS_AND_RECREATION" - A sports, fitness, or recreation
2268	// job, such as Personal Trainer.
2269	//   "TRANSPORTATION_AND_LOGISTICS" - A transportation or logistics job,
2270	// such as Truck Driver.
2271	JobCategories []string `json:"jobCategories,omitempty"`
2272
2273	// LanguageCodes: Optional. This filter specifies the locale of jobs to
2274	// search against, for example, "en-US". If a value isn't specified, the
2275	// search results can contain jobs in any locale. Language codes should
2276	// be in BCP-47 format, such as "en-US" or "sr-Latn". For more
2277	// information, see Tags for Identifying Languages
2278	// (https://tools.ietf.org/html/bcp47). At most 10 language code filters
2279	// are allowed.
2280	LanguageCodes []string `json:"languageCodes,omitempty"`
2281
2282	// LocationFilters: Optional. The location filter specifies geo-regions
2283	// containing the jobs to search against. See LocationFilter for more
2284	// information. If a location value isn't specified, jobs fitting the
2285	// other search criteria are retrieved regardless of where they're
2286	// located. If multiple values are specified, jobs are retrieved from
2287	// any of the specified locations. If different values are specified for
2288	// the LocationFilter.distance_in_miles parameter, the maximum provided
2289	// distance is used for all locations. At most 5 location filters are
2290	// allowed.
2291	LocationFilters []*LocationFilter `json:"locationFilters,omitempty"`
2292
2293	// PublishTimeRange: Optional. Jobs published within a range specified
2294	// by this filter are searched against.
2295	PublishTimeRange *TimestampRange `json:"publishTimeRange,omitempty"`
2296
2297	// Query: Optional. The query string that matches against the job title,
2298	// description, and location fields. The maximum number of allowed
2299	// characters is 255.
2300	Query string `json:"query,omitempty"`
2301
2302	// QueryLanguageCode: The language code of query. For example, "en-US".
2303	// This field helps to better interpret the query. If a value isn't
2304	// specified, the query language code is automatically detected, which
2305	// may not be accurate. Language code should be in BCP-47 format, such
2306	// as "en-US" or "sr-Latn". For more information, see Tags for
2307	// Identifying Languages (https://tools.ietf.org/html/bcp47).
2308	QueryLanguageCode string `json:"queryLanguageCode,omitempty"`
2309
2310	// ForceSendFields is a list of field names (e.g. "CommuteFilter") to
2311	// unconditionally include in API requests. By default, fields with
2312	// empty values are omitted from API requests. However, any non-pointer,
2313	// non-interface field appearing in ForceSendFields will be sent to the
2314	// server regardless of whether the field is empty or not. This may be
2315	// used to include empty fields in Patch requests.
2316	ForceSendFields []string `json:"-"`
2317
2318	// NullFields is a list of field names (e.g. "CommuteFilter") to include
2319	// in API requests with the JSON null value. By default, fields with
2320	// empty values are omitted from API requests. However, any field with
2321	// an empty value appearing in NullFields will be sent to the server as
2322	// null. It is an error if a field in this list has a non-empty value.
2323	// This may be used to include null fields in Patch requests.
2324	NullFields []string `json:"-"`
2325}
2326
2327func (s *JobQuery) MarshalJSON() ([]byte, error) {
2328	type NoMethod JobQuery
2329	raw := NoMethod(*s)
2330	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2331}
2332
2333// LatLng: An object that represents a latitude/longitude pair. This is
2334// expressed as a pair of doubles to represent degrees latitude and
2335// degrees longitude. Unless specified otherwise, this must conform to
2336// the WGS84 standard. Values must be within normalized ranges.
2337type LatLng struct {
2338	// Latitude: The latitude in degrees. It must be in the range [-90.0,
2339	// +90.0].
2340	Latitude float64 `json:"latitude,omitempty"`
2341
2342	// Longitude: The longitude in degrees. It must be in the range [-180.0,
2343	// +180.0].
2344	Longitude float64 `json:"longitude,omitempty"`
2345
2346	// ForceSendFields is a list of field names (e.g. "Latitude") to
2347	// unconditionally include in API requests. By default, fields with
2348	// empty values are omitted from API requests. However, any non-pointer,
2349	// non-interface field appearing in ForceSendFields will be sent to the
2350	// server regardless of whether the field is empty or not. This may be
2351	// used to include empty fields in Patch requests.
2352	ForceSendFields []string `json:"-"`
2353
2354	// NullFields is a list of field names (e.g. "Latitude") to include in
2355	// API requests with the JSON null value. By default, fields with empty
2356	// values are omitted from API requests. However, any field with an
2357	// empty value appearing in NullFields will be sent to the server as
2358	// null. It is an error if a field in this list has a non-empty value.
2359	// This may be used to include null fields in Patch requests.
2360	NullFields []string `json:"-"`
2361}
2362
2363func (s *LatLng) MarshalJSON() ([]byte, error) {
2364	type NoMethod LatLng
2365	raw := NoMethod(*s)
2366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2367}
2368
2369func (s *LatLng) UnmarshalJSON(data []byte) error {
2370	type NoMethod LatLng
2371	var s1 struct {
2372		Latitude  gensupport.JSONFloat64 `json:"latitude"`
2373		Longitude gensupport.JSONFloat64 `json:"longitude"`
2374		*NoMethod
2375	}
2376	s1.NoMethod = (*NoMethod)(s)
2377	if err := json.Unmarshal(data, &s1); err != nil {
2378		return err
2379	}
2380	s.Latitude = float64(s1.Latitude)
2381	s.Longitude = float64(s1.Longitude)
2382	return nil
2383}
2384
2385// ListCompaniesResponse: Output only. The List companies response
2386// object.
2387type ListCompaniesResponse struct {
2388	// Companies: Companies for the current client.
2389	Companies []*Company `json:"companies,omitempty"`
2390
2391	// Metadata: Additional information for the API invocation, such as the
2392	// request tracking id.
2393	Metadata *ResponseMetadata `json:"metadata,omitempty"`
2394
2395	// NextPageToken: A token to retrieve the next page of results.
2396	NextPageToken string `json:"nextPageToken,omitempty"`
2397
2398	// ServerResponse contains the HTTP response code and headers from the
2399	// server.
2400	googleapi.ServerResponse `json:"-"`
2401
2402	// ForceSendFields is a list of field names (e.g. "Companies") to
2403	// unconditionally include in API requests. By default, fields with
2404	// empty values are omitted from API requests. However, any non-pointer,
2405	// non-interface field appearing in ForceSendFields will be sent to the
2406	// server regardless of whether the field is empty or not. This may be
2407	// used to include empty fields in Patch requests.
2408	ForceSendFields []string `json:"-"`
2409
2410	// NullFields is a list of field names (e.g. "Companies") to include in
2411	// API requests with the JSON null value. By default, fields with empty
2412	// values are omitted from API requests. However, any field with an
2413	// empty value appearing in NullFields will be sent to the server as
2414	// null. It is an error if a field in this list has a non-empty value.
2415	// This may be used to include null fields in Patch requests.
2416	NullFields []string `json:"-"`
2417}
2418
2419func (s *ListCompaniesResponse) MarshalJSON() ([]byte, error) {
2420	type NoMethod ListCompaniesResponse
2421	raw := NoMethod(*s)
2422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2423}
2424
2425// ListJobsResponse: Output only. List jobs response.
2426type ListJobsResponse struct {
2427	// Jobs: The Jobs for a given company. The maximum number of items
2428	// returned is based on the limit field provided in the request.
2429	Jobs []*Job `json:"jobs,omitempty"`
2430
2431	// Metadata: Additional information for the API invocation, such as the
2432	// request tracking id.
2433	Metadata *ResponseMetadata `json:"metadata,omitempty"`
2434
2435	// NextPageToken: A token to retrieve the next page of results.
2436	NextPageToken string `json:"nextPageToken,omitempty"`
2437
2438	// ServerResponse contains the HTTP response code and headers from the
2439	// server.
2440	googleapi.ServerResponse `json:"-"`
2441
2442	// ForceSendFields is a list of field names (e.g. "Jobs") to
2443	// unconditionally include in API requests. By default, fields with
2444	// empty values are omitted from API requests. However, any non-pointer,
2445	// non-interface field appearing in ForceSendFields will be sent to the
2446	// server regardless of whether the field is empty or not. This may be
2447	// used to include empty fields in Patch requests.
2448	ForceSendFields []string `json:"-"`
2449
2450	// NullFields is a list of field names (e.g. "Jobs") to include in API
2451	// requests with the JSON null value. By default, fields with empty
2452	// values are omitted from API requests. However, any field with an
2453	// empty value appearing in NullFields will be sent to the server as
2454	// null. It is an error if a field in this list has a non-empty value.
2455	// This may be used to include null fields in Patch requests.
2456	NullFields []string `json:"-"`
2457}
2458
2459func (s *ListJobsResponse) MarshalJSON() ([]byte, error) {
2460	type NoMethod ListJobsResponse
2461	raw := NoMethod(*s)
2462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2463}
2464
2465// Location: Output only. A resource that represents a location with
2466// full geographic information.
2467type Location struct {
2468	// LatLng: An object representing a latitude/longitude pair.
2469	LatLng *LatLng `json:"latLng,omitempty"`
2470
2471	// LocationType: The type of a location, which corresponds to the
2472	// address lines field of PostalAddress. For example, "Downtown,
2473	// Atlanta, GA, USA" has a type of LocationType#NEIGHBORHOOD, and
2474	// "Kansas City, KS, USA" has a type of LocationType#LOCALITY.
2475	//
2476	// Possible values:
2477	//   "LOCATION_TYPE_UNSPECIFIED" - Default value if the type is not
2478	// specified.
2479	//   "COUNTRY" - A country level location.
2480	//   "ADMINISTRATIVE_AREA" - A state or equivalent level location.
2481	//   "SUB_ADMINISTRATIVE_AREA" - A county or equivalent level location.
2482	//   "LOCALITY" - A city or equivalent level location.
2483	//   "POSTAL_CODE" - A postal code level location.
2484	//   "SUB_LOCALITY" - A sublocality is a subdivision of a locality, for
2485	// example a city borough, ward, or arrondissement. Sublocalities are
2486	// usually recognized by a local political authority. For example,
2487	// Manhattan and Brooklyn are recognized as boroughs by the City of New
2488	// York, and are therefore modeled as sublocalities.
2489	//   "SUB_LOCALITY_1" - A district or equivalent level location.
2490	//   "SUB_LOCALITY_2" - A smaller district or equivalent level display.
2491	//   "NEIGHBORHOOD" - A neighborhood level location.
2492	//   "STREET_ADDRESS" - A street address level location.
2493	LocationType string `json:"locationType,omitempty"`
2494
2495	// PostalAddress: Postal address of the location that includes human
2496	// readable information, such as postal delivery and payments addresses.
2497	// Given a postal address, a postal service can deliver items to a
2498	// premises, P.O. Box, or other delivery location.
2499	PostalAddress *PostalAddress `json:"postalAddress,omitempty"`
2500
2501	// RadiusInMiles: Radius in miles of the job location. This value is
2502	// derived from the location bounding box in which a circle with the
2503	// specified radius centered from LatLng covers the area associated with
2504	// the job location. For example, currently, "Mountain View, CA, USA"
2505	// has a radius of 6.17 miles.
2506	RadiusInMiles float64 `json:"radiusInMiles,omitempty"`
2507
2508	// ForceSendFields is a list of field names (e.g. "LatLng") to
2509	// unconditionally include in API requests. By default, fields with
2510	// empty values are omitted from API requests. However, any non-pointer,
2511	// non-interface field appearing in ForceSendFields will be sent to the
2512	// server regardless of whether the field is empty or not. This may be
2513	// used to include empty fields in Patch requests.
2514	ForceSendFields []string `json:"-"`
2515
2516	// NullFields is a list of field names (e.g. "LatLng") to include in API
2517	// requests with the JSON null value. By default, fields with empty
2518	// values are omitted from API requests. However, any field with an
2519	// empty value appearing in NullFields will be sent to the server as
2520	// null. It is an error if a field in this list has a non-empty value.
2521	// This may be used to include null fields in Patch requests.
2522	NullFields []string `json:"-"`
2523}
2524
2525func (s *Location) MarshalJSON() ([]byte, error) {
2526	type NoMethod Location
2527	raw := NoMethod(*s)
2528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2529}
2530
2531func (s *Location) UnmarshalJSON(data []byte) error {
2532	type NoMethod Location
2533	var s1 struct {
2534		RadiusInMiles gensupport.JSONFloat64 `json:"radiusInMiles"`
2535		*NoMethod
2536	}
2537	s1.NoMethod = (*NoMethod)(s)
2538	if err := json.Unmarshal(data, &s1); err != nil {
2539		return err
2540	}
2541	s.RadiusInMiles = float64(s1.RadiusInMiles)
2542	return nil
2543}
2544
2545// LocationFilter: Input only. Geographic region of the search.
2546type LocationFilter struct {
2547	// Address: Optional. The address name, such as "Mountain View" or "Bay
2548	// Area".
2549	Address string `json:"address,omitempty"`
2550
2551	// DistanceInMiles: Optional. The distance_in_miles is applied when the
2552	// location being searched for is identified as a city or smaller. When
2553	// the location being searched for is a state or larger, this field is
2554	// ignored.
2555	DistanceInMiles float64 `json:"distanceInMiles,omitempty"`
2556
2557	// LatLng: Optional. The latitude and longitude of the geographic center
2558	// from which to search. This field's ignored if `address` is provided.
2559	LatLng *LatLng `json:"latLng,omitempty"`
2560
2561	// RegionCode: Optional. CLDR region code of the country/region. This
2562	// field may be used in two ways: 1) If telecommute preference is not
2563	// set, this field is used address ambiguity of the user-input address.
2564	// For example, "Liverpool" may refer to "Liverpool, NY, US" or
2565	// "Liverpool, UK". This region code biases the address resolution
2566	// toward a specific country or territory. If this field is not set,
2567	// address resolution is biased toward the United States by default. 2)
2568	// If telecommute preference is set to TELECOMMUTE_ALLOWED, the
2569	// telecommute location filter will be limited to the region specified
2570	// in this field. If this field is not set, the telecommute job
2571	// locations will not be limited. See
2572	// https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_information.html
2573	// for details. Example: "CH" for Switzerland.
2574	RegionCode string `json:"regionCode,omitempty"`
2575
2576	// TelecommutePreference: Optional. Allows the client to return jobs
2577	// without a set location, specifically, telecommuting jobs
2578	// (telecommuting is considered by the service as a special location.
2579	// Job.posting_region indicates if a job permits telecommuting. If this
2580	// field is set to TelecommutePreference.TELECOMMUTE_ALLOWED,
2581	// telecommuting jobs are searched, and address and lat_lng are ignored.
2582	// If not set or set to TelecommutePreference.TELECOMMUTE_EXCLUDED,
2583	// telecommute job are not searched. This filter can be used by itself
2584	// to search exclusively for telecommuting jobs, or it can be combined
2585	// with another location filter to search for a combination of job
2586	// locations, such as "Mountain View" or "telecommuting" jobs. However,
2587	// when used in combination with other location filters, telecommuting
2588	// jobs can be treated as less relevant than other jobs in the search
2589	// response.
2590	//
2591	// Possible values:
2592	//   "TELECOMMUTE_PREFERENCE_UNSPECIFIED" - Default value if the
2593	// telecommute preference is not specified.
2594	//   "TELECOMMUTE_EXCLUDED" - Exclude telecommute jobs.
2595	//   "TELECOMMUTE_ALLOWED" - Allow telecommute jobs.
2596	TelecommutePreference string `json:"telecommutePreference,omitempty"`
2597
2598	// ForceSendFields is a list of field names (e.g. "Address") to
2599	// unconditionally include in API requests. By default, fields with
2600	// empty values are omitted from API requests. However, any non-pointer,
2601	// non-interface field appearing in ForceSendFields will be sent to the
2602	// server regardless of whether the field is empty or not. This may be
2603	// used to include empty fields in Patch requests.
2604	ForceSendFields []string `json:"-"`
2605
2606	// NullFields is a list of field names (e.g. "Address") to include in
2607	// API requests with the JSON null value. By default, fields with empty
2608	// values are omitted from API requests. However, any field with an
2609	// empty value appearing in NullFields will be sent to the server as
2610	// null. It is an error if a field in this list has a non-empty value.
2611	// This may be used to include null fields in Patch requests.
2612	NullFields []string `json:"-"`
2613}
2614
2615func (s *LocationFilter) MarshalJSON() ([]byte, error) {
2616	type NoMethod LocationFilter
2617	raw := NoMethod(*s)
2618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2619}
2620
2621func (s *LocationFilter) UnmarshalJSON(data []byte) error {
2622	type NoMethod LocationFilter
2623	var s1 struct {
2624		DistanceInMiles gensupport.JSONFloat64 `json:"distanceInMiles"`
2625		*NoMethod
2626	}
2627	s1.NoMethod = (*NoMethod)(s)
2628	if err := json.Unmarshal(data, &s1); err != nil {
2629		return err
2630	}
2631	s.DistanceInMiles = float64(s1.DistanceInMiles)
2632	return nil
2633}
2634
2635// MatchingJob: Output only. Job entry with metadata inside
2636// SearchJobsResponse.
2637type MatchingJob struct {
2638	// CommuteInfo: Commute information which is generated based on
2639	// specified CommuteFilter.
2640	CommuteInfo *CommuteInfo `json:"commuteInfo,omitempty"`
2641
2642	// Job: Job resource that matches the specified SearchJobsRequest.
2643	Job *Job `json:"job,omitempty"`
2644
2645	// JobSummary: A summary of the job with core information that's
2646	// displayed on the search results listing page.
2647	JobSummary string `json:"jobSummary,omitempty"`
2648
2649	// JobTitleSnippet: Contains snippets of text from the Job.job_title
2650	// field most closely matching a search query's keywords, if available.
2651	// The matching query keywords are enclosed in HTML bold tags.
2652	JobTitleSnippet string `json:"jobTitleSnippet,omitempty"`
2653
2654	// SearchTextSnippet: Contains snippets of text from the Job.description
2655	// and similar fields that most closely match a search query's keywords,
2656	// if available. All HTML tags in the original fields are stripped when
2657	// returned in this field, and matching query keywords are enclosed in
2658	// HTML bold tags.
2659	SearchTextSnippet string `json:"searchTextSnippet,omitempty"`
2660
2661	// ForceSendFields is a list of field names (e.g. "CommuteInfo") to
2662	// unconditionally include in API requests. By default, fields with
2663	// empty values are omitted from API requests. However, any non-pointer,
2664	// non-interface field appearing in ForceSendFields will be sent to the
2665	// server regardless of whether the field is empty or not. This may be
2666	// used to include empty fields in Patch requests.
2667	ForceSendFields []string `json:"-"`
2668
2669	// NullFields is a list of field names (e.g. "CommuteInfo") to include
2670	// in API requests with the JSON null value. By default, fields with
2671	// empty values are omitted from API requests. However, any field with
2672	// an empty value appearing in NullFields will be sent to the server as
2673	// null. It is an error if a field in this list has a non-empty value.
2674	// This may be used to include null fields in Patch requests.
2675	NullFields []string `json:"-"`
2676}
2677
2678func (s *MatchingJob) MarshalJSON() ([]byte, error) {
2679	type NoMethod MatchingJob
2680	raw := NoMethod(*s)
2681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2682}
2683
2684// MendelDebugInput: Message representing input to a Mendel server for
2685// debug forcing. See go/mendel-debug-forcing for more details. Next ID:
2686// 2
2687type MendelDebugInput struct {
2688	// NamespacedDebugInput: When a request spans multiple servers, a
2689	// MendelDebugInput may travel with the request and take effect in all
2690	// the servers. This field is a map of namespaces to
2691	// NamespacedMendelDebugInput protos. In a single server, up to two
2692	// NamespacedMendelDebugInput protos are applied: 1.
2693	// NamespacedMendelDebugInput with the global namespace (key == ""). 2.
2694	// NamespacedMendelDebugInput with the server's namespace. When both
2695	// NamespacedMendelDebugInput protos are present, they are merged. See
2696	// go/mendel-debug-forcing for more details.
2697	NamespacedDebugInput map[string]NamespacedDebugInput `json:"namespacedDebugInput,omitempty"`
2698
2699	// ForceSendFields is a list of field names (e.g.
2700	// "NamespacedDebugInput") to unconditionally include in API requests.
2701	// By default, fields with empty values are omitted from API requests.
2702	// However, any non-pointer, non-interface field appearing in
2703	// ForceSendFields will be sent to the server regardless of whether the
2704	// field is empty or not. This may be used to include empty fields in
2705	// Patch requests.
2706	ForceSendFields []string `json:"-"`
2707
2708	// NullFields is a list of field names (e.g. "NamespacedDebugInput") to
2709	// include in API requests with the JSON null value. By default, fields
2710	// with empty values are omitted from API requests. However, any field
2711	// with an empty value appearing in NullFields will be sent to the
2712	// server as null. It is an error if a field in this list has a
2713	// non-empty value. This may be used to include null fields in Patch
2714	// requests.
2715	NullFields []string `json:"-"`
2716}
2717
2718func (s *MendelDebugInput) MarshalJSON() ([]byte, error) {
2719	type NoMethod MendelDebugInput
2720	raw := NoMethod(*s)
2721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2722}
2723
2724// Money: Represents an amount of money with its currency type.
2725type Money struct {
2726	// CurrencyCode: The three-letter currency code defined in ISO 4217.
2727	CurrencyCode string `json:"currencyCode,omitempty"`
2728
2729	// Nanos: Number of nano (10^-9) units of the amount. The value must be
2730	// between -999,999,999 and +999,999,999 inclusive. If `units` is
2731	// positive, `nanos` must be positive or zero. If `units` is zero,
2732	// `nanos` can be positive, zero, or negative. If `units` is negative,
2733	// `nanos` must be negative or zero. For example $-1.75 is represented
2734	// as `units`=-1 and `nanos`=-750,000,000.
2735	Nanos int64 `json:"nanos,omitempty"`
2736
2737	// Units: The whole units of the amount. For example if `currencyCode`
2738	// is "USD", then 1 unit is one US dollar.
2739	Units int64 `json:"units,omitempty,string"`
2740
2741	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
2742	// unconditionally include in API requests. By default, fields with
2743	// empty values are omitted from API requests. However, any non-pointer,
2744	// non-interface field appearing in ForceSendFields will be sent to the
2745	// server regardless of whether the field is empty or not. This may be
2746	// used to include empty fields in Patch requests.
2747	ForceSendFields []string `json:"-"`
2748
2749	// NullFields is a list of field names (e.g. "CurrencyCode") to include
2750	// in API requests with the JSON null value. By default, fields with
2751	// empty values are omitted from API requests. However, any field with
2752	// an empty value appearing in NullFields will be sent to the server as
2753	// null. It is an error if a field in this list has a non-empty value.
2754	// This may be used to include null fields in Patch requests.
2755	NullFields []string `json:"-"`
2756}
2757
2758func (s *Money) MarshalJSON() ([]byte, error) {
2759	type NoMethod Money
2760	raw := NoMethod(*s)
2761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2762}
2763
2764// NamespacedDebugInput: Next ID: 15
2765type NamespacedDebugInput struct {
2766	// AbsolutelyForcedExpNames: Set of experiment names to be absolutely
2767	// forced. These experiments will be forced without evaluating the
2768	// conditions.
2769	AbsolutelyForcedExpNames []string `json:"absolutelyForcedExpNames,omitempty"`
2770
2771	// AbsolutelyForcedExpTags: Set of experiment tags to be absolutely
2772	// forced. The experiments with these tags will be forced without
2773	// evaluating the conditions.
2774	AbsolutelyForcedExpTags []string `json:"absolutelyForcedExpTags,omitempty"`
2775
2776	// AbsolutelyForcedExps: Set of experiment ids to be absolutely forced.
2777	// These ids will be forced without evaluating the conditions.
2778	AbsolutelyForcedExps []int64 `json:"absolutelyForcedExps,omitempty"`
2779
2780	// ConditionallyForcedExpNames: Set of experiment names to be
2781	// conditionally forced. These experiments will be forced only if their
2782	// conditions and their parent domain's conditions are true.
2783	ConditionallyForcedExpNames []string `json:"conditionallyForcedExpNames,omitempty"`
2784
2785	// ConditionallyForcedExpTags: Set of experiment tags to be
2786	// conditionally forced. The experiments with these tags will be forced
2787	// only if their conditions and their parent domain's conditions are
2788	// true.
2789	ConditionallyForcedExpTags []string `json:"conditionallyForcedExpTags,omitempty"`
2790
2791	// ConditionallyForcedExps: Set of experiment ids to be conditionally
2792	// forced. These ids will be forced only if their conditions and their
2793	// parent domain's conditions are true.
2794	ConditionallyForcedExps []int64 `json:"conditionallyForcedExps,omitempty"`
2795
2796	// DisableAutomaticEnrollmentSelection: If true, disable automatic
2797	// enrollment selection (at all diversion points). Automatic enrollment
2798	// selection means experiment selection process based on the
2799	// experiment's automatic enrollment condition. This does not disable
2800	// selection of forced experiments.
2801	DisableAutomaticEnrollmentSelection bool `json:"disableAutomaticEnrollmentSelection,omitempty"`
2802
2803	// DisableExpNames: Set of experiment names to be disabled. If an
2804	// experiment is disabled, it is never selected nor forced. If an
2805	// aggregate experiment is disabled, its partitions are disabled
2806	// together. If an experiment with an enrollment is disabled, the
2807	// enrollment is disabled together. If a name corresponds to a domain,
2808	// the domain itself and all descendant experiments and domains are
2809	// disabled together.
2810	DisableExpNames []string `json:"disableExpNames,omitempty"`
2811
2812	// DisableExpTags: Set of experiment tags to be disabled. All
2813	// experiments that are tagged with one or more of these tags are
2814	// disabled. If an experiment is disabled, it is never selected nor
2815	// forced. If an aggregate experiment is disabled, its partitions are
2816	// disabled together. If an experiment with an enrollment is disabled,
2817	// the enrollment is disabled together.
2818	DisableExpTags []string `json:"disableExpTags,omitempty"`
2819
2820	// DisableExps: Set of experiment ids to be disabled. If an experiment
2821	// is disabled, it is never selected nor forced. If an aggregate
2822	// experiment is disabled, its partitions are disabled together. If an
2823	// experiment with an enrollment is disabled, the enrollment is disabled
2824	// together. If an ID corresponds to a domain, the domain itself and all
2825	// descendant experiments and domains are disabled together.
2826	DisableExps []int64 `json:"disableExps,omitempty"`
2827
2828	// DisableManualEnrollmentSelection: If true, disable manual enrollment
2829	// selection (at all diversion points). Manual enrollment selection
2830	// means experiment selection process based on the request's manual
2831	// enrollment states (a.k.a. opt-in experiments). This does not disable
2832	// selection of forced experiments.
2833	DisableManualEnrollmentSelection bool `json:"disableManualEnrollmentSelection,omitempty"`
2834
2835	// DisableOrganicSelection: If true, disable organic experiment
2836	// selection (at all diversion points). Organic selection means
2837	// experiment selection process based on traffic allocation and
2838	// diversion condition evaluation. This does not disable selection of
2839	// forced experiments. This is useful in cases when it is not known
2840	// whether experiment selection behavior is responsible for a error or
2841	// breakage. Disabling organic selection may help to isolate the cause
2842	// of a given problem.
2843	DisableOrganicSelection bool `json:"disableOrganicSelection,omitempty"`
2844
2845	// ForcedFlags: Flags to force in a particular experiment state. Map
2846	// from flag name to flag value.
2847	ForcedFlags map[string]string `json:"forcedFlags,omitempty"`
2848
2849	// ForcedRollouts: Rollouts to force in a particular experiment state.
2850	// Map from rollout name to rollout value.
2851	ForcedRollouts map[string]bool `json:"forcedRollouts,omitempty"`
2852
2853	// ForceSendFields is a list of field names (e.g.
2854	// "AbsolutelyForcedExpNames") to unconditionally include in API
2855	// requests. By default, fields with empty values are omitted from API
2856	// requests. However, any non-pointer, non-interface field appearing in
2857	// ForceSendFields will be sent to the server regardless of whether the
2858	// field is empty or not. This may be used to include empty fields in
2859	// Patch requests.
2860	ForceSendFields []string `json:"-"`
2861
2862	// NullFields is a list of field names (e.g. "AbsolutelyForcedExpNames")
2863	// to include in API requests with the JSON null value. By default,
2864	// fields with empty values are omitted from API requests. However, any
2865	// field with an empty value appearing in NullFields will be sent to the
2866	// server as null. It is an error if a field in this list has a
2867	// non-empty value. This may be used to include null fields in Patch
2868	// requests.
2869	NullFields []string `json:"-"`
2870}
2871
2872func (s *NamespacedDebugInput) MarshalJSON() ([]byte, error) {
2873	type NoMethod NamespacedDebugInput
2874	raw := NoMethod(*s)
2875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2876}
2877
2878// NumericBucketingOption: Input only. Use this field to specify
2879// bucketing option for the histogram search response.
2880type NumericBucketingOption struct {
2881	// BucketBounds: Required. Two adjacent values form a histogram bucket.
2882	// Values should be in ascending order. For example, if [5, 10, 15] are
2883	// provided, four buckets are created: (-inf, 5), 5, 10), [10, 15), [15,
2884	// inf). At most 20 [buckets_bound is supported.
2885	BucketBounds []float64 `json:"bucketBounds,omitempty"`
2886
2887	// RequiresMinMax: Optional. If set to true, the histogram result
2888	// includes minimum/maximum value of the numeric field.
2889	RequiresMinMax bool `json:"requiresMinMax,omitempty"`
2890
2891	// ForceSendFields is a list of field names (e.g. "BucketBounds") to
2892	// unconditionally include in API requests. By default, fields with
2893	// empty values are omitted from API requests. However, any non-pointer,
2894	// non-interface field appearing in ForceSendFields will be sent to the
2895	// server regardless of whether the field is empty or not. This may be
2896	// used to include empty fields in Patch requests.
2897	ForceSendFields []string `json:"-"`
2898
2899	// NullFields is a list of field names (e.g. "BucketBounds") to include
2900	// in API requests with the JSON null value. By default, fields with
2901	// empty values are omitted from API requests. However, any field with
2902	// an empty value appearing in NullFields will be sent to the server as
2903	// null. It is an error if a field in this list has a non-empty value.
2904	// This may be used to include null fields in Patch requests.
2905	NullFields []string `json:"-"`
2906}
2907
2908func (s *NumericBucketingOption) MarshalJSON() ([]byte, error) {
2909	type NoMethod NumericBucketingOption
2910	raw := NoMethod(*s)
2911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2912}
2913
2914// NumericBucketingResult: Output only. Custom numeric bucketing result.
2915type NumericBucketingResult struct {
2916	// Counts: Count within each bucket. Its size is the length of
2917	// NumericBucketingOption.bucket_bounds plus 1.
2918	Counts []*BucketizedCount `json:"counts,omitempty"`
2919
2920	// MaxValue: Stores the maximum value of the numeric field. Is populated
2921	// only if [NumericBucketingOption.requires_min_max] is set to true.
2922	MaxValue float64 `json:"maxValue,omitempty"`
2923
2924	// MinValue: Stores the minimum value of the numeric field. Will be
2925	// populated only if [NumericBucketingOption.requires_min_max] is set to
2926	// true.
2927	MinValue float64 `json:"minValue,omitempty"`
2928
2929	// ForceSendFields is a list of field names (e.g. "Counts") to
2930	// unconditionally include in API requests. By default, fields with
2931	// empty values are omitted from API requests. However, any non-pointer,
2932	// non-interface field appearing in ForceSendFields will be sent to the
2933	// server regardless of whether the field is empty or not. This may be
2934	// used to include empty fields in Patch requests.
2935	ForceSendFields []string `json:"-"`
2936
2937	// NullFields is a list of field names (e.g. "Counts") to include in API
2938	// requests with the JSON null value. By default, fields with empty
2939	// values are omitted from API requests. However, any field with an
2940	// empty value appearing in NullFields will be sent to the server as
2941	// null. It is an error if a field in this list has a non-empty value.
2942	// This may be used to include null fields in Patch requests.
2943	NullFields []string `json:"-"`
2944}
2945
2946func (s *NumericBucketingResult) MarshalJSON() ([]byte, error) {
2947	type NoMethod NumericBucketingResult
2948	raw := NoMethod(*s)
2949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2950}
2951
2952func (s *NumericBucketingResult) UnmarshalJSON(data []byte) error {
2953	type NoMethod NumericBucketingResult
2954	var s1 struct {
2955		MaxValue gensupport.JSONFloat64 `json:"maxValue"`
2956		MinValue gensupport.JSONFloat64 `json:"minValue"`
2957		*NoMethod
2958	}
2959	s1.NoMethod = (*NoMethod)(s)
2960	if err := json.Unmarshal(data, &s1); err != nil {
2961		return err
2962	}
2963	s.MaxValue = float64(s1.MaxValue)
2964	s.MinValue = float64(s1.MinValue)
2965	return nil
2966}
2967
2968// PostalAddress: Represents a postal address, e.g. for postal delivery
2969// or payments addresses. Given a postal address, a postal service can
2970// deliver items to a premise, P.O. Box or similar. It is not intended
2971// to model geographical locations (roads, towns, mountains). In typical
2972// usage an address would be created via user input or from importing
2973// existing data, depending on the type of process. Advice on address
2974// input / editing: - Use an i18n-ready address widget such as
2975// https://github.com/google/libaddressinput) - Users should not be
2976// presented with UI elements for input or editing of fields outside
2977// countries where that field is used. For more guidance on how to use
2978// this schema, please see:
2979// https://support.google.com/business/answer/6397478
2980type PostalAddress struct {
2981	// AddressLines: Unstructured address lines describing the lower levels
2982	// of an address. Because values in address_lines do not have type
2983	// information and may sometimes contain multiple values in a single
2984	// field (e.g. "Austin, TX"), it is important that the line order is
2985	// clear. The order of address lines should be "envelope order" for the
2986	// country/region of the address. In places where this can vary (e.g.
2987	// Japan), address_language is used to make it explicit (e.g. "ja" for
2988	// large-to-small ordering and "ja-Latn" or "en" for small-to-large).
2989	// This way, the most specific line of an address can be selected based
2990	// on the language. The minimum permitted structural representation of
2991	// an address consists of a region_code with all remaining information
2992	// placed in the address_lines. It would be possible to format such an
2993	// address very approximately without geocoding, but no semantic
2994	// reasoning could be made about any of the address components until it
2995	// was at least partially resolved. Creating an address only containing
2996	// a region_code and address_lines, and then geocoding is the
2997	// recommended way to handle completely unstructured addresses (as
2998	// opposed to guessing which parts of the address should be localities
2999	// or administrative areas).
3000	AddressLines []string `json:"addressLines,omitempty"`
3001
3002	// AdministrativeArea: Optional. Highest administrative subdivision
3003	// which is used for postal addresses of a country or region. For
3004	// example, this can be a state, a province, an oblast, or a prefecture.
3005	// Specifically, for Spain this is the province and not the autonomous
3006	// community (e.g. "Barcelona" and not "Catalonia"). Many countries
3007	// don't use an administrative area in postal addresses. E.g. in
3008	// Switzerland this should be left unpopulated.
3009	AdministrativeArea string `json:"administrativeArea,omitempty"`
3010
3011	// LanguageCode: Optional. BCP-47 language code of the contents of this
3012	// address (if known). This is often the UI language of the input form
3013	// or is expected to match one of the languages used in the address'
3014	// country/region, or their transliterated equivalents. This can affect
3015	// formatting in certain countries, but is not critical to the
3016	// correctness of the data and will never affect any validation or other
3017	// non-formatting related operations. If this value is not known, it
3018	// should be omitted (rather than specifying a possibly incorrect
3019	// default). Examples: "zh-Hant", "ja", "ja-Latn", "en".
3020	LanguageCode string `json:"languageCode,omitempty"`
3021
3022	// Locality: Optional. Generally refers to the city/town portion of the
3023	// address. Examples: US city, IT comune, UK post town. In regions of
3024	// the world where localities are not well defined or do not fit into
3025	// this structure well, leave locality empty and use address_lines.
3026	Locality string `json:"locality,omitempty"`
3027
3028	// Organization: Optional. The name of the organization at the address.
3029	Organization string `json:"organization,omitempty"`
3030
3031	// PostalCode: Optional. Postal code of the address. Not all countries
3032	// use or require postal codes to be present, but where they are used,
3033	// they may trigger additional validation with other parts of the
3034	// address (e.g. state/zip validation in the U.S.A.).
3035	PostalCode string `json:"postalCode,omitempty"`
3036
3037	// Recipients: Optional. The recipient at the address. This field may,
3038	// under certain circumstances, contain multiline information. For
3039	// example, it might contain "care of" information.
3040	Recipients []string `json:"recipients,omitempty"`
3041
3042	// RegionCode: Required. CLDR region code of the country/region of the
3043	// address. This is never inferred and it is up to the user to ensure
3044	// the value is correct. See http://cldr.unicode.org/ and
3045	// http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
3046	// for details. Example: "CH" for Switzerland.
3047	RegionCode string `json:"regionCode,omitempty"`
3048
3049	// Revision: The schema revision of the `PostalAddress`. This must be
3050	// set to 0, which is the latest revision. All new revisions **must** be
3051	// backward compatible with old revisions.
3052	Revision int64 `json:"revision,omitempty"`
3053
3054	// SortingCode: Optional. Additional, country-specific, sorting code.
3055	// This is not used in most regions. Where it is used, the value is
3056	// either a string like "CEDEX", optionally followed by a number (e.g.
3057	// "CEDEX 7"), or just a number alone, representing the "sector code"
3058	// (Jamaica), "delivery area indicator" (Malawi) or "post office
3059	// indicator" (e.g. Côte d'Ivoire).
3060	SortingCode string `json:"sortingCode,omitempty"`
3061
3062	// Sublocality: Optional. Sublocality of the address. For example, this
3063	// can be neighborhoods, boroughs, districts.
3064	Sublocality string `json:"sublocality,omitempty"`
3065
3066	// ForceSendFields is a list of field names (e.g. "AddressLines") to
3067	// unconditionally include in API requests. By default, fields with
3068	// empty values are omitted from API requests. However, any non-pointer,
3069	// non-interface field appearing in ForceSendFields will be sent to the
3070	// server regardless of whether the field is empty or not. This may be
3071	// used to include empty fields in Patch requests.
3072	ForceSendFields []string `json:"-"`
3073
3074	// NullFields is a list of field names (e.g. "AddressLines") to include
3075	// in API requests with the JSON null value. By default, fields with
3076	// empty values are omitted from API requests. However, any field with
3077	// an empty value appearing in NullFields will be sent to the server as
3078	// null. It is an error if a field in this list has a non-empty value.
3079	// This may be used to include null fields in Patch requests.
3080	NullFields []string `json:"-"`
3081}
3082
3083func (s *PostalAddress) MarshalJSON() ([]byte, error) {
3084	type NoMethod PostalAddress
3085	raw := NoMethod(*s)
3086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3087}
3088
3089// ProcessingOptions: Input only. Options for job processing.
3090type ProcessingOptions struct {
3091	// DisableStreetAddressResolution: Optional. If set to `true`, the
3092	// service does not attempt to resolve a more precise address for the
3093	// job.
3094	DisableStreetAddressResolution bool `json:"disableStreetAddressResolution,omitempty"`
3095
3096	// HtmlSanitization: Optional. Option for job HTML content sanitization.
3097	// Applied fields are: * description * applicationInfo.instruction *
3098	// incentives * qualifications * responsibilities HTML tags in these
3099	// fields may be stripped if sanitiazation is not disabled. Defaults to
3100	// HtmlSanitization.SIMPLE_FORMATTING_ONLY.
3101	//
3102	// Possible values:
3103	//   "HTML_SANITIZATION_UNSPECIFIED" - Default value.
3104	//   "HTML_SANITIZATION_DISABLED" - Disables sanitization on HTML input.
3105	//   "SIMPLE_FORMATTING_ONLY" - Sanitizes HTML input, only accepts bold,
3106	// italic, ordered list, and unordered list markup tags.
3107	HtmlSanitization string `json:"htmlSanitization,omitempty"`
3108
3109	// ForceSendFields is a list of field names (e.g.
3110	// "DisableStreetAddressResolution") to unconditionally include in API
3111	// requests. By default, fields with empty values are omitted from API
3112	// requests. However, any non-pointer, non-interface field appearing in
3113	// ForceSendFields will be sent to the server regardless of whether the
3114	// field is empty or not. This may be used to include empty fields in
3115	// Patch requests.
3116	ForceSendFields []string `json:"-"`
3117
3118	// NullFields is a list of field names (e.g.
3119	// "DisableStreetAddressResolution") to include in API requests with the
3120	// JSON null value. By default, fields with empty values are omitted
3121	// from API requests. However, any field with an empty value appearing
3122	// in NullFields will be sent to the server as null. It is an error if a
3123	// field in this list has a non-empty value. This may be used to include
3124	// null fields in Patch requests.
3125	NullFields []string `json:"-"`
3126}
3127
3128func (s *ProcessingOptions) MarshalJSON() ([]byte, error) {
3129	type NoMethod ProcessingOptions
3130	raw := NoMethod(*s)
3131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3132}
3133
3134// RequestMetadata: Input only. Meta information related to the job
3135// searcher or entity conducting the job search. This information is
3136// used to improve the performance of the service.
3137type RequestMetadata struct {
3138	// DeviceInfo: Optional. The type of device used by the job seeker at
3139	// the time of the call to the service.
3140	DeviceInfo *DeviceInfo `json:"deviceInfo,omitempty"`
3141
3142	// Domain: Required. The client-defined scope or source of the service
3143	// call, which typically is the domain on which the service has been
3144	// implemented and is currently being run. For example, if the service
3145	// is being run by client *Foo, Inc.*, on job board www.foo.com and
3146	// career site www.bar.com, then this field is set to "foo.com" for use
3147	// on the job board, and "bar.com" for use on the career site. If this
3148	// field isn't available for some reason, send "UNKNOWN". Any
3149	// improvements to the model for a particular tenant site rely on this
3150	// field being set correctly to a domain. The maximum number of allowed
3151	// characters is 255.
3152	Domain string `json:"domain,omitempty"`
3153
3154	// SessionId: Required. A unique session identification string. A
3155	// session is defined as the duration of an end user's interaction with
3156	// the service over a certain period. Obfuscate this field for privacy
3157	// concerns before providing it to the service. If this field is not
3158	// available for some reason, send "UNKNOWN". Note that any improvements
3159	// to the model for a particular tenant site, rely on this field being
3160	// set correctly to some unique session_id. The maximum number of
3161	// allowed characters is 255.
3162	SessionId string `json:"sessionId,omitempty"`
3163
3164	// UserId: Required. A unique user identification string, as determined
3165	// by the client. To have the strongest positive impact on search
3166	// quality make sure the client-level is unique. Obfuscate this field
3167	// for privacy concerns before providing it to the service. If this
3168	// field is not available for some reason, send "UNKNOWN". Note that any
3169	// improvements to the model for a particular tenant site, rely on this
3170	// field being set correctly to a unique user_id. The maximum number of
3171	// allowed characters is 255.
3172	UserId string `json:"userId,omitempty"`
3173
3174	// ForceSendFields is a list of field names (e.g. "DeviceInfo") to
3175	// unconditionally include in API requests. By default, fields with
3176	// empty values are omitted from API requests. However, any non-pointer,
3177	// non-interface field appearing in ForceSendFields will be sent to the
3178	// server regardless of whether the field is empty or not. This may be
3179	// used to include empty fields in Patch requests.
3180	ForceSendFields []string `json:"-"`
3181
3182	// NullFields is a list of field names (e.g. "DeviceInfo") to include in
3183	// API requests with the JSON null value. By default, fields with empty
3184	// values are omitted from API requests. However, any field with an
3185	// empty value appearing in NullFields will be sent to the server as
3186	// null. It is an error if a field in this list has a non-empty value.
3187	// This may be used to include null fields in Patch requests.
3188	NullFields []string `json:"-"`
3189}
3190
3191func (s *RequestMetadata) MarshalJSON() ([]byte, error) {
3192	type NoMethod RequestMetadata
3193	raw := NoMethod(*s)
3194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3195}
3196
3197// ResponseMetadata: Output only. Additional information returned to
3198// client, such as debugging information.
3199type ResponseMetadata struct {
3200	// RequestId: A unique id associated with this call. This id is logged
3201	// for tracking purposes.
3202	RequestId string `json:"requestId,omitempty"`
3203
3204	// ForceSendFields is a list of field names (e.g. "RequestId") to
3205	// unconditionally include in API requests. By default, fields with
3206	// empty values are omitted from API requests. However, any non-pointer,
3207	// non-interface field appearing in ForceSendFields will be sent to the
3208	// server regardless of whether the field is empty or not. This may be
3209	// used to include empty fields in Patch requests.
3210	ForceSendFields []string `json:"-"`
3211
3212	// NullFields is a list of field names (e.g. "RequestId") to include in
3213	// API requests with the JSON null value. By default, fields with empty
3214	// values are omitted from API requests. However, any field with an
3215	// empty value appearing in NullFields will be sent to the server as
3216	// null. It is an error if a field in this list has a non-empty value.
3217	// This may be used to include null fields in Patch requests.
3218	NullFields []string `json:"-"`
3219}
3220
3221func (s *ResponseMetadata) MarshalJSON() ([]byte, error) {
3222	type NoMethod ResponseMetadata
3223	raw := NoMethod(*s)
3224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3225}
3226
3227// SearchJobsRequest: Input only. The Request body of the `SearchJobs`
3228// call.
3229type SearchJobsRequest struct {
3230	// DisableKeywordMatch: Optional. Controls whether to disable exact
3231	// keyword match on Job.job_title, Job.description,
3232	// Job.company_display_name, Job.locations, Job.qualifications. When
3233	// disable keyword match is turned off, a keyword match returns jobs
3234	// that do not match given category filters when there are matching
3235	// keywords. For example, the query "program manager," a result is
3236	// returned even if the job posting has the title "software developer,"
3237	// which does not fall into "program manager" ontology, but does have
3238	// "program manager" appearing in its description. For queries like
3239	// "cloud" that does not contain title or location specific ontology,
3240	// jobs with "cloud" keyword matches are returned regardless of this
3241	// flag's value. Please use Company.keyword_searchable_custom_fields or
3242	// Company.keyword_searchable_custom_attributes if company specific
3243	// globally matched custom field/attribute string values is needed.
3244	// Enabling keyword match improves recall of subsequent search requests.
3245	// Defaults to false.
3246	DisableKeywordMatch bool `json:"disableKeywordMatch,omitempty"`
3247
3248	// DiversificationLevel: Optional. Controls whether highly similar jobs
3249	// are returned next to each other in the search results. Jobs are
3250	// identified as highly similar based on their titles, job categories,
3251	// and locations. Highly similar results are clustered so that only one
3252	// representative job of the cluster is displayed to the job seeker
3253	// higher up in the results, with the other jobs being displayed lower
3254	// down in the results. Defaults to DiversificationLevel.SIMPLE if no
3255	// value is specified.
3256	//
3257	// Possible values:
3258	//   "DIVERSIFICATION_LEVEL_UNSPECIFIED" - The diversification level
3259	// isn't specified. By default, jobs with this enum are ordered
3260	// according to SIMPLE diversifying behavior.
3261	//   "DISABLED" - Disables diversification. Jobs that would normally be
3262	// pushed to the last page would not have their positions altered. This
3263	// may result in highly similar jobs appearing in sequence in the search
3264	// results.
3265	//   "SIMPLE" - Default diversifying behavior. The result list is
3266	// ordered so that highly similar results are pushed to the end of the
3267	// last page of search results.
3268	DiversificationLevel string `json:"diversificationLevel,omitempty"`
3269
3270	// EnableBroadening: Optional. Controls whether to broaden the search
3271	// when it produces sparse results. Broadened queries append results to
3272	// the end of the matching results list. Defaults to false.
3273	EnableBroadening bool `json:"enableBroadening,omitempty"`
3274
3275	// HistogramFacets: Optional. Histogram requests for jobs matching
3276	// JobQuery.
3277	HistogramFacets *HistogramFacets `json:"histogramFacets,omitempty"`
3278
3279	// JobQuery: Optional. Query used to search against jobs, such as
3280	// keyword, location filters, etc.
3281	JobQuery *JobQuery `json:"jobQuery,omitempty"`
3282
3283	// JobView: Optional. The desired job attributes returned for jobs in
3284	// the search response. Defaults to JobView.SMALL if no value is
3285	// specified.
3286	//
3287	// Possible values:
3288	//   "JOB_VIEW_UNSPECIFIED" - Default value.
3289	//   "JOB_VIEW_ID_ONLY" - A ID only view of job, with following
3290	// attributes: Job.name, Job.requisition_id, Job.language_code.
3291	//   "JOB_VIEW_MINIMAL" - A minimal view of the job, with the following
3292	// attributes: Job.name, Job.requisition_id, Job.title,
3293	// Job.company_name, Job.DerivedInfo.locations, Job.language_code.
3294	//   "JOB_VIEW_SMALL" - A small view of the job, with the following
3295	// attributes in the search results: Job.name, Job.requisition_id,
3296	// Job.title, Job.company_name, Job.DerivedInfo.locations,
3297	// Job.visibility, Job.language_code, Job.description.
3298	//   "JOB_VIEW_FULL" - All available attributes are included in the
3299	// search results.
3300	JobView string `json:"jobView,omitempty"`
3301
3302	// Offset: Optional. An integer that specifies the current offset (that
3303	// is, starting result location, amongst the jobs deemed by the API as
3304	// relevant) in search results. This field is only considered if
3305	// page_token is unset. The maximum allowed value is 5000. Otherwise an
3306	// error is thrown. For example, 0 means to return results starting from
3307	// the first matching job, and 10 means to return from the 11th job.
3308	// This can be used for pagination, (for example, pageSize = 10 and
3309	// offset = 10 means to return from the second page).
3310	Offset int64 `json:"offset,omitempty"`
3311
3312	// OrderBy: Optional. The criteria determining how search results are
3313	// sorted. Default is "relevance desc". Supported options are: *
3314	// "relevance desc": By relevance descending, as determined by the API
3315	// algorithms. Relevance thresholding of query results is only available
3316	// with this ordering. * "posting_publish_time desc": By
3317	// Job.posting_publish_time descending. * "posting_update_time desc":
3318	// By Job.posting_update_time descending. * "title": By Job.title
3319	// ascending. * "title desc": By Job.title descending. *
3320	// "annualized_base_compensation": By job's
3321	// CompensationInfo.annualized_base_compensation_range ascending. Jobs
3322	// whose annualized base compensation is unspecified are put at the end
3323	// of search results. * "annualized_base_compensation desc": By job's
3324	// CompensationInfo.annualized_base_compensation_range descending. Jobs
3325	// whose annualized base compensation is unspecified are put at the end
3326	// of search results. * "annualized_total_compensation": By job's
3327	// CompensationInfo.annualized_total_compensation_range ascending. Jobs
3328	// whose annualized base compensation is unspecified are put at the end
3329	// of search results. * "annualized_total_compensation desc": By job's
3330	// CompensationInfo.annualized_total_compensation_range descending. Jobs
3331	// whose annualized base compensation is unspecified are put at the end
3332	// of search results.
3333	OrderBy string `json:"orderBy,omitempty"`
3334
3335	// PageSize: Optional. A limit on the number of jobs returned in the
3336	// search results. Increasing this value above the default value of 10
3337	// can increase search response time. The value can be between 1 and
3338	// 100.
3339	PageSize int64 `json:"pageSize,omitempty"`
3340
3341	// PageToken: Optional. The token specifying the current offset within
3342	// search results. See SearchJobsResponse.next_page_token for an
3343	// explanation of how to obtain the next set of query results.
3344	PageToken string `json:"pageToken,omitempty"`
3345
3346	// RequestMetadata: Required. The meta information collected about the
3347	// job searcher, used to improve the search quality of the service. The
3348	// identifiers (such as `user_id`) are provided by users, and must be
3349	// unique and consistent.
3350	RequestMetadata *RequestMetadata `json:"requestMetadata,omitempty"`
3351
3352	// RequirePreciseResultSize: This field is deprecated.
3353	RequirePreciseResultSize bool `json:"requirePreciseResultSize,omitempty"`
3354
3355	// SearchMode: Optional. Mode of a search. Defaults to
3356	// SearchMode.JOB_SEARCH.
3357	//
3358	// Possible values:
3359	//   "SEARCH_MODE_UNSPECIFIED" - The mode of the search method isn't
3360	// specified. The default search behavior is identical to JOB_SEARCH
3361	// search behavior.
3362	//   "JOB_SEARCH" - The job search matches against all jobs, and
3363	// featured jobs (jobs with promotionValue > 0) are not specially
3364	// handled.
3365	//   "FEATURED_JOB_SEARCH" - The job search matches only against
3366	// featured jobs (jobs with a promotionValue > 0). This method doesn't
3367	// return any jobs having a promotionValue <= 0. The search results
3368	// order is determined by the promotionValue (jobs with a higher
3369	// promotionValue are returned higher up in the search results), with
3370	// relevance being used as a tiebreaker.
3371	SearchMode string `json:"searchMode,omitempty"`
3372
3373	// ForceSendFields is a list of field names (e.g. "DisableKeywordMatch")
3374	// to unconditionally include in API requests. By default, fields with
3375	// empty values are omitted from API requests. However, any non-pointer,
3376	// non-interface field appearing in ForceSendFields will be sent to the
3377	// server regardless of whether the field is empty or not. This may be
3378	// used to include empty fields in Patch requests.
3379	ForceSendFields []string `json:"-"`
3380
3381	// NullFields is a list of field names (e.g. "DisableKeywordMatch") to
3382	// include in API requests with the JSON null value. By default, fields
3383	// with empty values are omitted from API requests. However, any field
3384	// with an empty value appearing in NullFields will be sent to the
3385	// server as null. It is an error if a field in this list has a
3386	// non-empty value. This may be used to include null fields in Patch
3387	// requests.
3388	NullFields []string `json:"-"`
3389}
3390
3391func (s *SearchJobsRequest) MarshalJSON() ([]byte, error) {
3392	type NoMethod SearchJobsRequest
3393	raw := NoMethod(*s)
3394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3395}
3396
3397// SearchJobsResponse: Output only. Response for SearchJob method.
3398type SearchJobsResponse struct {
3399	// BroadenedQueryJobsCount: If query broadening is enabled, we may
3400	// append additional results from the broadened query. This number
3401	// indicates how many of the jobs returned in the jobs field are from
3402	// the broadened query. These results are always at the end of the jobs
3403	// list. In particular, a value of 0, or if the field isn't set, all the
3404	// jobs in the jobs list are from the original (without broadening)
3405	// query. If this field is non-zero, subsequent requests with offset
3406	// after this result set should contain all broadened results.
3407	BroadenedQueryJobsCount int64 `json:"broadenedQueryJobsCount,omitempty"`
3408
3409	// EstimatedTotalSize: An estimation of the number of jobs that match
3410	// the specified query. This number is not guaranteed to be accurate.
3411	// For accurate results, see SearchJobsResponse.total_size.
3412	EstimatedTotalSize int64 `json:"estimatedTotalSize,omitempty"`
3413
3414	// HistogramResults: The histogram results that match specified
3415	// SearchJobsRequest.histogram_facets.
3416	HistogramResults *HistogramResults `json:"histogramResults,omitempty"`
3417
3418	// LocationFilters: The location filters that the service applied to the
3419	// specified query. If any filters are lat-lng based, the
3420	// JobLocation.location_type is
3421	// JobLocation.LocationType#LOCATION_TYPE_UNSPECIFIED.
3422	LocationFilters []*Location `json:"locationFilters,omitempty"`
3423
3424	// MatchingJobs: The Job entities that match the specified
3425	// SearchJobsRequest.
3426	MatchingJobs []*MatchingJob `json:"matchingJobs,omitempty"`
3427
3428	// Metadata: Additional information for the API invocation, such as the
3429	// request tracking id.
3430	Metadata *ResponseMetadata `json:"metadata,omitempty"`
3431
3432	// NextPageToken: The token that specifies the starting position of the
3433	// next page of results. This field is empty if there are no more
3434	// results.
3435	NextPageToken string `json:"nextPageToken,omitempty"`
3436
3437	// SpellCorrection: The spell checking result, and correction.
3438	SpellCorrection *SpellingCorrection `json:"spellCorrection,omitempty"`
3439
3440	// TotalSize: The precise result count with limit 100,000.
3441	TotalSize int64 `json:"totalSize,omitempty"`
3442
3443	// ServerResponse contains the HTTP response code and headers from the
3444	// server.
3445	googleapi.ServerResponse `json:"-"`
3446
3447	// ForceSendFields is a list of field names (e.g.
3448	// "BroadenedQueryJobsCount") to unconditionally include in API
3449	// requests. By default, fields with empty values are omitted from API
3450	// requests. However, any non-pointer, non-interface field appearing in
3451	// ForceSendFields will be sent to the server regardless of whether the
3452	// field is empty or not. This may be used to include empty fields in
3453	// Patch requests.
3454	ForceSendFields []string `json:"-"`
3455
3456	// NullFields is a list of field names (e.g. "BroadenedQueryJobsCount")
3457	// to include in API requests with the JSON null value. By default,
3458	// fields with empty values are omitted from API requests. However, any
3459	// field with an empty value appearing in NullFields will be sent to the
3460	// server as null. It is an error if a field in this list has a
3461	// non-empty value. This may be used to include null fields in Patch
3462	// requests.
3463	NullFields []string `json:"-"`
3464}
3465
3466func (s *SearchJobsResponse) MarshalJSON() ([]byte, error) {
3467	type NoMethod SearchJobsResponse
3468	raw := NoMethod(*s)
3469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3470}
3471
3472// SpellingCorrection: Output only. Spell check result.
3473type SpellingCorrection struct {
3474	// Corrected: Indicates if the query was corrected by the spell checker.
3475	Corrected bool `json:"corrected,omitempty"`
3476
3477	// CorrectedText: Correction output consisting of the corrected keyword
3478	// string.
3479	CorrectedText string `json:"correctedText,omitempty"`
3480
3481	// ForceSendFields is a list of field names (e.g. "Corrected") to
3482	// unconditionally include in API requests. By default, fields with
3483	// empty values are omitted from API requests. However, any non-pointer,
3484	// non-interface field appearing in ForceSendFields will be sent to the
3485	// server regardless of whether the field is empty or not. This may be
3486	// used to include empty fields in Patch requests.
3487	ForceSendFields []string `json:"-"`
3488
3489	// NullFields is a list of field names (e.g. "Corrected") to include in
3490	// API requests with the JSON null value. By default, fields with empty
3491	// values are omitted from API requests. However, any field with an
3492	// empty value appearing in NullFields will be sent to the server as
3493	// null. It is an error if a field in this list has a non-empty value.
3494	// This may be used to include null fields in Patch requests.
3495	NullFields []string `json:"-"`
3496}
3497
3498func (s *SpellingCorrection) MarshalJSON() ([]byte, error) {
3499	type NoMethod SpellingCorrection
3500	raw := NoMethod(*s)
3501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3502}
3503
3504// TimeOfDay: Represents a time of day. The date and time zone are
3505// either not significant or are specified elsewhere. An API may choose
3506// to allow leap seconds. Related types are google.type.Date and
3507// `google.protobuf.Timestamp`.
3508type TimeOfDay struct {
3509	// Hours: Hours of day in 24 hour format. Should be from 0 to 23. An API
3510	// may choose to allow the value "24:00:00" for scenarios like business
3511	// closing time.
3512	Hours int64 `json:"hours,omitempty"`
3513
3514	// Minutes: Minutes of hour of day. Must be from 0 to 59.
3515	Minutes int64 `json:"minutes,omitempty"`
3516
3517	// Nanos: Fractions of seconds in nanoseconds. Must be from 0 to
3518	// 999,999,999.
3519	Nanos int64 `json:"nanos,omitempty"`
3520
3521	// Seconds: Seconds of minutes of the time. Must normally be from 0 to
3522	// 59. An API may allow the value 60 if it allows leap-seconds.
3523	Seconds int64 `json:"seconds,omitempty"`
3524
3525	// ForceSendFields is a list of field names (e.g. "Hours") to
3526	// unconditionally include in API requests. By default, fields with
3527	// empty values are omitted from API requests. However, any non-pointer,
3528	// non-interface field appearing in ForceSendFields will be sent to the
3529	// server regardless of whether the field is empty or not. This may be
3530	// used to include empty fields in Patch requests.
3531	ForceSendFields []string `json:"-"`
3532
3533	// NullFields is a list of field names (e.g. "Hours") to include in API
3534	// requests with the JSON null value. By default, fields with empty
3535	// values are omitted from API requests. However, any field with an
3536	// empty value appearing in NullFields will be sent to the server as
3537	// null. It is an error if a field in this list has a non-empty value.
3538	// This may be used to include null fields in Patch requests.
3539	NullFields []string `json:"-"`
3540}
3541
3542func (s *TimeOfDay) MarshalJSON() ([]byte, error) {
3543	type NoMethod TimeOfDay
3544	raw := NoMethod(*s)
3545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3546}
3547
3548// TimestampRange: Message representing a period of time between two
3549// timestamps.
3550type TimestampRange struct {
3551	// EndTime: End of the period.
3552	EndTime string `json:"endTime,omitempty"`
3553
3554	// StartTime: Begin of the period.
3555	StartTime string `json:"startTime,omitempty"`
3556
3557	// ForceSendFields is a list of field names (e.g. "EndTime") to
3558	// unconditionally include in API requests. By default, fields with
3559	// empty values are omitted from API requests. However, any non-pointer,
3560	// non-interface field appearing in ForceSendFields will be sent to the
3561	// server regardless of whether the field is empty or not. This may be
3562	// used to include empty fields in Patch requests.
3563	ForceSendFields []string `json:"-"`
3564
3565	// NullFields is a list of field names (e.g. "EndTime") to include in
3566	// API requests with the JSON null value. By default, fields with empty
3567	// values are omitted from API requests. However, any field with an
3568	// empty value appearing in NullFields will be sent to the server as
3569	// null. It is an error if a field in this list has a non-empty value.
3570	// This may be used to include null fields in Patch requests.
3571	NullFields []string `json:"-"`
3572}
3573
3574func (s *TimestampRange) MarshalJSON() ([]byte, error) {
3575	type NoMethod TimestampRange
3576	raw := NoMethod(*s)
3577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3578}
3579
3580// UpdateCompanyRequest: Input only. Request for updating a specified
3581// company.
3582type UpdateCompanyRequest struct {
3583	// Company: Required. The company resource to replace the current
3584	// resource in the system.
3585	Company *Company `json:"company,omitempty"`
3586
3587	// UpdateMask: Optional but strongly recommended for the best service
3588	// experience. If update_mask is provided, only the specified fields in
3589	// company are updated. Otherwise all the fields are updated. A field
3590	// mask to specify the company fields to be updated. Only top level
3591	// fields of Company are supported.
3592	UpdateMask string `json:"updateMask,omitempty"`
3593
3594	// ForceSendFields is a list of field names (e.g. "Company") to
3595	// unconditionally include in API requests. By default, fields with
3596	// empty values are omitted from API requests. However, any non-pointer,
3597	// non-interface field appearing in ForceSendFields will be sent to the
3598	// server regardless of whether the field is empty or not. This may be
3599	// used to include empty fields in Patch requests.
3600	ForceSendFields []string `json:"-"`
3601
3602	// NullFields is a list of field names (e.g. "Company") to include in
3603	// API requests with the JSON null value. By default, fields with empty
3604	// values are omitted from API requests. However, any field with an
3605	// empty value appearing in NullFields will be sent to the server as
3606	// null. It is an error if a field in this list has a non-empty value.
3607	// This may be used to include null fields in Patch requests.
3608	NullFields []string `json:"-"`
3609}
3610
3611func (s *UpdateCompanyRequest) MarshalJSON() ([]byte, error) {
3612	type NoMethod UpdateCompanyRequest
3613	raw := NoMethod(*s)
3614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3615}
3616
3617// UpdateJobRequest: Input only. Update job request.
3618type UpdateJobRequest struct {
3619	// Job: Required. The Job to be updated.
3620	Job *Job `json:"job,omitempty"`
3621
3622	// UpdateMask: Optional but strongly recommended to be provided for the
3623	// best service experience. If update_mask is provided, only the
3624	// specified fields in job are updated. Otherwise all the fields are
3625	// updated. A field mask to restrict the fields that are updated. Only
3626	// top level fields of Job are supported.
3627	UpdateMask string `json:"updateMask,omitempty"`
3628
3629	// ForceSendFields is a list of field names (e.g. "Job") to
3630	// unconditionally include in API requests. By default, fields with
3631	// empty values are omitted from API requests. However, any non-pointer,
3632	// non-interface field appearing in ForceSendFields will be sent to the
3633	// server regardless of whether the field is empty or not. This may be
3634	// used to include empty fields in Patch requests.
3635	ForceSendFields []string `json:"-"`
3636
3637	// NullFields is a list of field names (e.g. "Job") to include in API
3638	// requests with the JSON null value. By default, fields with empty
3639	// values are omitted from API requests. However, any field with an
3640	// empty value appearing in NullFields will be sent to the server as
3641	// null. It is an error if a field in this list has a non-empty value.
3642	// This may be used to include null fields in Patch requests.
3643	NullFields []string `json:"-"`
3644}
3645
3646func (s *UpdateJobRequest) MarshalJSON() ([]byte, error) {
3647	type NoMethod UpdateJobRequest
3648	raw := NoMethod(*s)
3649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3650}
3651
3652// method id "jobs.projects.complete":
3653
3654type ProjectsCompleteCall struct {
3655	s            *Service
3656	name         string
3657	urlParams_   gensupport.URLParams
3658	ifNoneMatch_ string
3659	ctx_         context.Context
3660	header_      http.Header
3661}
3662
3663// Complete: Completes the specified prefix with keyword suggestions.
3664// Intended for use by a job search auto-complete search box.
3665//
3666// - name: Resource name of project the completion is performed within.
3667//   The format is "projects/{project_id}", for example,
3668//   "projects/api-test-project".
3669func (r *ProjectsService) Complete(name string) *ProjectsCompleteCall {
3670	c := &ProjectsCompleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3671	c.name = name
3672	return c
3673}
3674
3675// CompanyName sets the optional parameter "companyName": If provided,
3676// restricts completion to specified company. The format is
3677// "projects/{project_id}/companies/{company_id}", for example,
3678// "projects/api-test-project/companies/foo".
3679func (c *ProjectsCompleteCall) CompanyName(companyName string) *ProjectsCompleteCall {
3680	c.urlParams_.Set("companyName", companyName)
3681	return c
3682}
3683
3684// LanguageCode sets the optional parameter "languageCode": Deprecated.
3685// Use language_codes instead.  The language of the query. This is the
3686// BCP-47 language code, such as "en-US" or "sr-Latn". For more
3687// information, see Tags for Identifying Languages
3688// (https://tools.ietf.org/html/bcp47). For CompletionType.JOB_TITLE
3689// type, only open jobs with the same language_code are returned. For
3690// CompletionType.COMPANY_NAME type, only companies having open jobs
3691// with the same language_code are returned. For CompletionType.COMBINED
3692// type, only open jobs with the same language_code or companies having
3693// open jobs with the same language_code are returned. The maximum
3694// number of allowed characters is 255.
3695func (c *ProjectsCompleteCall) LanguageCode(languageCode string) *ProjectsCompleteCall {
3696	c.urlParams_.Set("languageCode", languageCode)
3697	return c
3698}
3699
3700// LanguageCodes sets the optional parameter "languageCodes": The list
3701// of languages of the query. This is the BCP-47 language code, such as
3702// "en-US" or "sr-Latn". For more information, see Tags for Identifying
3703// Languages (https://tools.ietf.org/html/bcp47). For
3704// CompletionType.JOB_TITLE type, only open jobs with the same
3705// language_codes are returned. For CompletionType.COMPANY_NAME type,
3706// only companies having open jobs with the same language_codes are
3707// returned. For CompletionType.COMBINED type, only open jobs with the
3708// same language_codes or companies having open jobs with the same
3709// language_codes are returned. The maximum number of allowed characters
3710// is 255.
3711func (c *ProjectsCompleteCall) LanguageCodes(languageCodes ...string) *ProjectsCompleteCall {
3712	c.urlParams_.SetMulti("languageCodes", append([]string{}, languageCodes...))
3713	return c
3714}
3715
3716// PageSize sets the optional parameter "pageSize": Required. Completion
3717// result count. The maximum allowed page size is 10.
3718func (c *ProjectsCompleteCall) PageSize(pageSize int64) *ProjectsCompleteCall {
3719	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
3720	return c
3721}
3722
3723// Query sets the optional parameter "query": Required. The query used
3724// to generate suggestions. The maximum number of allowed characters is
3725// 255.
3726func (c *ProjectsCompleteCall) Query(query string) *ProjectsCompleteCall {
3727	c.urlParams_.Set("query", query)
3728	return c
3729}
3730
3731// Scope sets the optional parameter "scope": The scope of the
3732// completion. The defaults is CompletionScope.PUBLIC.
3733//
3734// Possible values:
3735//   "COMPLETION_SCOPE_UNSPECIFIED" - Default value.
3736//   "TENANT" - Suggestions are based only on the data provided by the
3737// client.
3738//   "PUBLIC" - Suggestions are based on all jobs data in the system
3739// that's visible to the client
3740func (c *ProjectsCompleteCall) Scope(scope string) *ProjectsCompleteCall {
3741	c.urlParams_.Set("scope", scope)
3742	return c
3743}
3744
3745// Type sets the optional parameter "type": The completion topic. The
3746// default is CompletionType.COMBINED.
3747//
3748// Possible values:
3749//   "COMPLETION_TYPE_UNSPECIFIED" - Default value.
3750//   "JOB_TITLE" - Only suggest job titles.
3751//   "COMPANY_NAME" - Only suggest company names.
3752//   "COMBINED" - Suggest both job titles and company names.
3753func (c *ProjectsCompleteCall) Type(type_ string) *ProjectsCompleteCall {
3754	c.urlParams_.Set("type", type_)
3755	return c
3756}
3757
3758// Fields allows partial responses to be retrieved. See
3759// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3760// for more information.
3761func (c *ProjectsCompleteCall) Fields(s ...googleapi.Field) *ProjectsCompleteCall {
3762	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3763	return c
3764}
3765
3766// IfNoneMatch sets the optional parameter which makes the operation
3767// fail if the object's ETag matches the given value. This is useful for
3768// getting updates only after the object has changed since the last
3769// request. Use googleapi.IsNotModified to check whether the response
3770// error from Do is the result of In-None-Match.
3771func (c *ProjectsCompleteCall) IfNoneMatch(entityTag string) *ProjectsCompleteCall {
3772	c.ifNoneMatch_ = entityTag
3773	return c
3774}
3775
3776// Context sets the context to be used in this call's Do method. Any
3777// pending HTTP request will be aborted if the provided context is
3778// canceled.
3779func (c *ProjectsCompleteCall) Context(ctx context.Context) *ProjectsCompleteCall {
3780	c.ctx_ = ctx
3781	return c
3782}
3783
3784// Header returns an http.Header that can be modified by the caller to
3785// add HTTP headers to the request.
3786func (c *ProjectsCompleteCall) Header() http.Header {
3787	if c.header_ == nil {
3788		c.header_ = make(http.Header)
3789	}
3790	return c.header_
3791}
3792
3793func (c *ProjectsCompleteCall) doRequest(alt string) (*http.Response, error) {
3794	reqHeaders := make(http.Header)
3795	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
3796	for k, v := range c.header_ {
3797		reqHeaders[k] = v
3798	}
3799	reqHeaders.Set("User-Agent", c.s.userAgent())
3800	if c.ifNoneMatch_ != "" {
3801		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3802	}
3803	var body io.Reader = nil
3804	c.urlParams_.Set("alt", alt)
3805	c.urlParams_.Set("prettyPrint", "false")
3806	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+name}:complete")
3807	urls += "?" + c.urlParams_.Encode()
3808	req, err := http.NewRequest("GET", urls, body)
3809	if err != nil {
3810		return nil, err
3811	}
3812	req.Header = reqHeaders
3813	googleapi.Expand(req.URL, map[string]string{
3814		"name": c.name,
3815	})
3816	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3817}
3818
3819// Do executes the "jobs.projects.complete" call.
3820// Exactly one of *CompleteQueryResponse or error will be non-nil. Any
3821// non-2xx status code is an error. Response headers are in either
3822// *CompleteQueryResponse.ServerResponse.Header or (if a response was
3823// returned at all) in error.(*googleapi.Error).Header. Use
3824// googleapi.IsNotModified to check whether the returned error was
3825// because http.StatusNotModified was returned.
3826func (c *ProjectsCompleteCall) Do(opts ...googleapi.CallOption) (*CompleteQueryResponse, error) {
3827	gensupport.SetOptions(c.urlParams_, opts...)
3828	res, err := c.doRequest("json")
3829	if res != nil && res.StatusCode == http.StatusNotModified {
3830		if res.Body != nil {
3831			res.Body.Close()
3832		}
3833		return nil, &googleapi.Error{
3834			Code:   res.StatusCode,
3835			Header: res.Header,
3836		}
3837	}
3838	if err != nil {
3839		return nil, err
3840	}
3841	defer googleapi.CloseBody(res)
3842	if err := googleapi.CheckResponse(res); err != nil {
3843		return nil, err
3844	}
3845	ret := &CompleteQueryResponse{
3846		ServerResponse: googleapi.ServerResponse{
3847			Header:         res.Header,
3848			HTTPStatusCode: res.StatusCode,
3849		},
3850	}
3851	target := &ret
3852	if err := gensupport.DecodeResponse(target, res); err != nil {
3853		return nil, err
3854	}
3855	return ret, nil
3856	// {
3857	//   "description": "Completes the specified prefix with keyword suggestions. Intended for use by a job search auto-complete search box.",
3858	//   "flatPath": "v3/projects/{projectsId}:complete",
3859	//   "httpMethod": "GET",
3860	//   "id": "jobs.projects.complete",
3861	//   "parameterOrder": [
3862	//     "name"
3863	//   ],
3864	//   "parameters": {
3865	//     "companyName": {
3866	//       "description": "Optional. If provided, restricts completion to specified company. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".",
3867	//       "location": "query",
3868	//       "type": "string"
3869	//     },
3870	//     "languageCode": {
3871	//       "description": "Deprecated. Use language_codes instead. Optional. 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 the same language_code are returned. For CompletionType.COMPANY_NAME type, only companies having open jobs with the same language_code are returned. For CompletionType.COMBINED type, only open jobs with the same language_code or companies having open jobs with the same language_code are returned. The maximum number of allowed characters is 255.",
3872	//       "location": "query",
3873	//       "type": "string"
3874	//     },
3875	//     "languageCodes": {
3876	//       "description": "Optional. The list of languages 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 the same language_codes are returned. For CompletionType.COMPANY_NAME type, only companies having open jobs with the same language_codes are returned. For CompletionType.COMBINED type, only open jobs with the same language_codes or companies having open jobs with the same language_codes are returned. The maximum number of allowed characters is 255.",
3877	//       "location": "query",
3878	//       "repeated": true,
3879	//       "type": "string"
3880	//     },
3881	//     "name": {
3882	//       "description": "Required. Resource name of project the completion is performed within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".",
3883	//       "location": "path",
3884	//       "pattern": "^projects/[^/]+$",
3885	//       "required": true,
3886	//       "type": "string"
3887	//     },
3888	//     "pageSize": {
3889	//       "description": "Required. Completion result count. The maximum allowed page size is 10.",
3890	//       "format": "int32",
3891	//       "location": "query",
3892	//       "type": "integer"
3893	//     },
3894	//     "query": {
3895	//       "description": "Required. The query used to generate suggestions. The maximum number of allowed characters is 255.",
3896	//       "location": "query",
3897	//       "type": "string"
3898	//     },
3899	//     "scope": {
3900	//       "description": "Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.",
3901	//       "enum": [
3902	//         "COMPLETION_SCOPE_UNSPECIFIED",
3903	//         "TENANT",
3904	//         "PUBLIC"
3905	//       ],
3906	//       "enumDescriptions": [
3907	//         "Default value.",
3908	//         "Suggestions are based only on the data provided by the client.",
3909	//         "Suggestions are based on all jobs data in the system that's visible to the client"
3910	//       ],
3911	//       "location": "query",
3912	//       "type": "string"
3913	//     },
3914	//     "type": {
3915	//       "description": "Optional. The completion topic. The default is CompletionType.COMBINED.",
3916	//       "enum": [
3917	//         "COMPLETION_TYPE_UNSPECIFIED",
3918	//         "JOB_TITLE",
3919	//         "COMPANY_NAME",
3920	//         "COMBINED"
3921	//       ],
3922	//       "enumDescriptions": [
3923	//         "Default value.",
3924	//         "Only suggest job titles.",
3925	//         "Only suggest company names.",
3926	//         "Suggest both job titles and company names."
3927	//       ],
3928	//       "location": "query",
3929	//       "type": "string"
3930	//     }
3931	//   },
3932	//   "path": "v3/{+name}:complete",
3933	//   "response": {
3934	//     "$ref": "CompleteQueryResponse"
3935	//   },
3936	//   "scopes": [
3937	//     "https://www.googleapis.com/auth/cloud-platform",
3938	//     "https://www.googleapis.com/auth/jobs"
3939	//   ]
3940	// }
3941
3942}
3943
3944// method id "jobs.projects.clientEvents.create":
3945
3946type ProjectsClientEventsCreateCall struct {
3947	s                        *Service
3948	parent                   string
3949	createclienteventrequest *CreateClientEventRequest
3950	urlParams_               gensupport.URLParams
3951	ctx_                     context.Context
3952	header_                  http.Header
3953}
3954
3955// Create: Report events issued when end user interacts with customer's
3956// application that uses Cloud Talent Solution. You may inspect the
3957// created events in self service tools
3958// (https://console.cloud.google.com/talent-solution/overview). Learn
3959// more (https://cloud.google.com/talent-solution/docs/management-tools)
3960// about self service tools.
3961//
3962// - parent: Parent project name.
3963func (r *ProjectsClientEventsService) Create(parent string, createclienteventrequest *CreateClientEventRequest) *ProjectsClientEventsCreateCall {
3964	c := &ProjectsClientEventsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3965	c.parent = parent
3966	c.createclienteventrequest = createclienteventrequest
3967	return c
3968}
3969
3970// Fields allows partial responses to be retrieved. See
3971// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3972// for more information.
3973func (c *ProjectsClientEventsCreateCall) Fields(s ...googleapi.Field) *ProjectsClientEventsCreateCall {
3974	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3975	return c
3976}
3977
3978// Context sets the context to be used in this call's Do method. Any
3979// pending HTTP request will be aborted if the provided context is
3980// canceled.
3981func (c *ProjectsClientEventsCreateCall) Context(ctx context.Context) *ProjectsClientEventsCreateCall {
3982	c.ctx_ = ctx
3983	return c
3984}
3985
3986// Header returns an http.Header that can be modified by the caller to
3987// add HTTP headers to the request.
3988func (c *ProjectsClientEventsCreateCall) Header() http.Header {
3989	if c.header_ == nil {
3990		c.header_ = make(http.Header)
3991	}
3992	return c.header_
3993}
3994
3995func (c *ProjectsClientEventsCreateCall) doRequest(alt string) (*http.Response, error) {
3996	reqHeaders := make(http.Header)
3997	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
3998	for k, v := range c.header_ {
3999		reqHeaders[k] = v
4000	}
4001	reqHeaders.Set("User-Agent", c.s.userAgent())
4002	var body io.Reader = nil
4003	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createclienteventrequest)
4004	if err != nil {
4005		return nil, err
4006	}
4007	reqHeaders.Set("Content-Type", "application/json")
4008	c.urlParams_.Set("alt", alt)
4009	c.urlParams_.Set("prettyPrint", "false")
4010	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+parent}/clientEvents")
4011	urls += "?" + c.urlParams_.Encode()
4012	req, err := http.NewRequest("POST", urls, body)
4013	if err != nil {
4014		return nil, err
4015	}
4016	req.Header = reqHeaders
4017	googleapi.Expand(req.URL, map[string]string{
4018		"parent": c.parent,
4019	})
4020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4021}
4022
4023// Do executes the "jobs.projects.clientEvents.create" call.
4024// Exactly one of *ClientEvent or error will be non-nil. Any non-2xx
4025// status code is an error. Response headers are in either
4026// *ClientEvent.ServerResponse.Header or (if a response was returned at
4027// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4028// to check whether the returned error was because
4029// http.StatusNotModified was returned.
4030func (c *ProjectsClientEventsCreateCall) Do(opts ...googleapi.CallOption) (*ClientEvent, error) {
4031	gensupport.SetOptions(c.urlParams_, opts...)
4032	res, err := c.doRequest("json")
4033	if res != nil && res.StatusCode == http.StatusNotModified {
4034		if res.Body != nil {
4035			res.Body.Close()
4036		}
4037		return nil, &googleapi.Error{
4038			Code:   res.StatusCode,
4039			Header: res.Header,
4040		}
4041	}
4042	if err != nil {
4043		return nil, err
4044	}
4045	defer googleapi.CloseBody(res)
4046	if err := googleapi.CheckResponse(res); err != nil {
4047		return nil, err
4048	}
4049	ret := &ClientEvent{
4050		ServerResponse: googleapi.ServerResponse{
4051			Header:         res.Header,
4052			HTTPStatusCode: res.StatusCode,
4053		},
4054	}
4055	target := &ret
4056	if err := gensupport.DecodeResponse(target, res); err != nil {
4057		return nil, err
4058	}
4059	return ret, nil
4060	// {
4061	//   "description": "Report events issued when end user interacts with customer's application that uses Cloud Talent Solution. You may inspect the created events in [self service tools](https://console.cloud.google.com/talent-solution/overview). [Learn more](https://cloud.google.com/talent-solution/docs/management-tools) about self service tools.",
4062	//   "flatPath": "v3/projects/{projectsId}/clientEvents",
4063	//   "httpMethod": "POST",
4064	//   "id": "jobs.projects.clientEvents.create",
4065	//   "parameterOrder": [
4066	//     "parent"
4067	//   ],
4068	//   "parameters": {
4069	//     "parent": {
4070	//       "description": "Parent project name.",
4071	//       "location": "path",
4072	//       "pattern": "^projects/[^/]+$",
4073	//       "required": true,
4074	//       "type": "string"
4075	//     }
4076	//   },
4077	//   "path": "v3/{+parent}/clientEvents",
4078	//   "request": {
4079	//     "$ref": "CreateClientEventRequest"
4080	//   },
4081	//   "response": {
4082	//     "$ref": "ClientEvent"
4083	//   },
4084	//   "scopes": [
4085	//     "https://www.googleapis.com/auth/cloud-platform",
4086	//     "https://www.googleapis.com/auth/jobs"
4087	//   ]
4088	// }
4089
4090}
4091
4092// method id "jobs.projects.companies.create":
4093
4094type ProjectsCompaniesCreateCall struct {
4095	s                    *Service
4096	parent               string
4097	createcompanyrequest *CreateCompanyRequest
4098	urlParams_           gensupport.URLParams
4099	ctx_                 context.Context
4100	header_              http.Header
4101}
4102
4103// Create: Creates a new company entity.
4104//
4105// - parent: Resource name of the project under which the company is
4106//   created. The format is "projects/{project_id}", for example,
4107//   "projects/api-test-project".
4108func (r *ProjectsCompaniesService) Create(parent string, createcompanyrequest *CreateCompanyRequest) *ProjectsCompaniesCreateCall {
4109	c := &ProjectsCompaniesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4110	c.parent = parent
4111	c.createcompanyrequest = createcompanyrequest
4112	return c
4113}
4114
4115// Fields allows partial responses to be retrieved. See
4116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4117// for more information.
4118func (c *ProjectsCompaniesCreateCall) Fields(s ...googleapi.Field) *ProjectsCompaniesCreateCall {
4119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4120	return c
4121}
4122
4123// Context sets the context to be used in this call's Do method. Any
4124// pending HTTP request will be aborted if the provided context is
4125// canceled.
4126func (c *ProjectsCompaniesCreateCall) Context(ctx context.Context) *ProjectsCompaniesCreateCall {
4127	c.ctx_ = ctx
4128	return c
4129}
4130
4131// Header returns an http.Header that can be modified by the caller to
4132// add HTTP headers to the request.
4133func (c *ProjectsCompaniesCreateCall) Header() http.Header {
4134	if c.header_ == nil {
4135		c.header_ = make(http.Header)
4136	}
4137	return c.header_
4138}
4139
4140func (c *ProjectsCompaniesCreateCall) doRequest(alt string) (*http.Response, error) {
4141	reqHeaders := make(http.Header)
4142	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4143	for k, v := range c.header_ {
4144		reqHeaders[k] = v
4145	}
4146	reqHeaders.Set("User-Agent", c.s.userAgent())
4147	var body io.Reader = nil
4148	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createcompanyrequest)
4149	if err != nil {
4150		return nil, err
4151	}
4152	reqHeaders.Set("Content-Type", "application/json")
4153	c.urlParams_.Set("alt", alt)
4154	c.urlParams_.Set("prettyPrint", "false")
4155	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+parent}/companies")
4156	urls += "?" + c.urlParams_.Encode()
4157	req, err := http.NewRequest("POST", urls, body)
4158	if err != nil {
4159		return nil, err
4160	}
4161	req.Header = reqHeaders
4162	googleapi.Expand(req.URL, map[string]string{
4163		"parent": c.parent,
4164	})
4165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4166}
4167
4168// Do executes the "jobs.projects.companies.create" call.
4169// Exactly one of *Company or error will be non-nil. Any non-2xx status
4170// code is an error. Response headers are in either
4171// *Company.ServerResponse.Header or (if a response was returned at all)
4172// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4173// check whether the returned error was because http.StatusNotModified
4174// was returned.
4175func (c *ProjectsCompaniesCreateCall) Do(opts ...googleapi.CallOption) (*Company, error) {
4176	gensupport.SetOptions(c.urlParams_, opts...)
4177	res, err := c.doRequest("json")
4178	if res != nil && res.StatusCode == http.StatusNotModified {
4179		if res.Body != nil {
4180			res.Body.Close()
4181		}
4182		return nil, &googleapi.Error{
4183			Code:   res.StatusCode,
4184			Header: res.Header,
4185		}
4186	}
4187	if err != nil {
4188		return nil, err
4189	}
4190	defer googleapi.CloseBody(res)
4191	if err := googleapi.CheckResponse(res); err != nil {
4192		return nil, err
4193	}
4194	ret := &Company{
4195		ServerResponse: googleapi.ServerResponse{
4196			Header:         res.Header,
4197			HTTPStatusCode: res.StatusCode,
4198		},
4199	}
4200	target := &ret
4201	if err := gensupport.DecodeResponse(target, res); err != nil {
4202		return nil, err
4203	}
4204	return ret, nil
4205	// {
4206	//   "description": "Creates a new company entity.",
4207	//   "flatPath": "v3/projects/{projectsId}/companies",
4208	//   "httpMethod": "POST",
4209	//   "id": "jobs.projects.companies.create",
4210	//   "parameterOrder": [
4211	//     "parent"
4212	//   ],
4213	//   "parameters": {
4214	//     "parent": {
4215	//       "description": "Required. Resource name of the project under which the company is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".",
4216	//       "location": "path",
4217	//       "pattern": "^projects/[^/]+$",
4218	//       "required": true,
4219	//       "type": "string"
4220	//     }
4221	//   },
4222	//   "path": "v3/{+parent}/companies",
4223	//   "request": {
4224	//     "$ref": "CreateCompanyRequest"
4225	//   },
4226	//   "response": {
4227	//     "$ref": "Company"
4228	//   },
4229	//   "scopes": [
4230	//     "https://www.googleapis.com/auth/cloud-platform",
4231	//     "https://www.googleapis.com/auth/jobs"
4232	//   ]
4233	// }
4234
4235}
4236
4237// method id "jobs.projects.companies.delete":
4238
4239type ProjectsCompaniesDeleteCall struct {
4240	s          *Service
4241	name       string
4242	urlParams_ gensupport.URLParams
4243	ctx_       context.Context
4244	header_    http.Header
4245}
4246
4247// Delete: Deletes specified company. Prerequisite: The company has no
4248// jobs associated with it.
4249//
4250// - name: The resource name of the company to be deleted. The format is
4251//   "projects/{project_id}/companies/{company_id}", for example,
4252//   "projects/api-test-project/companies/foo".
4253func (r *ProjectsCompaniesService) Delete(name string) *ProjectsCompaniesDeleteCall {
4254	c := &ProjectsCompaniesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4255	c.name = name
4256	return c
4257}
4258
4259// Fields allows partial responses to be retrieved. See
4260// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4261// for more information.
4262func (c *ProjectsCompaniesDeleteCall) Fields(s ...googleapi.Field) *ProjectsCompaniesDeleteCall {
4263	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4264	return c
4265}
4266
4267// Context sets the context to be used in this call's Do method. Any
4268// pending HTTP request will be aborted if the provided context is
4269// canceled.
4270func (c *ProjectsCompaniesDeleteCall) Context(ctx context.Context) *ProjectsCompaniesDeleteCall {
4271	c.ctx_ = ctx
4272	return c
4273}
4274
4275// Header returns an http.Header that can be modified by the caller to
4276// add HTTP headers to the request.
4277func (c *ProjectsCompaniesDeleteCall) Header() http.Header {
4278	if c.header_ == nil {
4279		c.header_ = make(http.Header)
4280	}
4281	return c.header_
4282}
4283
4284func (c *ProjectsCompaniesDeleteCall) doRequest(alt string) (*http.Response, error) {
4285	reqHeaders := make(http.Header)
4286	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4287	for k, v := range c.header_ {
4288		reqHeaders[k] = v
4289	}
4290	reqHeaders.Set("User-Agent", c.s.userAgent())
4291	var body io.Reader = nil
4292	c.urlParams_.Set("alt", alt)
4293	c.urlParams_.Set("prettyPrint", "false")
4294	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+name}")
4295	urls += "?" + c.urlParams_.Encode()
4296	req, err := http.NewRequest("DELETE", urls, body)
4297	if err != nil {
4298		return nil, err
4299	}
4300	req.Header = reqHeaders
4301	googleapi.Expand(req.URL, map[string]string{
4302		"name": c.name,
4303	})
4304	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4305}
4306
4307// Do executes the "jobs.projects.companies.delete" call.
4308// Exactly one of *Empty or error will be non-nil. Any non-2xx status
4309// code is an error. Response headers are in either
4310// *Empty.ServerResponse.Header or (if a response was returned at all)
4311// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4312// check whether the returned error was because http.StatusNotModified
4313// was returned.
4314func (c *ProjectsCompaniesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
4315	gensupport.SetOptions(c.urlParams_, opts...)
4316	res, err := c.doRequest("json")
4317	if res != nil && res.StatusCode == http.StatusNotModified {
4318		if res.Body != nil {
4319			res.Body.Close()
4320		}
4321		return nil, &googleapi.Error{
4322			Code:   res.StatusCode,
4323			Header: res.Header,
4324		}
4325	}
4326	if err != nil {
4327		return nil, err
4328	}
4329	defer googleapi.CloseBody(res)
4330	if err := googleapi.CheckResponse(res); err != nil {
4331		return nil, err
4332	}
4333	ret := &Empty{
4334		ServerResponse: googleapi.ServerResponse{
4335			Header:         res.Header,
4336			HTTPStatusCode: res.StatusCode,
4337		},
4338	}
4339	target := &ret
4340	if err := gensupport.DecodeResponse(target, res); err != nil {
4341		return nil, err
4342	}
4343	return ret, nil
4344	// {
4345	//   "description": "Deletes specified company. Prerequisite: The company has no jobs associated with it.",
4346	//   "flatPath": "v3/projects/{projectsId}/companies/{companiesId}",
4347	//   "httpMethod": "DELETE",
4348	//   "id": "jobs.projects.companies.delete",
4349	//   "parameterOrder": [
4350	//     "name"
4351	//   ],
4352	//   "parameters": {
4353	//     "name": {
4354	//       "description": "Required. The resource name of the company to be deleted. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".",
4355	//       "location": "path",
4356	//       "pattern": "^projects/[^/]+/companies/[^/]+$",
4357	//       "required": true,
4358	//       "type": "string"
4359	//     }
4360	//   },
4361	//   "path": "v3/{+name}",
4362	//   "response": {
4363	//     "$ref": "Empty"
4364	//   },
4365	//   "scopes": [
4366	//     "https://www.googleapis.com/auth/cloud-platform",
4367	//     "https://www.googleapis.com/auth/jobs"
4368	//   ]
4369	// }
4370
4371}
4372
4373// method id "jobs.projects.companies.get":
4374
4375type ProjectsCompaniesGetCall struct {
4376	s            *Service
4377	name         string
4378	urlParams_   gensupport.URLParams
4379	ifNoneMatch_ string
4380	ctx_         context.Context
4381	header_      http.Header
4382}
4383
4384// Get: Retrieves specified company.
4385//
4386// - name: The resource name of the company to be retrieved. The format
4387//   is "projects/{project_id}/companies/{company_id}", for example,
4388//   "projects/api-test-project/companies/foo".
4389func (r *ProjectsCompaniesService) Get(name string) *ProjectsCompaniesGetCall {
4390	c := &ProjectsCompaniesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4391	c.name = name
4392	return c
4393}
4394
4395// Fields allows partial responses to be retrieved. See
4396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4397// for more information.
4398func (c *ProjectsCompaniesGetCall) Fields(s ...googleapi.Field) *ProjectsCompaniesGetCall {
4399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4400	return c
4401}
4402
4403// IfNoneMatch sets the optional parameter which makes the operation
4404// fail if the object's ETag matches the given value. This is useful for
4405// getting updates only after the object has changed since the last
4406// request. Use googleapi.IsNotModified to check whether the response
4407// error from Do is the result of In-None-Match.
4408func (c *ProjectsCompaniesGetCall) IfNoneMatch(entityTag string) *ProjectsCompaniesGetCall {
4409	c.ifNoneMatch_ = entityTag
4410	return c
4411}
4412
4413// Context sets the context to be used in this call's Do method. Any
4414// pending HTTP request will be aborted if the provided context is
4415// canceled.
4416func (c *ProjectsCompaniesGetCall) Context(ctx context.Context) *ProjectsCompaniesGetCall {
4417	c.ctx_ = ctx
4418	return c
4419}
4420
4421// Header returns an http.Header that can be modified by the caller to
4422// add HTTP headers to the request.
4423func (c *ProjectsCompaniesGetCall) Header() http.Header {
4424	if c.header_ == nil {
4425		c.header_ = make(http.Header)
4426	}
4427	return c.header_
4428}
4429
4430func (c *ProjectsCompaniesGetCall) doRequest(alt string) (*http.Response, error) {
4431	reqHeaders := make(http.Header)
4432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4433	for k, v := range c.header_ {
4434		reqHeaders[k] = v
4435	}
4436	reqHeaders.Set("User-Agent", c.s.userAgent())
4437	if c.ifNoneMatch_ != "" {
4438		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4439	}
4440	var body io.Reader = nil
4441	c.urlParams_.Set("alt", alt)
4442	c.urlParams_.Set("prettyPrint", "false")
4443	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+name}")
4444	urls += "?" + c.urlParams_.Encode()
4445	req, err := http.NewRequest("GET", urls, body)
4446	if err != nil {
4447		return nil, err
4448	}
4449	req.Header = reqHeaders
4450	googleapi.Expand(req.URL, map[string]string{
4451		"name": c.name,
4452	})
4453	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4454}
4455
4456// Do executes the "jobs.projects.companies.get" call.
4457// Exactly one of *Company or error will be non-nil. Any non-2xx status
4458// code is an error. Response headers are in either
4459// *Company.ServerResponse.Header or (if a response was returned at all)
4460// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4461// check whether the returned error was because http.StatusNotModified
4462// was returned.
4463func (c *ProjectsCompaniesGetCall) Do(opts ...googleapi.CallOption) (*Company, error) {
4464	gensupport.SetOptions(c.urlParams_, opts...)
4465	res, err := c.doRequest("json")
4466	if res != nil && res.StatusCode == http.StatusNotModified {
4467		if res.Body != nil {
4468			res.Body.Close()
4469		}
4470		return nil, &googleapi.Error{
4471			Code:   res.StatusCode,
4472			Header: res.Header,
4473		}
4474	}
4475	if err != nil {
4476		return nil, err
4477	}
4478	defer googleapi.CloseBody(res)
4479	if err := googleapi.CheckResponse(res); err != nil {
4480		return nil, err
4481	}
4482	ret := &Company{
4483		ServerResponse: googleapi.ServerResponse{
4484			Header:         res.Header,
4485			HTTPStatusCode: res.StatusCode,
4486		},
4487	}
4488	target := &ret
4489	if err := gensupport.DecodeResponse(target, res); err != nil {
4490		return nil, err
4491	}
4492	return ret, nil
4493	// {
4494	//   "description": "Retrieves specified company.",
4495	//   "flatPath": "v3/projects/{projectsId}/companies/{companiesId}",
4496	//   "httpMethod": "GET",
4497	//   "id": "jobs.projects.companies.get",
4498	//   "parameterOrder": [
4499	//     "name"
4500	//   ],
4501	//   "parameters": {
4502	//     "name": {
4503	//       "description": "Required. The resource name of the company to be retrieved. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".",
4504	//       "location": "path",
4505	//       "pattern": "^projects/[^/]+/companies/[^/]+$",
4506	//       "required": true,
4507	//       "type": "string"
4508	//     }
4509	//   },
4510	//   "path": "v3/{+name}",
4511	//   "response": {
4512	//     "$ref": "Company"
4513	//   },
4514	//   "scopes": [
4515	//     "https://www.googleapis.com/auth/cloud-platform",
4516	//     "https://www.googleapis.com/auth/jobs"
4517	//   ]
4518	// }
4519
4520}
4521
4522// method id "jobs.projects.companies.list":
4523
4524type ProjectsCompaniesListCall struct {
4525	s            *Service
4526	parent       string
4527	urlParams_   gensupport.URLParams
4528	ifNoneMatch_ string
4529	ctx_         context.Context
4530	header_      http.Header
4531}
4532
4533// List: Lists all companies associated with the service account.
4534//
4535// - parent: Resource name of the project under which the company is
4536//   created. The format is "projects/{project_id}", for example,
4537//   "projects/api-test-project".
4538func (r *ProjectsCompaniesService) List(parent string) *ProjectsCompaniesListCall {
4539	c := &ProjectsCompaniesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4540	c.parent = parent
4541	return c
4542}
4543
4544// PageSize sets the optional parameter "pageSize": The maximum number
4545// of companies to be returned, at most 100. Default is 100 if a
4546// non-positive number is provided.
4547func (c *ProjectsCompaniesListCall) PageSize(pageSize int64) *ProjectsCompaniesListCall {
4548	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
4549	return c
4550}
4551
4552// PageToken sets the optional parameter "pageToken": The starting
4553// indicator from which to return results.
4554func (c *ProjectsCompaniesListCall) PageToken(pageToken string) *ProjectsCompaniesListCall {
4555	c.urlParams_.Set("pageToken", pageToken)
4556	return c
4557}
4558
4559// RequireOpenJobs sets the optional parameter "requireOpenJobs": Set to
4560// true if the companies requested must have open jobs. Defaults to
4561// false. If true, at most page_size of companies are fetched, among
4562// which only those with open jobs are returned.
4563func (c *ProjectsCompaniesListCall) RequireOpenJobs(requireOpenJobs bool) *ProjectsCompaniesListCall {
4564	c.urlParams_.Set("requireOpenJobs", fmt.Sprint(requireOpenJobs))
4565	return c
4566}
4567
4568// Fields allows partial responses to be retrieved. See
4569// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4570// for more information.
4571func (c *ProjectsCompaniesListCall) Fields(s ...googleapi.Field) *ProjectsCompaniesListCall {
4572	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4573	return c
4574}
4575
4576// IfNoneMatch sets the optional parameter which makes the operation
4577// fail if the object's ETag matches the given value. This is useful for
4578// getting updates only after the object has changed since the last
4579// request. Use googleapi.IsNotModified to check whether the response
4580// error from Do is the result of In-None-Match.
4581func (c *ProjectsCompaniesListCall) IfNoneMatch(entityTag string) *ProjectsCompaniesListCall {
4582	c.ifNoneMatch_ = entityTag
4583	return c
4584}
4585
4586// Context sets the context to be used in this call's Do method. Any
4587// pending HTTP request will be aborted if the provided context is
4588// canceled.
4589func (c *ProjectsCompaniesListCall) Context(ctx context.Context) *ProjectsCompaniesListCall {
4590	c.ctx_ = ctx
4591	return c
4592}
4593
4594// Header returns an http.Header that can be modified by the caller to
4595// add HTTP headers to the request.
4596func (c *ProjectsCompaniesListCall) Header() http.Header {
4597	if c.header_ == nil {
4598		c.header_ = make(http.Header)
4599	}
4600	return c.header_
4601}
4602
4603func (c *ProjectsCompaniesListCall) doRequest(alt string) (*http.Response, error) {
4604	reqHeaders := make(http.Header)
4605	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4606	for k, v := range c.header_ {
4607		reqHeaders[k] = v
4608	}
4609	reqHeaders.Set("User-Agent", c.s.userAgent())
4610	if c.ifNoneMatch_ != "" {
4611		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4612	}
4613	var body io.Reader = nil
4614	c.urlParams_.Set("alt", alt)
4615	c.urlParams_.Set("prettyPrint", "false")
4616	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+parent}/companies")
4617	urls += "?" + c.urlParams_.Encode()
4618	req, err := http.NewRequest("GET", urls, body)
4619	if err != nil {
4620		return nil, err
4621	}
4622	req.Header = reqHeaders
4623	googleapi.Expand(req.URL, map[string]string{
4624		"parent": c.parent,
4625	})
4626	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4627}
4628
4629// Do executes the "jobs.projects.companies.list" call.
4630// Exactly one of *ListCompaniesResponse or error will be non-nil. Any
4631// non-2xx status code is an error. Response headers are in either
4632// *ListCompaniesResponse.ServerResponse.Header or (if a response was
4633// returned at all) in error.(*googleapi.Error).Header. Use
4634// googleapi.IsNotModified to check whether the returned error was
4635// because http.StatusNotModified was returned.
4636func (c *ProjectsCompaniesListCall) Do(opts ...googleapi.CallOption) (*ListCompaniesResponse, error) {
4637	gensupport.SetOptions(c.urlParams_, opts...)
4638	res, err := c.doRequest("json")
4639	if res != nil && res.StatusCode == http.StatusNotModified {
4640		if res.Body != nil {
4641			res.Body.Close()
4642		}
4643		return nil, &googleapi.Error{
4644			Code:   res.StatusCode,
4645			Header: res.Header,
4646		}
4647	}
4648	if err != nil {
4649		return nil, err
4650	}
4651	defer googleapi.CloseBody(res)
4652	if err := googleapi.CheckResponse(res); err != nil {
4653		return nil, err
4654	}
4655	ret := &ListCompaniesResponse{
4656		ServerResponse: googleapi.ServerResponse{
4657			Header:         res.Header,
4658			HTTPStatusCode: res.StatusCode,
4659		},
4660	}
4661	target := &ret
4662	if err := gensupport.DecodeResponse(target, res); err != nil {
4663		return nil, err
4664	}
4665	return ret, nil
4666	// {
4667	//   "description": "Lists all companies associated with the service account.",
4668	//   "flatPath": "v3/projects/{projectsId}/companies",
4669	//   "httpMethod": "GET",
4670	//   "id": "jobs.projects.companies.list",
4671	//   "parameterOrder": [
4672	//     "parent"
4673	//   ],
4674	//   "parameters": {
4675	//     "pageSize": {
4676	//       "description": "Optional. The maximum number of companies to be returned, at most 100. Default is 100 if a non-positive number is provided.",
4677	//       "format": "int32",
4678	//       "location": "query",
4679	//       "type": "integer"
4680	//     },
4681	//     "pageToken": {
4682	//       "description": "Optional. The starting indicator from which to return results.",
4683	//       "location": "query",
4684	//       "type": "string"
4685	//     },
4686	//     "parent": {
4687	//       "description": "Required. Resource name of the project under which the company is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".",
4688	//       "location": "path",
4689	//       "pattern": "^projects/[^/]+$",
4690	//       "required": true,
4691	//       "type": "string"
4692	//     },
4693	//     "requireOpenJobs": {
4694	//       "description": "Optional. Set to true if the companies requested 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.",
4695	//       "location": "query",
4696	//       "type": "boolean"
4697	//     }
4698	//   },
4699	//   "path": "v3/{+parent}/companies",
4700	//   "response": {
4701	//     "$ref": "ListCompaniesResponse"
4702	//   },
4703	//   "scopes": [
4704	//     "https://www.googleapis.com/auth/cloud-platform",
4705	//     "https://www.googleapis.com/auth/jobs"
4706	//   ]
4707	// }
4708
4709}
4710
4711// Pages invokes f for each page of results.
4712// A non-nil error returned from f will halt the iteration.
4713// The provided context supersedes any context provided to the Context method.
4714func (c *ProjectsCompaniesListCall) Pages(ctx context.Context, f func(*ListCompaniesResponse) error) error {
4715	c.ctx_ = ctx
4716	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
4717	for {
4718		x, err := c.Do()
4719		if err != nil {
4720			return err
4721		}
4722		if err := f(x); err != nil {
4723			return err
4724		}
4725		if x.NextPageToken == "" {
4726			return nil
4727		}
4728		c.PageToken(x.NextPageToken)
4729	}
4730}
4731
4732// method id "jobs.projects.companies.patch":
4733
4734type ProjectsCompaniesPatchCall struct {
4735	s                    *Service
4736	name                 string
4737	updatecompanyrequest *UpdateCompanyRequest
4738	urlParams_           gensupport.URLParams
4739	ctx_                 context.Context
4740	header_              http.Header
4741}
4742
4743// Patch: Updates specified company. Company names can't be updated. To
4744// update a company name, delete the company and all jobs associated
4745// with it, and only then re-create them.
4746//
4747// - name: Required during company update. The resource name for a
4748//   company. This is generated by the service when a company is
4749//   created. The format is
4750//   "projects/{project_id}/companies/{company_id}", for example,
4751//   "projects/api-test-project/companies/foo".
4752func (r *ProjectsCompaniesService) Patch(name string, updatecompanyrequest *UpdateCompanyRequest) *ProjectsCompaniesPatchCall {
4753	c := &ProjectsCompaniesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4754	c.name = name
4755	c.updatecompanyrequest = updatecompanyrequest
4756	return c
4757}
4758
4759// Fields allows partial responses to be retrieved. See
4760// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4761// for more information.
4762func (c *ProjectsCompaniesPatchCall) Fields(s ...googleapi.Field) *ProjectsCompaniesPatchCall {
4763	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4764	return c
4765}
4766
4767// Context sets the context to be used in this call's Do method. Any
4768// pending HTTP request will be aborted if the provided context is
4769// canceled.
4770func (c *ProjectsCompaniesPatchCall) Context(ctx context.Context) *ProjectsCompaniesPatchCall {
4771	c.ctx_ = ctx
4772	return c
4773}
4774
4775// Header returns an http.Header that can be modified by the caller to
4776// add HTTP headers to the request.
4777func (c *ProjectsCompaniesPatchCall) Header() http.Header {
4778	if c.header_ == nil {
4779		c.header_ = make(http.Header)
4780	}
4781	return c.header_
4782}
4783
4784func (c *ProjectsCompaniesPatchCall) doRequest(alt string) (*http.Response, error) {
4785	reqHeaders := make(http.Header)
4786	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4787	for k, v := range c.header_ {
4788		reqHeaders[k] = v
4789	}
4790	reqHeaders.Set("User-Agent", c.s.userAgent())
4791	var body io.Reader = nil
4792	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatecompanyrequest)
4793	if err != nil {
4794		return nil, err
4795	}
4796	reqHeaders.Set("Content-Type", "application/json")
4797	c.urlParams_.Set("alt", alt)
4798	c.urlParams_.Set("prettyPrint", "false")
4799	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+name}")
4800	urls += "?" + c.urlParams_.Encode()
4801	req, err := http.NewRequest("PATCH", urls, body)
4802	if err != nil {
4803		return nil, err
4804	}
4805	req.Header = reqHeaders
4806	googleapi.Expand(req.URL, map[string]string{
4807		"name": c.name,
4808	})
4809	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4810}
4811
4812// Do executes the "jobs.projects.companies.patch" call.
4813// Exactly one of *Company or error will be non-nil. Any non-2xx status
4814// code is an error. Response headers are in either
4815// *Company.ServerResponse.Header or (if a response was returned at all)
4816// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4817// check whether the returned error was because http.StatusNotModified
4818// was returned.
4819func (c *ProjectsCompaniesPatchCall) Do(opts ...googleapi.CallOption) (*Company, error) {
4820	gensupport.SetOptions(c.urlParams_, opts...)
4821	res, err := c.doRequest("json")
4822	if res != nil && res.StatusCode == http.StatusNotModified {
4823		if res.Body != nil {
4824			res.Body.Close()
4825		}
4826		return nil, &googleapi.Error{
4827			Code:   res.StatusCode,
4828			Header: res.Header,
4829		}
4830	}
4831	if err != nil {
4832		return nil, err
4833	}
4834	defer googleapi.CloseBody(res)
4835	if err := googleapi.CheckResponse(res); err != nil {
4836		return nil, err
4837	}
4838	ret := &Company{
4839		ServerResponse: googleapi.ServerResponse{
4840			Header:         res.Header,
4841			HTTPStatusCode: res.StatusCode,
4842		},
4843	}
4844	target := &ret
4845	if err := gensupport.DecodeResponse(target, res); err != nil {
4846		return nil, err
4847	}
4848	return ret, nil
4849	// {
4850	//   "description": "Updates 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.",
4851	//   "flatPath": "v3/projects/{projectsId}/companies/{companiesId}",
4852	//   "httpMethod": "PATCH",
4853	//   "id": "jobs.projects.companies.patch",
4854	//   "parameterOrder": [
4855	//     "name"
4856	//   ],
4857	//   "parameters": {
4858	//     "name": {
4859	//       "description": "Required during company update. The resource name for a company. This is generated by the service when a company is created. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".",
4860	//       "location": "path",
4861	//       "pattern": "^projects/[^/]+/companies/[^/]+$",
4862	//       "required": true,
4863	//       "type": "string"
4864	//     }
4865	//   },
4866	//   "path": "v3/{+name}",
4867	//   "request": {
4868	//     "$ref": "UpdateCompanyRequest"
4869	//   },
4870	//   "response": {
4871	//     "$ref": "Company"
4872	//   },
4873	//   "scopes": [
4874	//     "https://www.googleapis.com/auth/cloud-platform",
4875	//     "https://www.googleapis.com/auth/jobs"
4876	//   ]
4877	// }
4878
4879}
4880
4881// method id "jobs.projects.jobs.batchDelete":
4882
4883type ProjectsJobsBatchDeleteCall struct {
4884	s                      *Service
4885	parent                 string
4886	batchdeletejobsrequest *BatchDeleteJobsRequest
4887	urlParams_             gensupport.URLParams
4888	ctx_                   context.Context
4889	header_                http.Header
4890}
4891
4892// BatchDelete: Deletes a list of Jobs by filter.
4893//
4894// - parent: The resource name of the project under which the job is
4895//   created. The format is "projects/{project_id}", for example,
4896//   "projects/api-test-project".
4897func (r *ProjectsJobsService) BatchDelete(parent string, batchdeletejobsrequest *BatchDeleteJobsRequest) *ProjectsJobsBatchDeleteCall {
4898	c := &ProjectsJobsBatchDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4899	c.parent = parent
4900	c.batchdeletejobsrequest = batchdeletejobsrequest
4901	return c
4902}
4903
4904// Fields allows partial responses to be retrieved. See
4905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4906// for more information.
4907func (c *ProjectsJobsBatchDeleteCall) Fields(s ...googleapi.Field) *ProjectsJobsBatchDeleteCall {
4908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4909	return c
4910}
4911
4912// Context sets the context to be used in this call's Do method. Any
4913// pending HTTP request will be aborted if the provided context is
4914// canceled.
4915func (c *ProjectsJobsBatchDeleteCall) Context(ctx context.Context) *ProjectsJobsBatchDeleteCall {
4916	c.ctx_ = ctx
4917	return c
4918}
4919
4920// Header returns an http.Header that can be modified by the caller to
4921// add HTTP headers to the request.
4922func (c *ProjectsJobsBatchDeleteCall) Header() http.Header {
4923	if c.header_ == nil {
4924		c.header_ = make(http.Header)
4925	}
4926	return c.header_
4927}
4928
4929func (c *ProjectsJobsBatchDeleteCall) doRequest(alt string) (*http.Response, error) {
4930	reqHeaders := make(http.Header)
4931	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4932	for k, v := range c.header_ {
4933		reqHeaders[k] = v
4934	}
4935	reqHeaders.Set("User-Agent", c.s.userAgent())
4936	var body io.Reader = nil
4937	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchdeletejobsrequest)
4938	if err != nil {
4939		return nil, err
4940	}
4941	reqHeaders.Set("Content-Type", "application/json")
4942	c.urlParams_.Set("alt", alt)
4943	c.urlParams_.Set("prettyPrint", "false")
4944	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+parent}/jobs:batchDelete")
4945	urls += "?" + c.urlParams_.Encode()
4946	req, err := http.NewRequest("POST", urls, body)
4947	if err != nil {
4948		return nil, err
4949	}
4950	req.Header = reqHeaders
4951	googleapi.Expand(req.URL, map[string]string{
4952		"parent": c.parent,
4953	})
4954	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4955}
4956
4957// Do executes the "jobs.projects.jobs.batchDelete" call.
4958// Exactly one of *Empty or error will be non-nil. Any non-2xx status
4959// code is an error. Response headers are in either
4960// *Empty.ServerResponse.Header or (if a response was returned at all)
4961// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4962// check whether the returned error was because http.StatusNotModified
4963// was returned.
4964func (c *ProjectsJobsBatchDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
4965	gensupport.SetOptions(c.urlParams_, opts...)
4966	res, err := c.doRequest("json")
4967	if res != nil && res.StatusCode == http.StatusNotModified {
4968		if res.Body != nil {
4969			res.Body.Close()
4970		}
4971		return nil, &googleapi.Error{
4972			Code:   res.StatusCode,
4973			Header: res.Header,
4974		}
4975	}
4976	if err != nil {
4977		return nil, err
4978	}
4979	defer googleapi.CloseBody(res)
4980	if err := googleapi.CheckResponse(res); err != nil {
4981		return nil, err
4982	}
4983	ret := &Empty{
4984		ServerResponse: googleapi.ServerResponse{
4985			Header:         res.Header,
4986			HTTPStatusCode: res.StatusCode,
4987		},
4988	}
4989	target := &ret
4990	if err := gensupport.DecodeResponse(target, res); err != nil {
4991		return nil, err
4992	}
4993	return ret, nil
4994	// {
4995	//   "description": "Deletes a list of Jobs by filter.",
4996	//   "flatPath": "v3/projects/{projectsId}/jobs:batchDelete",
4997	//   "httpMethod": "POST",
4998	//   "id": "jobs.projects.jobs.batchDelete",
4999	//   "parameterOrder": [
5000	//     "parent"
5001	//   ],
5002	//   "parameters": {
5003	//     "parent": {
5004	//       "description": "Required. The resource name of the project under which the job is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".",
5005	//       "location": "path",
5006	//       "pattern": "^projects/[^/]+$",
5007	//       "required": true,
5008	//       "type": "string"
5009	//     }
5010	//   },
5011	//   "path": "v3/{+parent}/jobs:batchDelete",
5012	//   "request": {
5013	//     "$ref": "BatchDeleteJobsRequest"
5014	//   },
5015	//   "response": {
5016	//     "$ref": "Empty"
5017	//   },
5018	//   "scopes": [
5019	//     "https://www.googleapis.com/auth/cloud-platform",
5020	//     "https://www.googleapis.com/auth/jobs"
5021	//   ]
5022	// }
5023
5024}
5025
5026// method id "jobs.projects.jobs.create":
5027
5028type ProjectsJobsCreateCall struct {
5029	s                *Service
5030	parent           string
5031	createjobrequest *CreateJobRequest
5032	urlParams_       gensupport.URLParams
5033	ctx_             context.Context
5034	header_          http.Header
5035}
5036
5037// Create: Creates a new job. Typically, the job becomes searchable
5038// within 10 seconds, but it may take up to 5 minutes.
5039//
5040// - parent: The resource name of the project under which the job is
5041//   created. The format is "projects/{project_id}", for example,
5042//   "projects/api-test-project".
5043func (r *ProjectsJobsService) Create(parent string, createjobrequest *CreateJobRequest) *ProjectsJobsCreateCall {
5044	c := &ProjectsJobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5045	c.parent = parent
5046	c.createjobrequest = createjobrequest
5047	return c
5048}
5049
5050// Fields allows partial responses to be retrieved. See
5051// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5052// for more information.
5053func (c *ProjectsJobsCreateCall) Fields(s ...googleapi.Field) *ProjectsJobsCreateCall {
5054	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5055	return c
5056}
5057
5058// Context sets the context to be used in this call's Do method. Any
5059// pending HTTP request will be aborted if the provided context is
5060// canceled.
5061func (c *ProjectsJobsCreateCall) Context(ctx context.Context) *ProjectsJobsCreateCall {
5062	c.ctx_ = ctx
5063	return c
5064}
5065
5066// Header returns an http.Header that can be modified by the caller to
5067// add HTTP headers to the request.
5068func (c *ProjectsJobsCreateCall) Header() http.Header {
5069	if c.header_ == nil {
5070		c.header_ = make(http.Header)
5071	}
5072	return c.header_
5073}
5074
5075func (c *ProjectsJobsCreateCall) doRequest(alt string) (*http.Response, error) {
5076	reqHeaders := make(http.Header)
5077	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5078	for k, v := range c.header_ {
5079		reqHeaders[k] = v
5080	}
5081	reqHeaders.Set("User-Agent", c.s.userAgent())
5082	var body io.Reader = nil
5083	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createjobrequest)
5084	if err != nil {
5085		return nil, err
5086	}
5087	reqHeaders.Set("Content-Type", "application/json")
5088	c.urlParams_.Set("alt", alt)
5089	c.urlParams_.Set("prettyPrint", "false")
5090	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+parent}/jobs")
5091	urls += "?" + c.urlParams_.Encode()
5092	req, err := http.NewRequest("POST", urls, body)
5093	if err != nil {
5094		return nil, err
5095	}
5096	req.Header = reqHeaders
5097	googleapi.Expand(req.URL, map[string]string{
5098		"parent": c.parent,
5099	})
5100	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5101}
5102
5103// Do executes the "jobs.projects.jobs.create" call.
5104// Exactly one of *Job or error will be non-nil. Any non-2xx status code
5105// is an error. Response headers are in either
5106// *Job.ServerResponse.Header or (if a response was returned at all) in
5107// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
5108// whether the returned error was because http.StatusNotModified was
5109// returned.
5110func (c *ProjectsJobsCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
5111	gensupport.SetOptions(c.urlParams_, opts...)
5112	res, err := c.doRequest("json")
5113	if res != nil && res.StatusCode == http.StatusNotModified {
5114		if res.Body != nil {
5115			res.Body.Close()
5116		}
5117		return nil, &googleapi.Error{
5118			Code:   res.StatusCode,
5119			Header: res.Header,
5120		}
5121	}
5122	if err != nil {
5123		return nil, err
5124	}
5125	defer googleapi.CloseBody(res)
5126	if err := googleapi.CheckResponse(res); err != nil {
5127		return nil, err
5128	}
5129	ret := &Job{
5130		ServerResponse: googleapi.ServerResponse{
5131			Header:         res.Header,
5132			HTTPStatusCode: res.StatusCode,
5133		},
5134	}
5135	target := &ret
5136	if err := gensupport.DecodeResponse(target, res); err != nil {
5137		return nil, err
5138	}
5139	return ret, nil
5140	// {
5141	//   "description": "Creates a new job. Typically, the job becomes searchable within 10 seconds, but it may take up to 5 minutes.",
5142	//   "flatPath": "v3/projects/{projectsId}/jobs",
5143	//   "httpMethod": "POST",
5144	//   "id": "jobs.projects.jobs.create",
5145	//   "parameterOrder": [
5146	//     "parent"
5147	//   ],
5148	//   "parameters": {
5149	//     "parent": {
5150	//       "description": "Required. The resource name of the project under which the job is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".",
5151	//       "location": "path",
5152	//       "pattern": "^projects/[^/]+$",
5153	//       "required": true,
5154	//       "type": "string"
5155	//     }
5156	//   },
5157	//   "path": "v3/{+parent}/jobs",
5158	//   "request": {
5159	//     "$ref": "CreateJobRequest"
5160	//   },
5161	//   "response": {
5162	//     "$ref": "Job"
5163	//   },
5164	//   "scopes": [
5165	//     "https://www.googleapis.com/auth/cloud-platform",
5166	//     "https://www.googleapis.com/auth/jobs"
5167	//   ]
5168	// }
5169
5170}
5171
5172// method id "jobs.projects.jobs.delete":
5173
5174type ProjectsJobsDeleteCall struct {
5175	s          *Service
5176	name       string
5177	urlParams_ gensupport.URLParams
5178	ctx_       context.Context
5179	header_    http.Header
5180}
5181
5182// Delete: Deletes the specified job. Typically, the job becomes
5183// unsearchable within 10 seconds, but it may take up to 5 minutes.
5184//
5185// - name: The resource name of the job to be deleted. The format is
5186//   "projects/{project_id}/jobs/{job_id}", for example,
5187//   "projects/api-test-project/jobs/1234".
5188func (r *ProjectsJobsService) Delete(name string) *ProjectsJobsDeleteCall {
5189	c := &ProjectsJobsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5190	c.name = name
5191	return c
5192}
5193
5194// Fields allows partial responses to be retrieved. See
5195// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5196// for more information.
5197func (c *ProjectsJobsDeleteCall) Fields(s ...googleapi.Field) *ProjectsJobsDeleteCall {
5198	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5199	return c
5200}
5201
5202// Context sets the context to be used in this call's Do method. Any
5203// pending HTTP request will be aborted if the provided context is
5204// canceled.
5205func (c *ProjectsJobsDeleteCall) Context(ctx context.Context) *ProjectsJobsDeleteCall {
5206	c.ctx_ = ctx
5207	return c
5208}
5209
5210// Header returns an http.Header that can be modified by the caller to
5211// add HTTP headers to the request.
5212func (c *ProjectsJobsDeleteCall) Header() http.Header {
5213	if c.header_ == nil {
5214		c.header_ = make(http.Header)
5215	}
5216	return c.header_
5217}
5218
5219func (c *ProjectsJobsDeleteCall) doRequest(alt string) (*http.Response, error) {
5220	reqHeaders := make(http.Header)
5221	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5222	for k, v := range c.header_ {
5223		reqHeaders[k] = v
5224	}
5225	reqHeaders.Set("User-Agent", c.s.userAgent())
5226	var body io.Reader = nil
5227	c.urlParams_.Set("alt", alt)
5228	c.urlParams_.Set("prettyPrint", "false")
5229	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+name}")
5230	urls += "?" + c.urlParams_.Encode()
5231	req, err := http.NewRequest("DELETE", urls, body)
5232	if err != nil {
5233		return nil, err
5234	}
5235	req.Header = reqHeaders
5236	googleapi.Expand(req.URL, map[string]string{
5237		"name": c.name,
5238	})
5239	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5240}
5241
5242// Do executes the "jobs.projects.jobs.delete" call.
5243// Exactly one of *Empty or error will be non-nil. Any non-2xx status
5244// code is an error. Response headers are in either
5245// *Empty.ServerResponse.Header or (if a response was returned at all)
5246// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5247// check whether the returned error was because http.StatusNotModified
5248// was returned.
5249func (c *ProjectsJobsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
5250	gensupport.SetOptions(c.urlParams_, opts...)
5251	res, err := c.doRequest("json")
5252	if res != nil && res.StatusCode == http.StatusNotModified {
5253		if res.Body != nil {
5254			res.Body.Close()
5255		}
5256		return nil, &googleapi.Error{
5257			Code:   res.StatusCode,
5258			Header: res.Header,
5259		}
5260	}
5261	if err != nil {
5262		return nil, err
5263	}
5264	defer googleapi.CloseBody(res)
5265	if err := googleapi.CheckResponse(res); err != nil {
5266		return nil, err
5267	}
5268	ret := &Empty{
5269		ServerResponse: googleapi.ServerResponse{
5270			Header:         res.Header,
5271			HTTPStatusCode: res.StatusCode,
5272		},
5273	}
5274	target := &ret
5275	if err := gensupport.DecodeResponse(target, res); err != nil {
5276		return nil, err
5277	}
5278	return ret, nil
5279	// {
5280	//   "description": "Deletes the specified job. Typically, the job becomes unsearchable within 10 seconds, but it may take up to 5 minutes.",
5281	//   "flatPath": "v3/projects/{projectsId}/jobs/{jobsId}",
5282	//   "httpMethod": "DELETE",
5283	//   "id": "jobs.projects.jobs.delete",
5284	//   "parameterOrder": [
5285	//     "name"
5286	//   ],
5287	//   "parameters": {
5288	//     "name": {
5289	//       "description": "Required. The resource name of the job to be deleted. The format is \"projects/{project_id}/jobs/{job_id}\", for example, \"projects/api-test-project/jobs/1234\".",
5290	//       "location": "path",
5291	//       "pattern": "^projects/[^/]+/jobs/[^/]+$",
5292	//       "required": true,
5293	//       "type": "string"
5294	//     }
5295	//   },
5296	//   "path": "v3/{+name}",
5297	//   "response": {
5298	//     "$ref": "Empty"
5299	//   },
5300	//   "scopes": [
5301	//     "https://www.googleapis.com/auth/cloud-platform",
5302	//     "https://www.googleapis.com/auth/jobs"
5303	//   ]
5304	// }
5305
5306}
5307
5308// method id "jobs.projects.jobs.get":
5309
5310type ProjectsJobsGetCall struct {
5311	s            *Service
5312	name         string
5313	urlParams_   gensupport.URLParams
5314	ifNoneMatch_ string
5315	ctx_         context.Context
5316	header_      http.Header
5317}
5318
5319// Get: Retrieves the specified job, whose status is OPEN or recently
5320// EXPIRED within the last 90 days.
5321//
5322// - name: The resource name of the job to retrieve. The format is
5323//   "projects/{project_id}/jobs/{job_id}", for example,
5324//   "projects/api-test-project/jobs/1234".
5325func (r *ProjectsJobsService) Get(name string) *ProjectsJobsGetCall {
5326	c := &ProjectsJobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5327	c.name = name
5328	return c
5329}
5330
5331// Fields allows partial responses to be retrieved. See
5332// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5333// for more information.
5334func (c *ProjectsJobsGetCall) Fields(s ...googleapi.Field) *ProjectsJobsGetCall {
5335	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5336	return c
5337}
5338
5339// IfNoneMatch sets the optional parameter which makes the operation
5340// fail if the object's ETag matches the given value. This is useful for
5341// getting updates only after the object has changed since the last
5342// request. Use googleapi.IsNotModified to check whether the response
5343// error from Do is the result of In-None-Match.
5344func (c *ProjectsJobsGetCall) IfNoneMatch(entityTag string) *ProjectsJobsGetCall {
5345	c.ifNoneMatch_ = entityTag
5346	return c
5347}
5348
5349// Context sets the context to be used in this call's Do method. Any
5350// pending HTTP request will be aborted if the provided context is
5351// canceled.
5352func (c *ProjectsJobsGetCall) Context(ctx context.Context) *ProjectsJobsGetCall {
5353	c.ctx_ = ctx
5354	return c
5355}
5356
5357// Header returns an http.Header that can be modified by the caller to
5358// add HTTP headers to the request.
5359func (c *ProjectsJobsGetCall) Header() http.Header {
5360	if c.header_ == nil {
5361		c.header_ = make(http.Header)
5362	}
5363	return c.header_
5364}
5365
5366func (c *ProjectsJobsGetCall) doRequest(alt string) (*http.Response, error) {
5367	reqHeaders := make(http.Header)
5368	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5369	for k, v := range c.header_ {
5370		reqHeaders[k] = v
5371	}
5372	reqHeaders.Set("User-Agent", c.s.userAgent())
5373	if c.ifNoneMatch_ != "" {
5374		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5375	}
5376	var body io.Reader = nil
5377	c.urlParams_.Set("alt", alt)
5378	c.urlParams_.Set("prettyPrint", "false")
5379	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+name}")
5380	urls += "?" + c.urlParams_.Encode()
5381	req, err := http.NewRequest("GET", urls, body)
5382	if err != nil {
5383		return nil, err
5384	}
5385	req.Header = reqHeaders
5386	googleapi.Expand(req.URL, map[string]string{
5387		"name": c.name,
5388	})
5389	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5390}
5391
5392// Do executes the "jobs.projects.jobs.get" call.
5393// Exactly one of *Job or error will be non-nil. Any non-2xx status code
5394// is an error. Response headers are in either
5395// *Job.ServerResponse.Header or (if a response was returned at all) in
5396// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
5397// whether the returned error was because http.StatusNotModified was
5398// returned.
5399func (c *ProjectsJobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
5400	gensupport.SetOptions(c.urlParams_, opts...)
5401	res, err := c.doRequest("json")
5402	if res != nil && res.StatusCode == http.StatusNotModified {
5403		if res.Body != nil {
5404			res.Body.Close()
5405		}
5406		return nil, &googleapi.Error{
5407			Code:   res.StatusCode,
5408			Header: res.Header,
5409		}
5410	}
5411	if err != nil {
5412		return nil, err
5413	}
5414	defer googleapi.CloseBody(res)
5415	if err := googleapi.CheckResponse(res); err != nil {
5416		return nil, err
5417	}
5418	ret := &Job{
5419		ServerResponse: googleapi.ServerResponse{
5420			Header:         res.Header,
5421			HTTPStatusCode: res.StatusCode,
5422		},
5423	}
5424	target := &ret
5425	if err := gensupport.DecodeResponse(target, res); err != nil {
5426		return nil, err
5427	}
5428	return ret, nil
5429	// {
5430	//   "description": "Retrieves the specified job, whose status is OPEN or recently EXPIRED within the last 90 days.",
5431	//   "flatPath": "v3/projects/{projectsId}/jobs/{jobsId}",
5432	//   "httpMethod": "GET",
5433	//   "id": "jobs.projects.jobs.get",
5434	//   "parameterOrder": [
5435	//     "name"
5436	//   ],
5437	//   "parameters": {
5438	//     "name": {
5439	//       "description": "Required. The resource name of the job to retrieve. The format is \"projects/{project_id}/jobs/{job_id}\", for example, \"projects/api-test-project/jobs/1234\".",
5440	//       "location": "path",
5441	//       "pattern": "^projects/[^/]+/jobs/[^/]+$",
5442	//       "required": true,
5443	//       "type": "string"
5444	//     }
5445	//   },
5446	//   "path": "v3/{+name}",
5447	//   "response": {
5448	//     "$ref": "Job"
5449	//   },
5450	//   "scopes": [
5451	//     "https://www.googleapis.com/auth/cloud-platform",
5452	//     "https://www.googleapis.com/auth/jobs"
5453	//   ]
5454	// }
5455
5456}
5457
5458// method id "jobs.projects.jobs.list":
5459
5460type ProjectsJobsListCall struct {
5461	s            *Service
5462	parent       string
5463	urlParams_   gensupport.URLParams
5464	ifNoneMatch_ string
5465	ctx_         context.Context
5466	header_      http.Header
5467}
5468
5469// List: Lists jobs by filter.
5470//
5471// - parent: The resource name of the project under which the job is
5472//   created. The format is "projects/{project_id}", for example,
5473//   "projects/api-test-project".
5474func (r *ProjectsJobsService) List(parent string) *ProjectsJobsListCall {
5475	c := &ProjectsJobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5476	c.parent = parent
5477	return c
5478}
5479
5480// Filter sets the optional parameter "filter": Required. The filter
5481// string specifies the jobs to be enumerated. Supported operator: =,
5482// AND The fields eligible for filtering are: * `companyName` (Required)
5483// * `requisitionId` (Optional) Sample Query: * companyName =
5484// "projects/api-test-project/companies/123" * companyName =
5485// "projects/api-test-project/companies/123" AND requisitionId = "req-1"
5486func (c *ProjectsJobsListCall) Filter(filter string) *ProjectsJobsListCall {
5487	c.urlParams_.Set("filter", filter)
5488	return c
5489}
5490
5491// JobView sets the optional parameter "jobView": The desired job
5492// attributes returned for jobs in the search response. Defaults to
5493// JobView.JOB_VIEW_FULL if no value is specified.
5494//
5495// Possible values:
5496//   "JOB_VIEW_UNSPECIFIED" - Default value.
5497//   "JOB_VIEW_ID_ONLY" - A ID only view of job, with following
5498// attributes: Job.name, Job.requisition_id, Job.language_code.
5499//   "JOB_VIEW_MINIMAL" - A minimal view of the job, with the following
5500// attributes: Job.name, Job.requisition_id, Job.title,
5501// Job.company_name, Job.DerivedInfo.locations, Job.language_code.
5502//   "JOB_VIEW_SMALL" - A small view of the job, with the following
5503// attributes in the search results: Job.name, Job.requisition_id,
5504// Job.title, Job.company_name, Job.DerivedInfo.locations,
5505// Job.visibility, Job.language_code, Job.description.
5506//   "JOB_VIEW_FULL" - All available attributes are included in the
5507// search results.
5508func (c *ProjectsJobsListCall) JobView(jobView string) *ProjectsJobsListCall {
5509	c.urlParams_.Set("jobView", jobView)
5510	return c
5511}
5512
5513// PageSize sets the optional parameter "pageSize": The maximum number
5514// of jobs to be returned per page of results. If job_view is set to
5515// JobView.JOB_VIEW_ID_ONLY, the maximum allowed page size is 1000.
5516// Otherwise, the maximum allowed page size is 100. Default is 100 if
5517// empty or a number < 1 is specified.
5518func (c *ProjectsJobsListCall) PageSize(pageSize int64) *ProjectsJobsListCall {
5519	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5520	return c
5521}
5522
5523// PageToken sets the optional parameter "pageToken": The starting point
5524// of a query result.
5525func (c *ProjectsJobsListCall) PageToken(pageToken string) *ProjectsJobsListCall {
5526	c.urlParams_.Set("pageToken", pageToken)
5527	return c
5528}
5529
5530// Fields allows partial responses to be retrieved. See
5531// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5532// for more information.
5533func (c *ProjectsJobsListCall) Fields(s ...googleapi.Field) *ProjectsJobsListCall {
5534	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5535	return c
5536}
5537
5538// IfNoneMatch sets the optional parameter which makes the operation
5539// fail if the object's ETag matches the given value. This is useful for
5540// getting updates only after the object has changed since the last
5541// request. Use googleapi.IsNotModified to check whether the response
5542// error from Do is the result of In-None-Match.
5543func (c *ProjectsJobsListCall) IfNoneMatch(entityTag string) *ProjectsJobsListCall {
5544	c.ifNoneMatch_ = entityTag
5545	return c
5546}
5547
5548// Context sets the context to be used in this call's Do method. Any
5549// pending HTTP request will be aborted if the provided context is
5550// canceled.
5551func (c *ProjectsJobsListCall) Context(ctx context.Context) *ProjectsJobsListCall {
5552	c.ctx_ = ctx
5553	return c
5554}
5555
5556// Header returns an http.Header that can be modified by the caller to
5557// add HTTP headers to the request.
5558func (c *ProjectsJobsListCall) Header() http.Header {
5559	if c.header_ == nil {
5560		c.header_ = make(http.Header)
5561	}
5562	return c.header_
5563}
5564
5565func (c *ProjectsJobsListCall) doRequest(alt string) (*http.Response, error) {
5566	reqHeaders := make(http.Header)
5567	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5568	for k, v := range c.header_ {
5569		reqHeaders[k] = v
5570	}
5571	reqHeaders.Set("User-Agent", c.s.userAgent())
5572	if c.ifNoneMatch_ != "" {
5573		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5574	}
5575	var body io.Reader = nil
5576	c.urlParams_.Set("alt", alt)
5577	c.urlParams_.Set("prettyPrint", "false")
5578	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+parent}/jobs")
5579	urls += "?" + c.urlParams_.Encode()
5580	req, err := http.NewRequest("GET", urls, body)
5581	if err != nil {
5582		return nil, err
5583	}
5584	req.Header = reqHeaders
5585	googleapi.Expand(req.URL, map[string]string{
5586		"parent": c.parent,
5587	})
5588	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5589}
5590
5591// Do executes the "jobs.projects.jobs.list" call.
5592// Exactly one of *ListJobsResponse or error will be non-nil. Any
5593// non-2xx status code is an error. Response headers are in either
5594// *ListJobsResponse.ServerResponse.Header or (if a response was
5595// returned at all) in error.(*googleapi.Error).Header. Use
5596// googleapi.IsNotModified to check whether the returned error was
5597// because http.StatusNotModified was returned.
5598func (c *ProjectsJobsListCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
5599	gensupport.SetOptions(c.urlParams_, opts...)
5600	res, err := c.doRequest("json")
5601	if res != nil && res.StatusCode == http.StatusNotModified {
5602		if res.Body != nil {
5603			res.Body.Close()
5604		}
5605		return nil, &googleapi.Error{
5606			Code:   res.StatusCode,
5607			Header: res.Header,
5608		}
5609	}
5610	if err != nil {
5611		return nil, err
5612	}
5613	defer googleapi.CloseBody(res)
5614	if err := googleapi.CheckResponse(res); err != nil {
5615		return nil, err
5616	}
5617	ret := &ListJobsResponse{
5618		ServerResponse: googleapi.ServerResponse{
5619			Header:         res.Header,
5620			HTTPStatusCode: res.StatusCode,
5621		},
5622	}
5623	target := &ret
5624	if err := gensupport.DecodeResponse(target, res); err != nil {
5625		return nil, err
5626	}
5627	return ret, nil
5628	// {
5629	//   "description": "Lists jobs by filter.",
5630	//   "flatPath": "v3/projects/{projectsId}/jobs",
5631	//   "httpMethod": "GET",
5632	//   "id": "jobs.projects.jobs.list",
5633	//   "parameterOrder": [
5634	//     "parent"
5635	//   ],
5636	//   "parameters": {
5637	//     "filter": {
5638	//       "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 = \"projects/api-test-project/companies/123\" * companyName = \"projects/api-test-project/companies/123\" AND requisitionId = \"req-1\"",
5639	//       "location": "query",
5640	//       "type": "string"
5641	//     },
5642	//     "jobView": {
5643	//       "description": "Optional. The desired job attributes returned for jobs in the search response. Defaults to JobView.JOB_VIEW_FULL if no value is specified.",
5644	//       "enum": [
5645	//         "JOB_VIEW_UNSPECIFIED",
5646	//         "JOB_VIEW_ID_ONLY",
5647	//         "JOB_VIEW_MINIMAL",
5648	//         "JOB_VIEW_SMALL",
5649	//         "JOB_VIEW_FULL"
5650	//       ],
5651	//       "enumDescriptions": [
5652	//         "Default value.",
5653	//         "A ID only view of job, with following attributes: Job.name, Job.requisition_id, Job.language_code.",
5654	//         "A minimal view of the job, with the following attributes: Job.name, Job.requisition_id, Job.title, Job.company_name, Job.DerivedInfo.locations, Job.language_code.",
5655	//         "A small view of the job, with the following attributes in the search results: Job.name, Job.requisition_id, Job.title, Job.company_name, Job.DerivedInfo.locations, Job.visibility, Job.language_code, Job.description.",
5656	//         "All available attributes are included in the search results."
5657	//       ],
5658	//       "location": "query",
5659	//       "type": "string"
5660	//     },
5661	//     "pageSize": {
5662	//       "description": "Optional. The maximum number of jobs to be returned per page of results. If job_view is set to JobView.JOB_VIEW_ID_ONLY, 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.",
5663	//       "format": "int32",
5664	//       "location": "query",
5665	//       "type": "integer"
5666	//     },
5667	//     "pageToken": {
5668	//       "description": "Optional. The starting point of a query result.",
5669	//       "location": "query",
5670	//       "type": "string"
5671	//     },
5672	//     "parent": {
5673	//       "description": "Required. The resource name of the project under which the job is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".",
5674	//       "location": "path",
5675	//       "pattern": "^projects/[^/]+$",
5676	//       "required": true,
5677	//       "type": "string"
5678	//     }
5679	//   },
5680	//   "path": "v3/{+parent}/jobs",
5681	//   "response": {
5682	//     "$ref": "ListJobsResponse"
5683	//   },
5684	//   "scopes": [
5685	//     "https://www.googleapis.com/auth/cloud-platform",
5686	//     "https://www.googleapis.com/auth/jobs"
5687	//   ]
5688	// }
5689
5690}
5691
5692// Pages invokes f for each page of results.
5693// A non-nil error returned from f will halt the iteration.
5694// The provided context supersedes any context provided to the Context method.
5695func (c *ProjectsJobsListCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
5696	c.ctx_ = ctx
5697	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5698	for {
5699		x, err := c.Do()
5700		if err != nil {
5701			return err
5702		}
5703		if err := f(x); err != nil {
5704			return err
5705		}
5706		if x.NextPageToken == "" {
5707			return nil
5708		}
5709		c.PageToken(x.NextPageToken)
5710	}
5711}
5712
5713// method id "jobs.projects.jobs.patch":
5714
5715type ProjectsJobsPatchCall struct {
5716	s                *Service
5717	name             string
5718	updatejobrequest *UpdateJobRequest
5719	urlParams_       gensupport.URLParams
5720	ctx_             context.Context
5721	header_          http.Header
5722}
5723
5724// Patch: Updates specified job. Typically, updated contents become
5725// visible in search results within 10 seconds, but it may take up to 5
5726// minutes.
5727//
5728// - name: Required during job update. The resource name for the job.
5729//   This is generated by the service when a job is created. The format
5730//   is "projects/{project_id}/jobs/{job_id}", for example,
5731//   "projects/api-test-project/jobs/1234". Use of this field in job
5732//   queries and API calls is preferred over the use of requisition_id
5733//   since this value is unique.
5734func (r *ProjectsJobsService) Patch(name string, updatejobrequest *UpdateJobRequest) *ProjectsJobsPatchCall {
5735	c := &ProjectsJobsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5736	c.name = name
5737	c.updatejobrequest = updatejobrequest
5738	return c
5739}
5740
5741// Fields allows partial responses to be retrieved. See
5742// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5743// for more information.
5744func (c *ProjectsJobsPatchCall) Fields(s ...googleapi.Field) *ProjectsJobsPatchCall {
5745	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5746	return c
5747}
5748
5749// Context sets the context to be used in this call's Do method. Any
5750// pending HTTP request will be aborted if the provided context is
5751// canceled.
5752func (c *ProjectsJobsPatchCall) Context(ctx context.Context) *ProjectsJobsPatchCall {
5753	c.ctx_ = ctx
5754	return c
5755}
5756
5757// Header returns an http.Header that can be modified by the caller to
5758// add HTTP headers to the request.
5759func (c *ProjectsJobsPatchCall) Header() http.Header {
5760	if c.header_ == nil {
5761		c.header_ = make(http.Header)
5762	}
5763	return c.header_
5764}
5765
5766func (c *ProjectsJobsPatchCall) doRequest(alt string) (*http.Response, error) {
5767	reqHeaders := make(http.Header)
5768	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5769	for k, v := range c.header_ {
5770		reqHeaders[k] = v
5771	}
5772	reqHeaders.Set("User-Agent", c.s.userAgent())
5773	var body io.Reader = nil
5774	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatejobrequest)
5775	if err != nil {
5776		return nil, err
5777	}
5778	reqHeaders.Set("Content-Type", "application/json")
5779	c.urlParams_.Set("alt", alt)
5780	c.urlParams_.Set("prettyPrint", "false")
5781	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+name}")
5782	urls += "?" + c.urlParams_.Encode()
5783	req, err := http.NewRequest("PATCH", urls, body)
5784	if err != nil {
5785		return nil, err
5786	}
5787	req.Header = reqHeaders
5788	googleapi.Expand(req.URL, map[string]string{
5789		"name": c.name,
5790	})
5791	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5792}
5793
5794// Do executes the "jobs.projects.jobs.patch" call.
5795// Exactly one of *Job or error will be non-nil. Any non-2xx status code
5796// is an error. Response headers are in either
5797// *Job.ServerResponse.Header or (if a response was returned at all) in
5798// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
5799// whether the returned error was because http.StatusNotModified was
5800// returned.
5801func (c *ProjectsJobsPatchCall) Do(opts ...googleapi.CallOption) (*Job, error) {
5802	gensupport.SetOptions(c.urlParams_, opts...)
5803	res, err := c.doRequest("json")
5804	if res != nil && res.StatusCode == http.StatusNotModified {
5805		if res.Body != nil {
5806			res.Body.Close()
5807		}
5808		return nil, &googleapi.Error{
5809			Code:   res.StatusCode,
5810			Header: res.Header,
5811		}
5812	}
5813	if err != nil {
5814		return nil, err
5815	}
5816	defer googleapi.CloseBody(res)
5817	if err := googleapi.CheckResponse(res); err != nil {
5818		return nil, err
5819	}
5820	ret := &Job{
5821		ServerResponse: googleapi.ServerResponse{
5822			Header:         res.Header,
5823			HTTPStatusCode: res.StatusCode,
5824		},
5825	}
5826	target := &ret
5827	if err := gensupport.DecodeResponse(target, res); err != nil {
5828		return nil, err
5829	}
5830	return ret, nil
5831	// {
5832	//   "description": "Updates specified job. Typically, updated contents become visible in search results within 10 seconds, but it may take up to 5 minutes.",
5833	//   "flatPath": "v3/projects/{projectsId}/jobs/{jobsId}",
5834	//   "httpMethod": "PATCH",
5835	//   "id": "jobs.projects.jobs.patch",
5836	//   "parameterOrder": [
5837	//     "name"
5838	//   ],
5839	//   "parameters": {
5840	//     "name": {
5841	//       "description": "Required during job update. The resource name for the job. This is generated by the service when a job is created. The format is \"projects/{project_id}/jobs/{job_id}\", for example, \"projects/api-test-project/jobs/1234\". Use of this field in job queries and API calls is preferred over the use of requisition_id since this value is unique.",
5842	//       "location": "path",
5843	//       "pattern": "^projects/[^/]+/jobs/[^/]+$",
5844	//       "required": true,
5845	//       "type": "string"
5846	//     }
5847	//   },
5848	//   "path": "v3/{+name}",
5849	//   "request": {
5850	//     "$ref": "UpdateJobRequest"
5851	//   },
5852	//   "response": {
5853	//     "$ref": "Job"
5854	//   },
5855	//   "scopes": [
5856	//     "https://www.googleapis.com/auth/cloud-platform",
5857	//     "https://www.googleapis.com/auth/jobs"
5858	//   ]
5859	// }
5860
5861}
5862
5863// method id "jobs.projects.jobs.search":
5864
5865type ProjectsJobsSearchCall struct {
5866	s                 *Service
5867	parent            string
5868	searchjobsrequest *SearchJobsRequest
5869	urlParams_        gensupport.URLParams
5870	ctx_              context.Context
5871	header_           http.Header
5872}
5873
5874// Search: Searches for jobs using the provided SearchJobsRequest. This
5875// call constrains the visibility of jobs present in the database, and
5876// only returns jobs that the caller has permission to search against.
5877//
5878// - parent: The resource name of the project to search within. The
5879//   format is "projects/{project_id}", for example,
5880//   "projects/api-test-project".
5881func (r *ProjectsJobsService) Search(parent string, searchjobsrequest *SearchJobsRequest) *ProjectsJobsSearchCall {
5882	c := &ProjectsJobsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5883	c.parent = parent
5884	c.searchjobsrequest = searchjobsrequest
5885	return c
5886}
5887
5888// Fields allows partial responses to be retrieved. See
5889// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5890// for more information.
5891func (c *ProjectsJobsSearchCall) Fields(s ...googleapi.Field) *ProjectsJobsSearchCall {
5892	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5893	return c
5894}
5895
5896// Context sets the context to be used in this call's Do method. Any
5897// pending HTTP request will be aborted if the provided context is
5898// canceled.
5899func (c *ProjectsJobsSearchCall) Context(ctx context.Context) *ProjectsJobsSearchCall {
5900	c.ctx_ = ctx
5901	return c
5902}
5903
5904// Header returns an http.Header that can be modified by the caller to
5905// add HTTP headers to the request.
5906func (c *ProjectsJobsSearchCall) Header() http.Header {
5907	if c.header_ == nil {
5908		c.header_ = make(http.Header)
5909	}
5910	return c.header_
5911}
5912
5913func (c *ProjectsJobsSearchCall) doRequest(alt string) (*http.Response, error) {
5914	reqHeaders := make(http.Header)
5915	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5916	for k, v := range c.header_ {
5917		reqHeaders[k] = v
5918	}
5919	reqHeaders.Set("User-Agent", c.s.userAgent())
5920	var body io.Reader = nil
5921	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchjobsrequest)
5922	if err != nil {
5923		return nil, err
5924	}
5925	reqHeaders.Set("Content-Type", "application/json")
5926	c.urlParams_.Set("alt", alt)
5927	c.urlParams_.Set("prettyPrint", "false")
5928	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+parent}/jobs:search")
5929	urls += "?" + c.urlParams_.Encode()
5930	req, err := http.NewRequest("POST", urls, body)
5931	if err != nil {
5932		return nil, err
5933	}
5934	req.Header = reqHeaders
5935	googleapi.Expand(req.URL, map[string]string{
5936		"parent": c.parent,
5937	})
5938	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5939}
5940
5941// Do executes the "jobs.projects.jobs.search" call.
5942// Exactly one of *SearchJobsResponse or error will be non-nil. Any
5943// non-2xx status code is an error. Response headers are in either
5944// *SearchJobsResponse.ServerResponse.Header or (if a response was
5945// returned at all) in error.(*googleapi.Error).Header. Use
5946// googleapi.IsNotModified to check whether the returned error was
5947// because http.StatusNotModified was returned.
5948func (c *ProjectsJobsSearchCall) Do(opts ...googleapi.CallOption) (*SearchJobsResponse, error) {
5949	gensupport.SetOptions(c.urlParams_, opts...)
5950	res, err := c.doRequest("json")
5951	if res != nil && res.StatusCode == http.StatusNotModified {
5952		if res.Body != nil {
5953			res.Body.Close()
5954		}
5955		return nil, &googleapi.Error{
5956			Code:   res.StatusCode,
5957			Header: res.Header,
5958		}
5959	}
5960	if err != nil {
5961		return nil, err
5962	}
5963	defer googleapi.CloseBody(res)
5964	if err := googleapi.CheckResponse(res); err != nil {
5965		return nil, err
5966	}
5967	ret := &SearchJobsResponse{
5968		ServerResponse: googleapi.ServerResponse{
5969			Header:         res.Header,
5970			HTTPStatusCode: res.StatusCode,
5971		},
5972	}
5973	target := &ret
5974	if err := gensupport.DecodeResponse(target, res); err != nil {
5975		return nil, err
5976	}
5977	return ret, nil
5978	// {
5979	//   "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.",
5980	//   "flatPath": "v3/projects/{projectsId}/jobs:search",
5981	//   "httpMethod": "POST",
5982	//   "id": "jobs.projects.jobs.search",
5983	//   "parameterOrder": [
5984	//     "parent"
5985	//   ],
5986	//   "parameters": {
5987	//     "parent": {
5988	//       "description": "Required. The resource name of the project to search within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".",
5989	//       "location": "path",
5990	//       "pattern": "^projects/[^/]+$",
5991	//       "required": true,
5992	//       "type": "string"
5993	//     }
5994	//   },
5995	//   "path": "v3/{+parent}/jobs:search",
5996	//   "request": {
5997	//     "$ref": "SearchJobsRequest"
5998	//   },
5999	//   "response": {
6000	//     "$ref": "SearchJobsResponse"
6001	//   },
6002	//   "scopes": [
6003	//     "https://www.googleapis.com/auth/cloud-platform",
6004	//     "https://www.googleapis.com/auth/jobs"
6005	//   ]
6006	// }
6007
6008}
6009
6010// Pages invokes f for each page of results.
6011// A non-nil error returned from f will halt the iteration.
6012// The provided context supersedes any context provided to the Context method.
6013func (c *ProjectsJobsSearchCall) Pages(ctx context.Context, f func(*SearchJobsResponse) error) error {
6014	c.ctx_ = ctx
6015	defer func(pt string) { c.searchjobsrequest.PageToken = pt }(c.searchjobsrequest.PageToken) // reset paging to original point
6016	for {
6017		x, err := c.Do()
6018		if err != nil {
6019			return err
6020		}
6021		if err := f(x); err != nil {
6022			return err
6023		}
6024		if x.NextPageToken == "" {
6025			return nil
6026		}
6027		c.searchjobsrequest.PageToken = x.NextPageToken
6028	}
6029}
6030
6031// method id "jobs.projects.jobs.searchForAlert":
6032
6033type ProjectsJobsSearchForAlertCall struct {
6034	s                 *Service
6035	parent            string
6036	searchjobsrequest *SearchJobsRequest
6037	urlParams_        gensupport.URLParams
6038	ctx_              context.Context
6039	header_           http.Header
6040}
6041
6042// SearchForAlert: Searches for jobs using the provided
6043// SearchJobsRequest. This API call is intended for the use case of
6044// targeting passive job seekers (for example, job seekers who have
6045// signed up to receive email alerts about potential job opportunities),
6046// and has different algorithmic adjustments that are targeted to
6047// passive job seekers. This call constrains the visibility of jobs
6048// present in the database, and only returns jobs the caller has
6049// permission to search against.
6050//
6051// - parent: The resource name of the project to search within. The
6052//   format is "projects/{project_id}", for example,
6053//   "projects/api-test-project".
6054func (r *ProjectsJobsService) SearchForAlert(parent string, searchjobsrequest *SearchJobsRequest) *ProjectsJobsSearchForAlertCall {
6055	c := &ProjectsJobsSearchForAlertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6056	c.parent = parent
6057	c.searchjobsrequest = searchjobsrequest
6058	return c
6059}
6060
6061// Fields allows partial responses to be retrieved. See
6062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6063// for more information.
6064func (c *ProjectsJobsSearchForAlertCall) Fields(s ...googleapi.Field) *ProjectsJobsSearchForAlertCall {
6065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6066	return c
6067}
6068
6069// Context sets the context to be used in this call's Do method. Any
6070// pending HTTP request will be aborted if the provided context is
6071// canceled.
6072func (c *ProjectsJobsSearchForAlertCall) Context(ctx context.Context) *ProjectsJobsSearchForAlertCall {
6073	c.ctx_ = ctx
6074	return c
6075}
6076
6077// Header returns an http.Header that can be modified by the caller to
6078// add HTTP headers to the request.
6079func (c *ProjectsJobsSearchForAlertCall) Header() http.Header {
6080	if c.header_ == nil {
6081		c.header_ = make(http.Header)
6082	}
6083	return c.header_
6084}
6085
6086func (c *ProjectsJobsSearchForAlertCall) doRequest(alt string) (*http.Response, error) {
6087	reqHeaders := make(http.Header)
6088	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6089	for k, v := range c.header_ {
6090		reqHeaders[k] = v
6091	}
6092	reqHeaders.Set("User-Agent", c.s.userAgent())
6093	var body io.Reader = nil
6094	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchjobsrequest)
6095	if err != nil {
6096		return nil, err
6097	}
6098	reqHeaders.Set("Content-Type", "application/json")
6099	c.urlParams_.Set("alt", alt)
6100	c.urlParams_.Set("prettyPrint", "false")
6101	urls := googleapi.ResolveRelative(c.s.BasePath, "v3/{+parent}/jobs:searchForAlert")
6102	urls += "?" + c.urlParams_.Encode()
6103	req, err := http.NewRequest("POST", urls, body)
6104	if err != nil {
6105		return nil, err
6106	}
6107	req.Header = reqHeaders
6108	googleapi.Expand(req.URL, map[string]string{
6109		"parent": c.parent,
6110	})
6111	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6112}
6113
6114// Do executes the "jobs.projects.jobs.searchForAlert" call.
6115// Exactly one of *SearchJobsResponse or error will be non-nil. Any
6116// non-2xx status code is an error. Response headers are in either
6117// *SearchJobsResponse.ServerResponse.Header or (if a response was
6118// returned at all) in error.(*googleapi.Error).Header. Use
6119// googleapi.IsNotModified to check whether the returned error was
6120// because http.StatusNotModified was returned.
6121func (c *ProjectsJobsSearchForAlertCall) Do(opts ...googleapi.CallOption) (*SearchJobsResponse, error) {
6122	gensupport.SetOptions(c.urlParams_, opts...)
6123	res, err := c.doRequest("json")
6124	if res != nil && res.StatusCode == http.StatusNotModified {
6125		if res.Body != nil {
6126			res.Body.Close()
6127		}
6128		return nil, &googleapi.Error{
6129			Code:   res.StatusCode,
6130			Header: res.Header,
6131		}
6132	}
6133	if err != nil {
6134		return nil, err
6135	}
6136	defer googleapi.CloseBody(res)
6137	if err := googleapi.CheckResponse(res); err != nil {
6138		return nil, err
6139	}
6140	ret := &SearchJobsResponse{
6141		ServerResponse: googleapi.ServerResponse{
6142			Header:         res.Header,
6143			HTTPStatusCode: res.StatusCode,
6144		},
6145	}
6146	target := &ret
6147	if err := gensupport.DecodeResponse(target, res); err != nil {
6148		return nil, err
6149	}
6150	return ret, nil
6151	// {
6152	//   "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.",
6153	//   "flatPath": "v3/projects/{projectsId}/jobs:searchForAlert",
6154	//   "httpMethod": "POST",
6155	//   "id": "jobs.projects.jobs.searchForAlert",
6156	//   "parameterOrder": [
6157	//     "parent"
6158	//   ],
6159	//   "parameters": {
6160	//     "parent": {
6161	//       "description": "Required. The resource name of the project to search within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".",
6162	//       "location": "path",
6163	//       "pattern": "^projects/[^/]+$",
6164	//       "required": true,
6165	//       "type": "string"
6166	//     }
6167	//   },
6168	//   "path": "v3/{+parent}/jobs:searchForAlert",
6169	//   "request": {
6170	//     "$ref": "SearchJobsRequest"
6171	//   },
6172	//   "response": {
6173	//     "$ref": "SearchJobsResponse"
6174	//   },
6175	//   "scopes": [
6176	//     "https://www.googleapis.com/auth/cloud-platform",
6177	//     "https://www.googleapis.com/auth/jobs"
6178	//   ]
6179	// }
6180
6181}
6182
6183// Pages invokes f for each page of results.
6184// A non-nil error returned from f will halt the iteration.
6185// The provided context supersedes any context provided to the Context method.
6186func (c *ProjectsJobsSearchForAlertCall) Pages(ctx context.Context, f func(*SearchJobsResponse) error) error {
6187	c.ctx_ = ctx
6188	defer func(pt string) { c.searchjobsrequest.PageToken = pt }(c.searchjobsrequest.PageToken) // reset paging to original point
6189	for {
6190		x, err := c.Do()
6191		if err != nil {
6192			return err
6193		}
6194		if err := f(x); err != nil {
6195			return err
6196		}
6197		if x.NextPageToken == "" {
6198			return nil
6199		}
6200		c.searchjobsrequest.PageToken = x.NextPageToken
6201	}
6202}
6203