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