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