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