...

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

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

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

View as plain text