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