
com.google.api.services.jobs.v4.model.Job Maven / Gradle / Ivy
/*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
/*
* This code was generated by https://github.com/googleapis/google-api-java-client-services/
* Modify at your own risk.
*/
package com.google.api.services.jobs.v4.model;
/**
* A Job resource represents a job posting (also referred to as a "job listing" or "job
* requisition"). A job belongs to a Company, which is the hiring entity responsible for the job.
*
* This is the Java data model class that specifies how to parse/serialize into the JSON that is
* transmitted over HTTP when working with the Cloud Talent Solution API. For a detailed explanation
* see:
* https://developers.google.com/api-client-library/java/google-http-java-client/json
*
*
* @author Google, Inc.
*/
@SuppressWarnings("javadoc")
public final class Job extends com.google.api.client.json.GenericJson {
/**
* Strongly recommended for the best service experience. Location(s) where the employer is looking
* to hire for this job posting. Specifying the full street address(es) of the hiring location
* enables better API results, especially job searches by commute time. At most 50 locations are
* allowed for best search performance. If a job has more locations, it is suggested to split it
* into multiple jobs with unique requisition_ids (e.g. 'ReqA' becomes 'ReqA-1', 'ReqA-2', and so
* on.) as multiple jobs with the same company, language_code and requisition_id are not allowed.
* If the original requisition_id must be preserved, a custom field should be used for storage. It
* is also suggested to group the locations that close to each other in the same job for better
* search experience. Jobs with multiple addresses must have their addresses with the same
* LocationType to allow location filtering to work properly. (For example, a Job with addresses
* "1600 Amphitheatre Parkway, Mountain View, CA, USA" and "London, UK" may not have location
* filters applied correctly at search time since the first is a LocationType.STREET_ADDRESS and
* the second is a LocationType.LOCALITY.) If a job needs to have multiple addresses, it is
* suggested to split it into multiple jobs with same LocationTypes. The maximum number of allowed
* characters is 500.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.List addresses;
/**
* Job application information.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private ApplicationInfo applicationInfo;
/**
* Required. The resource name of the company listing the job. The format is
* "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For example,
* "projects/foo/tenants/bar/companies/baz".
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String company;
/**
* Output only. Display name of the company listing the job.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String companyDisplayName;
/**
* Job compensation information (a.k.a. "pay rate") i.e., the compensation that will paid to the
* employee.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private CompensationInfo compensationInfo;
/**
* A map of fields to hold both filterable and non-filterable custom job attributes that are not
* covered by the provided structured fields. The keys of the map are strings up to 64 bytes and
* must match the pattern: `a-zA-Z*`. For example, key0LikeThis or KEY_1_LIKE_THIS. At most 100
* filterable and at most 100 unfilterable keys are supported. For filterable `string_values`,
* across all keys at most 200 values are allowed, with each string no more than 255 characters.
* For unfilterable `string_values`, the maximum total size of `string_values` across all keys is
* 50KB.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.Map customAttributes;
static {
// hack to force ProGuard to consider CustomAttribute used, since otherwise it would be stripped out
// see https://github.com/google/google-api-java-client/issues/543
com.google.api.client.util.Data.nullOf(CustomAttribute.class);
}
/**
* The desired education degrees for the job, such as Bachelors, Masters.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.List degreeTypes;
/**
* The department or functional area within the company with the open position. The maximum number
* of allowed characters is 255.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String department;
/**
* Output only. Derived details about the job posting.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private JobDerivedInfo derivedInfo;
/**
* Required. The description of the job, which typically includes a multi-paragraph description of
* the company and related information. Separate fields are provided on the job object for
* responsibilities, qualifications, and other job characteristics. Use of these separate job
* fields is recommended. This field accepts and sanitizes HTML input, and also accepts bold,
* italic, ordered list, and unordered list markup tags. The maximum number of allowed characters
* is 100,000.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String description;
/**
* The employment type(s) of a job, for example, full time or part time.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.List employmentTypes;
/**
* A description of bonus, commission, and other compensation incentives associated with the job
* not including salary or pay. The maximum number of allowed characters is 10,000.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String incentives;
/**
* The benefits included with the job.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.List jobBenefits;
/**
* The end timestamp of the job. Typically this field is used for contracting engagements. Invalid
* timestamps are ignored.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private String jobEndTime;
/**
* The experience level associated with the job, such as "Entry Level".
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String jobLevel;
/**
* The start timestamp of the job in UTC time zone. Typically this field is used for contracting
* engagements. Invalid timestamps are ignored.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private String jobStartTime;
/**
* The language of the posting. This field is distinct from any requirements for fluency that are
* associated with the job. Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
* For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
* class="external" target="_blank" }. If this field is unspecified and Job.description is
* present, detected language code based on Job.description is assigned, otherwise defaults to
* 'en_US'.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String languageCode;
/**
* Required during job update. The resource name for the job. This is generated by the service
* when a job is created. The format is "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}".
* For example, "projects/foo/tenants/bar/jobs/baz". Use of this field in job queries and API
* calls is preferred over the use of requisition_id since this value is unique.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String name;
/**
* Output only. The timestamp when this job posting was created.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private String postingCreateTime;
/**
* Strongly recommended for the best service experience. The expiration timestamp of the job.
* After this timestamp, the job is marked as expired, and it no longer appears in search results.
* The expired job can't be listed by the ListJobs API, but it can be retrieved with the GetJob
* API or updated with the UpdateJob API or deleted with the DeleteJob API. An expired job can be
* updated and opened again by using a future expiration timestamp. Updating an expired job fails
* if there is another existing open job with same company, language_code and requisition_id. The
* expired jobs are retained in our system for 90 days. However, the overall expired job count
* cannot exceed 3 times the maximum number of open jobs over previous 7 days. If this threshold
* is exceeded, expired jobs are cleaned out in order of earliest expire time. Expired jobs are no
* longer accessible after they are cleaned out. Invalid timestamps are ignored, and treated as
* expire time not provided. If the timestamp is before the instant request is made, the job is
* treated as expired immediately on creation. This kind of job can not be updated. And when
* creating a job with past timestamp, the posting_publish_time must be set before
* posting_expire_time. The purpose of this feature is to allow other objects, such as
* Application, to refer a job that didn't exist in the system prior to becoming expired. If you
* want to modify a job that was expired on creation, delete it and create a new one. If this
* value isn't provided at the time of job creation or is invalid, the job posting expires after
* 30 days from the job's creation time. For example, if the job was created on 2017/01/01 13:00AM
* UTC with an unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC. If this
* value isn't provided on job update, it depends on the field masks set by
* UpdateJobRequest.update_mask. If the field masks include job_end_time, or the masks are empty
* meaning that every field is updated, the job posting expires after 30 days from the job's last
* update time. Otherwise the expiration date isn't updated.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private String postingExpireTime;
/**
* The timestamp this job posting was most recently published. The default value is the time the
* request arrives at the server. Invalid timestamps are ignored.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private String postingPublishTime;
/**
* The job PostingRegion (for example, state, country) throughout which the job is available. If
* this field is set, a LocationFilter in a search query within the job region finds this job
* posting if an exact location match isn't specified. If this field is set to
* PostingRegion.NATION or PostingRegion.ADMINISTRATIVE_AREA, setting job Job.addresses to the
* same location level as this field is strongly recommended.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String postingRegion;
/**
* Output only. The timestamp when this job posting was last updated.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private String postingUpdateTime;
/**
* Options for job processing.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private ProcessingOptions processingOptions;
/**
* A promotion value of the job, as determined by the client. The value determines the sort order
* of the jobs returned when searching for jobs using the featured jobs search call, with higher
* promotional values being returned first and ties being resolved by relevance sort. Only the
* jobs with a promotionValue >0 are returned in a FEATURED_JOB_SEARCH. Default value is 0, and
* negative values are treated as 0.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer promotionValue;
/**
* A description of the qualifications required to perform the job. The use of this field is
* recommended as an alternative to using the more general description field. This field accepts
* and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list
* markup tags. The maximum number of allowed characters is 10,000.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String qualifications;
/**
* Required. The requisition ID, also referred to as the posting ID, is assigned by the client to
* identify a job. This field is intended to be used by clients for client identification and
* tracking of postings. A job isn't allowed to be created if there is another job with the same
* company, language_code and requisition_id. The maximum number of allowed characters is 255.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String requisitionId;
/**
* A description of job responsibilities. The use of this field is recommended as an alternative
* to using the more general description field. This field accepts and sanitizes HTML input, and
* also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of
* allowed characters is 10,000.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String responsibilities;
/**
* Required. The title of the job, such as "Software Engineer" The maximum number of allowed
* characters is 500.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String title;
/**
* Deprecated. The job is only visible to the owner. The visibility of the job. Defaults to
* Visibility.ACCOUNT_ONLY if not specified.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String visibility;
/**
* Strongly recommended for the best service experience. Location(s) where the employer is looking
* to hire for this job posting. Specifying the full street address(es) of the hiring location
* enables better API results, especially job searches by commute time. At most 50 locations are
* allowed for best search performance. If a job has more locations, it is suggested to split it
* into multiple jobs with unique requisition_ids (e.g. 'ReqA' becomes 'ReqA-1', 'ReqA-2', and so
* on.) as multiple jobs with the same company, language_code and requisition_id are not allowed.
* If the original requisition_id must be preserved, a custom field should be used for storage. It
* is also suggested to group the locations that close to each other in the same job for better
* search experience. Jobs with multiple addresses must have their addresses with the same
* LocationType to allow location filtering to work properly. (For example, a Job with addresses
* "1600 Amphitheatre Parkway, Mountain View, CA, USA" and "London, UK" may not have location
* filters applied correctly at search time since the first is a LocationType.STREET_ADDRESS and
* the second is a LocationType.LOCALITY.) If a job needs to have multiple addresses, it is
* suggested to split it into multiple jobs with same LocationTypes. The maximum number of allowed
* characters is 500.
* @return value or {@code null} for none
*/
public java.util.List getAddresses() {
return addresses;
}
/**
* Strongly recommended for the best service experience. Location(s) where the employer is looking
* to hire for this job posting. Specifying the full street address(es) of the hiring location
* enables better API results, especially job searches by commute time. At most 50 locations are
* allowed for best search performance. If a job has more locations, it is suggested to split it
* into multiple jobs with unique requisition_ids (e.g. 'ReqA' becomes 'ReqA-1', 'ReqA-2', and so
* on.) as multiple jobs with the same company, language_code and requisition_id are not allowed.
* If the original requisition_id must be preserved, a custom field should be used for storage. It
* is also suggested to group the locations that close to each other in the same job for better
* search experience. Jobs with multiple addresses must have their addresses with the same
* LocationType to allow location filtering to work properly. (For example, a Job with addresses
* "1600 Amphitheatre Parkway, Mountain View, CA, USA" and "London, UK" may not have location
* filters applied correctly at search time since the first is a LocationType.STREET_ADDRESS and
* the second is a LocationType.LOCALITY.) If a job needs to have multiple addresses, it is
* suggested to split it into multiple jobs with same LocationTypes. The maximum number of allowed
* characters is 500.
* @param addresses addresses or {@code null} for none
*/
public Job setAddresses(java.util.List addresses) {
this.addresses = addresses;
return this;
}
/**
* Job application information.
* @return value or {@code null} for none
*/
public ApplicationInfo getApplicationInfo() {
return applicationInfo;
}
/**
* Job application information.
* @param applicationInfo applicationInfo or {@code null} for none
*/
public Job setApplicationInfo(ApplicationInfo applicationInfo) {
this.applicationInfo = applicationInfo;
return this;
}
/**
* Required. The resource name of the company listing the job. The format is
* "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For example,
* "projects/foo/tenants/bar/companies/baz".
* @return value or {@code null} for none
*/
public java.lang.String getCompany() {
return company;
}
/**
* Required. The resource name of the company listing the job. The format is
* "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For example,
* "projects/foo/tenants/bar/companies/baz".
* @param company company or {@code null} for none
*/
public Job setCompany(java.lang.String company) {
this.company = company;
return this;
}
/**
* Output only. Display name of the company listing the job.
* @return value or {@code null} for none
*/
public java.lang.String getCompanyDisplayName() {
return companyDisplayName;
}
/**
* Output only. Display name of the company listing the job.
* @param companyDisplayName companyDisplayName or {@code null} for none
*/
public Job setCompanyDisplayName(java.lang.String companyDisplayName) {
this.companyDisplayName = companyDisplayName;
return this;
}
/**
* Job compensation information (a.k.a. "pay rate") i.e., the compensation that will paid to the
* employee.
* @return value or {@code null} for none
*/
public CompensationInfo getCompensationInfo() {
return compensationInfo;
}
/**
* Job compensation information (a.k.a. "pay rate") i.e., the compensation that will paid to the
* employee.
* @param compensationInfo compensationInfo or {@code null} for none
*/
public Job setCompensationInfo(CompensationInfo compensationInfo) {
this.compensationInfo = compensationInfo;
return this;
}
/**
* A map of fields to hold both filterable and non-filterable custom job attributes that are not
* covered by the provided structured fields. The keys of the map are strings up to 64 bytes and
* must match the pattern: `a-zA-Z*`. For example, key0LikeThis or KEY_1_LIKE_THIS. At most 100
* filterable and at most 100 unfilterable keys are supported. For filterable `string_values`,
* across all keys at most 200 values are allowed, with each string no more than 255 characters.
* For unfilterable `string_values`, the maximum total size of `string_values` across all keys is
* 50KB.
* @return value or {@code null} for none
*/
public java.util.Map getCustomAttributes() {
return customAttributes;
}
/**
* A map of fields to hold both filterable and non-filterable custom job attributes that are not
* covered by the provided structured fields. The keys of the map are strings up to 64 bytes and
* must match the pattern: `a-zA-Z*`. For example, key0LikeThis or KEY_1_LIKE_THIS. At most 100
* filterable and at most 100 unfilterable keys are supported. For filterable `string_values`,
* across all keys at most 200 values are allowed, with each string no more than 255 characters.
* For unfilterable `string_values`, the maximum total size of `string_values` across all keys is
* 50KB.
* @param customAttributes customAttributes or {@code null} for none
*/
public Job setCustomAttributes(java.util.Map customAttributes) {
this.customAttributes = customAttributes;
return this;
}
/**
* The desired education degrees for the job, such as Bachelors, Masters.
* @return value or {@code null} for none
*/
public java.util.List getDegreeTypes() {
return degreeTypes;
}
/**
* The desired education degrees for the job, such as Bachelors, Masters.
* @param degreeTypes degreeTypes or {@code null} for none
*/
public Job setDegreeTypes(java.util.List degreeTypes) {
this.degreeTypes = degreeTypes;
return this;
}
/**
* The department or functional area within the company with the open position. The maximum number
* of allowed characters is 255.
* @return value or {@code null} for none
*/
public java.lang.String getDepartment() {
return department;
}
/**
* The department or functional area within the company with the open position. The maximum number
* of allowed characters is 255.
* @param department department or {@code null} for none
*/
public Job setDepartment(java.lang.String department) {
this.department = department;
return this;
}
/**
* Output only. Derived details about the job posting.
* @return value or {@code null} for none
*/
public JobDerivedInfo getDerivedInfo() {
return derivedInfo;
}
/**
* Output only. Derived details about the job posting.
* @param derivedInfo derivedInfo or {@code null} for none
*/
public Job setDerivedInfo(JobDerivedInfo derivedInfo) {
this.derivedInfo = derivedInfo;
return this;
}
/**
* Required. The description of the job, which typically includes a multi-paragraph description of
* the company and related information. Separate fields are provided on the job object for
* responsibilities, qualifications, and other job characteristics. Use of these separate job
* fields is recommended. This field accepts and sanitizes HTML input, and also accepts bold,
* italic, ordered list, and unordered list markup tags. The maximum number of allowed characters
* is 100,000.
* @return value or {@code null} for none
*/
public java.lang.String getDescription() {
return description;
}
/**
* Required. The description of the job, which typically includes a multi-paragraph description of
* the company and related information. Separate fields are provided on the job object for
* responsibilities, qualifications, and other job characteristics. Use of these separate job
* fields is recommended. This field accepts and sanitizes HTML input, and also accepts bold,
* italic, ordered list, and unordered list markup tags. The maximum number of allowed characters
* is 100,000.
* @param description description or {@code null} for none
*/
public Job setDescription(java.lang.String description) {
this.description = description;
return this;
}
/**
* The employment type(s) of a job, for example, full time or part time.
* @return value or {@code null} for none
*/
public java.util.List getEmploymentTypes() {
return employmentTypes;
}
/**
* The employment type(s) of a job, for example, full time or part time.
* @param employmentTypes employmentTypes or {@code null} for none
*/
public Job setEmploymentTypes(java.util.List employmentTypes) {
this.employmentTypes = employmentTypes;
return this;
}
/**
* A description of bonus, commission, and other compensation incentives associated with the job
* not including salary or pay. The maximum number of allowed characters is 10,000.
* @return value or {@code null} for none
*/
public java.lang.String getIncentives() {
return incentives;
}
/**
* A description of bonus, commission, and other compensation incentives associated with the job
* not including salary or pay. The maximum number of allowed characters is 10,000.
* @param incentives incentives or {@code null} for none
*/
public Job setIncentives(java.lang.String incentives) {
this.incentives = incentives;
return this;
}
/**
* The benefits included with the job.
* @return value or {@code null} for none
*/
public java.util.List getJobBenefits() {
return jobBenefits;
}
/**
* The benefits included with the job.
* @param jobBenefits jobBenefits or {@code null} for none
*/
public Job setJobBenefits(java.util.List jobBenefits) {
this.jobBenefits = jobBenefits;
return this;
}
/**
* The end timestamp of the job. Typically this field is used for contracting engagements. Invalid
* timestamps are ignored.
* @return value or {@code null} for none
*/
public String getJobEndTime() {
return jobEndTime;
}
/**
* The end timestamp of the job. Typically this field is used for contracting engagements. Invalid
* timestamps are ignored.
* @param jobEndTime jobEndTime or {@code null} for none
*/
public Job setJobEndTime(String jobEndTime) {
this.jobEndTime = jobEndTime;
return this;
}
/**
* The experience level associated with the job, such as "Entry Level".
* @return value or {@code null} for none
*/
public java.lang.String getJobLevel() {
return jobLevel;
}
/**
* The experience level associated with the job, such as "Entry Level".
* @param jobLevel jobLevel or {@code null} for none
*/
public Job setJobLevel(java.lang.String jobLevel) {
this.jobLevel = jobLevel;
return this;
}
/**
* The start timestamp of the job in UTC time zone. Typically this field is used for contracting
* engagements. Invalid timestamps are ignored.
* @return value or {@code null} for none
*/
public String getJobStartTime() {
return jobStartTime;
}
/**
* The start timestamp of the job in UTC time zone. Typically this field is used for contracting
* engagements. Invalid timestamps are ignored.
* @param jobStartTime jobStartTime or {@code null} for none
*/
public Job setJobStartTime(String jobStartTime) {
this.jobStartTime = jobStartTime;
return this;
}
/**
* The language of the posting. This field is distinct from any requirements for fluency that are
* associated with the job. Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
* For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
* class="external" target="_blank" }. If this field is unspecified and Job.description is
* present, detected language code based on Job.description is assigned, otherwise defaults to
* 'en_US'.
* @return value or {@code null} for none
*/
public java.lang.String getLanguageCode() {
return languageCode;
}
/**
* The language of the posting. This field is distinct from any requirements for fluency that are
* associated with the job. Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
* For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
* class="external" target="_blank" }. If this field is unspecified and Job.description is
* present, detected language code based on Job.description is assigned, otherwise defaults to
* 'en_US'.
* @param languageCode languageCode or {@code null} for none
*/
public Job setLanguageCode(java.lang.String languageCode) {
this.languageCode = languageCode;
return this;
}
/**
* Required during job update. The resource name for the job. This is generated by the service
* when a job is created. The format is "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}".
* For example, "projects/foo/tenants/bar/jobs/baz". Use of this field in job queries and API
* calls is preferred over the use of requisition_id since this value is unique.
* @return value or {@code null} for none
*/
public java.lang.String getName() {
return name;
}
/**
* Required during job update. The resource name for the job. This is generated by the service
* when a job is created. The format is "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}".
* For example, "projects/foo/tenants/bar/jobs/baz". Use of this field in job queries and API
* calls is preferred over the use of requisition_id since this value is unique.
* @param name name or {@code null} for none
*/
public Job setName(java.lang.String name) {
this.name = name;
return this;
}
/**
* Output only. The timestamp when this job posting was created.
* @return value or {@code null} for none
*/
public String getPostingCreateTime() {
return postingCreateTime;
}
/**
* Output only. The timestamp when this job posting was created.
* @param postingCreateTime postingCreateTime or {@code null} for none
*/
public Job setPostingCreateTime(String postingCreateTime) {
this.postingCreateTime = postingCreateTime;
return this;
}
/**
* Strongly recommended for the best service experience. The expiration timestamp of the job.
* After this timestamp, the job is marked as expired, and it no longer appears in search results.
* The expired job can't be listed by the ListJobs API, but it can be retrieved with the GetJob
* API or updated with the UpdateJob API or deleted with the DeleteJob API. An expired job can be
* updated and opened again by using a future expiration timestamp. Updating an expired job fails
* if there is another existing open job with same company, language_code and requisition_id. The
* expired jobs are retained in our system for 90 days. However, the overall expired job count
* cannot exceed 3 times the maximum number of open jobs over previous 7 days. If this threshold
* is exceeded, expired jobs are cleaned out in order of earliest expire time. Expired jobs are no
* longer accessible after they are cleaned out. Invalid timestamps are ignored, and treated as
* expire time not provided. If the timestamp is before the instant request is made, the job is
* treated as expired immediately on creation. This kind of job can not be updated. And when
* creating a job with past timestamp, the posting_publish_time must be set before
* posting_expire_time. The purpose of this feature is to allow other objects, such as
* Application, to refer a job that didn't exist in the system prior to becoming expired. If you
* want to modify a job that was expired on creation, delete it and create a new one. If this
* value isn't provided at the time of job creation or is invalid, the job posting expires after
* 30 days from the job's creation time. For example, if the job was created on 2017/01/01 13:00AM
* UTC with an unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC. If this
* value isn't provided on job update, it depends on the field masks set by
* UpdateJobRequest.update_mask. If the field masks include job_end_time, or the masks are empty
* meaning that every field is updated, the job posting expires after 30 days from the job's last
* update time. Otherwise the expiration date isn't updated.
* @return value or {@code null} for none
*/
public String getPostingExpireTime() {
return postingExpireTime;
}
/**
* Strongly recommended for the best service experience. The expiration timestamp of the job.
* After this timestamp, the job is marked as expired, and it no longer appears in search results.
* The expired job can't be listed by the ListJobs API, but it can be retrieved with the GetJob
* API or updated with the UpdateJob API or deleted with the DeleteJob API. An expired job can be
* updated and opened again by using a future expiration timestamp. Updating an expired job fails
* if there is another existing open job with same company, language_code and requisition_id. The
* expired jobs are retained in our system for 90 days. However, the overall expired job count
* cannot exceed 3 times the maximum number of open jobs over previous 7 days. If this threshold
* is exceeded, expired jobs are cleaned out in order of earliest expire time. Expired jobs are no
* longer accessible after they are cleaned out. Invalid timestamps are ignored, and treated as
* expire time not provided. If the timestamp is before the instant request is made, the job is
* treated as expired immediately on creation. This kind of job can not be updated. And when
* creating a job with past timestamp, the posting_publish_time must be set before
* posting_expire_time. The purpose of this feature is to allow other objects, such as
* Application, to refer a job that didn't exist in the system prior to becoming expired. If you
* want to modify a job that was expired on creation, delete it and create a new one. If this
* value isn't provided at the time of job creation or is invalid, the job posting expires after
* 30 days from the job's creation time. For example, if the job was created on 2017/01/01 13:00AM
* UTC with an unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC. If this
* value isn't provided on job update, it depends on the field masks set by
* UpdateJobRequest.update_mask. If the field masks include job_end_time, or the masks are empty
* meaning that every field is updated, the job posting expires after 30 days from the job's last
* update time. Otherwise the expiration date isn't updated.
* @param postingExpireTime postingExpireTime or {@code null} for none
*/
public Job setPostingExpireTime(String postingExpireTime) {
this.postingExpireTime = postingExpireTime;
return this;
}
/**
* The timestamp this job posting was most recently published. The default value is the time the
* request arrives at the server. Invalid timestamps are ignored.
* @return value or {@code null} for none
*/
public String getPostingPublishTime() {
return postingPublishTime;
}
/**
* The timestamp this job posting was most recently published. The default value is the time the
* request arrives at the server. Invalid timestamps are ignored.
* @param postingPublishTime postingPublishTime or {@code null} for none
*/
public Job setPostingPublishTime(String postingPublishTime) {
this.postingPublishTime = postingPublishTime;
return this;
}
/**
* The job PostingRegion (for example, state, country) throughout which the job is available. If
* this field is set, a LocationFilter in a search query within the job region finds this job
* posting if an exact location match isn't specified. If this field is set to
* PostingRegion.NATION or PostingRegion.ADMINISTRATIVE_AREA, setting job Job.addresses to the
* same location level as this field is strongly recommended.
* @return value or {@code null} for none
*/
public java.lang.String getPostingRegion() {
return postingRegion;
}
/**
* The job PostingRegion (for example, state, country) throughout which the job is available. If
* this field is set, a LocationFilter in a search query within the job region finds this job
* posting if an exact location match isn't specified. If this field is set to
* PostingRegion.NATION or PostingRegion.ADMINISTRATIVE_AREA, setting job Job.addresses to the
* same location level as this field is strongly recommended.
* @param postingRegion postingRegion or {@code null} for none
*/
public Job setPostingRegion(java.lang.String postingRegion) {
this.postingRegion = postingRegion;
return this;
}
/**
* Output only. The timestamp when this job posting was last updated.
* @return value or {@code null} for none
*/
public String getPostingUpdateTime() {
return postingUpdateTime;
}
/**
* Output only. The timestamp when this job posting was last updated.
* @param postingUpdateTime postingUpdateTime or {@code null} for none
*/
public Job setPostingUpdateTime(String postingUpdateTime) {
this.postingUpdateTime = postingUpdateTime;
return this;
}
/**
* Options for job processing.
* @return value or {@code null} for none
*/
public ProcessingOptions getProcessingOptions() {
return processingOptions;
}
/**
* Options for job processing.
* @param processingOptions processingOptions or {@code null} for none
*/
public Job setProcessingOptions(ProcessingOptions processingOptions) {
this.processingOptions = processingOptions;
return this;
}
/**
* A promotion value of the job, as determined by the client. The value determines the sort order
* of the jobs returned when searching for jobs using the featured jobs search call, with higher
* promotional values being returned first and ties being resolved by relevance sort. Only the
* jobs with a promotionValue >0 are returned in a FEATURED_JOB_SEARCH. Default value is 0, and
* negative values are treated as 0.
* @return value or {@code null} for none
*/
public java.lang.Integer getPromotionValue() {
return promotionValue;
}
/**
* A promotion value of the job, as determined by the client. The value determines the sort order
* of the jobs returned when searching for jobs using the featured jobs search call, with higher
* promotional values being returned first and ties being resolved by relevance sort. Only the
* jobs with a promotionValue >0 are returned in a FEATURED_JOB_SEARCH. Default value is 0, and
* negative values are treated as 0.
* @param promotionValue promotionValue or {@code null} for none
*/
public Job setPromotionValue(java.lang.Integer promotionValue) {
this.promotionValue = promotionValue;
return this;
}
/**
* A description of the qualifications required to perform the job. The use of this field is
* recommended as an alternative to using the more general description field. This field accepts
* and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list
* markup tags. The maximum number of allowed characters is 10,000.
* @return value or {@code null} for none
*/
public java.lang.String getQualifications() {
return qualifications;
}
/**
* A description of the qualifications required to perform the job. The use of this field is
* recommended as an alternative to using the more general description field. This field accepts
* and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list
* markup tags. The maximum number of allowed characters is 10,000.
* @param qualifications qualifications or {@code null} for none
*/
public Job setQualifications(java.lang.String qualifications) {
this.qualifications = qualifications;
return this;
}
/**
* Required. The requisition ID, also referred to as the posting ID, is assigned by the client to
* identify a job. This field is intended to be used by clients for client identification and
* tracking of postings. A job isn't allowed to be created if there is another job with the same
* company, language_code and requisition_id. The maximum number of allowed characters is 255.
* @return value or {@code null} for none
*/
public java.lang.String getRequisitionId() {
return requisitionId;
}
/**
* Required. The requisition ID, also referred to as the posting ID, is assigned by the client to
* identify a job. This field is intended to be used by clients for client identification and
* tracking of postings. A job isn't allowed to be created if there is another job with the same
* company, language_code and requisition_id. The maximum number of allowed characters is 255.
* @param requisitionId requisitionId or {@code null} for none
*/
public Job setRequisitionId(java.lang.String requisitionId) {
this.requisitionId = requisitionId;
return this;
}
/**
* A description of job responsibilities. The use of this field is recommended as an alternative
* to using the more general description field. This field accepts and sanitizes HTML input, and
* also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of
* allowed characters is 10,000.
* @return value or {@code null} for none
*/
public java.lang.String getResponsibilities() {
return responsibilities;
}
/**
* A description of job responsibilities. The use of this field is recommended as an alternative
* to using the more general description field. This field accepts and sanitizes HTML input, and
* also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of
* allowed characters is 10,000.
* @param responsibilities responsibilities or {@code null} for none
*/
public Job setResponsibilities(java.lang.String responsibilities) {
this.responsibilities = responsibilities;
return this;
}
/**
* Required. The title of the job, such as "Software Engineer" The maximum number of allowed
* characters is 500.
* @return value or {@code null} for none
*/
public java.lang.String getTitle() {
return title;
}
/**
* Required. The title of the job, such as "Software Engineer" The maximum number of allowed
* characters is 500.
* @param title title or {@code null} for none
*/
public Job setTitle(java.lang.String title) {
this.title = title;
return this;
}
/**
* Deprecated. The job is only visible to the owner. The visibility of the job. Defaults to
* Visibility.ACCOUNT_ONLY if not specified.
* @return value or {@code null} for none
*/
public java.lang.String getVisibility() {
return visibility;
}
/**
* Deprecated. The job is only visible to the owner. The visibility of the job. Defaults to
* Visibility.ACCOUNT_ONLY if not specified.
* @param visibility visibility or {@code null} for none
*/
public Job setVisibility(java.lang.String visibility) {
this.visibility = visibility;
return this;
}
@Override
public Job set(String fieldName, Object value) {
return (Job) super.set(fieldName, value);
}
@Override
public Job clone() {
return (Job) super.clone();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy