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