...

Source file src/google.golang.org/api/jobs/v2/jobs-gen.go

Documentation: google.golang.org/api/jobs/v2

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

View as plain text