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.
4021//
4022// - name: Resource name of project the completion is performed within.
4023//   The format is "projects/{project_id}", for example,
4024//   "projects/api-test-project".
4025func (r *ProjectsService) Complete(name string) *ProjectsCompleteCall {
4026	c := &ProjectsCompleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4027	c.name = name
4028	return c
4029}
4030
4031// CompanyName sets the optional parameter "companyName": If provided,
4032// restricts completion to specified company. The format is
4033// "projects/{project_id}/companies/{company_id}", for example,
4034// "projects/api-test-project/companies/foo".
4035func (c *ProjectsCompleteCall) CompanyName(companyName string) *ProjectsCompleteCall {
4036	c.urlParams_.Set("companyName", companyName)
4037	return c
4038}
4039
4040// LanguageCode sets the optional parameter "languageCode": Deprecated.
4041// Use language_codes instead.  The language of the query. This is the
4042// BCP-47 language code, such as "en-US" or "sr-Latn". For more
4043// information, see Tags for Identifying Languages
4044// (https://tools.ietf.org/html/bcp47). For CompletionType.JOB_TITLE
4045// type, only open jobs with the same language_code are returned. For
4046// CompletionType.COMPANY_NAME type, only companies having open jobs
4047// with the same language_code are returned. For CompletionType.COMBINED
4048// type, only open jobs with the same language_code or companies having
4049// open jobs with the same language_code are returned. The maximum
4050// number of allowed characters is 255.
4051func (c *ProjectsCompleteCall) LanguageCode(languageCode string) *ProjectsCompleteCall {
4052	c.urlParams_.Set("languageCode", languageCode)
4053	return c
4054}
4055
4056// LanguageCodes sets the optional parameter "languageCodes": The list
4057// of languages of the query. This is the BCP-47 language code, such as
4058// "en-US" or "sr-Latn". For more information, see Tags for Identifying
4059// Languages (https://tools.ietf.org/html/bcp47). For
4060// CompletionType.JOB_TITLE type, only open jobs with the same
4061// language_codes are returned. For CompletionType.COMPANY_NAME type,
4062// only companies having open jobs with the same language_codes are
4063// returned. For CompletionType.COMBINED type, only open jobs with the
4064// same language_codes or companies having open jobs with the same
4065// language_codes are returned. The maximum number of allowed characters
4066// is 255.
4067func (c *ProjectsCompleteCall) LanguageCodes(languageCodes ...string) *ProjectsCompleteCall {
4068	c.urlParams_.SetMulti("languageCodes", append([]string{}, languageCodes...))
4069	return c
4070}
4071
4072// PageSize sets the optional parameter "pageSize": Required. Completion
4073// result count. The maximum allowed page size is 10.
4074func (c *ProjectsCompleteCall) PageSize(pageSize int64) *ProjectsCompleteCall {
4075	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
4076	return c
4077}
4078
4079// Query sets the optional parameter "query": Required. The query used
4080// to generate suggestions. The maximum number of allowed characters is
4081// 255.
4082func (c *ProjectsCompleteCall) Query(query string) *ProjectsCompleteCall {
4083	c.urlParams_.Set("query", query)
4084	return c
4085}
4086
4087// Scope sets the optional parameter "scope": The scope of the
4088// completion. The defaults is CompletionScope.PUBLIC.
4089//
4090// Possible values:
4091//   "COMPLETION_SCOPE_UNSPECIFIED" - Default value.
4092//   "TENANT" - Suggestions are based only on the data provided by the
4093// client.
4094//   "PUBLIC" - Suggestions are based on all jobs data in the system
4095// that's visible to the client
4096func (c *ProjectsCompleteCall) Scope(scope string) *ProjectsCompleteCall {
4097	c.urlParams_.Set("scope", scope)
4098	return c
4099}
4100
4101// Type sets the optional parameter "type": The completion topic. The
4102// default is CompletionType.COMBINED.
4103//
4104// Possible values:
4105//   "COMPLETION_TYPE_UNSPECIFIED" - Default value.
4106//   "JOB_TITLE" - Only suggest job titles.
4107//   "COMPANY_NAME" - Only suggest company names.
4108//   "COMBINED" - Suggest both job titles and company names.
4109func (c *ProjectsCompleteCall) Type(type_ string) *ProjectsCompleteCall {
4110	c.urlParams_.Set("type", type_)
4111	return c
4112}
4113
4114// Fields allows partial responses to be retrieved. See
4115// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4116// for more information.
4117func (c *ProjectsCompleteCall) Fields(s ...googleapi.Field) *ProjectsCompleteCall {
4118	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4119	return c
4120}
4121
4122// IfNoneMatch sets the optional parameter which makes the operation
4123// fail if the object's ETag matches the given value. This is useful for
4124// getting updates only after the object has changed since the last
4125// request. Use googleapi.IsNotModified to check whether the response
4126// error from Do is the result of In-None-Match.
4127func (c *ProjectsCompleteCall) IfNoneMatch(entityTag string) *ProjectsCompleteCall {
4128	c.ifNoneMatch_ = entityTag
4129	return c
4130}
4131
4132// Context sets the context to be used in this call's Do method. Any
4133// pending HTTP request will be aborted if the provided context is
4134// canceled.
4135func (c *ProjectsCompleteCall) Context(ctx context.Context) *ProjectsCompleteCall {
4136	c.ctx_ = ctx
4137	return c
4138}
4139
4140// Header returns an http.Header that can be modified by the caller to
4141// add HTTP headers to the request.
4142func (c *ProjectsCompleteCall) Header() http.Header {
4143	if c.header_ == nil {
4144		c.header_ = make(http.Header)
4145	}
4146	return c.header_
4147}
4148
4149func (c *ProjectsCompleteCall) doRequest(alt string) (*http.Response, error) {
4150	reqHeaders := make(http.Header)
4151	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4152	for k, v := range c.header_ {
4153		reqHeaders[k] = v
4154	}
4155	reqHeaders.Set("User-Agent", c.s.userAgent())
4156	if c.ifNoneMatch_ != "" {
4157		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4158	}
4159	var body io.Reader = nil
4160	c.urlParams_.Set("alt", alt)
4161	c.urlParams_.Set("prettyPrint", "false")
4162	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}:complete")
4163	urls += "?" + c.urlParams_.Encode()
4164	req, err := http.NewRequest("GET", urls, body)
4165	if err != nil {
4166		return nil, err
4167	}
4168	req.Header = reqHeaders
4169	googleapi.Expand(req.URL, map[string]string{
4170		"name": c.name,
4171	})
4172	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4173}
4174
4175// Do executes the "jobs.projects.complete" call.
4176// Exactly one of *CompleteQueryResponse or error will be non-nil. Any
4177// non-2xx status code is an error. Response headers are in either
4178// *CompleteQueryResponse.ServerResponse.Header or (if a response was
4179// returned at all) in error.(*googleapi.Error).Header. Use
4180// googleapi.IsNotModified to check whether the returned error was
4181// because http.StatusNotModified was returned.
4182func (c *ProjectsCompleteCall) Do(opts ...googleapi.CallOption) (*CompleteQueryResponse, error) {
4183	gensupport.SetOptions(c.urlParams_, opts...)
4184	res, err := c.doRequest("json")
4185	if res != nil && res.StatusCode == http.StatusNotModified {
4186		if res.Body != nil {
4187			res.Body.Close()
4188		}
4189		return nil, &googleapi.Error{
4190			Code:   res.StatusCode,
4191			Header: res.Header,
4192		}
4193	}
4194	if err != nil {
4195		return nil, err
4196	}
4197	defer googleapi.CloseBody(res)
4198	if err := googleapi.CheckResponse(res); err != nil {
4199		return nil, err
4200	}
4201	ret := &CompleteQueryResponse{
4202		ServerResponse: googleapi.ServerResponse{
4203			Header:         res.Header,
4204			HTTPStatusCode: res.StatusCode,
4205		},
4206	}
4207	target := &ret
4208	if err := gensupport.DecodeResponse(target, res); err != nil {
4209		return nil, err
4210	}
4211	return ret, nil
4212	// {
4213	//   "description": "Completes the specified prefix with keyword suggestions. Intended for use by a job search auto-complete search box.",
4214	//   "flatPath": "v3p1beta1/projects/{projectsId}:complete",
4215	//   "httpMethod": "GET",
4216	//   "id": "jobs.projects.complete",
4217	//   "parameterOrder": [
4218	//     "name"
4219	//   ],
4220	//   "parameters": {
4221	//     "companyName": {
4222	//       "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\".",
4223	//       "location": "query",
4224	//       "type": "string"
4225	//     },
4226	//     "languageCode": {
4227	//       "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.",
4228	//       "location": "query",
4229	//       "type": "string"
4230	//     },
4231	//     "languageCodes": {
4232	//       "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.",
4233	//       "location": "query",
4234	//       "repeated": true,
4235	//       "type": "string"
4236	//     },
4237	//     "name": {
4238	//       "description": "Required. Resource name of project the completion is performed within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".",
4239	//       "location": "path",
4240	//       "pattern": "^projects/[^/]+$",
4241	//       "required": true,
4242	//       "type": "string"
4243	//     },
4244	//     "pageSize": {
4245	//       "description": "Required. Completion result count. The maximum allowed page size is 10.",
4246	//       "format": "int32",
4247	//       "location": "query",
4248	//       "type": "integer"
4249	//     },
4250	//     "query": {
4251	//       "description": "Required. The query used to generate suggestions. The maximum number of allowed characters is 255.",
4252	//       "location": "query",
4253	//       "type": "string"
4254	//     },
4255	//     "scope": {
4256	//       "description": "Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.",
4257	//       "enum": [
4258	//         "COMPLETION_SCOPE_UNSPECIFIED",
4259	//         "TENANT",
4260	//         "PUBLIC"
4261	//       ],
4262	//       "enumDescriptions": [
4263	//         "Default value.",
4264	//         "Suggestions are based only on the data provided by the client.",
4265	//         "Suggestions are based on all jobs data in the system that's visible to the client"
4266	//       ],
4267	//       "location": "query",
4268	//       "type": "string"
4269	//     },
4270	//     "type": {
4271	//       "description": "Optional. The completion topic. The default is CompletionType.COMBINED.",
4272	//       "enum": [
4273	//         "COMPLETION_TYPE_UNSPECIFIED",
4274	//         "JOB_TITLE",
4275	//         "COMPANY_NAME",
4276	//         "COMBINED"
4277	//       ],
4278	//       "enumDescriptions": [
4279	//         "Default value.",
4280	//         "Only suggest job titles.",
4281	//         "Only suggest company names.",
4282	//         "Suggest both job titles and company names."
4283	//       ],
4284	//       "location": "query",
4285	//       "type": "string"
4286	//     }
4287	//   },
4288	//   "path": "v3p1beta1/{+name}:complete",
4289	//   "response": {
4290	//     "$ref": "CompleteQueryResponse"
4291	//   },
4292	//   "scopes": [
4293	//     "https://www.googleapis.com/auth/cloud-platform",
4294	//     "https://www.googleapis.com/auth/jobs"
4295	//   ]
4296	// }
4297
4298}
4299
4300// method id "jobs.projects.clientEvents.create":
4301
4302type ProjectsClientEventsCreateCall struct {
4303	s                        *Service
4304	parent                   string
4305	createclienteventrequest *CreateClientEventRequest
4306	urlParams_               gensupport.URLParams
4307	ctx_                     context.Context
4308	header_                  http.Header
4309}
4310
4311// Create: Report events issued when end user interacts with customer's
4312// application that uses Cloud Talent Solution. You may inspect the
4313// created events in self service tools
4314// (https://console.cloud.google.com/talent-solution/overview). Learn
4315// more (https://cloud.google.com/talent-solution/docs/management-tools)
4316// about self service tools.
4317//
4318// - parent: Parent project name.
4319func (r *ProjectsClientEventsService) Create(parent string, createclienteventrequest *CreateClientEventRequest) *ProjectsClientEventsCreateCall {
4320	c := &ProjectsClientEventsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4321	c.parent = parent
4322	c.createclienteventrequest = createclienteventrequest
4323	return c
4324}
4325
4326// Fields allows partial responses to be retrieved. See
4327// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4328// for more information.
4329func (c *ProjectsClientEventsCreateCall) Fields(s ...googleapi.Field) *ProjectsClientEventsCreateCall {
4330	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4331	return c
4332}
4333
4334// Context sets the context to be used in this call's Do method. Any
4335// pending HTTP request will be aborted if the provided context is
4336// canceled.
4337func (c *ProjectsClientEventsCreateCall) Context(ctx context.Context) *ProjectsClientEventsCreateCall {
4338	c.ctx_ = ctx
4339	return c
4340}
4341
4342// Header returns an http.Header that can be modified by the caller to
4343// add HTTP headers to the request.
4344func (c *ProjectsClientEventsCreateCall) Header() http.Header {
4345	if c.header_ == nil {
4346		c.header_ = make(http.Header)
4347	}
4348	return c.header_
4349}
4350
4351func (c *ProjectsClientEventsCreateCall) doRequest(alt string) (*http.Response, error) {
4352	reqHeaders := make(http.Header)
4353	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4354	for k, v := range c.header_ {
4355		reqHeaders[k] = v
4356	}
4357	reqHeaders.Set("User-Agent", c.s.userAgent())
4358	var body io.Reader = nil
4359	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createclienteventrequest)
4360	if err != nil {
4361		return nil, err
4362	}
4363	reqHeaders.Set("Content-Type", "application/json")
4364	c.urlParams_.Set("alt", alt)
4365	c.urlParams_.Set("prettyPrint", "false")
4366	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/clientEvents")
4367	urls += "?" + c.urlParams_.Encode()
4368	req, err := http.NewRequest("POST", urls, body)
4369	if err != nil {
4370		return nil, err
4371	}
4372	req.Header = reqHeaders
4373	googleapi.Expand(req.URL, map[string]string{
4374		"parent": c.parent,
4375	})
4376	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4377}
4378
4379// Do executes the "jobs.projects.clientEvents.create" call.
4380// Exactly one of *ClientEvent or error will be non-nil. Any non-2xx
4381// status code is an error. Response headers are in either
4382// *ClientEvent.ServerResponse.Header or (if a response was returned at
4383// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4384// to check whether the returned error was because
4385// http.StatusNotModified was returned.
4386func (c *ProjectsClientEventsCreateCall) Do(opts ...googleapi.CallOption) (*ClientEvent, error) {
4387	gensupport.SetOptions(c.urlParams_, opts...)
4388	res, err := c.doRequest("json")
4389	if res != nil && res.StatusCode == http.StatusNotModified {
4390		if res.Body != nil {
4391			res.Body.Close()
4392		}
4393		return nil, &googleapi.Error{
4394			Code:   res.StatusCode,
4395			Header: res.Header,
4396		}
4397	}
4398	if err != nil {
4399		return nil, err
4400	}
4401	defer googleapi.CloseBody(res)
4402	if err := googleapi.CheckResponse(res); err != nil {
4403		return nil, err
4404	}
4405	ret := &ClientEvent{
4406		ServerResponse: googleapi.ServerResponse{
4407			Header:         res.Header,
4408			HTTPStatusCode: res.StatusCode,
4409		},
4410	}
4411	target := &ret
4412	if err := gensupport.DecodeResponse(target, res); err != nil {
4413		return nil, err
4414	}
4415	return ret, nil
4416	// {
4417	//   "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.",
4418	//   "flatPath": "v3p1beta1/projects/{projectsId}/clientEvents",
4419	//   "httpMethod": "POST",
4420	//   "id": "jobs.projects.clientEvents.create",
4421	//   "parameterOrder": [
4422	//     "parent"
4423	//   ],
4424	//   "parameters": {
4425	//     "parent": {
4426	//       "description": "Parent project name.",
4427	//       "location": "path",
4428	//       "pattern": "^projects/[^/]+$",
4429	//       "required": true,
4430	//       "type": "string"
4431	//     }
4432	//   },
4433	//   "path": "v3p1beta1/{+parent}/clientEvents",
4434	//   "request": {
4435	//     "$ref": "CreateClientEventRequest"
4436	//   },
4437	//   "response": {
4438	//     "$ref": "ClientEvent"
4439	//   },
4440	//   "scopes": [
4441	//     "https://www.googleapis.com/auth/cloud-platform",
4442	//     "https://www.googleapis.com/auth/jobs"
4443	//   ]
4444	// }
4445
4446}
4447
4448// method id "jobs.projects.companies.create":
4449
4450type ProjectsCompaniesCreateCall struct {
4451	s                    *Service
4452	parent               string
4453	createcompanyrequest *CreateCompanyRequest
4454	urlParams_           gensupport.URLParams
4455	ctx_                 context.Context
4456	header_              http.Header
4457}
4458
4459// Create: Creates a new company entity.
4460//
4461// - parent: Resource name of the project under which the company is
4462//   created. The format is "projects/{project_id}", for example,
4463//   "projects/api-test-project".
4464func (r *ProjectsCompaniesService) Create(parent string, createcompanyrequest *CreateCompanyRequest) *ProjectsCompaniesCreateCall {
4465	c := &ProjectsCompaniesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4466	c.parent = parent
4467	c.createcompanyrequest = createcompanyrequest
4468	return c
4469}
4470
4471// Fields allows partial responses to be retrieved. See
4472// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4473// for more information.
4474func (c *ProjectsCompaniesCreateCall) Fields(s ...googleapi.Field) *ProjectsCompaniesCreateCall {
4475	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4476	return c
4477}
4478
4479// Context sets the context to be used in this call's Do method. Any
4480// pending HTTP request will be aborted if the provided context is
4481// canceled.
4482func (c *ProjectsCompaniesCreateCall) Context(ctx context.Context) *ProjectsCompaniesCreateCall {
4483	c.ctx_ = ctx
4484	return c
4485}
4486
4487// Header returns an http.Header that can be modified by the caller to
4488// add HTTP headers to the request.
4489func (c *ProjectsCompaniesCreateCall) Header() http.Header {
4490	if c.header_ == nil {
4491		c.header_ = make(http.Header)
4492	}
4493	return c.header_
4494}
4495
4496func (c *ProjectsCompaniesCreateCall) doRequest(alt string) (*http.Response, error) {
4497	reqHeaders := make(http.Header)
4498	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4499	for k, v := range c.header_ {
4500		reqHeaders[k] = v
4501	}
4502	reqHeaders.Set("User-Agent", c.s.userAgent())
4503	var body io.Reader = nil
4504	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createcompanyrequest)
4505	if err != nil {
4506		return nil, err
4507	}
4508	reqHeaders.Set("Content-Type", "application/json")
4509	c.urlParams_.Set("alt", alt)
4510	c.urlParams_.Set("prettyPrint", "false")
4511	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/companies")
4512	urls += "?" + c.urlParams_.Encode()
4513	req, err := http.NewRequest("POST", urls, body)
4514	if err != nil {
4515		return nil, err
4516	}
4517	req.Header = reqHeaders
4518	googleapi.Expand(req.URL, map[string]string{
4519		"parent": c.parent,
4520	})
4521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4522}
4523
4524// Do executes the "jobs.projects.companies.create" call.
4525// Exactly one of *Company or error will be non-nil. Any non-2xx status
4526// code is an error. Response headers are in either
4527// *Company.ServerResponse.Header or (if a response was returned at all)
4528// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4529// check whether the returned error was because http.StatusNotModified
4530// was returned.
4531func (c *ProjectsCompaniesCreateCall) Do(opts ...googleapi.CallOption) (*Company, error) {
4532	gensupport.SetOptions(c.urlParams_, opts...)
4533	res, err := c.doRequest("json")
4534	if res != nil && res.StatusCode == http.StatusNotModified {
4535		if res.Body != nil {
4536			res.Body.Close()
4537		}
4538		return nil, &googleapi.Error{
4539			Code:   res.StatusCode,
4540			Header: res.Header,
4541		}
4542	}
4543	if err != nil {
4544		return nil, err
4545	}
4546	defer googleapi.CloseBody(res)
4547	if err := googleapi.CheckResponse(res); err != nil {
4548		return nil, err
4549	}
4550	ret := &Company{
4551		ServerResponse: googleapi.ServerResponse{
4552			Header:         res.Header,
4553			HTTPStatusCode: res.StatusCode,
4554		},
4555	}
4556	target := &ret
4557	if err := gensupport.DecodeResponse(target, res); err != nil {
4558		return nil, err
4559	}
4560	return ret, nil
4561	// {
4562	//   "description": "Creates a new company entity.",
4563	//   "flatPath": "v3p1beta1/projects/{projectsId}/companies",
4564	//   "httpMethod": "POST",
4565	//   "id": "jobs.projects.companies.create",
4566	//   "parameterOrder": [
4567	//     "parent"
4568	//   ],
4569	//   "parameters": {
4570	//     "parent": {
4571	//       "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\".",
4572	//       "location": "path",
4573	//       "pattern": "^projects/[^/]+$",
4574	//       "required": true,
4575	//       "type": "string"
4576	//     }
4577	//   },
4578	//   "path": "v3p1beta1/{+parent}/companies",
4579	//   "request": {
4580	//     "$ref": "CreateCompanyRequest"
4581	//   },
4582	//   "response": {
4583	//     "$ref": "Company"
4584	//   },
4585	//   "scopes": [
4586	//     "https://www.googleapis.com/auth/cloud-platform",
4587	//     "https://www.googleapis.com/auth/jobs"
4588	//   ]
4589	// }
4590
4591}
4592
4593// method id "jobs.projects.companies.delete":
4594
4595type ProjectsCompaniesDeleteCall struct {
4596	s          *Service
4597	name       string
4598	urlParams_ gensupport.URLParams
4599	ctx_       context.Context
4600	header_    http.Header
4601}
4602
4603// Delete: Deletes specified company. Prerequisite: The company has no
4604// jobs associated with it.
4605//
4606// - name: The resource name of the company to be deleted. The format is
4607//   "projects/{project_id}/companies/{company_id}", for example,
4608//   "projects/api-test-project/companies/foo".
4609func (r *ProjectsCompaniesService) Delete(name string) *ProjectsCompaniesDeleteCall {
4610	c := &ProjectsCompaniesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4611	c.name = name
4612	return c
4613}
4614
4615// Fields allows partial responses to be retrieved. See
4616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4617// for more information.
4618func (c *ProjectsCompaniesDeleteCall) Fields(s ...googleapi.Field) *ProjectsCompaniesDeleteCall {
4619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4620	return c
4621}
4622
4623// Context sets the context to be used in this call's Do method. Any
4624// pending HTTP request will be aborted if the provided context is
4625// canceled.
4626func (c *ProjectsCompaniesDeleteCall) Context(ctx context.Context) *ProjectsCompaniesDeleteCall {
4627	c.ctx_ = ctx
4628	return c
4629}
4630
4631// Header returns an http.Header that can be modified by the caller to
4632// add HTTP headers to the request.
4633func (c *ProjectsCompaniesDeleteCall) Header() http.Header {
4634	if c.header_ == nil {
4635		c.header_ = make(http.Header)
4636	}
4637	return c.header_
4638}
4639
4640func (c *ProjectsCompaniesDeleteCall) doRequest(alt string) (*http.Response, error) {
4641	reqHeaders := make(http.Header)
4642	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4643	for k, v := range c.header_ {
4644		reqHeaders[k] = v
4645	}
4646	reqHeaders.Set("User-Agent", c.s.userAgent())
4647	var body io.Reader = nil
4648	c.urlParams_.Set("alt", alt)
4649	c.urlParams_.Set("prettyPrint", "false")
4650	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
4651	urls += "?" + c.urlParams_.Encode()
4652	req, err := http.NewRequest("DELETE", urls, body)
4653	if err != nil {
4654		return nil, err
4655	}
4656	req.Header = reqHeaders
4657	googleapi.Expand(req.URL, map[string]string{
4658		"name": c.name,
4659	})
4660	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4661}
4662
4663// Do executes the "jobs.projects.companies.delete" call.
4664// Exactly one of *Empty or error will be non-nil. Any non-2xx status
4665// code is an error. Response headers are in either
4666// *Empty.ServerResponse.Header or (if a response was returned at all)
4667// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4668// check whether the returned error was because http.StatusNotModified
4669// was returned.
4670func (c *ProjectsCompaniesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
4671	gensupport.SetOptions(c.urlParams_, opts...)
4672	res, err := c.doRequest("json")
4673	if res != nil && res.StatusCode == http.StatusNotModified {
4674		if res.Body != nil {
4675			res.Body.Close()
4676		}
4677		return nil, &googleapi.Error{
4678			Code:   res.StatusCode,
4679			Header: res.Header,
4680		}
4681	}
4682	if err != nil {
4683		return nil, err
4684	}
4685	defer googleapi.CloseBody(res)
4686	if err := googleapi.CheckResponse(res); err != nil {
4687		return nil, err
4688	}
4689	ret := &Empty{
4690		ServerResponse: googleapi.ServerResponse{
4691			Header:         res.Header,
4692			HTTPStatusCode: res.StatusCode,
4693		},
4694	}
4695	target := &ret
4696	if err := gensupport.DecodeResponse(target, res); err != nil {
4697		return nil, err
4698	}
4699	return ret, nil
4700	// {
4701	//   "description": "Deletes specified company. Prerequisite: The company has no jobs associated with it.",
4702	//   "flatPath": "v3p1beta1/projects/{projectsId}/companies/{companiesId}",
4703	//   "httpMethod": "DELETE",
4704	//   "id": "jobs.projects.companies.delete",
4705	//   "parameterOrder": [
4706	//     "name"
4707	//   ],
4708	//   "parameters": {
4709	//     "name": {
4710	//       "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\".",
4711	//       "location": "path",
4712	//       "pattern": "^projects/[^/]+/companies/[^/]+$",
4713	//       "required": true,
4714	//       "type": "string"
4715	//     }
4716	//   },
4717	//   "path": "v3p1beta1/{+name}",
4718	//   "response": {
4719	//     "$ref": "Empty"
4720	//   },
4721	//   "scopes": [
4722	//     "https://www.googleapis.com/auth/cloud-platform",
4723	//     "https://www.googleapis.com/auth/jobs"
4724	//   ]
4725	// }
4726
4727}
4728
4729// method id "jobs.projects.companies.get":
4730
4731type ProjectsCompaniesGetCall struct {
4732	s            *Service
4733	name         string
4734	urlParams_   gensupport.URLParams
4735	ifNoneMatch_ string
4736	ctx_         context.Context
4737	header_      http.Header
4738}
4739
4740// Get: Retrieves specified company.
4741//
4742// - name: The resource name of the company to be retrieved. The format
4743//   is "projects/{project_id}/companies/{company_id}", for example,
4744//   "projects/api-test-project/companies/foo".
4745func (r *ProjectsCompaniesService) Get(name string) *ProjectsCompaniesGetCall {
4746	c := &ProjectsCompaniesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4747	c.name = name
4748	return c
4749}
4750
4751// Fields allows partial responses to be retrieved. See
4752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4753// for more information.
4754func (c *ProjectsCompaniesGetCall) Fields(s ...googleapi.Field) *ProjectsCompaniesGetCall {
4755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4756	return c
4757}
4758
4759// IfNoneMatch sets the optional parameter which makes the operation
4760// fail if the object's ETag matches the given value. This is useful for
4761// getting updates only after the object has changed since the last
4762// request. Use googleapi.IsNotModified to check whether the response
4763// error from Do is the result of In-None-Match.
4764func (c *ProjectsCompaniesGetCall) IfNoneMatch(entityTag string) *ProjectsCompaniesGetCall {
4765	c.ifNoneMatch_ = entityTag
4766	return c
4767}
4768
4769// Context sets the context to be used in this call's Do method. Any
4770// pending HTTP request will be aborted if the provided context is
4771// canceled.
4772func (c *ProjectsCompaniesGetCall) Context(ctx context.Context) *ProjectsCompaniesGetCall {
4773	c.ctx_ = ctx
4774	return c
4775}
4776
4777// Header returns an http.Header that can be modified by the caller to
4778// add HTTP headers to the request.
4779func (c *ProjectsCompaniesGetCall) Header() http.Header {
4780	if c.header_ == nil {
4781		c.header_ = make(http.Header)
4782	}
4783	return c.header_
4784}
4785
4786func (c *ProjectsCompaniesGetCall) doRequest(alt string) (*http.Response, error) {
4787	reqHeaders := make(http.Header)
4788	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4789	for k, v := range c.header_ {
4790		reqHeaders[k] = v
4791	}
4792	reqHeaders.Set("User-Agent", c.s.userAgent())
4793	if c.ifNoneMatch_ != "" {
4794		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4795	}
4796	var body io.Reader = nil
4797	c.urlParams_.Set("alt", alt)
4798	c.urlParams_.Set("prettyPrint", "false")
4799	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
4800	urls += "?" + c.urlParams_.Encode()
4801	req, err := http.NewRequest("GET", urls, body)
4802	if err != nil {
4803		return nil, err
4804	}
4805	req.Header = reqHeaders
4806	googleapi.Expand(req.URL, map[string]string{
4807		"name": c.name,
4808	})
4809	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4810}
4811
4812// Do executes the "jobs.projects.companies.get" call.
4813// Exactly one of *Company or error will be non-nil. Any non-2xx status
4814// code is an error. Response headers are in either
4815// *Company.ServerResponse.Header or (if a response was returned at all)
4816// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4817// check whether the returned error was because http.StatusNotModified
4818// was returned.
4819func (c *ProjectsCompaniesGetCall) Do(opts ...googleapi.CallOption) (*Company, error) {
4820	gensupport.SetOptions(c.urlParams_, opts...)
4821	res, err := c.doRequest("json")
4822	if res != nil && res.StatusCode == http.StatusNotModified {
4823		if res.Body != nil {
4824			res.Body.Close()
4825		}
4826		return nil, &googleapi.Error{
4827			Code:   res.StatusCode,
4828			Header: res.Header,
4829		}
4830	}
4831	if err != nil {
4832		return nil, err
4833	}
4834	defer googleapi.CloseBody(res)
4835	if err := googleapi.CheckResponse(res); err != nil {
4836		return nil, err
4837	}
4838	ret := &Company{
4839		ServerResponse: googleapi.ServerResponse{
4840			Header:         res.Header,
4841			HTTPStatusCode: res.StatusCode,
4842		},
4843	}
4844	target := &ret
4845	if err := gensupport.DecodeResponse(target, res); err != nil {
4846		return nil, err
4847	}
4848	return ret, nil
4849	// {
4850	//   "description": "Retrieves specified company.",
4851	//   "flatPath": "v3p1beta1/projects/{projectsId}/companies/{companiesId}",
4852	//   "httpMethod": "GET",
4853	//   "id": "jobs.projects.companies.get",
4854	//   "parameterOrder": [
4855	//     "name"
4856	//   ],
4857	//   "parameters": {
4858	//     "name": {
4859	//       "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\".",
4860	//       "location": "path",
4861	//       "pattern": "^projects/[^/]+/companies/[^/]+$",
4862	//       "required": true,
4863	//       "type": "string"
4864	//     }
4865	//   },
4866	//   "path": "v3p1beta1/{+name}",
4867	//   "response": {
4868	//     "$ref": "Company"
4869	//   },
4870	//   "scopes": [
4871	//     "https://www.googleapis.com/auth/cloud-platform",
4872	//     "https://www.googleapis.com/auth/jobs"
4873	//   ]
4874	// }
4875
4876}
4877
4878// method id "jobs.projects.companies.list":
4879
4880type ProjectsCompaniesListCall struct {
4881	s            *Service
4882	parent       string
4883	urlParams_   gensupport.URLParams
4884	ifNoneMatch_ string
4885	ctx_         context.Context
4886	header_      http.Header
4887}
4888
4889// List: Lists all companies associated with the service account.
4890//
4891// - parent: Resource name of the project under which the company is
4892//   created. The format is "projects/{project_id}", for example,
4893//   "projects/api-test-project".
4894func (r *ProjectsCompaniesService) List(parent string) *ProjectsCompaniesListCall {
4895	c := &ProjectsCompaniesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4896	c.parent = parent
4897	return c
4898}
4899
4900// PageSize sets the optional parameter "pageSize": The maximum number
4901// of companies to be returned, at most 100. Default is 100 if a
4902// non-positive number is provided.
4903func (c *ProjectsCompaniesListCall) PageSize(pageSize int64) *ProjectsCompaniesListCall {
4904	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
4905	return c
4906}
4907
4908// PageToken sets the optional parameter "pageToken": The starting
4909// indicator from which to return results.
4910func (c *ProjectsCompaniesListCall) PageToken(pageToken string) *ProjectsCompaniesListCall {
4911	c.urlParams_.Set("pageToken", pageToken)
4912	return c
4913}
4914
4915// RequireOpenJobs sets the optional parameter "requireOpenJobs": Set to
4916// true if the companies requested must have open jobs. Defaults to
4917// false. If true, at most page_size of companies are fetched, among
4918// which only those with open jobs are returned.
4919func (c *ProjectsCompaniesListCall) RequireOpenJobs(requireOpenJobs bool) *ProjectsCompaniesListCall {
4920	c.urlParams_.Set("requireOpenJobs", fmt.Sprint(requireOpenJobs))
4921	return c
4922}
4923
4924// Fields allows partial responses to be retrieved. See
4925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4926// for more information.
4927func (c *ProjectsCompaniesListCall) Fields(s ...googleapi.Field) *ProjectsCompaniesListCall {
4928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4929	return c
4930}
4931
4932// IfNoneMatch sets the optional parameter which makes the operation
4933// fail if the object's ETag matches the given value. This is useful for
4934// getting updates only after the object has changed since the last
4935// request. Use googleapi.IsNotModified to check whether the response
4936// error from Do is the result of In-None-Match.
4937func (c *ProjectsCompaniesListCall) IfNoneMatch(entityTag string) *ProjectsCompaniesListCall {
4938	c.ifNoneMatch_ = entityTag
4939	return c
4940}
4941
4942// Context sets the context to be used in this call's Do method. Any
4943// pending HTTP request will be aborted if the provided context is
4944// canceled.
4945func (c *ProjectsCompaniesListCall) Context(ctx context.Context) *ProjectsCompaniesListCall {
4946	c.ctx_ = ctx
4947	return c
4948}
4949
4950// Header returns an http.Header that can be modified by the caller to
4951// add HTTP headers to the request.
4952func (c *ProjectsCompaniesListCall) Header() http.Header {
4953	if c.header_ == nil {
4954		c.header_ = make(http.Header)
4955	}
4956	return c.header_
4957}
4958
4959func (c *ProjectsCompaniesListCall) doRequest(alt string) (*http.Response, error) {
4960	reqHeaders := make(http.Header)
4961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4962	for k, v := range c.header_ {
4963		reqHeaders[k] = v
4964	}
4965	reqHeaders.Set("User-Agent", c.s.userAgent())
4966	if c.ifNoneMatch_ != "" {
4967		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4968	}
4969	var body io.Reader = nil
4970	c.urlParams_.Set("alt", alt)
4971	c.urlParams_.Set("prettyPrint", "false")
4972	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/companies")
4973	urls += "?" + c.urlParams_.Encode()
4974	req, err := http.NewRequest("GET", urls, body)
4975	if err != nil {
4976		return nil, err
4977	}
4978	req.Header = reqHeaders
4979	googleapi.Expand(req.URL, map[string]string{
4980		"parent": c.parent,
4981	})
4982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4983}
4984
4985// Do executes the "jobs.projects.companies.list" call.
4986// Exactly one of *ListCompaniesResponse or error will be non-nil. Any
4987// non-2xx status code is an error. Response headers are in either
4988// *ListCompaniesResponse.ServerResponse.Header or (if a response was
4989// returned at all) in error.(*googleapi.Error).Header. Use
4990// googleapi.IsNotModified to check whether the returned error was
4991// because http.StatusNotModified was returned.
4992func (c *ProjectsCompaniesListCall) Do(opts ...googleapi.CallOption) (*ListCompaniesResponse, error) {
4993	gensupport.SetOptions(c.urlParams_, opts...)
4994	res, err := c.doRequest("json")
4995	if res != nil && res.StatusCode == http.StatusNotModified {
4996		if res.Body != nil {
4997			res.Body.Close()
4998		}
4999		return nil, &googleapi.Error{
5000			Code:   res.StatusCode,
5001			Header: res.Header,
5002		}
5003	}
5004	if err != nil {
5005		return nil, err
5006	}
5007	defer googleapi.CloseBody(res)
5008	if err := googleapi.CheckResponse(res); err != nil {
5009		return nil, err
5010	}
5011	ret := &ListCompaniesResponse{
5012		ServerResponse: googleapi.ServerResponse{
5013			Header:         res.Header,
5014			HTTPStatusCode: res.StatusCode,
5015		},
5016	}
5017	target := &ret
5018	if err := gensupport.DecodeResponse(target, res); err != nil {
5019		return nil, err
5020	}
5021	return ret, nil
5022	// {
5023	//   "description": "Lists all companies associated with the service account.",
5024	//   "flatPath": "v3p1beta1/projects/{projectsId}/companies",
5025	//   "httpMethod": "GET",
5026	//   "id": "jobs.projects.companies.list",
5027	//   "parameterOrder": [
5028	//     "parent"
5029	//   ],
5030	//   "parameters": {
5031	//     "pageSize": {
5032	//       "description": "Optional. The maximum number of companies to be returned, at most 100. Default is 100 if a non-positive number is provided.",
5033	//       "format": "int32",
5034	//       "location": "query",
5035	//       "type": "integer"
5036	//     },
5037	//     "pageToken": {
5038	//       "description": "Optional. The starting indicator from which to return results.",
5039	//       "location": "query",
5040	//       "type": "string"
5041	//     },
5042	//     "parent": {
5043	//       "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\".",
5044	//       "location": "path",
5045	//       "pattern": "^projects/[^/]+$",
5046	//       "required": true,
5047	//       "type": "string"
5048	//     },
5049	//     "requireOpenJobs": {
5050	//       "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.",
5051	//       "location": "query",
5052	//       "type": "boolean"
5053	//     }
5054	//   },
5055	//   "path": "v3p1beta1/{+parent}/companies",
5056	//   "response": {
5057	//     "$ref": "ListCompaniesResponse"
5058	//   },
5059	//   "scopes": [
5060	//     "https://www.googleapis.com/auth/cloud-platform",
5061	//     "https://www.googleapis.com/auth/jobs"
5062	//   ]
5063	// }
5064
5065}
5066
5067// Pages invokes f for each page of results.
5068// A non-nil error returned from f will halt the iteration.
5069// The provided context supersedes any context provided to the Context method.
5070func (c *ProjectsCompaniesListCall) Pages(ctx context.Context, f func(*ListCompaniesResponse) error) error {
5071	c.ctx_ = ctx
5072	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5073	for {
5074		x, err := c.Do()
5075		if err != nil {
5076			return err
5077		}
5078		if err := f(x); err != nil {
5079			return err
5080		}
5081		if x.NextPageToken == "" {
5082			return nil
5083		}
5084		c.PageToken(x.NextPageToken)
5085	}
5086}
5087
5088// method id "jobs.projects.companies.patch":
5089
5090type ProjectsCompaniesPatchCall struct {
5091	s                    *Service
5092	name                 string
5093	updatecompanyrequest *UpdateCompanyRequest
5094	urlParams_           gensupport.URLParams
5095	ctx_                 context.Context
5096	header_              http.Header
5097}
5098
5099// Patch: Updates specified company. Company names can't be updated. To
5100// update a company name, delete the company and all jobs associated
5101// with it, and only then re-create them.
5102//
5103// - name: Required during company update. The resource name for a
5104//   company. This is generated by the service when a company is
5105//   created. The format is
5106//   "projects/{project_id}/companies/{company_id}", for example,
5107//   "projects/api-test-project/companies/foo".
5108func (r *ProjectsCompaniesService) Patch(name string, updatecompanyrequest *UpdateCompanyRequest) *ProjectsCompaniesPatchCall {
5109	c := &ProjectsCompaniesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5110	c.name = name
5111	c.updatecompanyrequest = updatecompanyrequest
5112	return c
5113}
5114
5115// Fields allows partial responses to be retrieved. See
5116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5117// for more information.
5118func (c *ProjectsCompaniesPatchCall) Fields(s ...googleapi.Field) *ProjectsCompaniesPatchCall {
5119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5120	return c
5121}
5122
5123// Context sets the context to be used in this call's Do method. Any
5124// pending HTTP request will be aborted if the provided context is
5125// canceled.
5126func (c *ProjectsCompaniesPatchCall) Context(ctx context.Context) *ProjectsCompaniesPatchCall {
5127	c.ctx_ = ctx
5128	return c
5129}
5130
5131// Header returns an http.Header that can be modified by the caller to
5132// add HTTP headers to the request.
5133func (c *ProjectsCompaniesPatchCall) Header() http.Header {
5134	if c.header_ == nil {
5135		c.header_ = make(http.Header)
5136	}
5137	return c.header_
5138}
5139
5140func (c *ProjectsCompaniesPatchCall) doRequest(alt string) (*http.Response, error) {
5141	reqHeaders := make(http.Header)
5142	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5143	for k, v := range c.header_ {
5144		reqHeaders[k] = v
5145	}
5146	reqHeaders.Set("User-Agent", c.s.userAgent())
5147	var body io.Reader = nil
5148	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatecompanyrequest)
5149	if err != nil {
5150		return nil, err
5151	}
5152	reqHeaders.Set("Content-Type", "application/json")
5153	c.urlParams_.Set("alt", alt)
5154	c.urlParams_.Set("prettyPrint", "false")
5155	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
5156	urls += "?" + c.urlParams_.Encode()
5157	req, err := http.NewRequest("PATCH", urls, body)
5158	if err != nil {
5159		return nil, err
5160	}
5161	req.Header = reqHeaders
5162	googleapi.Expand(req.URL, map[string]string{
5163		"name": c.name,
5164	})
5165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5166}
5167
5168// Do executes the "jobs.projects.companies.patch" call.
5169// Exactly one of *Company or error will be non-nil. Any non-2xx status
5170// code is an error. Response headers are in either
5171// *Company.ServerResponse.Header or (if a response was returned at all)
5172// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5173// check whether the returned error was because http.StatusNotModified
5174// was returned.
5175func (c *ProjectsCompaniesPatchCall) Do(opts ...googleapi.CallOption) (*Company, error) {
5176	gensupport.SetOptions(c.urlParams_, opts...)
5177	res, err := c.doRequest("json")
5178	if res != nil && res.StatusCode == http.StatusNotModified {
5179		if res.Body != nil {
5180			res.Body.Close()
5181		}
5182		return nil, &googleapi.Error{
5183			Code:   res.StatusCode,
5184			Header: res.Header,
5185		}
5186	}
5187	if err != nil {
5188		return nil, err
5189	}
5190	defer googleapi.CloseBody(res)
5191	if err := googleapi.CheckResponse(res); err != nil {
5192		return nil, err
5193	}
5194	ret := &Company{
5195		ServerResponse: googleapi.ServerResponse{
5196			Header:         res.Header,
5197			HTTPStatusCode: res.StatusCode,
5198		},
5199	}
5200	target := &ret
5201	if err := gensupport.DecodeResponse(target, res); err != nil {
5202		return nil, err
5203	}
5204	return ret, nil
5205	// {
5206	//   "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.",
5207	//   "flatPath": "v3p1beta1/projects/{projectsId}/companies/{companiesId}",
5208	//   "httpMethod": "PATCH",
5209	//   "id": "jobs.projects.companies.patch",
5210	//   "parameterOrder": [
5211	//     "name"
5212	//   ],
5213	//   "parameters": {
5214	//     "name": {
5215	//       "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\".",
5216	//       "location": "path",
5217	//       "pattern": "^projects/[^/]+/companies/[^/]+$",
5218	//       "required": true,
5219	//       "type": "string"
5220	//     }
5221	//   },
5222	//   "path": "v3p1beta1/{+name}",
5223	//   "request": {
5224	//     "$ref": "UpdateCompanyRequest"
5225	//   },
5226	//   "response": {
5227	//     "$ref": "Company"
5228	//   },
5229	//   "scopes": [
5230	//     "https://www.googleapis.com/auth/cloud-platform",
5231	//     "https://www.googleapis.com/auth/jobs"
5232	//   ]
5233	// }
5234
5235}
5236
5237// method id "jobs.projects.jobs.batchDelete":
5238
5239type ProjectsJobsBatchDeleteCall struct {
5240	s                      *Service
5241	parent                 string
5242	batchdeletejobsrequest *BatchDeleteJobsRequest
5243	urlParams_             gensupport.URLParams
5244	ctx_                   context.Context
5245	header_                http.Header
5246}
5247
5248// BatchDelete: Deletes a list of Jobs by filter.
5249//
5250// - parent: The resource name of the project under which the job is
5251//   created. The format is "projects/{project_id}", for example,
5252//   "projects/api-test-project".
5253func (r *ProjectsJobsService) BatchDelete(parent string, batchdeletejobsrequest *BatchDeleteJobsRequest) *ProjectsJobsBatchDeleteCall {
5254	c := &ProjectsJobsBatchDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5255	c.parent = parent
5256	c.batchdeletejobsrequest = batchdeletejobsrequest
5257	return c
5258}
5259
5260// Fields allows partial responses to be retrieved. See
5261// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5262// for more information.
5263func (c *ProjectsJobsBatchDeleteCall) Fields(s ...googleapi.Field) *ProjectsJobsBatchDeleteCall {
5264	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5265	return c
5266}
5267
5268// Context sets the context to be used in this call's Do method. Any
5269// pending HTTP request will be aborted if the provided context is
5270// canceled.
5271func (c *ProjectsJobsBatchDeleteCall) Context(ctx context.Context) *ProjectsJobsBatchDeleteCall {
5272	c.ctx_ = ctx
5273	return c
5274}
5275
5276// Header returns an http.Header that can be modified by the caller to
5277// add HTTP headers to the request.
5278func (c *ProjectsJobsBatchDeleteCall) Header() http.Header {
5279	if c.header_ == nil {
5280		c.header_ = make(http.Header)
5281	}
5282	return c.header_
5283}
5284
5285func (c *ProjectsJobsBatchDeleteCall) doRequest(alt string) (*http.Response, error) {
5286	reqHeaders := make(http.Header)
5287	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5288	for k, v := range c.header_ {
5289		reqHeaders[k] = v
5290	}
5291	reqHeaders.Set("User-Agent", c.s.userAgent())
5292	var body io.Reader = nil
5293	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchdeletejobsrequest)
5294	if err != nil {
5295		return nil, err
5296	}
5297	reqHeaders.Set("Content-Type", "application/json")
5298	c.urlParams_.Set("alt", alt)
5299	c.urlParams_.Set("prettyPrint", "false")
5300	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/jobs:batchDelete")
5301	urls += "?" + c.urlParams_.Encode()
5302	req, err := http.NewRequest("POST", urls, body)
5303	if err != nil {
5304		return nil, err
5305	}
5306	req.Header = reqHeaders
5307	googleapi.Expand(req.URL, map[string]string{
5308		"parent": c.parent,
5309	})
5310	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5311}
5312
5313// Do executes the "jobs.projects.jobs.batchDelete" call.
5314// Exactly one of *Empty or error will be non-nil. Any non-2xx status
5315// code is an error. Response headers are in either
5316// *Empty.ServerResponse.Header or (if a response was returned at all)
5317// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5318// check whether the returned error was because http.StatusNotModified
5319// was returned.
5320func (c *ProjectsJobsBatchDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
5321	gensupport.SetOptions(c.urlParams_, opts...)
5322	res, err := c.doRequest("json")
5323	if res != nil && res.StatusCode == http.StatusNotModified {
5324		if res.Body != nil {
5325			res.Body.Close()
5326		}
5327		return nil, &googleapi.Error{
5328			Code:   res.StatusCode,
5329			Header: res.Header,
5330		}
5331	}
5332	if err != nil {
5333		return nil, err
5334	}
5335	defer googleapi.CloseBody(res)
5336	if err := googleapi.CheckResponse(res); err != nil {
5337		return nil, err
5338	}
5339	ret := &Empty{
5340		ServerResponse: googleapi.ServerResponse{
5341			Header:         res.Header,
5342			HTTPStatusCode: res.StatusCode,
5343		},
5344	}
5345	target := &ret
5346	if err := gensupport.DecodeResponse(target, res); err != nil {
5347		return nil, err
5348	}
5349	return ret, nil
5350	// {
5351	//   "description": "Deletes a list of Jobs by filter.",
5352	//   "flatPath": "v3p1beta1/projects/{projectsId}/jobs:batchDelete",
5353	//   "httpMethod": "POST",
5354	//   "id": "jobs.projects.jobs.batchDelete",
5355	//   "parameterOrder": [
5356	//     "parent"
5357	//   ],
5358	//   "parameters": {
5359	//     "parent": {
5360	//       "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\".",
5361	//       "location": "path",
5362	//       "pattern": "^projects/[^/]+$",
5363	//       "required": true,
5364	//       "type": "string"
5365	//     }
5366	//   },
5367	//   "path": "v3p1beta1/{+parent}/jobs:batchDelete",
5368	//   "request": {
5369	//     "$ref": "BatchDeleteJobsRequest"
5370	//   },
5371	//   "response": {
5372	//     "$ref": "Empty"
5373	//   },
5374	//   "scopes": [
5375	//     "https://www.googleapis.com/auth/cloud-platform",
5376	//     "https://www.googleapis.com/auth/jobs"
5377	//   ]
5378	// }
5379
5380}
5381
5382// method id "jobs.projects.jobs.create":
5383
5384type ProjectsJobsCreateCall struct {
5385	s                *Service
5386	parent           string
5387	createjobrequest *CreateJobRequest
5388	urlParams_       gensupport.URLParams
5389	ctx_             context.Context
5390	header_          http.Header
5391}
5392
5393// Create: Creates a new job. Typically, the job becomes searchable
5394// within 10 seconds, but it may take up to 5 minutes.
5395//
5396// - parent: The resource name of the project under which the job is
5397//   created. The format is "projects/{project_id}", for example,
5398//   "projects/api-test-project".
5399func (r *ProjectsJobsService) Create(parent string, createjobrequest *CreateJobRequest) *ProjectsJobsCreateCall {
5400	c := &ProjectsJobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5401	c.parent = parent
5402	c.createjobrequest = createjobrequest
5403	return c
5404}
5405
5406// Fields allows partial responses to be retrieved. See
5407// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5408// for more information.
5409func (c *ProjectsJobsCreateCall) Fields(s ...googleapi.Field) *ProjectsJobsCreateCall {
5410	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5411	return c
5412}
5413
5414// Context sets the context to be used in this call's Do method. Any
5415// pending HTTP request will be aborted if the provided context is
5416// canceled.
5417func (c *ProjectsJobsCreateCall) Context(ctx context.Context) *ProjectsJobsCreateCall {
5418	c.ctx_ = ctx
5419	return c
5420}
5421
5422// Header returns an http.Header that can be modified by the caller to
5423// add HTTP headers to the request.
5424func (c *ProjectsJobsCreateCall) Header() http.Header {
5425	if c.header_ == nil {
5426		c.header_ = make(http.Header)
5427	}
5428	return c.header_
5429}
5430
5431func (c *ProjectsJobsCreateCall) doRequest(alt string) (*http.Response, error) {
5432	reqHeaders := make(http.Header)
5433	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5434	for k, v := range c.header_ {
5435		reqHeaders[k] = v
5436	}
5437	reqHeaders.Set("User-Agent", c.s.userAgent())
5438	var body io.Reader = nil
5439	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createjobrequest)
5440	if err != nil {
5441		return nil, err
5442	}
5443	reqHeaders.Set("Content-Type", "application/json")
5444	c.urlParams_.Set("alt", alt)
5445	c.urlParams_.Set("prettyPrint", "false")
5446	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/jobs")
5447	urls += "?" + c.urlParams_.Encode()
5448	req, err := http.NewRequest("POST", urls, body)
5449	if err != nil {
5450		return nil, err
5451	}
5452	req.Header = reqHeaders
5453	googleapi.Expand(req.URL, map[string]string{
5454		"parent": c.parent,
5455	})
5456	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5457}
5458
5459// Do executes the "jobs.projects.jobs.create" call.
5460// Exactly one of *Job or error will be non-nil. Any non-2xx status code
5461// is an error. Response headers are in either
5462// *Job.ServerResponse.Header or (if a response was returned at all) in
5463// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
5464// whether the returned error was because http.StatusNotModified was
5465// returned.
5466func (c *ProjectsJobsCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
5467	gensupport.SetOptions(c.urlParams_, opts...)
5468	res, err := c.doRequest("json")
5469	if res != nil && res.StatusCode == http.StatusNotModified {
5470		if res.Body != nil {
5471			res.Body.Close()
5472		}
5473		return nil, &googleapi.Error{
5474			Code:   res.StatusCode,
5475			Header: res.Header,
5476		}
5477	}
5478	if err != nil {
5479		return nil, err
5480	}
5481	defer googleapi.CloseBody(res)
5482	if err := googleapi.CheckResponse(res); err != nil {
5483		return nil, err
5484	}
5485	ret := &Job{
5486		ServerResponse: googleapi.ServerResponse{
5487			Header:         res.Header,
5488			HTTPStatusCode: res.StatusCode,
5489		},
5490	}
5491	target := &ret
5492	if err := gensupport.DecodeResponse(target, res); err != nil {
5493		return nil, err
5494	}
5495	return ret, nil
5496	// {
5497	//   "description": "Creates a new job. Typically, the job becomes searchable within 10 seconds, but it may take up to 5 minutes.",
5498	//   "flatPath": "v3p1beta1/projects/{projectsId}/jobs",
5499	//   "httpMethod": "POST",
5500	//   "id": "jobs.projects.jobs.create",
5501	//   "parameterOrder": [
5502	//     "parent"
5503	//   ],
5504	//   "parameters": {
5505	//     "parent": {
5506	//       "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\".",
5507	//       "location": "path",
5508	//       "pattern": "^projects/[^/]+$",
5509	//       "required": true,
5510	//       "type": "string"
5511	//     }
5512	//   },
5513	//   "path": "v3p1beta1/{+parent}/jobs",
5514	//   "request": {
5515	//     "$ref": "CreateJobRequest"
5516	//   },
5517	//   "response": {
5518	//     "$ref": "Job"
5519	//   },
5520	//   "scopes": [
5521	//     "https://www.googleapis.com/auth/cloud-platform",
5522	//     "https://www.googleapis.com/auth/jobs"
5523	//   ]
5524	// }
5525
5526}
5527
5528// method id "jobs.projects.jobs.delete":
5529
5530type ProjectsJobsDeleteCall struct {
5531	s          *Service
5532	name       string
5533	urlParams_ gensupport.URLParams
5534	ctx_       context.Context
5535	header_    http.Header
5536}
5537
5538// Delete: Deletes the specified job. Typically, the job becomes
5539// unsearchable within 10 seconds, but it may take up to 5 minutes.
5540//
5541// - name: The resource name of the job to be deleted. The format is
5542//   "projects/{project_id}/jobs/{job_id}", for example,
5543//   "projects/api-test-project/jobs/1234".
5544func (r *ProjectsJobsService) Delete(name string) *ProjectsJobsDeleteCall {
5545	c := &ProjectsJobsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5546	c.name = name
5547	return c
5548}
5549
5550// Fields allows partial responses to be retrieved. See
5551// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5552// for more information.
5553func (c *ProjectsJobsDeleteCall) Fields(s ...googleapi.Field) *ProjectsJobsDeleteCall {
5554	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5555	return c
5556}
5557
5558// Context sets the context to be used in this call's Do method. Any
5559// pending HTTP request will be aborted if the provided context is
5560// canceled.
5561func (c *ProjectsJobsDeleteCall) Context(ctx context.Context) *ProjectsJobsDeleteCall {
5562	c.ctx_ = ctx
5563	return c
5564}
5565
5566// Header returns an http.Header that can be modified by the caller to
5567// add HTTP headers to the request.
5568func (c *ProjectsJobsDeleteCall) Header() http.Header {
5569	if c.header_ == nil {
5570		c.header_ = make(http.Header)
5571	}
5572	return c.header_
5573}
5574
5575func (c *ProjectsJobsDeleteCall) doRequest(alt string) (*http.Response, error) {
5576	reqHeaders := make(http.Header)
5577	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5578	for k, v := range c.header_ {
5579		reqHeaders[k] = v
5580	}
5581	reqHeaders.Set("User-Agent", c.s.userAgent())
5582	var body io.Reader = nil
5583	c.urlParams_.Set("alt", alt)
5584	c.urlParams_.Set("prettyPrint", "false")
5585	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
5586	urls += "?" + c.urlParams_.Encode()
5587	req, err := http.NewRequest("DELETE", urls, body)
5588	if err != nil {
5589		return nil, err
5590	}
5591	req.Header = reqHeaders
5592	googleapi.Expand(req.URL, map[string]string{
5593		"name": c.name,
5594	})
5595	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5596}
5597
5598// Do executes the "jobs.projects.jobs.delete" call.
5599// Exactly one of *Empty or error will be non-nil. Any non-2xx status
5600// code is an error. Response headers are in either
5601// *Empty.ServerResponse.Header or (if a response was returned at all)
5602// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5603// check whether the returned error was because http.StatusNotModified
5604// was returned.
5605func (c *ProjectsJobsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
5606	gensupport.SetOptions(c.urlParams_, opts...)
5607	res, err := c.doRequest("json")
5608	if res != nil && res.StatusCode == http.StatusNotModified {
5609		if res.Body != nil {
5610			res.Body.Close()
5611		}
5612		return nil, &googleapi.Error{
5613			Code:   res.StatusCode,
5614			Header: res.Header,
5615		}
5616	}
5617	if err != nil {
5618		return nil, err
5619	}
5620	defer googleapi.CloseBody(res)
5621	if err := googleapi.CheckResponse(res); err != nil {
5622		return nil, err
5623	}
5624	ret := &Empty{
5625		ServerResponse: googleapi.ServerResponse{
5626			Header:         res.Header,
5627			HTTPStatusCode: res.StatusCode,
5628		},
5629	}
5630	target := &ret
5631	if err := gensupport.DecodeResponse(target, res); err != nil {
5632		return nil, err
5633	}
5634	return ret, nil
5635	// {
5636	//   "description": "Deletes the specified job. Typically, the job becomes unsearchable within 10 seconds, but it may take up to 5 minutes.",
5637	//   "flatPath": "v3p1beta1/projects/{projectsId}/jobs/{jobsId}",
5638	//   "httpMethod": "DELETE",
5639	//   "id": "jobs.projects.jobs.delete",
5640	//   "parameterOrder": [
5641	//     "name"
5642	//   ],
5643	//   "parameters": {
5644	//     "name": {
5645	//       "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\".",
5646	//       "location": "path",
5647	//       "pattern": "^projects/[^/]+/jobs/[^/]+$",
5648	//       "required": true,
5649	//       "type": "string"
5650	//     }
5651	//   },
5652	//   "path": "v3p1beta1/{+name}",
5653	//   "response": {
5654	//     "$ref": "Empty"
5655	//   },
5656	//   "scopes": [
5657	//     "https://www.googleapis.com/auth/cloud-platform",
5658	//     "https://www.googleapis.com/auth/jobs"
5659	//   ]
5660	// }
5661
5662}
5663
5664// method id "jobs.projects.jobs.get":
5665
5666type ProjectsJobsGetCall struct {
5667	s            *Service
5668	name         string
5669	urlParams_   gensupport.URLParams
5670	ifNoneMatch_ string
5671	ctx_         context.Context
5672	header_      http.Header
5673}
5674
5675// Get: Retrieves the specified job, whose status is OPEN or recently
5676// EXPIRED within the last 90 days.
5677//
5678// - name: The resource name of the job to retrieve. The format is
5679//   "projects/{project_id}/jobs/{job_id}", for example,
5680//   "projects/api-test-project/jobs/1234".
5681func (r *ProjectsJobsService) Get(name string) *ProjectsJobsGetCall {
5682	c := &ProjectsJobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5683	c.name = name
5684	return c
5685}
5686
5687// Fields allows partial responses to be retrieved. See
5688// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5689// for more information.
5690func (c *ProjectsJobsGetCall) Fields(s ...googleapi.Field) *ProjectsJobsGetCall {
5691	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5692	return c
5693}
5694
5695// IfNoneMatch sets the optional parameter which makes the operation
5696// fail if the object's ETag matches the given value. This is useful for
5697// getting updates only after the object has changed since the last
5698// request. Use googleapi.IsNotModified to check whether the response
5699// error from Do is the result of In-None-Match.
5700func (c *ProjectsJobsGetCall) IfNoneMatch(entityTag string) *ProjectsJobsGetCall {
5701	c.ifNoneMatch_ = entityTag
5702	return c
5703}
5704
5705// Context sets the context to be used in this call's Do method. Any
5706// pending HTTP request will be aborted if the provided context is
5707// canceled.
5708func (c *ProjectsJobsGetCall) Context(ctx context.Context) *ProjectsJobsGetCall {
5709	c.ctx_ = ctx
5710	return c
5711}
5712
5713// Header returns an http.Header that can be modified by the caller to
5714// add HTTP headers to the request.
5715func (c *ProjectsJobsGetCall) Header() http.Header {
5716	if c.header_ == nil {
5717		c.header_ = make(http.Header)
5718	}
5719	return c.header_
5720}
5721
5722func (c *ProjectsJobsGetCall) doRequest(alt string) (*http.Response, error) {
5723	reqHeaders := make(http.Header)
5724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5725	for k, v := range c.header_ {
5726		reqHeaders[k] = v
5727	}
5728	reqHeaders.Set("User-Agent", c.s.userAgent())
5729	if c.ifNoneMatch_ != "" {
5730		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5731	}
5732	var body io.Reader = nil
5733	c.urlParams_.Set("alt", alt)
5734	c.urlParams_.Set("prettyPrint", "false")
5735	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
5736	urls += "?" + c.urlParams_.Encode()
5737	req, err := http.NewRequest("GET", urls, body)
5738	if err != nil {
5739		return nil, err
5740	}
5741	req.Header = reqHeaders
5742	googleapi.Expand(req.URL, map[string]string{
5743		"name": c.name,
5744	})
5745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5746}
5747
5748// Do executes the "jobs.projects.jobs.get" call.
5749// Exactly one of *Job or error will be non-nil. Any non-2xx status code
5750// is an error. Response headers are in either
5751// *Job.ServerResponse.Header or (if a response was returned at all) in
5752// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
5753// whether the returned error was because http.StatusNotModified was
5754// returned.
5755func (c *ProjectsJobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
5756	gensupport.SetOptions(c.urlParams_, opts...)
5757	res, err := c.doRequest("json")
5758	if res != nil && res.StatusCode == http.StatusNotModified {
5759		if res.Body != nil {
5760			res.Body.Close()
5761		}
5762		return nil, &googleapi.Error{
5763			Code:   res.StatusCode,
5764			Header: res.Header,
5765		}
5766	}
5767	if err != nil {
5768		return nil, err
5769	}
5770	defer googleapi.CloseBody(res)
5771	if err := googleapi.CheckResponse(res); err != nil {
5772		return nil, err
5773	}
5774	ret := &Job{
5775		ServerResponse: googleapi.ServerResponse{
5776			Header:         res.Header,
5777			HTTPStatusCode: res.StatusCode,
5778		},
5779	}
5780	target := &ret
5781	if err := gensupport.DecodeResponse(target, res); err != nil {
5782		return nil, err
5783	}
5784	return ret, nil
5785	// {
5786	//   "description": "Retrieves the specified job, whose status is OPEN or recently EXPIRED within the last 90 days.",
5787	//   "flatPath": "v3p1beta1/projects/{projectsId}/jobs/{jobsId}",
5788	//   "httpMethod": "GET",
5789	//   "id": "jobs.projects.jobs.get",
5790	//   "parameterOrder": [
5791	//     "name"
5792	//   ],
5793	//   "parameters": {
5794	//     "name": {
5795	//       "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\".",
5796	//       "location": "path",
5797	//       "pattern": "^projects/[^/]+/jobs/[^/]+$",
5798	//       "required": true,
5799	//       "type": "string"
5800	//     }
5801	//   },
5802	//   "path": "v3p1beta1/{+name}",
5803	//   "response": {
5804	//     "$ref": "Job"
5805	//   },
5806	//   "scopes": [
5807	//     "https://www.googleapis.com/auth/cloud-platform",
5808	//     "https://www.googleapis.com/auth/jobs"
5809	//   ]
5810	// }
5811
5812}
5813
5814// method id "jobs.projects.jobs.list":
5815
5816type ProjectsJobsListCall struct {
5817	s            *Service
5818	parent       string
5819	urlParams_   gensupport.URLParams
5820	ifNoneMatch_ string
5821	ctx_         context.Context
5822	header_      http.Header
5823}
5824
5825// List: Lists jobs by filter.
5826//
5827// - parent: The resource name of the project under which the job is
5828//   created. The format is "projects/{project_id}", for example,
5829//   "projects/api-test-project".
5830func (r *ProjectsJobsService) List(parent string) *ProjectsJobsListCall {
5831	c := &ProjectsJobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5832	c.parent = parent
5833	return c
5834}
5835
5836// Filter sets the optional parameter "filter": Required. The filter
5837// string specifies the jobs to be enumerated. Supported operator: =,
5838// AND The fields eligible for filtering are: * `companyName` (Required)
5839// * `requisitionId` (Optional) Sample Query: * companyName =
5840// "projects/api-test-project/companies/123" * companyName =
5841// "projects/api-test-project/companies/123" AND requisitionId = "req-1"
5842func (c *ProjectsJobsListCall) Filter(filter string) *ProjectsJobsListCall {
5843	c.urlParams_.Set("filter", filter)
5844	return c
5845}
5846
5847// JobView sets the optional parameter "jobView": The desired job
5848// attributes returned for jobs in the search response. Defaults to
5849// JobView.JOB_VIEW_FULL if no value is specified.
5850//
5851// Possible values:
5852//   "JOB_VIEW_UNSPECIFIED" - Default value.
5853//   "JOB_VIEW_ID_ONLY" - A ID only view of job, with following
5854// attributes: Job.name, Job.requisition_id, Job.language_code.
5855//   "JOB_VIEW_MINIMAL" - A minimal view of the job, with the following
5856// attributes: Job.name, Job.requisition_id, Job.title,
5857// Job.company_name, Job.DerivedInfo.locations, Job.language_code.
5858//   "JOB_VIEW_SMALL" - A small view of the job, with the following
5859// attributes in the search results: Job.name, Job.requisition_id,
5860// Job.title, Job.company_name, Job.DerivedInfo.locations,
5861// Job.visibility, Job.language_code, Job.description.
5862//   "JOB_VIEW_FULL" - All available attributes are included in the
5863// search results.
5864func (c *ProjectsJobsListCall) JobView(jobView string) *ProjectsJobsListCall {
5865	c.urlParams_.Set("jobView", jobView)
5866	return c
5867}
5868
5869// PageSize sets the optional parameter "pageSize": The maximum number
5870// of jobs to be returned per page of results. If job_view is set to
5871// JobView.JOB_VIEW_ID_ONLY, the maximum allowed page size is 1000.
5872// Otherwise, the maximum allowed page size is 100. Default is 100 if
5873// empty or a number < 1 is specified.
5874func (c *ProjectsJobsListCall) PageSize(pageSize int64) *ProjectsJobsListCall {
5875	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5876	return c
5877}
5878
5879// PageToken sets the optional parameter "pageToken": The starting point
5880// of a query result.
5881func (c *ProjectsJobsListCall) PageToken(pageToken string) *ProjectsJobsListCall {
5882	c.urlParams_.Set("pageToken", pageToken)
5883	return c
5884}
5885
5886// Fields allows partial responses to be retrieved. See
5887// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5888// for more information.
5889func (c *ProjectsJobsListCall) Fields(s ...googleapi.Field) *ProjectsJobsListCall {
5890	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5891	return c
5892}
5893
5894// IfNoneMatch sets the optional parameter which makes the operation
5895// fail if the object's ETag matches the given value. This is useful for
5896// getting updates only after the object has changed since the last
5897// request. Use googleapi.IsNotModified to check whether the response
5898// error from Do is the result of In-None-Match.
5899func (c *ProjectsJobsListCall) IfNoneMatch(entityTag string) *ProjectsJobsListCall {
5900	c.ifNoneMatch_ = entityTag
5901	return c
5902}
5903
5904// Context sets the context to be used in this call's Do method. Any
5905// pending HTTP request will be aborted if the provided context is
5906// canceled.
5907func (c *ProjectsJobsListCall) Context(ctx context.Context) *ProjectsJobsListCall {
5908	c.ctx_ = ctx
5909	return c
5910}
5911
5912// Header returns an http.Header that can be modified by the caller to
5913// add HTTP headers to the request.
5914func (c *ProjectsJobsListCall) Header() http.Header {
5915	if c.header_ == nil {
5916		c.header_ = make(http.Header)
5917	}
5918	return c.header_
5919}
5920
5921func (c *ProjectsJobsListCall) doRequest(alt string) (*http.Response, error) {
5922	reqHeaders := make(http.Header)
5923	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5924	for k, v := range c.header_ {
5925		reqHeaders[k] = v
5926	}
5927	reqHeaders.Set("User-Agent", c.s.userAgent())
5928	if c.ifNoneMatch_ != "" {
5929		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5930	}
5931	var body io.Reader = nil
5932	c.urlParams_.Set("alt", alt)
5933	c.urlParams_.Set("prettyPrint", "false")
5934	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/jobs")
5935	urls += "?" + c.urlParams_.Encode()
5936	req, err := http.NewRequest("GET", urls, body)
5937	if err != nil {
5938		return nil, err
5939	}
5940	req.Header = reqHeaders
5941	googleapi.Expand(req.URL, map[string]string{
5942		"parent": c.parent,
5943	})
5944	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5945}
5946
5947// Do executes the "jobs.projects.jobs.list" call.
5948// Exactly one of *ListJobsResponse or error will be non-nil. Any
5949// non-2xx status code is an error. Response headers are in either
5950// *ListJobsResponse.ServerResponse.Header or (if a response was
5951// returned at all) in error.(*googleapi.Error).Header. Use
5952// googleapi.IsNotModified to check whether the returned error was
5953// because http.StatusNotModified was returned.
5954func (c *ProjectsJobsListCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
5955	gensupport.SetOptions(c.urlParams_, opts...)
5956	res, err := c.doRequest("json")
5957	if res != nil && res.StatusCode == http.StatusNotModified {
5958		if res.Body != nil {
5959			res.Body.Close()
5960		}
5961		return nil, &googleapi.Error{
5962			Code:   res.StatusCode,
5963			Header: res.Header,
5964		}
5965	}
5966	if err != nil {
5967		return nil, err
5968	}
5969	defer googleapi.CloseBody(res)
5970	if err := googleapi.CheckResponse(res); err != nil {
5971		return nil, err
5972	}
5973	ret := &ListJobsResponse{
5974		ServerResponse: googleapi.ServerResponse{
5975			Header:         res.Header,
5976			HTTPStatusCode: res.StatusCode,
5977		},
5978	}
5979	target := &ret
5980	if err := gensupport.DecodeResponse(target, res); err != nil {
5981		return nil, err
5982	}
5983	return ret, nil
5984	// {
5985	//   "description": "Lists jobs by filter.",
5986	//   "flatPath": "v3p1beta1/projects/{projectsId}/jobs",
5987	//   "httpMethod": "GET",
5988	//   "id": "jobs.projects.jobs.list",
5989	//   "parameterOrder": [
5990	//     "parent"
5991	//   ],
5992	//   "parameters": {
5993	//     "filter": {
5994	//       "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\"",
5995	//       "location": "query",
5996	//       "type": "string"
5997	//     },
5998	//     "jobView": {
5999	//       "description": "Optional. The desired job attributes returned for jobs in the search response. Defaults to JobView.JOB_VIEW_FULL if no value is specified.",
6000	//       "enum": [
6001	//         "JOB_VIEW_UNSPECIFIED",
6002	//         "JOB_VIEW_ID_ONLY",
6003	//         "JOB_VIEW_MINIMAL",
6004	//         "JOB_VIEW_SMALL",
6005	//         "JOB_VIEW_FULL"
6006	//       ],
6007	//       "enumDescriptions": [
6008	//         "Default value.",
6009	//         "A ID only view of job, with following attributes: Job.name, Job.requisition_id, Job.language_code.",
6010	//         "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.",
6011	//         "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.",
6012	//         "All available attributes are included in the search results."
6013	//       ],
6014	//       "location": "query",
6015	//       "type": "string"
6016	//     },
6017	//     "pageSize": {
6018	//       "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.",
6019	//       "format": "int32",
6020	//       "location": "query",
6021	//       "type": "integer"
6022	//     },
6023	//     "pageToken": {
6024	//       "description": "Optional. The starting point of a query result.",
6025	//       "location": "query",
6026	//       "type": "string"
6027	//     },
6028	//     "parent": {
6029	//       "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\".",
6030	//       "location": "path",
6031	//       "pattern": "^projects/[^/]+$",
6032	//       "required": true,
6033	//       "type": "string"
6034	//     }
6035	//   },
6036	//   "path": "v3p1beta1/{+parent}/jobs",
6037	//   "response": {
6038	//     "$ref": "ListJobsResponse"
6039	//   },
6040	//   "scopes": [
6041	//     "https://www.googleapis.com/auth/cloud-platform",
6042	//     "https://www.googleapis.com/auth/jobs"
6043	//   ]
6044	// }
6045
6046}
6047
6048// Pages invokes f for each page of results.
6049// A non-nil error returned from f will halt the iteration.
6050// The provided context supersedes any context provided to the Context method.
6051func (c *ProjectsJobsListCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
6052	c.ctx_ = ctx
6053	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
6054	for {
6055		x, err := c.Do()
6056		if err != nil {
6057			return err
6058		}
6059		if err := f(x); err != nil {
6060			return err
6061		}
6062		if x.NextPageToken == "" {
6063			return nil
6064		}
6065		c.PageToken(x.NextPageToken)
6066	}
6067}
6068
6069// method id "jobs.projects.jobs.patch":
6070
6071type ProjectsJobsPatchCall struct {
6072	s                *Service
6073	name             string
6074	updatejobrequest *UpdateJobRequest
6075	urlParams_       gensupport.URLParams
6076	ctx_             context.Context
6077	header_          http.Header
6078}
6079
6080// Patch: Updates specified job. Typically, updated contents become
6081// visible in search results within 10 seconds, but it may take up to 5
6082// minutes.
6083//
6084// - name: Required during job update. The resource name for the job.
6085//   This is generated by the service when a job is created. The format
6086//   is "projects/{project_id}/jobs/{job_id}", for example,
6087//   "projects/api-test-project/jobs/1234". Use of this field in job
6088//   queries and API calls is preferred over the use of requisition_id
6089//   since this value is unique.
6090func (r *ProjectsJobsService) Patch(name string, updatejobrequest *UpdateJobRequest) *ProjectsJobsPatchCall {
6091	c := &ProjectsJobsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6092	c.name = name
6093	c.updatejobrequest = updatejobrequest
6094	return c
6095}
6096
6097// Fields allows partial responses to be retrieved. See
6098// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6099// for more information.
6100func (c *ProjectsJobsPatchCall) Fields(s ...googleapi.Field) *ProjectsJobsPatchCall {
6101	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6102	return c
6103}
6104
6105// Context sets the context to be used in this call's Do method. Any
6106// pending HTTP request will be aborted if the provided context is
6107// canceled.
6108func (c *ProjectsJobsPatchCall) Context(ctx context.Context) *ProjectsJobsPatchCall {
6109	c.ctx_ = ctx
6110	return c
6111}
6112
6113// Header returns an http.Header that can be modified by the caller to
6114// add HTTP headers to the request.
6115func (c *ProjectsJobsPatchCall) Header() http.Header {
6116	if c.header_ == nil {
6117		c.header_ = make(http.Header)
6118	}
6119	return c.header_
6120}
6121
6122func (c *ProjectsJobsPatchCall) doRequest(alt string) (*http.Response, error) {
6123	reqHeaders := make(http.Header)
6124	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6125	for k, v := range c.header_ {
6126		reqHeaders[k] = v
6127	}
6128	reqHeaders.Set("User-Agent", c.s.userAgent())
6129	var body io.Reader = nil
6130	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatejobrequest)
6131	if err != nil {
6132		return nil, err
6133	}
6134	reqHeaders.Set("Content-Type", "application/json")
6135	c.urlParams_.Set("alt", alt)
6136	c.urlParams_.Set("prettyPrint", "false")
6137	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
6138	urls += "?" + c.urlParams_.Encode()
6139	req, err := http.NewRequest("PATCH", urls, body)
6140	if err != nil {
6141		return nil, err
6142	}
6143	req.Header = reqHeaders
6144	googleapi.Expand(req.URL, map[string]string{
6145		"name": c.name,
6146	})
6147	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6148}
6149
6150// Do executes the "jobs.projects.jobs.patch" call.
6151// Exactly one of *Job or error will be non-nil. Any non-2xx status code
6152// is an error. Response headers are in either
6153// *Job.ServerResponse.Header or (if a response was returned at all) in
6154// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
6155// whether the returned error was because http.StatusNotModified was
6156// returned.
6157func (c *ProjectsJobsPatchCall) Do(opts ...googleapi.CallOption) (*Job, error) {
6158	gensupport.SetOptions(c.urlParams_, opts...)
6159	res, err := c.doRequest("json")
6160	if res != nil && res.StatusCode == http.StatusNotModified {
6161		if res.Body != nil {
6162			res.Body.Close()
6163		}
6164		return nil, &googleapi.Error{
6165			Code:   res.StatusCode,
6166			Header: res.Header,
6167		}
6168	}
6169	if err != nil {
6170		return nil, err
6171	}
6172	defer googleapi.CloseBody(res)
6173	if err := googleapi.CheckResponse(res); err != nil {
6174		return nil, err
6175	}
6176	ret := &Job{
6177		ServerResponse: googleapi.ServerResponse{
6178			Header:         res.Header,
6179			HTTPStatusCode: res.StatusCode,
6180		},
6181	}
6182	target := &ret
6183	if err := gensupport.DecodeResponse(target, res); err != nil {
6184		return nil, err
6185	}
6186	return ret, nil
6187	// {
6188	//   "description": "Updates specified job. Typically, updated contents become visible in search results within 10 seconds, but it may take up to 5 minutes.",
6189	//   "flatPath": "v3p1beta1/projects/{projectsId}/jobs/{jobsId}",
6190	//   "httpMethod": "PATCH",
6191	//   "id": "jobs.projects.jobs.patch",
6192	//   "parameterOrder": [
6193	//     "name"
6194	//   ],
6195	//   "parameters": {
6196	//     "name": {
6197	//       "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.",
6198	//       "location": "path",
6199	//       "pattern": "^projects/[^/]+/jobs/[^/]+$",
6200	//       "required": true,
6201	//       "type": "string"
6202	//     }
6203	//   },
6204	//   "path": "v3p1beta1/{+name}",
6205	//   "request": {
6206	//     "$ref": "UpdateJobRequest"
6207	//   },
6208	//   "response": {
6209	//     "$ref": "Job"
6210	//   },
6211	//   "scopes": [
6212	//     "https://www.googleapis.com/auth/cloud-platform",
6213	//     "https://www.googleapis.com/auth/jobs"
6214	//   ]
6215	// }
6216
6217}
6218
6219// method id "jobs.projects.jobs.search":
6220
6221type ProjectsJobsSearchCall struct {
6222	s                 *Service
6223	parent            string
6224	searchjobsrequest *SearchJobsRequest
6225	urlParams_        gensupport.URLParams
6226	ctx_              context.Context
6227	header_           http.Header
6228}
6229
6230// Search: Searches for jobs using the provided SearchJobsRequest. This
6231// call constrains the visibility of jobs present in the database, and
6232// only returns jobs that the caller has permission to search against.
6233//
6234// - parent: The resource name of the project to search within. The
6235//   format is "projects/{project_id}", for example,
6236//   "projects/api-test-project".
6237func (r *ProjectsJobsService) Search(parent string, searchjobsrequest *SearchJobsRequest) *ProjectsJobsSearchCall {
6238	c := &ProjectsJobsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6239	c.parent = parent
6240	c.searchjobsrequest = searchjobsrequest
6241	return c
6242}
6243
6244// Fields allows partial responses to be retrieved. See
6245// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6246// for more information.
6247func (c *ProjectsJobsSearchCall) Fields(s ...googleapi.Field) *ProjectsJobsSearchCall {
6248	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6249	return c
6250}
6251
6252// Context sets the context to be used in this call's Do method. Any
6253// pending HTTP request will be aborted if the provided context is
6254// canceled.
6255func (c *ProjectsJobsSearchCall) Context(ctx context.Context) *ProjectsJobsSearchCall {
6256	c.ctx_ = ctx
6257	return c
6258}
6259
6260// Header returns an http.Header that can be modified by the caller to
6261// add HTTP headers to the request.
6262func (c *ProjectsJobsSearchCall) Header() http.Header {
6263	if c.header_ == nil {
6264		c.header_ = make(http.Header)
6265	}
6266	return c.header_
6267}
6268
6269func (c *ProjectsJobsSearchCall) doRequest(alt string) (*http.Response, error) {
6270	reqHeaders := make(http.Header)
6271	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6272	for k, v := range c.header_ {
6273		reqHeaders[k] = v
6274	}
6275	reqHeaders.Set("User-Agent", c.s.userAgent())
6276	var body io.Reader = nil
6277	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchjobsrequest)
6278	if err != nil {
6279		return nil, err
6280	}
6281	reqHeaders.Set("Content-Type", "application/json")
6282	c.urlParams_.Set("alt", alt)
6283	c.urlParams_.Set("prettyPrint", "false")
6284	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/jobs:search")
6285	urls += "?" + c.urlParams_.Encode()
6286	req, err := http.NewRequest("POST", urls, body)
6287	if err != nil {
6288		return nil, err
6289	}
6290	req.Header = reqHeaders
6291	googleapi.Expand(req.URL, map[string]string{
6292		"parent": c.parent,
6293	})
6294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6295}
6296
6297// Do executes the "jobs.projects.jobs.search" call.
6298// Exactly one of *SearchJobsResponse or error will be non-nil. Any
6299// non-2xx status code is an error. Response headers are in either
6300// *SearchJobsResponse.ServerResponse.Header or (if a response was
6301// returned at all) in error.(*googleapi.Error).Header. Use
6302// googleapi.IsNotModified to check whether the returned error was
6303// because http.StatusNotModified was returned.
6304func (c *ProjectsJobsSearchCall) Do(opts ...googleapi.CallOption) (*SearchJobsResponse, error) {
6305	gensupport.SetOptions(c.urlParams_, opts...)
6306	res, err := c.doRequest("json")
6307	if res != nil && res.StatusCode == http.StatusNotModified {
6308		if res.Body != nil {
6309			res.Body.Close()
6310		}
6311		return nil, &googleapi.Error{
6312			Code:   res.StatusCode,
6313			Header: res.Header,
6314		}
6315	}
6316	if err != nil {
6317		return nil, err
6318	}
6319	defer googleapi.CloseBody(res)
6320	if err := googleapi.CheckResponse(res); err != nil {
6321		return nil, err
6322	}
6323	ret := &SearchJobsResponse{
6324		ServerResponse: googleapi.ServerResponse{
6325			Header:         res.Header,
6326			HTTPStatusCode: res.StatusCode,
6327		},
6328	}
6329	target := &ret
6330	if err := gensupport.DecodeResponse(target, res); err != nil {
6331		return nil, err
6332	}
6333	return ret, nil
6334	// {
6335	//   "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.",
6336	//   "flatPath": "v3p1beta1/projects/{projectsId}/jobs:search",
6337	//   "httpMethod": "POST",
6338	//   "id": "jobs.projects.jobs.search",
6339	//   "parameterOrder": [
6340	//     "parent"
6341	//   ],
6342	//   "parameters": {
6343	//     "parent": {
6344	//       "description": "Required. The resource name of the project to search within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".",
6345	//       "location": "path",
6346	//       "pattern": "^projects/[^/]+$",
6347	//       "required": true,
6348	//       "type": "string"
6349	//     }
6350	//   },
6351	//   "path": "v3p1beta1/{+parent}/jobs:search",
6352	//   "request": {
6353	//     "$ref": "SearchJobsRequest"
6354	//   },
6355	//   "response": {
6356	//     "$ref": "SearchJobsResponse"
6357	//   },
6358	//   "scopes": [
6359	//     "https://www.googleapis.com/auth/cloud-platform",
6360	//     "https://www.googleapis.com/auth/jobs"
6361	//   ]
6362	// }
6363
6364}
6365
6366// Pages invokes f for each page of results.
6367// A non-nil error returned from f will halt the iteration.
6368// The provided context supersedes any context provided to the Context method.
6369func (c *ProjectsJobsSearchCall) Pages(ctx context.Context, f func(*SearchJobsResponse) error) error {
6370	c.ctx_ = ctx
6371	defer func(pt string) { c.searchjobsrequest.PageToken = pt }(c.searchjobsrequest.PageToken) // reset paging to original point
6372	for {
6373		x, err := c.Do()
6374		if err != nil {
6375			return err
6376		}
6377		if err := f(x); err != nil {
6378			return err
6379		}
6380		if x.NextPageToken == "" {
6381			return nil
6382		}
6383		c.searchjobsrequest.PageToken = x.NextPageToken
6384	}
6385}
6386
6387// method id "jobs.projects.jobs.searchForAlert":
6388
6389type ProjectsJobsSearchForAlertCall struct {
6390	s                 *Service
6391	parent            string
6392	searchjobsrequest *SearchJobsRequest
6393	urlParams_        gensupport.URLParams
6394	ctx_              context.Context
6395	header_           http.Header
6396}
6397
6398// SearchForAlert: Searches for jobs using the provided
6399// SearchJobsRequest. This API call is intended for the use case of
6400// targeting passive job seekers (for example, job seekers who have
6401// signed up to receive email alerts about potential job opportunities),
6402// and has different algorithmic adjustments that are targeted to
6403// passive job seekers. This call constrains the visibility of jobs
6404// present in the database, and only returns jobs the caller has
6405// permission to search against.
6406//
6407// - parent: The resource name of the project to search within. The
6408//   format is "projects/{project_id}", for example,
6409//   "projects/api-test-project".
6410func (r *ProjectsJobsService) SearchForAlert(parent string, searchjobsrequest *SearchJobsRequest) *ProjectsJobsSearchForAlertCall {
6411	c := &ProjectsJobsSearchForAlertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6412	c.parent = parent
6413	c.searchjobsrequest = searchjobsrequest
6414	return c
6415}
6416
6417// Fields allows partial responses to be retrieved. See
6418// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6419// for more information.
6420func (c *ProjectsJobsSearchForAlertCall) Fields(s ...googleapi.Field) *ProjectsJobsSearchForAlertCall {
6421	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6422	return c
6423}
6424
6425// Context sets the context to be used in this call's Do method. Any
6426// pending HTTP request will be aborted if the provided context is
6427// canceled.
6428func (c *ProjectsJobsSearchForAlertCall) Context(ctx context.Context) *ProjectsJobsSearchForAlertCall {
6429	c.ctx_ = ctx
6430	return c
6431}
6432
6433// Header returns an http.Header that can be modified by the caller to
6434// add HTTP headers to the request.
6435func (c *ProjectsJobsSearchForAlertCall) Header() http.Header {
6436	if c.header_ == nil {
6437		c.header_ = make(http.Header)
6438	}
6439	return c.header_
6440}
6441
6442func (c *ProjectsJobsSearchForAlertCall) doRequest(alt string) (*http.Response, error) {
6443	reqHeaders := make(http.Header)
6444	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6445	for k, v := range c.header_ {
6446		reqHeaders[k] = v
6447	}
6448	reqHeaders.Set("User-Agent", c.s.userAgent())
6449	var body io.Reader = nil
6450	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchjobsrequest)
6451	if err != nil {
6452		return nil, err
6453	}
6454	reqHeaders.Set("Content-Type", "application/json")
6455	c.urlParams_.Set("alt", alt)
6456	c.urlParams_.Set("prettyPrint", "false")
6457	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/jobs:searchForAlert")
6458	urls += "?" + c.urlParams_.Encode()
6459	req, err := http.NewRequest("POST", urls, body)
6460	if err != nil {
6461		return nil, err
6462	}
6463	req.Header = reqHeaders
6464	googleapi.Expand(req.URL, map[string]string{
6465		"parent": c.parent,
6466	})
6467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6468}
6469
6470// Do executes the "jobs.projects.jobs.searchForAlert" call.
6471// Exactly one of *SearchJobsResponse or error will be non-nil. Any
6472// non-2xx status code is an error. Response headers are in either
6473// *SearchJobsResponse.ServerResponse.Header or (if a response was
6474// returned at all) in error.(*googleapi.Error).Header. Use
6475// googleapi.IsNotModified to check whether the returned error was
6476// because http.StatusNotModified was returned.
6477func (c *ProjectsJobsSearchForAlertCall) Do(opts ...googleapi.CallOption) (*SearchJobsResponse, error) {
6478	gensupport.SetOptions(c.urlParams_, opts...)
6479	res, err := c.doRequest("json")
6480	if res != nil && res.StatusCode == http.StatusNotModified {
6481		if res.Body != nil {
6482			res.Body.Close()
6483		}
6484		return nil, &googleapi.Error{
6485			Code:   res.StatusCode,
6486			Header: res.Header,
6487		}
6488	}
6489	if err != nil {
6490		return nil, err
6491	}
6492	defer googleapi.CloseBody(res)
6493	if err := googleapi.CheckResponse(res); err != nil {
6494		return nil, err
6495	}
6496	ret := &SearchJobsResponse{
6497		ServerResponse: googleapi.ServerResponse{
6498			Header:         res.Header,
6499			HTTPStatusCode: res.StatusCode,
6500		},
6501	}
6502	target := &ret
6503	if err := gensupport.DecodeResponse(target, res); err != nil {
6504		return nil, err
6505	}
6506	return ret, nil
6507	// {
6508	//   "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.",
6509	//   "flatPath": "v3p1beta1/projects/{projectsId}/jobs:searchForAlert",
6510	//   "httpMethod": "POST",
6511	//   "id": "jobs.projects.jobs.searchForAlert",
6512	//   "parameterOrder": [
6513	//     "parent"
6514	//   ],
6515	//   "parameters": {
6516	//     "parent": {
6517	//       "description": "Required. The resource name of the project to search within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".",
6518	//       "location": "path",
6519	//       "pattern": "^projects/[^/]+$",
6520	//       "required": true,
6521	//       "type": "string"
6522	//     }
6523	//   },
6524	//   "path": "v3p1beta1/{+parent}/jobs:searchForAlert",
6525	//   "request": {
6526	//     "$ref": "SearchJobsRequest"
6527	//   },
6528	//   "response": {
6529	//     "$ref": "SearchJobsResponse"
6530	//   },
6531	//   "scopes": [
6532	//     "https://www.googleapis.com/auth/cloud-platform",
6533	//     "https://www.googleapis.com/auth/jobs"
6534	//   ]
6535	// }
6536
6537}
6538
6539// Pages invokes f for each page of results.
6540// A non-nil error returned from f will halt the iteration.
6541// The provided context supersedes any context provided to the Context method.
6542func (c *ProjectsJobsSearchForAlertCall) Pages(ctx context.Context, f func(*SearchJobsResponse) error) error {
6543	c.ctx_ = ctx
6544	defer func(pt string) { c.searchjobsrequest.PageToken = pt }(c.searchjobsrequest.PageToken) // reset paging to original point
6545	for {
6546		x, err := c.Do()
6547		if err != nil {
6548			return err
6549		}
6550		if err := f(x); err != nil {
6551			return err
6552		}
6553		if x.NextPageToken == "" {
6554			return nil
6555		}
6556		c.searchjobsrequest.PageToken = x.NextPageToken
6557	}
6558}
6559
6560// method id "jobs.projects.operations.get":
6561
6562type ProjectsOperationsGetCall struct {
6563	s            *Service
6564	name         string
6565	urlParams_   gensupport.URLParams
6566	ifNoneMatch_ string
6567	ctx_         context.Context
6568	header_      http.Header
6569}
6570
6571// Get: Gets the latest state of a long-running operation. Clients can
6572// use this method to poll the operation result at intervals as
6573// recommended by the API service.
6574//
6575// - name: The name of the operation resource.
6576func (r *ProjectsOperationsService) Get(name string) *ProjectsOperationsGetCall {
6577	c := &ProjectsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6578	c.name = name
6579	return c
6580}
6581
6582// Fields allows partial responses to be retrieved. See
6583// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6584// for more information.
6585func (c *ProjectsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsOperationsGetCall {
6586	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6587	return c
6588}
6589
6590// IfNoneMatch sets the optional parameter which makes the operation
6591// fail if the object's ETag matches the given value. This is useful for
6592// getting updates only after the object has changed since the last
6593// request. Use googleapi.IsNotModified to check whether the response
6594// error from Do is the result of In-None-Match.
6595func (c *ProjectsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsOperationsGetCall {
6596	c.ifNoneMatch_ = entityTag
6597	return c
6598}
6599
6600// Context sets the context to be used in this call's Do method. Any
6601// pending HTTP request will be aborted if the provided context is
6602// canceled.
6603func (c *ProjectsOperationsGetCall) Context(ctx context.Context) *ProjectsOperationsGetCall {
6604	c.ctx_ = ctx
6605	return c
6606}
6607
6608// Header returns an http.Header that can be modified by the caller to
6609// add HTTP headers to the request.
6610func (c *ProjectsOperationsGetCall) Header() http.Header {
6611	if c.header_ == nil {
6612		c.header_ = make(http.Header)
6613	}
6614	return c.header_
6615}
6616
6617func (c *ProjectsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
6618	reqHeaders := make(http.Header)
6619	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6620	for k, v := range c.header_ {
6621		reqHeaders[k] = v
6622	}
6623	reqHeaders.Set("User-Agent", c.s.userAgent())
6624	if c.ifNoneMatch_ != "" {
6625		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6626	}
6627	var body io.Reader = nil
6628	c.urlParams_.Set("alt", alt)
6629	c.urlParams_.Set("prettyPrint", "false")
6630	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
6631	urls += "?" + c.urlParams_.Encode()
6632	req, err := http.NewRequest("GET", urls, body)
6633	if err != nil {
6634		return nil, err
6635	}
6636	req.Header = reqHeaders
6637	googleapi.Expand(req.URL, map[string]string{
6638		"name": c.name,
6639	})
6640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6641}
6642
6643// Do executes the "jobs.projects.operations.get" call.
6644// Exactly one of *Operation or error will be non-nil. Any non-2xx
6645// status code is an error. Response headers are in either
6646// *Operation.ServerResponse.Header or (if a response was returned at
6647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6648// to check whether the returned error was because
6649// http.StatusNotModified was returned.
6650func (c *ProjectsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6651	gensupport.SetOptions(c.urlParams_, opts...)
6652	res, err := c.doRequest("json")
6653	if res != nil && res.StatusCode == http.StatusNotModified {
6654		if res.Body != nil {
6655			res.Body.Close()
6656		}
6657		return nil, &googleapi.Error{
6658			Code:   res.StatusCode,
6659			Header: res.Header,
6660		}
6661	}
6662	if err != nil {
6663		return nil, err
6664	}
6665	defer googleapi.CloseBody(res)
6666	if err := googleapi.CheckResponse(res); err != nil {
6667		return nil, err
6668	}
6669	ret := &Operation{
6670		ServerResponse: googleapi.ServerResponse{
6671			Header:         res.Header,
6672			HTTPStatusCode: res.StatusCode,
6673		},
6674	}
6675	target := &ret
6676	if err := gensupport.DecodeResponse(target, res); err != nil {
6677		return nil, err
6678	}
6679	return ret, nil
6680	// {
6681	//   "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.",
6682	//   "flatPath": "v3p1beta1/projects/{projectsId}/operations/{operationsId}",
6683	//   "httpMethod": "GET",
6684	//   "id": "jobs.projects.operations.get",
6685	//   "parameterOrder": [
6686	//     "name"
6687	//   ],
6688	//   "parameters": {
6689	//     "name": {
6690	//       "description": "The name of the operation resource.",
6691	//       "location": "path",
6692	//       "pattern": "^projects/[^/]+/operations/[^/]+$",
6693	//       "required": true,
6694	//       "type": "string"
6695	//     }
6696	//   },
6697	//   "path": "v3p1beta1/{+name}",
6698	//   "response": {
6699	//     "$ref": "Operation"
6700	//   },
6701	//   "scopes": [
6702	//     "https://www.googleapis.com/auth/cloud-platform",
6703	//     "https://www.googleapis.com/auth/jobs"
6704	//   ]
6705	// }
6706
6707}
6708