...

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

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

     1  // Copyright 2024 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  // # Library status
    12  //
    13  // These client libraries are officially supported by Google. However, this
    14  // library is considered complete and is in maintenance mode. This means
    15  // that we will address critical bugs and security issues but will not add
    16  // any new features.
    17  //
    18  // When possible, we recommend using our newer
    19  // [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
    20  // that are still actively being worked and iterated on.
    21  //
    22  // # Creating a client
    23  //
    24  // Usage example:
    25  //
    26  //	import "google.golang.org/api/jobs/v3p1beta1"
    27  //	...
    28  //	ctx := context.Background()
    29  //	jobsService, err := jobs.NewService(ctx)
    30  //
    31  // In this example, Google Application Default Credentials are used for
    32  // authentication. For information on how to create and obtain Application
    33  // Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
    34  //
    35  // # Other authentication options
    36  //
    37  // By default, all available scopes (see "Constants") are used to authenticate.
    38  // To restrict scopes, use [google.golang.org/api/option.WithScopes]:
    39  //
    40  //	jobsService, err := jobs.NewService(ctx, option.WithScopes(jobs.JobsScope))
    41  //
    42  // To use an API key for authentication (note: some APIs do not support API
    43  // keys), use [google.golang.org/api/option.WithAPIKey]:
    44  //
    45  //	jobsService, err := jobs.NewService(ctx, option.WithAPIKey("AIza..."))
    46  //
    47  // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
    48  // flow, use [google.golang.org/api/option.WithTokenSource]:
    49  //
    50  //	config := &oauth2.Config{...}
    51  //	// ...
    52  //	token, err := config.Exchange(ctx, ...)
    53  //	jobsService, err := jobs.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
    54  //
    55  // See [google.golang.org/api/option.ClientOption] for details on options.
    56  package jobs // import "google.golang.org/api/jobs/v3p1beta1"
    57  
    58  import (
    59  	"bytes"
    60  	"context"
    61  	"encoding/json"
    62  	"errors"
    63  	"fmt"
    64  	"io"
    65  	"net/http"
    66  	"net/url"
    67  	"strconv"
    68  	"strings"
    69  
    70  	googleapi "google.golang.org/api/googleapi"
    71  	internal "google.golang.org/api/internal"
    72  	gensupport "google.golang.org/api/internal/gensupport"
    73  	option "google.golang.org/api/option"
    74  	internaloption "google.golang.org/api/option/internaloption"
    75  	htransport "google.golang.org/api/transport/http"
    76  )
    77  
    78  // Always reference these packages, just in case the auto-generated code
    79  // below doesn't.
    80  var _ = bytes.NewBuffer
    81  var _ = strconv.Itoa
    82  var _ = fmt.Sprintf
    83  var _ = json.NewDecoder
    84  var _ = io.Copy
    85  var _ = url.Parse
    86  var _ = gensupport.MarshalJSON
    87  var _ = googleapi.Version
    88  var _ = errors.New
    89  var _ = strings.Replace
    90  var _ = context.Canceled
    91  var _ = internaloption.WithDefaultEndpoint
    92  var _ = internal.Version
    93  
    94  const apiId = "jobs:v3p1beta1"
    95  const apiName = "jobs"
    96  const apiVersion = "v3p1beta1"
    97  const basePath = "https://jobs.googleapis.com/"
    98  const basePathTemplate = "https://jobs.UNIVERSE_DOMAIN/"
    99  const mtlsBasePath = "https://jobs.mtls.googleapis.com/"
   100  
   101  // OAuth2 scopes used by this API.
   102  const (
   103  	// See, edit, configure, and delete your Google Cloud data and see the email
   104  	// address for your Google Account.
   105  	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
   106  
   107  	// Manage job postings
   108  	JobsScope = "https://www.googleapis.com/auth/jobs"
   109  )
   110  
   111  // NewService creates a new Service.
   112  func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
   113  	scopesOption := internaloption.WithDefaultScopes(
   114  		"https://www.googleapis.com/auth/cloud-platform",
   115  		"https://www.googleapis.com/auth/jobs",
   116  	)
   117  	// NOTE: prepend, so we don't override user-specified scopes.
   118  	opts = append([]option.ClientOption{scopesOption}, opts...)
   119  	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
   120  	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
   121  	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
   122  	opts = append(opts, internaloption.EnableNewAuthLibrary())
   123  	client, endpoint, err := htransport.NewClient(ctx, opts...)
   124  	if err != nil {
   125  		return nil, err
   126  	}
   127  	s, err := New(client)
   128  	if err != nil {
   129  		return nil, err
   130  	}
   131  	if endpoint != "" {
   132  		s.BasePath = endpoint
   133  	}
   134  	return s, nil
   135  }
   136  
   137  // New creates a new Service. It uses the provided http.Client for requests.
   138  //
   139  // Deprecated: please use NewService instead.
   140  // To provide a custom HTTP client, use option.WithHTTPClient.
   141  // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
   142  func New(client *http.Client) (*Service, error) {
   143  	if client == nil {
   144  		return nil, errors.New("client is nil")
   145  	}
   146  	s := &Service{client: client, BasePath: basePath}
   147  	s.Projects = NewProjectsService(s)
   148  	return s, nil
   149  }
   150  
   151  type Service struct {
   152  	client    *http.Client
   153  	BasePath  string // API endpoint base URL
   154  	UserAgent string // optional additional User-Agent fragment
   155  
   156  	Projects *ProjectsService
   157  }
   158  
   159  func (s *Service) userAgent() string {
   160  	if s.UserAgent == "" {
   161  		return googleapi.UserAgent
   162  	}
   163  	return googleapi.UserAgent + " " + s.UserAgent
   164  }
   165  
   166  func NewProjectsService(s *Service) *ProjectsService {
   167  	rs := &ProjectsService{s: s}
   168  	rs.ClientEvents = NewProjectsClientEventsService(s)
   169  	rs.Companies = NewProjectsCompaniesService(s)
   170  	rs.Jobs = NewProjectsJobsService(s)
   171  	rs.Operations = NewProjectsOperationsService(s)
   172  	return rs
   173  }
   174  
   175  type ProjectsService struct {
   176  	s *Service
   177  
   178  	ClientEvents *ProjectsClientEventsService
   179  
   180  	Companies *ProjectsCompaniesService
   181  
   182  	Jobs *ProjectsJobsService
   183  
   184  	Operations *ProjectsOperationsService
   185  }
   186  
   187  func NewProjectsClientEventsService(s *Service) *ProjectsClientEventsService {
   188  	rs := &ProjectsClientEventsService{s: s}
   189  	return rs
   190  }
   191  
   192  type ProjectsClientEventsService struct {
   193  	s *Service
   194  }
   195  
   196  func NewProjectsCompaniesService(s *Service) *ProjectsCompaniesService {
   197  	rs := &ProjectsCompaniesService{s: s}
   198  	return rs
   199  }
   200  
   201  type ProjectsCompaniesService struct {
   202  	s *Service
   203  }
   204  
   205  func NewProjectsJobsService(s *Service) *ProjectsJobsService {
   206  	rs := &ProjectsJobsService{s: s}
   207  	return rs
   208  }
   209  
   210  type ProjectsJobsService struct {
   211  	s *Service
   212  }
   213  
   214  func NewProjectsOperationsService(s *Service) *ProjectsOperationsService {
   215  	rs := &ProjectsOperationsService{s: s}
   216  	return rs
   217  }
   218  
   219  type ProjectsOperationsService struct {
   220  	s *Service
   221  }
   222  
   223  // ApplicationInfo: Application related details of a job posting.
   224  type ApplicationInfo struct {
   225  	// Emails: Optional but at least one of uris, emails or instruction must be
   226  	// specified. Use this field to specify email address(es) to which resumes or
   227  	// applications can be sent. The maximum number of allowed characters for each
   228  	// entry is 255.
   229  	Emails []string `json:"emails,omitempty"`
   230  	// Instruction: Optional but at least one of uris, emails or instruction must
   231  	// be specified. Use this field to provide instructions, such as "Mail your
   232  	// application to ...", that a candidate can follow to apply for the job. This
   233  	// field accepts and sanitizes HTML input, and also accepts bold, italic,
   234  	// ordered list, and unordered list markup tags. The maximum number of allowed
   235  	// characters is 3,000.
   236  	Instruction string `json:"instruction,omitempty"`
   237  	// Uris: Optional but at least one of uris, emails or instruction must be
   238  	// specified. Use this URI field to direct an applicant to a website, for
   239  	// example to link to an online application form. The maximum number of allowed
   240  	// characters for each entry is 2,000.
   241  	Uris []string `json:"uris,omitempty"`
   242  	// ForceSendFields is a list of field names (e.g. "Emails") to unconditionally
   243  	// include in API requests. By default, fields with empty or default values are
   244  	// omitted from API requests. See
   245  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   246  	// details.
   247  	ForceSendFields []string `json:"-"`
   248  	// NullFields is a list of field names (e.g. "Emails") to include in API
   249  	// requests with the JSON null value. By default, fields with empty values are
   250  	// omitted from API requests. See
   251  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   252  	NullFields []string `json:"-"`
   253  }
   254  
   255  func (s *ApplicationInfo) MarshalJSON() ([]byte, error) {
   256  	type NoMethod ApplicationInfo
   257  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   258  }
   259  
   260  // BatchDeleteJobsRequest: Input only. Batch delete jobs request.
   261  type BatchDeleteJobsRequest struct {
   262  	// Filter: Required. The filter string specifies the jobs to be deleted.
   263  	// Supported operator: =, AND The fields eligible for filtering are: *
   264  	// `companyName` (Required) * `requisitionId` (Required) Sample Query:
   265  	// companyName = "projects/api-test-project/companies/123" AND requisitionId =
   266  	// "req-1"
   267  	Filter string `json:"filter,omitempty"`
   268  	// ForceSendFields is a list of field names (e.g. "Filter") to unconditionally
   269  	// include in API requests. By default, fields with empty or default values are
   270  	// omitted from API requests. See
   271  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   272  	// details.
   273  	ForceSendFields []string `json:"-"`
   274  	// NullFields is a list of field names (e.g. "Filter") to include in API
   275  	// requests with the JSON null value. By default, fields with empty values are
   276  	// omitted from API requests. See
   277  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   278  	NullFields []string `json:"-"`
   279  }
   280  
   281  func (s *BatchDeleteJobsRequest) MarshalJSON() ([]byte, error) {
   282  	type NoMethod BatchDeleteJobsRequest
   283  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   284  }
   285  
   286  // BucketRange: Represents starting and ending value of a range in double.
   287  type BucketRange struct {
   288  	// From: Starting value of the bucket range.
   289  	From float64 `json:"from,omitempty"`
   290  	// To: Ending value of the bucket range.
   291  	To float64 `json:"to,omitempty"`
   292  	// ForceSendFields is a list of field names (e.g. "From") to unconditionally
   293  	// include in API requests. By default, fields with empty or default values are
   294  	// omitted from API requests. See
   295  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   296  	// details.
   297  	ForceSendFields []string `json:"-"`
   298  	// NullFields is a list of field names (e.g. "From") to include in API requests
   299  	// with the JSON null value. By default, fields with empty values are omitted
   300  	// from API requests. See
   301  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   302  	NullFields []string `json:"-"`
   303  }
   304  
   305  func (s *BucketRange) MarshalJSON() ([]byte, error) {
   306  	type NoMethod BucketRange
   307  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   308  }
   309  
   310  func (s *BucketRange) UnmarshalJSON(data []byte) error {
   311  	type NoMethod BucketRange
   312  	var s1 struct {
   313  		From gensupport.JSONFloat64 `json:"from"`
   314  		To   gensupport.JSONFloat64 `json:"to"`
   315  		*NoMethod
   316  	}
   317  	s1.NoMethod = (*NoMethod)(s)
   318  	if err := json.Unmarshal(data, &s1); err != nil {
   319  		return err
   320  	}
   321  	s.From = float64(s1.From)
   322  	s.To = float64(s1.To)
   323  	return nil
   324  }
   325  
   326  // BucketizedCount: Represents count of jobs within one bucket.
   327  type BucketizedCount struct {
   328  	// Count: Number of jobs whose numeric field value fall into `range`.
   329  	Count int64 `json:"count,omitempty"`
   330  	// Range: Bucket range on which histogram was performed for the numeric field,
   331  	// that is, the count represents number of jobs in this range.
   332  	Range *BucketRange `json:"range,omitempty"`
   333  	// ForceSendFields is a list of field names (e.g. "Count") to unconditionally
   334  	// include in API requests. By default, fields with empty or default values are
   335  	// omitted from API requests. See
   336  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   337  	// details.
   338  	ForceSendFields []string `json:"-"`
   339  	// NullFields is a list of field names (e.g. "Count") to include in API
   340  	// requests with the JSON null value. By default, fields with empty values are
   341  	// omitted from API requests. See
   342  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   343  	NullFields []string `json:"-"`
   344  }
   345  
   346  func (s *BucketizedCount) MarshalJSON() ([]byte, error) {
   347  	type NoMethod BucketizedCount
   348  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   349  }
   350  
   351  // ClientEvent: An event issued when an end user interacts with the application
   352  // that implements Cloud Talent Solution. Providing this information improves
   353  // the quality of search and recommendation for the API clients, enabling the
   354  // service to perform optimally. The number of events sent must be consistent
   355  // with other calls, such as job searches, issued to the service by the client.
   356  type ClientEvent struct {
   357  	// CreateTime: Required. The timestamp of the event.
   358  	CreateTime string `json:"createTime,omitempty"`
   359  	// EventId: Required. A unique identifier, generated by the client application.
   360  	// This `event_id` is used to establish the relationship between different
   361  	// events (see parent_event_id).
   362  	EventId string `json:"eventId,omitempty"`
   363  	// ExtraInfo: Optional. Extra information about this event. Used for storing
   364  	// information with no matching field in event payload, for example, user
   365  	// application specific context or details. At most 20 keys are supported. The
   366  	// maximum total size of all keys and values is 2 KB.
   367  	ExtraInfo map[string]string `json:"extraInfo,omitempty"`
   368  	// JobEvent: A event issued when a job seeker interacts with the application
   369  	// that implements Cloud Talent Solution.
   370  	JobEvent *JobEvent `json:"jobEvent,omitempty"`
   371  	// ParentEventId: Optional. The event_id of an event that resulted in the
   372  	// current event. For example, a Job view event usually follows a parent
   373  	// impression event: A job seeker first does a search where a list of jobs
   374  	// appears (impression). The job seeker then selects a result and views the
   375  	// description of a particular job (Job view).
   376  	ParentEventId string `json:"parentEventId,omitempty"`
   377  	// RequestId: Required. A unique ID generated in the API responses. It can be
   378  	// found in ResponseMetadata.request_id.
   379  	RequestId string `json:"requestId,omitempty"`
   380  
   381  	// ServerResponse contains the HTTP response code and headers from the server.
   382  	googleapi.ServerResponse `json:"-"`
   383  	// ForceSendFields is a list of field names (e.g. "CreateTime") to
   384  	// unconditionally include in API requests. By default, fields with empty or
   385  	// default values are omitted from API requests. See
   386  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   387  	// details.
   388  	ForceSendFields []string `json:"-"`
   389  	// NullFields is a list of field names (e.g. "CreateTime") to include in API
   390  	// requests with the JSON null value. By default, fields with empty values are
   391  	// omitted from API requests. See
   392  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   393  	NullFields []string `json:"-"`
   394  }
   395  
   396  func (s *ClientEvent) MarshalJSON() ([]byte, error) {
   397  	type NoMethod ClientEvent
   398  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   399  }
   400  
   401  // CommuteFilter: Input only. Parameters needed for commute search.
   402  type CommuteFilter struct {
   403  	// AllowImpreciseAddresses: Optional. If true, jobs without "precise" addresses
   404  	// (street level addresses or GPS coordinates) might also be returned. For city
   405  	// and coarser level addresses, text matching is used. If this field is set to
   406  	// false or is not specified, only jobs that include precise addresses are
   407  	// returned by Commute Search. Note: If `allow_imprecise_addresses` is set to
   408  	// true, Commute Search is not able to calculate accurate commute times to jobs
   409  	// with city level and coarser address information. Jobs with imprecise
   410  	// addresses will return a `travel_duration` time of 0 regardless of distance
   411  	// from the job seeker.
   412  	AllowImpreciseAddresses bool `json:"allowImpreciseAddresses,omitempty"`
   413  	// CommuteMethod: Required. The method of transportation for which to calculate
   414  	// the commute time.
   415  	//
   416  	// Possible values:
   417  	//   "COMMUTE_METHOD_UNSPECIFIED" - Commute method is not specified.
   418  	//   "DRIVING" - Commute time is calculated based on driving time.
   419  	//   "TRANSIT" - Commute time is calculated based on public transit including
   420  	// bus, metro, subway, etc.
   421  	//   "WALKING" - Commute time is calculated based on walking time.
   422  	//   "CYCLING" - Commute time is calculated based on biking time.
   423  	CommuteMethod string `json:"commuteMethod,omitempty"`
   424  	// DepartureTime: Optional. The departure time used to calculate traffic
   425  	// impact, represented as google.type.TimeOfDay in local time zone. Currently
   426  	// traffic model is restricted to hour level resolution.
   427  	DepartureTime *TimeOfDay `json:"departureTime,omitempty"`
   428  	// RoadTraffic: Optional. Specifies the traffic density to use when calculating
   429  	// commute time.
   430  	//
   431  	// Possible values:
   432  	//   "ROAD_TRAFFIC_UNSPECIFIED" - Road traffic situation is not specified.
   433  	//   "TRAFFIC_FREE" - Optimal commute time without considering any traffic
   434  	// impact.
   435  	//   "BUSY_HOUR" - Commute time calculation takes in account the peak traffic
   436  	// impact.
   437  	RoadTraffic string `json:"roadTraffic,omitempty"`
   438  	// StartCoordinates: Required. The latitude and longitude of the location from
   439  	// which to calculate the commute time.
   440  	StartCoordinates *LatLng `json:"startCoordinates,omitempty"`
   441  	// TravelDuration: Required. The maximum travel time in seconds. The maximum
   442  	// allowed value is `3600s` (one hour). Format is `123s`.
   443  	TravelDuration string `json:"travelDuration,omitempty"`
   444  	// ForceSendFields is a list of field names (e.g. "AllowImpreciseAddresses") to
   445  	// unconditionally include in API requests. By default, fields with empty or
   446  	// default values are omitted from API requests. See
   447  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   448  	// details.
   449  	ForceSendFields []string `json:"-"`
   450  	// NullFields is a list of field names (e.g. "AllowImpreciseAddresses") to
   451  	// include in API requests with the JSON null value. By default, fields with
   452  	// empty values are omitted from API requests. See
   453  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   454  	NullFields []string `json:"-"`
   455  }
   456  
   457  func (s *CommuteFilter) MarshalJSON() ([]byte, error) {
   458  	type NoMethod CommuteFilter
   459  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   460  }
   461  
   462  // CommuteInfo: Output only. Commute details related to this job.
   463  type CommuteInfo struct {
   464  	// JobLocation: Location used as the destination in the commute calculation.
   465  	JobLocation *Location `json:"jobLocation,omitempty"`
   466  	// TravelDuration: The number of seconds required to travel to the job location
   467  	// from the query location. A duration of 0 seconds indicates that the job is
   468  	// not reachable within the requested duration, but was returned as part of an
   469  	// expanded query.
   470  	TravelDuration string `json:"travelDuration,omitempty"`
   471  	// ForceSendFields is a list of field names (e.g. "JobLocation") to
   472  	// unconditionally include in API requests. By default, fields with empty or
   473  	// default values are omitted from API requests. See
   474  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   475  	// details.
   476  	ForceSendFields []string `json:"-"`
   477  	// NullFields is a list of field names (e.g. "JobLocation") to include in API
   478  	// requests with the JSON null value. By default, fields with empty values are
   479  	// omitted from API requests. See
   480  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   481  	NullFields []string `json:"-"`
   482  }
   483  
   484  func (s *CommuteInfo) MarshalJSON() ([]byte, error) {
   485  	type NoMethod CommuteInfo
   486  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   487  }
   488  
   489  // Company: A Company resource represents a company in the service. A company
   490  // is the entity that owns job postings, that is, the hiring entity responsible
   491  // for employing applicants for the job position.
   492  type Company struct {
   493  	// CareerSiteUri: Optional. The URI to employer's career site or careers page
   494  	// on the employer's web site, for example, "https://careers.google.com".
   495  	CareerSiteUri string `json:"careerSiteUri,omitempty"`
   496  	// DerivedInfo: Output only. Derived details about the company.
   497  	DerivedInfo *CompanyDerivedInfo `json:"derivedInfo,omitempty"`
   498  	// DisplayName: Required. The display name of the company, for example, "Google
   499  	// LLC".
   500  	DisplayName string `json:"displayName,omitempty"`
   501  	// EeoText: Optional. Equal Employment Opportunity legal disclaimer text to be
   502  	// associated with all jobs, and typically to be displayed in all roles. The
   503  	// maximum number of allowed characters is 500.
   504  	EeoText string `json:"eeoText,omitempty"`
   505  	// ExternalId: Required. Client side company identifier, used to uniquely
   506  	// identify the company. The maximum number of allowed characters is 255.
   507  	ExternalId string `json:"externalId,omitempty"`
   508  	// HeadquartersAddress: Optional. The street address of the company's main
   509  	// headquarters, which may be different from the job location. The service
   510  	// attempts to geolocate the provided address, and populates a more specific
   511  	// location wherever possible in DerivedInfo.headquarters_location.
   512  	HeadquartersAddress string `json:"headquartersAddress,omitempty"`
   513  	// HiringAgency: Optional. Set to true if it is the hiring agency that post
   514  	// jobs for other employers. Defaults to false if not provided.
   515  	HiringAgency bool `json:"hiringAgency,omitempty"`
   516  	// ImageUri: Optional. A URI that hosts the employer's company logo.
   517  	ImageUri string `json:"imageUri,omitempty"`
   518  	// KeywordSearchableJobCustomAttributes: Optional. This field is deprecated.
   519  	// Please set the searchability of the custom attribute in the
   520  	// Job.custom_attributes going forward. A list of keys of filterable
   521  	// Job.custom_attributes, whose corresponding `string_values` are used in
   522  	// keyword search. Jobs with `string_values` under these specified field keys
   523  	// are returned if any of the values matches the search keyword. Custom field
   524  	// values with parenthesis, brackets and special symbols won't be properly
   525  	// searchable, and those keyword queries need to be surrounded by quotes.
   526  	KeywordSearchableJobCustomAttributes []string `json:"keywordSearchableJobCustomAttributes,omitempty"`
   527  	// Name: Required during company update. The resource name for a company. This
   528  	// is generated by the service when a company is created. The format is
   529  	// "projects/{project_id}/companies/{company_id}", for example,
   530  	// "projects/api-test-project/companies/foo".
   531  	Name string `json:"name,omitempty"`
   532  	// Size: Optional. The employer's company size.
   533  	//
   534  	// Possible values:
   535  	//   "COMPANY_SIZE_UNSPECIFIED" - Default value if the size is not specified.
   536  	//   "MINI" - The company has less than 50 employees.
   537  	//   "SMALL" - The company has between 50 and 99 employees.
   538  	//   "SMEDIUM" - The company has between 100 and 499 employees.
   539  	//   "MEDIUM" - The company has between 500 and 999 employees.
   540  	//   "BIG" - The company has between 1,000 and 4,999 employees.
   541  	//   "BIGGER" - The company has between 5,000 and 9,999 employees.
   542  	//   "GIANT" - The company has 10,000 or more employees.
   543  	Size string `json:"size,omitempty"`
   544  	// Suspended: Output only. Indicates whether a company is flagged to be
   545  	// suspended from public availability by the service when job content appears
   546  	// suspicious, abusive, or spammy.
   547  	Suspended bool `json:"suspended,omitempty"`
   548  	// WebsiteUri: Optional. The URI representing the company's primary web site or
   549  	// home page, for example, "https://www.google.com". The maximum number of
   550  	// allowed characters is 255.
   551  	WebsiteUri string `json:"websiteUri,omitempty"`
   552  
   553  	// ServerResponse contains the HTTP response code and headers from the server.
   554  	googleapi.ServerResponse `json:"-"`
   555  	// ForceSendFields is a list of field names (e.g. "CareerSiteUri") to
   556  	// unconditionally include in API requests. By default, fields with empty or
   557  	// default values are omitted from API requests. See
   558  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   559  	// details.
   560  	ForceSendFields []string `json:"-"`
   561  	// NullFields is a list of field names (e.g. "CareerSiteUri") to include in API
   562  	// requests with the JSON null value. By default, fields with empty values are
   563  	// omitted from API requests. See
   564  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   565  	NullFields []string `json:"-"`
   566  }
   567  
   568  func (s *Company) MarshalJSON() ([]byte, error) {
   569  	type NoMethod Company
   570  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   571  }
   572  
   573  // CompanyDerivedInfo: Derived details about the company.
   574  type CompanyDerivedInfo struct {
   575  	// HeadquartersLocation: A structured headquarters location of the company,
   576  	// resolved from Company.hq_location if provided.
   577  	HeadquartersLocation *Location `json:"headquartersLocation,omitempty"`
   578  	// ForceSendFields is a list of field names (e.g. "HeadquartersLocation") to
   579  	// unconditionally include in API requests. By default, fields with empty or
   580  	// default values are omitted from API requests. See
   581  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   582  	// details.
   583  	ForceSendFields []string `json:"-"`
   584  	// NullFields is a list of field names (e.g. "HeadquartersLocation") to include
   585  	// in API requests with the JSON null value. By default, fields with empty
   586  	// values are omitted from API requests. See
   587  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   588  	NullFields []string `json:"-"`
   589  }
   590  
   591  func (s *CompanyDerivedInfo) MarshalJSON() ([]byte, error) {
   592  	type NoMethod CompanyDerivedInfo
   593  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   594  }
   595  
   596  // CompensationEntry: A compensation entry that represents one component of
   597  // compensation, such as base pay, bonus, or other compensation type.
   598  // Annualization: One compensation entry can be annualized if - it contains
   599  // valid amount or range. - and its expected_units_per_year is set or can be
   600  // derived. Its annualized range is determined as (amount or range) times
   601  // expected_units_per_year.
   602  type CompensationEntry struct {
   603  	// Amount: Optional. Compensation amount.
   604  	Amount *Money `json:"amount,omitempty"`
   605  	// Description: Optional. Compensation description. For example, could indicate
   606  	// equity terms or provide additional context to an estimated bonus.
   607  	Description string `json:"description,omitempty"`
   608  	// ExpectedUnitsPerYear: Optional. Expected number of units paid each year. If
   609  	// not specified, when Job.employment_types is FULLTIME, a default value is
   610  	// inferred based on unit. Default values: - HOURLY: 2080 - DAILY: 260 -
   611  	// WEEKLY: 52 - MONTHLY: 12 - ANNUAL: 1
   612  	ExpectedUnitsPerYear float64 `json:"expectedUnitsPerYear,omitempty"`
   613  	// Range: Optional. Compensation range.
   614  	Range *CompensationRange `json:"range,omitempty"`
   615  	// Type: Optional. Compensation type. Default is
   616  	// CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED.
   617  	//
   618  	// Possible values:
   619  	//   "COMPENSATION_TYPE_UNSPECIFIED" - Default value.
   620  	//   "BASE" - Base compensation: Refers to the fixed amount of money paid to an
   621  	// employee by an employer in return for work performed. Base compensation does
   622  	// not include benefits, bonuses or any other potential compensation from an
   623  	// employer.
   624  	//   "BONUS" - Bonus.
   625  	//   "SIGNING_BONUS" - Signing bonus.
   626  	//   "EQUITY" - Equity.
   627  	//   "PROFIT_SHARING" - Profit sharing.
   628  	//   "COMMISSIONS" - Commission.
   629  	//   "TIPS" - Tips.
   630  	//   "OTHER_COMPENSATION_TYPE" - Other compensation type.
   631  	Type string `json:"type,omitempty"`
   632  	// Unit: Optional. Frequency of the specified amount. Default is
   633  	// CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.
   634  	//
   635  	// Possible values:
   636  	//   "COMPENSATION_UNIT_UNSPECIFIED" - Default value.
   637  	//   "HOURLY" - Hourly.
   638  	//   "DAILY" - Daily.
   639  	//   "WEEKLY" - Weekly
   640  	//   "MONTHLY" - Monthly.
   641  	//   "YEARLY" - Yearly.
   642  	//   "ONE_TIME" - One time.
   643  	//   "OTHER_COMPENSATION_UNIT" - Other compensation units.
   644  	Unit string `json:"unit,omitempty"`
   645  	// ForceSendFields is a list of field names (e.g. "Amount") to unconditionally
   646  	// include in API requests. By default, fields with empty or default values are
   647  	// omitted from API requests. See
   648  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   649  	// details.
   650  	ForceSendFields []string `json:"-"`
   651  	// NullFields is a list of field names (e.g. "Amount") to include in API
   652  	// requests with the JSON null value. By default, fields with empty values are
   653  	// omitted from API requests. See
   654  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   655  	NullFields []string `json:"-"`
   656  }
   657  
   658  func (s *CompensationEntry) MarshalJSON() ([]byte, error) {
   659  	type NoMethod CompensationEntry
   660  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   661  }
   662  
   663  func (s *CompensationEntry) UnmarshalJSON(data []byte) error {
   664  	type NoMethod CompensationEntry
   665  	var s1 struct {
   666  		ExpectedUnitsPerYear gensupport.JSONFloat64 `json:"expectedUnitsPerYear"`
   667  		*NoMethod
   668  	}
   669  	s1.NoMethod = (*NoMethod)(s)
   670  	if err := json.Unmarshal(data, &s1); err != nil {
   671  		return err
   672  	}
   673  	s.ExpectedUnitsPerYear = float64(s1.ExpectedUnitsPerYear)
   674  	return nil
   675  }
   676  
   677  // CompensationFilter: Input only. Filter on job compensation type and amount.
   678  type CompensationFilter struct {
   679  	// IncludeJobsWithUnspecifiedCompensationRange: Optional. If set to true, jobs
   680  	// with unspecified compensation range fields are included.
   681  	IncludeJobsWithUnspecifiedCompensationRange bool `json:"includeJobsWithUnspecifiedCompensationRange,omitempty"`
   682  	// Range: Optional. Compensation range.
   683  	Range *CompensationRange `json:"range,omitempty"`
   684  	// Type: Required. Type of filter.
   685  	//
   686  	// Possible values:
   687  	//   "FILTER_TYPE_UNSPECIFIED" - Filter type unspecified. Position holder,
   688  	// INVALID, should never be used.
   689  	//   "UNIT_ONLY" - Filter by `base compensation entry's` unit. A job is a match
   690  	// if and only if the job contains a base CompensationEntry and the base
   691  	// CompensationEntry's unit matches provided units. Populate one or more units.
   692  	// See CompensationInfo.CompensationEntry for definition of base compensation
   693  	// entry.
   694  	//   "UNIT_AND_AMOUNT" - Filter by `base compensation entry's` unit and amount
   695  	// / range. A job is a match if and only if the job contains a base
   696  	// CompensationEntry, and the base entry's unit matches provided
   697  	// compensation_units and amount or range overlaps with provided
   698  	// compensation_range. See CompensationInfo.CompensationEntry for definition of
   699  	// base compensation entry. Set exactly one units and populate range.
   700  	//   "ANNUALIZED_BASE_AMOUNT" - Filter by annualized base compensation amount
   701  	// and `base compensation entry's` unit. Populate range and zero or more units.
   702  	//   "ANNUALIZED_TOTAL_AMOUNT" - Filter by annualized total compensation amount
   703  	// and `base compensation entry's` unit . Populate range and zero or more
   704  	// units.
   705  	Type string `json:"type,omitempty"`
   706  	// Units: Required. Specify desired `base compensation entry's`
   707  	// CompensationInfo.CompensationUnit.
   708  	//
   709  	// Possible values:
   710  	//   "COMPENSATION_UNIT_UNSPECIFIED" - Default value.
   711  	//   "HOURLY" - Hourly.
   712  	//   "DAILY" - Daily.
   713  	//   "WEEKLY" - Weekly
   714  	//   "MONTHLY" - Monthly.
   715  	//   "YEARLY" - Yearly.
   716  	//   "ONE_TIME" - One time.
   717  	//   "OTHER_COMPENSATION_UNIT" - Other compensation units.
   718  	Units []string `json:"units,omitempty"`
   719  	// ForceSendFields is a list of field names (e.g.
   720  	// "IncludeJobsWithUnspecifiedCompensationRange") to unconditionally include in
   721  	// API requests. By default, fields with empty or default values are omitted
   722  	// from API requests. See
   723  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   724  	// details.
   725  	ForceSendFields []string `json:"-"`
   726  	// NullFields is a list of field names (e.g.
   727  	// "IncludeJobsWithUnspecifiedCompensationRange") to include in API requests
   728  	// with the JSON null value. By default, fields with empty values are omitted
   729  	// from API requests. See
   730  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   731  	NullFields []string `json:"-"`
   732  }
   733  
   734  func (s *CompensationFilter) MarshalJSON() ([]byte, error) {
   735  	type NoMethod CompensationFilter
   736  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   737  }
   738  
   739  // CompensationHistogramRequest: Input only. Compensation based histogram
   740  // request.
   741  type CompensationHistogramRequest struct {
   742  	// BucketingOption: Required. Numeric histogram options, like buckets, whether
   743  	// include min or max value.
   744  	BucketingOption *NumericBucketingOption `json:"bucketingOption,omitempty"`
   745  	// Type: Required. Type of the request, representing which field the
   746  	// histogramming should be performed over. A single request can only specify
   747  	// one histogram of each `CompensationHistogramRequestType`.
   748  	//
   749  	// Possible values:
   750  	//   "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED" - Default value.
   751  	// Invalid.
   752  	//   "BASE" - Histogram by job's base compensation. See CompensationEntry for
   753  	// definition of base compensation.
   754  	//   "ANNUALIZED_BASE" - Histogram by job's annualized base compensation. See
   755  	// CompensationEntry for definition of annualized base compensation.
   756  	//   "ANNUALIZED_TOTAL" - Histogram by job's annualized total compensation. See
   757  	// CompensationEntry for definition of annualized total compensation.
   758  	Type string `json:"type,omitempty"`
   759  	// ForceSendFields is a list of field names (e.g. "BucketingOption") to
   760  	// unconditionally include in API requests. By default, fields with empty or
   761  	// default values are omitted from API requests. See
   762  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   763  	// details.
   764  	ForceSendFields []string `json:"-"`
   765  	// NullFields is a list of field names (e.g. "BucketingOption") to include in
   766  	// API requests with the JSON null value. By default, fields with empty values
   767  	// are omitted from API requests. See
   768  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   769  	NullFields []string `json:"-"`
   770  }
   771  
   772  func (s *CompensationHistogramRequest) MarshalJSON() ([]byte, error) {
   773  	type NoMethod CompensationHistogramRequest
   774  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   775  }
   776  
   777  // CompensationHistogramResult: Output only. Compensation based histogram
   778  // result.
   779  type CompensationHistogramResult struct {
   780  	// Result: Histogram result.
   781  	Result *NumericBucketingResult `json:"result,omitempty"`
   782  	// Type: Type of the request, corresponding to
   783  	// CompensationHistogramRequest.type.
   784  	//
   785  	// Possible values:
   786  	//   "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED" - Default value.
   787  	// Invalid.
   788  	//   "BASE" - Histogram by job's base compensation. See CompensationEntry for
   789  	// definition of base compensation.
   790  	//   "ANNUALIZED_BASE" - Histogram by job's annualized base compensation. See
   791  	// CompensationEntry for definition of annualized base compensation.
   792  	//   "ANNUALIZED_TOTAL" - Histogram by job's annualized total compensation. See
   793  	// CompensationEntry for definition of annualized total compensation.
   794  	Type string `json:"type,omitempty"`
   795  	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
   796  	// include in API requests. By default, fields with empty or default values are
   797  	// omitted from API requests. See
   798  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   799  	// details.
   800  	ForceSendFields []string `json:"-"`
   801  	// NullFields is a list of field names (e.g. "Result") to include in API
   802  	// requests with the JSON null value. By default, fields with empty values are
   803  	// omitted from API requests. See
   804  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   805  	NullFields []string `json:"-"`
   806  }
   807  
   808  func (s *CompensationHistogramResult) MarshalJSON() ([]byte, error) {
   809  	type NoMethod CompensationHistogramResult
   810  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   811  }
   812  
   813  // CompensationInfo: Job compensation details.
   814  type CompensationInfo struct {
   815  	// AnnualizedBaseCompensationRange: Output only. Annualized base compensation
   816  	// range. Computed as base compensation entry's CompensationEntry.compensation
   817  	// times CompensationEntry.expected_units_per_year. See CompensationEntry for
   818  	// explanation on compensation annualization.
   819  	AnnualizedBaseCompensationRange *CompensationRange `json:"annualizedBaseCompensationRange,omitempty"`
   820  	// AnnualizedTotalCompensationRange: Output only. Annualized total compensation
   821  	// range. Computed as all compensation entries' CompensationEntry.compensation
   822  	// times CompensationEntry.expected_units_per_year. See CompensationEntry for
   823  	// explanation on compensation annualization.
   824  	AnnualizedTotalCompensationRange *CompensationRange `json:"annualizedTotalCompensationRange,omitempty"`
   825  	// Entries: Optional. Job compensation information. At most one entry can be of
   826  	// type CompensationInfo.CompensationType.BASE, which is referred as ** base
   827  	// compensation entry ** for the job.
   828  	Entries []*CompensationEntry `json:"entries,omitempty"`
   829  	// ForceSendFields is a list of field names (e.g.
   830  	// "AnnualizedBaseCompensationRange") to unconditionally include in API
   831  	// requests. By default, fields with empty or default values are omitted from
   832  	// API requests. See
   833  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   834  	// details.
   835  	ForceSendFields []string `json:"-"`
   836  	// NullFields is a list of field names (e.g. "AnnualizedBaseCompensationRange")
   837  	// to include in API requests with the JSON null value. By default, fields with
   838  	// empty values are omitted from API requests. See
   839  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   840  	NullFields []string `json:"-"`
   841  }
   842  
   843  func (s *CompensationInfo) MarshalJSON() ([]byte, error) {
   844  	type NoMethod CompensationInfo
   845  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   846  }
   847  
   848  // CompensationRange: Compensation range.
   849  type CompensationRange struct {
   850  	// MaxCompensation: Optional. The maximum amount of compensation. If left
   851  	// empty, the value is set to a maximal compensation value and the currency
   852  	// code is set to match the currency code of min_compensation.
   853  	MaxCompensation *Money `json:"maxCompensation,omitempty"`
   854  	// MinCompensation: Optional. The minimum amount of compensation. If left
   855  	// empty, the value is set to zero and the currency code is set to match the
   856  	// currency code of max_compensation.
   857  	MinCompensation *Money `json:"minCompensation,omitempty"`
   858  	// ForceSendFields is a list of field names (e.g. "MaxCompensation") to
   859  	// unconditionally include in API requests. By default, fields with empty or
   860  	// default values are omitted from API requests. See
   861  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   862  	// details.
   863  	ForceSendFields []string `json:"-"`
   864  	// NullFields is a list of field names (e.g. "MaxCompensation") to include in
   865  	// API requests with the JSON null value. By default, fields with empty values
   866  	// are omitted from API requests. See
   867  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   868  	NullFields []string `json:"-"`
   869  }
   870  
   871  func (s *CompensationRange) MarshalJSON() ([]byte, error) {
   872  	type NoMethod CompensationRange
   873  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   874  }
   875  
   876  // CompleteQueryResponse: Output only. Response of auto-complete query.
   877  type CompleteQueryResponse struct {
   878  	// CompletionResults: Results of the matching job/company candidates.
   879  	CompletionResults []*CompletionResult `json:"completionResults,omitempty"`
   880  	// Metadata: Additional information for the API invocation, such as the request
   881  	// tracking id.
   882  	Metadata *ResponseMetadata `json:"metadata,omitempty"`
   883  
   884  	// ServerResponse contains the HTTP response code and headers from the server.
   885  	googleapi.ServerResponse `json:"-"`
   886  	// ForceSendFields is a list of field names (e.g. "CompletionResults") to
   887  	// unconditionally include in API requests. By default, fields with empty or
   888  	// default values are omitted from API requests. See
   889  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   890  	// details.
   891  	ForceSendFields []string `json:"-"`
   892  	// NullFields is a list of field names (e.g. "CompletionResults") to include in
   893  	// API requests with the JSON null value. By default, fields with empty values
   894  	// are omitted from API requests. See
   895  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   896  	NullFields []string `json:"-"`
   897  }
   898  
   899  func (s *CompleteQueryResponse) MarshalJSON() ([]byte, error) {
   900  	type NoMethod CompleteQueryResponse
   901  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   902  }
   903  
   904  // CompletionResult: Output only. Resource that represents completion results.
   905  type CompletionResult struct {
   906  	// ImageUri: The URI of the company image for CompletionType.COMPANY_NAME.
   907  	ImageUri string `json:"imageUri,omitempty"`
   908  	// Suggestion: The suggestion for the query.
   909  	Suggestion string `json:"suggestion,omitempty"`
   910  	// Type: The completion topic.
   911  	//
   912  	// Possible values:
   913  	//   "COMPLETION_TYPE_UNSPECIFIED" - Default value.
   914  	//   "JOB_TITLE" - Only suggest job titles.
   915  	//   "COMPANY_NAME" - Only suggest company names.
   916  	//   "COMBINED" - Suggest both job titles and company names.
   917  	Type string `json:"type,omitempty"`
   918  	// ForceSendFields is a list of field names (e.g. "ImageUri") to
   919  	// unconditionally include in API requests. By default, fields with empty or
   920  	// default values are omitted from API requests. See
   921  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   922  	// details.
   923  	ForceSendFields []string `json:"-"`
   924  	// NullFields is a list of field names (e.g. "ImageUri") to include in API
   925  	// requests with the JSON null value. By default, fields with empty values are
   926  	// omitted from API requests. See
   927  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   928  	NullFields []string `json:"-"`
   929  }
   930  
   931  func (s *CompletionResult) MarshalJSON() ([]byte, error) {
   932  	type NoMethod CompletionResult
   933  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   934  }
   935  
   936  // CreateClientEventRequest: The report event request.
   937  type CreateClientEventRequest struct {
   938  	// ClientEvent: Required. Events issued when end user interacts with customer's
   939  	// application that uses Cloud Talent Solution.
   940  	ClientEvent *ClientEvent `json:"clientEvent,omitempty"`
   941  	// ForceSendFields is a list of field names (e.g. "ClientEvent") to
   942  	// unconditionally include in API requests. By default, fields with empty or
   943  	// default values are omitted from API requests. See
   944  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   945  	// details.
   946  	ForceSendFields []string `json:"-"`
   947  	// NullFields is a list of field names (e.g. "ClientEvent") to include in API
   948  	// requests with the JSON null value. By default, fields with empty values are
   949  	// omitted from API requests. See
   950  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   951  	NullFields []string `json:"-"`
   952  }
   953  
   954  func (s *CreateClientEventRequest) MarshalJSON() ([]byte, error) {
   955  	type NoMethod CreateClientEventRequest
   956  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   957  }
   958  
   959  // CreateCompanyRequest: Input only. The Request of the CreateCompany method.
   960  type CreateCompanyRequest struct {
   961  	// Company: Required. The company to be created.
   962  	Company *Company `json:"company,omitempty"`
   963  	// ForceSendFields is a list of field names (e.g. "Company") to unconditionally
   964  	// include in API requests. By default, fields with empty or default values are
   965  	// omitted from API requests. See
   966  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   967  	// details.
   968  	ForceSendFields []string `json:"-"`
   969  	// NullFields is a list of field names (e.g. "Company") to include in API
   970  	// requests with the JSON null value. By default, fields with empty values are
   971  	// omitted from API requests. See
   972  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   973  	NullFields []string `json:"-"`
   974  }
   975  
   976  func (s *CreateCompanyRequest) MarshalJSON() ([]byte, error) {
   977  	type NoMethod CreateCompanyRequest
   978  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   979  }
   980  
   981  // CreateJobRequest: Input only. Create job request.
   982  type CreateJobRequest struct {
   983  	// Job: Required. The Job to be created.
   984  	Job *Job `json:"job,omitempty"`
   985  	// ForceSendFields is a list of field names (e.g. "Job") to unconditionally
   986  	// include in API requests. By default, fields with empty or default values are
   987  	// omitted from API requests. See
   988  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   989  	// details.
   990  	ForceSendFields []string `json:"-"`
   991  	// NullFields is a list of field names (e.g. "Job") to include in API requests
   992  	// with the JSON null value. By default, fields with empty values are omitted
   993  	// from API requests. See
   994  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   995  	NullFields []string `json:"-"`
   996  }
   997  
   998  func (s *CreateJobRequest) MarshalJSON() ([]byte, error) {
   999  	type NoMethod CreateJobRequest
  1000  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1001  }
  1002  
  1003  // CustomAttribute: Custom attribute values that are either filterable or
  1004  // non-filterable.
  1005  type CustomAttribute struct {
  1006  	// Filterable: Optional. If the `filterable` flag is true, the custom field
  1007  	// values may be used for custom attribute filters
  1008  	// JobQuery.custom_attribute_filter. If false, these values may not be used for
  1009  	// custom attribute filters. Default is false.
  1010  	Filterable bool `json:"filterable,omitempty"`
  1011  	// LongValues: Optional but exactly one of string_values or long_values must be
  1012  	// specified. This field is used to perform number range search. (`EQ`, `GT`,
  1013  	// `GE`, `LE`, `LT`) over filterable `long_value`. Currently at most 1
  1014  	// long_values is supported.
  1015  	LongValues googleapi.Int64s `json:"longValues,omitempty"`
  1016  	// StringValues: Optional but exactly one of string_values or long_values must
  1017  	// be specified. This field is used to perform a string match
  1018  	// (`CASE_SENSITIVE_MATCH` or `CASE_INSENSITIVE_MATCH`) search. For filterable
  1019  	// `string_value`s, a maximum total number of 200 values is allowed, with each
  1020  	// `string_value` has a byte size of no more than 500B. For unfilterable
  1021  	// `string_values`, the maximum total byte size of unfilterable `string_values`
  1022  	// is 50KB. Empty string is not allowed.
  1023  	StringValues []string `json:"stringValues,omitempty"`
  1024  	// ForceSendFields is a list of field names (e.g. "Filterable") to
  1025  	// unconditionally include in API requests. By default, fields with empty or
  1026  	// default values are omitted from API requests. See
  1027  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1028  	// details.
  1029  	ForceSendFields []string `json:"-"`
  1030  	// NullFields is a list of field names (e.g. "Filterable") to include in API
  1031  	// requests with the JSON null value. By default, fields with empty values are
  1032  	// omitted from API requests. See
  1033  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1034  	NullFields []string `json:"-"`
  1035  }
  1036  
  1037  func (s *CustomAttribute) MarshalJSON() ([]byte, error) {
  1038  	type NoMethod CustomAttribute
  1039  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1040  }
  1041  
  1042  // CustomAttributeHistogramRequest: Custom attributes histogram request. An
  1043  // error is thrown if neither string_value_histogram or
  1044  // long_value_histogram_bucketing_option has been defined.
  1045  type CustomAttributeHistogramRequest struct {
  1046  	// Key: Required. Specifies the custom field key to perform a histogram on. If
  1047  	// specified without `long_value_histogram_bucketing_option`, histogram on
  1048  	// string values of the given `key` is triggered, otherwise histogram is
  1049  	// performed on long values.
  1050  	Key string `json:"key,omitempty"`
  1051  	// LongValueHistogramBucketingOption: Optional. Specifies buckets used to
  1052  	// perform a range histogram on Job's filterable long custom field values, or
  1053  	// min/max value requirements.
  1054  	LongValueHistogramBucketingOption *NumericBucketingOption `json:"longValueHistogramBucketingOption,omitempty"`
  1055  	// StringValueHistogram: Optional. If set to true, the response includes the
  1056  	// histogram value for each key as a string.
  1057  	StringValueHistogram bool `json:"stringValueHistogram,omitempty"`
  1058  	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
  1059  	// include in API requests. By default, fields with empty or default values are
  1060  	// omitted from API requests. See
  1061  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1062  	// details.
  1063  	ForceSendFields []string `json:"-"`
  1064  	// NullFields is a list of field names (e.g. "Key") to include in API requests
  1065  	// with the JSON null value. By default, fields with empty values are omitted
  1066  	// from API requests. See
  1067  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1068  	NullFields []string `json:"-"`
  1069  }
  1070  
  1071  func (s *CustomAttributeHistogramRequest) MarshalJSON() ([]byte, error) {
  1072  	type NoMethod CustomAttributeHistogramRequest
  1073  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1074  }
  1075  
  1076  // CustomAttributeHistogramResult: Output only. Custom attribute histogram
  1077  // result.
  1078  type CustomAttributeHistogramResult struct {
  1079  	// Key: Stores the key of custom attribute the histogram is performed on.
  1080  	Key string `json:"key,omitempty"`
  1081  	// LongValueHistogramResult: Stores bucketed histogram counting result or
  1082  	// min/max values for custom attribute long values associated with `key`.
  1083  	LongValueHistogramResult *NumericBucketingResult `json:"longValueHistogramResult,omitempty"`
  1084  	// StringValueHistogramResult: Stores a map from the values of string custom
  1085  	// field associated with `key` to the number of jobs with that value in this
  1086  	// histogram result.
  1087  	StringValueHistogramResult map[string]int64 `json:"stringValueHistogramResult,omitempty"`
  1088  	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
  1089  	// include in API requests. By default, fields with empty or default values are
  1090  	// omitted from API requests. See
  1091  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1092  	// details.
  1093  	ForceSendFields []string `json:"-"`
  1094  	// NullFields is a list of field names (e.g. "Key") to include in API requests
  1095  	// with the JSON null value. By default, fields with empty values are omitted
  1096  	// from API requests. See
  1097  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1098  	NullFields []string `json:"-"`
  1099  }
  1100  
  1101  func (s *CustomAttributeHistogramResult) MarshalJSON() ([]byte, error) {
  1102  	type NoMethod CustomAttributeHistogramResult
  1103  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1104  }
  1105  
  1106  // CustomRankingInfo: Input only. Custom ranking information for
  1107  // SearchJobsRequest.
  1108  type CustomRankingInfo struct {
  1109  	// ImportanceLevel: Required. Controls over how important the score of
  1110  	// CustomRankingInfo.ranking_expression gets applied to job's final ranking
  1111  	// position. An error is thrown if not specified.
  1112  	//
  1113  	// Possible values:
  1114  	//   "IMPORTANCE_LEVEL_UNSPECIFIED" - Default value if the importance level is
  1115  	// not specified.
  1116  	//   "NONE" - The given ranking expression is of None importance, existing
  1117  	// relevance score (determined by API algorithm) dominates job's final ranking
  1118  	// position.
  1119  	//   "LOW" - The given ranking expression is of Low importance in terms of
  1120  	// job's final ranking position compared to existing relevance score
  1121  	// (determined by API algorithm).
  1122  	//   "MILD" - The given ranking expression is of Mild importance in terms of
  1123  	// job's final ranking position compared to existing relevance score
  1124  	// (determined by API algorithm).
  1125  	//   "MEDIUM" - The given ranking expression is of Medium importance in terms
  1126  	// of job's final ranking position compared to existing relevance score
  1127  	// (determined by API algorithm).
  1128  	//   "HIGH" - The given ranking expression is of High importance in terms of
  1129  	// job's final ranking position compared to existing relevance score
  1130  	// (determined by API algorithm).
  1131  	//   "EXTREME" - The given ranking expression is of Extreme importance, and
  1132  	// dominates job's final ranking position with existing relevance score
  1133  	// (determined by API algorithm) ignored.
  1134  	ImportanceLevel string `json:"importanceLevel,omitempty"`
  1135  	// RankingExpression: Required. Controls over how job documents get ranked on
  1136  	// top of existing relevance score (determined by API algorithm). A combination
  1137  	// of the ranking expression and relevance score is used to determine job's
  1138  	// final ranking position. The syntax for this expression is a subset of Google
  1139  	// SQL syntax. Supported operators are: +, -, *, /, where the left and right
  1140  	// side of the operator is either a numeric Job.custom_attributes key,
  1141  	// integer/double value or an expression that can be evaluated to a number.
  1142  	// Parenthesis are supported to adjust calculation precedence. The expression
  1143  	// must be < 200 characters in length. The expression is considered invalid for
  1144  	// a job if the expression references custom attributes that are not populated
  1145  	// on the job or if the expression results in a divide by zero. If an
  1146  	// expression is invalid for a job, that job is demoted to the end of the
  1147  	// results. Sample ranking expression (year + 25) * 0.25 - (freshness / 0.5)
  1148  	RankingExpression string `json:"rankingExpression,omitempty"`
  1149  	// ForceSendFields is a list of field names (e.g. "ImportanceLevel") to
  1150  	// unconditionally include in API requests. By default, fields with empty or
  1151  	// default values are omitted from API requests. See
  1152  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1153  	// details.
  1154  	ForceSendFields []string `json:"-"`
  1155  	// NullFields is a list of field names (e.g. "ImportanceLevel") to include in
  1156  	// API requests with the JSON null value. By default, fields with empty values
  1157  	// are omitted from API requests. See
  1158  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1159  	NullFields []string `json:"-"`
  1160  }
  1161  
  1162  func (s *CustomRankingInfo) MarshalJSON() ([]byte, error) {
  1163  	type NoMethod CustomRankingInfo
  1164  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1165  }
  1166  
  1167  // DeviceInfo: Device information collected from the job seeker, candidate, or
  1168  // other entity conducting the job search. Providing this information improves
  1169  // the quality of the search results across devices.
  1170  type DeviceInfo struct {
  1171  	// DeviceType: Optional. Type of the device.
  1172  	//
  1173  	// Possible values:
  1174  	//   "DEVICE_TYPE_UNSPECIFIED" - The device type isn't specified.
  1175  	//   "WEB" - A desktop web browser, such as, Chrome, Firefox, Safari, or
  1176  	// Internet Explorer)
  1177  	//   "MOBILE_WEB" - A mobile device web browser, such as a phone or tablet with
  1178  	// a Chrome browser.
  1179  	//   "ANDROID" - An Android device native application.
  1180  	//   "IOS" - An iOS device native application.
  1181  	//   "BOT" - A bot, as opposed to a device operated by human beings, such as a
  1182  	// web crawler.
  1183  	//   "OTHER" - Other devices types.
  1184  	DeviceType string `json:"deviceType,omitempty"`
  1185  	// Id: Optional. A device-specific ID. The ID must be a unique identifier that
  1186  	// distinguishes the device from other devices.
  1187  	Id string `json:"id,omitempty"`
  1188  	// ForceSendFields is a list of field names (e.g. "DeviceType") to
  1189  	// unconditionally include in API requests. By default, fields with empty or
  1190  	// default values are omitted from API requests. See
  1191  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1192  	// details.
  1193  	ForceSendFields []string `json:"-"`
  1194  	// NullFields is a list of field names (e.g. "DeviceType") to include in API
  1195  	// requests with the JSON null value. By default, fields with empty values are
  1196  	// omitted from API requests. See
  1197  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1198  	NullFields []string `json:"-"`
  1199  }
  1200  
  1201  func (s *DeviceInfo) MarshalJSON() ([]byte, error) {
  1202  	type NoMethod DeviceInfo
  1203  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1204  }
  1205  
  1206  // Empty: A generic empty message that you can re-use to avoid defining
  1207  // duplicated empty messages in your APIs. A typical example is to use it as
  1208  // the request or the response type of an API method. For instance: service Foo
  1209  // { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
  1210  type Empty struct {
  1211  	// ServerResponse contains the HTTP response code and headers from the server.
  1212  	googleapi.ServerResponse `json:"-"`
  1213  }
  1214  
  1215  // HistogramFacets: Input only. Histogram facets to be specified in
  1216  // SearchJobsRequest.
  1217  type HistogramFacets struct {
  1218  	// CompensationHistogramFacets: Optional. Specifies compensation field-based
  1219  	// histogram requests. Duplicate values of CompensationHistogramRequest.type
  1220  	// are not allowed.
  1221  	CompensationHistogramFacets []*CompensationHistogramRequest `json:"compensationHistogramFacets,omitempty"`
  1222  	// CustomAttributeHistogramFacets: Optional. Specifies the custom attributes
  1223  	// histogram requests. Duplicate values of CustomAttributeHistogramRequest.key
  1224  	// are not allowed.
  1225  	CustomAttributeHistogramFacets []*CustomAttributeHistogramRequest `json:"customAttributeHistogramFacets,omitempty"`
  1226  	// SimpleHistogramFacets: Optional. Specifies the simple type of histogram
  1227  	// facets, for example, `COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.
  1228  	//
  1229  	// Possible values:
  1230  	//   "SEARCH_TYPE_UNSPECIFIED" - The default value if search type is not
  1231  	// specified.
  1232  	//   "COMPANY_ID" - Filter by the company id field.
  1233  	//   "EMPLOYMENT_TYPE" - Filter by the employment type field, such as
  1234  	// `FULL_TIME` or `PART_TIME`.
  1235  	//   "COMPANY_SIZE" - Filter by the company size type field, such as `BIG`,
  1236  	// `SMALL` or `BIGGER`.
  1237  	//   "DATE_PUBLISHED" - Filter by the date published field. Possible return
  1238  	// values are: * PAST_24_HOURS (The past 24 hours) * PAST_3_DAYS (The past 3
  1239  	// days) * PAST_WEEK (The past 7 days) * PAST_MONTH (The past 30 days) *
  1240  	// PAST_YEAR (The past 365 days)
  1241  	//   "EDUCATION_LEVEL" - Filter by the required education level of the job.
  1242  	//   "EXPERIENCE_LEVEL" - Filter by the required experience level of the job.
  1243  	//   "ADMIN_1" - Filter by Admin1, which is a global placeholder for referring
  1244  	// to state, province, or the particular term a country uses to define the
  1245  	// geographic structure below the country level. Examples include states codes
  1246  	// such as "CA", "IL", "NY", and provinces, such as "BC".
  1247  	//   "COUNTRY" - Filter by the country code of job, such as US, JP, FR.
  1248  	//   "CITY" - Filter by the "city name", "Admin1 code", for example, "Mountain
  1249  	// View, CA" or "New York, NY".
  1250  	//   "LOCALE" - Filter by the locale field of a job, such as "en-US", "fr-FR".
  1251  	// This is the BCP-47 language code, such as "en-US" or "sr-Latn". For more
  1252  	// information, see [Tags for Identifying
  1253  	// Languages](https://tools.ietf.org/html/bcp47).
  1254  	//   "LANGUAGE" - Filter by the language code portion of the locale field, such
  1255  	// as "en" or "fr".
  1256  	//   "CATEGORY" - Filter by the Category.
  1257  	//   "CITY_COORDINATE" - Filter by the city center GPS coordinate (latitude and
  1258  	// longitude), for example, 37.4038522,-122.0987765. Since the coordinates of a
  1259  	// city center can change, clients may need to refresh them periodically.
  1260  	//   "ADMIN_1_COUNTRY" - A combination of state or province code with a country
  1261  	// code. This field differs from `JOB_ADMIN1`, which can be used in multiple
  1262  	// countries.
  1263  	//   "COMPANY_DISPLAY_NAME" - Company display name.
  1264  	//   "BASE_COMPENSATION_UNIT" - Base compensation unit.
  1265  	SimpleHistogramFacets []string `json:"simpleHistogramFacets,omitempty"`
  1266  	// ForceSendFields is a list of field names (e.g.
  1267  	// "CompensationHistogramFacets") to unconditionally include in API requests.
  1268  	// By default, fields with empty or default values are omitted from API
  1269  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
  1270  	// for more details.
  1271  	ForceSendFields []string `json:"-"`
  1272  	// NullFields is a list of field names (e.g. "CompensationHistogramFacets") to
  1273  	// include in API requests with the JSON null value. By default, fields with
  1274  	// empty values are omitted from API requests. See
  1275  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1276  	NullFields []string `json:"-"`
  1277  }
  1278  
  1279  func (s *HistogramFacets) MarshalJSON() ([]byte, error) {
  1280  	type NoMethod HistogramFacets
  1281  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1282  }
  1283  
  1284  // HistogramQuery: Input Only. The histogram request.
  1285  type HistogramQuery struct {
  1286  	// HistogramQuery: An expression specifies a histogram request against matching
  1287  	// resources (for example, jobs) for searches. Expression syntax is a
  1288  	// aggregation function call with histogram facets and other options. Available
  1289  	// aggregation function calls are: * `count(string_histogram_facet)`: Count the
  1290  	// number of matching entity, for each distinct attribute value. *
  1291  	// `count(numeric_histogram_facet, list of buckets)`: Count the number of
  1292  	// matching entity within each bucket. A maximum of 200 histogram buckets are
  1293  	// supported. Data types: * Histogram facet: facet names with format a-zA-Z+. *
  1294  	// String: string like "any string with backslash escape for quote(\")." *
  1295  	// Number: whole number and floating point number like 10, -1 and -0.01. *
  1296  	// List: list of elements with comma(,) separator surrounded by square
  1297  	// brackets. For example, [1, 2, 3] and ["one", "two", "three"]. Built-in
  1298  	// constants: * MIN (minimum number similar to java Double.MIN_VALUE) * MAX
  1299  	// (maximum number similar to java Double.MAX_VALUE) Built-in functions: *
  1300  	// bucket(start, end[, label]): bucket built-in function creates a bucket with
  1301  	// range of start, end). Note that the end is exclusive. For example, bucket(1,
  1302  	// MAX, "positive number") or bucket(1, 10). Job histogram facets: *
  1303  	// company_id: histogram by [Job.distributor_company_id. *
  1304  	// company_display_name: histogram by Job.company_display_name. *
  1305  	// employment_type: histogram by Job.employment_types. For example,
  1306  	// "FULL_TIME", "PART_TIME". * company_size (DEPRECATED): histogram by
  1307  	// CompanySize, for example, "SMALL", "MEDIUM", "BIG". * publish_time_in_day:
  1308  	// histogram by the Job.publish_time in days. Must specify list of numeric
  1309  	// buckets in spec. * publish_time_in_month: histogram by the Job.publish_time
  1310  	// in months. Must specify list of numeric buckets in spec. *
  1311  	// publish_time_in_year: histogram by the Job.publish_time in years. Must
  1312  	// specify list of numeric buckets in spec. * degree_type: histogram by the
  1313  	// Job.degree_type. For example, "Bachelors", "Masters". * job_level: histogram
  1314  	// by the Job.job_level. For example, "Entry Level". * country: histogram by
  1315  	// the country code of jobs. For example, "US", "FR". * admin1: histogram by
  1316  	// the admin1 code of jobs, which is a global placeholder referring to the
  1317  	// state, province, or the particular term a country uses to define the
  1318  	// geographic structure below the country level. For example, "CA", "IL". *
  1319  	// city: histogram by a combination of the "city name, admin1 code". For
  1320  	// example, "Mountain View, CA", "New York, NY". * admin1_country: histogram by
  1321  	// a combination of the "admin1 code, country". For example, "CA, US", "IL,
  1322  	// US". * city_coordinate: histogram by the city center's GPS coordinates
  1323  	// (latitude and longitude). For example, 37.4038522,-122.0987765. Since the
  1324  	// coordinates of a city center can change, customers may need to refresh them
  1325  	// periodically. * locale: histogram by the Job.language_code. For example,
  1326  	// "en-US", "fr-FR". * language: histogram by the language subtag of the
  1327  	// Job.language_code. For example, "en", "fr". * category: histogram by the
  1328  	// JobCategory. For example, "COMPUTER_AND_IT", "HEALTHCARE". *
  1329  	// base_compensation_unit: histogram by the CompensationUnit of base salary.
  1330  	// For example, "WEEKLY", "MONTHLY". * base_compensation: histogram by the base
  1331  	// salary. Must specify list of numeric buckets to group results by. *
  1332  	// annualized_base_compensation: histogram by the base annualized salary. Must
  1333  	// specify list of numeric buckets to group results by. *
  1334  	// annualized_total_compensation: histogram by the total annualized salary.
  1335  	// Must specify list of numeric buckets to group results by. *
  1336  	// string_custom_attribute: histogram by string Job.custom_attributes. Values
  1337  	// can be accessed via square bracket notations like
  1338  	// string_custom_attribute["key1"]. * numeric_custom_attribute: histogram by
  1339  	// numeric Job.custom_attributes. Values can be accessed via square bracket
  1340  	// notations like numeric_custom_attribute["key1"]. Must specify list of
  1341  	// numeric buckets to group results by. Example expressions: * count(admin1) *
  1342  	// count(base_compensation, [bucket(1000, 10000), bucket(10000, 100000),
  1343  	// bucket(100000, MAX)]) *
  1344  	// count(string_custom_attribute["some-string-custom-attribute"]) *
  1345  	// count(numeric_custom_attribute["some-numeric-custom-attribute"],
  1346  	// [bucket(MIN, 0, "negative"), bucket(0, MAX, "non-negative")])
  1347  	HistogramQuery string `json:"histogramQuery,omitempty"`
  1348  	// ForceSendFields is a list of field names (e.g. "HistogramQuery") to
  1349  	// unconditionally include in API requests. By default, fields with empty or
  1350  	// default values are omitted from API requests. See
  1351  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1352  	// details.
  1353  	ForceSendFields []string `json:"-"`
  1354  	// NullFields is a list of field names (e.g. "HistogramQuery") to include in
  1355  	// API requests with the JSON null value. By default, fields with empty values
  1356  	// are omitted from API requests. See
  1357  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1358  	NullFields []string `json:"-"`
  1359  }
  1360  
  1361  func (s *HistogramQuery) MarshalJSON() ([]byte, error) {
  1362  	type NoMethod HistogramQuery
  1363  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1364  }
  1365  
  1366  // HistogramQueryResult: Output only. Histogram result that matches
  1367  // HistogramSpec specified in searches.
  1368  type HistogramQueryResult struct {
  1369  	// Histogram: A map from the values of the facet associated with distinct
  1370  	// values to the number of matching entries with corresponding value. The key
  1371  	// format is: * (for string histogram) string values stored in the field. *
  1372  	// (for named numeric bucket) name specified in `bucket()` function, like for
  1373  	// `bucket(0, MAX, "non-negative")`, the key will be `non-negative`. * (for
  1374  	// anonymous numeric bucket) range formatted as `-`, for example, `0-1000`,
  1375  	// `MIN-0`, and `0-MAX`.
  1376  	Histogram map[string]string `json:"histogram,omitempty"`
  1377  	// HistogramQuery: Requested histogram expression.
  1378  	HistogramQuery string `json:"histogramQuery,omitempty"`
  1379  	// ForceSendFields is a list of field names (e.g. "Histogram") to
  1380  	// unconditionally include in API requests. By default, fields with empty or
  1381  	// default values are omitted from API requests. See
  1382  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1383  	// details.
  1384  	ForceSendFields []string `json:"-"`
  1385  	// NullFields is a list of field names (e.g. "Histogram") to include in API
  1386  	// requests with the JSON null value. By default, fields with empty values are
  1387  	// omitted from API requests. See
  1388  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1389  	NullFields []string `json:"-"`
  1390  }
  1391  
  1392  func (s *HistogramQueryResult) MarshalJSON() ([]byte, error) {
  1393  	type NoMethod HistogramQueryResult
  1394  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1395  }
  1396  
  1397  // HistogramResult: Output only. Result of a histogram call. The response
  1398  // contains the histogram map for the search type specified by
  1399  // HistogramResult.field. The response is a map of each filter value to the
  1400  // corresponding count of jobs for that filter.
  1401  type HistogramResult struct {
  1402  	// SearchType: The Histogram search filters.
  1403  	//
  1404  	// Possible values:
  1405  	//   "SEARCH_TYPE_UNSPECIFIED" - The default value if search type is not
  1406  	// specified.
  1407  	//   "COMPANY_ID" - Filter by the company id field.
  1408  	//   "EMPLOYMENT_TYPE" - Filter by the employment type field, such as
  1409  	// `FULL_TIME` or `PART_TIME`.
  1410  	//   "COMPANY_SIZE" - Filter by the company size type field, such as `BIG`,
  1411  	// `SMALL` or `BIGGER`.
  1412  	//   "DATE_PUBLISHED" - Filter by the date published field. Possible return
  1413  	// values are: * PAST_24_HOURS (The past 24 hours) * PAST_3_DAYS (The past 3
  1414  	// days) * PAST_WEEK (The past 7 days) * PAST_MONTH (The past 30 days) *
  1415  	// PAST_YEAR (The past 365 days)
  1416  	//   "EDUCATION_LEVEL" - Filter by the required education level of the job.
  1417  	//   "EXPERIENCE_LEVEL" - Filter by the required experience level of the job.
  1418  	//   "ADMIN_1" - Filter by Admin1, which is a global placeholder for referring
  1419  	// to state, province, or the particular term a country uses to define the
  1420  	// geographic structure below the country level. Examples include states codes
  1421  	// such as "CA", "IL", "NY", and provinces, such as "BC".
  1422  	//   "COUNTRY" - Filter by the country code of job, such as US, JP, FR.
  1423  	//   "CITY" - Filter by the "city name", "Admin1 code", for example, "Mountain
  1424  	// View, CA" or "New York, NY".
  1425  	//   "LOCALE" - Filter by the locale field of a job, such as "en-US", "fr-FR".
  1426  	// This is the BCP-47 language code, such as "en-US" or "sr-Latn". For more
  1427  	// information, see [Tags for Identifying
  1428  	// Languages](https://tools.ietf.org/html/bcp47).
  1429  	//   "LANGUAGE" - Filter by the language code portion of the locale field, such
  1430  	// as "en" or "fr".
  1431  	//   "CATEGORY" - Filter by the Category.
  1432  	//   "CITY_COORDINATE" - Filter by the city center GPS coordinate (latitude and
  1433  	// longitude), for example, 37.4038522,-122.0987765. Since the coordinates of a
  1434  	// city center can change, clients may need to refresh them periodically.
  1435  	//   "ADMIN_1_COUNTRY" - A combination of state or province code with a country
  1436  	// code. This field differs from `JOB_ADMIN1`, which can be used in multiple
  1437  	// countries.
  1438  	//   "COMPANY_DISPLAY_NAME" - Company display name.
  1439  	//   "BASE_COMPENSATION_UNIT" - Base compensation unit.
  1440  	SearchType string `json:"searchType,omitempty"`
  1441  	// Values: A map from the values of field to the number of jobs with that value
  1442  	// in this search result. Key: search type (filter names, such as the
  1443  	// companyName). Values: the count of jobs that match the filter for this
  1444  	// search.
  1445  	Values map[string]int64 `json:"values,omitempty"`
  1446  	// ForceSendFields is a list of field names (e.g. "SearchType") to
  1447  	// unconditionally include in API requests. By default, fields with empty or
  1448  	// default values are omitted from API requests. See
  1449  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1450  	// details.
  1451  	ForceSendFields []string `json:"-"`
  1452  	// NullFields is a list of field names (e.g. "SearchType") to include in API
  1453  	// requests with the JSON null value. By default, fields with empty values are
  1454  	// omitted from API requests. See
  1455  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1456  	NullFields []string `json:"-"`
  1457  }
  1458  
  1459  func (s *HistogramResult) MarshalJSON() ([]byte, error) {
  1460  	type NoMethod HistogramResult
  1461  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1462  }
  1463  
  1464  // HistogramResults: Output only. Histogram results that match HistogramFacets
  1465  // specified in SearchJobsRequest.
  1466  type HistogramResults struct {
  1467  	// CompensationHistogramResults: Specifies compensation field-based histogram
  1468  	// results that match HistogramFacets.compensation_histogram_requests.
  1469  	CompensationHistogramResults []*CompensationHistogramResult `json:"compensationHistogramResults,omitempty"`
  1470  	// CustomAttributeHistogramResults: Specifies histogram results for custom
  1471  	// attributes that match HistogramFacets.custom_attribute_histogram_facets.
  1472  	CustomAttributeHistogramResults []*CustomAttributeHistogramResult `json:"customAttributeHistogramResults,omitempty"`
  1473  	// SimpleHistogramResults: Specifies histogram results that matches
  1474  	// HistogramFacets.simple_histogram_facets.
  1475  	SimpleHistogramResults []*HistogramResult `json:"simpleHistogramResults,omitempty"`
  1476  	// ForceSendFields is a list of field names (e.g.
  1477  	// "CompensationHistogramResults") to unconditionally include in API requests.
  1478  	// By default, fields with empty or default values are omitted from API
  1479  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
  1480  	// for more details.
  1481  	ForceSendFields []string `json:"-"`
  1482  	// NullFields is a list of field names (e.g. "CompensationHistogramResults") to
  1483  	// include in API requests with the JSON null value. By default, fields with
  1484  	// empty values are omitted from API requests. See
  1485  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1486  	NullFields []string `json:"-"`
  1487  }
  1488  
  1489  func (s *HistogramResults) MarshalJSON() ([]byte, error) {
  1490  	type NoMethod HistogramResults
  1491  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1492  }
  1493  
  1494  // Job: A Job resource represents a job posting (also referred to as a "job
  1495  // listing" or "job requisition"). A job belongs to a Company, which is the
  1496  // hiring entity responsible for the job.
  1497  type Job struct {
  1498  	// Addresses: Optional but strongly recommended for the best service
  1499  	// experience. Location(s) where the employer is looking to hire for this job
  1500  	// posting. Specifying the full street address(es) of the hiring location
  1501  	// enables better API results, especially job searches by commute time. At most
  1502  	// 50 locations are allowed for best search performance. If a job has more
  1503  	// locations, it is suggested to split it into multiple jobs with unique
  1504  	// requisition_ids (e.g. 'ReqA' becomes 'ReqA-1', 'ReqA-2', etc.) as multiple
  1505  	// jobs with the same company_name, language_code and requisition_id are not
  1506  	// allowed. If the original requisition_id must be preserved, a custom field
  1507  	// should be used for storage. It is also suggested to group the locations that
  1508  	// close to each other in the same job for better search experience. Jobs with
  1509  	// multiple addresses must have their addresses with the same LocationType to
  1510  	// allow location filtering to work properly. (For example, a Job with
  1511  	// addresses "1600 Amphitheatre Parkway, Mountain View, CA, USA" and "London,
  1512  	// UK" may not have location filters applied correctly at search time since the
  1513  	// first is a LocationType.STREET_ADDRESS and the second is a
  1514  	// LocationType.LOCALITY.) If a job needs to have multiple addresses, it is
  1515  	// suggested to split it into multiple jobs with same LocationTypes. The
  1516  	// maximum number of allowed characters is 500.
  1517  	Addresses []string `json:"addresses,omitempty"`
  1518  	// ApplicationInfo: Required. At least one field within ApplicationInfo must be
  1519  	// specified. Job application information.
  1520  	ApplicationInfo *ApplicationInfo `json:"applicationInfo,omitempty"`
  1521  	// CompanyDisplayName: Output only. Display name of the company listing the
  1522  	// job.
  1523  	CompanyDisplayName string `json:"companyDisplayName,omitempty"`
  1524  	// CompanyName: Required. The resource name of the company listing the job,
  1525  	// such as "projects/api-test-project/companies/foo".
  1526  	CompanyName string `json:"companyName,omitempty"`
  1527  	// CompensationInfo: Optional. Job compensation information.
  1528  	CompensationInfo *CompensationInfo `json:"compensationInfo,omitempty"`
  1529  	// CustomAttributes: Optional. A map of fields to hold both filterable and
  1530  	// non-filterable custom job attributes that are not covered by the provided
  1531  	// structured fields. The keys of the map are strings up to 64 bytes and must
  1532  	// match the pattern: a-zA-Z*. For example, key0LikeThis or KEY_1_LIKE_THIS. At
  1533  	// most 100 filterable and at most 100 unfilterable keys are supported. For
  1534  	// filterable `string_values`, across all keys at most 200 values are allowed,
  1535  	// with each string no more than 255 characters. For unfilterable
  1536  	// `string_values`, the maximum total size of `string_values` across all keys
  1537  	// is 50KB.
  1538  	CustomAttributes map[string]CustomAttribute `json:"customAttributes,omitempty"`
  1539  	// DegreeTypes: Optional. The desired education degrees for the job, such as
  1540  	// Bachelors, Masters.
  1541  	//
  1542  	// Possible values:
  1543  	//   "DEGREE_TYPE_UNSPECIFIED" - Default value. Represents no degree, or early
  1544  	// childhood education. Maps to ISCED code 0. Ex) Kindergarten
  1545  	//   "PRIMARY_EDUCATION" - Primary education which is typically the first stage
  1546  	// of compulsory education. ISCED code 1. Ex) Elementary school
  1547  	//   "LOWER_SECONDARY_EDUCATION" - Lower secondary education; First stage of
  1548  	// secondary education building on primary education, typically with a more
  1549  	// subject-oriented curriculum. ISCED code 2. Ex) Middle school
  1550  	//   "UPPER_SECONDARY_EDUCATION" - Middle education; Second/final stage of
  1551  	// secondary education preparing for tertiary education and/or providing skills
  1552  	// relevant to employment. Usually with an increased range of subject options
  1553  	// and streams. ISCED code 3. Ex) High school
  1554  	//   "ADULT_REMEDIAL_EDUCATION" - Adult Remedial Education; Programmes
  1555  	// providing learning experiences that build on secondary education and prepare
  1556  	// for labour market entry and/or tertiary education. The content is broader
  1557  	// than secondary but not as complex as tertiary education. ISCED code 4.
  1558  	//   "ASSOCIATES_OR_EQUIVALENT" - Associate's or equivalent; Short first
  1559  	// tertiary programmes that are typically practically-based,
  1560  	// occupationally-specific and prepare for labour market entry. These
  1561  	// programmes may also provide a pathway to other tertiary programmes. ISCED
  1562  	// code 5.
  1563  	//   "BACHELORS_OR_EQUIVALENT" - Bachelor's or equivalent; Programmes designed
  1564  	// to provide intermediate academic and/or professional knowledge, skills and
  1565  	// competencies leading to a first tertiary degree or equivalent qualification.
  1566  	// ISCED code 6.
  1567  	//   "MASTERS_OR_EQUIVALENT" - Master's or equivalent; Programmes designed to
  1568  	// provide advanced academic and/or professional knowledge, skills and
  1569  	// competencies leading to a second tertiary degree or equivalent
  1570  	// qualification. ISCED code 7.
  1571  	//   "DOCTORAL_OR_EQUIVALENT" - Doctoral or equivalent; Programmes designed
  1572  	// primarily to lead to an advanced research qualification, usually concluding
  1573  	// with the submission and defense of a substantive dissertation of publishable
  1574  	// quality based on original research. ISCED code 8.
  1575  	DegreeTypes []string `json:"degreeTypes,omitempty"`
  1576  	// Department: Optional. The department or functional area within the company
  1577  	// with the open position. The maximum number of allowed characters is 255.
  1578  	Department string `json:"department,omitempty"`
  1579  	// DerivedInfo: Output only. Derived details about the job posting.
  1580  	DerivedInfo *JobDerivedInfo `json:"derivedInfo,omitempty"`
  1581  	// Description: Required. The description of the job, which typically includes
  1582  	// a multi-paragraph description of the company and related information.
  1583  	// Separate fields are provided on the job object for responsibilities,
  1584  	// qualifications, and other job characteristics. Use of these separate job
  1585  	// fields is recommended. This field accepts and sanitizes HTML input, and also
  1586  	// accepts bold, italic, ordered list, and unordered list markup tags. The
  1587  	// maximum number of allowed characters is 100,000.
  1588  	Description string `json:"description,omitempty"`
  1589  	// EmploymentTypes: Optional. The employment type(s) of a job, for example,
  1590  	// full time or part time.
  1591  	//
  1592  	// Possible values:
  1593  	//   "EMPLOYMENT_TYPE_UNSPECIFIED" - The default value if the employment type
  1594  	// is not specified.
  1595  	//   "FULL_TIME" - The job requires working a number of hours that constitute
  1596  	// full time employment, typically 40 or more hours per week.
  1597  	//   "PART_TIME" - The job entails working fewer hours than a full time job,
  1598  	// typically less than 40 hours a week.
  1599  	//   "CONTRACTOR" - The job is offered as a contracted, as opposed to a
  1600  	// salaried employee, position.
  1601  	//   "CONTRACT_TO_HIRE" - The job is offered as a contracted position with the
  1602  	// understanding that it's converted into a full-time position at the end of
  1603  	// the contract. Jobs of this type are also returned by a search for
  1604  	// EmploymentType.CONTRACTOR jobs.
  1605  	//   "TEMPORARY" - The job is offered as a temporary employment opportunity,
  1606  	// usually a short-term engagement.
  1607  	//   "INTERN" - The job is a fixed-term opportunity for students or entry-level
  1608  	// job seekers to obtain on-the-job training, typically offered as a summer
  1609  	// position.
  1610  	//   "VOLUNTEER" - The is an opportunity for an individual to volunteer, where
  1611  	// there's no expectation of compensation for the provided services.
  1612  	//   "PER_DIEM" - The job requires an employee to work on an as-needed basis
  1613  	// with a flexible schedule.
  1614  	//   "FLY_IN_FLY_OUT" - The job involves employing people in remote areas and
  1615  	// flying them temporarily to the work site instead of relocating employees and
  1616  	// their families permanently.
  1617  	//   "OTHER_EMPLOYMENT_TYPE" - The job does not fit any of the other listed
  1618  	// types.
  1619  	EmploymentTypes []string `json:"employmentTypes,omitempty"`
  1620  	// Incentives: Optional. A description of bonus, commission, and other
  1621  	// compensation incentives associated with the job not including salary or pay.
  1622  	// The maximum number of allowed characters is 10,000.
  1623  	Incentives string `json:"incentives,omitempty"`
  1624  	// JobBenefits: Optional. The benefits included with the job.
  1625  	//
  1626  	// Possible values:
  1627  	//   "JOB_BENEFIT_UNSPECIFIED" - Default value if the type is not specified.
  1628  	//   "CHILD_CARE" - The job includes access to programs that support child
  1629  	// care, such as daycare.
  1630  	//   "DENTAL" - The job includes dental services covered by a dental insurance
  1631  	// plan.
  1632  	//   "DOMESTIC_PARTNER" - The job offers specific benefits to domestic
  1633  	// partners.
  1634  	//   "FLEXIBLE_HOURS" - The job allows for a flexible work schedule.
  1635  	//   "MEDICAL" - The job includes health services covered by a medical
  1636  	// insurance plan.
  1637  	//   "LIFE_INSURANCE" - The job includes a life insurance plan provided by the
  1638  	// employer or available for purchase by the employee.
  1639  	//   "PARENTAL_LEAVE" - The job allows for a leave of absence to a parent to
  1640  	// care for a newborn child.
  1641  	//   "RETIREMENT_PLAN" - The job includes a workplace retirement plan provided
  1642  	// by the employer or available for purchase by the employee.
  1643  	//   "SICK_DAYS" - The job allows for paid time off due to illness.
  1644  	//   "VACATION" - The job includes paid time off for vacation.
  1645  	//   "VISION" - The job includes vision services covered by a vision insurance
  1646  	// plan.
  1647  	JobBenefits []string `json:"jobBenefits,omitempty"`
  1648  	// JobEndTime: Optional. The end timestamp of the job. Typically this field is
  1649  	// used for contracting engagements. Invalid timestamps are ignored.
  1650  	JobEndTime string `json:"jobEndTime,omitempty"`
  1651  	// JobLevel: Optional. The experience level associated with the job, such as
  1652  	// "Entry Level".
  1653  	//
  1654  	// Possible values:
  1655  	//   "JOB_LEVEL_UNSPECIFIED" - The default value if the level is not specified.
  1656  	//   "ENTRY_LEVEL" - Entry-level individual contributors, typically with less
  1657  	// than 2 years of experience in a similar role. Includes interns.
  1658  	//   "EXPERIENCED" - Experienced individual contributors, typically with 2+
  1659  	// years of experience in a similar role.
  1660  	//   "MANAGER" - Entry- to mid-level managers responsible for managing a team
  1661  	// of people.
  1662  	//   "DIRECTOR" - Senior-level managers responsible for managing teams of
  1663  	// managers.
  1664  	//   "EXECUTIVE" - Executive-level managers and above, including C-level
  1665  	// positions.
  1666  	JobLevel string `json:"jobLevel,omitempty"`
  1667  	// JobStartTime: Optional. The start timestamp of the job in UTC time zone.
  1668  	// Typically this field is used for contracting engagements. Invalid timestamps
  1669  	// are ignored.
  1670  	JobStartTime string `json:"jobStartTime,omitempty"`
  1671  	// LanguageCode: Optional. The language of the posting. This field is distinct
  1672  	// from any requirements for fluency that are associated with the job. Language
  1673  	// codes must be in BCP-47 format, such as "en-US" or "sr-Latn". For more
  1674  	// information, see Tags for Identifying Languages
  1675  	// (https://tools.ietf.org/html/bcp47){: class="external" target="_blank" }. If
  1676  	// this field is unspecified and Job.description is present, detected language
  1677  	// code based on Job.description is assigned, otherwise defaults to 'en_US'.
  1678  	LanguageCode string `json:"languageCode,omitempty"`
  1679  	// Name: Required during job update. The resource name for the job. This is
  1680  	// generated by the service when a job is created. The format is
  1681  	// "projects/{project_id}/jobs/{job_id}", for example,
  1682  	// "projects/api-test-project/jobs/1234". Use of this field in job queries and
  1683  	// API calls is preferred over the use of requisition_id since this value is
  1684  	// unique.
  1685  	Name string `json:"name,omitempty"`
  1686  	// PostingCreateTime: Output only. The timestamp when this job posting was
  1687  	// created.
  1688  	PostingCreateTime string `json:"postingCreateTime,omitempty"`
  1689  	// PostingExpireTime: Optional but strongly recommended for the best service
  1690  	// experience. The expiration timestamp of the job. After this timestamp, the
  1691  	// job is marked as expired, and it no longer appears in search results. The
  1692  	// expired job can't be deleted or listed by the DeleteJob and ListJobs APIs,
  1693  	// but it can be retrieved with the GetJob API or updated with the UpdateJob
  1694  	// API. An expired job can be updated and opened again by using a future
  1695  	// expiration timestamp. Updating an expired job fails if there is another
  1696  	// existing open job with same company_name, language_code and requisition_id.
  1697  	// The expired jobs are retained in our system for 90 days. However, the
  1698  	// overall expired job count cannot exceed 3 times the maximum of open jobs
  1699  	// count over the past week, otherwise jobs with earlier expire time are
  1700  	// cleaned first. Expired jobs are no longer accessible after they are cleaned
  1701  	// out. Invalid timestamps are ignored, and treated as expire time not
  1702  	// provided. Timestamp before the instant request is made is considered valid,
  1703  	// the job will be treated as expired immediately. If this value is not
  1704  	// provided at the time of job creation or is invalid, the job posting expires
  1705  	// after 30 days from the job's creation time. For example, if the job was
  1706  	// created on 2017/01/01 13:00AM UTC with an unspecified expiration date, the
  1707  	// job expires after 2017/01/31 13:00AM UTC. If this value is not provided on
  1708  	// job update, it depends on the field masks set by
  1709  	// UpdateJobRequest.update_mask. If the field masks include expiry_time, or the
  1710  	// masks are empty meaning that every field is updated, the job posting expires
  1711  	// after 30 days from the job's last update time. Otherwise the expiration date
  1712  	// isn't updated.
  1713  	PostingExpireTime string `json:"postingExpireTime,omitempty"`
  1714  	// PostingPublishTime: Optional. The timestamp this job posting was most
  1715  	// recently published. The default value is the time the request arrives at the
  1716  	// server. Invalid timestamps are ignored.
  1717  	PostingPublishTime string `json:"postingPublishTime,omitempty"`
  1718  	// PostingRegion: Optional. The job PostingRegion (for example, state, country)
  1719  	// throughout which the job is available. If this field is set, a
  1720  	// LocationFilter in a search query within the job region finds this job
  1721  	// posting if an exact location match isn't specified. If this field is set to
  1722  	// PostingRegion.NATION or PostingRegion.ADMINISTRATIVE_AREA, setting job
  1723  	// Job.addresses to the same location level as this field is strongly
  1724  	// recommended.
  1725  	//
  1726  	// Possible values:
  1727  	//   "POSTING_REGION_UNSPECIFIED" - If the region is unspecified, the job is
  1728  	// only returned if it matches the LocationFilter.
  1729  	//   "ADMINISTRATIVE_AREA" - In addition to exact location matching, job
  1730  	// posting is returned when the LocationFilter in the search query is in the
  1731  	// same administrative area as the returned job posting. For example, if a
  1732  	// `ADMINISTRATIVE_AREA` job is posted in "CA, USA", it's returned if
  1733  	// LocationFilter has "Mountain View". Administrative area refers to top-level
  1734  	// administrative subdivision of this country. For example, US state, IT
  1735  	// region, UK constituent nation and JP prefecture.
  1736  	//   "NATION" - In addition to exact location matching, job is returned when
  1737  	// LocationFilter in search query is in the same country as this job. For
  1738  	// example, if a `NATION_WIDE` job is posted in "USA", it's returned if
  1739  	// LocationFilter has 'Mountain View'.
  1740  	//   "TELECOMMUTE" - Job allows employees to work remotely (telecommute). If
  1741  	// locations are provided with this value, the job is considered as having a
  1742  	// location, but telecommuting is allowed.
  1743  	PostingRegion string `json:"postingRegion,omitempty"`
  1744  	// PostingUpdateTime: Output only. The timestamp when this job posting was last
  1745  	// updated.
  1746  	PostingUpdateTime string `json:"postingUpdateTime,omitempty"`
  1747  	// ProcessingOptions: Optional. Options for job processing.
  1748  	ProcessingOptions *ProcessingOptions `json:"processingOptions,omitempty"`
  1749  	// PromotionValue: Optional. A promotion value of the job, as determined by the
  1750  	// client. The value determines the sort order of the jobs returned when
  1751  	// searching for jobs using the featured jobs search call, with higher
  1752  	// promotional values being returned first and ties being resolved by relevance
  1753  	// sort. Only the jobs with a promotionValue >0 are returned in a
  1754  	// FEATURED_JOB_SEARCH. Default value is 0, and negative values are treated as
  1755  	// 0.
  1756  	PromotionValue int64 `json:"promotionValue,omitempty"`
  1757  	// Qualifications: Optional. A description of the qualifications required to
  1758  	// perform the job. The use of this field is recommended as an alternative to
  1759  	// using the more general description field. This field accepts and sanitizes
  1760  	// HTML input, and also accepts bold, italic, ordered list, and unordered list
  1761  	// markup tags. The maximum number of allowed characters is 10,000.
  1762  	Qualifications string `json:"qualifications,omitempty"`
  1763  	// RequisitionId: Required. The requisition ID, also referred to as the posting
  1764  	// ID, assigned by the client to identify a job. This field is intended to be
  1765  	// used by clients for client identification and tracking of postings. A job is
  1766  	// not allowed to be created if there is another job with the same
  1767  	// [company_name], language_code and requisition_id. The maximum number of
  1768  	// allowed characters is 255.
  1769  	RequisitionId string `json:"requisitionId,omitempty"`
  1770  	// Responsibilities: Optional. A description of job responsibilities. The use
  1771  	// of this field is recommended as an alternative to using the more general
  1772  	// description field. This field accepts and sanitizes HTML input, and also
  1773  	// accepts bold, italic, ordered list, and unordered list markup tags. The
  1774  	// maximum number of allowed characters is 10,000.
  1775  	Responsibilities string `json:"responsibilities,omitempty"`
  1776  	// Title: Required. The title of the job, such as "Software Engineer" The
  1777  	// maximum number of allowed characters is 500.
  1778  	Title string `json:"title,omitempty"`
  1779  	// Visibility: Deprecated. The job is only visible to the owner. The visibility
  1780  	// of the job. Defaults to Visibility.ACCOUNT_ONLY if not specified.
  1781  	//
  1782  	// Possible values:
  1783  	//   "VISIBILITY_UNSPECIFIED" - Default value.
  1784  	//   "ACCOUNT_ONLY" - The resource is only visible to the GCP account who owns
  1785  	// it.
  1786  	//   "SHARED_WITH_GOOGLE" - The resource is visible to the owner and may be
  1787  	// visible to other applications and processes at Google.
  1788  	//   "SHARED_WITH_PUBLIC" - The resource is visible to the owner and may be
  1789  	// visible to all other API clients.
  1790  	Visibility string `json:"visibility,omitempty"`
  1791  
  1792  	// ServerResponse contains the HTTP response code and headers from the server.
  1793  	googleapi.ServerResponse `json:"-"`
  1794  	// ForceSendFields is a list of field names (e.g. "Addresses") to
  1795  	// unconditionally include in API requests. By default, fields with empty or
  1796  	// default values are omitted from API requests. See
  1797  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1798  	// details.
  1799  	ForceSendFields []string `json:"-"`
  1800  	// NullFields is a list of field names (e.g. "Addresses") to include in API
  1801  	// requests with the JSON null value. By default, fields with empty values are
  1802  	// omitted from API requests. See
  1803  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1804  	NullFields []string `json:"-"`
  1805  }
  1806  
  1807  func (s *Job) MarshalJSON() ([]byte, error) {
  1808  	type NoMethod Job
  1809  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1810  }
  1811  
  1812  // JobDerivedInfo: Output only. Derived details about the job posting.
  1813  type JobDerivedInfo struct {
  1814  	// JobCategories: Job categories derived from Job.title and Job.description.
  1815  	//
  1816  	// Possible values:
  1817  	//   "JOB_CATEGORY_UNSPECIFIED" - The default value if the category isn't
  1818  	// specified.
  1819  	//   "ACCOUNTING_AND_FINANCE" - An accounting and finance job, such as an
  1820  	// Accountant.
  1821  	//   "ADMINISTRATIVE_AND_OFFICE" - An administrative and office job, such as an
  1822  	// Administrative Assistant.
  1823  	//   "ADVERTISING_AND_MARKETING" - An advertising and marketing job, such as
  1824  	// Marketing Manager.
  1825  	//   "ANIMAL_CARE" - An animal care job, such as Veterinarian.
  1826  	//   "ART_FASHION_AND_DESIGN" - An art, fashion, or design job, such as
  1827  	// Designer.
  1828  	//   "BUSINESS_OPERATIONS" - A business operations job, such as Business
  1829  	// Operations Manager.
  1830  	//   "CLEANING_AND_FACILITIES" - A cleaning and facilities job, such as
  1831  	// Custodial Staff.
  1832  	//   "COMPUTER_AND_IT" - A computer and IT job, such as Systems Administrator.
  1833  	//   "CONSTRUCTION" - A construction job, such as General Laborer.
  1834  	//   "CUSTOMER_SERVICE" - A customer service job, such s Cashier.
  1835  	//   "EDUCATION" - An education job, such as School Teacher.
  1836  	//   "ENTERTAINMENT_AND_TRAVEL" - An entertainment and travel job, such as
  1837  	// Flight Attendant.
  1838  	//   "FARMING_AND_OUTDOORS" - A farming or outdoor job, such as Park Ranger.
  1839  	//   "HEALTHCARE" - A healthcare job, such as Registered Nurse.
  1840  	//   "HUMAN_RESOURCES" - A human resources job, such as Human Resources
  1841  	// Director.
  1842  	//   "INSTALLATION_MAINTENANCE_AND_REPAIR" - An installation, maintenance, or
  1843  	// repair job, such as Electrician.
  1844  	//   "LEGAL" - A legal job, such as Law Clerk.
  1845  	//   "MANAGEMENT" - A management job, often used in conjunction with another
  1846  	// category, such as Store Manager.
  1847  	//   "MANUFACTURING_AND_WAREHOUSE" - A manufacturing or warehouse job, such as
  1848  	// Assembly Technician.
  1849  	//   "MEDIA_COMMUNICATIONS_AND_WRITING" - A media, communications, or writing
  1850  	// job, such as Media Relations.
  1851  	//   "OIL_GAS_AND_MINING" - An oil, gas or mining job, such as Offshore
  1852  	// Driller.
  1853  	//   "PERSONAL_CARE_AND_SERVICES" - A personal care and services job, such as
  1854  	// Hair Stylist.
  1855  	//   "PROTECTIVE_SERVICES" - A protective services job, such as Security Guard.
  1856  	//   "REAL_ESTATE" - A real estate job, such as Buyer's Agent.
  1857  	//   "RESTAURANT_AND_HOSPITALITY" - A restaurant and hospitality job, such as
  1858  	// Restaurant Server.
  1859  	//   "SALES_AND_RETAIL" - A sales and/or retail job, such Sales Associate.
  1860  	//   "SCIENCE_AND_ENGINEERING" - A science and engineering job, such as Lab
  1861  	// Technician.
  1862  	//   "SOCIAL_SERVICES_AND_NON_PROFIT" - A social services or non-profit job,
  1863  	// such as Case Worker.
  1864  	//   "SPORTS_FITNESS_AND_RECREATION" - A sports, fitness, or recreation job,
  1865  	// such as Personal Trainer.
  1866  	//   "TRANSPORTATION_AND_LOGISTICS" - A transportation or logistics job, such
  1867  	// as Truck Driver.
  1868  	JobCategories []string `json:"jobCategories,omitempty"`
  1869  	// Locations: Structured locations of the job, resolved from Job.addresses.
  1870  	// locations are exactly matched to Job.addresses in the same order.
  1871  	Locations []*Location `json:"locations,omitempty"`
  1872  	// ForceSendFields is a list of field names (e.g. "JobCategories") to
  1873  	// unconditionally include in API requests. By default, fields with empty or
  1874  	// default values are omitted from API requests. See
  1875  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1876  	// details.
  1877  	ForceSendFields []string `json:"-"`
  1878  	// NullFields is a list of field names (e.g. "JobCategories") to include in API
  1879  	// requests with the JSON null value. By default, fields with empty values are
  1880  	// omitted from API requests. See
  1881  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1882  	NullFields []string `json:"-"`
  1883  }
  1884  
  1885  func (s *JobDerivedInfo) MarshalJSON() ([]byte, error) {
  1886  	type NoMethod JobDerivedInfo
  1887  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1888  }
  1889  
  1890  // JobEvent: An event issued when a job seeker interacts with the application
  1891  // that implements Cloud Talent Solution.
  1892  type JobEvent struct {
  1893  	// Jobs: Required. The job name(s) associated with this event. For example, if
  1894  	// this is an impression event, this field contains the identifiers of all jobs
  1895  	// shown to the job seeker. If this was a view event, this field contains the
  1896  	// identifier of the viewed job.
  1897  	Jobs []string `json:"jobs,omitempty"`
  1898  	// Type: Required. The type of the event (see JobEventType).
  1899  	//
  1900  	// Possible values:
  1901  	//   "JOB_EVENT_TYPE_UNSPECIFIED" - The event is unspecified by other provided
  1902  	// values.
  1903  	//   "IMPRESSION" - The job seeker or other entity interacting with the service
  1904  	// has had a job rendered in their view, such as in a list of search results in
  1905  	// a compressed or clipped format. This event is typically associated with the
  1906  	// viewing of a jobs list on a single page by a job seeker.
  1907  	//   "VIEW" - The job seeker, or other entity interacting with the service, has
  1908  	// viewed the details of a job, including the full description. This event
  1909  	// doesn't apply to the viewing a snippet of a job appearing as a part of the
  1910  	// job search results. Viewing a snippet is associated with an impression).
  1911  	//   "VIEW_REDIRECT" - The job seeker or other entity interacting with the
  1912  	// service performed an action to view a job and was redirected to a different
  1913  	// website for job.
  1914  	//   "APPLICATION_START" - The job seeker or other entity interacting with the
  1915  	// service began the process or demonstrated the intention of applying for a
  1916  	// job.
  1917  	//   "APPLICATION_FINISH" - The job seeker or other entity interacting with the
  1918  	// service submitted an application for a job.
  1919  	//   "APPLICATION_QUICK_SUBMISSION" - The job seeker or other entity
  1920  	// interacting with the service submitted an application for a job with a
  1921  	// single click without entering information. If a job seeker performs this
  1922  	// action, send only this event to the service. Do not also send
  1923  	// JobEventType.APPLICATION_START or JobEventType.APPLICATION_FINISH events.
  1924  	//   "APPLICATION_REDIRECT" - The job seeker or other entity interacting with
  1925  	// the service performed an action to apply to a job and was redirected to a
  1926  	// different website to complete the application.
  1927  	//   "APPLICATION_START_FROM_SEARCH" - The job seeker or other entity
  1928  	// interacting with the service began the process or demonstrated the intention
  1929  	// of applying for a job from the search results page without viewing the
  1930  	// details of the job posting. If sending this event, JobEventType.VIEW event
  1931  	// shouldn't be sent.
  1932  	//   "APPLICATION_REDIRECT_FROM_SEARCH" - The job seeker, or other entity
  1933  	// interacting with the service, performs an action with a single click from
  1934  	// the search results page to apply to a job (without viewing the details of
  1935  	// the job posting), and is redirected to a different website to complete the
  1936  	// application. If a candidate performs this action, send only this event to
  1937  	// the service. Do not also send JobEventType.APPLICATION_START,
  1938  	// JobEventType.APPLICATION_FINISH or JobEventType.VIEW events.
  1939  	//   "APPLICATION_COMPANY_SUBMIT" - This event should be used when a company
  1940  	// submits an application on behalf of a job seeker. This event is intended for
  1941  	// use by staffing agencies attempting to place candidates.
  1942  	//   "BOOKMARK" - The job seeker or other entity interacting with the service
  1943  	// demonstrated an interest in a job by bookmarking or saving it.
  1944  	//   "NOTIFICATION" - The job seeker or other entity interacting with the
  1945  	// service was sent a notification, such as an email alert or device
  1946  	// notification, containing one or more jobs listings generated by the service.
  1947  	//   "HIRED" - The job seeker or other entity interacting with the service was
  1948  	// employed by the hiring entity (employer). Send this event only if the job
  1949  	// seeker was hired through an application that was initiated by a search
  1950  	// conducted through the Cloud Talent Solution service.
  1951  	//   "SENT_CV" - A recruiter or staffing agency submitted an application on
  1952  	// behalf of the candidate after interacting with the service to identify a
  1953  	// suitable job posting.
  1954  	//   "INTERVIEW_GRANTED" - The entity interacting with the service (for
  1955  	// example, the job seeker), was granted an initial interview by the hiring
  1956  	// entity (employer). This event should only be sent if the job seeker was
  1957  	// granted an interview as part of an application that was initiated by a
  1958  	// search conducted through / recommendation provided by the Cloud Talent
  1959  	// Solution service.
  1960  	//   "NOT_INTERESTED" - The job seeker or other entity interacting with the
  1961  	// service showed no interest in the job.
  1962  	Type string `json:"type,omitempty"`
  1963  	// ForceSendFields is a list of field names (e.g. "Jobs") to unconditionally
  1964  	// include in API requests. By default, fields with empty or default values are
  1965  	// omitted from API requests. See
  1966  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1967  	// details.
  1968  	ForceSendFields []string `json:"-"`
  1969  	// NullFields is a list of field names (e.g. "Jobs") to include in API requests
  1970  	// with the JSON null value. By default, fields with empty values are omitted
  1971  	// from API requests. See
  1972  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1973  	NullFields []string `json:"-"`
  1974  }
  1975  
  1976  func (s *JobEvent) MarshalJSON() ([]byte, error) {
  1977  	type NoMethod JobEvent
  1978  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1979  }
  1980  
  1981  // JobQuery: Input only. The query required to perform a search query.
  1982  type JobQuery struct {
  1983  	// CommuteFilter: Optional. Allows filtering jobs by commute time with
  1984  	// different travel methods (for example, driving or public transit). Note:
  1985  	// This only works with COMMUTE MODE. When specified,
  1986  	// [JobQuery.location_filters] is ignored. Currently we don't support sorting
  1987  	// by commute time.
  1988  	CommuteFilter *CommuteFilter `json:"commuteFilter,omitempty"`
  1989  	// CompanyDisplayNames: Optional. This filter specifies the company
  1990  	// Company.display_name of the jobs to search against. The company name must
  1991  	// match the value exactly. Alternatively, the value being searched for can be
  1992  	// wrapped in different match operators. `SUBSTRING_MATCH([value])` The company
  1993  	// name must contain a case insensitive substring match of the value. Using
  1994  	// this function may increase latency. Sample Value: `SUBSTRING_MATCH(google)`
  1995  	// `MULTI_WORD_TOKEN_MATCH([value])` The value will be treated as a multi word
  1996  	// token and the company name must contain a case insensitive match of the
  1997  	// value. Using this function may increase latency. Sample Value:
  1998  	// `MULTI_WORD_TOKEN_MATCH(google)` If a value isn't specified, jobs within the
  1999  	// search results are associated with any company. If multiple values are
  2000  	// specified, jobs within the search results may be associated with any of the
  2001  	// specified companies. At most 20 company display name filters are allowed.
  2002  	CompanyDisplayNames []string `json:"companyDisplayNames,omitempty"`
  2003  	// CompanyNames: Optional. This filter specifies the company entities to search
  2004  	// against. If a value isn't specified, jobs are searched for against all
  2005  	// companies. If multiple values are specified, jobs are searched against the
  2006  	// companies specified. The format is
  2007  	// "projects/{project_id}/companies/{company_id}", for example,
  2008  	// "projects/api-test-project/companies/foo". At most 20 company filters are
  2009  	// allowed.
  2010  	CompanyNames []string `json:"companyNames,omitempty"`
  2011  	// CompensationFilter: Optional. This search filter is applied only to
  2012  	// Job.compensation_info. For example, if the filter is specified as "Hourly
  2013  	// job with per-hour compensation > $15", only jobs meeting these criteria are
  2014  	// searched. If a filter isn't defined, all open jobs are searched.
  2015  	CompensationFilter *CompensationFilter `json:"compensationFilter,omitempty"`
  2016  	// CustomAttributeFilter: Optional. This filter specifies a structured syntax
  2017  	// to match against the Job.custom_attributes marked as `filterable`. The
  2018  	// syntax for this expression is a subset of SQL syntax. Supported operators
  2019  	// are: `=`, `!=`, `<`, `<=`, `>`, and `>=` where the left of the operator is a
  2020  	// custom field key and the right of the operator is a number or a quoted
  2021  	// string. You must escape backslash (\\) and quote (\") characters. Supported
  2022  	// functions are `LOWER([field_name])` to perform a case insensitive match and
  2023  	// `EMPTY([field_name])` to filter on the existence of a key. Boolean
  2024  	// expressions (AND/OR/NOT) are supported up to 3 levels of nesting (for
  2025  	// example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100 comparisons
  2026  	// or functions are allowed in the expression. The expression must be < 10000
  2027  	// bytes in length. Sample Query: `(LOWER(driving_license)="class \"a\"" OR
  2028  	// EMPTY(driving_license)) AND driving_years > 10`
  2029  	CustomAttributeFilter string `json:"customAttributeFilter,omitempty"`
  2030  	// DisableSpellCheck: Optional. This flag controls the spell-check feature. If
  2031  	// false, the service attempts to correct a misspelled query, for example,
  2032  	// "enginee" is corrected to "engineer". Defaults to false: a spell check is
  2033  	// performed.
  2034  	DisableSpellCheck bool `json:"disableSpellCheck,omitempty"`
  2035  	// EmploymentTypes: Optional. The employment type filter specifies the
  2036  	// employment type of jobs to search against, such as EmploymentType.FULL_TIME.
  2037  	// If a value is not specified, jobs in the search results includes any
  2038  	// employment type. If multiple values are specified, jobs in the search
  2039  	// results include any of the specified employment types.
  2040  	//
  2041  	// Possible values:
  2042  	//   "EMPLOYMENT_TYPE_UNSPECIFIED" - The default value if the employment type
  2043  	// is not specified.
  2044  	//   "FULL_TIME" - The job requires working a number of hours that constitute
  2045  	// full time employment, typically 40 or more hours per week.
  2046  	//   "PART_TIME" - The job entails working fewer hours than a full time job,
  2047  	// typically less than 40 hours a week.
  2048  	//   "CONTRACTOR" - The job is offered as a contracted, as opposed to a
  2049  	// salaried employee, position.
  2050  	//   "CONTRACT_TO_HIRE" - The job is offered as a contracted position with the
  2051  	// understanding that it's converted into a full-time position at the end of
  2052  	// the contract. Jobs of this type are also returned by a search for
  2053  	// EmploymentType.CONTRACTOR jobs.
  2054  	//   "TEMPORARY" - The job is offered as a temporary employment opportunity,
  2055  	// usually a short-term engagement.
  2056  	//   "INTERN" - The job is a fixed-term opportunity for students or entry-level
  2057  	// job seekers to obtain on-the-job training, typically offered as a summer
  2058  	// position.
  2059  	//   "VOLUNTEER" - The is an opportunity for an individual to volunteer, where
  2060  	// there's no expectation of compensation for the provided services.
  2061  	//   "PER_DIEM" - The job requires an employee to work on an as-needed basis
  2062  	// with a flexible schedule.
  2063  	//   "FLY_IN_FLY_OUT" - The job involves employing people in remote areas and
  2064  	// flying them temporarily to the work site instead of relocating employees and
  2065  	// their families permanently.
  2066  	//   "OTHER_EMPLOYMENT_TYPE" - The job does not fit any of the other listed
  2067  	// types.
  2068  	EmploymentTypes []string `json:"employmentTypes,omitempty"`
  2069  	// ExcludedJobs: Optional. This filter specifies a list of job names to be
  2070  	// excluded during search. At most 400 excluded job names are allowed.
  2071  	ExcludedJobs []string `json:"excludedJobs,omitempty"`
  2072  	// JobCategories: Optional. The category filter specifies the categories of
  2073  	// jobs to search against. See Category for more information. If a value is not
  2074  	// specified, jobs from any category are searched against. If multiple values
  2075  	// are specified, jobs from any of the specified categories are searched
  2076  	// against.
  2077  	//
  2078  	// Possible values:
  2079  	//   "JOB_CATEGORY_UNSPECIFIED" - The default value if the category isn't
  2080  	// specified.
  2081  	//   "ACCOUNTING_AND_FINANCE" - An accounting and finance job, such as an
  2082  	// Accountant.
  2083  	//   "ADMINISTRATIVE_AND_OFFICE" - An administrative and office job, such as an
  2084  	// Administrative Assistant.
  2085  	//   "ADVERTISING_AND_MARKETING" - An advertising and marketing job, such as
  2086  	// Marketing Manager.
  2087  	//   "ANIMAL_CARE" - An animal care job, such as Veterinarian.
  2088  	//   "ART_FASHION_AND_DESIGN" - An art, fashion, or design job, such as
  2089  	// Designer.
  2090  	//   "BUSINESS_OPERATIONS" - A business operations job, such as Business
  2091  	// Operations Manager.
  2092  	//   "CLEANING_AND_FACILITIES" - A cleaning and facilities job, such as
  2093  	// Custodial Staff.
  2094  	//   "COMPUTER_AND_IT" - A computer and IT job, such as Systems Administrator.
  2095  	//   "CONSTRUCTION" - A construction job, such as General Laborer.
  2096  	//   "CUSTOMER_SERVICE" - A customer service job, such s Cashier.
  2097  	//   "EDUCATION" - An education job, such as School Teacher.
  2098  	//   "ENTERTAINMENT_AND_TRAVEL" - An entertainment and travel job, such as
  2099  	// Flight Attendant.
  2100  	//   "FARMING_AND_OUTDOORS" - A farming or outdoor job, such as Park Ranger.
  2101  	//   "HEALTHCARE" - A healthcare job, such as Registered Nurse.
  2102  	//   "HUMAN_RESOURCES" - A human resources job, such as Human Resources
  2103  	// Director.
  2104  	//   "INSTALLATION_MAINTENANCE_AND_REPAIR" - An installation, maintenance, or
  2105  	// repair job, such as Electrician.
  2106  	//   "LEGAL" - A legal job, such as Law Clerk.
  2107  	//   "MANAGEMENT" - A management job, often used in conjunction with another
  2108  	// category, such as Store Manager.
  2109  	//   "MANUFACTURING_AND_WAREHOUSE" - A manufacturing or warehouse job, such as
  2110  	// Assembly Technician.
  2111  	//   "MEDIA_COMMUNICATIONS_AND_WRITING" - A media, communications, or writing
  2112  	// job, such as Media Relations.
  2113  	//   "OIL_GAS_AND_MINING" - An oil, gas or mining job, such as Offshore
  2114  	// Driller.
  2115  	//   "PERSONAL_CARE_AND_SERVICES" - A personal care and services job, such as
  2116  	// Hair Stylist.
  2117  	//   "PROTECTIVE_SERVICES" - A protective services job, such as Security Guard.
  2118  	//   "REAL_ESTATE" - A real estate job, such as Buyer's Agent.
  2119  	//   "RESTAURANT_AND_HOSPITALITY" - A restaurant and hospitality job, such as
  2120  	// Restaurant Server.
  2121  	//   "SALES_AND_RETAIL" - A sales and/or retail job, such Sales Associate.
  2122  	//   "SCIENCE_AND_ENGINEERING" - A science and engineering job, such as Lab
  2123  	// Technician.
  2124  	//   "SOCIAL_SERVICES_AND_NON_PROFIT" - A social services or non-profit job,
  2125  	// such as Case Worker.
  2126  	//   "SPORTS_FITNESS_AND_RECREATION" - A sports, fitness, or recreation job,
  2127  	// such as Personal Trainer.
  2128  	//   "TRANSPORTATION_AND_LOGISTICS" - A transportation or logistics job, such
  2129  	// as Truck Driver.
  2130  	JobCategories []string `json:"jobCategories,omitempty"`
  2131  	// LanguageCodes: Optional. This filter specifies the locale of jobs to search
  2132  	// against, for example, "en-US". If a value isn't specified, the search
  2133  	// results can contain jobs in any locale. Language codes should be in BCP-47
  2134  	// format, such as "en-US" or "sr-Latn". For more information, see Tags for
  2135  	// Identifying Languages (https://tools.ietf.org/html/bcp47). At most 10
  2136  	// language code filters are allowed.
  2137  	LanguageCodes []string `json:"languageCodes,omitempty"`
  2138  	// LocationFilters: Optional. The location filter specifies geo-regions
  2139  	// containing the jobs to search against. See LocationFilter for more
  2140  	// information. If a location value isn't specified, jobs fitting the other
  2141  	// search criteria are retrieved regardless of where they're located. If
  2142  	// multiple values are specified, jobs are retrieved from any of the specified
  2143  	// locations. If different values are specified for the
  2144  	// LocationFilter.distance_in_miles parameter, the maximum provided distance is
  2145  	// used for all locations. At most 5 location filters are allowed.
  2146  	LocationFilters []*LocationFilter `json:"locationFilters,omitempty"`
  2147  	// PublishTimeRange: Optional. Jobs published within a range specified by this
  2148  	// filter are searched against.
  2149  	PublishTimeRange *TimestampRange `json:"publishTimeRange,omitempty"`
  2150  	// Query: Optional. The query string that matches against the job title,
  2151  	// description, and location fields. The maximum number of allowed characters
  2152  	// is 255.
  2153  	Query string `json:"query,omitempty"`
  2154  	// QueryLanguageCode: The language code of query. For example, "en-US". This
  2155  	// field helps to better interpret the query. If a value isn't specified, the
  2156  	// query language code is automatically detected, which may not be accurate.
  2157  	// Language code should be in BCP-47 format, such as "en-US" or "sr-Latn". For
  2158  	// more information, see Tags for Identifying Languages
  2159  	// (https://tools.ietf.org/html/bcp47).
  2160  	QueryLanguageCode string `json:"queryLanguageCode,omitempty"`
  2161  	// ForceSendFields is a list of field names (e.g. "CommuteFilter") to
  2162  	// unconditionally include in API requests. By default, fields with empty or
  2163  	// default values are omitted from API requests. See
  2164  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2165  	// details.
  2166  	ForceSendFields []string `json:"-"`
  2167  	// NullFields is a list of field names (e.g. "CommuteFilter") to include in API
  2168  	// requests with the JSON null value. By default, fields with empty values are
  2169  	// omitted from API requests. See
  2170  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2171  	NullFields []string `json:"-"`
  2172  }
  2173  
  2174  func (s *JobQuery) MarshalJSON() ([]byte, error) {
  2175  	type NoMethod JobQuery
  2176  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2177  }
  2178  
  2179  // LatLng: An object that represents a latitude/longitude pair. This is
  2180  // expressed as a pair of doubles to represent degrees latitude and degrees
  2181  // longitude. Unless specified otherwise, this object must conform to the WGS84
  2182  // standard. Values must be within normalized ranges.
  2183  type LatLng struct {
  2184  	// Latitude: The latitude in degrees. It must be in the range [-90.0, +90.0].
  2185  	Latitude float64 `json:"latitude,omitempty"`
  2186  	// Longitude: The longitude in degrees. It must be in the range [-180.0,
  2187  	// +180.0].
  2188  	Longitude float64 `json:"longitude,omitempty"`
  2189  	// ForceSendFields is a list of field names (e.g. "Latitude") to
  2190  	// unconditionally include in API requests. By default, fields with empty or
  2191  	// default values are omitted from API requests. See
  2192  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2193  	// details.
  2194  	ForceSendFields []string `json:"-"`
  2195  	// NullFields is a list of field names (e.g. "Latitude") to include in API
  2196  	// requests with the JSON null value. By default, fields with empty values are
  2197  	// omitted from API requests. See
  2198  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2199  	NullFields []string `json:"-"`
  2200  }
  2201  
  2202  func (s *LatLng) MarshalJSON() ([]byte, error) {
  2203  	type NoMethod LatLng
  2204  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2205  }
  2206  
  2207  func (s *LatLng) UnmarshalJSON(data []byte) error {
  2208  	type NoMethod LatLng
  2209  	var s1 struct {
  2210  		Latitude  gensupport.JSONFloat64 `json:"latitude"`
  2211  		Longitude gensupport.JSONFloat64 `json:"longitude"`
  2212  		*NoMethod
  2213  	}
  2214  	s1.NoMethod = (*NoMethod)(s)
  2215  	if err := json.Unmarshal(data, &s1); err != nil {
  2216  		return err
  2217  	}
  2218  	s.Latitude = float64(s1.Latitude)
  2219  	s.Longitude = float64(s1.Longitude)
  2220  	return nil
  2221  }
  2222  
  2223  // ListCompaniesResponse: Output only. The List companies response object.
  2224  type ListCompaniesResponse struct {
  2225  	// Companies: Companies for the current client.
  2226  	Companies []*Company `json:"companies,omitempty"`
  2227  	// Metadata: Additional information for the API invocation, such as the request
  2228  	// tracking id.
  2229  	Metadata *ResponseMetadata `json:"metadata,omitempty"`
  2230  	// NextPageToken: A token to retrieve the next page of results.
  2231  	NextPageToken string `json:"nextPageToken,omitempty"`
  2232  
  2233  	// ServerResponse contains the HTTP response code and headers from the server.
  2234  	googleapi.ServerResponse `json:"-"`
  2235  	// ForceSendFields is a list of field names (e.g. "Companies") to
  2236  	// unconditionally include in API requests. By default, fields with empty or
  2237  	// default values are omitted from API requests. See
  2238  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2239  	// details.
  2240  	ForceSendFields []string `json:"-"`
  2241  	// NullFields is a list of field names (e.g. "Companies") to include in API
  2242  	// requests with the JSON null value. By default, fields with empty values are
  2243  	// omitted from API requests. See
  2244  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2245  	NullFields []string `json:"-"`
  2246  }
  2247  
  2248  func (s *ListCompaniesResponse) MarshalJSON() ([]byte, error) {
  2249  	type NoMethod ListCompaniesResponse
  2250  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2251  }
  2252  
  2253  // ListJobsResponse: Output only. List jobs response.
  2254  type ListJobsResponse struct {
  2255  	// Jobs: The Jobs for a given company. The maximum number of items returned is
  2256  	// based on the limit field provided in the request.
  2257  	Jobs []*Job `json:"jobs,omitempty"`
  2258  	// Metadata: Additional information for the API invocation, such as the request
  2259  	// tracking id.
  2260  	Metadata *ResponseMetadata `json:"metadata,omitempty"`
  2261  	// NextPageToken: A token to retrieve the next page of results.
  2262  	NextPageToken string `json:"nextPageToken,omitempty"`
  2263  
  2264  	// ServerResponse contains the HTTP response code and headers from the server.
  2265  	googleapi.ServerResponse `json:"-"`
  2266  	// ForceSendFields is a list of field names (e.g. "Jobs") to unconditionally
  2267  	// include in API requests. By default, fields with empty or default values are
  2268  	// omitted from API requests. See
  2269  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2270  	// details.
  2271  	ForceSendFields []string `json:"-"`
  2272  	// NullFields is a list of field names (e.g. "Jobs") to include in API requests
  2273  	// with the JSON null value. By default, fields with empty values are omitted
  2274  	// from API requests. See
  2275  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2276  	NullFields []string `json:"-"`
  2277  }
  2278  
  2279  func (s *ListJobsResponse) MarshalJSON() ([]byte, error) {
  2280  	type NoMethod ListJobsResponse
  2281  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2282  }
  2283  
  2284  // Location: Output only. A resource that represents a location with full
  2285  // geographic information.
  2286  type Location struct {
  2287  	// LatLng: An object representing a latitude/longitude pair.
  2288  	LatLng *LatLng `json:"latLng,omitempty"`
  2289  	// LocationType: The type of a location, which corresponds to the address lines
  2290  	// field of PostalAddress. For example, "Downtown, Atlanta, GA, USA" has a type
  2291  	// of LocationType#NEIGHBORHOOD, and "Kansas City, KS, USA" has a type of
  2292  	// LocationType#LOCALITY.
  2293  	//
  2294  	// Possible values:
  2295  	//   "LOCATION_TYPE_UNSPECIFIED" - Default value if the type is not specified.
  2296  	//   "COUNTRY" - A country level location.
  2297  	//   "ADMINISTRATIVE_AREA" - A state or equivalent level location.
  2298  	//   "SUB_ADMINISTRATIVE_AREA" - A county or equivalent level location.
  2299  	//   "LOCALITY" - A city or equivalent level location.
  2300  	//   "POSTAL_CODE" - A postal code level location.
  2301  	//   "SUB_LOCALITY" - A sublocality is a subdivision of a locality, for example
  2302  	// a city borough, ward, or arrondissement. Sublocalities are usually
  2303  	// recognized by a local political authority. For example, Manhattan and
  2304  	// Brooklyn are recognized as boroughs by the City of New York, and are
  2305  	// therefore modeled as sublocalities.
  2306  	//   "SUB_LOCALITY_1" - A district or equivalent level location.
  2307  	//   "SUB_LOCALITY_2" - A smaller district or equivalent level display.
  2308  	//   "NEIGHBORHOOD" - A neighborhood level location.
  2309  	//   "STREET_ADDRESS" - A street address level location.
  2310  	LocationType string `json:"locationType,omitempty"`
  2311  	// PostalAddress: Postal address of the location that includes human readable
  2312  	// information, such as postal delivery and payments addresses. Given a postal
  2313  	// address, a postal service can deliver items to a premises, P.O. Box, or
  2314  	// other delivery location.
  2315  	PostalAddress *PostalAddress `json:"postalAddress,omitempty"`
  2316  	// RadiusInMiles: Radius in miles of the job location. This value is derived
  2317  	// from the location bounding box in which a circle with the specified radius
  2318  	// centered from LatLng covers the area associated with the job location. For
  2319  	// example, currently, "Mountain View, CA, USA" has a radius of 6.17 miles.
  2320  	RadiusInMiles float64 `json:"radiusInMiles,omitempty"`
  2321  	// ForceSendFields is a list of field names (e.g. "LatLng") to unconditionally
  2322  	// include in API requests. By default, fields with empty or default values are
  2323  	// omitted from API requests. See
  2324  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2325  	// details.
  2326  	ForceSendFields []string `json:"-"`
  2327  	// NullFields is a list of field names (e.g. "LatLng") to include in API
  2328  	// requests with the JSON null value. By default, fields with empty values are
  2329  	// omitted from API requests. See
  2330  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2331  	NullFields []string `json:"-"`
  2332  }
  2333  
  2334  func (s *Location) MarshalJSON() ([]byte, error) {
  2335  	type NoMethod Location
  2336  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2337  }
  2338  
  2339  func (s *Location) UnmarshalJSON(data []byte) error {
  2340  	type NoMethod Location
  2341  	var s1 struct {
  2342  		RadiusInMiles gensupport.JSONFloat64 `json:"radiusInMiles"`
  2343  		*NoMethod
  2344  	}
  2345  	s1.NoMethod = (*NoMethod)(s)
  2346  	if err := json.Unmarshal(data, &s1); err != nil {
  2347  		return err
  2348  	}
  2349  	s.RadiusInMiles = float64(s1.RadiusInMiles)
  2350  	return nil
  2351  }
  2352  
  2353  // LocationFilter: Input only. Geographic region of the search.
  2354  type LocationFilter struct {
  2355  	// Address: Optional. The address name, such as "Mountain View" or "Bay Area".
  2356  	Address string `json:"address,omitempty"`
  2357  	// DistanceInMiles: Optional. The distance_in_miles is applied when the
  2358  	// location being searched for is identified as a city or smaller. When the
  2359  	// location being searched for is a state or larger, this field is ignored.
  2360  	DistanceInMiles float64 `json:"distanceInMiles,omitempty"`
  2361  	// LatLng: Optional. The latitude and longitude of the geographic center from
  2362  	// which to search. This field's ignored if `address` is provided.
  2363  	LatLng *LatLng `json:"latLng,omitempty"`
  2364  	// RegionCode: Optional. CLDR region code of the country/region. This field may
  2365  	// be used in two ways: 1) If telecommute preference is not set, this field is
  2366  	// used address ambiguity of the user-input address. For example, "Liverpool"
  2367  	// may refer to "Liverpool, NY, US" or "Liverpool, UK". This region code biases
  2368  	// the address resolution toward a specific country or territory. If this field
  2369  	// is not set, address resolution is biased toward the United States by
  2370  	// default. 2) If telecommute preference is set to TELECOMMUTE_ALLOWED, the
  2371  	// telecommute location filter will be limited to the region specified in this
  2372  	// field. If this field is not set, the telecommute job locations will not be
  2373  	// limited. See
  2374  	// https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_information.html
  2375  	// for details. Example: "CH" for Switzerland.
  2376  	RegionCode string `json:"regionCode,omitempty"`
  2377  	// TelecommutePreference: Optional. Allows the client to return jobs without a
  2378  	// set location, specifically, telecommuting jobs (telecommuting is considered
  2379  	// by the service as a special location). Job.posting_region indicates if a job
  2380  	// permits telecommuting. If this field is set to
  2381  	// TelecommutePreference.TELECOMMUTE_ALLOWED, telecommuting jobs are searched,
  2382  	// and address and lat_lng are ignored. If not set or set to
  2383  	// TelecommutePreference.TELECOMMUTE_EXCLUDED, the telecommute status of the
  2384  	// jobs is ignored. Jobs that have PostingRegion.TELECOMMUTE and have
  2385  	// additional Job.addresses may still be matched based on other location
  2386  	// filters using address or latlng. This filter can be used by itself to search
  2387  	// exclusively for telecommuting jobs, or it can be combined with another
  2388  	// location filter to search for a combination of job locations, such as
  2389  	// "Mountain View" or "telecommuting" jobs. However, when used in combination
  2390  	// with other location filters, telecommuting jobs can be treated as less
  2391  	// relevant than other jobs in the search response.
  2392  	//
  2393  	// Possible values:
  2394  	//   "TELECOMMUTE_PREFERENCE_UNSPECIFIED" - Default value if the telecommute
  2395  	// preference is not specified.
  2396  	//   "TELECOMMUTE_EXCLUDED" - Deprecated: Ignore telecommute status of jobs.
  2397  	// Use TELECOMMUTE_JOBS_EXCLUDED if want to exclude telecommute jobs.
  2398  	//   "TELECOMMUTE_ALLOWED" - Allow telecommute jobs.
  2399  	//   "TELECOMMUTE_JOBS_EXCLUDED" - Exclude telecommute jobs.
  2400  	TelecommutePreference string `json:"telecommutePreference,omitempty"`
  2401  	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
  2402  	// include in API requests. By default, fields with empty or default values are
  2403  	// omitted from API requests. See
  2404  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2405  	// details.
  2406  	ForceSendFields []string `json:"-"`
  2407  	// NullFields is a list of field names (e.g. "Address") to include in API
  2408  	// requests with the JSON null value. By default, fields with empty values are
  2409  	// omitted from API requests. See
  2410  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2411  	NullFields []string `json:"-"`
  2412  }
  2413  
  2414  func (s *LocationFilter) MarshalJSON() ([]byte, error) {
  2415  	type NoMethod LocationFilter
  2416  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2417  }
  2418  
  2419  func (s *LocationFilter) UnmarshalJSON(data []byte) error {
  2420  	type NoMethod LocationFilter
  2421  	var s1 struct {
  2422  		DistanceInMiles gensupport.JSONFloat64 `json:"distanceInMiles"`
  2423  		*NoMethod
  2424  	}
  2425  	s1.NoMethod = (*NoMethod)(s)
  2426  	if err := json.Unmarshal(data, &s1); err != nil {
  2427  		return err
  2428  	}
  2429  	s.DistanceInMiles = float64(s1.DistanceInMiles)
  2430  	return nil
  2431  }
  2432  
  2433  // MatchingJob: Output only. Job entry with metadata inside SearchJobsResponse.
  2434  type MatchingJob struct {
  2435  	// CommuteInfo: Commute information which is generated based on specified
  2436  	// CommuteFilter.
  2437  	CommuteInfo *CommuteInfo `json:"commuteInfo,omitempty"`
  2438  	// Job: Job resource that matches the specified SearchJobsRequest.
  2439  	Job *Job `json:"job,omitempty"`
  2440  	// JobSummary: A summary of the job with core information that's displayed on
  2441  	// the search results listing page.
  2442  	JobSummary string `json:"jobSummary,omitempty"`
  2443  	// JobTitleSnippet: Contains snippets of text from the Job.job_title field most
  2444  	// closely matching a search query's keywords, if available. The matching query
  2445  	// keywords are enclosed in HTML bold tags.
  2446  	JobTitleSnippet string `json:"jobTitleSnippet,omitempty"`
  2447  	// SearchTextSnippet: Contains snippets of text from the Job.description and
  2448  	// similar fields that most closely match a search query's keywords, if
  2449  	// available. All HTML tags in the original fields are stripped when returned
  2450  	// in this field, and matching query keywords are enclosed in HTML bold tags.
  2451  	SearchTextSnippet string `json:"searchTextSnippet,omitempty"`
  2452  	// ForceSendFields is a list of field names (e.g. "CommuteInfo") to
  2453  	// unconditionally include in API requests. By default, fields with empty or
  2454  	// default values are omitted from API requests. See
  2455  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2456  	// details.
  2457  	ForceSendFields []string `json:"-"`
  2458  	// NullFields is a list of field names (e.g. "CommuteInfo") to include in API
  2459  	// requests with the JSON null value. By default, fields with empty values are
  2460  	// omitted from API requests. See
  2461  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2462  	NullFields []string `json:"-"`
  2463  }
  2464  
  2465  func (s *MatchingJob) MarshalJSON() ([]byte, error) {
  2466  	type NoMethod MatchingJob
  2467  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2468  }
  2469  
  2470  // MendelDebugInput: Message representing input to a Mendel server for debug
  2471  // forcing. See go/mendel-debug-forcing for more details. Next ID: 2
  2472  type MendelDebugInput struct {
  2473  	// NamespacedDebugInput: When a request spans multiple servers, a
  2474  	// MendelDebugInput may travel with the request and take effect in all the
  2475  	// servers. This field is a map of namespaces to NamespacedMendelDebugInput
  2476  	// protos. In a single server, up to two NamespacedMendelDebugInput protos are
  2477  	// applied: 1. NamespacedMendelDebugInput with the global namespace (key ==
  2478  	// ""). 2. NamespacedMendelDebugInput with the server's namespace. When both
  2479  	// NamespacedMendelDebugInput protos are present, they are merged. See
  2480  	// go/mendel-debug-forcing for more details.
  2481  	NamespacedDebugInput map[string]NamespacedDebugInput `json:"namespacedDebugInput,omitempty"`
  2482  	// ForceSendFields is a list of field names (e.g. "NamespacedDebugInput") to
  2483  	// unconditionally include in API requests. By default, fields with empty or
  2484  	// default values are omitted from API requests. See
  2485  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2486  	// details.
  2487  	ForceSendFields []string `json:"-"`
  2488  	// NullFields is a list of field names (e.g. "NamespacedDebugInput") to include
  2489  	// in API requests with the JSON null value. By default, fields with empty
  2490  	// values are omitted from API requests. See
  2491  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2492  	NullFields []string `json:"-"`
  2493  }
  2494  
  2495  func (s *MendelDebugInput) MarshalJSON() ([]byte, error) {
  2496  	type NoMethod MendelDebugInput
  2497  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2498  }
  2499  
  2500  // Money: Represents an amount of money with its currency type.
  2501  type Money struct {
  2502  	// CurrencyCode: The three-letter currency code defined in ISO 4217.
  2503  	CurrencyCode string `json:"currencyCode,omitempty"`
  2504  	// Nanos: Number of nano (10^-9) units of the amount. The value must be between
  2505  	// -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos`
  2506  	// must be positive or zero. If `units` is zero, `nanos` can be positive, zero,
  2507  	// or negative. If `units` is negative, `nanos` must be negative or zero. For
  2508  	// example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
  2509  	Nanos int64 `json:"nanos,omitempty"`
  2510  	// Units: The whole units of the amount. For example if `currencyCode` is
  2511  	// "USD", then 1 unit is one US dollar.
  2512  	Units int64 `json:"units,omitempty,string"`
  2513  	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
  2514  	// unconditionally include in API requests. By default, fields with empty or
  2515  	// default values are omitted from API requests. See
  2516  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2517  	// details.
  2518  	ForceSendFields []string `json:"-"`
  2519  	// NullFields is a list of field names (e.g. "CurrencyCode") to include in API
  2520  	// requests with the JSON null value. By default, fields with empty values are
  2521  	// omitted from API requests. See
  2522  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2523  	NullFields []string `json:"-"`
  2524  }
  2525  
  2526  func (s *Money) MarshalJSON() ([]byte, error) {
  2527  	type NoMethod Money
  2528  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2529  }
  2530  
  2531  // NamespacedDebugInput: Next ID: 16
  2532  type NamespacedDebugInput struct {
  2533  	// AbsolutelyForcedExpNames: Set of experiment names to be absolutely forced.
  2534  	// These experiments will be forced without evaluating the conditions.
  2535  	AbsolutelyForcedExpNames []string `json:"absolutelyForcedExpNames,omitempty"`
  2536  	// AbsolutelyForcedExpTags: Set of experiment tags to be absolutely forced. The
  2537  	// experiments with these tags will be forced without evaluating the
  2538  	// conditions.
  2539  	AbsolutelyForcedExpTags []string `json:"absolutelyForcedExpTags,omitempty"`
  2540  	// AbsolutelyForcedExps: Set of experiment ids to be absolutely forced. These
  2541  	// ids will be forced without evaluating the conditions.
  2542  	AbsolutelyForcedExps []int64 `json:"absolutelyForcedExps,omitempty"`
  2543  	// ConditionallyForcedExpNames: Set of experiment names to be conditionally
  2544  	// forced. These experiments will be forced only if their conditions and their
  2545  	// parent domain's conditions are true.
  2546  	ConditionallyForcedExpNames []string `json:"conditionallyForcedExpNames,omitempty"`
  2547  	// ConditionallyForcedExpTags: Set of experiment tags to be conditionally
  2548  	// forced. The experiments with these tags will be forced only if their
  2549  	// conditions and their parent domain's conditions are true.
  2550  	ConditionallyForcedExpTags []string `json:"conditionallyForcedExpTags,omitempty"`
  2551  	// ConditionallyForcedExps: Set of experiment ids to be conditionally forced.
  2552  	// These ids will be forced only if their conditions and their parent domain's
  2553  	// conditions are true.
  2554  	ConditionallyForcedExps []int64 `json:"conditionallyForcedExps,omitempty"`
  2555  	// DisableAutomaticEnrollmentSelection: If true, disable automatic enrollment
  2556  	// selection (at all diversion points). Automatic enrollment selection means
  2557  	// experiment selection process based on the experiment's automatic enrollment
  2558  	// condition. This does not disable selection of forced experiments. Setting
  2559  	// this field to false does not change anything in the experiment selection
  2560  	// process.
  2561  	DisableAutomaticEnrollmentSelection bool `json:"disableAutomaticEnrollmentSelection,omitempty"`
  2562  	// DisableExpNames: Set of experiment names to be disabled. If an experiment is
  2563  	// disabled, it is never selected nor forced. If an aggregate experiment is
  2564  	// disabled, its partitions are disabled together. If an experiment with an
  2565  	// enrollment is disabled, the enrollment is disabled together. If a name
  2566  	// corresponds to a domain, the domain itself and all descendant experiments
  2567  	// and domains are disabled together.
  2568  	DisableExpNames []string `json:"disableExpNames,omitempty"`
  2569  	// DisableExpTags: Set of experiment tags to be disabled. All experiments that
  2570  	// are tagged with one or more of these tags are disabled. If an experiment is
  2571  	// disabled, it is never selected nor forced. If an aggregate experiment is
  2572  	// disabled, its partitions are disabled together. If an experiment with an
  2573  	// enrollment is disabled, the enrollment is disabled together.
  2574  	DisableExpTags []string `json:"disableExpTags,omitempty"`
  2575  	// DisableExps: Set of experiment ids to be disabled. If an experiment is
  2576  	// disabled, it is never selected nor forced. If an aggregate experiment is
  2577  	// disabled, its partitions are disabled together. If an experiment with an
  2578  	// enrollment is disabled, the enrollment is disabled together. If an ID
  2579  	// corresponds to a domain, the domain itself and all descendant experiments
  2580  	// and domains are disabled together.
  2581  	DisableExps []int64 `json:"disableExps,omitempty"`
  2582  	// DisableManualEnrollmentSelection: If true, disable manual enrollment
  2583  	// selection (at all diversion points). Manual enrollment selection means
  2584  	// experiment selection process based on the request's manual enrollment states
  2585  	// (a.k.a. opt-in experiments). This does not disable selection of forced
  2586  	// experiments. Setting this field to false does not change anything in the
  2587  	// experiment selection process.
  2588  	DisableManualEnrollmentSelection bool `json:"disableManualEnrollmentSelection,omitempty"`
  2589  	// DisableOrganicSelection: If true, disable organic experiment selection (at
  2590  	// all diversion points). Organic selection means experiment selection process
  2591  	// based on traffic allocation and diversion condition evaluation. This does
  2592  	// not disable selection of forced experiments. This is useful in cases when it
  2593  	// is not known whether experiment selection behavior is responsible for a
  2594  	// error or breakage. Disabling organic selection may help to isolate the cause
  2595  	// of a given problem. Setting this field to false does not change anything in
  2596  	// the experiment selection process.
  2597  	DisableOrganicSelection bool `json:"disableOrganicSelection,omitempty"`
  2598  	// ForcedFlags: Flags to force in a particular experiment state. Map from flag
  2599  	// name to flag value.
  2600  	ForcedFlags map[string]string `json:"forcedFlags,omitempty"`
  2601  	// ForcedRollouts: Rollouts to force in a particular experiment state. Map from
  2602  	// rollout name to rollout value.
  2603  	ForcedRollouts map[string]bool `json:"forcedRollouts,omitempty"`
  2604  	// TestingMode: Sets different testing modes. See the documentation in the
  2605  	// TestingMode message for more information.
  2606  	//
  2607  	// Possible values:
  2608  	//   "TESTING_MODE_UNSPECIFIED"
  2609  	//   "TESTING_MODE_ALL_OFF"
  2610  	//   "TESTING_MODE_ALL_ON"
  2611  	TestingMode string `json:"testingMode,omitempty"`
  2612  	// ForceSendFields is a list of field names (e.g. "AbsolutelyForcedExpNames")
  2613  	// to unconditionally include in API requests. By default, fields with empty or
  2614  	// default values are omitted from API requests. See
  2615  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2616  	// details.
  2617  	ForceSendFields []string `json:"-"`
  2618  	// NullFields is a list of field names (e.g. "AbsolutelyForcedExpNames") to
  2619  	// include in API requests with the JSON null value. By default, fields with
  2620  	// empty values are omitted from API requests. See
  2621  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2622  	NullFields []string `json:"-"`
  2623  }
  2624  
  2625  func (s *NamespacedDebugInput) MarshalJSON() ([]byte, error) {
  2626  	type NoMethod NamespacedDebugInput
  2627  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2628  }
  2629  
  2630  // NumericBucketingOption: Input only. Use this field to specify bucketing
  2631  // option for the histogram search response.
  2632  type NumericBucketingOption struct {
  2633  	// BucketBounds: Required. Two adjacent values form a histogram bucket. Values
  2634  	// should be in ascending order. For example, if [5, 10, 15] are provided, four
  2635  	// buckets are created: (-inf, 5), 5, 10), [10, 15), [15, inf). At most 20
  2636  	// [buckets_bound is supported.
  2637  	BucketBounds []float64 `json:"bucketBounds,omitempty"`
  2638  	// RequiresMinMax: Optional. If set to true, the histogram result includes
  2639  	// minimum/maximum value of the numeric field.
  2640  	RequiresMinMax bool `json:"requiresMinMax,omitempty"`
  2641  	// ForceSendFields is a list of field names (e.g. "BucketBounds") to
  2642  	// unconditionally include in API requests. By default, fields with empty or
  2643  	// default values are omitted from API requests. See
  2644  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2645  	// details.
  2646  	ForceSendFields []string `json:"-"`
  2647  	// NullFields is a list of field names (e.g. "BucketBounds") to include in API
  2648  	// requests with the JSON null value. By default, fields with empty values are
  2649  	// omitted from API requests. See
  2650  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2651  	NullFields []string `json:"-"`
  2652  }
  2653  
  2654  func (s *NumericBucketingOption) MarshalJSON() ([]byte, error) {
  2655  	type NoMethod NumericBucketingOption
  2656  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2657  }
  2658  
  2659  func (s *NumericBucketingOption) UnmarshalJSON(data []byte) error {
  2660  	type NoMethod NumericBucketingOption
  2661  	var s1 struct {
  2662  		BucketBounds []gensupport.JSONFloat64 `json:"bucketBounds"`
  2663  		*NoMethod
  2664  	}
  2665  	s1.NoMethod = (*NoMethod)(s)
  2666  	if err := json.Unmarshal(data, &s1); err != nil {
  2667  		return err
  2668  	}
  2669  	s.BucketBounds = make([]float64, len(s1.BucketBounds))
  2670  	for i := range s1.BucketBounds {
  2671  		s.BucketBounds[i] = float64(s1.BucketBounds[i])
  2672  	}
  2673  	return nil
  2674  }
  2675  
  2676  // NumericBucketingResult: Output only. Custom numeric bucketing result.
  2677  type NumericBucketingResult struct {
  2678  	// Counts: Count within each bucket. Its size is the length of
  2679  	// NumericBucketingOption.bucket_bounds plus 1.
  2680  	Counts []*BucketizedCount `json:"counts,omitempty"`
  2681  	// MaxValue: Stores the maximum value of the numeric field. Is populated only
  2682  	// if [NumericBucketingOption.requires_min_max] is set to true.
  2683  	MaxValue float64 `json:"maxValue,omitempty"`
  2684  	// MinValue: Stores the minimum value of the numeric field. Will be populated
  2685  	// only if [NumericBucketingOption.requires_min_max] is set to true.
  2686  	MinValue float64 `json:"minValue,omitempty"`
  2687  	// ForceSendFields is a list of field names (e.g. "Counts") to unconditionally
  2688  	// include in API requests. By default, fields with empty or default values are
  2689  	// omitted from API requests. See
  2690  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2691  	// details.
  2692  	ForceSendFields []string `json:"-"`
  2693  	// NullFields is a list of field names (e.g. "Counts") to include in API
  2694  	// requests with the JSON null value. By default, fields with empty values are
  2695  	// omitted from API requests. See
  2696  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2697  	NullFields []string `json:"-"`
  2698  }
  2699  
  2700  func (s *NumericBucketingResult) MarshalJSON() ([]byte, error) {
  2701  	type NoMethod NumericBucketingResult
  2702  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2703  }
  2704  
  2705  func (s *NumericBucketingResult) UnmarshalJSON(data []byte) error {
  2706  	type NoMethod NumericBucketingResult
  2707  	var s1 struct {
  2708  		MaxValue gensupport.JSONFloat64 `json:"maxValue"`
  2709  		MinValue gensupport.JSONFloat64 `json:"minValue"`
  2710  		*NoMethod
  2711  	}
  2712  	s1.NoMethod = (*NoMethod)(s)
  2713  	if err := json.Unmarshal(data, &s1); err != nil {
  2714  		return err
  2715  	}
  2716  	s.MaxValue = float64(s1.MaxValue)
  2717  	s.MinValue = float64(s1.MinValue)
  2718  	return nil
  2719  }
  2720  
  2721  // Operation: This resource represents a long-running operation that is the
  2722  // result of a network API call.
  2723  type Operation struct {
  2724  	// Done: If the value is `false`, it means the operation is still in progress.
  2725  	// If `true`, the operation is completed, and either `error` or `response` is
  2726  	// available.
  2727  	Done bool `json:"done,omitempty"`
  2728  	// Error: The error result of the operation in case of failure or cancellation.
  2729  	Error *Status `json:"error,omitempty"`
  2730  	// Metadata: Service-specific metadata associated with the operation. It
  2731  	// typically contains progress information and common metadata such as create
  2732  	// time. Some services might not provide such metadata. Any method that returns
  2733  	// a long-running operation should document the metadata type, if any.
  2734  	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
  2735  	// Name: The server-assigned name, which is only unique within the same service
  2736  	// that originally returns it. If you use the default HTTP mapping, the `name`
  2737  	// should be a resource name ending with `operations/{unique_id}`.
  2738  	Name string `json:"name,omitempty"`
  2739  	// Response: The normal, successful response of the operation. If the original
  2740  	// method returns no data on success, such as `Delete`, the response is
  2741  	// `google.protobuf.Empty`. If the original method is standard
  2742  	// `Get`/`Create`/`Update`, the response should be the resource. For other
  2743  	// methods, the response should have the type `XxxResponse`, where `Xxx` is the
  2744  	// original method name. For example, if the original method name is
  2745  	// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
  2746  	Response googleapi.RawMessage `json:"response,omitempty"`
  2747  
  2748  	// ServerResponse contains the HTTP response code and headers from the server.
  2749  	googleapi.ServerResponse `json:"-"`
  2750  	// ForceSendFields is a list of field names (e.g. "Done") to unconditionally
  2751  	// include in API requests. By default, fields with empty or default values are
  2752  	// omitted from API requests. See
  2753  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2754  	// details.
  2755  	ForceSendFields []string `json:"-"`
  2756  	// NullFields is a list of field names (e.g. "Done") to include in API requests
  2757  	// with the JSON null value. By default, fields with empty values are omitted
  2758  	// from API requests. See
  2759  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2760  	NullFields []string `json:"-"`
  2761  }
  2762  
  2763  func (s *Operation) MarshalJSON() ([]byte, error) {
  2764  	type NoMethod Operation
  2765  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2766  }
  2767  
  2768  // PostalAddress: Represents a postal address, e.g. for postal delivery or
  2769  // payments addresses. Given a postal address, a postal service can deliver
  2770  // items to a premise, P.O. Box or similar. It is not intended to model
  2771  // geographical locations (roads, towns, mountains). In typical usage an
  2772  // address would be created via user input or from importing existing data,
  2773  // depending on the type of process. Advice on address input / editing: - Use
  2774  // an internationalization-ready address widget such as
  2775  // https://github.com/google/libaddressinput) - Users should not be presented
  2776  // with UI elements for input or editing of fields outside countries where that
  2777  // field is used. For more guidance on how to use this schema, please see:
  2778  // https://support.google.com/business/answer/6397478
  2779  type PostalAddress struct {
  2780  	// AddressLines: Unstructured address lines describing the lower levels of an
  2781  	// address. Because values in address_lines do not have type information and
  2782  	// may sometimes contain multiple values in a single field (e.g. "Austin, TX"),
  2783  	// it is important that the line order is clear. The order of address lines
  2784  	// should be "envelope order" for the country/region of the address. In places
  2785  	// where this can vary (e.g. Japan), address_language is used to make it
  2786  	// explicit (e.g. "ja" for large-to-small ordering and "ja-Latn" or "en" for
  2787  	// small-to-large). This way, the most specific line of an address can be
  2788  	// selected based on the language. The minimum permitted structural
  2789  	// representation of an address consists of a region_code with all remaining
  2790  	// information placed in the address_lines. It would be possible to format such
  2791  	// an address very approximately without geocoding, but no semantic reasoning
  2792  	// could be made about any of the address components until it was at least
  2793  	// partially resolved. Creating an address only containing a region_code and
  2794  	// address_lines, and then geocoding is the recommended way to handle
  2795  	// completely unstructured addresses (as opposed to guessing which parts of the
  2796  	// address should be localities or administrative areas).
  2797  	AddressLines []string `json:"addressLines,omitempty"`
  2798  	// AdministrativeArea: Optional. Highest administrative subdivision which is
  2799  	// used for postal addresses of a country or region. For example, this can be a
  2800  	// state, a province, an oblast, or a prefecture. Specifically, for Spain this
  2801  	// is the province and not the autonomous community (e.g. "Barcelona" and not
  2802  	// "Catalonia"). Many countries don't use an administrative area in postal
  2803  	// addresses. E.g. in Switzerland this should be left unpopulated.
  2804  	AdministrativeArea string `json:"administrativeArea,omitempty"`
  2805  	// LanguageCode: Optional. BCP-47 language code of the contents of this address
  2806  	// (if known). This is often the UI language of the input form or is expected
  2807  	// to match one of the languages used in the address' country/region, or their
  2808  	// transliterated equivalents. This can affect formatting in certain countries,
  2809  	// but is not critical to the correctness of the data and will never affect any
  2810  	// validation or other non-formatting related operations. If this value is not
  2811  	// known, it should be omitted (rather than specifying a possibly incorrect
  2812  	// default). Examples: "zh-Hant", "ja", "ja-Latn", "en".
  2813  	LanguageCode string `json:"languageCode,omitempty"`
  2814  	// Locality: Optional. Generally refers to the city/town portion of the
  2815  	// address. Examples: US city, IT comune, UK post town. In regions of the world
  2816  	// where localities are not well defined or do not fit into this structure
  2817  	// well, leave locality empty and use address_lines.
  2818  	Locality string `json:"locality,omitempty"`
  2819  	// Organization: Optional. The name of the organization at the address.
  2820  	Organization string `json:"organization,omitempty"`
  2821  	// PostalCode: Optional. Postal code of the address. Not all countries use or
  2822  	// require postal codes to be present, but where they are used, they may
  2823  	// trigger additional validation with other parts of the address (e.g.
  2824  	// state/zip validation in the U.S.A.).
  2825  	PostalCode string `json:"postalCode,omitempty"`
  2826  	// Recipients: Optional. The recipient at the address. This field may, under
  2827  	// certain circumstances, contain multiline information. For example, it might
  2828  	// contain "care of" information.
  2829  	Recipients []string `json:"recipients,omitempty"`
  2830  	// RegionCode: Required. CLDR region code of the country/region of the address.
  2831  	// This is never inferred and it is up to the user to ensure the value is
  2832  	// correct. See https://cldr.unicode.org/ and
  2833  	// https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
  2834  	// for details. Example: "CH" for Switzerland.
  2835  	RegionCode string `json:"regionCode,omitempty"`
  2836  	// Revision: The schema revision of the `PostalAddress`. This must be set to 0,
  2837  	// which is the latest revision. All new revisions **must** be backward
  2838  	// compatible with old revisions.
  2839  	Revision int64 `json:"revision,omitempty"`
  2840  	// SortingCode: Optional. Additional, country-specific, sorting code. This is
  2841  	// not used in most regions. Where it is used, the value is either a string
  2842  	// like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a
  2843  	// number alone, representing the "sector code" (Jamaica), "delivery area
  2844  	// indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
  2845  	SortingCode string `json:"sortingCode,omitempty"`
  2846  	// Sublocality: Optional. Sublocality of the address. For example, this can be
  2847  	// neighborhoods, boroughs, districts.
  2848  	Sublocality string `json:"sublocality,omitempty"`
  2849  	// ForceSendFields is a list of field names (e.g. "AddressLines") to
  2850  	// unconditionally include in API requests. By default, fields with empty or
  2851  	// default values are omitted from API requests. See
  2852  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2853  	// details.
  2854  	ForceSendFields []string `json:"-"`
  2855  	// NullFields is a list of field names (e.g. "AddressLines") to include in API
  2856  	// requests with the JSON null value. By default, fields with empty values are
  2857  	// omitted from API requests. See
  2858  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2859  	NullFields []string `json:"-"`
  2860  }
  2861  
  2862  func (s *PostalAddress) MarshalJSON() ([]byte, error) {
  2863  	type NoMethod PostalAddress
  2864  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2865  }
  2866  
  2867  // ProcessingOptions: Input only. Options for job processing.
  2868  type ProcessingOptions struct {
  2869  	// DisableStreetAddressResolution: Optional. If set to `true`, the service does
  2870  	// not attempt to resolve a more precise address for the job.
  2871  	DisableStreetAddressResolution bool `json:"disableStreetAddressResolution,omitempty"`
  2872  	// HtmlSanitization: Optional. Option for job HTML content sanitization.
  2873  	// Applied fields are: * description * applicationInfo.instruction * incentives
  2874  	// * qualifications * responsibilities HTML tags in these fields may be
  2875  	// stripped if sanitiazation is not disabled. Defaults to
  2876  	// HtmlSanitization.SIMPLE_FORMATTING_ONLY.
  2877  	//
  2878  	// Possible values:
  2879  	//   "HTML_SANITIZATION_UNSPECIFIED" - Default value.
  2880  	//   "HTML_SANITIZATION_DISABLED" - Disables sanitization on HTML input.
  2881  	//   "SIMPLE_FORMATTING_ONLY" - Sanitizes HTML input, only accepts bold,
  2882  	// italic, ordered list, and unordered list markup tags.
  2883  	HtmlSanitization string `json:"htmlSanitization,omitempty"`
  2884  	// ForceSendFields is a list of field names (e.g.
  2885  	// "DisableStreetAddressResolution") to unconditionally include in API
  2886  	// requests. By default, fields with empty or default values are omitted from
  2887  	// API requests. See
  2888  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2889  	// details.
  2890  	ForceSendFields []string `json:"-"`
  2891  	// NullFields is a list of field names (e.g. "DisableStreetAddressResolution")
  2892  	// to include in API requests with the JSON null value. By default, fields with
  2893  	// empty values are omitted from API requests. See
  2894  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2895  	NullFields []string `json:"-"`
  2896  }
  2897  
  2898  func (s *ProcessingOptions) MarshalJSON() ([]byte, error) {
  2899  	type NoMethod ProcessingOptions
  2900  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2901  }
  2902  
  2903  // RequestMetadata: Input only. Meta information related to the job searcher or
  2904  // entity conducting the job search. This information is used to improve the
  2905  // performance of the service.
  2906  type RequestMetadata struct {
  2907  	// DeviceInfo: Optional. The type of device used by the job seeker at the time
  2908  	// of the call to the service.
  2909  	DeviceInfo *DeviceInfo `json:"deviceInfo,omitempty"`
  2910  	// Domain: Required. The client-defined scope or source of the service call,
  2911  	// which typically is the domain on which the service has been implemented and
  2912  	// is currently being run. For example, if the service is being run by client
  2913  	// *Foo, Inc.*, on job board www.foo.com and career site www.bar.com, then this
  2914  	// field is set to "foo.com" for use on the job board, and "bar.com" for use on
  2915  	// the career site. If this field isn't available for some reason, send
  2916  	// "UNKNOWN". Any improvements to the model for a particular tenant site rely
  2917  	// on this field being set correctly to a domain. The maximum number of allowed
  2918  	// characters is 255.
  2919  	Domain string `json:"domain,omitempty"`
  2920  	// SessionId: Required. A unique session identification string. A session is
  2921  	// defined as the duration of an end user's interaction with the service over a
  2922  	// certain period. Obfuscate this field for privacy concerns before providing
  2923  	// it to the service. If this field is not available for some reason, send
  2924  	// "UNKNOWN". Note that any improvements to the model for a particular tenant
  2925  	// site, rely on this field being set correctly to some unique session_id. The
  2926  	// maximum number of allowed characters is 255.
  2927  	SessionId string `json:"sessionId,omitempty"`
  2928  	// UserId: Required. A unique user identification string, as determined by the
  2929  	// client. To have the strongest positive impact on search quality make sure
  2930  	// the client-level is unique. Obfuscate this field for privacy concerns before
  2931  	// providing it to the service. If this field is not available for some reason,
  2932  	// send "UNKNOWN". Note that any improvements to the model for a particular
  2933  	// tenant site, rely on this field being set correctly to a unique user_id. The
  2934  	// maximum number of allowed characters is 255.
  2935  	UserId string `json:"userId,omitempty"`
  2936  	// ForceSendFields is a list of field names (e.g. "DeviceInfo") to
  2937  	// unconditionally include in API requests. By default, fields with empty or
  2938  	// default values are omitted from API requests. See
  2939  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2940  	// details.
  2941  	ForceSendFields []string `json:"-"`
  2942  	// NullFields is a list of field names (e.g. "DeviceInfo") to include in API
  2943  	// requests with the JSON null value. By default, fields with empty values are
  2944  	// omitted from API requests. See
  2945  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2946  	NullFields []string `json:"-"`
  2947  }
  2948  
  2949  func (s *RequestMetadata) MarshalJSON() ([]byte, error) {
  2950  	type NoMethod RequestMetadata
  2951  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2952  }
  2953  
  2954  // ResponseMetadata: Output only. Additional information returned to client,
  2955  // such as debugging information.
  2956  type ResponseMetadata struct {
  2957  	// RequestId: A unique id associated with this call. This id is logged for
  2958  	// tracking purposes.
  2959  	RequestId string `json:"requestId,omitempty"`
  2960  	// ForceSendFields is a list of field names (e.g. "RequestId") to
  2961  	// unconditionally include in API requests. By default, fields with empty or
  2962  	// default values are omitted from API requests. See
  2963  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2964  	// details.
  2965  	ForceSendFields []string `json:"-"`
  2966  	// NullFields is a list of field names (e.g. "RequestId") to include in API
  2967  	// requests with the JSON null value. By default, fields with empty values are
  2968  	// omitted from API requests. See
  2969  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2970  	NullFields []string `json:"-"`
  2971  }
  2972  
  2973  func (s *ResponseMetadata) MarshalJSON() ([]byte, error) {
  2974  	type NoMethod ResponseMetadata
  2975  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2976  }
  2977  
  2978  // SearchJobsRequest: Input only. The Request body of the `SearchJobs` call.
  2979  type SearchJobsRequest struct {
  2980  	// CustomRankingInfo: Optional. Controls over how job documents get ranked on
  2981  	// top of existing relevance score (determined by API algorithm).
  2982  	CustomRankingInfo *CustomRankingInfo `json:"customRankingInfo,omitempty"`
  2983  	// DisableKeywordMatch: Optional. Controls whether to disable exact keyword
  2984  	// match on Job.job_title, Job.description, Job.company_display_name,
  2985  	// Job.locations, Job.qualifications. When disable keyword match is turned off,
  2986  	// a keyword match returns jobs that do not match given category filters when
  2987  	// there are matching keywords. For example, the query "program manager," a
  2988  	// result is returned even if the job posting has the title "software
  2989  	// developer," which does not fall into "program manager" ontology, but does
  2990  	// have "program manager" appearing in its description. For queries like
  2991  	// "cloud" that does not contain title or location specific ontology, jobs with
  2992  	// "cloud" keyword matches are returned regardless of this flag's value. Please
  2993  	// use Company.keyword_searchable_custom_fields or
  2994  	// Company.keyword_searchable_custom_attributes if company specific globally
  2995  	// matched custom field/attribute string values is needed. Enabling keyword
  2996  	// match improves recall of subsequent search requests. Defaults to false.
  2997  	DisableKeywordMatch bool `json:"disableKeywordMatch,omitempty"`
  2998  	// DiversificationLevel: Optional. Controls whether highly similar jobs are
  2999  	// returned next to each other in the search results. Jobs are identified as
  3000  	// highly similar based on their titles, job categories, and locations. Highly
  3001  	// similar results are clustered so that only one representative job of the
  3002  	// cluster is displayed to the job seeker higher up in the results, with the
  3003  	// other jobs being displayed lower down in the results. Defaults to
  3004  	// DiversificationLevel.SIMPLE if no value is specified.
  3005  	//
  3006  	// Possible values:
  3007  	//   "DIVERSIFICATION_LEVEL_UNSPECIFIED" - The diversification level isn't
  3008  	// specified. By default, jobs with this enum are ordered according to SIMPLE
  3009  	// diversifying behavior.
  3010  	//   "DISABLED" - Disables diversification. Jobs that would normally be pushed
  3011  	// to the last page would not have their positions altered. This may result in
  3012  	// highly similar jobs appearing in sequence in the search results.
  3013  	//   "SIMPLE" - Default diversifying behavior. The result list is ordered so
  3014  	// that highly similar results are pushed to the end of the last page of search
  3015  	// results.
  3016  	DiversificationLevel string `json:"diversificationLevel,omitempty"`
  3017  	// EnableBroadening: Optional. Controls whether to broaden the search when it
  3018  	// produces sparse results. Broadened queries append results to the end of the
  3019  	// matching results list. Defaults to false.
  3020  	EnableBroadening bool `json:"enableBroadening,omitempty"`
  3021  	// HistogramFacets: Optional. Histogram requests for jobs matching JobQuery.
  3022  	HistogramFacets *HistogramFacets `json:"histogramFacets,omitempty"`
  3023  	// HistogramQueries: Optional. Expression based histogram requests for jobs
  3024  	// matching JobQuery.
  3025  	HistogramQueries []*HistogramQuery `json:"histogramQueries,omitempty"`
  3026  	// JobQuery: Optional. Query used to search against jobs, such as keyword,
  3027  	// location filters, etc.
  3028  	JobQuery *JobQuery `json:"jobQuery,omitempty"`
  3029  	// JobView: Optional. The desired job attributes returned for jobs in the
  3030  	// search response. Defaults to JobView.SMALL if no value is specified.
  3031  	//
  3032  	// Possible values:
  3033  	//   "JOB_VIEW_UNSPECIFIED" - Default value.
  3034  	//   "JOB_VIEW_ID_ONLY" - A ID only view of job, with following attributes:
  3035  	// Job.name, Job.requisition_id, Job.language_code.
  3036  	//   "JOB_VIEW_MINIMAL" - A minimal view of the job, with the following
  3037  	// attributes: Job.name, Job.requisition_id, Job.title, Job.company_name,
  3038  	// Job.DerivedInfo.locations, Job.language_code.
  3039  	//   "JOB_VIEW_SMALL" - A small view of the job, with the following attributes
  3040  	// in the search results: Job.name, Job.requisition_id, Job.title,
  3041  	// Job.company_name, Job.DerivedInfo.locations, Job.visibility,
  3042  	// Job.language_code, Job.description.
  3043  	//   "JOB_VIEW_FULL" - All available attributes are included in the search
  3044  	// results.
  3045  	JobView string `json:"jobView,omitempty"`
  3046  	// Offset: Optional. An integer that specifies the current offset (that is,
  3047  	// starting result location, amongst the jobs deemed by the API as relevant) in
  3048  	// search results. This field is only considered if page_token is unset. The
  3049  	// maximum allowed value is 5000. Otherwise an error is thrown. For example, 0
  3050  	// means to return results starting from the first matching job, and 10 means
  3051  	// to return from the 11th job. This can be used for pagination, (for example,
  3052  	// pageSize = 10 and offset = 10 means to return from the second page).
  3053  	Offset int64 `json:"offset,omitempty"`
  3054  	// OrderBy: Optional. The criteria determining how search results are sorted.
  3055  	// Default is "relevance desc". Supported options are: * "relevance desc": By
  3056  	// relevance descending, as determined by the API algorithms. Relevance
  3057  	// thresholding of query results is only available with this ordering. *
  3058  	// "posting_publish_time desc": By Job.posting_publish_time descending. *
  3059  	// "posting_update_time desc": By Job.posting_update_time descending. *
  3060  	// "title": By Job.title ascending. * "title desc": By Job.title
  3061  	// descending. * "annualized_base_compensation": By job's
  3062  	// CompensationInfo.annualized_base_compensation_range ascending. Jobs whose
  3063  	// annualized base compensation is unspecified are put at the end of search
  3064  	// results. * "annualized_base_compensation desc": By job's
  3065  	// CompensationInfo.annualized_base_compensation_range descending. Jobs whose
  3066  	// annualized base compensation is unspecified are put at the end of search
  3067  	// results. * "annualized_total_compensation": By job's
  3068  	// CompensationInfo.annualized_total_compensation_range ascending. Jobs whose
  3069  	// annualized base compensation is unspecified are put at the end of search
  3070  	// results. * "annualized_total_compensation desc": By job's
  3071  	// CompensationInfo.annualized_total_compensation_range descending. Jobs whose
  3072  	// annualized base compensation is unspecified are put at the end of search
  3073  	// results. * "custom_ranking desc": By the relevance score adjusted to the
  3074  	// SearchJobsRequest.custom_ranking_info.ranking_expression with weight factor
  3075  	// assigned by SearchJobsRequest.custom_ranking_info.importance_level in
  3076  	// descending order. * Location sorting: Use the special syntax to order jobs
  3077  	// by distance: "distance_from('Hawaii')": Order by distance from Hawaii.
  3078  	// "distance_from(19.89, 155.5)": Order by distance from a coordinate.
  3079  	// "distance_from('Hawaii'), distance_from('Puerto Rico')": Order by multiple
  3080  	// locations. See details below. "distance_from('Hawaii'),
  3081  	// distance_from(19.89, 155.5)": Order by multiple locations. See details
  3082  	// below. The string can have a maximum of 256 characters. When multiple
  3083  	// distance centers are provided, a job that is close to any of the distance
  3084  	// centers would have a high rank. When a job has multiple locations, the job
  3085  	// location closest to one of the distance centers will be used. Jobs that
  3086  	// don't have locations will be ranked at the bottom. Distance is calculated
  3087  	// with a precision of 11.3 meters (37.4 feet). Diversification strategy is
  3088  	// still applied unless explicitly disabled in diversification_level.
  3089  	OrderBy string `json:"orderBy,omitempty"`
  3090  	// PageSize: Optional. A limit on the number of jobs returned in the search
  3091  	// results. Increasing this value above the default value of 10 can increase
  3092  	// search response time. The value can be between 1 and 100.
  3093  	PageSize int64 `json:"pageSize,omitempty"`
  3094  	// PageToken: Optional. The token specifying the current offset within search
  3095  	// results. See SearchJobsResponse.next_page_token for an explanation of how to
  3096  	// obtain the next set of query results.
  3097  	PageToken string `json:"pageToken,omitempty"`
  3098  	// RequestMetadata: Required. The meta information collected about the job
  3099  	// searcher, used to improve the search quality of the service. The identifiers
  3100  	// (such as `user_id`) are provided by users, and must be unique and
  3101  	// consistent.
  3102  	RequestMetadata *RequestMetadata `json:"requestMetadata,omitempty"`
  3103  	// RequirePreciseResultSize: This field is deprecated.
  3104  	RequirePreciseResultSize bool `json:"requirePreciseResultSize,omitempty"`
  3105  	// SearchMode: Optional. Mode of a search. Defaults to SearchMode.JOB_SEARCH.
  3106  	//
  3107  	// Possible values:
  3108  	//   "SEARCH_MODE_UNSPECIFIED" - The mode of the search method isn't specified.
  3109  	// The default search behavior is identical to JOB_SEARCH search behavior.
  3110  	//   "JOB_SEARCH" - The job search matches against all jobs, and featured jobs
  3111  	// (jobs with promotionValue > 0) are not specially handled.
  3112  	//   "FEATURED_JOB_SEARCH" - The job search matches only against featured jobs
  3113  	// (jobs with a promotionValue > 0). This method doesn't return any jobs having
  3114  	// a promotionValue <= 0. The search results order is determined by the
  3115  	// promotionValue (jobs with a higher promotionValue are returned higher up in
  3116  	// the search results), with relevance being used as a tiebreaker.
  3117  	SearchMode string `json:"searchMode,omitempty"`
  3118  	// ForceSendFields is a list of field names (e.g. "CustomRankingInfo") to
  3119  	// unconditionally include in API requests. By default, fields with empty or
  3120  	// default values are omitted from API requests. See
  3121  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3122  	// details.
  3123  	ForceSendFields []string `json:"-"`
  3124  	// NullFields is a list of field names (e.g. "CustomRankingInfo") to include in
  3125  	// API requests with the JSON null value. By default, fields with empty values
  3126  	// are omitted from API requests. See
  3127  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3128  	NullFields []string `json:"-"`
  3129  }
  3130  
  3131  func (s *SearchJobsRequest) MarshalJSON() ([]byte, error) {
  3132  	type NoMethod SearchJobsRequest
  3133  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3134  }
  3135  
  3136  // SearchJobsResponse: Output only. Response for SearchJob method.
  3137  type SearchJobsResponse struct {
  3138  	// BroadenedQueryJobsCount: If query broadening is enabled, we may append
  3139  	// additional results from the broadened query. This number indicates how many
  3140  	// of the jobs returned in the jobs field are from the broadened query. These
  3141  	// results are always at the end of the jobs list. In particular, a value of 0,
  3142  	// or if the field isn't set, all the jobs in the jobs list are from the
  3143  	// original (without broadening) query. If this field is non-zero, subsequent
  3144  	// requests with offset after this result set should contain all broadened
  3145  	// results.
  3146  	BroadenedQueryJobsCount int64 `json:"broadenedQueryJobsCount,omitempty"`
  3147  	// EstimatedTotalSize: An estimation of the number of jobs that match the
  3148  	// specified query. This number is not guaranteed to be accurate. For accurate
  3149  	// results, see SearchJobsResponse.total_size.
  3150  	EstimatedTotalSize int64 `json:"estimatedTotalSize,omitempty"`
  3151  	// HistogramQueryResults: The histogram results that match with specified
  3152  	// SearchJobsRequest.histogram_queries.
  3153  	HistogramQueryResults []*HistogramQueryResult `json:"histogramQueryResults,omitempty"`
  3154  	// HistogramResults: The histogram results that match specified
  3155  	// SearchJobsRequest.histogram_facets.
  3156  	HistogramResults *HistogramResults `json:"histogramResults,omitempty"`
  3157  	// LocationFilters: The location filters that the service applied to the
  3158  	// specified query. If any filters are lat-lng based, the
  3159  	// JobLocation.location_type is
  3160  	// JobLocation.LocationType#LOCATION_TYPE_UNSPECIFIED.
  3161  	LocationFilters []*Location `json:"locationFilters,omitempty"`
  3162  	// MatchingJobs: The Job entities that match the specified SearchJobsRequest.
  3163  	MatchingJobs []*MatchingJob `json:"matchingJobs,omitempty"`
  3164  	// Metadata: Additional information for the API invocation, such as the request
  3165  	// tracking id.
  3166  	Metadata *ResponseMetadata `json:"metadata,omitempty"`
  3167  	// NextPageToken: The token that specifies the starting position of the next
  3168  	// page of results. This field is empty if there are no more results.
  3169  	NextPageToken string `json:"nextPageToken,omitempty"`
  3170  	// SpellCorrection: The spell checking result, and correction.
  3171  	SpellCorrection *SpellingCorrection `json:"spellCorrection,omitempty"`
  3172  	// TotalSize: The precise result count with limit 100,000.
  3173  	TotalSize int64 `json:"totalSize,omitempty"`
  3174  
  3175  	// ServerResponse contains the HTTP response code and headers from the server.
  3176  	googleapi.ServerResponse `json:"-"`
  3177  	// ForceSendFields is a list of field names (e.g. "BroadenedQueryJobsCount") to
  3178  	// unconditionally include in API requests. By default, fields with empty or
  3179  	// default values are omitted from API requests. See
  3180  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3181  	// details.
  3182  	ForceSendFields []string `json:"-"`
  3183  	// NullFields is a list of field names (e.g. "BroadenedQueryJobsCount") to
  3184  	// include in API requests with the JSON null value. By default, fields with
  3185  	// empty values are omitted from API requests. See
  3186  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3187  	NullFields []string `json:"-"`
  3188  }
  3189  
  3190  func (s *SearchJobsResponse) MarshalJSON() ([]byte, error) {
  3191  	type NoMethod SearchJobsResponse
  3192  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3193  }
  3194  
  3195  // SpellingCorrection: Output only. Spell check result.
  3196  type SpellingCorrection struct {
  3197  	// Corrected: Indicates if the query was corrected by the spell checker.
  3198  	Corrected bool `json:"corrected,omitempty"`
  3199  	// CorrectedText: Correction output consisting of the corrected keyword string.
  3200  	CorrectedText string `json:"correctedText,omitempty"`
  3201  	// ForceSendFields is a list of field names (e.g. "Corrected") to
  3202  	// unconditionally include in API requests. By default, fields with empty or
  3203  	// default values are omitted from API requests. See
  3204  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3205  	// details.
  3206  	ForceSendFields []string `json:"-"`
  3207  	// NullFields is a list of field names (e.g. "Corrected") to include in API
  3208  	// requests with the JSON null value. By default, fields with empty values are
  3209  	// omitted from API requests. See
  3210  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3211  	NullFields []string `json:"-"`
  3212  }
  3213  
  3214  func (s *SpellingCorrection) MarshalJSON() ([]byte, error) {
  3215  	type NoMethod SpellingCorrection
  3216  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3217  }
  3218  
  3219  // Status: The `Status` type defines a logical error model that is suitable for
  3220  // different programming environments, including REST APIs and RPC APIs. It is
  3221  // used by gRPC (https://github.com/grpc). Each `Status` message contains three
  3222  // pieces of data: error code, error message, and error details. You can find
  3223  // out more about this error model and how to work with it in the API Design
  3224  // Guide (https://cloud.google.com/apis/design/errors).
  3225  type Status struct {
  3226  	// Code: The status code, which should be an enum value of google.rpc.Code.
  3227  	Code int64 `json:"code,omitempty"`
  3228  	// Details: A list of messages that carry the error details. There is a common
  3229  	// set of message types for APIs to use.
  3230  	Details []googleapi.RawMessage `json:"details,omitempty"`
  3231  	// Message: A developer-facing error message, which should be in English. Any
  3232  	// user-facing error message should be localized and sent in the
  3233  	// google.rpc.Status.details field, or localized by the client.
  3234  	Message string `json:"message,omitempty"`
  3235  	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
  3236  	// include in API requests. By default, fields with empty or default values are
  3237  	// omitted from API requests. See
  3238  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3239  	// details.
  3240  	ForceSendFields []string `json:"-"`
  3241  	// NullFields is a list of field names (e.g. "Code") to include in API requests
  3242  	// with the JSON null value. By default, fields with empty values are omitted
  3243  	// from API requests. See
  3244  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3245  	NullFields []string `json:"-"`
  3246  }
  3247  
  3248  func (s *Status) MarshalJSON() ([]byte, error) {
  3249  	type NoMethod Status
  3250  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3251  }
  3252  
  3253  // TimeOfDay: Represents a time of day. The date and time zone are either not
  3254  // significant or are specified elsewhere. An API may choose to allow leap
  3255  // seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
  3256  type TimeOfDay struct {
  3257  	// Hours: Hours of day in 24 hour format. Should be from 0 to 23. An API may
  3258  	// choose to allow the value "24:00:00" for scenarios like business closing
  3259  	// time.
  3260  	Hours int64 `json:"hours,omitempty"`
  3261  	// Minutes: Minutes of hour of day. Must be from 0 to 59.
  3262  	Minutes int64 `json:"minutes,omitempty"`
  3263  	// Nanos: Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
  3264  	Nanos int64 `json:"nanos,omitempty"`
  3265  	// Seconds: Seconds of minutes of the time. Must normally be from 0 to 59. An
  3266  	// API may allow the value 60 if it allows leap-seconds.
  3267  	Seconds int64 `json:"seconds,omitempty"`
  3268  	// ForceSendFields is a list of field names (e.g. "Hours") to unconditionally
  3269  	// include in API requests. By default, fields with empty or default values are
  3270  	// omitted from API requests. See
  3271  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3272  	// details.
  3273  	ForceSendFields []string `json:"-"`
  3274  	// NullFields is a list of field names (e.g. "Hours") to include in API
  3275  	// requests with the JSON null value. By default, fields with empty values are
  3276  	// omitted from API requests. See
  3277  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3278  	NullFields []string `json:"-"`
  3279  }
  3280  
  3281  func (s *TimeOfDay) MarshalJSON() ([]byte, error) {
  3282  	type NoMethod TimeOfDay
  3283  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3284  }
  3285  
  3286  // TimestampRange: Message representing a period of time between two
  3287  // timestamps.
  3288  type TimestampRange struct {
  3289  	// EndTime: End of the period.
  3290  	EndTime string `json:"endTime,omitempty"`
  3291  	// StartTime: Begin of the period.
  3292  	StartTime string `json:"startTime,omitempty"`
  3293  	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
  3294  	// include in API requests. By default, fields with empty or default values are
  3295  	// omitted from API requests. See
  3296  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3297  	// details.
  3298  	ForceSendFields []string `json:"-"`
  3299  	// NullFields is a list of field names (e.g. "EndTime") to include in API
  3300  	// requests with the JSON null value. By default, fields with empty values are
  3301  	// omitted from API requests. See
  3302  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3303  	NullFields []string `json:"-"`
  3304  }
  3305  
  3306  func (s *TimestampRange) MarshalJSON() ([]byte, error) {
  3307  	type NoMethod TimestampRange
  3308  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3309  }
  3310  
  3311  // UpdateCompanyRequest: Input only. Request for updating a specified company.
  3312  type UpdateCompanyRequest struct {
  3313  	// Company: Required. The company resource to replace the current resource in
  3314  	// the system.
  3315  	Company *Company `json:"company,omitempty"`
  3316  	// UpdateMask: Optional but strongly recommended for the best service
  3317  	// experience. If update_mask is provided, only the specified fields in company
  3318  	// are updated. Otherwise all the fields are updated. A field mask to specify
  3319  	// the company fields to be updated. Only top level fields of Company are
  3320  	// supported.
  3321  	UpdateMask string `json:"updateMask,omitempty"`
  3322  	// ForceSendFields is a list of field names (e.g. "Company") to unconditionally
  3323  	// include in API requests. By default, fields with empty or default values are
  3324  	// omitted from API requests. See
  3325  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3326  	// details.
  3327  	ForceSendFields []string `json:"-"`
  3328  	// NullFields is a list of field names (e.g. "Company") to include in API
  3329  	// requests with the JSON null value. By default, fields with empty values are
  3330  	// omitted from API requests. See
  3331  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3332  	NullFields []string `json:"-"`
  3333  }
  3334  
  3335  func (s *UpdateCompanyRequest) MarshalJSON() ([]byte, error) {
  3336  	type NoMethod UpdateCompanyRequest
  3337  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3338  }
  3339  
  3340  // UpdateJobRequest: Input only. Update job request.
  3341  type UpdateJobRequest struct {
  3342  	// Job: Required. The Job to be updated.
  3343  	Job *Job `json:"job,omitempty"`
  3344  	// UpdateMask: Optional but strongly recommended to be provided for the best
  3345  	// service experience. If update_mask is provided, only the specified fields in
  3346  	// job are updated. Otherwise all the fields are updated. A field mask to
  3347  	// restrict the fields that are updated. Only top level fields of Job are
  3348  	// supported.
  3349  	UpdateMask string `json:"updateMask,omitempty"`
  3350  	// ForceSendFields is a list of field names (e.g. "Job") to unconditionally
  3351  	// include in API requests. By default, fields with empty or default values are
  3352  	// omitted from API requests. See
  3353  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3354  	// details.
  3355  	ForceSendFields []string `json:"-"`
  3356  	// NullFields is a list of field names (e.g. "Job") to include in API requests
  3357  	// with the JSON null value. By default, fields with empty values are omitted
  3358  	// from API requests. See
  3359  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3360  	NullFields []string `json:"-"`
  3361  }
  3362  
  3363  func (s *UpdateJobRequest) MarshalJSON() ([]byte, error) {
  3364  	type NoMethod UpdateJobRequest
  3365  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3366  }
  3367  
  3368  type ProjectsCompleteCall struct {
  3369  	s            *Service
  3370  	name         string
  3371  	urlParams_   gensupport.URLParams
  3372  	ifNoneMatch_ string
  3373  	ctx_         context.Context
  3374  	header_      http.Header
  3375  }
  3376  
  3377  // Complete: Completes the specified prefix with keyword suggestions. Intended
  3378  // for use by a job search auto-complete search box.
  3379  //
  3380  //   - name: Resource name of project the completion is performed within. The
  3381  //     format is "projects/{project_id}", for example,
  3382  //     "projects/api-test-project".
  3383  func (r *ProjectsService) Complete(name string) *ProjectsCompleteCall {
  3384  	c := &ProjectsCompleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3385  	c.name = name
  3386  	return c
  3387  }
  3388  
  3389  // CompanyName sets the optional parameter "companyName": If provided,
  3390  // restricts completion to specified company. The format is
  3391  // "projects/{project_id}/companies/{company_id}", for example,
  3392  // "projects/api-test-project/companies/foo".
  3393  func (c *ProjectsCompleteCall) CompanyName(companyName string) *ProjectsCompleteCall {
  3394  	c.urlParams_.Set("companyName", companyName)
  3395  	return c
  3396  }
  3397  
  3398  // LanguageCode sets the optional parameter "languageCode": Deprecated. Use
  3399  // language_codes instead.  The language of the query. This is the BCP-47
  3400  // language code, such as "en-US" or "sr-Latn". For more information, see Tags
  3401  // for Identifying Languages (https://tools.ietf.org/html/bcp47). For
  3402  // CompletionType.JOB_TITLE type, only open jobs with the same language_code
  3403  // are returned. For CompletionType.COMPANY_NAME type, only companies having
  3404  // open jobs with the same language_code are returned. For
  3405  // CompletionType.COMBINED type, only open jobs with the same language_code or
  3406  // companies having open jobs with the same language_code are returned. The
  3407  // maximum number of allowed characters is 255.
  3408  func (c *ProjectsCompleteCall) LanguageCode(languageCode string) *ProjectsCompleteCall {
  3409  	c.urlParams_.Set("languageCode", languageCode)
  3410  	return c
  3411  }
  3412  
  3413  // LanguageCodes sets the optional parameter "languageCodes": The list of
  3414  // languages of the query. This is the BCP-47 language code, such as "en-US" or
  3415  // "sr-Latn". For more information, see Tags for Identifying Languages
  3416  // (https://tools.ietf.org/html/bcp47). For CompletionType.JOB_TITLE type, only
  3417  // open jobs with the same language_codes are returned. For
  3418  // CompletionType.COMPANY_NAME type, only companies having open jobs with the
  3419  // same language_codes are returned. For CompletionType.COMBINED type, only
  3420  // open jobs with the same language_codes or companies having open jobs with
  3421  // the same language_codes are returned. The maximum number of allowed
  3422  // characters is 255.
  3423  func (c *ProjectsCompleteCall) LanguageCodes(languageCodes ...string) *ProjectsCompleteCall {
  3424  	c.urlParams_.SetMulti("languageCodes", append([]string{}, languageCodes...))
  3425  	return c
  3426  }
  3427  
  3428  // PageSize sets the optional parameter "pageSize": Required. Completion result
  3429  // count. The maximum allowed page size is 10.
  3430  func (c *ProjectsCompleteCall) PageSize(pageSize int64) *ProjectsCompleteCall {
  3431  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  3432  	return c
  3433  }
  3434  
  3435  // Query sets the optional parameter "query": Required. The query used to
  3436  // generate suggestions. The maximum number of allowed characters is 255.
  3437  func (c *ProjectsCompleteCall) Query(query string) *ProjectsCompleteCall {
  3438  	c.urlParams_.Set("query", query)
  3439  	return c
  3440  }
  3441  
  3442  // Scope sets the optional parameter "scope": The scope of the completion. The
  3443  // defaults is CompletionScope.PUBLIC.
  3444  //
  3445  // Possible values:
  3446  //
  3447  //	"COMPLETION_SCOPE_UNSPECIFIED" - Default value.
  3448  //	"TENANT" - Suggestions are based only on the data provided by the client.
  3449  //	"PUBLIC" - Suggestions are based on all jobs data in the system that's
  3450  //
  3451  // visible to the client
  3452  func (c *ProjectsCompleteCall) Scope(scope string) *ProjectsCompleteCall {
  3453  	c.urlParams_.Set("scope", scope)
  3454  	return c
  3455  }
  3456  
  3457  // Type sets the optional parameter "type": The completion topic. The default
  3458  // is CompletionType.COMBINED.
  3459  //
  3460  // Possible values:
  3461  //
  3462  //	"COMPLETION_TYPE_UNSPECIFIED" - Default value.
  3463  //	"JOB_TITLE" - Only suggest job titles.
  3464  //	"COMPANY_NAME" - Only suggest company names.
  3465  //	"COMBINED" - Suggest both job titles and company names.
  3466  func (c *ProjectsCompleteCall) Type(type_ string) *ProjectsCompleteCall {
  3467  	c.urlParams_.Set("type", type_)
  3468  	return c
  3469  }
  3470  
  3471  // Fields allows partial responses to be retrieved. See
  3472  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3473  // details.
  3474  func (c *ProjectsCompleteCall) Fields(s ...googleapi.Field) *ProjectsCompleteCall {
  3475  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3476  	return c
  3477  }
  3478  
  3479  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3480  // object's ETag matches the given value. This is useful for getting updates
  3481  // only after the object has changed since the last request.
  3482  func (c *ProjectsCompleteCall) IfNoneMatch(entityTag string) *ProjectsCompleteCall {
  3483  	c.ifNoneMatch_ = entityTag
  3484  	return c
  3485  }
  3486  
  3487  // Context sets the context to be used in this call's Do method.
  3488  func (c *ProjectsCompleteCall) Context(ctx context.Context) *ProjectsCompleteCall {
  3489  	c.ctx_ = ctx
  3490  	return c
  3491  }
  3492  
  3493  // Header returns a http.Header that can be modified by the caller to add
  3494  // headers to the request.
  3495  func (c *ProjectsCompleteCall) Header() http.Header {
  3496  	if c.header_ == nil {
  3497  		c.header_ = make(http.Header)
  3498  	}
  3499  	return c.header_
  3500  }
  3501  
  3502  func (c *ProjectsCompleteCall) doRequest(alt string) (*http.Response, error) {
  3503  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3504  	if c.ifNoneMatch_ != "" {
  3505  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3506  	}
  3507  	var body io.Reader = nil
  3508  	c.urlParams_.Set("alt", alt)
  3509  	c.urlParams_.Set("prettyPrint", "false")
  3510  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}:complete")
  3511  	urls += "?" + c.urlParams_.Encode()
  3512  	req, err := http.NewRequest("GET", urls, body)
  3513  	if err != nil {
  3514  		return nil, err
  3515  	}
  3516  	req.Header = reqHeaders
  3517  	googleapi.Expand(req.URL, map[string]string{
  3518  		"name": c.name,
  3519  	})
  3520  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3521  }
  3522  
  3523  // Do executes the "jobs.projects.complete" call.
  3524  // Any non-2xx status code is an error. Response headers are in either
  3525  // *CompleteQueryResponse.ServerResponse.Header or (if a response was returned
  3526  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  3527  // check whether the returned error was because http.StatusNotModified was
  3528  // returned.
  3529  func (c *ProjectsCompleteCall) Do(opts ...googleapi.CallOption) (*CompleteQueryResponse, error) {
  3530  	gensupport.SetOptions(c.urlParams_, opts...)
  3531  	res, err := c.doRequest("json")
  3532  	if res != nil && res.StatusCode == http.StatusNotModified {
  3533  		if res.Body != nil {
  3534  			res.Body.Close()
  3535  		}
  3536  		return nil, gensupport.WrapError(&googleapi.Error{
  3537  			Code:   res.StatusCode,
  3538  			Header: res.Header,
  3539  		})
  3540  	}
  3541  	if err != nil {
  3542  		return nil, err
  3543  	}
  3544  	defer googleapi.CloseBody(res)
  3545  	if err := googleapi.CheckResponse(res); err != nil {
  3546  		return nil, gensupport.WrapError(err)
  3547  	}
  3548  	ret := &CompleteQueryResponse{
  3549  		ServerResponse: googleapi.ServerResponse{
  3550  			Header:         res.Header,
  3551  			HTTPStatusCode: res.StatusCode,
  3552  		},
  3553  	}
  3554  	target := &ret
  3555  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3556  		return nil, err
  3557  	}
  3558  	return ret, nil
  3559  }
  3560  
  3561  type ProjectsClientEventsCreateCall struct {
  3562  	s                        *Service
  3563  	parent                   string
  3564  	createclienteventrequest *CreateClientEventRequest
  3565  	urlParams_               gensupport.URLParams
  3566  	ctx_                     context.Context
  3567  	header_                  http.Header
  3568  }
  3569  
  3570  // Create: Report events issued when end user interacts with customer's
  3571  // application that uses Cloud Talent Solution. You may inspect the created
  3572  // events in self service tools
  3573  // (https://console.cloud.google.com/talent-solution/overview). Learn more
  3574  // (https://cloud.google.com/talent-solution/docs/management-tools) about self
  3575  // service tools.
  3576  //
  3577  // - parent: Parent project name.
  3578  func (r *ProjectsClientEventsService) Create(parent string, createclienteventrequest *CreateClientEventRequest) *ProjectsClientEventsCreateCall {
  3579  	c := &ProjectsClientEventsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3580  	c.parent = parent
  3581  	c.createclienteventrequest = createclienteventrequest
  3582  	return c
  3583  }
  3584  
  3585  // Fields allows partial responses to be retrieved. See
  3586  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3587  // details.
  3588  func (c *ProjectsClientEventsCreateCall) Fields(s ...googleapi.Field) *ProjectsClientEventsCreateCall {
  3589  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3590  	return c
  3591  }
  3592  
  3593  // Context sets the context to be used in this call's Do method.
  3594  func (c *ProjectsClientEventsCreateCall) Context(ctx context.Context) *ProjectsClientEventsCreateCall {
  3595  	c.ctx_ = ctx
  3596  	return c
  3597  }
  3598  
  3599  // Header returns a http.Header that can be modified by the caller to add
  3600  // headers to the request.
  3601  func (c *ProjectsClientEventsCreateCall) Header() http.Header {
  3602  	if c.header_ == nil {
  3603  		c.header_ = make(http.Header)
  3604  	}
  3605  	return c.header_
  3606  }
  3607  
  3608  func (c *ProjectsClientEventsCreateCall) doRequest(alt string) (*http.Response, error) {
  3609  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3610  	var body io.Reader = nil
  3611  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createclienteventrequest)
  3612  	if err != nil {
  3613  		return nil, err
  3614  	}
  3615  	c.urlParams_.Set("alt", alt)
  3616  	c.urlParams_.Set("prettyPrint", "false")
  3617  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/clientEvents")
  3618  	urls += "?" + c.urlParams_.Encode()
  3619  	req, err := http.NewRequest("POST", urls, body)
  3620  	if err != nil {
  3621  		return nil, err
  3622  	}
  3623  	req.Header = reqHeaders
  3624  	googleapi.Expand(req.URL, map[string]string{
  3625  		"parent": c.parent,
  3626  	})
  3627  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3628  }
  3629  
  3630  // Do executes the "jobs.projects.clientEvents.create" call.
  3631  // Any non-2xx status code is an error. Response headers are in either
  3632  // *ClientEvent.ServerResponse.Header or (if a response was returned at all) in
  3633  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3634  // whether the returned error was because http.StatusNotModified was returned.
  3635  func (c *ProjectsClientEventsCreateCall) Do(opts ...googleapi.CallOption) (*ClientEvent, error) {
  3636  	gensupport.SetOptions(c.urlParams_, opts...)
  3637  	res, err := c.doRequest("json")
  3638  	if res != nil && res.StatusCode == http.StatusNotModified {
  3639  		if res.Body != nil {
  3640  			res.Body.Close()
  3641  		}
  3642  		return nil, gensupport.WrapError(&googleapi.Error{
  3643  			Code:   res.StatusCode,
  3644  			Header: res.Header,
  3645  		})
  3646  	}
  3647  	if err != nil {
  3648  		return nil, err
  3649  	}
  3650  	defer googleapi.CloseBody(res)
  3651  	if err := googleapi.CheckResponse(res); err != nil {
  3652  		return nil, gensupport.WrapError(err)
  3653  	}
  3654  	ret := &ClientEvent{
  3655  		ServerResponse: googleapi.ServerResponse{
  3656  			Header:         res.Header,
  3657  			HTTPStatusCode: res.StatusCode,
  3658  		},
  3659  	}
  3660  	target := &ret
  3661  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3662  		return nil, err
  3663  	}
  3664  	return ret, nil
  3665  }
  3666  
  3667  type ProjectsCompaniesCreateCall struct {
  3668  	s                    *Service
  3669  	parent               string
  3670  	createcompanyrequest *CreateCompanyRequest
  3671  	urlParams_           gensupport.URLParams
  3672  	ctx_                 context.Context
  3673  	header_              http.Header
  3674  }
  3675  
  3676  // Create: Creates a new company entity.
  3677  //
  3678  //   - parent: Resource name of the project under which the company is created.
  3679  //     The format is "projects/{project_id}", for example,
  3680  //     "projects/api-test-project".
  3681  func (r *ProjectsCompaniesService) Create(parent string, createcompanyrequest *CreateCompanyRequest) *ProjectsCompaniesCreateCall {
  3682  	c := &ProjectsCompaniesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3683  	c.parent = parent
  3684  	c.createcompanyrequest = createcompanyrequest
  3685  	return c
  3686  }
  3687  
  3688  // Fields allows partial responses to be retrieved. See
  3689  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3690  // details.
  3691  func (c *ProjectsCompaniesCreateCall) Fields(s ...googleapi.Field) *ProjectsCompaniesCreateCall {
  3692  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3693  	return c
  3694  }
  3695  
  3696  // Context sets the context to be used in this call's Do method.
  3697  func (c *ProjectsCompaniesCreateCall) Context(ctx context.Context) *ProjectsCompaniesCreateCall {
  3698  	c.ctx_ = ctx
  3699  	return c
  3700  }
  3701  
  3702  // Header returns a http.Header that can be modified by the caller to add
  3703  // headers to the request.
  3704  func (c *ProjectsCompaniesCreateCall) Header() http.Header {
  3705  	if c.header_ == nil {
  3706  		c.header_ = make(http.Header)
  3707  	}
  3708  	return c.header_
  3709  }
  3710  
  3711  func (c *ProjectsCompaniesCreateCall) doRequest(alt string) (*http.Response, error) {
  3712  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3713  	var body io.Reader = nil
  3714  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createcompanyrequest)
  3715  	if err != nil {
  3716  		return nil, err
  3717  	}
  3718  	c.urlParams_.Set("alt", alt)
  3719  	c.urlParams_.Set("prettyPrint", "false")
  3720  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/companies")
  3721  	urls += "?" + c.urlParams_.Encode()
  3722  	req, err := http.NewRequest("POST", urls, body)
  3723  	if err != nil {
  3724  		return nil, err
  3725  	}
  3726  	req.Header = reqHeaders
  3727  	googleapi.Expand(req.URL, map[string]string{
  3728  		"parent": c.parent,
  3729  	})
  3730  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3731  }
  3732  
  3733  // Do executes the "jobs.projects.companies.create" call.
  3734  // Any non-2xx status code is an error. Response headers are in either
  3735  // *Company.ServerResponse.Header or (if a response was returned at all) in
  3736  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3737  // whether the returned error was because http.StatusNotModified was returned.
  3738  func (c *ProjectsCompaniesCreateCall) Do(opts ...googleapi.CallOption) (*Company, error) {
  3739  	gensupport.SetOptions(c.urlParams_, opts...)
  3740  	res, err := c.doRequest("json")
  3741  	if res != nil && res.StatusCode == http.StatusNotModified {
  3742  		if res.Body != nil {
  3743  			res.Body.Close()
  3744  		}
  3745  		return nil, gensupport.WrapError(&googleapi.Error{
  3746  			Code:   res.StatusCode,
  3747  			Header: res.Header,
  3748  		})
  3749  	}
  3750  	if err != nil {
  3751  		return nil, err
  3752  	}
  3753  	defer googleapi.CloseBody(res)
  3754  	if err := googleapi.CheckResponse(res); err != nil {
  3755  		return nil, gensupport.WrapError(err)
  3756  	}
  3757  	ret := &Company{
  3758  		ServerResponse: googleapi.ServerResponse{
  3759  			Header:         res.Header,
  3760  			HTTPStatusCode: res.StatusCode,
  3761  		},
  3762  	}
  3763  	target := &ret
  3764  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3765  		return nil, err
  3766  	}
  3767  	return ret, nil
  3768  }
  3769  
  3770  type ProjectsCompaniesDeleteCall struct {
  3771  	s          *Service
  3772  	name       string
  3773  	urlParams_ gensupport.URLParams
  3774  	ctx_       context.Context
  3775  	header_    http.Header
  3776  }
  3777  
  3778  // Delete: Deletes specified company. Prerequisite: The company has no jobs
  3779  // associated with it.
  3780  //
  3781  //   - name: The resource name of the company to be deleted. The format is
  3782  //     "projects/{project_id}/companies/{company_id}", for example,
  3783  //     "projects/api-test-project/companies/foo".
  3784  func (r *ProjectsCompaniesService) Delete(name string) *ProjectsCompaniesDeleteCall {
  3785  	c := &ProjectsCompaniesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3786  	c.name = name
  3787  	return c
  3788  }
  3789  
  3790  // Fields allows partial responses to be retrieved. See
  3791  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3792  // details.
  3793  func (c *ProjectsCompaniesDeleteCall) Fields(s ...googleapi.Field) *ProjectsCompaniesDeleteCall {
  3794  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3795  	return c
  3796  }
  3797  
  3798  // Context sets the context to be used in this call's Do method.
  3799  func (c *ProjectsCompaniesDeleteCall) Context(ctx context.Context) *ProjectsCompaniesDeleteCall {
  3800  	c.ctx_ = ctx
  3801  	return c
  3802  }
  3803  
  3804  // Header returns a http.Header that can be modified by the caller to add
  3805  // headers to the request.
  3806  func (c *ProjectsCompaniesDeleteCall) Header() http.Header {
  3807  	if c.header_ == nil {
  3808  		c.header_ = make(http.Header)
  3809  	}
  3810  	return c.header_
  3811  }
  3812  
  3813  func (c *ProjectsCompaniesDeleteCall) doRequest(alt string) (*http.Response, error) {
  3814  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3815  	var body io.Reader = nil
  3816  	c.urlParams_.Set("alt", alt)
  3817  	c.urlParams_.Set("prettyPrint", "false")
  3818  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
  3819  	urls += "?" + c.urlParams_.Encode()
  3820  	req, err := http.NewRequest("DELETE", urls, body)
  3821  	if err != nil {
  3822  		return nil, err
  3823  	}
  3824  	req.Header = reqHeaders
  3825  	googleapi.Expand(req.URL, map[string]string{
  3826  		"name": c.name,
  3827  	})
  3828  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3829  }
  3830  
  3831  // Do executes the "jobs.projects.companies.delete" call.
  3832  // Any non-2xx status code is an error. Response headers are in either
  3833  // *Empty.ServerResponse.Header or (if a response was returned at all) in
  3834  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3835  // whether the returned error was because http.StatusNotModified was returned.
  3836  func (c *ProjectsCompaniesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
  3837  	gensupport.SetOptions(c.urlParams_, opts...)
  3838  	res, err := c.doRequest("json")
  3839  	if res != nil && res.StatusCode == http.StatusNotModified {
  3840  		if res.Body != nil {
  3841  			res.Body.Close()
  3842  		}
  3843  		return nil, gensupport.WrapError(&googleapi.Error{
  3844  			Code:   res.StatusCode,
  3845  			Header: res.Header,
  3846  		})
  3847  	}
  3848  	if err != nil {
  3849  		return nil, err
  3850  	}
  3851  	defer googleapi.CloseBody(res)
  3852  	if err := googleapi.CheckResponse(res); err != nil {
  3853  		return nil, gensupport.WrapError(err)
  3854  	}
  3855  	ret := &Empty{
  3856  		ServerResponse: googleapi.ServerResponse{
  3857  			Header:         res.Header,
  3858  			HTTPStatusCode: res.StatusCode,
  3859  		},
  3860  	}
  3861  	target := &ret
  3862  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3863  		return nil, err
  3864  	}
  3865  	return ret, nil
  3866  }
  3867  
  3868  type ProjectsCompaniesGetCall struct {
  3869  	s            *Service
  3870  	name         string
  3871  	urlParams_   gensupport.URLParams
  3872  	ifNoneMatch_ string
  3873  	ctx_         context.Context
  3874  	header_      http.Header
  3875  }
  3876  
  3877  // Get: Retrieves specified company.
  3878  //
  3879  //   - name: The resource name of the company to be retrieved. The format is
  3880  //     "projects/{project_id}/companies/{company_id}", for example,
  3881  //     "projects/api-test-project/companies/foo".
  3882  func (r *ProjectsCompaniesService) Get(name string) *ProjectsCompaniesGetCall {
  3883  	c := &ProjectsCompaniesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3884  	c.name = name
  3885  	return c
  3886  }
  3887  
  3888  // Fields allows partial responses to be retrieved. See
  3889  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3890  // details.
  3891  func (c *ProjectsCompaniesGetCall) Fields(s ...googleapi.Field) *ProjectsCompaniesGetCall {
  3892  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3893  	return c
  3894  }
  3895  
  3896  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3897  // object's ETag matches the given value. This is useful for getting updates
  3898  // only after the object has changed since the last request.
  3899  func (c *ProjectsCompaniesGetCall) IfNoneMatch(entityTag string) *ProjectsCompaniesGetCall {
  3900  	c.ifNoneMatch_ = entityTag
  3901  	return c
  3902  }
  3903  
  3904  // Context sets the context to be used in this call's Do method.
  3905  func (c *ProjectsCompaniesGetCall) Context(ctx context.Context) *ProjectsCompaniesGetCall {
  3906  	c.ctx_ = ctx
  3907  	return c
  3908  }
  3909  
  3910  // Header returns a http.Header that can be modified by the caller to add
  3911  // headers to the request.
  3912  func (c *ProjectsCompaniesGetCall) Header() http.Header {
  3913  	if c.header_ == nil {
  3914  		c.header_ = make(http.Header)
  3915  	}
  3916  	return c.header_
  3917  }
  3918  
  3919  func (c *ProjectsCompaniesGetCall) doRequest(alt string) (*http.Response, error) {
  3920  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3921  	if c.ifNoneMatch_ != "" {
  3922  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3923  	}
  3924  	var body io.Reader = nil
  3925  	c.urlParams_.Set("alt", alt)
  3926  	c.urlParams_.Set("prettyPrint", "false")
  3927  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
  3928  	urls += "?" + c.urlParams_.Encode()
  3929  	req, err := http.NewRequest("GET", urls, body)
  3930  	if err != nil {
  3931  		return nil, err
  3932  	}
  3933  	req.Header = reqHeaders
  3934  	googleapi.Expand(req.URL, map[string]string{
  3935  		"name": c.name,
  3936  	})
  3937  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3938  }
  3939  
  3940  // Do executes the "jobs.projects.companies.get" call.
  3941  // Any non-2xx status code is an error. Response headers are in either
  3942  // *Company.ServerResponse.Header or (if a response was returned at all) in
  3943  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3944  // whether the returned error was because http.StatusNotModified was returned.
  3945  func (c *ProjectsCompaniesGetCall) Do(opts ...googleapi.CallOption) (*Company, error) {
  3946  	gensupport.SetOptions(c.urlParams_, opts...)
  3947  	res, err := c.doRequest("json")
  3948  	if res != nil && res.StatusCode == http.StatusNotModified {
  3949  		if res.Body != nil {
  3950  			res.Body.Close()
  3951  		}
  3952  		return nil, gensupport.WrapError(&googleapi.Error{
  3953  			Code:   res.StatusCode,
  3954  			Header: res.Header,
  3955  		})
  3956  	}
  3957  	if err != nil {
  3958  		return nil, err
  3959  	}
  3960  	defer googleapi.CloseBody(res)
  3961  	if err := googleapi.CheckResponse(res); err != nil {
  3962  		return nil, gensupport.WrapError(err)
  3963  	}
  3964  	ret := &Company{
  3965  		ServerResponse: googleapi.ServerResponse{
  3966  			Header:         res.Header,
  3967  			HTTPStatusCode: res.StatusCode,
  3968  		},
  3969  	}
  3970  	target := &ret
  3971  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3972  		return nil, err
  3973  	}
  3974  	return ret, nil
  3975  }
  3976  
  3977  type ProjectsCompaniesListCall struct {
  3978  	s            *Service
  3979  	parent       string
  3980  	urlParams_   gensupport.URLParams
  3981  	ifNoneMatch_ string
  3982  	ctx_         context.Context
  3983  	header_      http.Header
  3984  }
  3985  
  3986  // List: Lists all companies associated with the service account.
  3987  //
  3988  //   - parent: Resource name of the project under which the company is created.
  3989  //     The format is "projects/{project_id}", for example,
  3990  //     "projects/api-test-project".
  3991  func (r *ProjectsCompaniesService) List(parent string) *ProjectsCompaniesListCall {
  3992  	c := &ProjectsCompaniesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3993  	c.parent = parent
  3994  	return c
  3995  }
  3996  
  3997  // PageSize sets the optional parameter "pageSize": The maximum number of
  3998  // companies to be returned, at most 100. Default is 100 if a non-positive
  3999  // number is provided.
  4000  func (c *ProjectsCompaniesListCall) PageSize(pageSize int64) *ProjectsCompaniesListCall {
  4001  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  4002  	return c
  4003  }
  4004  
  4005  // PageToken sets the optional parameter "pageToken": The starting indicator
  4006  // from which to return results.
  4007  func (c *ProjectsCompaniesListCall) PageToken(pageToken string) *ProjectsCompaniesListCall {
  4008  	c.urlParams_.Set("pageToken", pageToken)
  4009  	return c
  4010  }
  4011  
  4012  // RequireOpenJobs sets the optional parameter "requireOpenJobs": Set to true
  4013  // if the companies requested must have open jobs. Defaults to false. If true,
  4014  // at most page_size of companies are fetched, among which only those with open
  4015  // jobs are returned.
  4016  func (c *ProjectsCompaniesListCall) RequireOpenJobs(requireOpenJobs bool) *ProjectsCompaniesListCall {
  4017  	c.urlParams_.Set("requireOpenJobs", fmt.Sprint(requireOpenJobs))
  4018  	return c
  4019  }
  4020  
  4021  // Fields allows partial responses to be retrieved. See
  4022  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4023  // details.
  4024  func (c *ProjectsCompaniesListCall) Fields(s ...googleapi.Field) *ProjectsCompaniesListCall {
  4025  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4026  	return c
  4027  }
  4028  
  4029  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4030  // object's ETag matches the given value. This is useful for getting updates
  4031  // only after the object has changed since the last request.
  4032  func (c *ProjectsCompaniesListCall) IfNoneMatch(entityTag string) *ProjectsCompaniesListCall {
  4033  	c.ifNoneMatch_ = entityTag
  4034  	return c
  4035  }
  4036  
  4037  // Context sets the context to be used in this call's Do method.
  4038  func (c *ProjectsCompaniesListCall) Context(ctx context.Context) *ProjectsCompaniesListCall {
  4039  	c.ctx_ = ctx
  4040  	return c
  4041  }
  4042  
  4043  // Header returns a http.Header that can be modified by the caller to add
  4044  // headers to the request.
  4045  func (c *ProjectsCompaniesListCall) Header() http.Header {
  4046  	if c.header_ == nil {
  4047  		c.header_ = make(http.Header)
  4048  	}
  4049  	return c.header_
  4050  }
  4051  
  4052  func (c *ProjectsCompaniesListCall) doRequest(alt string) (*http.Response, error) {
  4053  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4054  	if c.ifNoneMatch_ != "" {
  4055  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4056  	}
  4057  	var body io.Reader = nil
  4058  	c.urlParams_.Set("alt", alt)
  4059  	c.urlParams_.Set("prettyPrint", "false")
  4060  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/companies")
  4061  	urls += "?" + c.urlParams_.Encode()
  4062  	req, err := http.NewRequest("GET", urls, body)
  4063  	if err != nil {
  4064  		return nil, err
  4065  	}
  4066  	req.Header = reqHeaders
  4067  	googleapi.Expand(req.URL, map[string]string{
  4068  		"parent": c.parent,
  4069  	})
  4070  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4071  }
  4072  
  4073  // Do executes the "jobs.projects.companies.list" call.
  4074  // Any non-2xx status code is an error. Response headers are in either
  4075  // *ListCompaniesResponse.ServerResponse.Header or (if a response was returned
  4076  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  4077  // check whether the returned error was because http.StatusNotModified was
  4078  // returned.
  4079  func (c *ProjectsCompaniesListCall) Do(opts ...googleapi.CallOption) (*ListCompaniesResponse, error) {
  4080  	gensupport.SetOptions(c.urlParams_, opts...)
  4081  	res, err := c.doRequest("json")
  4082  	if res != nil && res.StatusCode == http.StatusNotModified {
  4083  		if res.Body != nil {
  4084  			res.Body.Close()
  4085  		}
  4086  		return nil, gensupport.WrapError(&googleapi.Error{
  4087  			Code:   res.StatusCode,
  4088  			Header: res.Header,
  4089  		})
  4090  	}
  4091  	if err != nil {
  4092  		return nil, err
  4093  	}
  4094  	defer googleapi.CloseBody(res)
  4095  	if err := googleapi.CheckResponse(res); err != nil {
  4096  		return nil, gensupport.WrapError(err)
  4097  	}
  4098  	ret := &ListCompaniesResponse{
  4099  		ServerResponse: googleapi.ServerResponse{
  4100  			Header:         res.Header,
  4101  			HTTPStatusCode: res.StatusCode,
  4102  		},
  4103  	}
  4104  	target := &ret
  4105  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4106  		return nil, err
  4107  	}
  4108  	return ret, nil
  4109  }
  4110  
  4111  // Pages invokes f for each page of results.
  4112  // A non-nil error returned from f will halt the iteration.
  4113  // The provided context supersedes any context provided to the Context method.
  4114  func (c *ProjectsCompaniesListCall) Pages(ctx context.Context, f func(*ListCompaniesResponse) error) error {
  4115  	c.ctx_ = ctx
  4116  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  4117  	for {
  4118  		x, err := c.Do()
  4119  		if err != nil {
  4120  			return err
  4121  		}
  4122  		if err := f(x); err != nil {
  4123  			return err
  4124  		}
  4125  		if x.NextPageToken == "" {
  4126  			return nil
  4127  		}
  4128  		c.PageToken(x.NextPageToken)
  4129  	}
  4130  }
  4131  
  4132  type ProjectsCompaniesPatchCall struct {
  4133  	s                    *Service
  4134  	name                 string
  4135  	updatecompanyrequest *UpdateCompanyRequest
  4136  	urlParams_           gensupport.URLParams
  4137  	ctx_                 context.Context
  4138  	header_              http.Header
  4139  }
  4140  
  4141  // Patch: Updates specified company. Company names can't be updated. To update
  4142  // a company name, delete the company and all jobs associated with it, and only
  4143  // then re-create them.
  4144  //
  4145  //   - name: Required during company update. The resource name for a company.
  4146  //     This is generated by the service when a company is created. The format is
  4147  //     "projects/{project_id}/companies/{company_id}", for example,
  4148  //     "projects/api-test-project/companies/foo".
  4149  func (r *ProjectsCompaniesService) Patch(name string, updatecompanyrequest *UpdateCompanyRequest) *ProjectsCompaniesPatchCall {
  4150  	c := &ProjectsCompaniesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4151  	c.name = name
  4152  	c.updatecompanyrequest = updatecompanyrequest
  4153  	return c
  4154  }
  4155  
  4156  // Fields allows partial responses to be retrieved. See
  4157  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4158  // details.
  4159  func (c *ProjectsCompaniesPatchCall) Fields(s ...googleapi.Field) *ProjectsCompaniesPatchCall {
  4160  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4161  	return c
  4162  }
  4163  
  4164  // Context sets the context to be used in this call's Do method.
  4165  func (c *ProjectsCompaniesPatchCall) Context(ctx context.Context) *ProjectsCompaniesPatchCall {
  4166  	c.ctx_ = ctx
  4167  	return c
  4168  }
  4169  
  4170  // Header returns a http.Header that can be modified by the caller to add
  4171  // headers to the request.
  4172  func (c *ProjectsCompaniesPatchCall) Header() http.Header {
  4173  	if c.header_ == nil {
  4174  		c.header_ = make(http.Header)
  4175  	}
  4176  	return c.header_
  4177  }
  4178  
  4179  func (c *ProjectsCompaniesPatchCall) doRequest(alt string) (*http.Response, error) {
  4180  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4181  	var body io.Reader = nil
  4182  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatecompanyrequest)
  4183  	if err != nil {
  4184  		return nil, err
  4185  	}
  4186  	c.urlParams_.Set("alt", alt)
  4187  	c.urlParams_.Set("prettyPrint", "false")
  4188  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
  4189  	urls += "?" + c.urlParams_.Encode()
  4190  	req, err := http.NewRequest("PATCH", urls, body)
  4191  	if err != nil {
  4192  		return nil, err
  4193  	}
  4194  	req.Header = reqHeaders
  4195  	googleapi.Expand(req.URL, map[string]string{
  4196  		"name": c.name,
  4197  	})
  4198  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4199  }
  4200  
  4201  // Do executes the "jobs.projects.companies.patch" call.
  4202  // Any non-2xx status code is an error. Response headers are in either
  4203  // *Company.ServerResponse.Header or (if a response was returned at all) in
  4204  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4205  // whether the returned error was because http.StatusNotModified was returned.
  4206  func (c *ProjectsCompaniesPatchCall) Do(opts ...googleapi.CallOption) (*Company, error) {
  4207  	gensupport.SetOptions(c.urlParams_, opts...)
  4208  	res, err := c.doRequest("json")
  4209  	if res != nil && res.StatusCode == http.StatusNotModified {
  4210  		if res.Body != nil {
  4211  			res.Body.Close()
  4212  		}
  4213  		return nil, gensupport.WrapError(&googleapi.Error{
  4214  			Code:   res.StatusCode,
  4215  			Header: res.Header,
  4216  		})
  4217  	}
  4218  	if err != nil {
  4219  		return nil, err
  4220  	}
  4221  	defer googleapi.CloseBody(res)
  4222  	if err := googleapi.CheckResponse(res); err != nil {
  4223  		return nil, gensupport.WrapError(err)
  4224  	}
  4225  	ret := &Company{
  4226  		ServerResponse: googleapi.ServerResponse{
  4227  			Header:         res.Header,
  4228  			HTTPStatusCode: res.StatusCode,
  4229  		},
  4230  	}
  4231  	target := &ret
  4232  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4233  		return nil, err
  4234  	}
  4235  	return ret, nil
  4236  }
  4237  
  4238  type ProjectsJobsBatchDeleteCall struct {
  4239  	s                      *Service
  4240  	parent                 string
  4241  	batchdeletejobsrequest *BatchDeleteJobsRequest
  4242  	urlParams_             gensupport.URLParams
  4243  	ctx_                   context.Context
  4244  	header_                http.Header
  4245  }
  4246  
  4247  // BatchDelete: Deletes a list of Jobs by filter.
  4248  //
  4249  //   - parent: The resource name of the project under which the job is created.
  4250  //     The format is "projects/{project_id}", for example,
  4251  //     "projects/api-test-project".
  4252  func (r *ProjectsJobsService) BatchDelete(parent string, batchdeletejobsrequest *BatchDeleteJobsRequest) *ProjectsJobsBatchDeleteCall {
  4253  	c := &ProjectsJobsBatchDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4254  	c.parent = parent
  4255  	c.batchdeletejobsrequest = batchdeletejobsrequest
  4256  	return c
  4257  }
  4258  
  4259  // Fields allows partial responses to be retrieved. See
  4260  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4261  // details.
  4262  func (c *ProjectsJobsBatchDeleteCall) Fields(s ...googleapi.Field) *ProjectsJobsBatchDeleteCall {
  4263  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4264  	return c
  4265  }
  4266  
  4267  // Context sets the context to be used in this call's Do method.
  4268  func (c *ProjectsJobsBatchDeleteCall) Context(ctx context.Context) *ProjectsJobsBatchDeleteCall {
  4269  	c.ctx_ = ctx
  4270  	return c
  4271  }
  4272  
  4273  // Header returns a http.Header that can be modified by the caller to add
  4274  // headers to the request.
  4275  func (c *ProjectsJobsBatchDeleteCall) Header() http.Header {
  4276  	if c.header_ == nil {
  4277  		c.header_ = make(http.Header)
  4278  	}
  4279  	return c.header_
  4280  }
  4281  
  4282  func (c *ProjectsJobsBatchDeleteCall) doRequest(alt string) (*http.Response, error) {
  4283  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4284  	var body io.Reader = nil
  4285  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchdeletejobsrequest)
  4286  	if err != nil {
  4287  		return nil, err
  4288  	}
  4289  	c.urlParams_.Set("alt", alt)
  4290  	c.urlParams_.Set("prettyPrint", "false")
  4291  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/jobs:batchDelete")
  4292  	urls += "?" + c.urlParams_.Encode()
  4293  	req, err := http.NewRequest("POST", urls, body)
  4294  	if err != nil {
  4295  		return nil, err
  4296  	}
  4297  	req.Header = reqHeaders
  4298  	googleapi.Expand(req.URL, map[string]string{
  4299  		"parent": c.parent,
  4300  	})
  4301  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4302  }
  4303  
  4304  // Do executes the "jobs.projects.jobs.batchDelete" call.
  4305  // Any non-2xx status code is an error. Response headers are in either
  4306  // *Empty.ServerResponse.Header or (if a response was returned at all) in
  4307  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4308  // whether the returned error was because http.StatusNotModified was returned.
  4309  func (c *ProjectsJobsBatchDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
  4310  	gensupport.SetOptions(c.urlParams_, opts...)
  4311  	res, err := c.doRequest("json")
  4312  	if res != nil && res.StatusCode == http.StatusNotModified {
  4313  		if res.Body != nil {
  4314  			res.Body.Close()
  4315  		}
  4316  		return nil, gensupport.WrapError(&googleapi.Error{
  4317  			Code:   res.StatusCode,
  4318  			Header: res.Header,
  4319  		})
  4320  	}
  4321  	if err != nil {
  4322  		return nil, err
  4323  	}
  4324  	defer googleapi.CloseBody(res)
  4325  	if err := googleapi.CheckResponse(res); err != nil {
  4326  		return nil, gensupport.WrapError(err)
  4327  	}
  4328  	ret := &Empty{
  4329  		ServerResponse: googleapi.ServerResponse{
  4330  			Header:         res.Header,
  4331  			HTTPStatusCode: res.StatusCode,
  4332  		},
  4333  	}
  4334  	target := &ret
  4335  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4336  		return nil, err
  4337  	}
  4338  	return ret, nil
  4339  }
  4340  
  4341  type ProjectsJobsCreateCall struct {
  4342  	s                *Service
  4343  	parent           string
  4344  	createjobrequest *CreateJobRequest
  4345  	urlParams_       gensupport.URLParams
  4346  	ctx_             context.Context
  4347  	header_          http.Header
  4348  }
  4349  
  4350  // Create: Creates a new job. Typically, the job becomes searchable within 10
  4351  // seconds, but it may take up to 5 minutes.
  4352  //
  4353  //   - parent: The resource name of the project under which the job is created.
  4354  //     The format is "projects/{project_id}", for example,
  4355  //     "projects/api-test-project".
  4356  func (r *ProjectsJobsService) Create(parent string, createjobrequest *CreateJobRequest) *ProjectsJobsCreateCall {
  4357  	c := &ProjectsJobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4358  	c.parent = parent
  4359  	c.createjobrequest = createjobrequest
  4360  	return c
  4361  }
  4362  
  4363  // Fields allows partial responses to be retrieved. See
  4364  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4365  // details.
  4366  func (c *ProjectsJobsCreateCall) Fields(s ...googleapi.Field) *ProjectsJobsCreateCall {
  4367  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4368  	return c
  4369  }
  4370  
  4371  // Context sets the context to be used in this call's Do method.
  4372  func (c *ProjectsJobsCreateCall) Context(ctx context.Context) *ProjectsJobsCreateCall {
  4373  	c.ctx_ = ctx
  4374  	return c
  4375  }
  4376  
  4377  // Header returns a http.Header that can be modified by the caller to add
  4378  // headers to the request.
  4379  func (c *ProjectsJobsCreateCall) Header() http.Header {
  4380  	if c.header_ == nil {
  4381  		c.header_ = make(http.Header)
  4382  	}
  4383  	return c.header_
  4384  }
  4385  
  4386  func (c *ProjectsJobsCreateCall) doRequest(alt string) (*http.Response, error) {
  4387  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4388  	var body io.Reader = nil
  4389  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createjobrequest)
  4390  	if err != nil {
  4391  		return nil, err
  4392  	}
  4393  	c.urlParams_.Set("alt", alt)
  4394  	c.urlParams_.Set("prettyPrint", "false")
  4395  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/jobs")
  4396  	urls += "?" + c.urlParams_.Encode()
  4397  	req, err := http.NewRequest("POST", urls, body)
  4398  	if err != nil {
  4399  		return nil, err
  4400  	}
  4401  	req.Header = reqHeaders
  4402  	googleapi.Expand(req.URL, map[string]string{
  4403  		"parent": c.parent,
  4404  	})
  4405  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4406  }
  4407  
  4408  // Do executes the "jobs.projects.jobs.create" call.
  4409  // Any non-2xx status code is an error. Response headers are in either
  4410  // *Job.ServerResponse.Header or (if a response was returned at all) in
  4411  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4412  // whether the returned error was because http.StatusNotModified was returned.
  4413  func (c *ProjectsJobsCreateCall) Do(opts ...googleapi.CallOption) (*Job, error) {
  4414  	gensupport.SetOptions(c.urlParams_, opts...)
  4415  	res, err := c.doRequest("json")
  4416  	if res != nil && res.StatusCode == http.StatusNotModified {
  4417  		if res.Body != nil {
  4418  			res.Body.Close()
  4419  		}
  4420  		return nil, gensupport.WrapError(&googleapi.Error{
  4421  			Code:   res.StatusCode,
  4422  			Header: res.Header,
  4423  		})
  4424  	}
  4425  	if err != nil {
  4426  		return nil, err
  4427  	}
  4428  	defer googleapi.CloseBody(res)
  4429  	if err := googleapi.CheckResponse(res); err != nil {
  4430  		return nil, gensupport.WrapError(err)
  4431  	}
  4432  	ret := &Job{
  4433  		ServerResponse: googleapi.ServerResponse{
  4434  			Header:         res.Header,
  4435  			HTTPStatusCode: res.StatusCode,
  4436  		},
  4437  	}
  4438  	target := &ret
  4439  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4440  		return nil, err
  4441  	}
  4442  	return ret, nil
  4443  }
  4444  
  4445  type ProjectsJobsDeleteCall struct {
  4446  	s          *Service
  4447  	name       string
  4448  	urlParams_ gensupport.URLParams
  4449  	ctx_       context.Context
  4450  	header_    http.Header
  4451  }
  4452  
  4453  // Delete: Deletes the specified job. Typically, the job becomes unsearchable
  4454  // within 10 seconds, but it may take up to 5 minutes.
  4455  //
  4456  //   - name: The resource name of the job to be deleted. The format is
  4457  //     "projects/{project_id}/jobs/{job_id}", for example,
  4458  //     "projects/api-test-project/jobs/1234".
  4459  func (r *ProjectsJobsService) Delete(name string) *ProjectsJobsDeleteCall {
  4460  	c := &ProjectsJobsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4461  	c.name = name
  4462  	return c
  4463  }
  4464  
  4465  // Fields allows partial responses to be retrieved. See
  4466  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4467  // details.
  4468  func (c *ProjectsJobsDeleteCall) Fields(s ...googleapi.Field) *ProjectsJobsDeleteCall {
  4469  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4470  	return c
  4471  }
  4472  
  4473  // Context sets the context to be used in this call's Do method.
  4474  func (c *ProjectsJobsDeleteCall) Context(ctx context.Context) *ProjectsJobsDeleteCall {
  4475  	c.ctx_ = ctx
  4476  	return c
  4477  }
  4478  
  4479  // Header returns a http.Header that can be modified by the caller to add
  4480  // headers to the request.
  4481  func (c *ProjectsJobsDeleteCall) Header() http.Header {
  4482  	if c.header_ == nil {
  4483  		c.header_ = make(http.Header)
  4484  	}
  4485  	return c.header_
  4486  }
  4487  
  4488  func (c *ProjectsJobsDeleteCall) doRequest(alt string) (*http.Response, error) {
  4489  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4490  	var body io.Reader = nil
  4491  	c.urlParams_.Set("alt", alt)
  4492  	c.urlParams_.Set("prettyPrint", "false")
  4493  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
  4494  	urls += "?" + c.urlParams_.Encode()
  4495  	req, err := http.NewRequest("DELETE", urls, body)
  4496  	if err != nil {
  4497  		return nil, err
  4498  	}
  4499  	req.Header = reqHeaders
  4500  	googleapi.Expand(req.URL, map[string]string{
  4501  		"name": c.name,
  4502  	})
  4503  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4504  }
  4505  
  4506  // Do executes the "jobs.projects.jobs.delete" call.
  4507  // Any non-2xx status code is an error. Response headers are in either
  4508  // *Empty.ServerResponse.Header or (if a response was returned at all) in
  4509  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4510  // whether the returned error was because http.StatusNotModified was returned.
  4511  func (c *ProjectsJobsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
  4512  	gensupport.SetOptions(c.urlParams_, opts...)
  4513  	res, err := c.doRequest("json")
  4514  	if res != nil && res.StatusCode == http.StatusNotModified {
  4515  		if res.Body != nil {
  4516  			res.Body.Close()
  4517  		}
  4518  		return nil, gensupport.WrapError(&googleapi.Error{
  4519  			Code:   res.StatusCode,
  4520  			Header: res.Header,
  4521  		})
  4522  	}
  4523  	if err != nil {
  4524  		return nil, err
  4525  	}
  4526  	defer googleapi.CloseBody(res)
  4527  	if err := googleapi.CheckResponse(res); err != nil {
  4528  		return nil, gensupport.WrapError(err)
  4529  	}
  4530  	ret := &Empty{
  4531  		ServerResponse: googleapi.ServerResponse{
  4532  			Header:         res.Header,
  4533  			HTTPStatusCode: res.StatusCode,
  4534  		},
  4535  	}
  4536  	target := &ret
  4537  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4538  		return nil, err
  4539  	}
  4540  	return ret, nil
  4541  }
  4542  
  4543  type ProjectsJobsGetCall struct {
  4544  	s            *Service
  4545  	name         string
  4546  	urlParams_   gensupport.URLParams
  4547  	ifNoneMatch_ string
  4548  	ctx_         context.Context
  4549  	header_      http.Header
  4550  }
  4551  
  4552  // Get: Retrieves the specified job, whose status is OPEN or recently EXPIRED
  4553  // within the last 90 days.
  4554  //
  4555  //   - name: The resource name of the job to retrieve. The format is
  4556  //     "projects/{project_id}/jobs/{job_id}", for example,
  4557  //     "projects/api-test-project/jobs/1234".
  4558  func (r *ProjectsJobsService) Get(name string) *ProjectsJobsGetCall {
  4559  	c := &ProjectsJobsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4560  	c.name = name
  4561  	return c
  4562  }
  4563  
  4564  // Fields allows partial responses to be retrieved. See
  4565  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4566  // details.
  4567  func (c *ProjectsJobsGetCall) Fields(s ...googleapi.Field) *ProjectsJobsGetCall {
  4568  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4569  	return c
  4570  }
  4571  
  4572  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4573  // object's ETag matches the given value. This is useful for getting updates
  4574  // only after the object has changed since the last request.
  4575  func (c *ProjectsJobsGetCall) IfNoneMatch(entityTag string) *ProjectsJobsGetCall {
  4576  	c.ifNoneMatch_ = entityTag
  4577  	return c
  4578  }
  4579  
  4580  // Context sets the context to be used in this call's Do method.
  4581  func (c *ProjectsJobsGetCall) Context(ctx context.Context) *ProjectsJobsGetCall {
  4582  	c.ctx_ = ctx
  4583  	return c
  4584  }
  4585  
  4586  // Header returns a http.Header that can be modified by the caller to add
  4587  // headers to the request.
  4588  func (c *ProjectsJobsGetCall) Header() http.Header {
  4589  	if c.header_ == nil {
  4590  		c.header_ = make(http.Header)
  4591  	}
  4592  	return c.header_
  4593  }
  4594  
  4595  func (c *ProjectsJobsGetCall) doRequest(alt string) (*http.Response, error) {
  4596  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4597  	if c.ifNoneMatch_ != "" {
  4598  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4599  	}
  4600  	var body io.Reader = nil
  4601  	c.urlParams_.Set("alt", alt)
  4602  	c.urlParams_.Set("prettyPrint", "false")
  4603  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
  4604  	urls += "?" + c.urlParams_.Encode()
  4605  	req, err := http.NewRequest("GET", urls, body)
  4606  	if err != nil {
  4607  		return nil, err
  4608  	}
  4609  	req.Header = reqHeaders
  4610  	googleapi.Expand(req.URL, map[string]string{
  4611  		"name": c.name,
  4612  	})
  4613  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4614  }
  4615  
  4616  // Do executes the "jobs.projects.jobs.get" call.
  4617  // Any non-2xx status code is an error. Response headers are in either
  4618  // *Job.ServerResponse.Header or (if a response was returned at all) in
  4619  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4620  // whether the returned error was because http.StatusNotModified was returned.
  4621  func (c *ProjectsJobsGetCall) Do(opts ...googleapi.CallOption) (*Job, error) {
  4622  	gensupport.SetOptions(c.urlParams_, opts...)
  4623  	res, err := c.doRequest("json")
  4624  	if res != nil && res.StatusCode == http.StatusNotModified {
  4625  		if res.Body != nil {
  4626  			res.Body.Close()
  4627  		}
  4628  		return nil, gensupport.WrapError(&googleapi.Error{
  4629  			Code:   res.StatusCode,
  4630  			Header: res.Header,
  4631  		})
  4632  	}
  4633  	if err != nil {
  4634  		return nil, err
  4635  	}
  4636  	defer googleapi.CloseBody(res)
  4637  	if err := googleapi.CheckResponse(res); err != nil {
  4638  		return nil, gensupport.WrapError(err)
  4639  	}
  4640  	ret := &Job{
  4641  		ServerResponse: googleapi.ServerResponse{
  4642  			Header:         res.Header,
  4643  			HTTPStatusCode: res.StatusCode,
  4644  		},
  4645  	}
  4646  	target := &ret
  4647  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4648  		return nil, err
  4649  	}
  4650  	return ret, nil
  4651  }
  4652  
  4653  type ProjectsJobsListCall struct {
  4654  	s            *Service
  4655  	parent       string
  4656  	urlParams_   gensupport.URLParams
  4657  	ifNoneMatch_ string
  4658  	ctx_         context.Context
  4659  	header_      http.Header
  4660  }
  4661  
  4662  // List: Lists jobs by filter.
  4663  //
  4664  //   - parent: The resource name of the project under which the job is created.
  4665  //     The format is "projects/{project_id}", for example,
  4666  //     "projects/api-test-project".
  4667  func (r *ProjectsJobsService) List(parent string) *ProjectsJobsListCall {
  4668  	c := &ProjectsJobsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4669  	c.parent = parent
  4670  	return c
  4671  }
  4672  
  4673  // Filter sets the optional parameter "filter": Required. The filter string
  4674  // specifies the jobs to be enumerated. Supported operator: =, AND The fields
  4675  // eligible for filtering are: * `companyName` * `requisitionId` * `status`
  4676  // Available values: OPEN, EXPIRED, ALL. Defaults to OPEN if no value is
  4677  // specified. At least one of `companyName` and `requisitionId` must present or
  4678  // an INVALID_ARGUMENT error is thrown. Sample Query: * companyName =
  4679  // "projects/api-test-project/companies/123" * companyName =
  4680  // "projects/api-test-project/companies/123" AND requisitionId = "req-1" *
  4681  // companyName = "projects/api-test-project/companies/123" AND status =
  4682  // "EXPIRED" * requisitionId = "req-1" * requisitionId = "req-1" AND status =
  4683  // "EXPIRED"
  4684  func (c *ProjectsJobsListCall) Filter(filter string) *ProjectsJobsListCall {
  4685  	c.urlParams_.Set("filter", filter)
  4686  	return c
  4687  }
  4688  
  4689  // JobView sets the optional parameter "jobView": The desired job attributes
  4690  // returned for jobs in the search response. Defaults to JobView.JOB_VIEW_FULL
  4691  // if no value is specified.
  4692  //
  4693  // Possible values:
  4694  //
  4695  //	"JOB_VIEW_UNSPECIFIED" - Default value.
  4696  //	"JOB_VIEW_ID_ONLY" - A ID only view of job, with following attributes:
  4697  //
  4698  // Job.name, Job.requisition_id, Job.language_code.
  4699  //
  4700  //	"JOB_VIEW_MINIMAL" - A minimal view of the job, with the following
  4701  //
  4702  // attributes: Job.name, Job.requisition_id, Job.title, Job.company_name,
  4703  // Job.DerivedInfo.locations, Job.language_code.
  4704  //
  4705  //	"JOB_VIEW_SMALL" - A small view of the job, with the following attributes
  4706  //
  4707  // in the search results: Job.name, Job.requisition_id, Job.title,
  4708  // Job.company_name, Job.DerivedInfo.locations, Job.visibility,
  4709  // Job.language_code, Job.description.
  4710  //
  4711  //	"JOB_VIEW_FULL" - All available attributes are included in the search
  4712  //
  4713  // results.
  4714  func (c *ProjectsJobsListCall) JobView(jobView string) *ProjectsJobsListCall {
  4715  	c.urlParams_.Set("jobView", jobView)
  4716  	return c
  4717  }
  4718  
  4719  // PageSize sets the optional parameter "pageSize": The maximum number of jobs
  4720  // to be returned per page of results. If job_view is set to
  4721  // JobView.JOB_VIEW_ID_ONLY, the maximum allowed page size is 1000. Otherwise,
  4722  // the maximum allowed page size is 100. Default is 100 if empty or a number <
  4723  // 1 is specified.
  4724  func (c *ProjectsJobsListCall) PageSize(pageSize int64) *ProjectsJobsListCall {
  4725  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  4726  	return c
  4727  }
  4728  
  4729  // PageToken sets the optional parameter "pageToken": The starting point of a
  4730  // query result.
  4731  func (c *ProjectsJobsListCall) PageToken(pageToken string) *ProjectsJobsListCall {
  4732  	c.urlParams_.Set("pageToken", pageToken)
  4733  	return c
  4734  }
  4735  
  4736  // Fields allows partial responses to be retrieved. See
  4737  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4738  // details.
  4739  func (c *ProjectsJobsListCall) Fields(s ...googleapi.Field) *ProjectsJobsListCall {
  4740  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4741  	return c
  4742  }
  4743  
  4744  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4745  // object's ETag matches the given value. This is useful for getting updates
  4746  // only after the object has changed since the last request.
  4747  func (c *ProjectsJobsListCall) IfNoneMatch(entityTag string) *ProjectsJobsListCall {
  4748  	c.ifNoneMatch_ = entityTag
  4749  	return c
  4750  }
  4751  
  4752  // Context sets the context to be used in this call's Do method.
  4753  func (c *ProjectsJobsListCall) Context(ctx context.Context) *ProjectsJobsListCall {
  4754  	c.ctx_ = ctx
  4755  	return c
  4756  }
  4757  
  4758  // Header returns a http.Header that can be modified by the caller to add
  4759  // headers to the request.
  4760  func (c *ProjectsJobsListCall) Header() http.Header {
  4761  	if c.header_ == nil {
  4762  		c.header_ = make(http.Header)
  4763  	}
  4764  	return c.header_
  4765  }
  4766  
  4767  func (c *ProjectsJobsListCall) doRequest(alt string) (*http.Response, error) {
  4768  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4769  	if c.ifNoneMatch_ != "" {
  4770  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4771  	}
  4772  	var body io.Reader = nil
  4773  	c.urlParams_.Set("alt", alt)
  4774  	c.urlParams_.Set("prettyPrint", "false")
  4775  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/jobs")
  4776  	urls += "?" + c.urlParams_.Encode()
  4777  	req, err := http.NewRequest("GET", urls, body)
  4778  	if err != nil {
  4779  		return nil, err
  4780  	}
  4781  	req.Header = reqHeaders
  4782  	googleapi.Expand(req.URL, map[string]string{
  4783  		"parent": c.parent,
  4784  	})
  4785  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4786  }
  4787  
  4788  // Do executes the "jobs.projects.jobs.list" call.
  4789  // Any non-2xx status code is an error. Response headers are in either
  4790  // *ListJobsResponse.ServerResponse.Header or (if a response was returned at
  4791  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  4792  // check whether the returned error was because http.StatusNotModified was
  4793  // returned.
  4794  func (c *ProjectsJobsListCall) Do(opts ...googleapi.CallOption) (*ListJobsResponse, error) {
  4795  	gensupport.SetOptions(c.urlParams_, opts...)
  4796  	res, err := c.doRequest("json")
  4797  	if res != nil && res.StatusCode == http.StatusNotModified {
  4798  		if res.Body != nil {
  4799  			res.Body.Close()
  4800  		}
  4801  		return nil, gensupport.WrapError(&googleapi.Error{
  4802  			Code:   res.StatusCode,
  4803  			Header: res.Header,
  4804  		})
  4805  	}
  4806  	if err != nil {
  4807  		return nil, err
  4808  	}
  4809  	defer googleapi.CloseBody(res)
  4810  	if err := googleapi.CheckResponse(res); err != nil {
  4811  		return nil, gensupport.WrapError(err)
  4812  	}
  4813  	ret := &ListJobsResponse{
  4814  		ServerResponse: googleapi.ServerResponse{
  4815  			Header:         res.Header,
  4816  			HTTPStatusCode: res.StatusCode,
  4817  		},
  4818  	}
  4819  	target := &ret
  4820  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4821  		return nil, err
  4822  	}
  4823  	return ret, nil
  4824  }
  4825  
  4826  // Pages invokes f for each page of results.
  4827  // A non-nil error returned from f will halt the iteration.
  4828  // The provided context supersedes any context provided to the Context method.
  4829  func (c *ProjectsJobsListCall) Pages(ctx context.Context, f func(*ListJobsResponse) error) error {
  4830  	c.ctx_ = ctx
  4831  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  4832  	for {
  4833  		x, err := c.Do()
  4834  		if err != nil {
  4835  			return err
  4836  		}
  4837  		if err := f(x); err != nil {
  4838  			return err
  4839  		}
  4840  		if x.NextPageToken == "" {
  4841  			return nil
  4842  		}
  4843  		c.PageToken(x.NextPageToken)
  4844  	}
  4845  }
  4846  
  4847  type ProjectsJobsPatchCall struct {
  4848  	s                *Service
  4849  	name             string
  4850  	updatejobrequest *UpdateJobRequest
  4851  	urlParams_       gensupport.URLParams
  4852  	ctx_             context.Context
  4853  	header_          http.Header
  4854  }
  4855  
  4856  // Patch: Updates specified job. Typically, updated contents become visible in
  4857  // search results within 10 seconds, but it may take up to 5 minutes.
  4858  //
  4859  //   - name: Required during job update. The resource name for the job. This is
  4860  //     generated by the service when a job is created. The format is
  4861  //     "projects/{project_id}/jobs/{job_id}", for example,
  4862  //     "projects/api-test-project/jobs/1234". Use of this field in job queries
  4863  //     and API calls is preferred over the use of requisition_id since this value
  4864  //     is unique.
  4865  func (r *ProjectsJobsService) Patch(name string, updatejobrequest *UpdateJobRequest) *ProjectsJobsPatchCall {
  4866  	c := &ProjectsJobsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4867  	c.name = name
  4868  	c.updatejobrequest = updatejobrequest
  4869  	return c
  4870  }
  4871  
  4872  // Fields allows partial responses to be retrieved. See
  4873  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4874  // details.
  4875  func (c *ProjectsJobsPatchCall) Fields(s ...googleapi.Field) *ProjectsJobsPatchCall {
  4876  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4877  	return c
  4878  }
  4879  
  4880  // Context sets the context to be used in this call's Do method.
  4881  func (c *ProjectsJobsPatchCall) Context(ctx context.Context) *ProjectsJobsPatchCall {
  4882  	c.ctx_ = ctx
  4883  	return c
  4884  }
  4885  
  4886  // Header returns a http.Header that can be modified by the caller to add
  4887  // headers to the request.
  4888  func (c *ProjectsJobsPatchCall) Header() http.Header {
  4889  	if c.header_ == nil {
  4890  		c.header_ = make(http.Header)
  4891  	}
  4892  	return c.header_
  4893  }
  4894  
  4895  func (c *ProjectsJobsPatchCall) doRequest(alt string) (*http.Response, error) {
  4896  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4897  	var body io.Reader = nil
  4898  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatejobrequest)
  4899  	if err != nil {
  4900  		return nil, err
  4901  	}
  4902  	c.urlParams_.Set("alt", alt)
  4903  	c.urlParams_.Set("prettyPrint", "false")
  4904  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
  4905  	urls += "?" + c.urlParams_.Encode()
  4906  	req, err := http.NewRequest("PATCH", urls, body)
  4907  	if err != nil {
  4908  		return nil, err
  4909  	}
  4910  	req.Header = reqHeaders
  4911  	googleapi.Expand(req.URL, map[string]string{
  4912  		"name": c.name,
  4913  	})
  4914  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4915  }
  4916  
  4917  // Do executes the "jobs.projects.jobs.patch" call.
  4918  // Any non-2xx status code is an error. Response headers are in either
  4919  // *Job.ServerResponse.Header or (if a response was returned at all) in
  4920  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4921  // whether the returned error was because http.StatusNotModified was returned.
  4922  func (c *ProjectsJobsPatchCall) Do(opts ...googleapi.CallOption) (*Job, error) {
  4923  	gensupport.SetOptions(c.urlParams_, opts...)
  4924  	res, err := c.doRequest("json")
  4925  	if res != nil && res.StatusCode == http.StatusNotModified {
  4926  		if res.Body != nil {
  4927  			res.Body.Close()
  4928  		}
  4929  		return nil, gensupport.WrapError(&googleapi.Error{
  4930  			Code:   res.StatusCode,
  4931  			Header: res.Header,
  4932  		})
  4933  	}
  4934  	if err != nil {
  4935  		return nil, err
  4936  	}
  4937  	defer googleapi.CloseBody(res)
  4938  	if err := googleapi.CheckResponse(res); err != nil {
  4939  		return nil, gensupport.WrapError(err)
  4940  	}
  4941  	ret := &Job{
  4942  		ServerResponse: googleapi.ServerResponse{
  4943  			Header:         res.Header,
  4944  			HTTPStatusCode: res.StatusCode,
  4945  		},
  4946  	}
  4947  	target := &ret
  4948  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4949  		return nil, err
  4950  	}
  4951  	return ret, nil
  4952  }
  4953  
  4954  type ProjectsJobsSearchCall struct {
  4955  	s                 *Service
  4956  	parent            string
  4957  	searchjobsrequest *SearchJobsRequest
  4958  	urlParams_        gensupport.URLParams
  4959  	ctx_              context.Context
  4960  	header_           http.Header
  4961  }
  4962  
  4963  // Search: Searches for jobs using the provided SearchJobsRequest. This call
  4964  // constrains the visibility of jobs present in the database, and only returns
  4965  // jobs that the caller has permission to search against.
  4966  //
  4967  //   - parent: The resource name of the project to search within. The format is
  4968  //     "projects/{project_id}", for example, "projects/api-test-project".
  4969  func (r *ProjectsJobsService) Search(parent string, searchjobsrequest *SearchJobsRequest) *ProjectsJobsSearchCall {
  4970  	c := &ProjectsJobsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4971  	c.parent = parent
  4972  	c.searchjobsrequest = searchjobsrequest
  4973  	return c
  4974  }
  4975  
  4976  // Fields allows partial responses to be retrieved. See
  4977  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4978  // details.
  4979  func (c *ProjectsJobsSearchCall) Fields(s ...googleapi.Field) *ProjectsJobsSearchCall {
  4980  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4981  	return c
  4982  }
  4983  
  4984  // Context sets the context to be used in this call's Do method.
  4985  func (c *ProjectsJobsSearchCall) Context(ctx context.Context) *ProjectsJobsSearchCall {
  4986  	c.ctx_ = ctx
  4987  	return c
  4988  }
  4989  
  4990  // Header returns a http.Header that can be modified by the caller to add
  4991  // headers to the request.
  4992  func (c *ProjectsJobsSearchCall) Header() http.Header {
  4993  	if c.header_ == nil {
  4994  		c.header_ = make(http.Header)
  4995  	}
  4996  	return c.header_
  4997  }
  4998  
  4999  func (c *ProjectsJobsSearchCall) doRequest(alt string) (*http.Response, error) {
  5000  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  5001  	var body io.Reader = nil
  5002  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchjobsrequest)
  5003  	if err != nil {
  5004  		return nil, err
  5005  	}
  5006  	c.urlParams_.Set("alt", alt)
  5007  	c.urlParams_.Set("prettyPrint", "false")
  5008  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/jobs:search")
  5009  	urls += "?" + c.urlParams_.Encode()
  5010  	req, err := http.NewRequest("POST", urls, body)
  5011  	if err != nil {
  5012  		return nil, err
  5013  	}
  5014  	req.Header = reqHeaders
  5015  	googleapi.Expand(req.URL, map[string]string{
  5016  		"parent": c.parent,
  5017  	})
  5018  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5019  }
  5020  
  5021  // Do executes the "jobs.projects.jobs.search" call.
  5022  // Any non-2xx status code is an error. Response headers are in either
  5023  // *SearchJobsResponse.ServerResponse.Header or (if a response was returned at
  5024  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  5025  // check whether the returned error was because http.StatusNotModified was
  5026  // returned.
  5027  func (c *ProjectsJobsSearchCall) Do(opts ...googleapi.CallOption) (*SearchJobsResponse, error) {
  5028  	gensupport.SetOptions(c.urlParams_, opts...)
  5029  	res, err := c.doRequest("json")
  5030  	if res != nil && res.StatusCode == http.StatusNotModified {
  5031  		if res.Body != nil {
  5032  			res.Body.Close()
  5033  		}
  5034  		return nil, gensupport.WrapError(&googleapi.Error{
  5035  			Code:   res.StatusCode,
  5036  			Header: res.Header,
  5037  		})
  5038  	}
  5039  	if err != nil {
  5040  		return nil, err
  5041  	}
  5042  	defer googleapi.CloseBody(res)
  5043  	if err := googleapi.CheckResponse(res); err != nil {
  5044  		return nil, gensupport.WrapError(err)
  5045  	}
  5046  	ret := &SearchJobsResponse{
  5047  		ServerResponse: googleapi.ServerResponse{
  5048  			Header:         res.Header,
  5049  			HTTPStatusCode: res.StatusCode,
  5050  		},
  5051  	}
  5052  	target := &ret
  5053  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5054  		return nil, err
  5055  	}
  5056  	return ret, nil
  5057  }
  5058  
  5059  // Pages invokes f for each page of results.
  5060  // A non-nil error returned from f will halt the iteration.
  5061  // The provided context supersedes any context provided to the Context method.
  5062  func (c *ProjectsJobsSearchCall) Pages(ctx context.Context, f func(*SearchJobsResponse) error) error {
  5063  	c.ctx_ = ctx
  5064  	defer func(pt string) { c.searchjobsrequest.PageToken = pt }(c.searchjobsrequest.PageToken)
  5065  	for {
  5066  		x, err := c.Do()
  5067  		if err != nil {
  5068  			return err
  5069  		}
  5070  		if err := f(x); err != nil {
  5071  			return err
  5072  		}
  5073  		if x.NextPageToken == "" {
  5074  			return nil
  5075  		}
  5076  		c.searchjobsrequest.PageToken = x.NextPageToken
  5077  	}
  5078  }
  5079  
  5080  type ProjectsJobsSearchForAlertCall struct {
  5081  	s                 *Service
  5082  	parent            string
  5083  	searchjobsrequest *SearchJobsRequest
  5084  	urlParams_        gensupport.URLParams
  5085  	ctx_              context.Context
  5086  	header_           http.Header
  5087  }
  5088  
  5089  // SearchForAlert: Searches for jobs using the provided SearchJobsRequest. This
  5090  // API call is intended for the use case of targeting passive job seekers (for
  5091  // example, job seekers who have signed up to receive email alerts about
  5092  // potential job opportunities), and has different algorithmic adjustments that
  5093  // are targeted to passive job seekers. This call constrains the visibility of
  5094  // jobs present in the database, and only returns jobs the caller has
  5095  // permission to search against.
  5096  //
  5097  //   - parent: The resource name of the project to search within. The format is
  5098  //     "projects/{project_id}", for example, "projects/api-test-project".
  5099  func (r *ProjectsJobsService) SearchForAlert(parent string, searchjobsrequest *SearchJobsRequest) *ProjectsJobsSearchForAlertCall {
  5100  	c := &ProjectsJobsSearchForAlertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5101  	c.parent = parent
  5102  	c.searchjobsrequest = searchjobsrequest
  5103  	return c
  5104  }
  5105  
  5106  // Fields allows partial responses to be retrieved. See
  5107  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5108  // details.
  5109  func (c *ProjectsJobsSearchForAlertCall) Fields(s ...googleapi.Field) *ProjectsJobsSearchForAlertCall {
  5110  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5111  	return c
  5112  }
  5113  
  5114  // Context sets the context to be used in this call's Do method.
  5115  func (c *ProjectsJobsSearchForAlertCall) Context(ctx context.Context) *ProjectsJobsSearchForAlertCall {
  5116  	c.ctx_ = ctx
  5117  	return c
  5118  }
  5119  
  5120  // Header returns a http.Header that can be modified by the caller to add
  5121  // headers to the request.
  5122  func (c *ProjectsJobsSearchForAlertCall) Header() http.Header {
  5123  	if c.header_ == nil {
  5124  		c.header_ = make(http.Header)
  5125  	}
  5126  	return c.header_
  5127  }
  5128  
  5129  func (c *ProjectsJobsSearchForAlertCall) doRequest(alt string) (*http.Response, error) {
  5130  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  5131  	var body io.Reader = nil
  5132  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchjobsrequest)
  5133  	if err != nil {
  5134  		return nil, err
  5135  	}
  5136  	c.urlParams_.Set("alt", alt)
  5137  	c.urlParams_.Set("prettyPrint", "false")
  5138  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+parent}/jobs:searchForAlert")
  5139  	urls += "?" + c.urlParams_.Encode()
  5140  	req, err := http.NewRequest("POST", urls, body)
  5141  	if err != nil {
  5142  		return nil, err
  5143  	}
  5144  	req.Header = reqHeaders
  5145  	googleapi.Expand(req.URL, map[string]string{
  5146  		"parent": c.parent,
  5147  	})
  5148  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5149  }
  5150  
  5151  // Do executes the "jobs.projects.jobs.searchForAlert" call.
  5152  // Any non-2xx status code is an error. Response headers are in either
  5153  // *SearchJobsResponse.ServerResponse.Header or (if a response was returned at
  5154  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  5155  // check whether the returned error was because http.StatusNotModified was
  5156  // returned.
  5157  func (c *ProjectsJobsSearchForAlertCall) Do(opts ...googleapi.CallOption) (*SearchJobsResponse, error) {
  5158  	gensupport.SetOptions(c.urlParams_, opts...)
  5159  	res, err := c.doRequest("json")
  5160  	if res != nil && res.StatusCode == http.StatusNotModified {
  5161  		if res.Body != nil {
  5162  			res.Body.Close()
  5163  		}
  5164  		return nil, gensupport.WrapError(&googleapi.Error{
  5165  			Code:   res.StatusCode,
  5166  			Header: res.Header,
  5167  		})
  5168  	}
  5169  	if err != nil {
  5170  		return nil, err
  5171  	}
  5172  	defer googleapi.CloseBody(res)
  5173  	if err := googleapi.CheckResponse(res); err != nil {
  5174  		return nil, gensupport.WrapError(err)
  5175  	}
  5176  	ret := &SearchJobsResponse{
  5177  		ServerResponse: googleapi.ServerResponse{
  5178  			Header:         res.Header,
  5179  			HTTPStatusCode: res.StatusCode,
  5180  		},
  5181  	}
  5182  	target := &ret
  5183  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5184  		return nil, err
  5185  	}
  5186  	return ret, nil
  5187  }
  5188  
  5189  // Pages invokes f for each page of results.
  5190  // A non-nil error returned from f will halt the iteration.
  5191  // The provided context supersedes any context provided to the Context method.
  5192  func (c *ProjectsJobsSearchForAlertCall) Pages(ctx context.Context, f func(*SearchJobsResponse) error) error {
  5193  	c.ctx_ = ctx
  5194  	defer func(pt string) { c.searchjobsrequest.PageToken = pt }(c.searchjobsrequest.PageToken)
  5195  	for {
  5196  		x, err := c.Do()
  5197  		if err != nil {
  5198  			return err
  5199  		}
  5200  		if err := f(x); err != nil {
  5201  			return err
  5202  		}
  5203  		if x.NextPageToken == "" {
  5204  			return nil
  5205  		}
  5206  		c.searchjobsrequest.PageToken = x.NextPageToken
  5207  	}
  5208  }
  5209  
  5210  type ProjectsOperationsGetCall struct {
  5211  	s            *Service
  5212  	name         string
  5213  	urlParams_   gensupport.URLParams
  5214  	ifNoneMatch_ string
  5215  	ctx_         context.Context
  5216  	header_      http.Header
  5217  }
  5218  
  5219  // Get: Gets the latest state of a long-running operation. Clients can use this
  5220  // method to poll the operation result at intervals as recommended by the API
  5221  // service.
  5222  //
  5223  // - name: The name of the operation resource.
  5224  func (r *ProjectsOperationsService) Get(name string) *ProjectsOperationsGetCall {
  5225  	c := &ProjectsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5226  	c.name = name
  5227  	return c
  5228  }
  5229  
  5230  // Fields allows partial responses to be retrieved. See
  5231  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5232  // details.
  5233  func (c *ProjectsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsOperationsGetCall {
  5234  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5235  	return c
  5236  }
  5237  
  5238  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  5239  // object's ETag matches the given value. This is useful for getting updates
  5240  // only after the object has changed since the last request.
  5241  func (c *ProjectsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsOperationsGetCall {
  5242  	c.ifNoneMatch_ = entityTag
  5243  	return c
  5244  }
  5245  
  5246  // Context sets the context to be used in this call's Do method.
  5247  func (c *ProjectsOperationsGetCall) Context(ctx context.Context) *ProjectsOperationsGetCall {
  5248  	c.ctx_ = ctx
  5249  	return c
  5250  }
  5251  
  5252  // Header returns a http.Header that can be modified by the caller to add
  5253  // headers to the request.
  5254  func (c *ProjectsOperationsGetCall) Header() http.Header {
  5255  	if c.header_ == nil {
  5256  		c.header_ = make(http.Header)
  5257  	}
  5258  	return c.header_
  5259  }
  5260  
  5261  func (c *ProjectsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
  5262  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  5263  	if c.ifNoneMatch_ != "" {
  5264  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  5265  	}
  5266  	var body io.Reader = nil
  5267  	c.urlParams_.Set("alt", alt)
  5268  	c.urlParams_.Set("prettyPrint", "false")
  5269  	urls := googleapi.ResolveRelative(c.s.BasePath, "v3p1beta1/{+name}")
  5270  	urls += "?" + c.urlParams_.Encode()
  5271  	req, err := http.NewRequest("GET", urls, body)
  5272  	if err != nil {
  5273  		return nil, err
  5274  	}
  5275  	req.Header = reqHeaders
  5276  	googleapi.Expand(req.URL, map[string]string{
  5277  		"name": c.name,
  5278  	})
  5279  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5280  }
  5281  
  5282  // Do executes the "jobs.projects.operations.get" call.
  5283  // Any non-2xx status code is an error. Response headers are in either
  5284  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  5285  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  5286  // whether the returned error was because http.StatusNotModified was returned.
  5287  func (c *ProjectsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  5288  	gensupport.SetOptions(c.urlParams_, opts...)
  5289  	res, err := c.doRequest("json")
  5290  	if res != nil && res.StatusCode == http.StatusNotModified {
  5291  		if res.Body != nil {
  5292  			res.Body.Close()
  5293  		}
  5294  		return nil, gensupport.WrapError(&googleapi.Error{
  5295  			Code:   res.StatusCode,
  5296  			Header: res.Header,
  5297  		})
  5298  	}
  5299  	if err != nil {
  5300  		return nil, err
  5301  	}
  5302  	defer googleapi.CloseBody(res)
  5303  	if err := googleapi.CheckResponse(res); err != nil {
  5304  		return nil, gensupport.WrapError(err)
  5305  	}
  5306  	ret := &Operation{
  5307  		ServerResponse: googleapi.ServerResponse{
  5308  			Header:         res.Header,
  5309  			HTTPStatusCode: res.StatusCode,
  5310  		},
  5311  	}
  5312  	target := &ret
  5313  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5314  		return nil, err
  5315  	}
  5316  	return ret, nil
  5317  }
  5318  

View as plain text