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