• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2020 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 // Generated by the protocol buffer compiler.  DO NOT EDIT!
17 // source: google/cloud/talent/v4/job.proto
18 
19 package com.google.cloud.talent.v4;
20 
21 /**
22  *
23  *
24  * <pre>
25  * A Job resource represents a job posting (also referred to as a "job listing"
26  * or "job requisition"). A job belongs to a
27  * [Company][google.cloud.talent.v4.Company], which is the hiring entity
28  * responsible for the job.
29  * </pre>
30  *
31  * Protobuf type {@code google.cloud.talent.v4.Job}
32  */
33 public final class Job extends com.google.protobuf.GeneratedMessageV3
34     implements
35     // @@protoc_insertion_point(message_implements:google.cloud.talent.v4.Job)
36     JobOrBuilder {
37   private static final long serialVersionUID = 0L;
38   // Use Job.newBuilder() to construct.
Job(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)39   private Job(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
40     super(builder);
41   }
42 
Job()43   private Job() {
44     name_ = "";
45     company_ = "";
46     requisitionId_ = "";
47     title_ = "";
48     description_ = "";
49     addresses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
50     jobBenefits_ = java.util.Collections.emptyList();
51     degreeTypes_ = java.util.Collections.emptyList();
52     department_ = "";
53     employmentTypes_ = java.util.Collections.emptyList();
54     incentives_ = "";
55     languageCode_ = "";
56     jobLevel_ = 0;
57     qualifications_ = "";
58     responsibilities_ = "";
59     postingRegion_ = 0;
60     visibility_ = 0;
61     companyDisplayName_ = "";
62   }
63 
64   @java.lang.Override
65   @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)66   protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
67     return new Job();
68   }
69 
70   @java.lang.Override
getUnknownFields()71   public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
72     return this.unknownFields;
73   }
74 
getDescriptor()75   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
76     return com.google.cloud.talent.v4.JobProto
77         .internal_static_google_cloud_talent_v4_Job_descriptor;
78   }
79 
80   @SuppressWarnings({"rawtypes"})
81   @java.lang.Override
internalGetMapField(int number)82   protected com.google.protobuf.MapField internalGetMapField(int number) {
83     switch (number) {
84       case 10:
85         return internalGetCustomAttributes();
86       default:
87         throw new RuntimeException("Invalid map field number: " + number);
88     }
89   }
90 
91   @java.lang.Override
92   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()93       internalGetFieldAccessorTable() {
94     return com.google.cloud.talent.v4.JobProto
95         .internal_static_google_cloud_talent_v4_Job_fieldAccessorTable
96         .ensureFieldAccessorsInitialized(
97             com.google.cloud.talent.v4.Job.class, com.google.cloud.talent.v4.Job.Builder.class);
98   }
99 
100   public interface ApplicationInfoOrBuilder
101       extends
102       // @@protoc_insertion_point(interface_extends:google.cloud.talent.v4.Job.ApplicationInfo)
103       com.google.protobuf.MessageOrBuilder {
104 
105     /**
106      *
107      *
108      * <pre>
109      * Use this field to specify email address(es) to which resumes or
110      * applications can be sent.
111      * The maximum number of allowed characters for each entry is 255.
112      * </pre>
113      *
114      * <code>repeated string emails = 1;</code>
115      *
116      * @return A list containing the emails.
117      */
getEmailsList()118     java.util.List<java.lang.String> getEmailsList();
119     /**
120      *
121      *
122      * <pre>
123      * Use this field to specify email address(es) to which resumes or
124      * applications can be sent.
125      * The maximum number of allowed characters for each entry is 255.
126      * </pre>
127      *
128      * <code>repeated string emails = 1;</code>
129      *
130      * @return The count of emails.
131      */
getEmailsCount()132     int getEmailsCount();
133     /**
134      *
135      *
136      * <pre>
137      * Use this field to specify email address(es) to which resumes or
138      * applications can be sent.
139      * The maximum number of allowed characters for each entry is 255.
140      * </pre>
141      *
142      * <code>repeated string emails = 1;</code>
143      *
144      * @param index The index of the element to return.
145      * @return The emails at the given index.
146      */
getEmails(int index)147     java.lang.String getEmails(int index);
148     /**
149      *
150      *
151      * <pre>
152      * Use this field to specify email address(es) to which resumes or
153      * applications can be sent.
154      * The maximum number of allowed characters for each entry is 255.
155      * </pre>
156      *
157      * <code>repeated string emails = 1;</code>
158      *
159      * @param index The index of the value to return.
160      * @return The bytes of the emails at the given index.
161      */
getEmailsBytes(int index)162     com.google.protobuf.ByteString getEmailsBytes(int index);
163 
164     /**
165      *
166      *
167      * <pre>
168      * Use this field to provide instructions, such as "Mail your application
169      * to ...", that a candidate can follow to apply for the job.
170      * This field accepts and sanitizes HTML input, and also accepts
171      * bold, italic, ordered list, and unordered list markup tags.
172      * The maximum number of allowed characters is 3,000.
173      * </pre>
174      *
175      * <code>string instruction = 2;</code>
176      *
177      * @return The instruction.
178      */
getInstruction()179     java.lang.String getInstruction();
180     /**
181      *
182      *
183      * <pre>
184      * Use this field to provide instructions, such as "Mail your application
185      * to ...", that a candidate can follow to apply for the job.
186      * This field accepts and sanitizes HTML input, and also accepts
187      * bold, italic, ordered list, and unordered list markup tags.
188      * The maximum number of allowed characters is 3,000.
189      * </pre>
190      *
191      * <code>string instruction = 2;</code>
192      *
193      * @return The bytes for instruction.
194      */
getInstructionBytes()195     com.google.protobuf.ByteString getInstructionBytes();
196 
197     /**
198      *
199      *
200      * <pre>
201      * Use this URI field to direct an applicant to a website, for example to
202      * link to an online application form.
203      * The maximum number of allowed characters for each entry is 2,000.
204      * </pre>
205      *
206      * <code>repeated string uris = 3;</code>
207      *
208      * @return A list containing the uris.
209      */
getUrisList()210     java.util.List<java.lang.String> getUrisList();
211     /**
212      *
213      *
214      * <pre>
215      * Use this URI field to direct an applicant to a website, for example to
216      * link to an online application form.
217      * The maximum number of allowed characters for each entry is 2,000.
218      * </pre>
219      *
220      * <code>repeated string uris = 3;</code>
221      *
222      * @return The count of uris.
223      */
getUrisCount()224     int getUrisCount();
225     /**
226      *
227      *
228      * <pre>
229      * Use this URI field to direct an applicant to a website, for example to
230      * link to an online application form.
231      * The maximum number of allowed characters for each entry is 2,000.
232      * </pre>
233      *
234      * <code>repeated string uris = 3;</code>
235      *
236      * @param index The index of the element to return.
237      * @return The uris at the given index.
238      */
getUris(int index)239     java.lang.String getUris(int index);
240     /**
241      *
242      *
243      * <pre>
244      * Use this URI field to direct an applicant to a website, for example to
245      * link to an online application form.
246      * The maximum number of allowed characters for each entry is 2,000.
247      * </pre>
248      *
249      * <code>repeated string uris = 3;</code>
250      *
251      * @param index The index of the value to return.
252      * @return The bytes of the uris at the given index.
253      */
getUrisBytes(int index)254     com.google.protobuf.ByteString getUrisBytes(int index);
255   }
256   /**
257    *
258    *
259    * <pre>
260    * Application related details of a job posting.
261    * </pre>
262    *
263    * Protobuf type {@code google.cloud.talent.v4.Job.ApplicationInfo}
264    */
265   public static final class ApplicationInfo extends com.google.protobuf.GeneratedMessageV3
266       implements
267       // @@protoc_insertion_point(message_implements:google.cloud.talent.v4.Job.ApplicationInfo)
268       ApplicationInfoOrBuilder {
269     private static final long serialVersionUID = 0L;
270     // Use ApplicationInfo.newBuilder() to construct.
ApplicationInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)271     private ApplicationInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
272       super(builder);
273     }
274 
ApplicationInfo()275     private ApplicationInfo() {
276       emails_ = com.google.protobuf.LazyStringArrayList.EMPTY;
277       instruction_ = "";
278       uris_ = com.google.protobuf.LazyStringArrayList.EMPTY;
279     }
280 
281     @java.lang.Override
282     @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)283     protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
284       return new ApplicationInfo();
285     }
286 
287     @java.lang.Override
getUnknownFields()288     public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
289       return this.unknownFields;
290     }
291 
getDescriptor()292     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
293       return com.google.cloud.talent.v4.JobProto
294           .internal_static_google_cloud_talent_v4_Job_ApplicationInfo_descriptor;
295     }
296 
297     @java.lang.Override
298     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()299         internalGetFieldAccessorTable() {
300       return com.google.cloud.talent.v4.JobProto
301           .internal_static_google_cloud_talent_v4_Job_ApplicationInfo_fieldAccessorTable
302           .ensureFieldAccessorsInitialized(
303               com.google.cloud.talent.v4.Job.ApplicationInfo.class,
304               com.google.cloud.talent.v4.Job.ApplicationInfo.Builder.class);
305     }
306 
307     public static final int EMAILS_FIELD_NUMBER = 1;
308 
309     @SuppressWarnings("serial")
310     private com.google.protobuf.LazyStringList emails_;
311     /**
312      *
313      *
314      * <pre>
315      * Use this field to specify email address(es) to which resumes or
316      * applications can be sent.
317      * The maximum number of allowed characters for each entry is 255.
318      * </pre>
319      *
320      * <code>repeated string emails = 1;</code>
321      *
322      * @return A list containing the emails.
323      */
getEmailsList()324     public com.google.protobuf.ProtocolStringList getEmailsList() {
325       return emails_;
326     }
327     /**
328      *
329      *
330      * <pre>
331      * Use this field to specify email address(es) to which resumes or
332      * applications can be sent.
333      * The maximum number of allowed characters for each entry is 255.
334      * </pre>
335      *
336      * <code>repeated string emails = 1;</code>
337      *
338      * @return The count of emails.
339      */
getEmailsCount()340     public int getEmailsCount() {
341       return emails_.size();
342     }
343     /**
344      *
345      *
346      * <pre>
347      * Use this field to specify email address(es) to which resumes or
348      * applications can be sent.
349      * The maximum number of allowed characters for each entry is 255.
350      * </pre>
351      *
352      * <code>repeated string emails = 1;</code>
353      *
354      * @param index The index of the element to return.
355      * @return The emails at the given index.
356      */
getEmails(int index)357     public java.lang.String getEmails(int index) {
358       return emails_.get(index);
359     }
360     /**
361      *
362      *
363      * <pre>
364      * Use this field to specify email address(es) to which resumes or
365      * applications can be sent.
366      * The maximum number of allowed characters for each entry is 255.
367      * </pre>
368      *
369      * <code>repeated string emails = 1;</code>
370      *
371      * @param index The index of the value to return.
372      * @return The bytes of the emails at the given index.
373      */
getEmailsBytes(int index)374     public com.google.protobuf.ByteString getEmailsBytes(int index) {
375       return emails_.getByteString(index);
376     }
377 
378     public static final int INSTRUCTION_FIELD_NUMBER = 2;
379 
380     @SuppressWarnings("serial")
381     private volatile java.lang.Object instruction_ = "";
382     /**
383      *
384      *
385      * <pre>
386      * Use this field to provide instructions, such as "Mail your application
387      * to ...", that a candidate can follow to apply for the job.
388      * This field accepts and sanitizes HTML input, and also accepts
389      * bold, italic, ordered list, and unordered list markup tags.
390      * The maximum number of allowed characters is 3,000.
391      * </pre>
392      *
393      * <code>string instruction = 2;</code>
394      *
395      * @return The instruction.
396      */
397     @java.lang.Override
getInstruction()398     public java.lang.String getInstruction() {
399       java.lang.Object ref = instruction_;
400       if (ref instanceof java.lang.String) {
401         return (java.lang.String) ref;
402       } else {
403         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
404         java.lang.String s = bs.toStringUtf8();
405         instruction_ = s;
406         return s;
407       }
408     }
409     /**
410      *
411      *
412      * <pre>
413      * Use this field to provide instructions, such as "Mail your application
414      * to ...", that a candidate can follow to apply for the job.
415      * This field accepts and sanitizes HTML input, and also accepts
416      * bold, italic, ordered list, and unordered list markup tags.
417      * The maximum number of allowed characters is 3,000.
418      * </pre>
419      *
420      * <code>string instruction = 2;</code>
421      *
422      * @return The bytes for instruction.
423      */
424     @java.lang.Override
getInstructionBytes()425     public com.google.protobuf.ByteString getInstructionBytes() {
426       java.lang.Object ref = instruction_;
427       if (ref instanceof java.lang.String) {
428         com.google.protobuf.ByteString b =
429             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
430         instruction_ = b;
431         return b;
432       } else {
433         return (com.google.protobuf.ByteString) ref;
434       }
435     }
436 
437     public static final int URIS_FIELD_NUMBER = 3;
438 
439     @SuppressWarnings("serial")
440     private com.google.protobuf.LazyStringList uris_;
441     /**
442      *
443      *
444      * <pre>
445      * Use this URI field to direct an applicant to a website, for example to
446      * link to an online application form.
447      * The maximum number of allowed characters for each entry is 2,000.
448      * </pre>
449      *
450      * <code>repeated string uris = 3;</code>
451      *
452      * @return A list containing the uris.
453      */
getUrisList()454     public com.google.protobuf.ProtocolStringList getUrisList() {
455       return uris_;
456     }
457     /**
458      *
459      *
460      * <pre>
461      * Use this URI field to direct an applicant to a website, for example to
462      * link to an online application form.
463      * The maximum number of allowed characters for each entry is 2,000.
464      * </pre>
465      *
466      * <code>repeated string uris = 3;</code>
467      *
468      * @return The count of uris.
469      */
getUrisCount()470     public int getUrisCount() {
471       return uris_.size();
472     }
473     /**
474      *
475      *
476      * <pre>
477      * Use this URI field to direct an applicant to a website, for example to
478      * link to an online application form.
479      * The maximum number of allowed characters for each entry is 2,000.
480      * </pre>
481      *
482      * <code>repeated string uris = 3;</code>
483      *
484      * @param index The index of the element to return.
485      * @return The uris at the given index.
486      */
getUris(int index)487     public java.lang.String getUris(int index) {
488       return uris_.get(index);
489     }
490     /**
491      *
492      *
493      * <pre>
494      * Use this URI field to direct an applicant to a website, for example to
495      * link to an online application form.
496      * The maximum number of allowed characters for each entry is 2,000.
497      * </pre>
498      *
499      * <code>repeated string uris = 3;</code>
500      *
501      * @param index The index of the value to return.
502      * @return The bytes of the uris at the given index.
503      */
getUrisBytes(int index)504     public com.google.protobuf.ByteString getUrisBytes(int index) {
505       return uris_.getByteString(index);
506     }
507 
508     private byte memoizedIsInitialized = -1;
509 
510     @java.lang.Override
isInitialized()511     public final boolean isInitialized() {
512       byte isInitialized = memoizedIsInitialized;
513       if (isInitialized == 1) return true;
514       if (isInitialized == 0) return false;
515 
516       memoizedIsInitialized = 1;
517       return true;
518     }
519 
520     @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)521     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
522       for (int i = 0; i < emails_.size(); i++) {
523         com.google.protobuf.GeneratedMessageV3.writeString(output, 1, emails_.getRaw(i));
524       }
525       if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(instruction_)) {
526         com.google.protobuf.GeneratedMessageV3.writeString(output, 2, instruction_);
527       }
528       for (int i = 0; i < uris_.size(); i++) {
529         com.google.protobuf.GeneratedMessageV3.writeString(output, 3, uris_.getRaw(i));
530       }
531       getUnknownFields().writeTo(output);
532     }
533 
534     @java.lang.Override
getSerializedSize()535     public int getSerializedSize() {
536       int size = memoizedSize;
537       if (size != -1) return size;
538 
539       size = 0;
540       {
541         int dataSize = 0;
542         for (int i = 0; i < emails_.size(); i++) {
543           dataSize += computeStringSizeNoTag(emails_.getRaw(i));
544         }
545         size += dataSize;
546         size += 1 * getEmailsList().size();
547       }
548       if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(instruction_)) {
549         size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, instruction_);
550       }
551       {
552         int dataSize = 0;
553         for (int i = 0; i < uris_.size(); i++) {
554           dataSize += computeStringSizeNoTag(uris_.getRaw(i));
555         }
556         size += dataSize;
557         size += 1 * getUrisList().size();
558       }
559       size += getUnknownFields().getSerializedSize();
560       memoizedSize = size;
561       return size;
562     }
563 
564     @java.lang.Override
equals(final java.lang.Object obj)565     public boolean equals(final java.lang.Object obj) {
566       if (obj == this) {
567         return true;
568       }
569       if (!(obj instanceof com.google.cloud.talent.v4.Job.ApplicationInfo)) {
570         return super.equals(obj);
571       }
572       com.google.cloud.talent.v4.Job.ApplicationInfo other =
573           (com.google.cloud.talent.v4.Job.ApplicationInfo) obj;
574 
575       if (!getEmailsList().equals(other.getEmailsList())) return false;
576       if (!getInstruction().equals(other.getInstruction())) return false;
577       if (!getUrisList().equals(other.getUrisList())) return false;
578       if (!getUnknownFields().equals(other.getUnknownFields())) return false;
579       return true;
580     }
581 
582     @java.lang.Override
hashCode()583     public int hashCode() {
584       if (memoizedHashCode != 0) {
585         return memoizedHashCode;
586       }
587       int hash = 41;
588       hash = (19 * hash) + getDescriptor().hashCode();
589       if (getEmailsCount() > 0) {
590         hash = (37 * hash) + EMAILS_FIELD_NUMBER;
591         hash = (53 * hash) + getEmailsList().hashCode();
592       }
593       hash = (37 * hash) + INSTRUCTION_FIELD_NUMBER;
594       hash = (53 * hash) + getInstruction().hashCode();
595       if (getUrisCount() > 0) {
596         hash = (37 * hash) + URIS_FIELD_NUMBER;
597         hash = (53 * hash) + getUrisList().hashCode();
598       }
599       hash = (29 * hash) + getUnknownFields().hashCode();
600       memoizedHashCode = hash;
601       return hash;
602     }
603 
parseFrom(java.nio.ByteBuffer data)604     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseFrom(java.nio.ByteBuffer data)
605         throws com.google.protobuf.InvalidProtocolBufferException {
606       return PARSER.parseFrom(data);
607     }
608 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)609     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseFrom(
610         java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
611         throws com.google.protobuf.InvalidProtocolBufferException {
612       return PARSER.parseFrom(data, extensionRegistry);
613     }
614 
parseFrom( com.google.protobuf.ByteString data)615     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseFrom(
616         com.google.protobuf.ByteString data)
617         throws com.google.protobuf.InvalidProtocolBufferException {
618       return PARSER.parseFrom(data);
619     }
620 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)621     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseFrom(
622         com.google.protobuf.ByteString data,
623         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
624         throws com.google.protobuf.InvalidProtocolBufferException {
625       return PARSER.parseFrom(data, extensionRegistry);
626     }
627 
parseFrom(byte[] data)628     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseFrom(byte[] data)
629         throws com.google.protobuf.InvalidProtocolBufferException {
630       return PARSER.parseFrom(data);
631     }
632 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)633     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseFrom(
634         byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
635         throws com.google.protobuf.InvalidProtocolBufferException {
636       return PARSER.parseFrom(data, extensionRegistry);
637     }
638 
parseFrom( java.io.InputStream input)639     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseFrom(
640         java.io.InputStream input) throws java.io.IOException {
641       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
642     }
643 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)644     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseFrom(
645         java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
646         throws java.io.IOException {
647       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
648           PARSER, input, extensionRegistry);
649     }
650 
parseDelimitedFrom( java.io.InputStream input)651     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseDelimitedFrom(
652         java.io.InputStream input) throws java.io.IOException {
653       return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
654     }
655 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)656     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseDelimitedFrom(
657         java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
658         throws java.io.IOException {
659       return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
660           PARSER, input, extensionRegistry);
661     }
662 
parseFrom( com.google.protobuf.CodedInputStream input)663     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseFrom(
664         com.google.protobuf.CodedInputStream input) throws java.io.IOException {
665       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
666     }
667 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)668     public static com.google.cloud.talent.v4.Job.ApplicationInfo parseFrom(
669         com.google.protobuf.CodedInputStream input,
670         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
671         throws java.io.IOException {
672       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
673           PARSER, input, extensionRegistry);
674     }
675 
676     @java.lang.Override
newBuilderForType()677     public Builder newBuilderForType() {
678       return newBuilder();
679     }
680 
newBuilder()681     public static Builder newBuilder() {
682       return DEFAULT_INSTANCE.toBuilder();
683     }
684 
newBuilder(com.google.cloud.talent.v4.Job.ApplicationInfo prototype)685     public static Builder newBuilder(com.google.cloud.talent.v4.Job.ApplicationInfo prototype) {
686       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
687     }
688 
689     @java.lang.Override
toBuilder()690     public Builder toBuilder() {
691       return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
692     }
693 
694     @java.lang.Override
newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent)695     protected Builder newBuilderForType(
696         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
697       Builder builder = new Builder(parent);
698       return builder;
699     }
700     /**
701      *
702      *
703      * <pre>
704      * Application related details of a job posting.
705      * </pre>
706      *
707      * Protobuf type {@code google.cloud.talent.v4.Job.ApplicationInfo}
708      */
709     public static final class Builder
710         extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
711         implements
712         // @@protoc_insertion_point(builder_implements:google.cloud.talent.v4.Job.ApplicationInfo)
713         com.google.cloud.talent.v4.Job.ApplicationInfoOrBuilder {
getDescriptor()714       public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
715         return com.google.cloud.talent.v4.JobProto
716             .internal_static_google_cloud_talent_v4_Job_ApplicationInfo_descriptor;
717       }
718 
719       @java.lang.Override
720       protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()721           internalGetFieldAccessorTable() {
722         return com.google.cloud.talent.v4.JobProto
723             .internal_static_google_cloud_talent_v4_Job_ApplicationInfo_fieldAccessorTable
724             .ensureFieldAccessorsInitialized(
725                 com.google.cloud.talent.v4.Job.ApplicationInfo.class,
726                 com.google.cloud.talent.v4.Job.ApplicationInfo.Builder.class);
727       }
728 
729       // Construct using com.google.cloud.talent.v4.Job.ApplicationInfo.newBuilder()
Builder()730       private Builder() {}
731 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)732       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
733         super(parent);
734       }
735 
736       @java.lang.Override
clear()737       public Builder clear() {
738         super.clear();
739         bitField0_ = 0;
740         emails_ = com.google.protobuf.LazyStringArrayList.EMPTY;
741         bitField0_ = (bitField0_ & ~0x00000001);
742         instruction_ = "";
743         uris_ = com.google.protobuf.LazyStringArrayList.EMPTY;
744         bitField0_ = (bitField0_ & ~0x00000004);
745         return this;
746       }
747 
748       @java.lang.Override
getDescriptorForType()749       public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
750         return com.google.cloud.talent.v4.JobProto
751             .internal_static_google_cloud_talent_v4_Job_ApplicationInfo_descriptor;
752       }
753 
754       @java.lang.Override
getDefaultInstanceForType()755       public com.google.cloud.talent.v4.Job.ApplicationInfo getDefaultInstanceForType() {
756         return com.google.cloud.talent.v4.Job.ApplicationInfo.getDefaultInstance();
757       }
758 
759       @java.lang.Override
build()760       public com.google.cloud.talent.v4.Job.ApplicationInfo build() {
761         com.google.cloud.talent.v4.Job.ApplicationInfo result = buildPartial();
762         if (!result.isInitialized()) {
763           throw newUninitializedMessageException(result);
764         }
765         return result;
766       }
767 
768       @java.lang.Override
buildPartial()769       public com.google.cloud.talent.v4.Job.ApplicationInfo buildPartial() {
770         com.google.cloud.talent.v4.Job.ApplicationInfo result =
771             new com.google.cloud.talent.v4.Job.ApplicationInfo(this);
772         buildPartialRepeatedFields(result);
773         if (bitField0_ != 0) {
774           buildPartial0(result);
775         }
776         onBuilt();
777         return result;
778       }
779 
buildPartialRepeatedFields( com.google.cloud.talent.v4.Job.ApplicationInfo result)780       private void buildPartialRepeatedFields(
781           com.google.cloud.talent.v4.Job.ApplicationInfo result) {
782         if (((bitField0_ & 0x00000001) != 0)) {
783           emails_ = emails_.getUnmodifiableView();
784           bitField0_ = (bitField0_ & ~0x00000001);
785         }
786         result.emails_ = emails_;
787         if (((bitField0_ & 0x00000004) != 0)) {
788           uris_ = uris_.getUnmodifiableView();
789           bitField0_ = (bitField0_ & ~0x00000004);
790         }
791         result.uris_ = uris_;
792       }
793 
buildPartial0(com.google.cloud.talent.v4.Job.ApplicationInfo result)794       private void buildPartial0(com.google.cloud.talent.v4.Job.ApplicationInfo result) {
795         int from_bitField0_ = bitField0_;
796         if (((from_bitField0_ & 0x00000002) != 0)) {
797           result.instruction_ = instruction_;
798         }
799       }
800 
801       @java.lang.Override
clone()802       public Builder clone() {
803         return super.clone();
804       }
805 
806       @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)807       public Builder setField(
808           com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
809         return super.setField(field, value);
810       }
811 
812       @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)813       public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
814         return super.clearField(field);
815       }
816 
817       @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)818       public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
819         return super.clearOneof(oneof);
820       }
821 
822       @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)823       public Builder setRepeatedField(
824           com.google.protobuf.Descriptors.FieldDescriptor field,
825           int index,
826           java.lang.Object value) {
827         return super.setRepeatedField(field, index, value);
828       }
829 
830       @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)831       public Builder addRepeatedField(
832           com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
833         return super.addRepeatedField(field, value);
834       }
835 
836       @java.lang.Override
mergeFrom(com.google.protobuf.Message other)837       public Builder mergeFrom(com.google.protobuf.Message other) {
838         if (other instanceof com.google.cloud.talent.v4.Job.ApplicationInfo) {
839           return mergeFrom((com.google.cloud.talent.v4.Job.ApplicationInfo) other);
840         } else {
841           super.mergeFrom(other);
842           return this;
843         }
844       }
845 
mergeFrom(com.google.cloud.talent.v4.Job.ApplicationInfo other)846       public Builder mergeFrom(com.google.cloud.talent.v4.Job.ApplicationInfo other) {
847         if (other == com.google.cloud.talent.v4.Job.ApplicationInfo.getDefaultInstance())
848           return this;
849         if (!other.emails_.isEmpty()) {
850           if (emails_.isEmpty()) {
851             emails_ = other.emails_;
852             bitField0_ = (bitField0_ & ~0x00000001);
853           } else {
854             ensureEmailsIsMutable();
855             emails_.addAll(other.emails_);
856           }
857           onChanged();
858         }
859         if (!other.getInstruction().isEmpty()) {
860           instruction_ = other.instruction_;
861           bitField0_ |= 0x00000002;
862           onChanged();
863         }
864         if (!other.uris_.isEmpty()) {
865           if (uris_.isEmpty()) {
866             uris_ = other.uris_;
867             bitField0_ = (bitField0_ & ~0x00000004);
868           } else {
869             ensureUrisIsMutable();
870             uris_.addAll(other.uris_);
871           }
872           onChanged();
873         }
874         this.mergeUnknownFields(other.getUnknownFields());
875         onChanged();
876         return this;
877       }
878 
879       @java.lang.Override
isInitialized()880       public final boolean isInitialized() {
881         return true;
882       }
883 
884       @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)885       public Builder mergeFrom(
886           com.google.protobuf.CodedInputStream input,
887           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
888           throws java.io.IOException {
889         if (extensionRegistry == null) {
890           throw new java.lang.NullPointerException();
891         }
892         try {
893           boolean done = false;
894           while (!done) {
895             int tag = input.readTag();
896             switch (tag) {
897               case 0:
898                 done = true;
899                 break;
900               case 10:
901                 {
902                   java.lang.String s = input.readStringRequireUtf8();
903                   ensureEmailsIsMutable();
904                   emails_.add(s);
905                   break;
906                 } // case 10
907               case 18:
908                 {
909                   instruction_ = input.readStringRequireUtf8();
910                   bitField0_ |= 0x00000002;
911                   break;
912                 } // case 18
913               case 26:
914                 {
915                   java.lang.String s = input.readStringRequireUtf8();
916                   ensureUrisIsMutable();
917                   uris_.add(s);
918                   break;
919                 } // case 26
920               default:
921                 {
922                   if (!super.parseUnknownField(input, extensionRegistry, tag)) {
923                     done = true; // was an endgroup tag
924                   }
925                   break;
926                 } // default:
927             } // switch (tag)
928           } // while (!done)
929         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
930           throw e.unwrapIOException();
931         } finally {
932           onChanged();
933         } // finally
934         return this;
935       }
936 
937       private int bitField0_;
938 
939       private com.google.protobuf.LazyStringList emails_ =
940           com.google.protobuf.LazyStringArrayList.EMPTY;
941 
ensureEmailsIsMutable()942       private void ensureEmailsIsMutable() {
943         if (!((bitField0_ & 0x00000001) != 0)) {
944           emails_ = new com.google.protobuf.LazyStringArrayList(emails_);
945           bitField0_ |= 0x00000001;
946         }
947       }
948       /**
949        *
950        *
951        * <pre>
952        * Use this field to specify email address(es) to which resumes or
953        * applications can be sent.
954        * The maximum number of allowed characters for each entry is 255.
955        * </pre>
956        *
957        * <code>repeated string emails = 1;</code>
958        *
959        * @return A list containing the emails.
960        */
getEmailsList()961       public com.google.protobuf.ProtocolStringList getEmailsList() {
962         return emails_.getUnmodifiableView();
963       }
964       /**
965        *
966        *
967        * <pre>
968        * Use this field to specify email address(es) to which resumes or
969        * applications can be sent.
970        * The maximum number of allowed characters for each entry is 255.
971        * </pre>
972        *
973        * <code>repeated string emails = 1;</code>
974        *
975        * @return The count of emails.
976        */
getEmailsCount()977       public int getEmailsCount() {
978         return emails_.size();
979       }
980       /**
981        *
982        *
983        * <pre>
984        * Use this field to specify email address(es) to which resumes or
985        * applications can be sent.
986        * The maximum number of allowed characters for each entry is 255.
987        * </pre>
988        *
989        * <code>repeated string emails = 1;</code>
990        *
991        * @param index The index of the element to return.
992        * @return The emails at the given index.
993        */
getEmails(int index)994       public java.lang.String getEmails(int index) {
995         return emails_.get(index);
996       }
997       /**
998        *
999        *
1000        * <pre>
1001        * Use this field to specify email address(es) to which resumes or
1002        * applications can be sent.
1003        * The maximum number of allowed characters for each entry is 255.
1004        * </pre>
1005        *
1006        * <code>repeated string emails = 1;</code>
1007        *
1008        * @param index The index of the value to return.
1009        * @return The bytes of the emails at the given index.
1010        */
getEmailsBytes(int index)1011       public com.google.protobuf.ByteString getEmailsBytes(int index) {
1012         return emails_.getByteString(index);
1013       }
1014       /**
1015        *
1016        *
1017        * <pre>
1018        * Use this field to specify email address(es) to which resumes or
1019        * applications can be sent.
1020        * The maximum number of allowed characters for each entry is 255.
1021        * </pre>
1022        *
1023        * <code>repeated string emails = 1;</code>
1024        *
1025        * @param index The index to set the value at.
1026        * @param value The emails to set.
1027        * @return This builder for chaining.
1028        */
setEmails(int index, java.lang.String value)1029       public Builder setEmails(int index, java.lang.String value) {
1030         if (value == null) {
1031           throw new NullPointerException();
1032         }
1033         ensureEmailsIsMutable();
1034         emails_.set(index, value);
1035         onChanged();
1036         return this;
1037       }
1038       /**
1039        *
1040        *
1041        * <pre>
1042        * Use this field to specify email address(es) to which resumes or
1043        * applications can be sent.
1044        * The maximum number of allowed characters for each entry is 255.
1045        * </pre>
1046        *
1047        * <code>repeated string emails = 1;</code>
1048        *
1049        * @param value The emails to add.
1050        * @return This builder for chaining.
1051        */
addEmails(java.lang.String value)1052       public Builder addEmails(java.lang.String value) {
1053         if (value == null) {
1054           throw new NullPointerException();
1055         }
1056         ensureEmailsIsMutable();
1057         emails_.add(value);
1058         onChanged();
1059         return this;
1060       }
1061       /**
1062        *
1063        *
1064        * <pre>
1065        * Use this field to specify email address(es) to which resumes or
1066        * applications can be sent.
1067        * The maximum number of allowed characters for each entry is 255.
1068        * </pre>
1069        *
1070        * <code>repeated string emails = 1;</code>
1071        *
1072        * @param values The emails to add.
1073        * @return This builder for chaining.
1074        */
addAllEmails(java.lang.Iterable<java.lang.String> values)1075       public Builder addAllEmails(java.lang.Iterable<java.lang.String> values) {
1076         ensureEmailsIsMutable();
1077         com.google.protobuf.AbstractMessageLite.Builder.addAll(values, emails_);
1078         onChanged();
1079         return this;
1080       }
1081       /**
1082        *
1083        *
1084        * <pre>
1085        * Use this field to specify email address(es) to which resumes or
1086        * applications can be sent.
1087        * The maximum number of allowed characters for each entry is 255.
1088        * </pre>
1089        *
1090        * <code>repeated string emails = 1;</code>
1091        *
1092        * @return This builder for chaining.
1093        */
clearEmails()1094       public Builder clearEmails() {
1095         emails_ = com.google.protobuf.LazyStringArrayList.EMPTY;
1096         bitField0_ = (bitField0_ & ~0x00000001);
1097         onChanged();
1098         return this;
1099       }
1100       /**
1101        *
1102        *
1103        * <pre>
1104        * Use this field to specify email address(es) to which resumes or
1105        * applications can be sent.
1106        * The maximum number of allowed characters for each entry is 255.
1107        * </pre>
1108        *
1109        * <code>repeated string emails = 1;</code>
1110        *
1111        * @param value The bytes of the emails to add.
1112        * @return This builder for chaining.
1113        */
addEmailsBytes(com.google.protobuf.ByteString value)1114       public Builder addEmailsBytes(com.google.protobuf.ByteString value) {
1115         if (value == null) {
1116           throw new NullPointerException();
1117         }
1118         checkByteStringIsUtf8(value);
1119         ensureEmailsIsMutable();
1120         emails_.add(value);
1121         onChanged();
1122         return this;
1123       }
1124 
1125       private java.lang.Object instruction_ = "";
1126       /**
1127        *
1128        *
1129        * <pre>
1130        * Use this field to provide instructions, such as "Mail your application
1131        * to ...", that a candidate can follow to apply for the job.
1132        * This field accepts and sanitizes HTML input, and also accepts
1133        * bold, italic, ordered list, and unordered list markup tags.
1134        * The maximum number of allowed characters is 3,000.
1135        * </pre>
1136        *
1137        * <code>string instruction = 2;</code>
1138        *
1139        * @return The instruction.
1140        */
getInstruction()1141       public java.lang.String getInstruction() {
1142         java.lang.Object ref = instruction_;
1143         if (!(ref instanceof java.lang.String)) {
1144           com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1145           java.lang.String s = bs.toStringUtf8();
1146           instruction_ = s;
1147           return s;
1148         } else {
1149           return (java.lang.String) ref;
1150         }
1151       }
1152       /**
1153        *
1154        *
1155        * <pre>
1156        * Use this field to provide instructions, such as "Mail your application
1157        * to ...", that a candidate can follow to apply for the job.
1158        * This field accepts and sanitizes HTML input, and also accepts
1159        * bold, italic, ordered list, and unordered list markup tags.
1160        * The maximum number of allowed characters is 3,000.
1161        * </pre>
1162        *
1163        * <code>string instruction = 2;</code>
1164        *
1165        * @return The bytes for instruction.
1166        */
getInstructionBytes()1167       public com.google.protobuf.ByteString getInstructionBytes() {
1168         java.lang.Object ref = instruction_;
1169         if (ref instanceof String) {
1170           com.google.protobuf.ByteString b =
1171               com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1172           instruction_ = b;
1173           return b;
1174         } else {
1175           return (com.google.protobuf.ByteString) ref;
1176         }
1177       }
1178       /**
1179        *
1180        *
1181        * <pre>
1182        * Use this field to provide instructions, such as "Mail your application
1183        * to ...", that a candidate can follow to apply for the job.
1184        * This field accepts and sanitizes HTML input, and also accepts
1185        * bold, italic, ordered list, and unordered list markup tags.
1186        * The maximum number of allowed characters is 3,000.
1187        * </pre>
1188        *
1189        * <code>string instruction = 2;</code>
1190        *
1191        * @param value The instruction to set.
1192        * @return This builder for chaining.
1193        */
setInstruction(java.lang.String value)1194       public Builder setInstruction(java.lang.String value) {
1195         if (value == null) {
1196           throw new NullPointerException();
1197         }
1198         instruction_ = value;
1199         bitField0_ |= 0x00000002;
1200         onChanged();
1201         return this;
1202       }
1203       /**
1204        *
1205        *
1206        * <pre>
1207        * Use this field to provide instructions, such as "Mail your application
1208        * to ...", that a candidate can follow to apply for the job.
1209        * This field accepts and sanitizes HTML input, and also accepts
1210        * bold, italic, ordered list, and unordered list markup tags.
1211        * The maximum number of allowed characters is 3,000.
1212        * </pre>
1213        *
1214        * <code>string instruction = 2;</code>
1215        *
1216        * @return This builder for chaining.
1217        */
clearInstruction()1218       public Builder clearInstruction() {
1219         instruction_ = getDefaultInstance().getInstruction();
1220         bitField0_ = (bitField0_ & ~0x00000002);
1221         onChanged();
1222         return this;
1223       }
1224       /**
1225        *
1226        *
1227        * <pre>
1228        * Use this field to provide instructions, such as "Mail your application
1229        * to ...", that a candidate can follow to apply for the job.
1230        * This field accepts and sanitizes HTML input, and also accepts
1231        * bold, italic, ordered list, and unordered list markup tags.
1232        * The maximum number of allowed characters is 3,000.
1233        * </pre>
1234        *
1235        * <code>string instruction = 2;</code>
1236        *
1237        * @param value The bytes for instruction to set.
1238        * @return This builder for chaining.
1239        */
setInstructionBytes(com.google.protobuf.ByteString value)1240       public Builder setInstructionBytes(com.google.protobuf.ByteString value) {
1241         if (value == null) {
1242           throw new NullPointerException();
1243         }
1244         checkByteStringIsUtf8(value);
1245         instruction_ = value;
1246         bitField0_ |= 0x00000002;
1247         onChanged();
1248         return this;
1249       }
1250 
1251       private com.google.protobuf.LazyStringList uris_ =
1252           com.google.protobuf.LazyStringArrayList.EMPTY;
1253 
ensureUrisIsMutable()1254       private void ensureUrisIsMutable() {
1255         if (!((bitField0_ & 0x00000004) != 0)) {
1256           uris_ = new com.google.protobuf.LazyStringArrayList(uris_);
1257           bitField0_ |= 0x00000004;
1258         }
1259       }
1260       /**
1261        *
1262        *
1263        * <pre>
1264        * Use this URI field to direct an applicant to a website, for example to
1265        * link to an online application form.
1266        * The maximum number of allowed characters for each entry is 2,000.
1267        * </pre>
1268        *
1269        * <code>repeated string uris = 3;</code>
1270        *
1271        * @return A list containing the uris.
1272        */
getUrisList()1273       public com.google.protobuf.ProtocolStringList getUrisList() {
1274         return uris_.getUnmodifiableView();
1275       }
1276       /**
1277        *
1278        *
1279        * <pre>
1280        * Use this URI field to direct an applicant to a website, for example to
1281        * link to an online application form.
1282        * The maximum number of allowed characters for each entry is 2,000.
1283        * </pre>
1284        *
1285        * <code>repeated string uris = 3;</code>
1286        *
1287        * @return The count of uris.
1288        */
getUrisCount()1289       public int getUrisCount() {
1290         return uris_.size();
1291       }
1292       /**
1293        *
1294        *
1295        * <pre>
1296        * Use this URI field to direct an applicant to a website, for example to
1297        * link to an online application form.
1298        * The maximum number of allowed characters for each entry is 2,000.
1299        * </pre>
1300        *
1301        * <code>repeated string uris = 3;</code>
1302        *
1303        * @param index The index of the element to return.
1304        * @return The uris at the given index.
1305        */
getUris(int index)1306       public java.lang.String getUris(int index) {
1307         return uris_.get(index);
1308       }
1309       /**
1310        *
1311        *
1312        * <pre>
1313        * Use this URI field to direct an applicant to a website, for example to
1314        * link to an online application form.
1315        * The maximum number of allowed characters for each entry is 2,000.
1316        * </pre>
1317        *
1318        * <code>repeated string uris = 3;</code>
1319        *
1320        * @param index The index of the value to return.
1321        * @return The bytes of the uris at the given index.
1322        */
getUrisBytes(int index)1323       public com.google.protobuf.ByteString getUrisBytes(int index) {
1324         return uris_.getByteString(index);
1325       }
1326       /**
1327        *
1328        *
1329        * <pre>
1330        * Use this URI field to direct an applicant to a website, for example to
1331        * link to an online application form.
1332        * The maximum number of allowed characters for each entry is 2,000.
1333        * </pre>
1334        *
1335        * <code>repeated string uris = 3;</code>
1336        *
1337        * @param index The index to set the value at.
1338        * @param value The uris to set.
1339        * @return This builder for chaining.
1340        */
setUris(int index, java.lang.String value)1341       public Builder setUris(int index, java.lang.String value) {
1342         if (value == null) {
1343           throw new NullPointerException();
1344         }
1345         ensureUrisIsMutable();
1346         uris_.set(index, value);
1347         onChanged();
1348         return this;
1349       }
1350       /**
1351        *
1352        *
1353        * <pre>
1354        * Use this URI field to direct an applicant to a website, for example to
1355        * link to an online application form.
1356        * The maximum number of allowed characters for each entry is 2,000.
1357        * </pre>
1358        *
1359        * <code>repeated string uris = 3;</code>
1360        *
1361        * @param value The uris to add.
1362        * @return This builder for chaining.
1363        */
addUris(java.lang.String value)1364       public Builder addUris(java.lang.String value) {
1365         if (value == null) {
1366           throw new NullPointerException();
1367         }
1368         ensureUrisIsMutable();
1369         uris_.add(value);
1370         onChanged();
1371         return this;
1372       }
1373       /**
1374        *
1375        *
1376        * <pre>
1377        * Use this URI field to direct an applicant to a website, for example to
1378        * link to an online application form.
1379        * The maximum number of allowed characters for each entry is 2,000.
1380        * </pre>
1381        *
1382        * <code>repeated string uris = 3;</code>
1383        *
1384        * @param values The uris to add.
1385        * @return This builder for chaining.
1386        */
addAllUris(java.lang.Iterable<java.lang.String> values)1387       public Builder addAllUris(java.lang.Iterable<java.lang.String> values) {
1388         ensureUrisIsMutable();
1389         com.google.protobuf.AbstractMessageLite.Builder.addAll(values, uris_);
1390         onChanged();
1391         return this;
1392       }
1393       /**
1394        *
1395        *
1396        * <pre>
1397        * Use this URI field to direct an applicant to a website, for example to
1398        * link to an online application form.
1399        * The maximum number of allowed characters for each entry is 2,000.
1400        * </pre>
1401        *
1402        * <code>repeated string uris = 3;</code>
1403        *
1404        * @return This builder for chaining.
1405        */
clearUris()1406       public Builder clearUris() {
1407         uris_ = com.google.protobuf.LazyStringArrayList.EMPTY;
1408         bitField0_ = (bitField0_ & ~0x00000004);
1409         onChanged();
1410         return this;
1411       }
1412       /**
1413        *
1414        *
1415        * <pre>
1416        * Use this URI field to direct an applicant to a website, for example to
1417        * link to an online application form.
1418        * The maximum number of allowed characters for each entry is 2,000.
1419        * </pre>
1420        *
1421        * <code>repeated string uris = 3;</code>
1422        *
1423        * @param value The bytes of the uris to add.
1424        * @return This builder for chaining.
1425        */
addUrisBytes(com.google.protobuf.ByteString value)1426       public Builder addUrisBytes(com.google.protobuf.ByteString value) {
1427         if (value == null) {
1428           throw new NullPointerException();
1429         }
1430         checkByteStringIsUtf8(value);
1431         ensureUrisIsMutable();
1432         uris_.add(value);
1433         onChanged();
1434         return this;
1435       }
1436 
1437       @java.lang.Override
setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)1438       public final Builder setUnknownFields(
1439           final com.google.protobuf.UnknownFieldSet unknownFields) {
1440         return super.setUnknownFields(unknownFields);
1441       }
1442 
1443       @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)1444       public final Builder mergeUnknownFields(
1445           final com.google.protobuf.UnknownFieldSet unknownFields) {
1446         return super.mergeUnknownFields(unknownFields);
1447       }
1448 
1449       // @@protoc_insertion_point(builder_scope:google.cloud.talent.v4.Job.ApplicationInfo)
1450     }
1451 
1452     // @@protoc_insertion_point(class_scope:google.cloud.talent.v4.Job.ApplicationInfo)
1453     private static final com.google.cloud.talent.v4.Job.ApplicationInfo DEFAULT_INSTANCE;
1454 
1455     static {
1456       DEFAULT_INSTANCE = new com.google.cloud.talent.v4.Job.ApplicationInfo();
1457     }
1458 
getDefaultInstance()1459     public static com.google.cloud.talent.v4.Job.ApplicationInfo getDefaultInstance() {
1460       return DEFAULT_INSTANCE;
1461     }
1462 
1463     private static final com.google.protobuf.Parser<ApplicationInfo> PARSER =
1464         new com.google.protobuf.AbstractParser<ApplicationInfo>() {
1465           @java.lang.Override
1466           public ApplicationInfo parsePartialFrom(
1467               com.google.protobuf.CodedInputStream input,
1468               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1469               throws com.google.protobuf.InvalidProtocolBufferException {
1470             Builder builder = newBuilder();
1471             try {
1472               builder.mergeFrom(input, extensionRegistry);
1473             } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1474               throw e.setUnfinishedMessage(builder.buildPartial());
1475             } catch (com.google.protobuf.UninitializedMessageException e) {
1476               throw e.asInvalidProtocolBufferException()
1477                   .setUnfinishedMessage(builder.buildPartial());
1478             } catch (java.io.IOException e) {
1479               throw new com.google.protobuf.InvalidProtocolBufferException(e)
1480                   .setUnfinishedMessage(builder.buildPartial());
1481             }
1482             return builder.buildPartial();
1483           }
1484         };
1485 
parser()1486     public static com.google.protobuf.Parser<ApplicationInfo> parser() {
1487       return PARSER;
1488     }
1489 
1490     @java.lang.Override
getParserForType()1491     public com.google.protobuf.Parser<ApplicationInfo> getParserForType() {
1492       return PARSER;
1493     }
1494 
1495     @java.lang.Override
getDefaultInstanceForType()1496     public com.google.cloud.talent.v4.Job.ApplicationInfo getDefaultInstanceForType() {
1497       return DEFAULT_INSTANCE;
1498     }
1499   }
1500 
1501   public interface DerivedInfoOrBuilder
1502       extends
1503       // @@protoc_insertion_point(interface_extends:google.cloud.talent.v4.Job.DerivedInfo)
1504       com.google.protobuf.MessageOrBuilder {
1505 
1506     /**
1507      *
1508      *
1509      * <pre>
1510      * Structured locations of the job, resolved from
1511      * [Job.addresses][google.cloud.talent.v4.Job.addresses].
1512      * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
1513      * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
1514      * same order.
1515      * </pre>
1516      *
1517      * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
1518      */
getLocationsList()1519     java.util.List<com.google.cloud.talent.v4.Location> getLocationsList();
1520     /**
1521      *
1522      *
1523      * <pre>
1524      * Structured locations of the job, resolved from
1525      * [Job.addresses][google.cloud.talent.v4.Job.addresses].
1526      * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
1527      * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
1528      * same order.
1529      * </pre>
1530      *
1531      * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
1532      */
getLocations(int index)1533     com.google.cloud.talent.v4.Location getLocations(int index);
1534     /**
1535      *
1536      *
1537      * <pre>
1538      * Structured locations of the job, resolved from
1539      * [Job.addresses][google.cloud.talent.v4.Job.addresses].
1540      * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
1541      * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
1542      * same order.
1543      * </pre>
1544      *
1545      * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
1546      */
getLocationsCount()1547     int getLocationsCount();
1548     /**
1549      *
1550      *
1551      * <pre>
1552      * Structured locations of the job, resolved from
1553      * [Job.addresses][google.cloud.talent.v4.Job.addresses].
1554      * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
1555      * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
1556      * same order.
1557      * </pre>
1558      *
1559      * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
1560      */
1561     java.util.List<? extends com.google.cloud.talent.v4.LocationOrBuilder>
getLocationsOrBuilderList()1562         getLocationsOrBuilderList();
1563     /**
1564      *
1565      *
1566      * <pre>
1567      * Structured locations of the job, resolved from
1568      * [Job.addresses][google.cloud.talent.v4.Job.addresses].
1569      * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
1570      * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
1571      * same order.
1572      * </pre>
1573      *
1574      * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
1575      */
getLocationsOrBuilder(int index)1576     com.google.cloud.talent.v4.LocationOrBuilder getLocationsOrBuilder(int index);
1577 
1578     /**
1579      *
1580      *
1581      * <pre>
1582      * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
1583      * and [Job.description][google.cloud.talent.v4.Job.description].
1584      * </pre>
1585      *
1586      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
1587      *
1588      * @return A list containing the jobCategories.
1589      */
getJobCategoriesList()1590     java.util.List<com.google.cloud.talent.v4.JobCategory> getJobCategoriesList();
1591     /**
1592      *
1593      *
1594      * <pre>
1595      * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
1596      * and [Job.description][google.cloud.talent.v4.Job.description].
1597      * </pre>
1598      *
1599      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
1600      *
1601      * @return The count of jobCategories.
1602      */
getJobCategoriesCount()1603     int getJobCategoriesCount();
1604     /**
1605      *
1606      *
1607      * <pre>
1608      * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
1609      * and [Job.description][google.cloud.talent.v4.Job.description].
1610      * </pre>
1611      *
1612      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
1613      *
1614      * @param index The index of the element to return.
1615      * @return The jobCategories at the given index.
1616      */
getJobCategories(int index)1617     com.google.cloud.talent.v4.JobCategory getJobCategories(int index);
1618     /**
1619      *
1620      *
1621      * <pre>
1622      * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
1623      * and [Job.description][google.cloud.talent.v4.Job.description].
1624      * </pre>
1625      *
1626      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
1627      *
1628      * @return A list containing the enum numeric values on the wire for jobCategories.
1629      */
getJobCategoriesValueList()1630     java.util.List<java.lang.Integer> getJobCategoriesValueList();
1631     /**
1632      *
1633      *
1634      * <pre>
1635      * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
1636      * and [Job.description][google.cloud.talent.v4.Job.description].
1637      * </pre>
1638      *
1639      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
1640      *
1641      * @param index The index of the value to return.
1642      * @return The enum numeric value on the wire of jobCategories at the given index.
1643      */
getJobCategoriesValue(int index)1644     int getJobCategoriesValue(int index);
1645   }
1646   /**
1647    *
1648    *
1649    * <pre>
1650    * Derived details about the job posting.
1651    * </pre>
1652    *
1653    * Protobuf type {@code google.cloud.talent.v4.Job.DerivedInfo}
1654    */
1655   public static final class DerivedInfo extends com.google.protobuf.GeneratedMessageV3
1656       implements
1657       // @@protoc_insertion_point(message_implements:google.cloud.talent.v4.Job.DerivedInfo)
1658       DerivedInfoOrBuilder {
1659     private static final long serialVersionUID = 0L;
1660     // Use DerivedInfo.newBuilder() to construct.
DerivedInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)1661     private DerivedInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
1662       super(builder);
1663     }
1664 
DerivedInfo()1665     private DerivedInfo() {
1666       locations_ = java.util.Collections.emptyList();
1667       jobCategories_ = java.util.Collections.emptyList();
1668     }
1669 
1670     @java.lang.Override
1671     @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)1672     protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
1673       return new DerivedInfo();
1674     }
1675 
1676     @java.lang.Override
getUnknownFields()1677     public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
1678       return this.unknownFields;
1679     }
1680 
getDescriptor()1681     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
1682       return com.google.cloud.talent.v4.JobProto
1683           .internal_static_google_cloud_talent_v4_Job_DerivedInfo_descriptor;
1684     }
1685 
1686     @java.lang.Override
1687     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()1688         internalGetFieldAccessorTable() {
1689       return com.google.cloud.talent.v4.JobProto
1690           .internal_static_google_cloud_talent_v4_Job_DerivedInfo_fieldAccessorTable
1691           .ensureFieldAccessorsInitialized(
1692               com.google.cloud.talent.v4.Job.DerivedInfo.class,
1693               com.google.cloud.talent.v4.Job.DerivedInfo.Builder.class);
1694     }
1695 
1696     public static final int LOCATIONS_FIELD_NUMBER = 1;
1697 
1698     @SuppressWarnings("serial")
1699     private java.util.List<com.google.cloud.talent.v4.Location> locations_;
1700     /**
1701      *
1702      *
1703      * <pre>
1704      * Structured locations of the job, resolved from
1705      * [Job.addresses][google.cloud.talent.v4.Job.addresses].
1706      * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
1707      * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
1708      * same order.
1709      * </pre>
1710      *
1711      * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
1712      */
1713     @java.lang.Override
getLocationsList()1714     public java.util.List<com.google.cloud.talent.v4.Location> getLocationsList() {
1715       return locations_;
1716     }
1717     /**
1718      *
1719      *
1720      * <pre>
1721      * Structured locations of the job, resolved from
1722      * [Job.addresses][google.cloud.talent.v4.Job.addresses].
1723      * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
1724      * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
1725      * same order.
1726      * </pre>
1727      *
1728      * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
1729      */
1730     @java.lang.Override
1731     public java.util.List<? extends com.google.cloud.talent.v4.LocationOrBuilder>
getLocationsOrBuilderList()1732         getLocationsOrBuilderList() {
1733       return locations_;
1734     }
1735     /**
1736      *
1737      *
1738      * <pre>
1739      * Structured locations of the job, resolved from
1740      * [Job.addresses][google.cloud.talent.v4.Job.addresses].
1741      * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
1742      * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
1743      * same order.
1744      * </pre>
1745      *
1746      * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
1747      */
1748     @java.lang.Override
getLocationsCount()1749     public int getLocationsCount() {
1750       return locations_.size();
1751     }
1752     /**
1753      *
1754      *
1755      * <pre>
1756      * Structured locations of the job, resolved from
1757      * [Job.addresses][google.cloud.talent.v4.Job.addresses].
1758      * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
1759      * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
1760      * same order.
1761      * </pre>
1762      *
1763      * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
1764      */
1765     @java.lang.Override
getLocations(int index)1766     public com.google.cloud.talent.v4.Location getLocations(int index) {
1767       return locations_.get(index);
1768     }
1769     /**
1770      *
1771      *
1772      * <pre>
1773      * Structured locations of the job, resolved from
1774      * [Job.addresses][google.cloud.talent.v4.Job.addresses].
1775      * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
1776      * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
1777      * same order.
1778      * </pre>
1779      *
1780      * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
1781      */
1782     @java.lang.Override
getLocationsOrBuilder(int index)1783     public com.google.cloud.talent.v4.LocationOrBuilder getLocationsOrBuilder(int index) {
1784       return locations_.get(index);
1785     }
1786 
1787     public static final int JOB_CATEGORIES_FIELD_NUMBER = 3;
1788 
1789     @SuppressWarnings("serial")
1790     private java.util.List<java.lang.Integer> jobCategories_;
1791 
1792     private static final com.google.protobuf.Internal.ListAdapter.Converter<
1793             java.lang.Integer, com.google.cloud.talent.v4.JobCategory>
1794         jobCategories_converter_ =
1795             new com.google.protobuf.Internal.ListAdapter.Converter<
1796                 java.lang.Integer, com.google.cloud.talent.v4.JobCategory>() {
1797               public com.google.cloud.talent.v4.JobCategory convert(java.lang.Integer from) {
1798                 com.google.cloud.talent.v4.JobCategory result =
1799                     com.google.cloud.talent.v4.JobCategory.forNumber(from);
1800                 return result == null
1801                     ? com.google.cloud.talent.v4.JobCategory.UNRECOGNIZED
1802                     : result;
1803               }
1804             };
1805     /**
1806      *
1807      *
1808      * <pre>
1809      * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
1810      * and [Job.description][google.cloud.talent.v4.Job.description].
1811      * </pre>
1812      *
1813      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
1814      *
1815      * @return A list containing the jobCategories.
1816      */
1817     @java.lang.Override
getJobCategoriesList()1818     public java.util.List<com.google.cloud.talent.v4.JobCategory> getJobCategoriesList() {
1819       return new com.google.protobuf.Internal.ListAdapter<
1820           java.lang.Integer, com.google.cloud.talent.v4.JobCategory>(
1821           jobCategories_, jobCategories_converter_);
1822     }
1823     /**
1824      *
1825      *
1826      * <pre>
1827      * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
1828      * and [Job.description][google.cloud.talent.v4.Job.description].
1829      * </pre>
1830      *
1831      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
1832      *
1833      * @return The count of jobCategories.
1834      */
1835     @java.lang.Override
getJobCategoriesCount()1836     public int getJobCategoriesCount() {
1837       return jobCategories_.size();
1838     }
1839     /**
1840      *
1841      *
1842      * <pre>
1843      * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
1844      * and [Job.description][google.cloud.talent.v4.Job.description].
1845      * </pre>
1846      *
1847      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
1848      *
1849      * @param index The index of the element to return.
1850      * @return The jobCategories at the given index.
1851      */
1852     @java.lang.Override
getJobCategories(int index)1853     public com.google.cloud.talent.v4.JobCategory getJobCategories(int index) {
1854       return jobCategories_converter_.convert(jobCategories_.get(index));
1855     }
1856     /**
1857      *
1858      *
1859      * <pre>
1860      * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
1861      * and [Job.description][google.cloud.talent.v4.Job.description].
1862      * </pre>
1863      *
1864      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
1865      *
1866      * @return A list containing the enum numeric values on the wire for jobCategories.
1867      */
1868     @java.lang.Override
getJobCategoriesValueList()1869     public java.util.List<java.lang.Integer> getJobCategoriesValueList() {
1870       return jobCategories_;
1871     }
1872     /**
1873      *
1874      *
1875      * <pre>
1876      * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
1877      * and [Job.description][google.cloud.talent.v4.Job.description].
1878      * </pre>
1879      *
1880      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
1881      *
1882      * @param index The index of the value to return.
1883      * @return The enum numeric value on the wire of jobCategories at the given index.
1884      */
1885     @java.lang.Override
getJobCategoriesValue(int index)1886     public int getJobCategoriesValue(int index) {
1887       return jobCategories_.get(index);
1888     }
1889 
1890     private int jobCategoriesMemoizedSerializedSize;
1891 
1892     private byte memoizedIsInitialized = -1;
1893 
1894     @java.lang.Override
isInitialized()1895     public final boolean isInitialized() {
1896       byte isInitialized = memoizedIsInitialized;
1897       if (isInitialized == 1) return true;
1898       if (isInitialized == 0) return false;
1899 
1900       memoizedIsInitialized = 1;
1901       return true;
1902     }
1903 
1904     @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)1905     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
1906       getSerializedSize();
1907       for (int i = 0; i < locations_.size(); i++) {
1908         output.writeMessage(1, locations_.get(i));
1909       }
1910       if (getJobCategoriesList().size() > 0) {
1911         output.writeUInt32NoTag(26);
1912         output.writeUInt32NoTag(jobCategoriesMemoizedSerializedSize);
1913       }
1914       for (int i = 0; i < jobCategories_.size(); i++) {
1915         output.writeEnumNoTag(jobCategories_.get(i));
1916       }
1917       getUnknownFields().writeTo(output);
1918     }
1919 
1920     @java.lang.Override
getSerializedSize()1921     public int getSerializedSize() {
1922       int size = memoizedSize;
1923       if (size != -1) return size;
1924 
1925       size = 0;
1926       for (int i = 0; i < locations_.size(); i++) {
1927         size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, locations_.get(i));
1928       }
1929       {
1930         int dataSize = 0;
1931         for (int i = 0; i < jobCategories_.size(); i++) {
1932           dataSize +=
1933               com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(jobCategories_.get(i));
1934         }
1935         size += dataSize;
1936         if (!getJobCategoriesList().isEmpty()) {
1937           size += 1;
1938           size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize);
1939         }
1940         jobCategoriesMemoizedSerializedSize = dataSize;
1941       }
1942       size += getUnknownFields().getSerializedSize();
1943       memoizedSize = size;
1944       return size;
1945     }
1946 
1947     @java.lang.Override
equals(final java.lang.Object obj)1948     public boolean equals(final java.lang.Object obj) {
1949       if (obj == this) {
1950         return true;
1951       }
1952       if (!(obj instanceof com.google.cloud.talent.v4.Job.DerivedInfo)) {
1953         return super.equals(obj);
1954       }
1955       com.google.cloud.talent.v4.Job.DerivedInfo other =
1956           (com.google.cloud.talent.v4.Job.DerivedInfo) obj;
1957 
1958       if (!getLocationsList().equals(other.getLocationsList())) return false;
1959       if (!jobCategories_.equals(other.jobCategories_)) return false;
1960       if (!getUnknownFields().equals(other.getUnknownFields())) return false;
1961       return true;
1962     }
1963 
1964     @java.lang.Override
hashCode()1965     public int hashCode() {
1966       if (memoizedHashCode != 0) {
1967         return memoizedHashCode;
1968       }
1969       int hash = 41;
1970       hash = (19 * hash) + getDescriptor().hashCode();
1971       if (getLocationsCount() > 0) {
1972         hash = (37 * hash) + LOCATIONS_FIELD_NUMBER;
1973         hash = (53 * hash) + getLocationsList().hashCode();
1974       }
1975       if (getJobCategoriesCount() > 0) {
1976         hash = (37 * hash) + JOB_CATEGORIES_FIELD_NUMBER;
1977         hash = (53 * hash) + jobCategories_.hashCode();
1978       }
1979       hash = (29 * hash) + getUnknownFields().hashCode();
1980       memoizedHashCode = hash;
1981       return hash;
1982     }
1983 
parseFrom(java.nio.ByteBuffer data)1984     public static com.google.cloud.talent.v4.Job.DerivedInfo parseFrom(java.nio.ByteBuffer data)
1985         throws com.google.protobuf.InvalidProtocolBufferException {
1986       return PARSER.parseFrom(data);
1987     }
1988 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1989     public static com.google.cloud.talent.v4.Job.DerivedInfo parseFrom(
1990         java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1991         throws com.google.protobuf.InvalidProtocolBufferException {
1992       return PARSER.parseFrom(data, extensionRegistry);
1993     }
1994 
parseFrom( com.google.protobuf.ByteString data)1995     public static com.google.cloud.talent.v4.Job.DerivedInfo parseFrom(
1996         com.google.protobuf.ByteString data)
1997         throws com.google.protobuf.InvalidProtocolBufferException {
1998       return PARSER.parseFrom(data);
1999     }
2000 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)2001     public static com.google.cloud.talent.v4.Job.DerivedInfo parseFrom(
2002         com.google.protobuf.ByteString data,
2003         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2004         throws com.google.protobuf.InvalidProtocolBufferException {
2005       return PARSER.parseFrom(data, extensionRegistry);
2006     }
2007 
parseFrom(byte[] data)2008     public static com.google.cloud.talent.v4.Job.DerivedInfo parseFrom(byte[] data)
2009         throws com.google.protobuf.InvalidProtocolBufferException {
2010       return PARSER.parseFrom(data);
2011     }
2012 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)2013     public static com.google.cloud.talent.v4.Job.DerivedInfo parseFrom(
2014         byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2015         throws com.google.protobuf.InvalidProtocolBufferException {
2016       return PARSER.parseFrom(data, extensionRegistry);
2017     }
2018 
parseFrom(java.io.InputStream input)2019     public static com.google.cloud.talent.v4.Job.DerivedInfo parseFrom(java.io.InputStream input)
2020         throws java.io.IOException {
2021       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
2022     }
2023 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)2024     public static com.google.cloud.talent.v4.Job.DerivedInfo parseFrom(
2025         java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2026         throws java.io.IOException {
2027       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
2028           PARSER, input, extensionRegistry);
2029     }
2030 
parseDelimitedFrom( java.io.InputStream input)2031     public static com.google.cloud.talent.v4.Job.DerivedInfo parseDelimitedFrom(
2032         java.io.InputStream input) throws java.io.IOException {
2033       return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
2034     }
2035 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)2036     public static com.google.cloud.talent.v4.Job.DerivedInfo parseDelimitedFrom(
2037         java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2038         throws java.io.IOException {
2039       return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
2040           PARSER, input, extensionRegistry);
2041     }
2042 
parseFrom( com.google.protobuf.CodedInputStream input)2043     public static com.google.cloud.talent.v4.Job.DerivedInfo parseFrom(
2044         com.google.protobuf.CodedInputStream input) throws java.io.IOException {
2045       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
2046     }
2047 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)2048     public static com.google.cloud.talent.v4.Job.DerivedInfo parseFrom(
2049         com.google.protobuf.CodedInputStream input,
2050         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2051         throws java.io.IOException {
2052       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
2053           PARSER, input, extensionRegistry);
2054     }
2055 
2056     @java.lang.Override
newBuilderForType()2057     public Builder newBuilderForType() {
2058       return newBuilder();
2059     }
2060 
newBuilder()2061     public static Builder newBuilder() {
2062       return DEFAULT_INSTANCE.toBuilder();
2063     }
2064 
newBuilder(com.google.cloud.talent.v4.Job.DerivedInfo prototype)2065     public static Builder newBuilder(com.google.cloud.talent.v4.Job.DerivedInfo prototype) {
2066       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
2067     }
2068 
2069     @java.lang.Override
toBuilder()2070     public Builder toBuilder() {
2071       return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
2072     }
2073 
2074     @java.lang.Override
newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent)2075     protected Builder newBuilderForType(
2076         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
2077       Builder builder = new Builder(parent);
2078       return builder;
2079     }
2080     /**
2081      *
2082      *
2083      * <pre>
2084      * Derived details about the job posting.
2085      * </pre>
2086      *
2087      * Protobuf type {@code google.cloud.talent.v4.Job.DerivedInfo}
2088      */
2089     public static final class Builder
2090         extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
2091         implements
2092         // @@protoc_insertion_point(builder_implements:google.cloud.talent.v4.Job.DerivedInfo)
2093         com.google.cloud.talent.v4.Job.DerivedInfoOrBuilder {
getDescriptor()2094       public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
2095         return com.google.cloud.talent.v4.JobProto
2096             .internal_static_google_cloud_talent_v4_Job_DerivedInfo_descriptor;
2097       }
2098 
2099       @java.lang.Override
2100       protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()2101           internalGetFieldAccessorTable() {
2102         return com.google.cloud.talent.v4.JobProto
2103             .internal_static_google_cloud_talent_v4_Job_DerivedInfo_fieldAccessorTable
2104             .ensureFieldAccessorsInitialized(
2105                 com.google.cloud.talent.v4.Job.DerivedInfo.class,
2106                 com.google.cloud.talent.v4.Job.DerivedInfo.Builder.class);
2107       }
2108 
2109       // Construct using com.google.cloud.talent.v4.Job.DerivedInfo.newBuilder()
Builder()2110       private Builder() {}
2111 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)2112       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
2113         super(parent);
2114       }
2115 
2116       @java.lang.Override
clear()2117       public Builder clear() {
2118         super.clear();
2119         bitField0_ = 0;
2120         if (locationsBuilder_ == null) {
2121           locations_ = java.util.Collections.emptyList();
2122         } else {
2123           locations_ = null;
2124           locationsBuilder_.clear();
2125         }
2126         bitField0_ = (bitField0_ & ~0x00000001);
2127         jobCategories_ = java.util.Collections.emptyList();
2128         bitField0_ = (bitField0_ & ~0x00000002);
2129         return this;
2130       }
2131 
2132       @java.lang.Override
getDescriptorForType()2133       public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
2134         return com.google.cloud.talent.v4.JobProto
2135             .internal_static_google_cloud_talent_v4_Job_DerivedInfo_descriptor;
2136       }
2137 
2138       @java.lang.Override
getDefaultInstanceForType()2139       public com.google.cloud.talent.v4.Job.DerivedInfo getDefaultInstanceForType() {
2140         return com.google.cloud.talent.v4.Job.DerivedInfo.getDefaultInstance();
2141       }
2142 
2143       @java.lang.Override
build()2144       public com.google.cloud.talent.v4.Job.DerivedInfo build() {
2145         com.google.cloud.talent.v4.Job.DerivedInfo result = buildPartial();
2146         if (!result.isInitialized()) {
2147           throw newUninitializedMessageException(result);
2148         }
2149         return result;
2150       }
2151 
2152       @java.lang.Override
buildPartial()2153       public com.google.cloud.talent.v4.Job.DerivedInfo buildPartial() {
2154         com.google.cloud.talent.v4.Job.DerivedInfo result =
2155             new com.google.cloud.talent.v4.Job.DerivedInfo(this);
2156         buildPartialRepeatedFields(result);
2157         if (bitField0_ != 0) {
2158           buildPartial0(result);
2159         }
2160         onBuilt();
2161         return result;
2162       }
2163 
buildPartialRepeatedFields(com.google.cloud.talent.v4.Job.DerivedInfo result)2164       private void buildPartialRepeatedFields(com.google.cloud.talent.v4.Job.DerivedInfo result) {
2165         if (locationsBuilder_ == null) {
2166           if (((bitField0_ & 0x00000001) != 0)) {
2167             locations_ = java.util.Collections.unmodifiableList(locations_);
2168             bitField0_ = (bitField0_ & ~0x00000001);
2169           }
2170           result.locations_ = locations_;
2171         } else {
2172           result.locations_ = locationsBuilder_.build();
2173         }
2174         if (((bitField0_ & 0x00000002) != 0)) {
2175           jobCategories_ = java.util.Collections.unmodifiableList(jobCategories_);
2176           bitField0_ = (bitField0_ & ~0x00000002);
2177         }
2178         result.jobCategories_ = jobCategories_;
2179       }
2180 
buildPartial0(com.google.cloud.talent.v4.Job.DerivedInfo result)2181       private void buildPartial0(com.google.cloud.talent.v4.Job.DerivedInfo result) {
2182         int from_bitField0_ = bitField0_;
2183       }
2184 
2185       @java.lang.Override
clone()2186       public Builder clone() {
2187         return super.clone();
2188       }
2189 
2190       @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)2191       public Builder setField(
2192           com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
2193         return super.setField(field, value);
2194       }
2195 
2196       @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)2197       public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
2198         return super.clearField(field);
2199       }
2200 
2201       @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)2202       public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
2203         return super.clearOneof(oneof);
2204       }
2205 
2206       @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)2207       public Builder setRepeatedField(
2208           com.google.protobuf.Descriptors.FieldDescriptor field,
2209           int index,
2210           java.lang.Object value) {
2211         return super.setRepeatedField(field, index, value);
2212       }
2213 
2214       @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)2215       public Builder addRepeatedField(
2216           com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
2217         return super.addRepeatedField(field, value);
2218       }
2219 
2220       @java.lang.Override
mergeFrom(com.google.protobuf.Message other)2221       public Builder mergeFrom(com.google.protobuf.Message other) {
2222         if (other instanceof com.google.cloud.talent.v4.Job.DerivedInfo) {
2223           return mergeFrom((com.google.cloud.talent.v4.Job.DerivedInfo) other);
2224         } else {
2225           super.mergeFrom(other);
2226           return this;
2227         }
2228       }
2229 
mergeFrom(com.google.cloud.talent.v4.Job.DerivedInfo other)2230       public Builder mergeFrom(com.google.cloud.talent.v4.Job.DerivedInfo other) {
2231         if (other == com.google.cloud.talent.v4.Job.DerivedInfo.getDefaultInstance()) return this;
2232         if (locationsBuilder_ == null) {
2233           if (!other.locations_.isEmpty()) {
2234             if (locations_.isEmpty()) {
2235               locations_ = other.locations_;
2236               bitField0_ = (bitField0_ & ~0x00000001);
2237             } else {
2238               ensureLocationsIsMutable();
2239               locations_.addAll(other.locations_);
2240             }
2241             onChanged();
2242           }
2243         } else {
2244           if (!other.locations_.isEmpty()) {
2245             if (locationsBuilder_.isEmpty()) {
2246               locationsBuilder_.dispose();
2247               locationsBuilder_ = null;
2248               locations_ = other.locations_;
2249               bitField0_ = (bitField0_ & ~0x00000001);
2250               locationsBuilder_ =
2251                   com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
2252                       ? getLocationsFieldBuilder()
2253                       : null;
2254             } else {
2255               locationsBuilder_.addAllMessages(other.locations_);
2256             }
2257           }
2258         }
2259         if (!other.jobCategories_.isEmpty()) {
2260           if (jobCategories_.isEmpty()) {
2261             jobCategories_ = other.jobCategories_;
2262             bitField0_ = (bitField0_ & ~0x00000002);
2263           } else {
2264             ensureJobCategoriesIsMutable();
2265             jobCategories_.addAll(other.jobCategories_);
2266           }
2267           onChanged();
2268         }
2269         this.mergeUnknownFields(other.getUnknownFields());
2270         onChanged();
2271         return this;
2272       }
2273 
2274       @java.lang.Override
isInitialized()2275       public final boolean isInitialized() {
2276         return true;
2277       }
2278 
2279       @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)2280       public Builder mergeFrom(
2281           com.google.protobuf.CodedInputStream input,
2282           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2283           throws java.io.IOException {
2284         if (extensionRegistry == null) {
2285           throw new java.lang.NullPointerException();
2286         }
2287         try {
2288           boolean done = false;
2289           while (!done) {
2290             int tag = input.readTag();
2291             switch (tag) {
2292               case 0:
2293                 done = true;
2294                 break;
2295               case 10:
2296                 {
2297                   com.google.cloud.talent.v4.Location m =
2298                       input.readMessage(
2299                           com.google.cloud.talent.v4.Location.parser(), extensionRegistry);
2300                   if (locationsBuilder_ == null) {
2301                     ensureLocationsIsMutable();
2302                     locations_.add(m);
2303                   } else {
2304                     locationsBuilder_.addMessage(m);
2305                   }
2306                   break;
2307                 } // case 10
2308               case 24:
2309                 {
2310                   int tmpRaw = input.readEnum();
2311                   ensureJobCategoriesIsMutable();
2312                   jobCategories_.add(tmpRaw);
2313                   break;
2314                 } // case 24
2315               case 26:
2316                 {
2317                   int length = input.readRawVarint32();
2318                   int oldLimit = input.pushLimit(length);
2319                   while (input.getBytesUntilLimit() > 0) {
2320                     int tmpRaw = input.readEnum();
2321                     ensureJobCategoriesIsMutable();
2322                     jobCategories_.add(tmpRaw);
2323                   }
2324                   input.popLimit(oldLimit);
2325                   break;
2326                 } // case 26
2327               default:
2328                 {
2329                   if (!super.parseUnknownField(input, extensionRegistry, tag)) {
2330                     done = true; // was an endgroup tag
2331                   }
2332                   break;
2333                 } // default:
2334             } // switch (tag)
2335           } // while (!done)
2336         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2337           throw e.unwrapIOException();
2338         } finally {
2339           onChanged();
2340         } // finally
2341         return this;
2342       }
2343 
2344       private int bitField0_;
2345 
2346       private java.util.List<com.google.cloud.talent.v4.Location> locations_ =
2347           java.util.Collections.emptyList();
2348 
ensureLocationsIsMutable()2349       private void ensureLocationsIsMutable() {
2350         if (!((bitField0_ & 0x00000001) != 0)) {
2351           locations_ = new java.util.ArrayList<com.google.cloud.talent.v4.Location>(locations_);
2352           bitField0_ |= 0x00000001;
2353         }
2354       }
2355 
2356       private com.google.protobuf.RepeatedFieldBuilderV3<
2357               com.google.cloud.talent.v4.Location,
2358               com.google.cloud.talent.v4.Location.Builder,
2359               com.google.cloud.talent.v4.LocationOrBuilder>
2360           locationsBuilder_;
2361 
2362       /**
2363        *
2364        *
2365        * <pre>
2366        * Structured locations of the job, resolved from
2367        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2368        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2369        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2370        * same order.
2371        * </pre>
2372        *
2373        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2374        */
getLocationsList()2375       public java.util.List<com.google.cloud.talent.v4.Location> getLocationsList() {
2376         if (locationsBuilder_ == null) {
2377           return java.util.Collections.unmodifiableList(locations_);
2378         } else {
2379           return locationsBuilder_.getMessageList();
2380         }
2381       }
2382       /**
2383        *
2384        *
2385        * <pre>
2386        * Structured locations of the job, resolved from
2387        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2388        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2389        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2390        * same order.
2391        * </pre>
2392        *
2393        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2394        */
getLocationsCount()2395       public int getLocationsCount() {
2396         if (locationsBuilder_ == null) {
2397           return locations_.size();
2398         } else {
2399           return locationsBuilder_.getCount();
2400         }
2401       }
2402       /**
2403        *
2404        *
2405        * <pre>
2406        * Structured locations of the job, resolved from
2407        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2408        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2409        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2410        * same order.
2411        * </pre>
2412        *
2413        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2414        */
getLocations(int index)2415       public com.google.cloud.talent.v4.Location getLocations(int index) {
2416         if (locationsBuilder_ == null) {
2417           return locations_.get(index);
2418         } else {
2419           return locationsBuilder_.getMessage(index);
2420         }
2421       }
2422       /**
2423        *
2424        *
2425        * <pre>
2426        * Structured locations of the job, resolved from
2427        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2428        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2429        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2430        * same order.
2431        * </pre>
2432        *
2433        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2434        */
setLocations(int index, com.google.cloud.talent.v4.Location value)2435       public Builder setLocations(int index, com.google.cloud.talent.v4.Location value) {
2436         if (locationsBuilder_ == null) {
2437           if (value == null) {
2438             throw new NullPointerException();
2439           }
2440           ensureLocationsIsMutable();
2441           locations_.set(index, value);
2442           onChanged();
2443         } else {
2444           locationsBuilder_.setMessage(index, value);
2445         }
2446         return this;
2447       }
2448       /**
2449        *
2450        *
2451        * <pre>
2452        * Structured locations of the job, resolved from
2453        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2454        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2455        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2456        * same order.
2457        * </pre>
2458        *
2459        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2460        */
setLocations( int index, com.google.cloud.talent.v4.Location.Builder builderForValue)2461       public Builder setLocations(
2462           int index, com.google.cloud.talent.v4.Location.Builder builderForValue) {
2463         if (locationsBuilder_ == null) {
2464           ensureLocationsIsMutable();
2465           locations_.set(index, builderForValue.build());
2466           onChanged();
2467         } else {
2468           locationsBuilder_.setMessage(index, builderForValue.build());
2469         }
2470         return this;
2471       }
2472       /**
2473        *
2474        *
2475        * <pre>
2476        * Structured locations of the job, resolved from
2477        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2478        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2479        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2480        * same order.
2481        * </pre>
2482        *
2483        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2484        */
addLocations(com.google.cloud.talent.v4.Location value)2485       public Builder addLocations(com.google.cloud.talent.v4.Location value) {
2486         if (locationsBuilder_ == null) {
2487           if (value == null) {
2488             throw new NullPointerException();
2489           }
2490           ensureLocationsIsMutable();
2491           locations_.add(value);
2492           onChanged();
2493         } else {
2494           locationsBuilder_.addMessage(value);
2495         }
2496         return this;
2497       }
2498       /**
2499        *
2500        *
2501        * <pre>
2502        * Structured locations of the job, resolved from
2503        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2504        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2505        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2506        * same order.
2507        * </pre>
2508        *
2509        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2510        */
addLocations(int index, com.google.cloud.talent.v4.Location value)2511       public Builder addLocations(int index, com.google.cloud.talent.v4.Location value) {
2512         if (locationsBuilder_ == null) {
2513           if (value == null) {
2514             throw new NullPointerException();
2515           }
2516           ensureLocationsIsMutable();
2517           locations_.add(index, value);
2518           onChanged();
2519         } else {
2520           locationsBuilder_.addMessage(index, value);
2521         }
2522         return this;
2523       }
2524       /**
2525        *
2526        *
2527        * <pre>
2528        * Structured locations of the job, resolved from
2529        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2530        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2531        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2532        * same order.
2533        * </pre>
2534        *
2535        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2536        */
addLocations(com.google.cloud.talent.v4.Location.Builder builderForValue)2537       public Builder addLocations(com.google.cloud.talent.v4.Location.Builder builderForValue) {
2538         if (locationsBuilder_ == null) {
2539           ensureLocationsIsMutable();
2540           locations_.add(builderForValue.build());
2541           onChanged();
2542         } else {
2543           locationsBuilder_.addMessage(builderForValue.build());
2544         }
2545         return this;
2546       }
2547       /**
2548        *
2549        *
2550        * <pre>
2551        * Structured locations of the job, resolved from
2552        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2553        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2554        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2555        * same order.
2556        * </pre>
2557        *
2558        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2559        */
addLocations( int index, com.google.cloud.talent.v4.Location.Builder builderForValue)2560       public Builder addLocations(
2561           int index, com.google.cloud.talent.v4.Location.Builder builderForValue) {
2562         if (locationsBuilder_ == null) {
2563           ensureLocationsIsMutable();
2564           locations_.add(index, builderForValue.build());
2565           onChanged();
2566         } else {
2567           locationsBuilder_.addMessage(index, builderForValue.build());
2568         }
2569         return this;
2570       }
2571       /**
2572        *
2573        *
2574        * <pre>
2575        * Structured locations of the job, resolved from
2576        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2577        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2578        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2579        * same order.
2580        * </pre>
2581        *
2582        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2583        */
addAllLocations( java.lang.Iterable<? extends com.google.cloud.talent.v4.Location> values)2584       public Builder addAllLocations(
2585           java.lang.Iterable<? extends com.google.cloud.talent.v4.Location> values) {
2586         if (locationsBuilder_ == null) {
2587           ensureLocationsIsMutable();
2588           com.google.protobuf.AbstractMessageLite.Builder.addAll(values, locations_);
2589           onChanged();
2590         } else {
2591           locationsBuilder_.addAllMessages(values);
2592         }
2593         return this;
2594       }
2595       /**
2596        *
2597        *
2598        * <pre>
2599        * Structured locations of the job, resolved from
2600        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2601        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2602        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2603        * same order.
2604        * </pre>
2605        *
2606        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2607        */
clearLocations()2608       public Builder clearLocations() {
2609         if (locationsBuilder_ == null) {
2610           locations_ = java.util.Collections.emptyList();
2611           bitField0_ = (bitField0_ & ~0x00000001);
2612           onChanged();
2613         } else {
2614           locationsBuilder_.clear();
2615         }
2616         return this;
2617       }
2618       /**
2619        *
2620        *
2621        * <pre>
2622        * Structured locations of the job, resolved from
2623        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2624        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2625        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2626        * same order.
2627        * </pre>
2628        *
2629        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2630        */
removeLocations(int index)2631       public Builder removeLocations(int index) {
2632         if (locationsBuilder_ == null) {
2633           ensureLocationsIsMutable();
2634           locations_.remove(index);
2635           onChanged();
2636         } else {
2637           locationsBuilder_.remove(index);
2638         }
2639         return this;
2640       }
2641       /**
2642        *
2643        *
2644        * <pre>
2645        * Structured locations of the job, resolved from
2646        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2647        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2648        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2649        * same order.
2650        * </pre>
2651        *
2652        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2653        */
getLocationsBuilder(int index)2654       public com.google.cloud.talent.v4.Location.Builder getLocationsBuilder(int index) {
2655         return getLocationsFieldBuilder().getBuilder(index);
2656       }
2657       /**
2658        *
2659        *
2660        * <pre>
2661        * Structured locations of the job, resolved from
2662        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2663        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2664        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2665        * same order.
2666        * </pre>
2667        *
2668        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2669        */
getLocationsOrBuilder(int index)2670       public com.google.cloud.talent.v4.LocationOrBuilder getLocationsOrBuilder(int index) {
2671         if (locationsBuilder_ == null) {
2672           return locations_.get(index);
2673         } else {
2674           return locationsBuilder_.getMessageOrBuilder(index);
2675         }
2676       }
2677       /**
2678        *
2679        *
2680        * <pre>
2681        * Structured locations of the job, resolved from
2682        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2683        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2684        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2685        * same order.
2686        * </pre>
2687        *
2688        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2689        */
2690       public java.util.List<? extends com.google.cloud.talent.v4.LocationOrBuilder>
getLocationsOrBuilderList()2691           getLocationsOrBuilderList() {
2692         if (locationsBuilder_ != null) {
2693           return locationsBuilder_.getMessageOrBuilderList();
2694         } else {
2695           return java.util.Collections.unmodifiableList(locations_);
2696         }
2697       }
2698       /**
2699        *
2700        *
2701        * <pre>
2702        * Structured locations of the job, resolved from
2703        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2704        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2705        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2706        * same order.
2707        * </pre>
2708        *
2709        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2710        */
addLocationsBuilder()2711       public com.google.cloud.talent.v4.Location.Builder addLocationsBuilder() {
2712         return getLocationsFieldBuilder()
2713             .addBuilder(com.google.cloud.talent.v4.Location.getDefaultInstance());
2714       }
2715       /**
2716        *
2717        *
2718        * <pre>
2719        * Structured locations of the job, resolved from
2720        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2721        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2722        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2723        * same order.
2724        * </pre>
2725        *
2726        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2727        */
addLocationsBuilder(int index)2728       public com.google.cloud.talent.v4.Location.Builder addLocationsBuilder(int index) {
2729         return getLocationsFieldBuilder()
2730             .addBuilder(index, com.google.cloud.talent.v4.Location.getDefaultInstance());
2731       }
2732       /**
2733        *
2734        *
2735        * <pre>
2736        * Structured locations of the job, resolved from
2737        * [Job.addresses][google.cloud.talent.v4.Job.addresses].
2738        * [locations][google.cloud.talent.v4.Job.DerivedInfo.locations] are exactly
2739        * matched to [Job.addresses][google.cloud.talent.v4.Job.addresses] in the
2740        * same order.
2741        * </pre>
2742        *
2743        * <code>repeated .google.cloud.talent.v4.Location locations = 1;</code>
2744        */
getLocationsBuilderList()2745       public java.util.List<com.google.cloud.talent.v4.Location.Builder> getLocationsBuilderList() {
2746         return getLocationsFieldBuilder().getBuilderList();
2747       }
2748 
2749       private com.google.protobuf.RepeatedFieldBuilderV3<
2750               com.google.cloud.talent.v4.Location,
2751               com.google.cloud.talent.v4.Location.Builder,
2752               com.google.cloud.talent.v4.LocationOrBuilder>
getLocationsFieldBuilder()2753           getLocationsFieldBuilder() {
2754         if (locationsBuilder_ == null) {
2755           locationsBuilder_ =
2756               new com.google.protobuf.RepeatedFieldBuilderV3<
2757                   com.google.cloud.talent.v4.Location,
2758                   com.google.cloud.talent.v4.Location.Builder,
2759                   com.google.cloud.talent.v4.LocationOrBuilder>(
2760                   locations_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
2761           locations_ = null;
2762         }
2763         return locationsBuilder_;
2764       }
2765 
2766       private java.util.List<java.lang.Integer> jobCategories_ = java.util.Collections.emptyList();
2767 
ensureJobCategoriesIsMutable()2768       private void ensureJobCategoriesIsMutable() {
2769         if (!((bitField0_ & 0x00000002) != 0)) {
2770           jobCategories_ = new java.util.ArrayList<java.lang.Integer>(jobCategories_);
2771           bitField0_ |= 0x00000002;
2772         }
2773       }
2774       /**
2775        *
2776        *
2777        * <pre>
2778        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2779        * and [Job.description][google.cloud.talent.v4.Job.description].
2780        * </pre>
2781        *
2782        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2783        *
2784        * @return A list containing the jobCategories.
2785        */
getJobCategoriesList()2786       public java.util.List<com.google.cloud.talent.v4.JobCategory> getJobCategoriesList() {
2787         return new com.google.protobuf.Internal.ListAdapter<
2788             java.lang.Integer, com.google.cloud.talent.v4.JobCategory>(
2789             jobCategories_, jobCategories_converter_);
2790       }
2791       /**
2792        *
2793        *
2794        * <pre>
2795        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2796        * and [Job.description][google.cloud.talent.v4.Job.description].
2797        * </pre>
2798        *
2799        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2800        *
2801        * @return The count of jobCategories.
2802        */
getJobCategoriesCount()2803       public int getJobCategoriesCount() {
2804         return jobCategories_.size();
2805       }
2806       /**
2807        *
2808        *
2809        * <pre>
2810        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2811        * and [Job.description][google.cloud.talent.v4.Job.description].
2812        * </pre>
2813        *
2814        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2815        *
2816        * @param index The index of the element to return.
2817        * @return The jobCategories at the given index.
2818        */
getJobCategories(int index)2819       public com.google.cloud.talent.v4.JobCategory getJobCategories(int index) {
2820         return jobCategories_converter_.convert(jobCategories_.get(index));
2821       }
2822       /**
2823        *
2824        *
2825        * <pre>
2826        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2827        * and [Job.description][google.cloud.talent.v4.Job.description].
2828        * </pre>
2829        *
2830        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2831        *
2832        * @param index The index to set the value at.
2833        * @param value The jobCategories to set.
2834        * @return This builder for chaining.
2835        */
setJobCategories(int index, com.google.cloud.talent.v4.JobCategory value)2836       public Builder setJobCategories(int index, com.google.cloud.talent.v4.JobCategory value) {
2837         if (value == null) {
2838           throw new NullPointerException();
2839         }
2840         ensureJobCategoriesIsMutable();
2841         jobCategories_.set(index, value.getNumber());
2842         onChanged();
2843         return this;
2844       }
2845       /**
2846        *
2847        *
2848        * <pre>
2849        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2850        * and [Job.description][google.cloud.talent.v4.Job.description].
2851        * </pre>
2852        *
2853        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2854        *
2855        * @param value The jobCategories to add.
2856        * @return This builder for chaining.
2857        */
addJobCategories(com.google.cloud.talent.v4.JobCategory value)2858       public Builder addJobCategories(com.google.cloud.talent.v4.JobCategory value) {
2859         if (value == null) {
2860           throw new NullPointerException();
2861         }
2862         ensureJobCategoriesIsMutable();
2863         jobCategories_.add(value.getNumber());
2864         onChanged();
2865         return this;
2866       }
2867       /**
2868        *
2869        *
2870        * <pre>
2871        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2872        * and [Job.description][google.cloud.talent.v4.Job.description].
2873        * </pre>
2874        *
2875        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2876        *
2877        * @param values The jobCategories to add.
2878        * @return This builder for chaining.
2879        */
addAllJobCategories( java.lang.Iterable<? extends com.google.cloud.talent.v4.JobCategory> values)2880       public Builder addAllJobCategories(
2881           java.lang.Iterable<? extends com.google.cloud.talent.v4.JobCategory> values) {
2882         ensureJobCategoriesIsMutable();
2883         for (com.google.cloud.talent.v4.JobCategory value : values) {
2884           jobCategories_.add(value.getNumber());
2885         }
2886         onChanged();
2887         return this;
2888       }
2889       /**
2890        *
2891        *
2892        * <pre>
2893        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2894        * and [Job.description][google.cloud.talent.v4.Job.description].
2895        * </pre>
2896        *
2897        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2898        *
2899        * @return This builder for chaining.
2900        */
clearJobCategories()2901       public Builder clearJobCategories() {
2902         jobCategories_ = java.util.Collections.emptyList();
2903         bitField0_ = (bitField0_ & ~0x00000002);
2904         onChanged();
2905         return this;
2906       }
2907       /**
2908        *
2909        *
2910        * <pre>
2911        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2912        * and [Job.description][google.cloud.talent.v4.Job.description].
2913        * </pre>
2914        *
2915        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2916        *
2917        * @return A list containing the enum numeric values on the wire for jobCategories.
2918        */
getJobCategoriesValueList()2919       public java.util.List<java.lang.Integer> getJobCategoriesValueList() {
2920         return java.util.Collections.unmodifiableList(jobCategories_);
2921       }
2922       /**
2923        *
2924        *
2925        * <pre>
2926        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2927        * and [Job.description][google.cloud.talent.v4.Job.description].
2928        * </pre>
2929        *
2930        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2931        *
2932        * @param index The index of the value to return.
2933        * @return The enum numeric value on the wire of jobCategories at the given index.
2934        */
getJobCategoriesValue(int index)2935       public int getJobCategoriesValue(int index) {
2936         return jobCategories_.get(index);
2937       }
2938       /**
2939        *
2940        *
2941        * <pre>
2942        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2943        * and [Job.description][google.cloud.talent.v4.Job.description].
2944        * </pre>
2945        *
2946        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2947        *
2948        * @param index The index to set the value at.
2949        * @param value The enum numeric value on the wire for jobCategories to set.
2950        * @return This builder for chaining.
2951        */
setJobCategoriesValue(int index, int value)2952       public Builder setJobCategoriesValue(int index, int value) {
2953         ensureJobCategoriesIsMutable();
2954         jobCategories_.set(index, value);
2955         onChanged();
2956         return this;
2957       }
2958       /**
2959        *
2960        *
2961        * <pre>
2962        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2963        * and [Job.description][google.cloud.talent.v4.Job.description].
2964        * </pre>
2965        *
2966        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2967        *
2968        * @param value The enum numeric value on the wire for jobCategories to add.
2969        * @return This builder for chaining.
2970        */
addJobCategoriesValue(int value)2971       public Builder addJobCategoriesValue(int value) {
2972         ensureJobCategoriesIsMutable();
2973         jobCategories_.add(value);
2974         onChanged();
2975         return this;
2976       }
2977       /**
2978        *
2979        *
2980        * <pre>
2981        * Job categories derived from [Job.title][google.cloud.talent.v4.Job.title]
2982        * and [Job.description][google.cloud.talent.v4.Job.description].
2983        * </pre>
2984        *
2985        * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 3;</code>
2986        *
2987        * @param values The enum numeric values on the wire for jobCategories to add.
2988        * @return This builder for chaining.
2989        */
addAllJobCategoriesValue(java.lang.Iterable<java.lang.Integer> values)2990       public Builder addAllJobCategoriesValue(java.lang.Iterable<java.lang.Integer> values) {
2991         ensureJobCategoriesIsMutable();
2992         for (int value : values) {
2993           jobCategories_.add(value);
2994         }
2995         onChanged();
2996         return this;
2997       }
2998 
2999       @java.lang.Override
setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)3000       public final Builder setUnknownFields(
3001           final com.google.protobuf.UnknownFieldSet unknownFields) {
3002         return super.setUnknownFields(unknownFields);
3003       }
3004 
3005       @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)3006       public final Builder mergeUnknownFields(
3007           final com.google.protobuf.UnknownFieldSet unknownFields) {
3008         return super.mergeUnknownFields(unknownFields);
3009       }
3010 
3011       // @@protoc_insertion_point(builder_scope:google.cloud.talent.v4.Job.DerivedInfo)
3012     }
3013 
3014     // @@protoc_insertion_point(class_scope:google.cloud.talent.v4.Job.DerivedInfo)
3015     private static final com.google.cloud.talent.v4.Job.DerivedInfo DEFAULT_INSTANCE;
3016 
3017     static {
3018       DEFAULT_INSTANCE = new com.google.cloud.talent.v4.Job.DerivedInfo();
3019     }
3020 
getDefaultInstance()3021     public static com.google.cloud.talent.v4.Job.DerivedInfo getDefaultInstance() {
3022       return DEFAULT_INSTANCE;
3023     }
3024 
3025     private static final com.google.protobuf.Parser<DerivedInfo> PARSER =
3026         new com.google.protobuf.AbstractParser<DerivedInfo>() {
3027           @java.lang.Override
3028           public DerivedInfo parsePartialFrom(
3029               com.google.protobuf.CodedInputStream input,
3030               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3031               throws com.google.protobuf.InvalidProtocolBufferException {
3032             Builder builder = newBuilder();
3033             try {
3034               builder.mergeFrom(input, extensionRegistry);
3035             } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3036               throw e.setUnfinishedMessage(builder.buildPartial());
3037             } catch (com.google.protobuf.UninitializedMessageException e) {
3038               throw e.asInvalidProtocolBufferException()
3039                   .setUnfinishedMessage(builder.buildPartial());
3040             } catch (java.io.IOException e) {
3041               throw new com.google.protobuf.InvalidProtocolBufferException(e)
3042                   .setUnfinishedMessage(builder.buildPartial());
3043             }
3044             return builder.buildPartial();
3045           }
3046         };
3047 
parser()3048     public static com.google.protobuf.Parser<DerivedInfo> parser() {
3049       return PARSER;
3050     }
3051 
3052     @java.lang.Override
getParserForType()3053     public com.google.protobuf.Parser<DerivedInfo> getParserForType() {
3054       return PARSER;
3055     }
3056 
3057     @java.lang.Override
getDefaultInstanceForType()3058     public com.google.cloud.talent.v4.Job.DerivedInfo getDefaultInstanceForType() {
3059       return DEFAULT_INSTANCE;
3060     }
3061   }
3062 
3063   public interface ProcessingOptionsOrBuilder
3064       extends
3065       // @@protoc_insertion_point(interface_extends:google.cloud.talent.v4.Job.ProcessingOptions)
3066       com.google.protobuf.MessageOrBuilder {
3067 
3068     /**
3069      *
3070      *
3071      * <pre>
3072      * If set to `true`, the service does not attempt to resolve a
3073      * more precise address for the job.
3074      * </pre>
3075      *
3076      * <code>bool disable_street_address_resolution = 1;</code>
3077      *
3078      * @return The disableStreetAddressResolution.
3079      */
getDisableStreetAddressResolution()3080     boolean getDisableStreetAddressResolution();
3081 
3082     /**
3083      *
3084      *
3085      * <pre>
3086      * Option for job HTML content sanitization. Applied fields are:
3087      * * description
3088      * * applicationInfo.instruction
3089      * * incentives
3090      * * qualifications
3091      * * responsibilities
3092      * HTML tags in these fields may be stripped if sanitiazation isn't
3093      * disabled.
3094      * Defaults to
3095      * [HtmlSanitization.SIMPLE_FORMATTING_ONLY][google.cloud.talent.v4.HtmlSanitization.SIMPLE_FORMATTING_ONLY].
3096      * </pre>
3097      *
3098      * <code>.google.cloud.talent.v4.HtmlSanitization html_sanitization = 2;</code>
3099      *
3100      * @return The enum numeric value on the wire for htmlSanitization.
3101      */
getHtmlSanitizationValue()3102     int getHtmlSanitizationValue();
3103     /**
3104      *
3105      *
3106      * <pre>
3107      * Option for job HTML content sanitization. Applied fields are:
3108      * * description
3109      * * applicationInfo.instruction
3110      * * incentives
3111      * * qualifications
3112      * * responsibilities
3113      * HTML tags in these fields may be stripped if sanitiazation isn't
3114      * disabled.
3115      * Defaults to
3116      * [HtmlSanitization.SIMPLE_FORMATTING_ONLY][google.cloud.talent.v4.HtmlSanitization.SIMPLE_FORMATTING_ONLY].
3117      * </pre>
3118      *
3119      * <code>.google.cloud.talent.v4.HtmlSanitization html_sanitization = 2;</code>
3120      *
3121      * @return The htmlSanitization.
3122      */
getHtmlSanitization()3123     com.google.cloud.talent.v4.HtmlSanitization getHtmlSanitization();
3124   }
3125   /**
3126    *
3127    *
3128    * <pre>
3129    * Options for job processing.
3130    * </pre>
3131    *
3132    * Protobuf type {@code google.cloud.talent.v4.Job.ProcessingOptions}
3133    */
3134   public static final class ProcessingOptions extends com.google.protobuf.GeneratedMessageV3
3135       implements
3136       // @@protoc_insertion_point(message_implements:google.cloud.talent.v4.Job.ProcessingOptions)
3137       ProcessingOptionsOrBuilder {
3138     private static final long serialVersionUID = 0L;
3139     // Use ProcessingOptions.newBuilder() to construct.
ProcessingOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)3140     private ProcessingOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
3141       super(builder);
3142     }
3143 
ProcessingOptions()3144     private ProcessingOptions() {
3145       htmlSanitization_ = 0;
3146     }
3147 
3148     @java.lang.Override
3149     @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)3150     protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
3151       return new ProcessingOptions();
3152     }
3153 
3154     @java.lang.Override
getUnknownFields()3155     public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
3156       return this.unknownFields;
3157     }
3158 
getDescriptor()3159     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
3160       return com.google.cloud.talent.v4.JobProto
3161           .internal_static_google_cloud_talent_v4_Job_ProcessingOptions_descriptor;
3162     }
3163 
3164     @java.lang.Override
3165     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()3166         internalGetFieldAccessorTable() {
3167       return com.google.cloud.talent.v4.JobProto
3168           .internal_static_google_cloud_talent_v4_Job_ProcessingOptions_fieldAccessorTable
3169           .ensureFieldAccessorsInitialized(
3170               com.google.cloud.talent.v4.Job.ProcessingOptions.class,
3171               com.google.cloud.talent.v4.Job.ProcessingOptions.Builder.class);
3172     }
3173 
3174     public static final int DISABLE_STREET_ADDRESS_RESOLUTION_FIELD_NUMBER = 1;
3175     private boolean disableStreetAddressResolution_ = false;
3176     /**
3177      *
3178      *
3179      * <pre>
3180      * If set to `true`, the service does not attempt to resolve a
3181      * more precise address for the job.
3182      * </pre>
3183      *
3184      * <code>bool disable_street_address_resolution = 1;</code>
3185      *
3186      * @return The disableStreetAddressResolution.
3187      */
3188     @java.lang.Override
getDisableStreetAddressResolution()3189     public boolean getDisableStreetAddressResolution() {
3190       return disableStreetAddressResolution_;
3191     }
3192 
3193     public static final int HTML_SANITIZATION_FIELD_NUMBER = 2;
3194     private int htmlSanitization_ = 0;
3195     /**
3196      *
3197      *
3198      * <pre>
3199      * Option for job HTML content sanitization. Applied fields are:
3200      * * description
3201      * * applicationInfo.instruction
3202      * * incentives
3203      * * qualifications
3204      * * responsibilities
3205      * HTML tags in these fields may be stripped if sanitiazation isn't
3206      * disabled.
3207      * Defaults to
3208      * [HtmlSanitization.SIMPLE_FORMATTING_ONLY][google.cloud.talent.v4.HtmlSanitization.SIMPLE_FORMATTING_ONLY].
3209      * </pre>
3210      *
3211      * <code>.google.cloud.talent.v4.HtmlSanitization html_sanitization = 2;</code>
3212      *
3213      * @return The enum numeric value on the wire for htmlSanitization.
3214      */
3215     @java.lang.Override
getHtmlSanitizationValue()3216     public int getHtmlSanitizationValue() {
3217       return htmlSanitization_;
3218     }
3219     /**
3220      *
3221      *
3222      * <pre>
3223      * Option for job HTML content sanitization. Applied fields are:
3224      * * description
3225      * * applicationInfo.instruction
3226      * * incentives
3227      * * qualifications
3228      * * responsibilities
3229      * HTML tags in these fields may be stripped if sanitiazation isn't
3230      * disabled.
3231      * Defaults to
3232      * [HtmlSanitization.SIMPLE_FORMATTING_ONLY][google.cloud.talent.v4.HtmlSanitization.SIMPLE_FORMATTING_ONLY].
3233      * </pre>
3234      *
3235      * <code>.google.cloud.talent.v4.HtmlSanitization html_sanitization = 2;</code>
3236      *
3237      * @return The htmlSanitization.
3238      */
3239     @java.lang.Override
getHtmlSanitization()3240     public com.google.cloud.talent.v4.HtmlSanitization getHtmlSanitization() {
3241       com.google.cloud.talent.v4.HtmlSanitization result =
3242           com.google.cloud.talent.v4.HtmlSanitization.forNumber(htmlSanitization_);
3243       return result == null ? com.google.cloud.talent.v4.HtmlSanitization.UNRECOGNIZED : result;
3244     }
3245 
3246     private byte memoizedIsInitialized = -1;
3247 
3248     @java.lang.Override
isInitialized()3249     public final boolean isInitialized() {
3250       byte isInitialized = memoizedIsInitialized;
3251       if (isInitialized == 1) return true;
3252       if (isInitialized == 0) return false;
3253 
3254       memoizedIsInitialized = 1;
3255       return true;
3256     }
3257 
3258     @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)3259     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
3260       if (disableStreetAddressResolution_ != false) {
3261         output.writeBool(1, disableStreetAddressResolution_);
3262       }
3263       if (htmlSanitization_
3264           != com.google.cloud.talent.v4.HtmlSanitization.HTML_SANITIZATION_UNSPECIFIED
3265               .getNumber()) {
3266         output.writeEnum(2, htmlSanitization_);
3267       }
3268       getUnknownFields().writeTo(output);
3269     }
3270 
3271     @java.lang.Override
getSerializedSize()3272     public int getSerializedSize() {
3273       int size = memoizedSize;
3274       if (size != -1) return size;
3275 
3276       size = 0;
3277       if (disableStreetAddressResolution_ != false) {
3278         size +=
3279             com.google.protobuf.CodedOutputStream.computeBoolSize(
3280                 1, disableStreetAddressResolution_);
3281       }
3282       if (htmlSanitization_
3283           != com.google.cloud.talent.v4.HtmlSanitization.HTML_SANITIZATION_UNSPECIFIED
3284               .getNumber()) {
3285         size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, htmlSanitization_);
3286       }
3287       size += getUnknownFields().getSerializedSize();
3288       memoizedSize = size;
3289       return size;
3290     }
3291 
3292     @java.lang.Override
equals(final java.lang.Object obj)3293     public boolean equals(final java.lang.Object obj) {
3294       if (obj == this) {
3295         return true;
3296       }
3297       if (!(obj instanceof com.google.cloud.talent.v4.Job.ProcessingOptions)) {
3298         return super.equals(obj);
3299       }
3300       com.google.cloud.talent.v4.Job.ProcessingOptions other =
3301           (com.google.cloud.talent.v4.Job.ProcessingOptions) obj;
3302 
3303       if (getDisableStreetAddressResolution() != other.getDisableStreetAddressResolution())
3304         return false;
3305       if (htmlSanitization_ != other.htmlSanitization_) return false;
3306       if (!getUnknownFields().equals(other.getUnknownFields())) return false;
3307       return true;
3308     }
3309 
3310     @java.lang.Override
hashCode()3311     public int hashCode() {
3312       if (memoizedHashCode != 0) {
3313         return memoizedHashCode;
3314       }
3315       int hash = 41;
3316       hash = (19 * hash) + getDescriptor().hashCode();
3317       hash = (37 * hash) + DISABLE_STREET_ADDRESS_RESOLUTION_FIELD_NUMBER;
3318       hash =
3319           (53 * hash)
3320               + com.google.protobuf.Internal.hashBoolean(getDisableStreetAddressResolution());
3321       hash = (37 * hash) + HTML_SANITIZATION_FIELD_NUMBER;
3322       hash = (53 * hash) + htmlSanitization_;
3323       hash = (29 * hash) + getUnknownFields().hashCode();
3324       memoizedHashCode = hash;
3325       return hash;
3326     }
3327 
parseFrom( java.nio.ByteBuffer data)3328     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseFrom(
3329         java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
3330       return PARSER.parseFrom(data);
3331     }
3332 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3333     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseFrom(
3334         java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3335         throws com.google.protobuf.InvalidProtocolBufferException {
3336       return PARSER.parseFrom(data, extensionRegistry);
3337     }
3338 
parseFrom( com.google.protobuf.ByteString data)3339     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseFrom(
3340         com.google.protobuf.ByteString data)
3341         throws com.google.protobuf.InvalidProtocolBufferException {
3342       return PARSER.parseFrom(data);
3343     }
3344 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3345     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseFrom(
3346         com.google.protobuf.ByteString data,
3347         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3348         throws com.google.protobuf.InvalidProtocolBufferException {
3349       return PARSER.parseFrom(data, extensionRegistry);
3350     }
3351 
parseFrom(byte[] data)3352     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseFrom(byte[] data)
3353         throws com.google.protobuf.InvalidProtocolBufferException {
3354       return PARSER.parseFrom(data);
3355     }
3356 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3357     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseFrom(
3358         byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3359         throws com.google.protobuf.InvalidProtocolBufferException {
3360       return PARSER.parseFrom(data, extensionRegistry);
3361     }
3362 
parseFrom( java.io.InputStream input)3363     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseFrom(
3364         java.io.InputStream input) throws java.io.IOException {
3365       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
3366     }
3367 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3368     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseFrom(
3369         java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3370         throws java.io.IOException {
3371       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
3372           PARSER, input, extensionRegistry);
3373     }
3374 
parseDelimitedFrom( java.io.InputStream input)3375     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseDelimitedFrom(
3376         java.io.InputStream input) throws java.io.IOException {
3377       return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
3378     }
3379 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3380     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseDelimitedFrom(
3381         java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3382         throws java.io.IOException {
3383       return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
3384           PARSER, input, extensionRegistry);
3385     }
3386 
parseFrom( com.google.protobuf.CodedInputStream input)3387     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseFrom(
3388         com.google.protobuf.CodedInputStream input) throws java.io.IOException {
3389       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
3390     }
3391 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3392     public static com.google.cloud.talent.v4.Job.ProcessingOptions parseFrom(
3393         com.google.protobuf.CodedInputStream input,
3394         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3395         throws java.io.IOException {
3396       return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
3397           PARSER, input, extensionRegistry);
3398     }
3399 
3400     @java.lang.Override
newBuilderForType()3401     public Builder newBuilderForType() {
3402       return newBuilder();
3403     }
3404 
newBuilder()3405     public static Builder newBuilder() {
3406       return DEFAULT_INSTANCE.toBuilder();
3407     }
3408 
newBuilder(com.google.cloud.talent.v4.Job.ProcessingOptions prototype)3409     public static Builder newBuilder(com.google.cloud.talent.v4.Job.ProcessingOptions prototype) {
3410       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
3411     }
3412 
3413     @java.lang.Override
toBuilder()3414     public Builder toBuilder() {
3415       return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
3416     }
3417 
3418     @java.lang.Override
newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent)3419     protected Builder newBuilderForType(
3420         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3421       Builder builder = new Builder(parent);
3422       return builder;
3423     }
3424     /**
3425      *
3426      *
3427      * <pre>
3428      * Options for job processing.
3429      * </pre>
3430      *
3431      * Protobuf type {@code google.cloud.talent.v4.Job.ProcessingOptions}
3432      */
3433     public static final class Builder
3434         extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
3435         implements
3436         // @@protoc_insertion_point(builder_implements:google.cloud.talent.v4.Job.ProcessingOptions)
3437         com.google.cloud.talent.v4.Job.ProcessingOptionsOrBuilder {
getDescriptor()3438       public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
3439         return com.google.cloud.talent.v4.JobProto
3440             .internal_static_google_cloud_talent_v4_Job_ProcessingOptions_descriptor;
3441       }
3442 
3443       @java.lang.Override
3444       protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()3445           internalGetFieldAccessorTable() {
3446         return com.google.cloud.talent.v4.JobProto
3447             .internal_static_google_cloud_talent_v4_Job_ProcessingOptions_fieldAccessorTable
3448             .ensureFieldAccessorsInitialized(
3449                 com.google.cloud.talent.v4.Job.ProcessingOptions.class,
3450                 com.google.cloud.talent.v4.Job.ProcessingOptions.Builder.class);
3451       }
3452 
3453       // Construct using com.google.cloud.talent.v4.Job.ProcessingOptions.newBuilder()
Builder()3454       private Builder() {}
3455 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)3456       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3457         super(parent);
3458       }
3459 
3460       @java.lang.Override
clear()3461       public Builder clear() {
3462         super.clear();
3463         bitField0_ = 0;
3464         disableStreetAddressResolution_ = false;
3465         htmlSanitization_ = 0;
3466         return this;
3467       }
3468 
3469       @java.lang.Override
getDescriptorForType()3470       public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
3471         return com.google.cloud.talent.v4.JobProto
3472             .internal_static_google_cloud_talent_v4_Job_ProcessingOptions_descriptor;
3473       }
3474 
3475       @java.lang.Override
getDefaultInstanceForType()3476       public com.google.cloud.talent.v4.Job.ProcessingOptions getDefaultInstanceForType() {
3477         return com.google.cloud.talent.v4.Job.ProcessingOptions.getDefaultInstance();
3478       }
3479 
3480       @java.lang.Override
build()3481       public com.google.cloud.talent.v4.Job.ProcessingOptions build() {
3482         com.google.cloud.talent.v4.Job.ProcessingOptions result = buildPartial();
3483         if (!result.isInitialized()) {
3484           throw newUninitializedMessageException(result);
3485         }
3486         return result;
3487       }
3488 
3489       @java.lang.Override
buildPartial()3490       public com.google.cloud.talent.v4.Job.ProcessingOptions buildPartial() {
3491         com.google.cloud.talent.v4.Job.ProcessingOptions result =
3492             new com.google.cloud.talent.v4.Job.ProcessingOptions(this);
3493         if (bitField0_ != 0) {
3494           buildPartial0(result);
3495         }
3496         onBuilt();
3497         return result;
3498       }
3499 
buildPartial0(com.google.cloud.talent.v4.Job.ProcessingOptions result)3500       private void buildPartial0(com.google.cloud.talent.v4.Job.ProcessingOptions result) {
3501         int from_bitField0_ = bitField0_;
3502         if (((from_bitField0_ & 0x00000001) != 0)) {
3503           result.disableStreetAddressResolution_ = disableStreetAddressResolution_;
3504         }
3505         if (((from_bitField0_ & 0x00000002) != 0)) {
3506           result.htmlSanitization_ = htmlSanitization_;
3507         }
3508       }
3509 
3510       @java.lang.Override
clone()3511       public Builder clone() {
3512         return super.clone();
3513       }
3514 
3515       @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)3516       public Builder setField(
3517           com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
3518         return super.setField(field, value);
3519       }
3520 
3521       @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)3522       public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
3523         return super.clearField(field);
3524       }
3525 
3526       @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)3527       public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
3528         return super.clearOneof(oneof);
3529       }
3530 
3531       @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)3532       public Builder setRepeatedField(
3533           com.google.protobuf.Descriptors.FieldDescriptor field,
3534           int index,
3535           java.lang.Object value) {
3536         return super.setRepeatedField(field, index, value);
3537       }
3538 
3539       @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)3540       public Builder addRepeatedField(
3541           com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
3542         return super.addRepeatedField(field, value);
3543       }
3544 
3545       @java.lang.Override
mergeFrom(com.google.protobuf.Message other)3546       public Builder mergeFrom(com.google.protobuf.Message other) {
3547         if (other instanceof com.google.cloud.talent.v4.Job.ProcessingOptions) {
3548           return mergeFrom((com.google.cloud.talent.v4.Job.ProcessingOptions) other);
3549         } else {
3550           super.mergeFrom(other);
3551           return this;
3552         }
3553       }
3554 
mergeFrom(com.google.cloud.talent.v4.Job.ProcessingOptions other)3555       public Builder mergeFrom(com.google.cloud.talent.v4.Job.ProcessingOptions other) {
3556         if (other == com.google.cloud.talent.v4.Job.ProcessingOptions.getDefaultInstance())
3557           return this;
3558         if (other.getDisableStreetAddressResolution() != false) {
3559           setDisableStreetAddressResolution(other.getDisableStreetAddressResolution());
3560         }
3561         if (other.htmlSanitization_ != 0) {
3562           setHtmlSanitizationValue(other.getHtmlSanitizationValue());
3563         }
3564         this.mergeUnknownFields(other.getUnknownFields());
3565         onChanged();
3566         return this;
3567       }
3568 
3569       @java.lang.Override
isInitialized()3570       public final boolean isInitialized() {
3571         return true;
3572       }
3573 
3574       @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3575       public Builder mergeFrom(
3576           com.google.protobuf.CodedInputStream input,
3577           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3578           throws java.io.IOException {
3579         if (extensionRegistry == null) {
3580           throw new java.lang.NullPointerException();
3581         }
3582         try {
3583           boolean done = false;
3584           while (!done) {
3585             int tag = input.readTag();
3586             switch (tag) {
3587               case 0:
3588                 done = true;
3589                 break;
3590               case 8:
3591                 {
3592                   disableStreetAddressResolution_ = input.readBool();
3593                   bitField0_ |= 0x00000001;
3594                   break;
3595                 } // case 8
3596               case 16:
3597                 {
3598                   htmlSanitization_ = input.readEnum();
3599                   bitField0_ |= 0x00000002;
3600                   break;
3601                 } // case 16
3602               default:
3603                 {
3604                   if (!super.parseUnknownField(input, extensionRegistry, tag)) {
3605                     done = true; // was an endgroup tag
3606                   }
3607                   break;
3608                 } // default:
3609             } // switch (tag)
3610           } // while (!done)
3611         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3612           throw e.unwrapIOException();
3613         } finally {
3614           onChanged();
3615         } // finally
3616         return this;
3617       }
3618 
3619       private int bitField0_;
3620 
3621       private boolean disableStreetAddressResolution_;
3622       /**
3623        *
3624        *
3625        * <pre>
3626        * If set to `true`, the service does not attempt to resolve a
3627        * more precise address for the job.
3628        * </pre>
3629        *
3630        * <code>bool disable_street_address_resolution = 1;</code>
3631        *
3632        * @return The disableStreetAddressResolution.
3633        */
3634       @java.lang.Override
getDisableStreetAddressResolution()3635       public boolean getDisableStreetAddressResolution() {
3636         return disableStreetAddressResolution_;
3637       }
3638       /**
3639        *
3640        *
3641        * <pre>
3642        * If set to `true`, the service does not attempt to resolve a
3643        * more precise address for the job.
3644        * </pre>
3645        *
3646        * <code>bool disable_street_address_resolution = 1;</code>
3647        *
3648        * @param value The disableStreetAddressResolution to set.
3649        * @return This builder for chaining.
3650        */
setDisableStreetAddressResolution(boolean value)3651       public Builder setDisableStreetAddressResolution(boolean value) {
3652 
3653         disableStreetAddressResolution_ = value;
3654         bitField0_ |= 0x00000001;
3655         onChanged();
3656         return this;
3657       }
3658       /**
3659        *
3660        *
3661        * <pre>
3662        * If set to `true`, the service does not attempt to resolve a
3663        * more precise address for the job.
3664        * </pre>
3665        *
3666        * <code>bool disable_street_address_resolution = 1;</code>
3667        *
3668        * @return This builder for chaining.
3669        */
clearDisableStreetAddressResolution()3670       public Builder clearDisableStreetAddressResolution() {
3671         bitField0_ = (bitField0_ & ~0x00000001);
3672         disableStreetAddressResolution_ = false;
3673         onChanged();
3674         return this;
3675       }
3676 
3677       private int htmlSanitization_ = 0;
3678       /**
3679        *
3680        *
3681        * <pre>
3682        * Option for job HTML content sanitization. Applied fields are:
3683        * * description
3684        * * applicationInfo.instruction
3685        * * incentives
3686        * * qualifications
3687        * * responsibilities
3688        * HTML tags in these fields may be stripped if sanitiazation isn't
3689        * disabled.
3690        * Defaults to
3691        * [HtmlSanitization.SIMPLE_FORMATTING_ONLY][google.cloud.talent.v4.HtmlSanitization.SIMPLE_FORMATTING_ONLY].
3692        * </pre>
3693        *
3694        * <code>.google.cloud.talent.v4.HtmlSanitization html_sanitization = 2;</code>
3695        *
3696        * @return The enum numeric value on the wire for htmlSanitization.
3697        */
3698       @java.lang.Override
getHtmlSanitizationValue()3699       public int getHtmlSanitizationValue() {
3700         return htmlSanitization_;
3701       }
3702       /**
3703        *
3704        *
3705        * <pre>
3706        * Option for job HTML content sanitization. Applied fields are:
3707        * * description
3708        * * applicationInfo.instruction
3709        * * incentives
3710        * * qualifications
3711        * * responsibilities
3712        * HTML tags in these fields may be stripped if sanitiazation isn't
3713        * disabled.
3714        * Defaults to
3715        * [HtmlSanitization.SIMPLE_FORMATTING_ONLY][google.cloud.talent.v4.HtmlSanitization.SIMPLE_FORMATTING_ONLY].
3716        * </pre>
3717        *
3718        * <code>.google.cloud.talent.v4.HtmlSanitization html_sanitization = 2;</code>
3719        *
3720        * @param value The enum numeric value on the wire for htmlSanitization to set.
3721        * @return This builder for chaining.
3722        */
setHtmlSanitizationValue(int value)3723       public Builder setHtmlSanitizationValue(int value) {
3724         htmlSanitization_ = value;
3725         bitField0_ |= 0x00000002;
3726         onChanged();
3727         return this;
3728       }
3729       /**
3730        *
3731        *
3732        * <pre>
3733        * Option for job HTML content sanitization. Applied fields are:
3734        * * description
3735        * * applicationInfo.instruction
3736        * * incentives
3737        * * qualifications
3738        * * responsibilities
3739        * HTML tags in these fields may be stripped if sanitiazation isn't
3740        * disabled.
3741        * Defaults to
3742        * [HtmlSanitization.SIMPLE_FORMATTING_ONLY][google.cloud.talent.v4.HtmlSanitization.SIMPLE_FORMATTING_ONLY].
3743        * </pre>
3744        *
3745        * <code>.google.cloud.talent.v4.HtmlSanitization html_sanitization = 2;</code>
3746        *
3747        * @return The htmlSanitization.
3748        */
3749       @java.lang.Override
getHtmlSanitization()3750       public com.google.cloud.talent.v4.HtmlSanitization getHtmlSanitization() {
3751         com.google.cloud.talent.v4.HtmlSanitization result =
3752             com.google.cloud.talent.v4.HtmlSanitization.forNumber(htmlSanitization_);
3753         return result == null ? com.google.cloud.talent.v4.HtmlSanitization.UNRECOGNIZED : result;
3754       }
3755       /**
3756        *
3757        *
3758        * <pre>
3759        * Option for job HTML content sanitization. Applied fields are:
3760        * * description
3761        * * applicationInfo.instruction
3762        * * incentives
3763        * * qualifications
3764        * * responsibilities
3765        * HTML tags in these fields may be stripped if sanitiazation isn't
3766        * disabled.
3767        * Defaults to
3768        * [HtmlSanitization.SIMPLE_FORMATTING_ONLY][google.cloud.talent.v4.HtmlSanitization.SIMPLE_FORMATTING_ONLY].
3769        * </pre>
3770        *
3771        * <code>.google.cloud.talent.v4.HtmlSanitization html_sanitization = 2;</code>
3772        *
3773        * @param value The htmlSanitization to set.
3774        * @return This builder for chaining.
3775        */
setHtmlSanitization(com.google.cloud.talent.v4.HtmlSanitization value)3776       public Builder setHtmlSanitization(com.google.cloud.talent.v4.HtmlSanitization value) {
3777         if (value == null) {
3778           throw new NullPointerException();
3779         }
3780         bitField0_ |= 0x00000002;
3781         htmlSanitization_ = value.getNumber();
3782         onChanged();
3783         return this;
3784       }
3785       /**
3786        *
3787        *
3788        * <pre>
3789        * Option for job HTML content sanitization. Applied fields are:
3790        * * description
3791        * * applicationInfo.instruction
3792        * * incentives
3793        * * qualifications
3794        * * responsibilities
3795        * HTML tags in these fields may be stripped if sanitiazation isn't
3796        * disabled.
3797        * Defaults to
3798        * [HtmlSanitization.SIMPLE_FORMATTING_ONLY][google.cloud.talent.v4.HtmlSanitization.SIMPLE_FORMATTING_ONLY].
3799        * </pre>
3800        *
3801        * <code>.google.cloud.talent.v4.HtmlSanitization html_sanitization = 2;</code>
3802        *
3803        * @return This builder for chaining.
3804        */
clearHtmlSanitization()3805       public Builder clearHtmlSanitization() {
3806         bitField0_ = (bitField0_ & ~0x00000002);
3807         htmlSanitization_ = 0;
3808         onChanged();
3809         return this;
3810       }
3811 
3812       @java.lang.Override
setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)3813       public final Builder setUnknownFields(
3814           final com.google.protobuf.UnknownFieldSet unknownFields) {
3815         return super.setUnknownFields(unknownFields);
3816       }
3817 
3818       @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)3819       public final Builder mergeUnknownFields(
3820           final com.google.protobuf.UnknownFieldSet unknownFields) {
3821         return super.mergeUnknownFields(unknownFields);
3822       }
3823 
3824       // @@protoc_insertion_point(builder_scope:google.cloud.talent.v4.Job.ProcessingOptions)
3825     }
3826 
3827     // @@protoc_insertion_point(class_scope:google.cloud.talent.v4.Job.ProcessingOptions)
3828     private static final com.google.cloud.talent.v4.Job.ProcessingOptions DEFAULT_INSTANCE;
3829 
3830     static {
3831       DEFAULT_INSTANCE = new com.google.cloud.talent.v4.Job.ProcessingOptions();
3832     }
3833 
getDefaultInstance()3834     public static com.google.cloud.talent.v4.Job.ProcessingOptions getDefaultInstance() {
3835       return DEFAULT_INSTANCE;
3836     }
3837 
3838     private static final com.google.protobuf.Parser<ProcessingOptions> PARSER =
3839         new com.google.protobuf.AbstractParser<ProcessingOptions>() {
3840           @java.lang.Override
3841           public ProcessingOptions parsePartialFrom(
3842               com.google.protobuf.CodedInputStream input,
3843               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3844               throws com.google.protobuf.InvalidProtocolBufferException {
3845             Builder builder = newBuilder();
3846             try {
3847               builder.mergeFrom(input, extensionRegistry);
3848             } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3849               throw e.setUnfinishedMessage(builder.buildPartial());
3850             } catch (com.google.protobuf.UninitializedMessageException e) {
3851               throw e.asInvalidProtocolBufferException()
3852                   .setUnfinishedMessage(builder.buildPartial());
3853             } catch (java.io.IOException e) {
3854               throw new com.google.protobuf.InvalidProtocolBufferException(e)
3855                   .setUnfinishedMessage(builder.buildPartial());
3856             }
3857             return builder.buildPartial();
3858           }
3859         };
3860 
parser()3861     public static com.google.protobuf.Parser<ProcessingOptions> parser() {
3862       return PARSER;
3863     }
3864 
3865     @java.lang.Override
getParserForType()3866     public com.google.protobuf.Parser<ProcessingOptions> getParserForType() {
3867       return PARSER;
3868     }
3869 
3870     @java.lang.Override
getDefaultInstanceForType()3871     public com.google.cloud.talent.v4.Job.ProcessingOptions getDefaultInstanceForType() {
3872       return DEFAULT_INSTANCE;
3873     }
3874   }
3875 
3876   public static final int NAME_FIELD_NUMBER = 1;
3877 
3878   @SuppressWarnings("serial")
3879   private volatile java.lang.Object name_ = "";
3880   /**
3881    *
3882    *
3883    * <pre>
3884    * Required during job update.
3885    * The resource name for the job. This is generated by the service when a
3886    * job is created.
3887    * The format is
3888    * "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}". For
3889    * example, "projects/foo/tenants/bar/jobs/baz".
3890    * Use of this field in job queries and API calls is preferred over the use of
3891    * [requisition_id][google.cloud.talent.v4.Job.requisition_id] since this
3892    * value is unique.
3893    * </pre>
3894    *
3895    * <code>string name = 1;</code>
3896    *
3897    * @return The name.
3898    */
3899   @java.lang.Override
getName()3900   public java.lang.String getName() {
3901     java.lang.Object ref = name_;
3902     if (ref instanceof java.lang.String) {
3903       return (java.lang.String) ref;
3904     } else {
3905       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
3906       java.lang.String s = bs.toStringUtf8();
3907       name_ = s;
3908       return s;
3909     }
3910   }
3911   /**
3912    *
3913    *
3914    * <pre>
3915    * Required during job update.
3916    * The resource name for the job. This is generated by the service when a
3917    * job is created.
3918    * The format is
3919    * "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}". For
3920    * example, "projects/foo/tenants/bar/jobs/baz".
3921    * Use of this field in job queries and API calls is preferred over the use of
3922    * [requisition_id][google.cloud.talent.v4.Job.requisition_id] since this
3923    * value is unique.
3924    * </pre>
3925    *
3926    * <code>string name = 1;</code>
3927    *
3928    * @return The bytes for name.
3929    */
3930   @java.lang.Override
getNameBytes()3931   public com.google.protobuf.ByteString getNameBytes() {
3932     java.lang.Object ref = name_;
3933     if (ref instanceof java.lang.String) {
3934       com.google.protobuf.ByteString b =
3935           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
3936       name_ = b;
3937       return b;
3938     } else {
3939       return (com.google.protobuf.ByteString) ref;
3940     }
3941   }
3942 
3943   public static final int COMPANY_FIELD_NUMBER = 2;
3944 
3945   @SuppressWarnings("serial")
3946   private volatile java.lang.Object company_ = "";
3947   /**
3948    *
3949    *
3950    * <pre>
3951    * Required. The resource name of the company listing the job.
3952    * The format is
3953    * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
3954    * example, "projects/foo/tenants/bar/companies/baz".
3955    * </pre>
3956    *
3957    * <code>
3958    * string company = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
3959    * </code>
3960    *
3961    * @return The company.
3962    */
3963   @java.lang.Override
getCompany()3964   public java.lang.String getCompany() {
3965     java.lang.Object ref = company_;
3966     if (ref instanceof java.lang.String) {
3967       return (java.lang.String) ref;
3968     } else {
3969       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
3970       java.lang.String s = bs.toStringUtf8();
3971       company_ = s;
3972       return s;
3973     }
3974   }
3975   /**
3976    *
3977    *
3978    * <pre>
3979    * Required. The resource name of the company listing the job.
3980    * The format is
3981    * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
3982    * example, "projects/foo/tenants/bar/companies/baz".
3983    * </pre>
3984    *
3985    * <code>
3986    * string company = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
3987    * </code>
3988    *
3989    * @return The bytes for company.
3990    */
3991   @java.lang.Override
getCompanyBytes()3992   public com.google.protobuf.ByteString getCompanyBytes() {
3993     java.lang.Object ref = company_;
3994     if (ref instanceof java.lang.String) {
3995       com.google.protobuf.ByteString b =
3996           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
3997       company_ = b;
3998       return b;
3999     } else {
4000       return (com.google.protobuf.ByteString) ref;
4001     }
4002   }
4003 
4004   public static final int REQUISITION_ID_FIELD_NUMBER = 3;
4005 
4006   @SuppressWarnings("serial")
4007   private volatile java.lang.Object requisitionId_ = "";
4008   /**
4009    *
4010    *
4011    * <pre>
4012    * Required. The requisition ID, also referred to as the posting ID, is
4013    * assigned by the client to identify a job. This field is intended to be used
4014    * by clients for client identification and tracking of postings. A job isn't
4015    * allowed to be created if there is another job with the same
4016    * [company][google.cloud.talent.v4.Job.name],
4017    * [language_code][google.cloud.talent.v4.Job.language_code] and
4018    * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
4019    * The maximum number of allowed characters is 255.
4020    * </pre>
4021    *
4022    * <code>string requisition_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
4023    *
4024    * @return The requisitionId.
4025    */
4026   @java.lang.Override
getRequisitionId()4027   public java.lang.String getRequisitionId() {
4028     java.lang.Object ref = requisitionId_;
4029     if (ref instanceof java.lang.String) {
4030       return (java.lang.String) ref;
4031     } else {
4032       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4033       java.lang.String s = bs.toStringUtf8();
4034       requisitionId_ = s;
4035       return s;
4036     }
4037   }
4038   /**
4039    *
4040    *
4041    * <pre>
4042    * Required. The requisition ID, also referred to as the posting ID, is
4043    * assigned by the client to identify a job. This field is intended to be used
4044    * by clients for client identification and tracking of postings. A job isn't
4045    * allowed to be created if there is another job with the same
4046    * [company][google.cloud.talent.v4.Job.name],
4047    * [language_code][google.cloud.talent.v4.Job.language_code] and
4048    * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
4049    * The maximum number of allowed characters is 255.
4050    * </pre>
4051    *
4052    * <code>string requisition_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
4053    *
4054    * @return The bytes for requisitionId.
4055    */
4056   @java.lang.Override
getRequisitionIdBytes()4057   public com.google.protobuf.ByteString getRequisitionIdBytes() {
4058     java.lang.Object ref = requisitionId_;
4059     if (ref instanceof java.lang.String) {
4060       com.google.protobuf.ByteString b =
4061           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4062       requisitionId_ = b;
4063       return b;
4064     } else {
4065       return (com.google.protobuf.ByteString) ref;
4066     }
4067   }
4068 
4069   public static final int TITLE_FIELD_NUMBER = 4;
4070 
4071   @SuppressWarnings("serial")
4072   private volatile java.lang.Object title_ = "";
4073   /**
4074    *
4075    *
4076    * <pre>
4077    * Required. The title of the job, such as "Software Engineer"
4078    * The maximum number of allowed characters is 500.
4079    * </pre>
4080    *
4081    * <code>string title = 4 [(.google.api.field_behavior) = REQUIRED];</code>
4082    *
4083    * @return The title.
4084    */
4085   @java.lang.Override
getTitle()4086   public java.lang.String getTitle() {
4087     java.lang.Object ref = title_;
4088     if (ref instanceof java.lang.String) {
4089       return (java.lang.String) ref;
4090     } else {
4091       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4092       java.lang.String s = bs.toStringUtf8();
4093       title_ = s;
4094       return s;
4095     }
4096   }
4097   /**
4098    *
4099    *
4100    * <pre>
4101    * Required. The title of the job, such as "Software Engineer"
4102    * The maximum number of allowed characters is 500.
4103    * </pre>
4104    *
4105    * <code>string title = 4 [(.google.api.field_behavior) = REQUIRED];</code>
4106    *
4107    * @return The bytes for title.
4108    */
4109   @java.lang.Override
getTitleBytes()4110   public com.google.protobuf.ByteString getTitleBytes() {
4111     java.lang.Object ref = title_;
4112     if (ref instanceof java.lang.String) {
4113       com.google.protobuf.ByteString b =
4114           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4115       title_ = b;
4116       return b;
4117     } else {
4118       return (com.google.protobuf.ByteString) ref;
4119     }
4120   }
4121 
4122   public static final int DESCRIPTION_FIELD_NUMBER = 5;
4123 
4124   @SuppressWarnings("serial")
4125   private volatile java.lang.Object description_ = "";
4126   /**
4127    *
4128    *
4129    * <pre>
4130    * Required. The description of the job, which typically includes a
4131    * multi-paragraph description of the company and related information.
4132    * Separate fields are provided on the job object for
4133    * [responsibilities][google.cloud.talent.v4.Job.responsibilities],
4134    * [qualifications][google.cloud.talent.v4.Job.qualifications], and other job
4135    * characteristics. Use of these separate job fields is recommended.
4136    * This field accepts and sanitizes HTML input, and also accepts
4137    * bold, italic, ordered list, and unordered list markup tags.
4138    * The maximum number of allowed characters is 100,000.
4139    * </pre>
4140    *
4141    * <code>string description = 5 [(.google.api.field_behavior) = REQUIRED];</code>
4142    *
4143    * @return The description.
4144    */
4145   @java.lang.Override
getDescription()4146   public java.lang.String getDescription() {
4147     java.lang.Object ref = description_;
4148     if (ref instanceof java.lang.String) {
4149       return (java.lang.String) ref;
4150     } else {
4151       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4152       java.lang.String s = bs.toStringUtf8();
4153       description_ = s;
4154       return s;
4155     }
4156   }
4157   /**
4158    *
4159    *
4160    * <pre>
4161    * Required. The description of the job, which typically includes a
4162    * multi-paragraph description of the company and related information.
4163    * Separate fields are provided on the job object for
4164    * [responsibilities][google.cloud.talent.v4.Job.responsibilities],
4165    * [qualifications][google.cloud.talent.v4.Job.qualifications], and other job
4166    * characteristics. Use of these separate job fields is recommended.
4167    * This field accepts and sanitizes HTML input, and also accepts
4168    * bold, italic, ordered list, and unordered list markup tags.
4169    * The maximum number of allowed characters is 100,000.
4170    * </pre>
4171    *
4172    * <code>string description = 5 [(.google.api.field_behavior) = REQUIRED];</code>
4173    *
4174    * @return The bytes for description.
4175    */
4176   @java.lang.Override
getDescriptionBytes()4177   public com.google.protobuf.ByteString getDescriptionBytes() {
4178     java.lang.Object ref = description_;
4179     if (ref instanceof java.lang.String) {
4180       com.google.protobuf.ByteString b =
4181           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4182       description_ = b;
4183       return b;
4184     } else {
4185       return (com.google.protobuf.ByteString) ref;
4186     }
4187   }
4188 
4189   public static final int ADDRESSES_FIELD_NUMBER = 6;
4190 
4191   @SuppressWarnings("serial")
4192   private com.google.protobuf.LazyStringList addresses_;
4193   /**
4194    *
4195    *
4196    * <pre>
4197    * Strongly recommended for the best service experience.
4198    * Location(s) where the employer is looking to hire for this job posting.
4199    * Specifying the full street address(es) of the hiring location enables
4200    * better API results, especially job searches by commute time.
4201    * At most 50 locations are allowed for best search performance. If a job has
4202    * more locations, it is suggested to split it into multiple jobs with unique
4203    * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
4204    * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
4205    * [company][google.cloud.talent.v4.Job.company],
4206    * [language_code][google.cloud.talent.v4.Job.language_code] and
4207    * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
4208    * allowed. If the original
4209    * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
4210    * preserved, a custom field should be used for storage. It is also suggested
4211    * to group the locations that close to each other in the same job for better
4212    * search experience.
4213    * Jobs with multiple addresses must have their addresses with the same
4214    * [LocationType][] to allow location filtering to work properly. (For
4215    * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
4216    * CA, USA" and "London, UK" may not have location filters applied correctly
4217    * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
4218    * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
4219    * addresses, it is suggested to split it into multiple jobs with same
4220    * LocationTypes.
4221    * The maximum number of allowed characters is 500.
4222    * </pre>
4223    *
4224    * <code>repeated string addresses = 6;</code>
4225    *
4226    * @return A list containing the addresses.
4227    */
getAddressesList()4228   public com.google.protobuf.ProtocolStringList getAddressesList() {
4229     return addresses_;
4230   }
4231   /**
4232    *
4233    *
4234    * <pre>
4235    * Strongly recommended for the best service experience.
4236    * Location(s) where the employer is looking to hire for this job posting.
4237    * Specifying the full street address(es) of the hiring location enables
4238    * better API results, especially job searches by commute time.
4239    * At most 50 locations are allowed for best search performance. If a job has
4240    * more locations, it is suggested to split it into multiple jobs with unique
4241    * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
4242    * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
4243    * [company][google.cloud.talent.v4.Job.company],
4244    * [language_code][google.cloud.talent.v4.Job.language_code] and
4245    * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
4246    * allowed. If the original
4247    * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
4248    * preserved, a custom field should be used for storage. It is also suggested
4249    * to group the locations that close to each other in the same job for better
4250    * search experience.
4251    * Jobs with multiple addresses must have their addresses with the same
4252    * [LocationType][] to allow location filtering to work properly. (For
4253    * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
4254    * CA, USA" and "London, UK" may not have location filters applied correctly
4255    * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
4256    * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
4257    * addresses, it is suggested to split it into multiple jobs with same
4258    * LocationTypes.
4259    * The maximum number of allowed characters is 500.
4260    * </pre>
4261    *
4262    * <code>repeated string addresses = 6;</code>
4263    *
4264    * @return The count of addresses.
4265    */
getAddressesCount()4266   public int getAddressesCount() {
4267     return addresses_.size();
4268   }
4269   /**
4270    *
4271    *
4272    * <pre>
4273    * Strongly recommended for the best service experience.
4274    * Location(s) where the employer is looking to hire for this job posting.
4275    * Specifying the full street address(es) of the hiring location enables
4276    * better API results, especially job searches by commute time.
4277    * At most 50 locations are allowed for best search performance. If a job has
4278    * more locations, it is suggested to split it into multiple jobs with unique
4279    * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
4280    * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
4281    * [company][google.cloud.talent.v4.Job.company],
4282    * [language_code][google.cloud.talent.v4.Job.language_code] and
4283    * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
4284    * allowed. If the original
4285    * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
4286    * preserved, a custom field should be used for storage. It is also suggested
4287    * to group the locations that close to each other in the same job for better
4288    * search experience.
4289    * Jobs with multiple addresses must have their addresses with the same
4290    * [LocationType][] to allow location filtering to work properly. (For
4291    * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
4292    * CA, USA" and "London, UK" may not have location filters applied correctly
4293    * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
4294    * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
4295    * addresses, it is suggested to split it into multiple jobs with same
4296    * LocationTypes.
4297    * The maximum number of allowed characters is 500.
4298    * </pre>
4299    *
4300    * <code>repeated string addresses = 6;</code>
4301    *
4302    * @param index The index of the element to return.
4303    * @return The addresses at the given index.
4304    */
getAddresses(int index)4305   public java.lang.String getAddresses(int index) {
4306     return addresses_.get(index);
4307   }
4308   /**
4309    *
4310    *
4311    * <pre>
4312    * Strongly recommended for the best service experience.
4313    * Location(s) where the employer is looking to hire for this job posting.
4314    * Specifying the full street address(es) of the hiring location enables
4315    * better API results, especially job searches by commute time.
4316    * At most 50 locations are allowed for best search performance. If a job has
4317    * more locations, it is suggested to split it into multiple jobs with unique
4318    * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
4319    * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
4320    * [company][google.cloud.talent.v4.Job.company],
4321    * [language_code][google.cloud.talent.v4.Job.language_code] and
4322    * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
4323    * allowed. If the original
4324    * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
4325    * preserved, a custom field should be used for storage. It is also suggested
4326    * to group the locations that close to each other in the same job for better
4327    * search experience.
4328    * Jobs with multiple addresses must have their addresses with the same
4329    * [LocationType][] to allow location filtering to work properly. (For
4330    * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
4331    * CA, USA" and "London, UK" may not have location filters applied correctly
4332    * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
4333    * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
4334    * addresses, it is suggested to split it into multiple jobs with same
4335    * LocationTypes.
4336    * The maximum number of allowed characters is 500.
4337    * </pre>
4338    *
4339    * <code>repeated string addresses = 6;</code>
4340    *
4341    * @param index The index of the value to return.
4342    * @return The bytes of the addresses at the given index.
4343    */
getAddressesBytes(int index)4344   public com.google.protobuf.ByteString getAddressesBytes(int index) {
4345     return addresses_.getByteString(index);
4346   }
4347 
4348   public static final int APPLICATION_INFO_FIELD_NUMBER = 7;
4349   private com.google.cloud.talent.v4.Job.ApplicationInfo applicationInfo_;
4350   /**
4351    *
4352    *
4353    * <pre>
4354    * Job application information.
4355    * </pre>
4356    *
4357    * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
4358    *
4359    * @return Whether the applicationInfo field is set.
4360    */
4361   @java.lang.Override
hasApplicationInfo()4362   public boolean hasApplicationInfo() {
4363     return applicationInfo_ != null;
4364   }
4365   /**
4366    *
4367    *
4368    * <pre>
4369    * Job application information.
4370    * </pre>
4371    *
4372    * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
4373    *
4374    * @return The applicationInfo.
4375    */
4376   @java.lang.Override
getApplicationInfo()4377   public com.google.cloud.talent.v4.Job.ApplicationInfo getApplicationInfo() {
4378     return applicationInfo_ == null
4379         ? com.google.cloud.talent.v4.Job.ApplicationInfo.getDefaultInstance()
4380         : applicationInfo_;
4381   }
4382   /**
4383    *
4384    *
4385    * <pre>
4386    * Job application information.
4387    * </pre>
4388    *
4389    * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
4390    */
4391   @java.lang.Override
getApplicationInfoOrBuilder()4392   public com.google.cloud.talent.v4.Job.ApplicationInfoOrBuilder getApplicationInfoOrBuilder() {
4393     return applicationInfo_ == null
4394         ? com.google.cloud.talent.v4.Job.ApplicationInfo.getDefaultInstance()
4395         : applicationInfo_;
4396   }
4397 
4398   public static final int JOB_BENEFITS_FIELD_NUMBER = 8;
4399 
4400   @SuppressWarnings("serial")
4401   private java.util.List<java.lang.Integer> jobBenefits_;
4402 
4403   private static final com.google.protobuf.Internal.ListAdapter.Converter<
4404           java.lang.Integer, com.google.cloud.talent.v4.JobBenefit>
4405       jobBenefits_converter_ =
4406           new com.google.protobuf.Internal.ListAdapter.Converter<
4407               java.lang.Integer, com.google.cloud.talent.v4.JobBenefit>() {
4408             public com.google.cloud.talent.v4.JobBenefit convert(java.lang.Integer from) {
4409               com.google.cloud.talent.v4.JobBenefit result =
4410                   com.google.cloud.talent.v4.JobBenefit.forNumber(from);
4411               return result == null ? com.google.cloud.talent.v4.JobBenefit.UNRECOGNIZED : result;
4412             }
4413           };
4414   /**
4415    *
4416    *
4417    * <pre>
4418    * The benefits included with the job.
4419    * </pre>
4420    *
4421    * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
4422    *
4423    * @return A list containing the jobBenefits.
4424    */
4425   @java.lang.Override
getJobBenefitsList()4426   public java.util.List<com.google.cloud.talent.v4.JobBenefit> getJobBenefitsList() {
4427     return new com.google.protobuf.Internal.ListAdapter<
4428         java.lang.Integer, com.google.cloud.talent.v4.JobBenefit>(
4429         jobBenefits_, jobBenefits_converter_);
4430   }
4431   /**
4432    *
4433    *
4434    * <pre>
4435    * The benefits included with the job.
4436    * </pre>
4437    *
4438    * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
4439    *
4440    * @return The count of jobBenefits.
4441    */
4442   @java.lang.Override
getJobBenefitsCount()4443   public int getJobBenefitsCount() {
4444     return jobBenefits_.size();
4445   }
4446   /**
4447    *
4448    *
4449    * <pre>
4450    * The benefits included with the job.
4451    * </pre>
4452    *
4453    * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
4454    *
4455    * @param index The index of the element to return.
4456    * @return The jobBenefits at the given index.
4457    */
4458   @java.lang.Override
getJobBenefits(int index)4459   public com.google.cloud.talent.v4.JobBenefit getJobBenefits(int index) {
4460     return jobBenefits_converter_.convert(jobBenefits_.get(index));
4461   }
4462   /**
4463    *
4464    *
4465    * <pre>
4466    * The benefits included with the job.
4467    * </pre>
4468    *
4469    * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
4470    *
4471    * @return A list containing the enum numeric values on the wire for jobBenefits.
4472    */
4473   @java.lang.Override
getJobBenefitsValueList()4474   public java.util.List<java.lang.Integer> getJobBenefitsValueList() {
4475     return jobBenefits_;
4476   }
4477   /**
4478    *
4479    *
4480    * <pre>
4481    * The benefits included with the job.
4482    * </pre>
4483    *
4484    * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
4485    *
4486    * @param index The index of the value to return.
4487    * @return The enum numeric value on the wire of jobBenefits at the given index.
4488    */
4489   @java.lang.Override
getJobBenefitsValue(int index)4490   public int getJobBenefitsValue(int index) {
4491     return jobBenefits_.get(index);
4492   }
4493 
4494   private int jobBenefitsMemoizedSerializedSize;
4495 
4496   public static final int COMPENSATION_INFO_FIELD_NUMBER = 9;
4497   private com.google.cloud.talent.v4.CompensationInfo compensationInfo_;
4498   /**
4499    *
4500    *
4501    * <pre>
4502    * Job compensation information (a.k.a. "pay rate") i.e., the compensation
4503    * that will paid to the employee.
4504    * </pre>
4505    *
4506    * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
4507    *
4508    * @return Whether the compensationInfo field is set.
4509    */
4510   @java.lang.Override
hasCompensationInfo()4511   public boolean hasCompensationInfo() {
4512     return compensationInfo_ != null;
4513   }
4514   /**
4515    *
4516    *
4517    * <pre>
4518    * Job compensation information (a.k.a. "pay rate") i.e., the compensation
4519    * that will paid to the employee.
4520    * </pre>
4521    *
4522    * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
4523    *
4524    * @return The compensationInfo.
4525    */
4526   @java.lang.Override
getCompensationInfo()4527   public com.google.cloud.talent.v4.CompensationInfo getCompensationInfo() {
4528     return compensationInfo_ == null
4529         ? com.google.cloud.talent.v4.CompensationInfo.getDefaultInstance()
4530         : compensationInfo_;
4531   }
4532   /**
4533    *
4534    *
4535    * <pre>
4536    * Job compensation information (a.k.a. "pay rate") i.e., the compensation
4537    * that will paid to the employee.
4538    * </pre>
4539    *
4540    * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
4541    */
4542   @java.lang.Override
getCompensationInfoOrBuilder()4543   public com.google.cloud.talent.v4.CompensationInfoOrBuilder getCompensationInfoOrBuilder() {
4544     return compensationInfo_ == null
4545         ? com.google.cloud.talent.v4.CompensationInfo.getDefaultInstance()
4546         : compensationInfo_;
4547   }
4548 
4549   public static final int CUSTOM_ATTRIBUTES_FIELD_NUMBER = 10;
4550 
4551   private static final class CustomAttributesDefaultEntryHolder {
4552     static final com.google.protobuf.MapEntry<
4553             java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
4554         defaultEntry =
4555             com.google.protobuf.MapEntry
4556                 .<java.lang.String, com.google.cloud.talent.v4.CustomAttribute>newDefaultInstance(
4557                     com.google.cloud.talent.v4.JobProto
4558                         .internal_static_google_cloud_talent_v4_Job_CustomAttributesEntry_descriptor,
4559                     com.google.protobuf.WireFormat.FieldType.STRING,
4560                     "",
4561                     com.google.protobuf.WireFormat.FieldType.MESSAGE,
4562                     com.google.cloud.talent.v4.CustomAttribute.getDefaultInstance());
4563   }
4564 
4565   @SuppressWarnings("serial")
4566   private com.google.protobuf.MapField<java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
4567       customAttributes_;
4568 
4569   private com.google.protobuf.MapField<java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
internalGetCustomAttributes()4570       internalGetCustomAttributes() {
4571     if (customAttributes_ == null) {
4572       return com.google.protobuf.MapField.emptyMapField(
4573           CustomAttributesDefaultEntryHolder.defaultEntry);
4574     }
4575     return customAttributes_;
4576   }
4577 
getCustomAttributesCount()4578   public int getCustomAttributesCount() {
4579     return internalGetCustomAttributes().getMap().size();
4580   }
4581   /**
4582    *
4583    *
4584    * <pre>
4585    * A map of fields to hold both filterable and non-filterable custom job
4586    * attributes that are not covered by the provided structured fields.
4587    * The keys of the map are strings up to 64 bytes and must match the
4588    * pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, key0LikeThis or
4589    * KEY_1_LIKE_THIS.
4590    * At most 100 filterable and at most 100 unfilterable keys are supported.
4591    * For filterable `string_values`, across all keys at most 200 values are
4592    * allowed, with each string no more than 255 characters. For unfilterable
4593    * `string_values`, the maximum total size of `string_values` across all keys
4594    * is 50KB.
4595    * </pre>
4596    *
4597    * <code>map&lt;string, .google.cloud.talent.v4.CustomAttribute&gt; custom_attributes = 10;</code>
4598    */
4599   @java.lang.Override
containsCustomAttributes(java.lang.String key)4600   public boolean containsCustomAttributes(java.lang.String key) {
4601     if (key == null) {
4602       throw new NullPointerException("map key");
4603     }
4604     return internalGetCustomAttributes().getMap().containsKey(key);
4605   }
4606   /** Use {@link #getCustomAttributesMap()} instead. */
4607   @java.lang.Override
4608   @java.lang.Deprecated
4609   public java.util.Map<java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
getCustomAttributes()4610       getCustomAttributes() {
4611     return getCustomAttributesMap();
4612   }
4613   /**
4614    *
4615    *
4616    * <pre>
4617    * A map of fields to hold both filterable and non-filterable custom job
4618    * attributes that are not covered by the provided structured fields.
4619    * The keys of the map are strings up to 64 bytes and must match the
4620    * pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, key0LikeThis or
4621    * KEY_1_LIKE_THIS.
4622    * At most 100 filterable and at most 100 unfilterable keys are supported.
4623    * For filterable `string_values`, across all keys at most 200 values are
4624    * allowed, with each string no more than 255 characters. For unfilterable
4625    * `string_values`, the maximum total size of `string_values` across all keys
4626    * is 50KB.
4627    * </pre>
4628    *
4629    * <code>map&lt;string, .google.cloud.talent.v4.CustomAttribute&gt; custom_attributes = 10;</code>
4630    */
4631   @java.lang.Override
4632   public java.util.Map<java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
getCustomAttributesMap()4633       getCustomAttributesMap() {
4634     return internalGetCustomAttributes().getMap();
4635   }
4636   /**
4637    *
4638    *
4639    * <pre>
4640    * A map of fields to hold both filterable and non-filterable custom job
4641    * attributes that are not covered by the provided structured fields.
4642    * The keys of the map are strings up to 64 bytes and must match the
4643    * pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, key0LikeThis or
4644    * KEY_1_LIKE_THIS.
4645    * At most 100 filterable and at most 100 unfilterable keys are supported.
4646    * For filterable `string_values`, across all keys at most 200 values are
4647    * allowed, with each string no more than 255 characters. For unfilterable
4648    * `string_values`, the maximum total size of `string_values` across all keys
4649    * is 50KB.
4650    * </pre>
4651    *
4652    * <code>map&lt;string, .google.cloud.talent.v4.CustomAttribute&gt; custom_attributes = 10;</code>
4653    */
4654   @java.lang.Override
getCustomAttributesOrDefault( java.lang.String key, com.google.cloud.talent.v4.CustomAttribute defaultValue)4655   public /* nullable */ com.google.cloud.talent.v4.CustomAttribute getCustomAttributesOrDefault(
4656       java.lang.String key,
4657       /* nullable */
4658       com.google.cloud.talent.v4.CustomAttribute defaultValue) {
4659     if (key == null) {
4660       throw new NullPointerException("map key");
4661     }
4662     java.util.Map<java.lang.String, com.google.cloud.talent.v4.CustomAttribute> map =
4663         internalGetCustomAttributes().getMap();
4664     return map.containsKey(key) ? map.get(key) : defaultValue;
4665   }
4666   /**
4667    *
4668    *
4669    * <pre>
4670    * A map of fields to hold both filterable and non-filterable custom job
4671    * attributes that are not covered by the provided structured fields.
4672    * The keys of the map are strings up to 64 bytes and must match the
4673    * pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, key0LikeThis or
4674    * KEY_1_LIKE_THIS.
4675    * At most 100 filterable and at most 100 unfilterable keys are supported.
4676    * For filterable `string_values`, across all keys at most 200 values are
4677    * allowed, with each string no more than 255 characters. For unfilterable
4678    * `string_values`, the maximum total size of `string_values` across all keys
4679    * is 50KB.
4680    * </pre>
4681    *
4682    * <code>map&lt;string, .google.cloud.talent.v4.CustomAttribute&gt; custom_attributes = 10;</code>
4683    */
4684   @java.lang.Override
getCustomAttributesOrThrow( java.lang.String key)4685   public com.google.cloud.talent.v4.CustomAttribute getCustomAttributesOrThrow(
4686       java.lang.String key) {
4687     if (key == null) {
4688       throw new NullPointerException("map key");
4689     }
4690     java.util.Map<java.lang.String, com.google.cloud.talent.v4.CustomAttribute> map =
4691         internalGetCustomAttributes().getMap();
4692     if (!map.containsKey(key)) {
4693       throw new java.lang.IllegalArgumentException();
4694     }
4695     return map.get(key);
4696   }
4697 
4698   public static final int DEGREE_TYPES_FIELD_NUMBER = 11;
4699 
4700   @SuppressWarnings("serial")
4701   private java.util.List<java.lang.Integer> degreeTypes_;
4702 
4703   private static final com.google.protobuf.Internal.ListAdapter.Converter<
4704           java.lang.Integer, com.google.cloud.talent.v4.DegreeType>
4705       degreeTypes_converter_ =
4706           new com.google.protobuf.Internal.ListAdapter.Converter<
4707               java.lang.Integer, com.google.cloud.talent.v4.DegreeType>() {
4708             public com.google.cloud.talent.v4.DegreeType convert(java.lang.Integer from) {
4709               com.google.cloud.talent.v4.DegreeType result =
4710                   com.google.cloud.talent.v4.DegreeType.forNumber(from);
4711               return result == null ? com.google.cloud.talent.v4.DegreeType.UNRECOGNIZED : result;
4712             }
4713           };
4714   /**
4715    *
4716    *
4717    * <pre>
4718    * The desired education degrees for the job, such as Bachelors, Masters.
4719    * </pre>
4720    *
4721    * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
4722    *
4723    * @return A list containing the degreeTypes.
4724    */
4725   @java.lang.Override
getDegreeTypesList()4726   public java.util.List<com.google.cloud.talent.v4.DegreeType> getDegreeTypesList() {
4727     return new com.google.protobuf.Internal.ListAdapter<
4728         java.lang.Integer, com.google.cloud.talent.v4.DegreeType>(
4729         degreeTypes_, degreeTypes_converter_);
4730   }
4731   /**
4732    *
4733    *
4734    * <pre>
4735    * The desired education degrees for the job, such as Bachelors, Masters.
4736    * </pre>
4737    *
4738    * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
4739    *
4740    * @return The count of degreeTypes.
4741    */
4742   @java.lang.Override
getDegreeTypesCount()4743   public int getDegreeTypesCount() {
4744     return degreeTypes_.size();
4745   }
4746   /**
4747    *
4748    *
4749    * <pre>
4750    * The desired education degrees for the job, such as Bachelors, Masters.
4751    * </pre>
4752    *
4753    * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
4754    *
4755    * @param index The index of the element to return.
4756    * @return The degreeTypes at the given index.
4757    */
4758   @java.lang.Override
getDegreeTypes(int index)4759   public com.google.cloud.talent.v4.DegreeType getDegreeTypes(int index) {
4760     return degreeTypes_converter_.convert(degreeTypes_.get(index));
4761   }
4762   /**
4763    *
4764    *
4765    * <pre>
4766    * The desired education degrees for the job, such as Bachelors, Masters.
4767    * </pre>
4768    *
4769    * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
4770    *
4771    * @return A list containing the enum numeric values on the wire for degreeTypes.
4772    */
4773   @java.lang.Override
getDegreeTypesValueList()4774   public java.util.List<java.lang.Integer> getDegreeTypesValueList() {
4775     return degreeTypes_;
4776   }
4777   /**
4778    *
4779    *
4780    * <pre>
4781    * The desired education degrees for the job, such as Bachelors, Masters.
4782    * </pre>
4783    *
4784    * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
4785    *
4786    * @param index The index of the value to return.
4787    * @return The enum numeric value on the wire of degreeTypes at the given index.
4788    */
4789   @java.lang.Override
getDegreeTypesValue(int index)4790   public int getDegreeTypesValue(int index) {
4791     return degreeTypes_.get(index);
4792   }
4793 
4794   private int degreeTypesMemoizedSerializedSize;
4795 
4796   public static final int DEPARTMENT_FIELD_NUMBER = 12;
4797 
4798   @SuppressWarnings("serial")
4799   private volatile java.lang.Object department_ = "";
4800   /**
4801    *
4802    *
4803    * <pre>
4804    * The department or functional area within the company with the open
4805    * position.
4806    * The maximum number of allowed characters is 255.
4807    * </pre>
4808    *
4809    * <code>string department = 12;</code>
4810    *
4811    * @return The department.
4812    */
4813   @java.lang.Override
getDepartment()4814   public java.lang.String getDepartment() {
4815     java.lang.Object ref = department_;
4816     if (ref instanceof java.lang.String) {
4817       return (java.lang.String) ref;
4818     } else {
4819       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4820       java.lang.String s = bs.toStringUtf8();
4821       department_ = s;
4822       return s;
4823     }
4824   }
4825   /**
4826    *
4827    *
4828    * <pre>
4829    * The department or functional area within the company with the open
4830    * position.
4831    * The maximum number of allowed characters is 255.
4832    * </pre>
4833    *
4834    * <code>string department = 12;</code>
4835    *
4836    * @return The bytes for department.
4837    */
4838   @java.lang.Override
getDepartmentBytes()4839   public com.google.protobuf.ByteString getDepartmentBytes() {
4840     java.lang.Object ref = department_;
4841     if (ref instanceof java.lang.String) {
4842       com.google.protobuf.ByteString b =
4843           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4844       department_ = b;
4845       return b;
4846     } else {
4847       return (com.google.protobuf.ByteString) ref;
4848     }
4849   }
4850 
4851   public static final int EMPLOYMENT_TYPES_FIELD_NUMBER = 13;
4852 
4853   @SuppressWarnings("serial")
4854   private java.util.List<java.lang.Integer> employmentTypes_;
4855 
4856   private static final com.google.protobuf.Internal.ListAdapter.Converter<
4857           java.lang.Integer, com.google.cloud.talent.v4.EmploymentType>
4858       employmentTypes_converter_ =
4859           new com.google.protobuf.Internal.ListAdapter.Converter<
4860               java.lang.Integer, com.google.cloud.talent.v4.EmploymentType>() {
4861             public com.google.cloud.talent.v4.EmploymentType convert(java.lang.Integer from) {
4862               com.google.cloud.talent.v4.EmploymentType result =
4863                   com.google.cloud.talent.v4.EmploymentType.forNumber(from);
4864               return result == null
4865                   ? com.google.cloud.talent.v4.EmploymentType.UNRECOGNIZED
4866                   : result;
4867             }
4868           };
4869   /**
4870    *
4871    *
4872    * <pre>
4873    * The employment type(s) of a job, for example,
4874    * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
4875    * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
4876    * </pre>
4877    *
4878    * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
4879    *
4880    * @return A list containing the employmentTypes.
4881    */
4882   @java.lang.Override
getEmploymentTypesList()4883   public java.util.List<com.google.cloud.talent.v4.EmploymentType> getEmploymentTypesList() {
4884     return new com.google.protobuf.Internal.ListAdapter<
4885         java.lang.Integer, com.google.cloud.talent.v4.EmploymentType>(
4886         employmentTypes_, employmentTypes_converter_);
4887   }
4888   /**
4889    *
4890    *
4891    * <pre>
4892    * The employment type(s) of a job, for example,
4893    * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
4894    * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
4895    * </pre>
4896    *
4897    * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
4898    *
4899    * @return The count of employmentTypes.
4900    */
4901   @java.lang.Override
getEmploymentTypesCount()4902   public int getEmploymentTypesCount() {
4903     return employmentTypes_.size();
4904   }
4905   /**
4906    *
4907    *
4908    * <pre>
4909    * The employment type(s) of a job, for example,
4910    * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
4911    * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
4912    * </pre>
4913    *
4914    * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
4915    *
4916    * @param index The index of the element to return.
4917    * @return The employmentTypes at the given index.
4918    */
4919   @java.lang.Override
getEmploymentTypes(int index)4920   public com.google.cloud.talent.v4.EmploymentType getEmploymentTypes(int index) {
4921     return employmentTypes_converter_.convert(employmentTypes_.get(index));
4922   }
4923   /**
4924    *
4925    *
4926    * <pre>
4927    * The employment type(s) of a job, for example,
4928    * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
4929    * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
4930    * </pre>
4931    *
4932    * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
4933    *
4934    * @return A list containing the enum numeric values on the wire for employmentTypes.
4935    */
4936   @java.lang.Override
getEmploymentTypesValueList()4937   public java.util.List<java.lang.Integer> getEmploymentTypesValueList() {
4938     return employmentTypes_;
4939   }
4940   /**
4941    *
4942    *
4943    * <pre>
4944    * The employment type(s) of a job, for example,
4945    * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
4946    * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
4947    * </pre>
4948    *
4949    * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
4950    *
4951    * @param index The index of the value to return.
4952    * @return The enum numeric value on the wire of employmentTypes at the given index.
4953    */
4954   @java.lang.Override
getEmploymentTypesValue(int index)4955   public int getEmploymentTypesValue(int index) {
4956     return employmentTypes_.get(index);
4957   }
4958 
4959   private int employmentTypesMemoizedSerializedSize;
4960 
4961   public static final int INCENTIVES_FIELD_NUMBER = 14;
4962 
4963   @SuppressWarnings("serial")
4964   private volatile java.lang.Object incentives_ = "";
4965   /**
4966    *
4967    *
4968    * <pre>
4969    * A description of bonus, commission, and other compensation
4970    * incentives associated with the job not including salary or pay.
4971    * The maximum number of allowed characters is 10,000.
4972    * </pre>
4973    *
4974    * <code>string incentives = 14;</code>
4975    *
4976    * @return The incentives.
4977    */
4978   @java.lang.Override
getIncentives()4979   public java.lang.String getIncentives() {
4980     java.lang.Object ref = incentives_;
4981     if (ref instanceof java.lang.String) {
4982       return (java.lang.String) ref;
4983     } else {
4984       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4985       java.lang.String s = bs.toStringUtf8();
4986       incentives_ = s;
4987       return s;
4988     }
4989   }
4990   /**
4991    *
4992    *
4993    * <pre>
4994    * A description of bonus, commission, and other compensation
4995    * incentives associated with the job not including salary or pay.
4996    * The maximum number of allowed characters is 10,000.
4997    * </pre>
4998    *
4999    * <code>string incentives = 14;</code>
5000    *
5001    * @return The bytes for incentives.
5002    */
5003   @java.lang.Override
getIncentivesBytes()5004   public com.google.protobuf.ByteString getIncentivesBytes() {
5005     java.lang.Object ref = incentives_;
5006     if (ref instanceof java.lang.String) {
5007       com.google.protobuf.ByteString b =
5008           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5009       incentives_ = b;
5010       return b;
5011     } else {
5012       return (com.google.protobuf.ByteString) ref;
5013     }
5014   }
5015 
5016   public static final int LANGUAGE_CODE_FIELD_NUMBER = 15;
5017 
5018   @SuppressWarnings("serial")
5019   private volatile java.lang.Object languageCode_ = "";
5020   /**
5021    *
5022    *
5023    * <pre>
5024    * The language of the posting. This field is distinct from
5025    * any requirements for fluency that are associated with the job.
5026    * Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
5027    * For more information, see
5028    * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
5029    * class="external" target="_blank" }.
5030    * If this field is unspecified and
5031    * [Job.description][google.cloud.talent.v4.Job.description] is present,
5032    * detected language code based on
5033    * [Job.description][google.cloud.talent.v4.Job.description] is assigned,
5034    * otherwise defaults to 'en_US'.
5035    * </pre>
5036    *
5037    * <code>string language_code = 15;</code>
5038    *
5039    * @return The languageCode.
5040    */
5041   @java.lang.Override
getLanguageCode()5042   public java.lang.String getLanguageCode() {
5043     java.lang.Object ref = languageCode_;
5044     if (ref instanceof java.lang.String) {
5045       return (java.lang.String) ref;
5046     } else {
5047       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
5048       java.lang.String s = bs.toStringUtf8();
5049       languageCode_ = s;
5050       return s;
5051     }
5052   }
5053   /**
5054    *
5055    *
5056    * <pre>
5057    * The language of the posting. This field is distinct from
5058    * any requirements for fluency that are associated with the job.
5059    * Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
5060    * For more information, see
5061    * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
5062    * class="external" target="_blank" }.
5063    * If this field is unspecified and
5064    * [Job.description][google.cloud.talent.v4.Job.description] is present,
5065    * detected language code based on
5066    * [Job.description][google.cloud.talent.v4.Job.description] is assigned,
5067    * otherwise defaults to 'en_US'.
5068    * </pre>
5069    *
5070    * <code>string language_code = 15;</code>
5071    *
5072    * @return The bytes for languageCode.
5073    */
5074   @java.lang.Override
getLanguageCodeBytes()5075   public com.google.protobuf.ByteString getLanguageCodeBytes() {
5076     java.lang.Object ref = languageCode_;
5077     if (ref instanceof java.lang.String) {
5078       com.google.protobuf.ByteString b =
5079           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5080       languageCode_ = b;
5081       return b;
5082     } else {
5083       return (com.google.protobuf.ByteString) ref;
5084     }
5085   }
5086 
5087   public static final int JOB_LEVEL_FIELD_NUMBER = 16;
5088   private int jobLevel_ = 0;
5089   /**
5090    *
5091    *
5092    * <pre>
5093    * The experience level associated with the job, such as "Entry Level".
5094    * </pre>
5095    *
5096    * <code>.google.cloud.talent.v4.JobLevel job_level = 16;</code>
5097    *
5098    * @return The enum numeric value on the wire for jobLevel.
5099    */
5100   @java.lang.Override
getJobLevelValue()5101   public int getJobLevelValue() {
5102     return jobLevel_;
5103   }
5104   /**
5105    *
5106    *
5107    * <pre>
5108    * The experience level associated with the job, such as "Entry Level".
5109    * </pre>
5110    *
5111    * <code>.google.cloud.talent.v4.JobLevel job_level = 16;</code>
5112    *
5113    * @return The jobLevel.
5114    */
5115   @java.lang.Override
getJobLevel()5116   public com.google.cloud.talent.v4.JobLevel getJobLevel() {
5117     com.google.cloud.talent.v4.JobLevel result =
5118         com.google.cloud.talent.v4.JobLevel.forNumber(jobLevel_);
5119     return result == null ? com.google.cloud.talent.v4.JobLevel.UNRECOGNIZED : result;
5120   }
5121 
5122   public static final int PROMOTION_VALUE_FIELD_NUMBER = 17;
5123   private int promotionValue_ = 0;
5124   /**
5125    *
5126    *
5127    * <pre>
5128    * A promotion value of the job, as determined by the client.
5129    * The value determines the sort order of the jobs returned when searching for
5130    * jobs using the featured jobs search call, with higher promotional values
5131    * being returned first and ties being resolved by relevance sort. Only the
5132    * jobs with a promotionValue &gt;0 are returned in a FEATURED_JOB_SEARCH.
5133    * Default value is 0, and negative values are treated as 0.
5134    * </pre>
5135    *
5136    * <code>int32 promotion_value = 17;</code>
5137    *
5138    * @return The promotionValue.
5139    */
5140   @java.lang.Override
getPromotionValue()5141   public int getPromotionValue() {
5142     return promotionValue_;
5143   }
5144 
5145   public static final int QUALIFICATIONS_FIELD_NUMBER = 18;
5146 
5147   @SuppressWarnings("serial")
5148   private volatile java.lang.Object qualifications_ = "";
5149   /**
5150    *
5151    *
5152    * <pre>
5153    * A description of the qualifications required to perform the
5154    * job. The use of this field is recommended
5155    * as an alternative to using the more general
5156    * [description][google.cloud.talent.v4.Job.description] field.
5157    * This field accepts and sanitizes HTML input, and also accepts
5158    * bold, italic, ordered list, and unordered list markup tags.
5159    * The maximum number of allowed characters is 10,000.
5160    * </pre>
5161    *
5162    * <code>string qualifications = 18;</code>
5163    *
5164    * @return The qualifications.
5165    */
5166   @java.lang.Override
getQualifications()5167   public java.lang.String getQualifications() {
5168     java.lang.Object ref = qualifications_;
5169     if (ref instanceof java.lang.String) {
5170       return (java.lang.String) ref;
5171     } else {
5172       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
5173       java.lang.String s = bs.toStringUtf8();
5174       qualifications_ = s;
5175       return s;
5176     }
5177   }
5178   /**
5179    *
5180    *
5181    * <pre>
5182    * A description of the qualifications required to perform the
5183    * job. The use of this field is recommended
5184    * as an alternative to using the more general
5185    * [description][google.cloud.talent.v4.Job.description] field.
5186    * This field accepts and sanitizes HTML input, and also accepts
5187    * bold, italic, ordered list, and unordered list markup tags.
5188    * The maximum number of allowed characters is 10,000.
5189    * </pre>
5190    *
5191    * <code>string qualifications = 18;</code>
5192    *
5193    * @return The bytes for qualifications.
5194    */
5195   @java.lang.Override
getQualificationsBytes()5196   public com.google.protobuf.ByteString getQualificationsBytes() {
5197     java.lang.Object ref = qualifications_;
5198     if (ref instanceof java.lang.String) {
5199       com.google.protobuf.ByteString b =
5200           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5201       qualifications_ = b;
5202       return b;
5203     } else {
5204       return (com.google.protobuf.ByteString) ref;
5205     }
5206   }
5207 
5208   public static final int RESPONSIBILITIES_FIELD_NUMBER = 19;
5209 
5210   @SuppressWarnings("serial")
5211   private volatile java.lang.Object responsibilities_ = "";
5212   /**
5213    *
5214    *
5215    * <pre>
5216    * A description of job responsibilities. The use of this field is
5217    * recommended as an alternative to using the more general
5218    * [description][google.cloud.talent.v4.Job.description] field.
5219    * This field accepts and sanitizes HTML input, and also accepts
5220    * bold, italic, ordered list, and unordered list markup tags.
5221    * The maximum number of allowed characters is 10,000.
5222    * </pre>
5223    *
5224    * <code>string responsibilities = 19;</code>
5225    *
5226    * @return The responsibilities.
5227    */
5228   @java.lang.Override
getResponsibilities()5229   public java.lang.String getResponsibilities() {
5230     java.lang.Object ref = responsibilities_;
5231     if (ref instanceof java.lang.String) {
5232       return (java.lang.String) ref;
5233     } else {
5234       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
5235       java.lang.String s = bs.toStringUtf8();
5236       responsibilities_ = s;
5237       return s;
5238     }
5239   }
5240   /**
5241    *
5242    *
5243    * <pre>
5244    * A description of job responsibilities. The use of this field is
5245    * recommended as an alternative to using the more general
5246    * [description][google.cloud.talent.v4.Job.description] field.
5247    * This field accepts and sanitizes HTML input, and also accepts
5248    * bold, italic, ordered list, and unordered list markup tags.
5249    * The maximum number of allowed characters is 10,000.
5250    * </pre>
5251    *
5252    * <code>string responsibilities = 19;</code>
5253    *
5254    * @return The bytes for responsibilities.
5255    */
5256   @java.lang.Override
getResponsibilitiesBytes()5257   public com.google.protobuf.ByteString getResponsibilitiesBytes() {
5258     java.lang.Object ref = responsibilities_;
5259     if (ref instanceof java.lang.String) {
5260       com.google.protobuf.ByteString b =
5261           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5262       responsibilities_ = b;
5263       return b;
5264     } else {
5265       return (com.google.protobuf.ByteString) ref;
5266     }
5267   }
5268 
5269   public static final int POSTING_REGION_FIELD_NUMBER = 20;
5270   private int postingRegion_ = 0;
5271   /**
5272    *
5273    *
5274    * <pre>
5275    * The job [PostingRegion][google.cloud.talent.v4.PostingRegion] (for example,
5276    * state, country) throughout which the job is available. If this field is
5277    * set, a [LocationFilter][google.cloud.talent.v4.LocationFilter] in a search
5278    * query within the job region finds this job posting if an exact location
5279    * match isn't specified. If this field is set to
5280    * [PostingRegion.NATION][google.cloud.talent.v4.PostingRegion.NATION] or
5281    * [PostingRegion.ADMINISTRATIVE_AREA][google.cloud.talent.v4.PostingRegion.ADMINISTRATIVE_AREA],
5282    * setting job [Job.addresses][google.cloud.talent.v4.Job.addresses] to the
5283    * same location level as this field is strongly recommended.
5284    * </pre>
5285    *
5286    * <code>.google.cloud.talent.v4.PostingRegion posting_region = 20;</code>
5287    *
5288    * @return The enum numeric value on the wire for postingRegion.
5289    */
5290   @java.lang.Override
getPostingRegionValue()5291   public int getPostingRegionValue() {
5292     return postingRegion_;
5293   }
5294   /**
5295    *
5296    *
5297    * <pre>
5298    * The job [PostingRegion][google.cloud.talent.v4.PostingRegion] (for example,
5299    * state, country) throughout which the job is available. If this field is
5300    * set, a [LocationFilter][google.cloud.talent.v4.LocationFilter] in a search
5301    * query within the job region finds this job posting if an exact location
5302    * match isn't specified. If this field is set to
5303    * [PostingRegion.NATION][google.cloud.talent.v4.PostingRegion.NATION] or
5304    * [PostingRegion.ADMINISTRATIVE_AREA][google.cloud.talent.v4.PostingRegion.ADMINISTRATIVE_AREA],
5305    * setting job [Job.addresses][google.cloud.talent.v4.Job.addresses] to the
5306    * same location level as this field is strongly recommended.
5307    * </pre>
5308    *
5309    * <code>.google.cloud.talent.v4.PostingRegion posting_region = 20;</code>
5310    *
5311    * @return The postingRegion.
5312    */
5313   @java.lang.Override
getPostingRegion()5314   public com.google.cloud.talent.v4.PostingRegion getPostingRegion() {
5315     com.google.cloud.talent.v4.PostingRegion result =
5316         com.google.cloud.talent.v4.PostingRegion.forNumber(postingRegion_);
5317     return result == null ? com.google.cloud.talent.v4.PostingRegion.UNRECOGNIZED : result;
5318   }
5319 
5320   public static final int VISIBILITY_FIELD_NUMBER = 21;
5321   private int visibility_ = 0;
5322   /**
5323    *
5324    *
5325    * <pre>
5326    * Deprecated. The job is only visible to the owner.
5327    * The visibility of the job.
5328    * Defaults to
5329    * [Visibility.ACCOUNT_ONLY][google.cloud.talent.v4.Visibility.ACCOUNT_ONLY]
5330    * if not specified.
5331    * </pre>
5332    *
5333    * <code>.google.cloud.talent.v4.Visibility visibility = 21 [deprecated = true];</code>
5334    *
5335    * @deprecated google.cloud.talent.v4.Job.visibility is deprecated. See
5336    *     google/cloud/talent/v4/job.proto;l=295
5337    * @return The enum numeric value on the wire for visibility.
5338    */
5339   @java.lang.Override
5340   @java.lang.Deprecated
getVisibilityValue()5341   public int getVisibilityValue() {
5342     return visibility_;
5343   }
5344   /**
5345    *
5346    *
5347    * <pre>
5348    * Deprecated. The job is only visible to the owner.
5349    * The visibility of the job.
5350    * Defaults to
5351    * [Visibility.ACCOUNT_ONLY][google.cloud.talent.v4.Visibility.ACCOUNT_ONLY]
5352    * if not specified.
5353    * </pre>
5354    *
5355    * <code>.google.cloud.talent.v4.Visibility visibility = 21 [deprecated = true];</code>
5356    *
5357    * @deprecated google.cloud.talent.v4.Job.visibility is deprecated. See
5358    *     google/cloud/talent/v4/job.proto;l=295
5359    * @return The visibility.
5360    */
5361   @java.lang.Override
5362   @java.lang.Deprecated
getVisibility()5363   public com.google.cloud.talent.v4.Visibility getVisibility() {
5364     com.google.cloud.talent.v4.Visibility result =
5365         com.google.cloud.talent.v4.Visibility.forNumber(visibility_);
5366     return result == null ? com.google.cloud.talent.v4.Visibility.UNRECOGNIZED : result;
5367   }
5368 
5369   public static final int JOB_START_TIME_FIELD_NUMBER = 22;
5370   private com.google.protobuf.Timestamp jobStartTime_;
5371   /**
5372    *
5373    *
5374    * <pre>
5375    * The start timestamp of the job in UTC time zone. Typically this field
5376    * is used for contracting engagements. Invalid timestamps are ignored.
5377    * </pre>
5378    *
5379    * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
5380    *
5381    * @return Whether the jobStartTime field is set.
5382    */
5383   @java.lang.Override
hasJobStartTime()5384   public boolean hasJobStartTime() {
5385     return jobStartTime_ != null;
5386   }
5387   /**
5388    *
5389    *
5390    * <pre>
5391    * The start timestamp of the job in UTC time zone. Typically this field
5392    * is used for contracting engagements. Invalid timestamps are ignored.
5393    * </pre>
5394    *
5395    * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
5396    *
5397    * @return The jobStartTime.
5398    */
5399   @java.lang.Override
getJobStartTime()5400   public com.google.protobuf.Timestamp getJobStartTime() {
5401     return jobStartTime_ == null
5402         ? com.google.protobuf.Timestamp.getDefaultInstance()
5403         : jobStartTime_;
5404   }
5405   /**
5406    *
5407    *
5408    * <pre>
5409    * The start timestamp of the job in UTC time zone. Typically this field
5410    * is used for contracting engagements. Invalid timestamps are ignored.
5411    * </pre>
5412    *
5413    * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
5414    */
5415   @java.lang.Override
getJobStartTimeOrBuilder()5416   public com.google.protobuf.TimestampOrBuilder getJobStartTimeOrBuilder() {
5417     return jobStartTime_ == null
5418         ? com.google.protobuf.Timestamp.getDefaultInstance()
5419         : jobStartTime_;
5420   }
5421 
5422   public static final int JOB_END_TIME_FIELD_NUMBER = 23;
5423   private com.google.protobuf.Timestamp jobEndTime_;
5424   /**
5425    *
5426    *
5427    * <pre>
5428    * The end timestamp of the job. Typically this field is used for contracting
5429    * engagements. Invalid timestamps are ignored.
5430    * </pre>
5431    *
5432    * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
5433    *
5434    * @return Whether the jobEndTime field is set.
5435    */
5436   @java.lang.Override
hasJobEndTime()5437   public boolean hasJobEndTime() {
5438     return jobEndTime_ != null;
5439   }
5440   /**
5441    *
5442    *
5443    * <pre>
5444    * The end timestamp of the job. Typically this field is used for contracting
5445    * engagements. Invalid timestamps are ignored.
5446    * </pre>
5447    *
5448    * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
5449    *
5450    * @return The jobEndTime.
5451    */
5452   @java.lang.Override
getJobEndTime()5453   public com.google.protobuf.Timestamp getJobEndTime() {
5454     return jobEndTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : jobEndTime_;
5455   }
5456   /**
5457    *
5458    *
5459    * <pre>
5460    * The end timestamp of the job. Typically this field is used for contracting
5461    * engagements. Invalid timestamps are ignored.
5462    * </pre>
5463    *
5464    * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
5465    */
5466   @java.lang.Override
getJobEndTimeOrBuilder()5467   public com.google.protobuf.TimestampOrBuilder getJobEndTimeOrBuilder() {
5468     return jobEndTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : jobEndTime_;
5469   }
5470 
5471   public static final int POSTING_PUBLISH_TIME_FIELD_NUMBER = 24;
5472   private com.google.protobuf.Timestamp postingPublishTime_;
5473   /**
5474    *
5475    *
5476    * <pre>
5477    * The timestamp this job posting was most recently published. The default
5478    * value is the time the request arrives at the server. Invalid timestamps are
5479    * ignored.
5480    * </pre>
5481    *
5482    * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
5483    *
5484    * @return Whether the postingPublishTime field is set.
5485    */
5486   @java.lang.Override
hasPostingPublishTime()5487   public boolean hasPostingPublishTime() {
5488     return postingPublishTime_ != null;
5489   }
5490   /**
5491    *
5492    *
5493    * <pre>
5494    * The timestamp this job posting was most recently published. The default
5495    * value is the time the request arrives at the server. Invalid timestamps are
5496    * ignored.
5497    * </pre>
5498    *
5499    * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
5500    *
5501    * @return The postingPublishTime.
5502    */
5503   @java.lang.Override
getPostingPublishTime()5504   public com.google.protobuf.Timestamp getPostingPublishTime() {
5505     return postingPublishTime_ == null
5506         ? com.google.protobuf.Timestamp.getDefaultInstance()
5507         : postingPublishTime_;
5508   }
5509   /**
5510    *
5511    *
5512    * <pre>
5513    * The timestamp this job posting was most recently published. The default
5514    * value is the time the request arrives at the server. Invalid timestamps are
5515    * ignored.
5516    * </pre>
5517    *
5518    * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
5519    */
5520   @java.lang.Override
getPostingPublishTimeOrBuilder()5521   public com.google.protobuf.TimestampOrBuilder getPostingPublishTimeOrBuilder() {
5522     return postingPublishTime_ == null
5523         ? com.google.protobuf.Timestamp.getDefaultInstance()
5524         : postingPublishTime_;
5525   }
5526 
5527   public static final int POSTING_EXPIRE_TIME_FIELD_NUMBER = 25;
5528   private com.google.protobuf.Timestamp postingExpireTime_;
5529   /**
5530    *
5531    *
5532    * <pre>
5533    * Strongly recommended for the best service experience.
5534    * The expiration timestamp of the job. After this timestamp, the
5535    * job is marked as expired, and it no longer appears in search results. The
5536    * expired job can't be listed by the
5537    * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
5538    * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
5539    * or updated with the
5540    * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
5541    * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
5542    * expired job can be updated and opened again by using a future expiration
5543    * timestamp. Updating an expired job fails if there is another existing open
5544    * job with same [company][google.cloud.talent.v4.Job.company],
5545    * [language_code][google.cloud.talent.v4.Job.language_code] and
5546    * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
5547    * The expired jobs are retained in our system for 90 days. However, the
5548    * overall expired job count cannot exceed 3 times the maximum number of
5549    * open jobs over previous 7 days. If this threshold is exceeded,
5550    * expired jobs are cleaned out in order of earliest expire time.
5551    * Expired jobs are no longer accessible after they are cleaned
5552    * out.
5553    * Invalid timestamps are ignored, and treated as expire time not provided.
5554    * If the timestamp is before the instant request is made, the job
5555    * is treated as expired immediately on creation. This kind of job can
5556    * not be updated. And when creating a job with past timestamp, the
5557    * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
5558    * must be set before
5559    * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
5560    * purpose of this feature is to allow other objects, such as [Application][],
5561    * to refer a job that didn't exist in the system prior to becoming expired.
5562    * If you want to modify a job that was expired on creation, delete it and
5563    * create a new one.
5564    * If this value isn't provided at the time of job creation or is invalid,
5565    * the job posting expires after 30 days from the job's creation time. For
5566    * example, if the job was created on 2017/01/01 13:00AM UTC with an
5567    * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
5568    * If this value isn't provided on job update, it depends on the field masks
5569    * set by
5570    * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
5571    * If the field masks include
5572    * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
5573    * empty meaning that every field is updated, the job posting expires after 30
5574    * days from the job's last update time. Otherwise the expiration date isn't
5575    * updated.
5576    * </pre>
5577    *
5578    * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
5579    *
5580    * @return Whether the postingExpireTime field is set.
5581    */
5582   @java.lang.Override
hasPostingExpireTime()5583   public boolean hasPostingExpireTime() {
5584     return postingExpireTime_ != null;
5585   }
5586   /**
5587    *
5588    *
5589    * <pre>
5590    * Strongly recommended for the best service experience.
5591    * The expiration timestamp of the job. After this timestamp, the
5592    * job is marked as expired, and it no longer appears in search results. The
5593    * expired job can't be listed by the
5594    * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
5595    * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
5596    * or updated with the
5597    * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
5598    * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
5599    * expired job can be updated and opened again by using a future expiration
5600    * timestamp. Updating an expired job fails if there is another existing open
5601    * job with same [company][google.cloud.talent.v4.Job.company],
5602    * [language_code][google.cloud.talent.v4.Job.language_code] and
5603    * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
5604    * The expired jobs are retained in our system for 90 days. However, the
5605    * overall expired job count cannot exceed 3 times the maximum number of
5606    * open jobs over previous 7 days. If this threshold is exceeded,
5607    * expired jobs are cleaned out in order of earliest expire time.
5608    * Expired jobs are no longer accessible after they are cleaned
5609    * out.
5610    * Invalid timestamps are ignored, and treated as expire time not provided.
5611    * If the timestamp is before the instant request is made, the job
5612    * is treated as expired immediately on creation. This kind of job can
5613    * not be updated. And when creating a job with past timestamp, the
5614    * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
5615    * must be set before
5616    * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
5617    * purpose of this feature is to allow other objects, such as [Application][],
5618    * to refer a job that didn't exist in the system prior to becoming expired.
5619    * If you want to modify a job that was expired on creation, delete it and
5620    * create a new one.
5621    * If this value isn't provided at the time of job creation or is invalid,
5622    * the job posting expires after 30 days from the job's creation time. For
5623    * example, if the job was created on 2017/01/01 13:00AM UTC with an
5624    * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
5625    * If this value isn't provided on job update, it depends on the field masks
5626    * set by
5627    * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
5628    * If the field masks include
5629    * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
5630    * empty meaning that every field is updated, the job posting expires after 30
5631    * days from the job's last update time. Otherwise the expiration date isn't
5632    * updated.
5633    * </pre>
5634    *
5635    * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
5636    *
5637    * @return The postingExpireTime.
5638    */
5639   @java.lang.Override
getPostingExpireTime()5640   public com.google.protobuf.Timestamp getPostingExpireTime() {
5641     return postingExpireTime_ == null
5642         ? com.google.protobuf.Timestamp.getDefaultInstance()
5643         : postingExpireTime_;
5644   }
5645   /**
5646    *
5647    *
5648    * <pre>
5649    * Strongly recommended for the best service experience.
5650    * The expiration timestamp of the job. After this timestamp, the
5651    * job is marked as expired, and it no longer appears in search results. The
5652    * expired job can't be listed by the
5653    * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
5654    * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
5655    * or updated with the
5656    * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
5657    * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
5658    * expired job can be updated and opened again by using a future expiration
5659    * timestamp. Updating an expired job fails if there is another existing open
5660    * job with same [company][google.cloud.talent.v4.Job.company],
5661    * [language_code][google.cloud.talent.v4.Job.language_code] and
5662    * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
5663    * The expired jobs are retained in our system for 90 days. However, the
5664    * overall expired job count cannot exceed 3 times the maximum number of
5665    * open jobs over previous 7 days. If this threshold is exceeded,
5666    * expired jobs are cleaned out in order of earliest expire time.
5667    * Expired jobs are no longer accessible after they are cleaned
5668    * out.
5669    * Invalid timestamps are ignored, and treated as expire time not provided.
5670    * If the timestamp is before the instant request is made, the job
5671    * is treated as expired immediately on creation. This kind of job can
5672    * not be updated. And when creating a job with past timestamp, the
5673    * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
5674    * must be set before
5675    * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
5676    * purpose of this feature is to allow other objects, such as [Application][],
5677    * to refer a job that didn't exist in the system prior to becoming expired.
5678    * If you want to modify a job that was expired on creation, delete it and
5679    * create a new one.
5680    * If this value isn't provided at the time of job creation or is invalid,
5681    * the job posting expires after 30 days from the job's creation time. For
5682    * example, if the job was created on 2017/01/01 13:00AM UTC with an
5683    * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
5684    * If this value isn't provided on job update, it depends on the field masks
5685    * set by
5686    * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
5687    * If the field masks include
5688    * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
5689    * empty meaning that every field is updated, the job posting expires after 30
5690    * days from the job's last update time. Otherwise the expiration date isn't
5691    * updated.
5692    * </pre>
5693    *
5694    * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
5695    */
5696   @java.lang.Override
getPostingExpireTimeOrBuilder()5697   public com.google.protobuf.TimestampOrBuilder getPostingExpireTimeOrBuilder() {
5698     return postingExpireTime_ == null
5699         ? com.google.protobuf.Timestamp.getDefaultInstance()
5700         : postingExpireTime_;
5701   }
5702 
5703   public static final int POSTING_CREATE_TIME_FIELD_NUMBER = 26;
5704   private com.google.protobuf.Timestamp postingCreateTime_;
5705   /**
5706    *
5707    *
5708    * <pre>
5709    * Output only. The timestamp when this job posting was created.
5710    * </pre>
5711    *
5712    * <code>
5713    * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
5714    * </code>
5715    *
5716    * @return Whether the postingCreateTime field is set.
5717    */
5718   @java.lang.Override
hasPostingCreateTime()5719   public boolean hasPostingCreateTime() {
5720     return postingCreateTime_ != null;
5721   }
5722   /**
5723    *
5724    *
5725    * <pre>
5726    * Output only. The timestamp when this job posting was created.
5727    * </pre>
5728    *
5729    * <code>
5730    * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
5731    * </code>
5732    *
5733    * @return The postingCreateTime.
5734    */
5735   @java.lang.Override
getPostingCreateTime()5736   public com.google.protobuf.Timestamp getPostingCreateTime() {
5737     return postingCreateTime_ == null
5738         ? com.google.protobuf.Timestamp.getDefaultInstance()
5739         : postingCreateTime_;
5740   }
5741   /**
5742    *
5743    *
5744    * <pre>
5745    * Output only. The timestamp when this job posting was created.
5746    * </pre>
5747    *
5748    * <code>
5749    * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
5750    * </code>
5751    */
5752   @java.lang.Override
getPostingCreateTimeOrBuilder()5753   public com.google.protobuf.TimestampOrBuilder getPostingCreateTimeOrBuilder() {
5754     return postingCreateTime_ == null
5755         ? com.google.protobuf.Timestamp.getDefaultInstance()
5756         : postingCreateTime_;
5757   }
5758 
5759   public static final int POSTING_UPDATE_TIME_FIELD_NUMBER = 27;
5760   private com.google.protobuf.Timestamp postingUpdateTime_;
5761   /**
5762    *
5763    *
5764    * <pre>
5765    * Output only. The timestamp when this job posting was last updated.
5766    * </pre>
5767    *
5768    * <code>
5769    * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
5770    * </code>
5771    *
5772    * @return Whether the postingUpdateTime field is set.
5773    */
5774   @java.lang.Override
hasPostingUpdateTime()5775   public boolean hasPostingUpdateTime() {
5776     return postingUpdateTime_ != null;
5777   }
5778   /**
5779    *
5780    *
5781    * <pre>
5782    * Output only. The timestamp when this job posting was last updated.
5783    * </pre>
5784    *
5785    * <code>
5786    * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
5787    * </code>
5788    *
5789    * @return The postingUpdateTime.
5790    */
5791   @java.lang.Override
getPostingUpdateTime()5792   public com.google.protobuf.Timestamp getPostingUpdateTime() {
5793     return postingUpdateTime_ == null
5794         ? com.google.protobuf.Timestamp.getDefaultInstance()
5795         : postingUpdateTime_;
5796   }
5797   /**
5798    *
5799    *
5800    * <pre>
5801    * Output only. The timestamp when this job posting was last updated.
5802    * </pre>
5803    *
5804    * <code>
5805    * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
5806    * </code>
5807    */
5808   @java.lang.Override
getPostingUpdateTimeOrBuilder()5809   public com.google.protobuf.TimestampOrBuilder getPostingUpdateTimeOrBuilder() {
5810     return postingUpdateTime_ == null
5811         ? com.google.protobuf.Timestamp.getDefaultInstance()
5812         : postingUpdateTime_;
5813   }
5814 
5815   public static final int COMPANY_DISPLAY_NAME_FIELD_NUMBER = 28;
5816 
5817   @SuppressWarnings("serial")
5818   private volatile java.lang.Object companyDisplayName_ = "";
5819   /**
5820    *
5821    *
5822    * <pre>
5823    * Output only. Display name of the company listing the job.
5824    * </pre>
5825    *
5826    * <code>string company_display_name = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
5827    *
5828    * @return The companyDisplayName.
5829    */
5830   @java.lang.Override
getCompanyDisplayName()5831   public java.lang.String getCompanyDisplayName() {
5832     java.lang.Object ref = companyDisplayName_;
5833     if (ref instanceof java.lang.String) {
5834       return (java.lang.String) ref;
5835     } else {
5836       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
5837       java.lang.String s = bs.toStringUtf8();
5838       companyDisplayName_ = s;
5839       return s;
5840     }
5841   }
5842   /**
5843    *
5844    *
5845    * <pre>
5846    * Output only. Display name of the company listing the job.
5847    * </pre>
5848    *
5849    * <code>string company_display_name = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
5850    *
5851    * @return The bytes for companyDisplayName.
5852    */
5853   @java.lang.Override
getCompanyDisplayNameBytes()5854   public com.google.protobuf.ByteString getCompanyDisplayNameBytes() {
5855     java.lang.Object ref = companyDisplayName_;
5856     if (ref instanceof java.lang.String) {
5857       com.google.protobuf.ByteString b =
5858           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5859       companyDisplayName_ = b;
5860       return b;
5861     } else {
5862       return (com.google.protobuf.ByteString) ref;
5863     }
5864   }
5865 
5866   public static final int DERIVED_INFO_FIELD_NUMBER = 29;
5867   private com.google.cloud.talent.v4.Job.DerivedInfo derivedInfo_;
5868   /**
5869    *
5870    *
5871    * <pre>
5872    * Output only. Derived details about the job posting.
5873    * </pre>
5874    *
5875    * <code>
5876    * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
5877    * </code>
5878    *
5879    * @return Whether the derivedInfo field is set.
5880    */
5881   @java.lang.Override
hasDerivedInfo()5882   public boolean hasDerivedInfo() {
5883     return derivedInfo_ != null;
5884   }
5885   /**
5886    *
5887    *
5888    * <pre>
5889    * Output only. Derived details about the job posting.
5890    * </pre>
5891    *
5892    * <code>
5893    * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
5894    * </code>
5895    *
5896    * @return The derivedInfo.
5897    */
5898   @java.lang.Override
getDerivedInfo()5899   public com.google.cloud.talent.v4.Job.DerivedInfo getDerivedInfo() {
5900     return derivedInfo_ == null
5901         ? com.google.cloud.talent.v4.Job.DerivedInfo.getDefaultInstance()
5902         : derivedInfo_;
5903   }
5904   /**
5905    *
5906    *
5907    * <pre>
5908    * Output only. Derived details about the job posting.
5909    * </pre>
5910    *
5911    * <code>
5912    * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
5913    * </code>
5914    */
5915   @java.lang.Override
getDerivedInfoOrBuilder()5916   public com.google.cloud.talent.v4.Job.DerivedInfoOrBuilder getDerivedInfoOrBuilder() {
5917     return derivedInfo_ == null
5918         ? com.google.cloud.talent.v4.Job.DerivedInfo.getDefaultInstance()
5919         : derivedInfo_;
5920   }
5921 
5922   public static final int PROCESSING_OPTIONS_FIELD_NUMBER = 30;
5923   private com.google.cloud.talent.v4.Job.ProcessingOptions processingOptions_;
5924   /**
5925    *
5926    *
5927    * <pre>
5928    * Options for job processing.
5929    * </pre>
5930    *
5931    * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
5932    *
5933    * @return Whether the processingOptions field is set.
5934    */
5935   @java.lang.Override
hasProcessingOptions()5936   public boolean hasProcessingOptions() {
5937     return processingOptions_ != null;
5938   }
5939   /**
5940    *
5941    *
5942    * <pre>
5943    * Options for job processing.
5944    * </pre>
5945    *
5946    * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
5947    *
5948    * @return The processingOptions.
5949    */
5950   @java.lang.Override
getProcessingOptions()5951   public com.google.cloud.talent.v4.Job.ProcessingOptions getProcessingOptions() {
5952     return processingOptions_ == null
5953         ? com.google.cloud.talent.v4.Job.ProcessingOptions.getDefaultInstance()
5954         : processingOptions_;
5955   }
5956   /**
5957    *
5958    *
5959    * <pre>
5960    * Options for job processing.
5961    * </pre>
5962    *
5963    * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
5964    */
5965   @java.lang.Override
getProcessingOptionsOrBuilder()5966   public com.google.cloud.talent.v4.Job.ProcessingOptionsOrBuilder getProcessingOptionsOrBuilder() {
5967     return processingOptions_ == null
5968         ? com.google.cloud.talent.v4.Job.ProcessingOptions.getDefaultInstance()
5969         : processingOptions_;
5970   }
5971 
5972   private byte memoizedIsInitialized = -1;
5973 
5974   @java.lang.Override
isInitialized()5975   public final boolean isInitialized() {
5976     byte isInitialized = memoizedIsInitialized;
5977     if (isInitialized == 1) return true;
5978     if (isInitialized == 0) return false;
5979 
5980     memoizedIsInitialized = 1;
5981     return true;
5982   }
5983 
5984   @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)5985   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
5986     getSerializedSize();
5987     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
5988       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
5989     }
5990     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(company_)) {
5991       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, company_);
5992     }
5993     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requisitionId_)) {
5994       com.google.protobuf.GeneratedMessageV3.writeString(output, 3, requisitionId_);
5995     }
5996     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) {
5997       com.google.protobuf.GeneratedMessageV3.writeString(output, 4, title_);
5998     }
5999     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
6000       com.google.protobuf.GeneratedMessageV3.writeString(output, 5, description_);
6001     }
6002     for (int i = 0; i < addresses_.size(); i++) {
6003       com.google.protobuf.GeneratedMessageV3.writeString(output, 6, addresses_.getRaw(i));
6004     }
6005     if (applicationInfo_ != null) {
6006       output.writeMessage(7, getApplicationInfo());
6007     }
6008     if (getJobBenefitsList().size() > 0) {
6009       output.writeUInt32NoTag(66);
6010       output.writeUInt32NoTag(jobBenefitsMemoizedSerializedSize);
6011     }
6012     for (int i = 0; i < jobBenefits_.size(); i++) {
6013       output.writeEnumNoTag(jobBenefits_.get(i));
6014     }
6015     if (compensationInfo_ != null) {
6016       output.writeMessage(9, getCompensationInfo());
6017     }
6018     com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
6019         output, internalGetCustomAttributes(), CustomAttributesDefaultEntryHolder.defaultEntry, 10);
6020     if (getDegreeTypesList().size() > 0) {
6021       output.writeUInt32NoTag(90);
6022       output.writeUInt32NoTag(degreeTypesMemoizedSerializedSize);
6023     }
6024     for (int i = 0; i < degreeTypes_.size(); i++) {
6025       output.writeEnumNoTag(degreeTypes_.get(i));
6026     }
6027     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(department_)) {
6028       com.google.protobuf.GeneratedMessageV3.writeString(output, 12, department_);
6029     }
6030     if (getEmploymentTypesList().size() > 0) {
6031       output.writeUInt32NoTag(106);
6032       output.writeUInt32NoTag(employmentTypesMemoizedSerializedSize);
6033     }
6034     for (int i = 0; i < employmentTypes_.size(); i++) {
6035       output.writeEnumNoTag(employmentTypes_.get(i));
6036     }
6037     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(incentives_)) {
6038       com.google.protobuf.GeneratedMessageV3.writeString(output, 14, incentives_);
6039     }
6040     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(languageCode_)) {
6041       com.google.protobuf.GeneratedMessageV3.writeString(output, 15, languageCode_);
6042     }
6043     if (jobLevel_ != com.google.cloud.talent.v4.JobLevel.JOB_LEVEL_UNSPECIFIED.getNumber()) {
6044       output.writeEnum(16, jobLevel_);
6045     }
6046     if (promotionValue_ != 0) {
6047       output.writeInt32(17, promotionValue_);
6048     }
6049     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(qualifications_)) {
6050       com.google.protobuf.GeneratedMessageV3.writeString(output, 18, qualifications_);
6051     }
6052     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(responsibilities_)) {
6053       com.google.protobuf.GeneratedMessageV3.writeString(output, 19, responsibilities_);
6054     }
6055     if (postingRegion_
6056         != com.google.cloud.talent.v4.PostingRegion.POSTING_REGION_UNSPECIFIED.getNumber()) {
6057       output.writeEnum(20, postingRegion_);
6058     }
6059     if (visibility_ != com.google.cloud.talent.v4.Visibility.VISIBILITY_UNSPECIFIED.getNumber()) {
6060       output.writeEnum(21, visibility_);
6061     }
6062     if (jobStartTime_ != null) {
6063       output.writeMessage(22, getJobStartTime());
6064     }
6065     if (jobEndTime_ != null) {
6066       output.writeMessage(23, getJobEndTime());
6067     }
6068     if (postingPublishTime_ != null) {
6069       output.writeMessage(24, getPostingPublishTime());
6070     }
6071     if (postingExpireTime_ != null) {
6072       output.writeMessage(25, getPostingExpireTime());
6073     }
6074     if (postingCreateTime_ != null) {
6075       output.writeMessage(26, getPostingCreateTime());
6076     }
6077     if (postingUpdateTime_ != null) {
6078       output.writeMessage(27, getPostingUpdateTime());
6079     }
6080     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(companyDisplayName_)) {
6081       com.google.protobuf.GeneratedMessageV3.writeString(output, 28, companyDisplayName_);
6082     }
6083     if (derivedInfo_ != null) {
6084       output.writeMessage(29, getDerivedInfo());
6085     }
6086     if (processingOptions_ != null) {
6087       output.writeMessage(30, getProcessingOptions());
6088     }
6089     getUnknownFields().writeTo(output);
6090   }
6091 
6092   @java.lang.Override
getSerializedSize()6093   public int getSerializedSize() {
6094     int size = memoizedSize;
6095     if (size != -1) return size;
6096 
6097     size = 0;
6098     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
6099       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
6100     }
6101     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(company_)) {
6102       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, company_);
6103     }
6104     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(requisitionId_)) {
6105       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, requisitionId_);
6106     }
6107     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) {
6108       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, title_);
6109     }
6110     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
6111       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, description_);
6112     }
6113     {
6114       int dataSize = 0;
6115       for (int i = 0; i < addresses_.size(); i++) {
6116         dataSize += computeStringSizeNoTag(addresses_.getRaw(i));
6117       }
6118       size += dataSize;
6119       size += 1 * getAddressesList().size();
6120     }
6121     if (applicationInfo_ != null) {
6122       size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getApplicationInfo());
6123     }
6124     {
6125       int dataSize = 0;
6126       for (int i = 0; i < jobBenefits_.size(); i++) {
6127         dataSize += com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(jobBenefits_.get(i));
6128       }
6129       size += dataSize;
6130       if (!getJobBenefitsList().isEmpty()) {
6131         size += 1;
6132         size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize);
6133       }
6134       jobBenefitsMemoizedSerializedSize = dataSize;
6135     }
6136     if (compensationInfo_ != null) {
6137       size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getCompensationInfo());
6138     }
6139     for (java.util.Map.Entry<java.lang.String, com.google.cloud.talent.v4.CustomAttribute> entry :
6140         internalGetCustomAttributes().getMap().entrySet()) {
6141       com.google.protobuf.MapEntry<java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
6142           customAttributes__ =
6143               CustomAttributesDefaultEntryHolder.defaultEntry
6144                   .newBuilderForType()
6145                   .setKey(entry.getKey())
6146                   .setValue(entry.getValue())
6147                   .build();
6148       size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, customAttributes__);
6149     }
6150     {
6151       int dataSize = 0;
6152       for (int i = 0; i < degreeTypes_.size(); i++) {
6153         dataSize += com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(degreeTypes_.get(i));
6154       }
6155       size += dataSize;
6156       if (!getDegreeTypesList().isEmpty()) {
6157         size += 1;
6158         size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize);
6159       }
6160       degreeTypesMemoizedSerializedSize = dataSize;
6161     }
6162     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(department_)) {
6163       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, department_);
6164     }
6165     {
6166       int dataSize = 0;
6167       for (int i = 0; i < employmentTypes_.size(); i++) {
6168         dataSize +=
6169             com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(employmentTypes_.get(i));
6170       }
6171       size += dataSize;
6172       if (!getEmploymentTypesList().isEmpty()) {
6173         size += 1;
6174         size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize);
6175       }
6176       employmentTypesMemoizedSerializedSize = dataSize;
6177     }
6178     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(incentives_)) {
6179       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, incentives_);
6180     }
6181     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(languageCode_)) {
6182       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, languageCode_);
6183     }
6184     if (jobLevel_ != com.google.cloud.talent.v4.JobLevel.JOB_LEVEL_UNSPECIFIED.getNumber()) {
6185       size += com.google.protobuf.CodedOutputStream.computeEnumSize(16, jobLevel_);
6186     }
6187     if (promotionValue_ != 0) {
6188       size += com.google.protobuf.CodedOutputStream.computeInt32Size(17, promotionValue_);
6189     }
6190     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(qualifications_)) {
6191       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, qualifications_);
6192     }
6193     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(responsibilities_)) {
6194       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, responsibilities_);
6195     }
6196     if (postingRegion_
6197         != com.google.cloud.talent.v4.PostingRegion.POSTING_REGION_UNSPECIFIED.getNumber()) {
6198       size += com.google.protobuf.CodedOutputStream.computeEnumSize(20, postingRegion_);
6199     }
6200     if (visibility_ != com.google.cloud.talent.v4.Visibility.VISIBILITY_UNSPECIFIED.getNumber()) {
6201       size += com.google.protobuf.CodedOutputStream.computeEnumSize(21, visibility_);
6202     }
6203     if (jobStartTime_ != null) {
6204       size += com.google.protobuf.CodedOutputStream.computeMessageSize(22, getJobStartTime());
6205     }
6206     if (jobEndTime_ != null) {
6207       size += com.google.protobuf.CodedOutputStream.computeMessageSize(23, getJobEndTime());
6208     }
6209     if (postingPublishTime_ != null) {
6210       size += com.google.protobuf.CodedOutputStream.computeMessageSize(24, getPostingPublishTime());
6211     }
6212     if (postingExpireTime_ != null) {
6213       size += com.google.protobuf.CodedOutputStream.computeMessageSize(25, getPostingExpireTime());
6214     }
6215     if (postingCreateTime_ != null) {
6216       size += com.google.protobuf.CodedOutputStream.computeMessageSize(26, getPostingCreateTime());
6217     }
6218     if (postingUpdateTime_ != null) {
6219       size += com.google.protobuf.CodedOutputStream.computeMessageSize(27, getPostingUpdateTime());
6220     }
6221     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(companyDisplayName_)) {
6222       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(28, companyDisplayName_);
6223     }
6224     if (derivedInfo_ != null) {
6225       size += com.google.protobuf.CodedOutputStream.computeMessageSize(29, getDerivedInfo());
6226     }
6227     if (processingOptions_ != null) {
6228       size += com.google.protobuf.CodedOutputStream.computeMessageSize(30, getProcessingOptions());
6229     }
6230     size += getUnknownFields().getSerializedSize();
6231     memoizedSize = size;
6232     return size;
6233   }
6234 
6235   @java.lang.Override
equals(final java.lang.Object obj)6236   public boolean equals(final java.lang.Object obj) {
6237     if (obj == this) {
6238       return true;
6239     }
6240     if (!(obj instanceof com.google.cloud.talent.v4.Job)) {
6241       return super.equals(obj);
6242     }
6243     com.google.cloud.talent.v4.Job other = (com.google.cloud.talent.v4.Job) obj;
6244 
6245     if (!getName().equals(other.getName())) return false;
6246     if (!getCompany().equals(other.getCompany())) return false;
6247     if (!getRequisitionId().equals(other.getRequisitionId())) return false;
6248     if (!getTitle().equals(other.getTitle())) return false;
6249     if (!getDescription().equals(other.getDescription())) return false;
6250     if (!getAddressesList().equals(other.getAddressesList())) return false;
6251     if (hasApplicationInfo() != other.hasApplicationInfo()) return false;
6252     if (hasApplicationInfo()) {
6253       if (!getApplicationInfo().equals(other.getApplicationInfo())) return false;
6254     }
6255     if (!jobBenefits_.equals(other.jobBenefits_)) return false;
6256     if (hasCompensationInfo() != other.hasCompensationInfo()) return false;
6257     if (hasCompensationInfo()) {
6258       if (!getCompensationInfo().equals(other.getCompensationInfo())) return false;
6259     }
6260     if (!internalGetCustomAttributes().equals(other.internalGetCustomAttributes())) return false;
6261     if (!degreeTypes_.equals(other.degreeTypes_)) return false;
6262     if (!getDepartment().equals(other.getDepartment())) return false;
6263     if (!employmentTypes_.equals(other.employmentTypes_)) return false;
6264     if (!getIncentives().equals(other.getIncentives())) return false;
6265     if (!getLanguageCode().equals(other.getLanguageCode())) return false;
6266     if (jobLevel_ != other.jobLevel_) return false;
6267     if (getPromotionValue() != other.getPromotionValue()) return false;
6268     if (!getQualifications().equals(other.getQualifications())) return false;
6269     if (!getResponsibilities().equals(other.getResponsibilities())) return false;
6270     if (postingRegion_ != other.postingRegion_) return false;
6271     if (visibility_ != other.visibility_) return false;
6272     if (hasJobStartTime() != other.hasJobStartTime()) return false;
6273     if (hasJobStartTime()) {
6274       if (!getJobStartTime().equals(other.getJobStartTime())) return false;
6275     }
6276     if (hasJobEndTime() != other.hasJobEndTime()) return false;
6277     if (hasJobEndTime()) {
6278       if (!getJobEndTime().equals(other.getJobEndTime())) return false;
6279     }
6280     if (hasPostingPublishTime() != other.hasPostingPublishTime()) return false;
6281     if (hasPostingPublishTime()) {
6282       if (!getPostingPublishTime().equals(other.getPostingPublishTime())) return false;
6283     }
6284     if (hasPostingExpireTime() != other.hasPostingExpireTime()) return false;
6285     if (hasPostingExpireTime()) {
6286       if (!getPostingExpireTime().equals(other.getPostingExpireTime())) return false;
6287     }
6288     if (hasPostingCreateTime() != other.hasPostingCreateTime()) return false;
6289     if (hasPostingCreateTime()) {
6290       if (!getPostingCreateTime().equals(other.getPostingCreateTime())) return false;
6291     }
6292     if (hasPostingUpdateTime() != other.hasPostingUpdateTime()) return false;
6293     if (hasPostingUpdateTime()) {
6294       if (!getPostingUpdateTime().equals(other.getPostingUpdateTime())) return false;
6295     }
6296     if (!getCompanyDisplayName().equals(other.getCompanyDisplayName())) return false;
6297     if (hasDerivedInfo() != other.hasDerivedInfo()) return false;
6298     if (hasDerivedInfo()) {
6299       if (!getDerivedInfo().equals(other.getDerivedInfo())) return false;
6300     }
6301     if (hasProcessingOptions() != other.hasProcessingOptions()) return false;
6302     if (hasProcessingOptions()) {
6303       if (!getProcessingOptions().equals(other.getProcessingOptions())) return false;
6304     }
6305     if (!getUnknownFields().equals(other.getUnknownFields())) return false;
6306     return true;
6307   }
6308 
6309   @java.lang.Override
hashCode()6310   public int hashCode() {
6311     if (memoizedHashCode != 0) {
6312       return memoizedHashCode;
6313     }
6314     int hash = 41;
6315     hash = (19 * hash) + getDescriptor().hashCode();
6316     hash = (37 * hash) + NAME_FIELD_NUMBER;
6317     hash = (53 * hash) + getName().hashCode();
6318     hash = (37 * hash) + COMPANY_FIELD_NUMBER;
6319     hash = (53 * hash) + getCompany().hashCode();
6320     hash = (37 * hash) + REQUISITION_ID_FIELD_NUMBER;
6321     hash = (53 * hash) + getRequisitionId().hashCode();
6322     hash = (37 * hash) + TITLE_FIELD_NUMBER;
6323     hash = (53 * hash) + getTitle().hashCode();
6324     hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
6325     hash = (53 * hash) + getDescription().hashCode();
6326     if (getAddressesCount() > 0) {
6327       hash = (37 * hash) + ADDRESSES_FIELD_NUMBER;
6328       hash = (53 * hash) + getAddressesList().hashCode();
6329     }
6330     if (hasApplicationInfo()) {
6331       hash = (37 * hash) + APPLICATION_INFO_FIELD_NUMBER;
6332       hash = (53 * hash) + getApplicationInfo().hashCode();
6333     }
6334     if (getJobBenefitsCount() > 0) {
6335       hash = (37 * hash) + JOB_BENEFITS_FIELD_NUMBER;
6336       hash = (53 * hash) + jobBenefits_.hashCode();
6337     }
6338     if (hasCompensationInfo()) {
6339       hash = (37 * hash) + COMPENSATION_INFO_FIELD_NUMBER;
6340       hash = (53 * hash) + getCompensationInfo().hashCode();
6341     }
6342     if (!internalGetCustomAttributes().getMap().isEmpty()) {
6343       hash = (37 * hash) + CUSTOM_ATTRIBUTES_FIELD_NUMBER;
6344       hash = (53 * hash) + internalGetCustomAttributes().hashCode();
6345     }
6346     if (getDegreeTypesCount() > 0) {
6347       hash = (37 * hash) + DEGREE_TYPES_FIELD_NUMBER;
6348       hash = (53 * hash) + degreeTypes_.hashCode();
6349     }
6350     hash = (37 * hash) + DEPARTMENT_FIELD_NUMBER;
6351     hash = (53 * hash) + getDepartment().hashCode();
6352     if (getEmploymentTypesCount() > 0) {
6353       hash = (37 * hash) + EMPLOYMENT_TYPES_FIELD_NUMBER;
6354       hash = (53 * hash) + employmentTypes_.hashCode();
6355     }
6356     hash = (37 * hash) + INCENTIVES_FIELD_NUMBER;
6357     hash = (53 * hash) + getIncentives().hashCode();
6358     hash = (37 * hash) + LANGUAGE_CODE_FIELD_NUMBER;
6359     hash = (53 * hash) + getLanguageCode().hashCode();
6360     hash = (37 * hash) + JOB_LEVEL_FIELD_NUMBER;
6361     hash = (53 * hash) + jobLevel_;
6362     hash = (37 * hash) + PROMOTION_VALUE_FIELD_NUMBER;
6363     hash = (53 * hash) + getPromotionValue();
6364     hash = (37 * hash) + QUALIFICATIONS_FIELD_NUMBER;
6365     hash = (53 * hash) + getQualifications().hashCode();
6366     hash = (37 * hash) + RESPONSIBILITIES_FIELD_NUMBER;
6367     hash = (53 * hash) + getResponsibilities().hashCode();
6368     hash = (37 * hash) + POSTING_REGION_FIELD_NUMBER;
6369     hash = (53 * hash) + postingRegion_;
6370     hash = (37 * hash) + VISIBILITY_FIELD_NUMBER;
6371     hash = (53 * hash) + visibility_;
6372     if (hasJobStartTime()) {
6373       hash = (37 * hash) + JOB_START_TIME_FIELD_NUMBER;
6374       hash = (53 * hash) + getJobStartTime().hashCode();
6375     }
6376     if (hasJobEndTime()) {
6377       hash = (37 * hash) + JOB_END_TIME_FIELD_NUMBER;
6378       hash = (53 * hash) + getJobEndTime().hashCode();
6379     }
6380     if (hasPostingPublishTime()) {
6381       hash = (37 * hash) + POSTING_PUBLISH_TIME_FIELD_NUMBER;
6382       hash = (53 * hash) + getPostingPublishTime().hashCode();
6383     }
6384     if (hasPostingExpireTime()) {
6385       hash = (37 * hash) + POSTING_EXPIRE_TIME_FIELD_NUMBER;
6386       hash = (53 * hash) + getPostingExpireTime().hashCode();
6387     }
6388     if (hasPostingCreateTime()) {
6389       hash = (37 * hash) + POSTING_CREATE_TIME_FIELD_NUMBER;
6390       hash = (53 * hash) + getPostingCreateTime().hashCode();
6391     }
6392     if (hasPostingUpdateTime()) {
6393       hash = (37 * hash) + POSTING_UPDATE_TIME_FIELD_NUMBER;
6394       hash = (53 * hash) + getPostingUpdateTime().hashCode();
6395     }
6396     hash = (37 * hash) + COMPANY_DISPLAY_NAME_FIELD_NUMBER;
6397     hash = (53 * hash) + getCompanyDisplayName().hashCode();
6398     if (hasDerivedInfo()) {
6399       hash = (37 * hash) + DERIVED_INFO_FIELD_NUMBER;
6400       hash = (53 * hash) + getDerivedInfo().hashCode();
6401     }
6402     if (hasProcessingOptions()) {
6403       hash = (37 * hash) + PROCESSING_OPTIONS_FIELD_NUMBER;
6404       hash = (53 * hash) + getProcessingOptions().hashCode();
6405     }
6406     hash = (29 * hash) + getUnknownFields().hashCode();
6407     memoizedHashCode = hash;
6408     return hash;
6409   }
6410 
parseFrom(java.nio.ByteBuffer data)6411   public static com.google.cloud.talent.v4.Job parseFrom(java.nio.ByteBuffer data)
6412       throws com.google.protobuf.InvalidProtocolBufferException {
6413     return PARSER.parseFrom(data);
6414   }
6415 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)6416   public static com.google.cloud.talent.v4.Job parseFrom(
6417       java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6418       throws com.google.protobuf.InvalidProtocolBufferException {
6419     return PARSER.parseFrom(data, extensionRegistry);
6420   }
6421 
parseFrom(com.google.protobuf.ByteString data)6422   public static com.google.cloud.talent.v4.Job parseFrom(com.google.protobuf.ByteString data)
6423       throws com.google.protobuf.InvalidProtocolBufferException {
6424     return PARSER.parseFrom(data);
6425   }
6426 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)6427   public static com.google.cloud.talent.v4.Job parseFrom(
6428       com.google.protobuf.ByteString data,
6429       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6430       throws com.google.protobuf.InvalidProtocolBufferException {
6431     return PARSER.parseFrom(data, extensionRegistry);
6432   }
6433 
parseFrom(byte[] data)6434   public static com.google.cloud.talent.v4.Job parseFrom(byte[] data)
6435       throws com.google.protobuf.InvalidProtocolBufferException {
6436     return PARSER.parseFrom(data);
6437   }
6438 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)6439   public static com.google.cloud.talent.v4.Job parseFrom(
6440       byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6441       throws com.google.protobuf.InvalidProtocolBufferException {
6442     return PARSER.parseFrom(data, extensionRegistry);
6443   }
6444 
parseFrom(java.io.InputStream input)6445   public static com.google.cloud.talent.v4.Job parseFrom(java.io.InputStream input)
6446       throws java.io.IOException {
6447     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
6448   }
6449 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)6450   public static com.google.cloud.talent.v4.Job parseFrom(
6451       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6452       throws java.io.IOException {
6453     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
6454         PARSER, input, extensionRegistry);
6455   }
6456 
parseDelimitedFrom(java.io.InputStream input)6457   public static com.google.cloud.talent.v4.Job parseDelimitedFrom(java.io.InputStream input)
6458       throws java.io.IOException {
6459     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
6460   }
6461 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)6462   public static com.google.cloud.talent.v4.Job parseDelimitedFrom(
6463       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6464       throws java.io.IOException {
6465     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
6466         PARSER, input, extensionRegistry);
6467   }
6468 
parseFrom(com.google.protobuf.CodedInputStream input)6469   public static com.google.cloud.talent.v4.Job parseFrom(com.google.protobuf.CodedInputStream input)
6470       throws java.io.IOException {
6471     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
6472   }
6473 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)6474   public static com.google.cloud.talent.v4.Job parseFrom(
6475       com.google.protobuf.CodedInputStream input,
6476       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6477       throws java.io.IOException {
6478     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
6479         PARSER, input, extensionRegistry);
6480   }
6481 
6482   @java.lang.Override
newBuilderForType()6483   public Builder newBuilderForType() {
6484     return newBuilder();
6485   }
6486 
newBuilder()6487   public static Builder newBuilder() {
6488     return DEFAULT_INSTANCE.toBuilder();
6489   }
6490 
newBuilder(com.google.cloud.talent.v4.Job prototype)6491   public static Builder newBuilder(com.google.cloud.talent.v4.Job prototype) {
6492     return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
6493   }
6494 
6495   @java.lang.Override
toBuilder()6496   public Builder toBuilder() {
6497     return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
6498   }
6499 
6500   @java.lang.Override
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)6501   protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
6502     Builder builder = new Builder(parent);
6503     return builder;
6504   }
6505   /**
6506    *
6507    *
6508    * <pre>
6509    * A Job resource represents a job posting (also referred to as a "job listing"
6510    * or "job requisition"). A job belongs to a
6511    * [Company][google.cloud.talent.v4.Company], which is the hiring entity
6512    * responsible for the job.
6513    * </pre>
6514    *
6515    * Protobuf type {@code google.cloud.talent.v4.Job}
6516    */
6517   public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
6518       implements
6519       // @@protoc_insertion_point(builder_implements:google.cloud.talent.v4.Job)
6520       com.google.cloud.talent.v4.JobOrBuilder {
getDescriptor()6521     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
6522       return com.google.cloud.talent.v4.JobProto
6523           .internal_static_google_cloud_talent_v4_Job_descriptor;
6524     }
6525 
6526     @SuppressWarnings({"rawtypes"})
internalGetMapField(int number)6527     protected com.google.protobuf.MapField internalGetMapField(int number) {
6528       switch (number) {
6529         case 10:
6530           return internalGetCustomAttributes();
6531         default:
6532           throw new RuntimeException("Invalid map field number: " + number);
6533       }
6534     }
6535 
6536     @SuppressWarnings({"rawtypes"})
internalGetMutableMapField(int number)6537     protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
6538       switch (number) {
6539         case 10:
6540           return internalGetMutableCustomAttributes();
6541         default:
6542           throw new RuntimeException("Invalid map field number: " + number);
6543       }
6544     }
6545 
6546     @java.lang.Override
6547     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()6548         internalGetFieldAccessorTable() {
6549       return com.google.cloud.talent.v4.JobProto
6550           .internal_static_google_cloud_talent_v4_Job_fieldAccessorTable
6551           .ensureFieldAccessorsInitialized(
6552               com.google.cloud.talent.v4.Job.class, com.google.cloud.talent.v4.Job.Builder.class);
6553     }
6554 
6555     // Construct using com.google.cloud.talent.v4.Job.newBuilder()
Builder()6556     private Builder() {}
6557 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)6558     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
6559       super(parent);
6560     }
6561 
6562     @java.lang.Override
clear()6563     public Builder clear() {
6564       super.clear();
6565       bitField0_ = 0;
6566       name_ = "";
6567       company_ = "";
6568       requisitionId_ = "";
6569       title_ = "";
6570       description_ = "";
6571       addresses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
6572       bitField0_ = (bitField0_ & ~0x00000020);
6573       applicationInfo_ = null;
6574       if (applicationInfoBuilder_ != null) {
6575         applicationInfoBuilder_.dispose();
6576         applicationInfoBuilder_ = null;
6577       }
6578       jobBenefits_ = java.util.Collections.emptyList();
6579       bitField0_ = (bitField0_ & ~0x00000080);
6580       compensationInfo_ = null;
6581       if (compensationInfoBuilder_ != null) {
6582         compensationInfoBuilder_.dispose();
6583         compensationInfoBuilder_ = null;
6584       }
6585       internalGetMutableCustomAttributes().clear();
6586       degreeTypes_ = java.util.Collections.emptyList();
6587       bitField0_ = (bitField0_ & ~0x00000400);
6588       department_ = "";
6589       employmentTypes_ = java.util.Collections.emptyList();
6590       bitField0_ = (bitField0_ & ~0x00001000);
6591       incentives_ = "";
6592       languageCode_ = "";
6593       jobLevel_ = 0;
6594       promotionValue_ = 0;
6595       qualifications_ = "";
6596       responsibilities_ = "";
6597       postingRegion_ = 0;
6598       visibility_ = 0;
6599       jobStartTime_ = null;
6600       if (jobStartTimeBuilder_ != null) {
6601         jobStartTimeBuilder_.dispose();
6602         jobStartTimeBuilder_ = null;
6603       }
6604       jobEndTime_ = null;
6605       if (jobEndTimeBuilder_ != null) {
6606         jobEndTimeBuilder_.dispose();
6607         jobEndTimeBuilder_ = null;
6608       }
6609       postingPublishTime_ = null;
6610       if (postingPublishTimeBuilder_ != null) {
6611         postingPublishTimeBuilder_.dispose();
6612         postingPublishTimeBuilder_ = null;
6613       }
6614       postingExpireTime_ = null;
6615       if (postingExpireTimeBuilder_ != null) {
6616         postingExpireTimeBuilder_.dispose();
6617         postingExpireTimeBuilder_ = null;
6618       }
6619       postingCreateTime_ = null;
6620       if (postingCreateTimeBuilder_ != null) {
6621         postingCreateTimeBuilder_.dispose();
6622         postingCreateTimeBuilder_ = null;
6623       }
6624       postingUpdateTime_ = null;
6625       if (postingUpdateTimeBuilder_ != null) {
6626         postingUpdateTimeBuilder_.dispose();
6627         postingUpdateTimeBuilder_ = null;
6628       }
6629       companyDisplayName_ = "";
6630       derivedInfo_ = null;
6631       if (derivedInfoBuilder_ != null) {
6632         derivedInfoBuilder_.dispose();
6633         derivedInfoBuilder_ = null;
6634       }
6635       processingOptions_ = null;
6636       if (processingOptionsBuilder_ != null) {
6637         processingOptionsBuilder_.dispose();
6638         processingOptionsBuilder_ = null;
6639       }
6640       return this;
6641     }
6642 
6643     @java.lang.Override
getDescriptorForType()6644     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
6645       return com.google.cloud.talent.v4.JobProto
6646           .internal_static_google_cloud_talent_v4_Job_descriptor;
6647     }
6648 
6649     @java.lang.Override
getDefaultInstanceForType()6650     public com.google.cloud.talent.v4.Job getDefaultInstanceForType() {
6651       return com.google.cloud.talent.v4.Job.getDefaultInstance();
6652     }
6653 
6654     @java.lang.Override
build()6655     public com.google.cloud.talent.v4.Job build() {
6656       com.google.cloud.talent.v4.Job result = buildPartial();
6657       if (!result.isInitialized()) {
6658         throw newUninitializedMessageException(result);
6659       }
6660       return result;
6661     }
6662 
6663     @java.lang.Override
buildPartial()6664     public com.google.cloud.talent.v4.Job buildPartial() {
6665       com.google.cloud.talent.v4.Job result = new com.google.cloud.talent.v4.Job(this);
6666       buildPartialRepeatedFields(result);
6667       if (bitField0_ != 0) {
6668         buildPartial0(result);
6669       }
6670       onBuilt();
6671       return result;
6672     }
6673 
buildPartialRepeatedFields(com.google.cloud.talent.v4.Job result)6674     private void buildPartialRepeatedFields(com.google.cloud.talent.v4.Job result) {
6675       if (((bitField0_ & 0x00000020) != 0)) {
6676         addresses_ = addresses_.getUnmodifiableView();
6677         bitField0_ = (bitField0_ & ~0x00000020);
6678       }
6679       result.addresses_ = addresses_;
6680       if (((bitField0_ & 0x00000080) != 0)) {
6681         jobBenefits_ = java.util.Collections.unmodifiableList(jobBenefits_);
6682         bitField0_ = (bitField0_ & ~0x00000080);
6683       }
6684       result.jobBenefits_ = jobBenefits_;
6685       if (((bitField0_ & 0x00000400) != 0)) {
6686         degreeTypes_ = java.util.Collections.unmodifiableList(degreeTypes_);
6687         bitField0_ = (bitField0_ & ~0x00000400);
6688       }
6689       result.degreeTypes_ = degreeTypes_;
6690       if (((bitField0_ & 0x00001000) != 0)) {
6691         employmentTypes_ = java.util.Collections.unmodifiableList(employmentTypes_);
6692         bitField0_ = (bitField0_ & ~0x00001000);
6693       }
6694       result.employmentTypes_ = employmentTypes_;
6695     }
6696 
buildPartial0(com.google.cloud.talent.v4.Job result)6697     private void buildPartial0(com.google.cloud.talent.v4.Job result) {
6698       int from_bitField0_ = bitField0_;
6699       if (((from_bitField0_ & 0x00000001) != 0)) {
6700         result.name_ = name_;
6701       }
6702       if (((from_bitField0_ & 0x00000002) != 0)) {
6703         result.company_ = company_;
6704       }
6705       if (((from_bitField0_ & 0x00000004) != 0)) {
6706         result.requisitionId_ = requisitionId_;
6707       }
6708       if (((from_bitField0_ & 0x00000008) != 0)) {
6709         result.title_ = title_;
6710       }
6711       if (((from_bitField0_ & 0x00000010) != 0)) {
6712         result.description_ = description_;
6713       }
6714       if (((from_bitField0_ & 0x00000040) != 0)) {
6715         result.applicationInfo_ =
6716             applicationInfoBuilder_ == null ? applicationInfo_ : applicationInfoBuilder_.build();
6717       }
6718       if (((from_bitField0_ & 0x00000100) != 0)) {
6719         result.compensationInfo_ =
6720             compensationInfoBuilder_ == null ? compensationInfo_ : compensationInfoBuilder_.build();
6721       }
6722       if (((from_bitField0_ & 0x00000200) != 0)) {
6723         result.customAttributes_ = internalGetCustomAttributes();
6724         result.customAttributes_.makeImmutable();
6725       }
6726       if (((from_bitField0_ & 0x00000800) != 0)) {
6727         result.department_ = department_;
6728       }
6729       if (((from_bitField0_ & 0x00002000) != 0)) {
6730         result.incentives_ = incentives_;
6731       }
6732       if (((from_bitField0_ & 0x00004000) != 0)) {
6733         result.languageCode_ = languageCode_;
6734       }
6735       if (((from_bitField0_ & 0x00008000) != 0)) {
6736         result.jobLevel_ = jobLevel_;
6737       }
6738       if (((from_bitField0_ & 0x00010000) != 0)) {
6739         result.promotionValue_ = promotionValue_;
6740       }
6741       if (((from_bitField0_ & 0x00020000) != 0)) {
6742         result.qualifications_ = qualifications_;
6743       }
6744       if (((from_bitField0_ & 0x00040000) != 0)) {
6745         result.responsibilities_ = responsibilities_;
6746       }
6747       if (((from_bitField0_ & 0x00080000) != 0)) {
6748         result.postingRegion_ = postingRegion_;
6749       }
6750       if (((from_bitField0_ & 0x00100000) != 0)) {
6751         result.visibility_ = visibility_;
6752       }
6753       if (((from_bitField0_ & 0x00200000) != 0)) {
6754         result.jobStartTime_ =
6755             jobStartTimeBuilder_ == null ? jobStartTime_ : jobStartTimeBuilder_.build();
6756       }
6757       if (((from_bitField0_ & 0x00400000) != 0)) {
6758         result.jobEndTime_ = jobEndTimeBuilder_ == null ? jobEndTime_ : jobEndTimeBuilder_.build();
6759       }
6760       if (((from_bitField0_ & 0x00800000) != 0)) {
6761         result.postingPublishTime_ =
6762             postingPublishTimeBuilder_ == null
6763                 ? postingPublishTime_
6764                 : postingPublishTimeBuilder_.build();
6765       }
6766       if (((from_bitField0_ & 0x01000000) != 0)) {
6767         result.postingExpireTime_ =
6768             postingExpireTimeBuilder_ == null
6769                 ? postingExpireTime_
6770                 : postingExpireTimeBuilder_.build();
6771       }
6772       if (((from_bitField0_ & 0x02000000) != 0)) {
6773         result.postingCreateTime_ =
6774             postingCreateTimeBuilder_ == null
6775                 ? postingCreateTime_
6776                 : postingCreateTimeBuilder_.build();
6777       }
6778       if (((from_bitField0_ & 0x04000000) != 0)) {
6779         result.postingUpdateTime_ =
6780             postingUpdateTimeBuilder_ == null
6781                 ? postingUpdateTime_
6782                 : postingUpdateTimeBuilder_.build();
6783       }
6784       if (((from_bitField0_ & 0x08000000) != 0)) {
6785         result.companyDisplayName_ = companyDisplayName_;
6786       }
6787       if (((from_bitField0_ & 0x10000000) != 0)) {
6788         result.derivedInfo_ =
6789             derivedInfoBuilder_ == null ? derivedInfo_ : derivedInfoBuilder_.build();
6790       }
6791       if (((from_bitField0_ & 0x20000000) != 0)) {
6792         result.processingOptions_ =
6793             processingOptionsBuilder_ == null
6794                 ? processingOptions_
6795                 : processingOptionsBuilder_.build();
6796       }
6797     }
6798 
6799     @java.lang.Override
clone()6800     public Builder clone() {
6801       return super.clone();
6802     }
6803 
6804     @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)6805     public Builder setField(
6806         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
6807       return super.setField(field, value);
6808     }
6809 
6810     @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)6811     public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
6812       return super.clearField(field);
6813     }
6814 
6815     @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)6816     public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
6817       return super.clearOneof(oneof);
6818     }
6819 
6820     @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)6821     public Builder setRepeatedField(
6822         com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
6823       return super.setRepeatedField(field, index, value);
6824     }
6825 
6826     @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)6827     public Builder addRepeatedField(
6828         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
6829       return super.addRepeatedField(field, value);
6830     }
6831 
6832     @java.lang.Override
mergeFrom(com.google.protobuf.Message other)6833     public Builder mergeFrom(com.google.protobuf.Message other) {
6834       if (other instanceof com.google.cloud.talent.v4.Job) {
6835         return mergeFrom((com.google.cloud.talent.v4.Job) other);
6836       } else {
6837         super.mergeFrom(other);
6838         return this;
6839       }
6840     }
6841 
mergeFrom(com.google.cloud.talent.v4.Job other)6842     public Builder mergeFrom(com.google.cloud.talent.v4.Job other) {
6843       if (other == com.google.cloud.talent.v4.Job.getDefaultInstance()) return this;
6844       if (!other.getName().isEmpty()) {
6845         name_ = other.name_;
6846         bitField0_ |= 0x00000001;
6847         onChanged();
6848       }
6849       if (!other.getCompany().isEmpty()) {
6850         company_ = other.company_;
6851         bitField0_ |= 0x00000002;
6852         onChanged();
6853       }
6854       if (!other.getRequisitionId().isEmpty()) {
6855         requisitionId_ = other.requisitionId_;
6856         bitField0_ |= 0x00000004;
6857         onChanged();
6858       }
6859       if (!other.getTitle().isEmpty()) {
6860         title_ = other.title_;
6861         bitField0_ |= 0x00000008;
6862         onChanged();
6863       }
6864       if (!other.getDescription().isEmpty()) {
6865         description_ = other.description_;
6866         bitField0_ |= 0x00000010;
6867         onChanged();
6868       }
6869       if (!other.addresses_.isEmpty()) {
6870         if (addresses_.isEmpty()) {
6871           addresses_ = other.addresses_;
6872           bitField0_ = (bitField0_ & ~0x00000020);
6873         } else {
6874           ensureAddressesIsMutable();
6875           addresses_.addAll(other.addresses_);
6876         }
6877         onChanged();
6878       }
6879       if (other.hasApplicationInfo()) {
6880         mergeApplicationInfo(other.getApplicationInfo());
6881       }
6882       if (!other.jobBenefits_.isEmpty()) {
6883         if (jobBenefits_.isEmpty()) {
6884           jobBenefits_ = other.jobBenefits_;
6885           bitField0_ = (bitField0_ & ~0x00000080);
6886         } else {
6887           ensureJobBenefitsIsMutable();
6888           jobBenefits_.addAll(other.jobBenefits_);
6889         }
6890         onChanged();
6891       }
6892       if (other.hasCompensationInfo()) {
6893         mergeCompensationInfo(other.getCompensationInfo());
6894       }
6895       internalGetMutableCustomAttributes().mergeFrom(other.internalGetCustomAttributes());
6896       bitField0_ |= 0x00000200;
6897       if (!other.degreeTypes_.isEmpty()) {
6898         if (degreeTypes_.isEmpty()) {
6899           degreeTypes_ = other.degreeTypes_;
6900           bitField0_ = (bitField0_ & ~0x00000400);
6901         } else {
6902           ensureDegreeTypesIsMutable();
6903           degreeTypes_.addAll(other.degreeTypes_);
6904         }
6905         onChanged();
6906       }
6907       if (!other.getDepartment().isEmpty()) {
6908         department_ = other.department_;
6909         bitField0_ |= 0x00000800;
6910         onChanged();
6911       }
6912       if (!other.employmentTypes_.isEmpty()) {
6913         if (employmentTypes_.isEmpty()) {
6914           employmentTypes_ = other.employmentTypes_;
6915           bitField0_ = (bitField0_ & ~0x00001000);
6916         } else {
6917           ensureEmploymentTypesIsMutable();
6918           employmentTypes_.addAll(other.employmentTypes_);
6919         }
6920         onChanged();
6921       }
6922       if (!other.getIncentives().isEmpty()) {
6923         incentives_ = other.incentives_;
6924         bitField0_ |= 0x00002000;
6925         onChanged();
6926       }
6927       if (!other.getLanguageCode().isEmpty()) {
6928         languageCode_ = other.languageCode_;
6929         bitField0_ |= 0x00004000;
6930         onChanged();
6931       }
6932       if (other.jobLevel_ != 0) {
6933         setJobLevelValue(other.getJobLevelValue());
6934       }
6935       if (other.getPromotionValue() != 0) {
6936         setPromotionValue(other.getPromotionValue());
6937       }
6938       if (!other.getQualifications().isEmpty()) {
6939         qualifications_ = other.qualifications_;
6940         bitField0_ |= 0x00020000;
6941         onChanged();
6942       }
6943       if (!other.getResponsibilities().isEmpty()) {
6944         responsibilities_ = other.responsibilities_;
6945         bitField0_ |= 0x00040000;
6946         onChanged();
6947       }
6948       if (other.postingRegion_ != 0) {
6949         setPostingRegionValue(other.getPostingRegionValue());
6950       }
6951       if (other.visibility_ != 0) {
6952         setVisibilityValue(other.getVisibilityValue());
6953       }
6954       if (other.hasJobStartTime()) {
6955         mergeJobStartTime(other.getJobStartTime());
6956       }
6957       if (other.hasJobEndTime()) {
6958         mergeJobEndTime(other.getJobEndTime());
6959       }
6960       if (other.hasPostingPublishTime()) {
6961         mergePostingPublishTime(other.getPostingPublishTime());
6962       }
6963       if (other.hasPostingExpireTime()) {
6964         mergePostingExpireTime(other.getPostingExpireTime());
6965       }
6966       if (other.hasPostingCreateTime()) {
6967         mergePostingCreateTime(other.getPostingCreateTime());
6968       }
6969       if (other.hasPostingUpdateTime()) {
6970         mergePostingUpdateTime(other.getPostingUpdateTime());
6971       }
6972       if (!other.getCompanyDisplayName().isEmpty()) {
6973         companyDisplayName_ = other.companyDisplayName_;
6974         bitField0_ |= 0x08000000;
6975         onChanged();
6976       }
6977       if (other.hasDerivedInfo()) {
6978         mergeDerivedInfo(other.getDerivedInfo());
6979       }
6980       if (other.hasProcessingOptions()) {
6981         mergeProcessingOptions(other.getProcessingOptions());
6982       }
6983       this.mergeUnknownFields(other.getUnknownFields());
6984       onChanged();
6985       return this;
6986     }
6987 
6988     @java.lang.Override
isInitialized()6989     public final boolean isInitialized() {
6990       return true;
6991     }
6992 
6993     @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)6994     public Builder mergeFrom(
6995         com.google.protobuf.CodedInputStream input,
6996         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6997         throws java.io.IOException {
6998       if (extensionRegistry == null) {
6999         throw new java.lang.NullPointerException();
7000       }
7001       try {
7002         boolean done = false;
7003         while (!done) {
7004           int tag = input.readTag();
7005           switch (tag) {
7006             case 0:
7007               done = true;
7008               break;
7009             case 10:
7010               {
7011                 name_ = input.readStringRequireUtf8();
7012                 bitField0_ |= 0x00000001;
7013                 break;
7014               } // case 10
7015             case 18:
7016               {
7017                 company_ = input.readStringRequireUtf8();
7018                 bitField0_ |= 0x00000002;
7019                 break;
7020               } // case 18
7021             case 26:
7022               {
7023                 requisitionId_ = input.readStringRequireUtf8();
7024                 bitField0_ |= 0x00000004;
7025                 break;
7026               } // case 26
7027             case 34:
7028               {
7029                 title_ = input.readStringRequireUtf8();
7030                 bitField0_ |= 0x00000008;
7031                 break;
7032               } // case 34
7033             case 42:
7034               {
7035                 description_ = input.readStringRequireUtf8();
7036                 bitField0_ |= 0x00000010;
7037                 break;
7038               } // case 42
7039             case 50:
7040               {
7041                 java.lang.String s = input.readStringRequireUtf8();
7042                 ensureAddressesIsMutable();
7043                 addresses_.add(s);
7044                 break;
7045               } // case 50
7046             case 58:
7047               {
7048                 input.readMessage(getApplicationInfoFieldBuilder().getBuilder(), extensionRegistry);
7049                 bitField0_ |= 0x00000040;
7050                 break;
7051               } // case 58
7052             case 64:
7053               {
7054                 int tmpRaw = input.readEnum();
7055                 ensureJobBenefitsIsMutable();
7056                 jobBenefits_.add(tmpRaw);
7057                 break;
7058               } // case 64
7059             case 66:
7060               {
7061                 int length = input.readRawVarint32();
7062                 int oldLimit = input.pushLimit(length);
7063                 while (input.getBytesUntilLimit() > 0) {
7064                   int tmpRaw = input.readEnum();
7065                   ensureJobBenefitsIsMutable();
7066                   jobBenefits_.add(tmpRaw);
7067                 }
7068                 input.popLimit(oldLimit);
7069                 break;
7070               } // case 66
7071             case 74:
7072               {
7073                 input.readMessage(
7074                     getCompensationInfoFieldBuilder().getBuilder(), extensionRegistry);
7075                 bitField0_ |= 0x00000100;
7076                 break;
7077               } // case 74
7078             case 82:
7079               {
7080                 com.google.protobuf.MapEntry<
7081                         java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
7082                     customAttributes__ =
7083                         input.readMessage(
7084                             CustomAttributesDefaultEntryHolder.defaultEntry.getParserForType(),
7085                             extensionRegistry);
7086                 internalGetMutableCustomAttributes()
7087                     .getMutableMap()
7088                     .put(customAttributes__.getKey(), customAttributes__.getValue());
7089                 bitField0_ |= 0x00000200;
7090                 break;
7091               } // case 82
7092             case 88:
7093               {
7094                 int tmpRaw = input.readEnum();
7095                 ensureDegreeTypesIsMutable();
7096                 degreeTypes_.add(tmpRaw);
7097                 break;
7098               } // case 88
7099             case 90:
7100               {
7101                 int length = input.readRawVarint32();
7102                 int oldLimit = input.pushLimit(length);
7103                 while (input.getBytesUntilLimit() > 0) {
7104                   int tmpRaw = input.readEnum();
7105                   ensureDegreeTypesIsMutable();
7106                   degreeTypes_.add(tmpRaw);
7107                 }
7108                 input.popLimit(oldLimit);
7109                 break;
7110               } // case 90
7111             case 98:
7112               {
7113                 department_ = input.readStringRequireUtf8();
7114                 bitField0_ |= 0x00000800;
7115                 break;
7116               } // case 98
7117             case 104:
7118               {
7119                 int tmpRaw = input.readEnum();
7120                 ensureEmploymentTypesIsMutable();
7121                 employmentTypes_.add(tmpRaw);
7122                 break;
7123               } // case 104
7124             case 106:
7125               {
7126                 int length = input.readRawVarint32();
7127                 int oldLimit = input.pushLimit(length);
7128                 while (input.getBytesUntilLimit() > 0) {
7129                   int tmpRaw = input.readEnum();
7130                   ensureEmploymentTypesIsMutable();
7131                   employmentTypes_.add(tmpRaw);
7132                 }
7133                 input.popLimit(oldLimit);
7134                 break;
7135               } // case 106
7136             case 114:
7137               {
7138                 incentives_ = input.readStringRequireUtf8();
7139                 bitField0_ |= 0x00002000;
7140                 break;
7141               } // case 114
7142             case 122:
7143               {
7144                 languageCode_ = input.readStringRequireUtf8();
7145                 bitField0_ |= 0x00004000;
7146                 break;
7147               } // case 122
7148             case 128:
7149               {
7150                 jobLevel_ = input.readEnum();
7151                 bitField0_ |= 0x00008000;
7152                 break;
7153               } // case 128
7154             case 136:
7155               {
7156                 promotionValue_ = input.readInt32();
7157                 bitField0_ |= 0x00010000;
7158                 break;
7159               } // case 136
7160             case 146:
7161               {
7162                 qualifications_ = input.readStringRequireUtf8();
7163                 bitField0_ |= 0x00020000;
7164                 break;
7165               } // case 146
7166             case 154:
7167               {
7168                 responsibilities_ = input.readStringRequireUtf8();
7169                 bitField0_ |= 0x00040000;
7170                 break;
7171               } // case 154
7172             case 160:
7173               {
7174                 postingRegion_ = input.readEnum();
7175                 bitField0_ |= 0x00080000;
7176                 break;
7177               } // case 160
7178             case 168:
7179               {
7180                 visibility_ = input.readEnum();
7181                 bitField0_ |= 0x00100000;
7182                 break;
7183               } // case 168
7184             case 178:
7185               {
7186                 input.readMessage(getJobStartTimeFieldBuilder().getBuilder(), extensionRegistry);
7187                 bitField0_ |= 0x00200000;
7188                 break;
7189               } // case 178
7190             case 186:
7191               {
7192                 input.readMessage(getJobEndTimeFieldBuilder().getBuilder(), extensionRegistry);
7193                 bitField0_ |= 0x00400000;
7194                 break;
7195               } // case 186
7196             case 194:
7197               {
7198                 input.readMessage(
7199                     getPostingPublishTimeFieldBuilder().getBuilder(), extensionRegistry);
7200                 bitField0_ |= 0x00800000;
7201                 break;
7202               } // case 194
7203             case 202:
7204               {
7205                 input.readMessage(
7206                     getPostingExpireTimeFieldBuilder().getBuilder(), extensionRegistry);
7207                 bitField0_ |= 0x01000000;
7208                 break;
7209               } // case 202
7210             case 210:
7211               {
7212                 input.readMessage(
7213                     getPostingCreateTimeFieldBuilder().getBuilder(), extensionRegistry);
7214                 bitField0_ |= 0x02000000;
7215                 break;
7216               } // case 210
7217             case 218:
7218               {
7219                 input.readMessage(
7220                     getPostingUpdateTimeFieldBuilder().getBuilder(), extensionRegistry);
7221                 bitField0_ |= 0x04000000;
7222                 break;
7223               } // case 218
7224             case 226:
7225               {
7226                 companyDisplayName_ = input.readStringRequireUtf8();
7227                 bitField0_ |= 0x08000000;
7228                 break;
7229               } // case 226
7230             case 234:
7231               {
7232                 input.readMessage(getDerivedInfoFieldBuilder().getBuilder(), extensionRegistry);
7233                 bitField0_ |= 0x10000000;
7234                 break;
7235               } // case 234
7236             case 242:
7237               {
7238                 input.readMessage(
7239                     getProcessingOptionsFieldBuilder().getBuilder(), extensionRegistry);
7240                 bitField0_ |= 0x20000000;
7241                 break;
7242               } // case 242
7243             default:
7244               {
7245                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
7246                   done = true; // was an endgroup tag
7247                 }
7248                 break;
7249               } // default:
7250           } // switch (tag)
7251         } // while (!done)
7252       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
7253         throw e.unwrapIOException();
7254       } finally {
7255         onChanged();
7256       } // finally
7257       return this;
7258     }
7259 
7260     private int bitField0_;
7261 
7262     private java.lang.Object name_ = "";
7263     /**
7264      *
7265      *
7266      * <pre>
7267      * Required during job update.
7268      * The resource name for the job. This is generated by the service when a
7269      * job is created.
7270      * The format is
7271      * "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}". For
7272      * example, "projects/foo/tenants/bar/jobs/baz".
7273      * Use of this field in job queries and API calls is preferred over the use of
7274      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] since this
7275      * value is unique.
7276      * </pre>
7277      *
7278      * <code>string name = 1;</code>
7279      *
7280      * @return The name.
7281      */
getName()7282     public java.lang.String getName() {
7283       java.lang.Object ref = name_;
7284       if (!(ref instanceof java.lang.String)) {
7285         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
7286         java.lang.String s = bs.toStringUtf8();
7287         name_ = s;
7288         return s;
7289       } else {
7290         return (java.lang.String) ref;
7291       }
7292     }
7293     /**
7294      *
7295      *
7296      * <pre>
7297      * Required during job update.
7298      * The resource name for the job. This is generated by the service when a
7299      * job is created.
7300      * The format is
7301      * "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}". For
7302      * example, "projects/foo/tenants/bar/jobs/baz".
7303      * Use of this field in job queries and API calls is preferred over the use of
7304      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] since this
7305      * value is unique.
7306      * </pre>
7307      *
7308      * <code>string name = 1;</code>
7309      *
7310      * @return The bytes for name.
7311      */
getNameBytes()7312     public com.google.protobuf.ByteString getNameBytes() {
7313       java.lang.Object ref = name_;
7314       if (ref instanceof String) {
7315         com.google.protobuf.ByteString b =
7316             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
7317         name_ = b;
7318         return b;
7319       } else {
7320         return (com.google.protobuf.ByteString) ref;
7321       }
7322     }
7323     /**
7324      *
7325      *
7326      * <pre>
7327      * Required during job update.
7328      * The resource name for the job. This is generated by the service when a
7329      * job is created.
7330      * The format is
7331      * "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}". For
7332      * example, "projects/foo/tenants/bar/jobs/baz".
7333      * Use of this field in job queries and API calls is preferred over the use of
7334      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] since this
7335      * value is unique.
7336      * </pre>
7337      *
7338      * <code>string name = 1;</code>
7339      *
7340      * @param value The name to set.
7341      * @return This builder for chaining.
7342      */
setName(java.lang.String value)7343     public Builder setName(java.lang.String value) {
7344       if (value == null) {
7345         throw new NullPointerException();
7346       }
7347       name_ = value;
7348       bitField0_ |= 0x00000001;
7349       onChanged();
7350       return this;
7351     }
7352     /**
7353      *
7354      *
7355      * <pre>
7356      * Required during job update.
7357      * The resource name for the job. This is generated by the service when a
7358      * job is created.
7359      * The format is
7360      * "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}". For
7361      * example, "projects/foo/tenants/bar/jobs/baz".
7362      * Use of this field in job queries and API calls is preferred over the use of
7363      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] since this
7364      * value is unique.
7365      * </pre>
7366      *
7367      * <code>string name = 1;</code>
7368      *
7369      * @return This builder for chaining.
7370      */
clearName()7371     public Builder clearName() {
7372       name_ = getDefaultInstance().getName();
7373       bitField0_ = (bitField0_ & ~0x00000001);
7374       onChanged();
7375       return this;
7376     }
7377     /**
7378      *
7379      *
7380      * <pre>
7381      * Required during job update.
7382      * The resource name for the job. This is generated by the service when a
7383      * job is created.
7384      * The format is
7385      * "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}". For
7386      * example, "projects/foo/tenants/bar/jobs/baz".
7387      * Use of this field in job queries and API calls is preferred over the use of
7388      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] since this
7389      * value is unique.
7390      * </pre>
7391      *
7392      * <code>string name = 1;</code>
7393      *
7394      * @param value The bytes for name to set.
7395      * @return This builder for chaining.
7396      */
setNameBytes(com.google.protobuf.ByteString value)7397     public Builder setNameBytes(com.google.protobuf.ByteString value) {
7398       if (value == null) {
7399         throw new NullPointerException();
7400       }
7401       checkByteStringIsUtf8(value);
7402       name_ = value;
7403       bitField0_ |= 0x00000001;
7404       onChanged();
7405       return this;
7406     }
7407 
7408     private java.lang.Object company_ = "";
7409     /**
7410      *
7411      *
7412      * <pre>
7413      * Required. The resource name of the company listing the job.
7414      * The format is
7415      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
7416      * example, "projects/foo/tenants/bar/companies/baz".
7417      * </pre>
7418      *
7419      * <code>
7420      * string company = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
7421      * </code>
7422      *
7423      * @return The company.
7424      */
getCompany()7425     public java.lang.String getCompany() {
7426       java.lang.Object ref = company_;
7427       if (!(ref instanceof java.lang.String)) {
7428         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
7429         java.lang.String s = bs.toStringUtf8();
7430         company_ = s;
7431         return s;
7432       } else {
7433         return (java.lang.String) ref;
7434       }
7435     }
7436     /**
7437      *
7438      *
7439      * <pre>
7440      * Required. The resource name of the company listing the job.
7441      * The format is
7442      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
7443      * example, "projects/foo/tenants/bar/companies/baz".
7444      * </pre>
7445      *
7446      * <code>
7447      * string company = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
7448      * </code>
7449      *
7450      * @return The bytes for company.
7451      */
getCompanyBytes()7452     public com.google.protobuf.ByteString getCompanyBytes() {
7453       java.lang.Object ref = company_;
7454       if (ref instanceof String) {
7455         com.google.protobuf.ByteString b =
7456             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
7457         company_ = b;
7458         return b;
7459       } else {
7460         return (com.google.protobuf.ByteString) ref;
7461       }
7462     }
7463     /**
7464      *
7465      *
7466      * <pre>
7467      * Required. The resource name of the company listing the job.
7468      * The format is
7469      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
7470      * example, "projects/foo/tenants/bar/companies/baz".
7471      * </pre>
7472      *
7473      * <code>
7474      * string company = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
7475      * </code>
7476      *
7477      * @param value The company to set.
7478      * @return This builder for chaining.
7479      */
setCompany(java.lang.String value)7480     public Builder setCompany(java.lang.String value) {
7481       if (value == null) {
7482         throw new NullPointerException();
7483       }
7484       company_ = value;
7485       bitField0_ |= 0x00000002;
7486       onChanged();
7487       return this;
7488     }
7489     /**
7490      *
7491      *
7492      * <pre>
7493      * Required. The resource name of the company listing the job.
7494      * The format is
7495      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
7496      * example, "projects/foo/tenants/bar/companies/baz".
7497      * </pre>
7498      *
7499      * <code>
7500      * string company = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
7501      * </code>
7502      *
7503      * @return This builder for chaining.
7504      */
clearCompany()7505     public Builder clearCompany() {
7506       company_ = getDefaultInstance().getCompany();
7507       bitField0_ = (bitField0_ & ~0x00000002);
7508       onChanged();
7509       return this;
7510     }
7511     /**
7512      *
7513      *
7514      * <pre>
7515      * Required. The resource name of the company listing the job.
7516      * The format is
7517      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
7518      * example, "projects/foo/tenants/bar/companies/baz".
7519      * </pre>
7520      *
7521      * <code>
7522      * string company = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
7523      * </code>
7524      *
7525      * @param value The bytes for company to set.
7526      * @return This builder for chaining.
7527      */
setCompanyBytes(com.google.protobuf.ByteString value)7528     public Builder setCompanyBytes(com.google.protobuf.ByteString value) {
7529       if (value == null) {
7530         throw new NullPointerException();
7531       }
7532       checkByteStringIsUtf8(value);
7533       company_ = value;
7534       bitField0_ |= 0x00000002;
7535       onChanged();
7536       return this;
7537     }
7538 
7539     private java.lang.Object requisitionId_ = "";
7540     /**
7541      *
7542      *
7543      * <pre>
7544      * Required. The requisition ID, also referred to as the posting ID, is
7545      * assigned by the client to identify a job. This field is intended to be used
7546      * by clients for client identification and tracking of postings. A job isn't
7547      * allowed to be created if there is another job with the same
7548      * [company][google.cloud.talent.v4.Job.name],
7549      * [language_code][google.cloud.talent.v4.Job.language_code] and
7550      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
7551      * The maximum number of allowed characters is 255.
7552      * </pre>
7553      *
7554      * <code>string requisition_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
7555      *
7556      * @return The requisitionId.
7557      */
getRequisitionId()7558     public java.lang.String getRequisitionId() {
7559       java.lang.Object ref = requisitionId_;
7560       if (!(ref instanceof java.lang.String)) {
7561         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
7562         java.lang.String s = bs.toStringUtf8();
7563         requisitionId_ = s;
7564         return s;
7565       } else {
7566         return (java.lang.String) ref;
7567       }
7568     }
7569     /**
7570      *
7571      *
7572      * <pre>
7573      * Required. The requisition ID, also referred to as the posting ID, is
7574      * assigned by the client to identify a job. This field is intended to be used
7575      * by clients for client identification and tracking of postings. A job isn't
7576      * allowed to be created if there is another job with the same
7577      * [company][google.cloud.talent.v4.Job.name],
7578      * [language_code][google.cloud.talent.v4.Job.language_code] and
7579      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
7580      * The maximum number of allowed characters is 255.
7581      * </pre>
7582      *
7583      * <code>string requisition_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
7584      *
7585      * @return The bytes for requisitionId.
7586      */
getRequisitionIdBytes()7587     public com.google.protobuf.ByteString getRequisitionIdBytes() {
7588       java.lang.Object ref = requisitionId_;
7589       if (ref instanceof String) {
7590         com.google.protobuf.ByteString b =
7591             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
7592         requisitionId_ = b;
7593         return b;
7594       } else {
7595         return (com.google.protobuf.ByteString) ref;
7596       }
7597     }
7598     /**
7599      *
7600      *
7601      * <pre>
7602      * Required. The requisition ID, also referred to as the posting ID, is
7603      * assigned by the client to identify a job. This field is intended to be used
7604      * by clients for client identification and tracking of postings. A job isn't
7605      * allowed to be created if there is another job with the same
7606      * [company][google.cloud.talent.v4.Job.name],
7607      * [language_code][google.cloud.talent.v4.Job.language_code] and
7608      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
7609      * The maximum number of allowed characters is 255.
7610      * </pre>
7611      *
7612      * <code>string requisition_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
7613      *
7614      * @param value The requisitionId to set.
7615      * @return This builder for chaining.
7616      */
setRequisitionId(java.lang.String value)7617     public Builder setRequisitionId(java.lang.String value) {
7618       if (value == null) {
7619         throw new NullPointerException();
7620       }
7621       requisitionId_ = value;
7622       bitField0_ |= 0x00000004;
7623       onChanged();
7624       return this;
7625     }
7626     /**
7627      *
7628      *
7629      * <pre>
7630      * Required. The requisition ID, also referred to as the posting ID, is
7631      * assigned by the client to identify a job. This field is intended to be used
7632      * by clients for client identification and tracking of postings. A job isn't
7633      * allowed to be created if there is another job with the same
7634      * [company][google.cloud.talent.v4.Job.name],
7635      * [language_code][google.cloud.talent.v4.Job.language_code] and
7636      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
7637      * The maximum number of allowed characters is 255.
7638      * </pre>
7639      *
7640      * <code>string requisition_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
7641      *
7642      * @return This builder for chaining.
7643      */
clearRequisitionId()7644     public Builder clearRequisitionId() {
7645       requisitionId_ = getDefaultInstance().getRequisitionId();
7646       bitField0_ = (bitField0_ & ~0x00000004);
7647       onChanged();
7648       return this;
7649     }
7650     /**
7651      *
7652      *
7653      * <pre>
7654      * Required. The requisition ID, also referred to as the posting ID, is
7655      * assigned by the client to identify a job. This field is intended to be used
7656      * by clients for client identification and tracking of postings. A job isn't
7657      * allowed to be created if there is another job with the same
7658      * [company][google.cloud.talent.v4.Job.name],
7659      * [language_code][google.cloud.talent.v4.Job.language_code] and
7660      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
7661      * The maximum number of allowed characters is 255.
7662      * </pre>
7663      *
7664      * <code>string requisition_id = 3 [(.google.api.field_behavior) = REQUIRED];</code>
7665      *
7666      * @param value The bytes for requisitionId to set.
7667      * @return This builder for chaining.
7668      */
setRequisitionIdBytes(com.google.protobuf.ByteString value)7669     public Builder setRequisitionIdBytes(com.google.protobuf.ByteString value) {
7670       if (value == null) {
7671         throw new NullPointerException();
7672       }
7673       checkByteStringIsUtf8(value);
7674       requisitionId_ = value;
7675       bitField0_ |= 0x00000004;
7676       onChanged();
7677       return this;
7678     }
7679 
7680     private java.lang.Object title_ = "";
7681     /**
7682      *
7683      *
7684      * <pre>
7685      * Required. The title of the job, such as "Software Engineer"
7686      * The maximum number of allowed characters is 500.
7687      * </pre>
7688      *
7689      * <code>string title = 4 [(.google.api.field_behavior) = REQUIRED];</code>
7690      *
7691      * @return The title.
7692      */
getTitle()7693     public java.lang.String getTitle() {
7694       java.lang.Object ref = title_;
7695       if (!(ref instanceof java.lang.String)) {
7696         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
7697         java.lang.String s = bs.toStringUtf8();
7698         title_ = s;
7699         return s;
7700       } else {
7701         return (java.lang.String) ref;
7702       }
7703     }
7704     /**
7705      *
7706      *
7707      * <pre>
7708      * Required. The title of the job, such as "Software Engineer"
7709      * The maximum number of allowed characters is 500.
7710      * </pre>
7711      *
7712      * <code>string title = 4 [(.google.api.field_behavior) = REQUIRED];</code>
7713      *
7714      * @return The bytes for title.
7715      */
getTitleBytes()7716     public com.google.protobuf.ByteString getTitleBytes() {
7717       java.lang.Object ref = title_;
7718       if (ref instanceof String) {
7719         com.google.protobuf.ByteString b =
7720             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
7721         title_ = b;
7722         return b;
7723       } else {
7724         return (com.google.protobuf.ByteString) ref;
7725       }
7726     }
7727     /**
7728      *
7729      *
7730      * <pre>
7731      * Required. The title of the job, such as "Software Engineer"
7732      * The maximum number of allowed characters is 500.
7733      * </pre>
7734      *
7735      * <code>string title = 4 [(.google.api.field_behavior) = REQUIRED];</code>
7736      *
7737      * @param value The title to set.
7738      * @return This builder for chaining.
7739      */
setTitle(java.lang.String value)7740     public Builder setTitle(java.lang.String value) {
7741       if (value == null) {
7742         throw new NullPointerException();
7743       }
7744       title_ = value;
7745       bitField0_ |= 0x00000008;
7746       onChanged();
7747       return this;
7748     }
7749     /**
7750      *
7751      *
7752      * <pre>
7753      * Required. The title of the job, such as "Software Engineer"
7754      * The maximum number of allowed characters is 500.
7755      * </pre>
7756      *
7757      * <code>string title = 4 [(.google.api.field_behavior) = REQUIRED];</code>
7758      *
7759      * @return This builder for chaining.
7760      */
clearTitle()7761     public Builder clearTitle() {
7762       title_ = getDefaultInstance().getTitle();
7763       bitField0_ = (bitField0_ & ~0x00000008);
7764       onChanged();
7765       return this;
7766     }
7767     /**
7768      *
7769      *
7770      * <pre>
7771      * Required. The title of the job, such as "Software Engineer"
7772      * The maximum number of allowed characters is 500.
7773      * </pre>
7774      *
7775      * <code>string title = 4 [(.google.api.field_behavior) = REQUIRED];</code>
7776      *
7777      * @param value The bytes for title to set.
7778      * @return This builder for chaining.
7779      */
setTitleBytes(com.google.protobuf.ByteString value)7780     public Builder setTitleBytes(com.google.protobuf.ByteString value) {
7781       if (value == null) {
7782         throw new NullPointerException();
7783       }
7784       checkByteStringIsUtf8(value);
7785       title_ = value;
7786       bitField0_ |= 0x00000008;
7787       onChanged();
7788       return this;
7789     }
7790 
7791     private java.lang.Object description_ = "";
7792     /**
7793      *
7794      *
7795      * <pre>
7796      * Required. The description of the job, which typically includes a
7797      * multi-paragraph description of the company and related information.
7798      * Separate fields are provided on the job object for
7799      * [responsibilities][google.cloud.talent.v4.Job.responsibilities],
7800      * [qualifications][google.cloud.talent.v4.Job.qualifications], and other job
7801      * characteristics. Use of these separate job fields is recommended.
7802      * This field accepts and sanitizes HTML input, and also accepts
7803      * bold, italic, ordered list, and unordered list markup tags.
7804      * The maximum number of allowed characters is 100,000.
7805      * </pre>
7806      *
7807      * <code>string description = 5 [(.google.api.field_behavior) = REQUIRED];</code>
7808      *
7809      * @return The description.
7810      */
getDescription()7811     public java.lang.String getDescription() {
7812       java.lang.Object ref = description_;
7813       if (!(ref instanceof java.lang.String)) {
7814         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
7815         java.lang.String s = bs.toStringUtf8();
7816         description_ = s;
7817         return s;
7818       } else {
7819         return (java.lang.String) ref;
7820       }
7821     }
7822     /**
7823      *
7824      *
7825      * <pre>
7826      * Required. The description of the job, which typically includes a
7827      * multi-paragraph description of the company and related information.
7828      * Separate fields are provided on the job object for
7829      * [responsibilities][google.cloud.talent.v4.Job.responsibilities],
7830      * [qualifications][google.cloud.talent.v4.Job.qualifications], and other job
7831      * characteristics. Use of these separate job fields is recommended.
7832      * This field accepts and sanitizes HTML input, and also accepts
7833      * bold, italic, ordered list, and unordered list markup tags.
7834      * The maximum number of allowed characters is 100,000.
7835      * </pre>
7836      *
7837      * <code>string description = 5 [(.google.api.field_behavior) = REQUIRED];</code>
7838      *
7839      * @return The bytes for description.
7840      */
getDescriptionBytes()7841     public com.google.protobuf.ByteString getDescriptionBytes() {
7842       java.lang.Object ref = description_;
7843       if (ref instanceof String) {
7844         com.google.protobuf.ByteString b =
7845             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
7846         description_ = b;
7847         return b;
7848       } else {
7849         return (com.google.protobuf.ByteString) ref;
7850       }
7851     }
7852     /**
7853      *
7854      *
7855      * <pre>
7856      * Required. The description of the job, which typically includes a
7857      * multi-paragraph description of the company and related information.
7858      * Separate fields are provided on the job object for
7859      * [responsibilities][google.cloud.talent.v4.Job.responsibilities],
7860      * [qualifications][google.cloud.talent.v4.Job.qualifications], and other job
7861      * characteristics. Use of these separate job fields is recommended.
7862      * This field accepts and sanitizes HTML input, and also accepts
7863      * bold, italic, ordered list, and unordered list markup tags.
7864      * The maximum number of allowed characters is 100,000.
7865      * </pre>
7866      *
7867      * <code>string description = 5 [(.google.api.field_behavior) = REQUIRED];</code>
7868      *
7869      * @param value The description to set.
7870      * @return This builder for chaining.
7871      */
setDescription(java.lang.String value)7872     public Builder setDescription(java.lang.String value) {
7873       if (value == null) {
7874         throw new NullPointerException();
7875       }
7876       description_ = value;
7877       bitField0_ |= 0x00000010;
7878       onChanged();
7879       return this;
7880     }
7881     /**
7882      *
7883      *
7884      * <pre>
7885      * Required. The description of the job, which typically includes a
7886      * multi-paragraph description of the company and related information.
7887      * Separate fields are provided on the job object for
7888      * [responsibilities][google.cloud.talent.v4.Job.responsibilities],
7889      * [qualifications][google.cloud.talent.v4.Job.qualifications], and other job
7890      * characteristics. Use of these separate job fields is recommended.
7891      * This field accepts and sanitizes HTML input, and also accepts
7892      * bold, italic, ordered list, and unordered list markup tags.
7893      * The maximum number of allowed characters is 100,000.
7894      * </pre>
7895      *
7896      * <code>string description = 5 [(.google.api.field_behavior) = REQUIRED];</code>
7897      *
7898      * @return This builder for chaining.
7899      */
clearDescription()7900     public Builder clearDescription() {
7901       description_ = getDefaultInstance().getDescription();
7902       bitField0_ = (bitField0_ & ~0x00000010);
7903       onChanged();
7904       return this;
7905     }
7906     /**
7907      *
7908      *
7909      * <pre>
7910      * Required. The description of the job, which typically includes a
7911      * multi-paragraph description of the company and related information.
7912      * Separate fields are provided on the job object for
7913      * [responsibilities][google.cloud.talent.v4.Job.responsibilities],
7914      * [qualifications][google.cloud.talent.v4.Job.qualifications], and other job
7915      * characteristics. Use of these separate job fields is recommended.
7916      * This field accepts and sanitizes HTML input, and also accepts
7917      * bold, italic, ordered list, and unordered list markup tags.
7918      * The maximum number of allowed characters is 100,000.
7919      * </pre>
7920      *
7921      * <code>string description = 5 [(.google.api.field_behavior) = REQUIRED];</code>
7922      *
7923      * @param value The bytes for description to set.
7924      * @return This builder for chaining.
7925      */
setDescriptionBytes(com.google.protobuf.ByteString value)7926     public Builder setDescriptionBytes(com.google.protobuf.ByteString value) {
7927       if (value == null) {
7928         throw new NullPointerException();
7929       }
7930       checkByteStringIsUtf8(value);
7931       description_ = value;
7932       bitField0_ |= 0x00000010;
7933       onChanged();
7934       return this;
7935     }
7936 
7937     private com.google.protobuf.LazyStringList addresses_ =
7938         com.google.protobuf.LazyStringArrayList.EMPTY;
7939 
ensureAddressesIsMutable()7940     private void ensureAddressesIsMutable() {
7941       if (!((bitField0_ & 0x00000020) != 0)) {
7942         addresses_ = new com.google.protobuf.LazyStringArrayList(addresses_);
7943         bitField0_ |= 0x00000020;
7944       }
7945     }
7946     /**
7947      *
7948      *
7949      * <pre>
7950      * Strongly recommended for the best service experience.
7951      * Location(s) where the employer is looking to hire for this job posting.
7952      * Specifying the full street address(es) of the hiring location enables
7953      * better API results, especially job searches by commute time.
7954      * At most 50 locations are allowed for best search performance. If a job has
7955      * more locations, it is suggested to split it into multiple jobs with unique
7956      * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
7957      * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
7958      * [company][google.cloud.talent.v4.Job.company],
7959      * [language_code][google.cloud.talent.v4.Job.language_code] and
7960      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
7961      * allowed. If the original
7962      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
7963      * preserved, a custom field should be used for storage. It is also suggested
7964      * to group the locations that close to each other in the same job for better
7965      * search experience.
7966      * Jobs with multiple addresses must have their addresses with the same
7967      * [LocationType][] to allow location filtering to work properly. (For
7968      * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
7969      * CA, USA" and "London, UK" may not have location filters applied correctly
7970      * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
7971      * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
7972      * addresses, it is suggested to split it into multiple jobs with same
7973      * LocationTypes.
7974      * The maximum number of allowed characters is 500.
7975      * </pre>
7976      *
7977      * <code>repeated string addresses = 6;</code>
7978      *
7979      * @return A list containing the addresses.
7980      */
getAddressesList()7981     public com.google.protobuf.ProtocolStringList getAddressesList() {
7982       return addresses_.getUnmodifiableView();
7983     }
7984     /**
7985      *
7986      *
7987      * <pre>
7988      * Strongly recommended for the best service experience.
7989      * Location(s) where the employer is looking to hire for this job posting.
7990      * Specifying the full street address(es) of the hiring location enables
7991      * better API results, especially job searches by commute time.
7992      * At most 50 locations are allowed for best search performance. If a job has
7993      * more locations, it is suggested to split it into multiple jobs with unique
7994      * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
7995      * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
7996      * [company][google.cloud.talent.v4.Job.company],
7997      * [language_code][google.cloud.talent.v4.Job.language_code] and
7998      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
7999      * allowed. If the original
8000      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
8001      * preserved, a custom field should be used for storage. It is also suggested
8002      * to group the locations that close to each other in the same job for better
8003      * search experience.
8004      * Jobs with multiple addresses must have their addresses with the same
8005      * [LocationType][] to allow location filtering to work properly. (For
8006      * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
8007      * CA, USA" and "London, UK" may not have location filters applied correctly
8008      * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
8009      * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
8010      * addresses, it is suggested to split it into multiple jobs with same
8011      * LocationTypes.
8012      * The maximum number of allowed characters is 500.
8013      * </pre>
8014      *
8015      * <code>repeated string addresses = 6;</code>
8016      *
8017      * @return The count of addresses.
8018      */
getAddressesCount()8019     public int getAddressesCount() {
8020       return addresses_.size();
8021     }
8022     /**
8023      *
8024      *
8025      * <pre>
8026      * Strongly recommended for the best service experience.
8027      * Location(s) where the employer is looking to hire for this job posting.
8028      * Specifying the full street address(es) of the hiring location enables
8029      * better API results, especially job searches by commute time.
8030      * At most 50 locations are allowed for best search performance. If a job has
8031      * more locations, it is suggested to split it into multiple jobs with unique
8032      * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
8033      * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
8034      * [company][google.cloud.talent.v4.Job.company],
8035      * [language_code][google.cloud.talent.v4.Job.language_code] and
8036      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
8037      * allowed. If the original
8038      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
8039      * preserved, a custom field should be used for storage. It is also suggested
8040      * to group the locations that close to each other in the same job for better
8041      * search experience.
8042      * Jobs with multiple addresses must have their addresses with the same
8043      * [LocationType][] to allow location filtering to work properly. (For
8044      * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
8045      * CA, USA" and "London, UK" may not have location filters applied correctly
8046      * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
8047      * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
8048      * addresses, it is suggested to split it into multiple jobs with same
8049      * LocationTypes.
8050      * The maximum number of allowed characters is 500.
8051      * </pre>
8052      *
8053      * <code>repeated string addresses = 6;</code>
8054      *
8055      * @param index The index of the element to return.
8056      * @return The addresses at the given index.
8057      */
getAddresses(int index)8058     public java.lang.String getAddresses(int index) {
8059       return addresses_.get(index);
8060     }
8061     /**
8062      *
8063      *
8064      * <pre>
8065      * Strongly recommended for the best service experience.
8066      * Location(s) where the employer is looking to hire for this job posting.
8067      * Specifying the full street address(es) of the hiring location enables
8068      * better API results, especially job searches by commute time.
8069      * At most 50 locations are allowed for best search performance. If a job has
8070      * more locations, it is suggested to split it into multiple jobs with unique
8071      * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
8072      * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
8073      * [company][google.cloud.talent.v4.Job.company],
8074      * [language_code][google.cloud.talent.v4.Job.language_code] and
8075      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
8076      * allowed. If the original
8077      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
8078      * preserved, a custom field should be used for storage. It is also suggested
8079      * to group the locations that close to each other in the same job for better
8080      * search experience.
8081      * Jobs with multiple addresses must have their addresses with the same
8082      * [LocationType][] to allow location filtering to work properly. (For
8083      * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
8084      * CA, USA" and "London, UK" may not have location filters applied correctly
8085      * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
8086      * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
8087      * addresses, it is suggested to split it into multiple jobs with same
8088      * LocationTypes.
8089      * The maximum number of allowed characters is 500.
8090      * </pre>
8091      *
8092      * <code>repeated string addresses = 6;</code>
8093      *
8094      * @param index The index of the value to return.
8095      * @return The bytes of the addresses at the given index.
8096      */
getAddressesBytes(int index)8097     public com.google.protobuf.ByteString getAddressesBytes(int index) {
8098       return addresses_.getByteString(index);
8099     }
8100     /**
8101      *
8102      *
8103      * <pre>
8104      * Strongly recommended for the best service experience.
8105      * Location(s) where the employer is looking to hire for this job posting.
8106      * Specifying the full street address(es) of the hiring location enables
8107      * better API results, especially job searches by commute time.
8108      * At most 50 locations are allowed for best search performance. If a job has
8109      * more locations, it is suggested to split it into multiple jobs with unique
8110      * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
8111      * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
8112      * [company][google.cloud.talent.v4.Job.company],
8113      * [language_code][google.cloud.talent.v4.Job.language_code] and
8114      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
8115      * allowed. If the original
8116      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
8117      * preserved, a custom field should be used for storage. It is also suggested
8118      * to group the locations that close to each other in the same job for better
8119      * search experience.
8120      * Jobs with multiple addresses must have their addresses with the same
8121      * [LocationType][] to allow location filtering to work properly. (For
8122      * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
8123      * CA, USA" and "London, UK" may not have location filters applied correctly
8124      * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
8125      * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
8126      * addresses, it is suggested to split it into multiple jobs with same
8127      * LocationTypes.
8128      * The maximum number of allowed characters is 500.
8129      * </pre>
8130      *
8131      * <code>repeated string addresses = 6;</code>
8132      *
8133      * @param index The index to set the value at.
8134      * @param value The addresses to set.
8135      * @return This builder for chaining.
8136      */
setAddresses(int index, java.lang.String value)8137     public Builder setAddresses(int index, java.lang.String value) {
8138       if (value == null) {
8139         throw new NullPointerException();
8140       }
8141       ensureAddressesIsMutable();
8142       addresses_.set(index, value);
8143       onChanged();
8144       return this;
8145     }
8146     /**
8147      *
8148      *
8149      * <pre>
8150      * Strongly recommended for the best service experience.
8151      * Location(s) where the employer is looking to hire for this job posting.
8152      * Specifying the full street address(es) of the hiring location enables
8153      * better API results, especially job searches by commute time.
8154      * At most 50 locations are allowed for best search performance. If a job has
8155      * more locations, it is suggested to split it into multiple jobs with unique
8156      * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
8157      * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
8158      * [company][google.cloud.talent.v4.Job.company],
8159      * [language_code][google.cloud.talent.v4.Job.language_code] and
8160      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
8161      * allowed. If the original
8162      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
8163      * preserved, a custom field should be used for storage. It is also suggested
8164      * to group the locations that close to each other in the same job for better
8165      * search experience.
8166      * Jobs with multiple addresses must have their addresses with the same
8167      * [LocationType][] to allow location filtering to work properly. (For
8168      * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
8169      * CA, USA" and "London, UK" may not have location filters applied correctly
8170      * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
8171      * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
8172      * addresses, it is suggested to split it into multiple jobs with same
8173      * LocationTypes.
8174      * The maximum number of allowed characters is 500.
8175      * </pre>
8176      *
8177      * <code>repeated string addresses = 6;</code>
8178      *
8179      * @param value The addresses to add.
8180      * @return This builder for chaining.
8181      */
addAddresses(java.lang.String value)8182     public Builder addAddresses(java.lang.String value) {
8183       if (value == null) {
8184         throw new NullPointerException();
8185       }
8186       ensureAddressesIsMutable();
8187       addresses_.add(value);
8188       onChanged();
8189       return this;
8190     }
8191     /**
8192      *
8193      *
8194      * <pre>
8195      * Strongly recommended for the best service experience.
8196      * Location(s) where the employer is looking to hire for this job posting.
8197      * Specifying the full street address(es) of the hiring location enables
8198      * better API results, especially job searches by commute time.
8199      * At most 50 locations are allowed for best search performance. If a job has
8200      * more locations, it is suggested to split it into multiple jobs with unique
8201      * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
8202      * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
8203      * [company][google.cloud.talent.v4.Job.company],
8204      * [language_code][google.cloud.talent.v4.Job.language_code] and
8205      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
8206      * allowed. If the original
8207      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
8208      * preserved, a custom field should be used for storage. It is also suggested
8209      * to group the locations that close to each other in the same job for better
8210      * search experience.
8211      * Jobs with multiple addresses must have their addresses with the same
8212      * [LocationType][] to allow location filtering to work properly. (For
8213      * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
8214      * CA, USA" and "London, UK" may not have location filters applied correctly
8215      * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
8216      * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
8217      * addresses, it is suggested to split it into multiple jobs with same
8218      * LocationTypes.
8219      * The maximum number of allowed characters is 500.
8220      * </pre>
8221      *
8222      * <code>repeated string addresses = 6;</code>
8223      *
8224      * @param values The addresses to add.
8225      * @return This builder for chaining.
8226      */
addAllAddresses(java.lang.Iterable<java.lang.String> values)8227     public Builder addAllAddresses(java.lang.Iterable<java.lang.String> values) {
8228       ensureAddressesIsMutable();
8229       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, addresses_);
8230       onChanged();
8231       return this;
8232     }
8233     /**
8234      *
8235      *
8236      * <pre>
8237      * Strongly recommended for the best service experience.
8238      * Location(s) where the employer is looking to hire for this job posting.
8239      * Specifying the full street address(es) of the hiring location enables
8240      * better API results, especially job searches by commute time.
8241      * At most 50 locations are allowed for best search performance. If a job has
8242      * more locations, it is suggested to split it into multiple jobs with unique
8243      * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
8244      * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
8245      * [company][google.cloud.talent.v4.Job.company],
8246      * [language_code][google.cloud.talent.v4.Job.language_code] and
8247      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
8248      * allowed. If the original
8249      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
8250      * preserved, a custom field should be used for storage. It is also suggested
8251      * to group the locations that close to each other in the same job for better
8252      * search experience.
8253      * Jobs with multiple addresses must have their addresses with the same
8254      * [LocationType][] to allow location filtering to work properly. (For
8255      * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
8256      * CA, USA" and "London, UK" may not have location filters applied correctly
8257      * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
8258      * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
8259      * addresses, it is suggested to split it into multiple jobs with same
8260      * LocationTypes.
8261      * The maximum number of allowed characters is 500.
8262      * </pre>
8263      *
8264      * <code>repeated string addresses = 6;</code>
8265      *
8266      * @return This builder for chaining.
8267      */
clearAddresses()8268     public Builder clearAddresses() {
8269       addresses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
8270       bitField0_ = (bitField0_ & ~0x00000020);
8271       onChanged();
8272       return this;
8273     }
8274     /**
8275      *
8276      *
8277      * <pre>
8278      * Strongly recommended for the best service experience.
8279      * Location(s) where the employer is looking to hire for this job posting.
8280      * Specifying the full street address(es) of the hiring location enables
8281      * better API results, especially job searches by commute time.
8282      * At most 50 locations are allowed for best search performance. If a job has
8283      * more locations, it is suggested to split it into multiple jobs with unique
8284      * [requisition_id][google.cloud.talent.v4.Job.requisition_id]s (e.g. 'ReqA'
8285      * becomes 'ReqA-1', 'ReqA-2', and so on.) as multiple jobs with the same
8286      * [company][google.cloud.talent.v4.Job.company],
8287      * [language_code][google.cloud.talent.v4.Job.language_code] and
8288      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] are not
8289      * allowed. If the original
8290      * [requisition_id][google.cloud.talent.v4.Job.requisition_id] must be
8291      * preserved, a custom field should be used for storage. It is also suggested
8292      * to group the locations that close to each other in the same job for better
8293      * search experience.
8294      * Jobs with multiple addresses must have their addresses with the same
8295      * [LocationType][] to allow location filtering to work properly. (For
8296      * example, a Job with addresses "1600 Amphitheatre Parkway, Mountain View,
8297      * CA, USA" and "London, UK" may not have location filters applied correctly
8298      * at search time since the first is a [LocationType.STREET_ADDRESS][] and the
8299      * second is a [LocationType.LOCALITY][].) If a job needs to have multiple
8300      * addresses, it is suggested to split it into multiple jobs with same
8301      * LocationTypes.
8302      * The maximum number of allowed characters is 500.
8303      * </pre>
8304      *
8305      * <code>repeated string addresses = 6;</code>
8306      *
8307      * @param value The bytes of the addresses to add.
8308      * @return This builder for chaining.
8309      */
addAddressesBytes(com.google.protobuf.ByteString value)8310     public Builder addAddressesBytes(com.google.protobuf.ByteString value) {
8311       if (value == null) {
8312         throw new NullPointerException();
8313       }
8314       checkByteStringIsUtf8(value);
8315       ensureAddressesIsMutable();
8316       addresses_.add(value);
8317       onChanged();
8318       return this;
8319     }
8320 
8321     private com.google.cloud.talent.v4.Job.ApplicationInfo applicationInfo_;
8322     private com.google.protobuf.SingleFieldBuilderV3<
8323             com.google.cloud.talent.v4.Job.ApplicationInfo,
8324             com.google.cloud.talent.v4.Job.ApplicationInfo.Builder,
8325             com.google.cloud.talent.v4.Job.ApplicationInfoOrBuilder>
8326         applicationInfoBuilder_;
8327     /**
8328      *
8329      *
8330      * <pre>
8331      * Job application information.
8332      * </pre>
8333      *
8334      * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
8335      *
8336      * @return Whether the applicationInfo field is set.
8337      */
hasApplicationInfo()8338     public boolean hasApplicationInfo() {
8339       return ((bitField0_ & 0x00000040) != 0);
8340     }
8341     /**
8342      *
8343      *
8344      * <pre>
8345      * Job application information.
8346      * </pre>
8347      *
8348      * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
8349      *
8350      * @return The applicationInfo.
8351      */
getApplicationInfo()8352     public com.google.cloud.talent.v4.Job.ApplicationInfo getApplicationInfo() {
8353       if (applicationInfoBuilder_ == null) {
8354         return applicationInfo_ == null
8355             ? com.google.cloud.talent.v4.Job.ApplicationInfo.getDefaultInstance()
8356             : applicationInfo_;
8357       } else {
8358         return applicationInfoBuilder_.getMessage();
8359       }
8360     }
8361     /**
8362      *
8363      *
8364      * <pre>
8365      * Job application information.
8366      * </pre>
8367      *
8368      * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
8369      */
setApplicationInfo(com.google.cloud.talent.v4.Job.ApplicationInfo value)8370     public Builder setApplicationInfo(com.google.cloud.talent.v4.Job.ApplicationInfo value) {
8371       if (applicationInfoBuilder_ == null) {
8372         if (value == null) {
8373           throw new NullPointerException();
8374         }
8375         applicationInfo_ = value;
8376       } else {
8377         applicationInfoBuilder_.setMessage(value);
8378       }
8379       bitField0_ |= 0x00000040;
8380       onChanged();
8381       return this;
8382     }
8383     /**
8384      *
8385      *
8386      * <pre>
8387      * Job application information.
8388      * </pre>
8389      *
8390      * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
8391      */
setApplicationInfo( com.google.cloud.talent.v4.Job.ApplicationInfo.Builder builderForValue)8392     public Builder setApplicationInfo(
8393         com.google.cloud.talent.v4.Job.ApplicationInfo.Builder builderForValue) {
8394       if (applicationInfoBuilder_ == null) {
8395         applicationInfo_ = builderForValue.build();
8396       } else {
8397         applicationInfoBuilder_.setMessage(builderForValue.build());
8398       }
8399       bitField0_ |= 0x00000040;
8400       onChanged();
8401       return this;
8402     }
8403     /**
8404      *
8405      *
8406      * <pre>
8407      * Job application information.
8408      * </pre>
8409      *
8410      * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
8411      */
mergeApplicationInfo(com.google.cloud.talent.v4.Job.ApplicationInfo value)8412     public Builder mergeApplicationInfo(com.google.cloud.talent.v4.Job.ApplicationInfo value) {
8413       if (applicationInfoBuilder_ == null) {
8414         if (((bitField0_ & 0x00000040) != 0)
8415             && applicationInfo_ != null
8416             && applicationInfo_
8417                 != com.google.cloud.talent.v4.Job.ApplicationInfo.getDefaultInstance()) {
8418           getApplicationInfoBuilder().mergeFrom(value);
8419         } else {
8420           applicationInfo_ = value;
8421         }
8422       } else {
8423         applicationInfoBuilder_.mergeFrom(value);
8424       }
8425       bitField0_ |= 0x00000040;
8426       onChanged();
8427       return this;
8428     }
8429     /**
8430      *
8431      *
8432      * <pre>
8433      * Job application information.
8434      * </pre>
8435      *
8436      * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
8437      */
clearApplicationInfo()8438     public Builder clearApplicationInfo() {
8439       bitField0_ = (bitField0_ & ~0x00000040);
8440       applicationInfo_ = null;
8441       if (applicationInfoBuilder_ != null) {
8442         applicationInfoBuilder_.dispose();
8443         applicationInfoBuilder_ = null;
8444       }
8445       onChanged();
8446       return this;
8447     }
8448     /**
8449      *
8450      *
8451      * <pre>
8452      * Job application information.
8453      * </pre>
8454      *
8455      * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
8456      */
getApplicationInfoBuilder()8457     public com.google.cloud.talent.v4.Job.ApplicationInfo.Builder getApplicationInfoBuilder() {
8458       bitField0_ |= 0x00000040;
8459       onChanged();
8460       return getApplicationInfoFieldBuilder().getBuilder();
8461     }
8462     /**
8463      *
8464      *
8465      * <pre>
8466      * Job application information.
8467      * </pre>
8468      *
8469      * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
8470      */
getApplicationInfoOrBuilder()8471     public com.google.cloud.talent.v4.Job.ApplicationInfoOrBuilder getApplicationInfoOrBuilder() {
8472       if (applicationInfoBuilder_ != null) {
8473         return applicationInfoBuilder_.getMessageOrBuilder();
8474       } else {
8475         return applicationInfo_ == null
8476             ? com.google.cloud.talent.v4.Job.ApplicationInfo.getDefaultInstance()
8477             : applicationInfo_;
8478       }
8479     }
8480     /**
8481      *
8482      *
8483      * <pre>
8484      * Job application information.
8485      * </pre>
8486      *
8487      * <code>.google.cloud.talent.v4.Job.ApplicationInfo application_info = 7;</code>
8488      */
8489     private com.google.protobuf.SingleFieldBuilderV3<
8490             com.google.cloud.talent.v4.Job.ApplicationInfo,
8491             com.google.cloud.talent.v4.Job.ApplicationInfo.Builder,
8492             com.google.cloud.talent.v4.Job.ApplicationInfoOrBuilder>
getApplicationInfoFieldBuilder()8493         getApplicationInfoFieldBuilder() {
8494       if (applicationInfoBuilder_ == null) {
8495         applicationInfoBuilder_ =
8496             new com.google.protobuf.SingleFieldBuilderV3<
8497                 com.google.cloud.talent.v4.Job.ApplicationInfo,
8498                 com.google.cloud.talent.v4.Job.ApplicationInfo.Builder,
8499                 com.google.cloud.talent.v4.Job.ApplicationInfoOrBuilder>(
8500                 getApplicationInfo(), getParentForChildren(), isClean());
8501         applicationInfo_ = null;
8502       }
8503       return applicationInfoBuilder_;
8504     }
8505 
8506     private java.util.List<java.lang.Integer> jobBenefits_ = java.util.Collections.emptyList();
8507 
ensureJobBenefitsIsMutable()8508     private void ensureJobBenefitsIsMutable() {
8509       if (!((bitField0_ & 0x00000080) != 0)) {
8510         jobBenefits_ = new java.util.ArrayList<java.lang.Integer>(jobBenefits_);
8511         bitField0_ |= 0x00000080;
8512       }
8513     }
8514     /**
8515      *
8516      *
8517      * <pre>
8518      * The benefits included with the job.
8519      * </pre>
8520      *
8521      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8522      *
8523      * @return A list containing the jobBenefits.
8524      */
getJobBenefitsList()8525     public java.util.List<com.google.cloud.talent.v4.JobBenefit> getJobBenefitsList() {
8526       return new com.google.protobuf.Internal.ListAdapter<
8527           java.lang.Integer, com.google.cloud.talent.v4.JobBenefit>(
8528           jobBenefits_, jobBenefits_converter_);
8529     }
8530     /**
8531      *
8532      *
8533      * <pre>
8534      * The benefits included with the job.
8535      * </pre>
8536      *
8537      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8538      *
8539      * @return The count of jobBenefits.
8540      */
getJobBenefitsCount()8541     public int getJobBenefitsCount() {
8542       return jobBenefits_.size();
8543     }
8544     /**
8545      *
8546      *
8547      * <pre>
8548      * The benefits included with the job.
8549      * </pre>
8550      *
8551      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8552      *
8553      * @param index The index of the element to return.
8554      * @return The jobBenefits at the given index.
8555      */
getJobBenefits(int index)8556     public com.google.cloud.talent.v4.JobBenefit getJobBenefits(int index) {
8557       return jobBenefits_converter_.convert(jobBenefits_.get(index));
8558     }
8559     /**
8560      *
8561      *
8562      * <pre>
8563      * The benefits included with the job.
8564      * </pre>
8565      *
8566      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8567      *
8568      * @param index The index to set the value at.
8569      * @param value The jobBenefits to set.
8570      * @return This builder for chaining.
8571      */
setJobBenefits(int index, com.google.cloud.talent.v4.JobBenefit value)8572     public Builder setJobBenefits(int index, com.google.cloud.talent.v4.JobBenefit value) {
8573       if (value == null) {
8574         throw new NullPointerException();
8575       }
8576       ensureJobBenefitsIsMutable();
8577       jobBenefits_.set(index, value.getNumber());
8578       onChanged();
8579       return this;
8580     }
8581     /**
8582      *
8583      *
8584      * <pre>
8585      * The benefits included with the job.
8586      * </pre>
8587      *
8588      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8589      *
8590      * @param value The jobBenefits to add.
8591      * @return This builder for chaining.
8592      */
addJobBenefits(com.google.cloud.talent.v4.JobBenefit value)8593     public Builder addJobBenefits(com.google.cloud.talent.v4.JobBenefit value) {
8594       if (value == null) {
8595         throw new NullPointerException();
8596       }
8597       ensureJobBenefitsIsMutable();
8598       jobBenefits_.add(value.getNumber());
8599       onChanged();
8600       return this;
8601     }
8602     /**
8603      *
8604      *
8605      * <pre>
8606      * The benefits included with the job.
8607      * </pre>
8608      *
8609      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8610      *
8611      * @param values The jobBenefits to add.
8612      * @return This builder for chaining.
8613      */
addAllJobBenefits( java.lang.Iterable<? extends com.google.cloud.talent.v4.JobBenefit> values)8614     public Builder addAllJobBenefits(
8615         java.lang.Iterable<? extends com.google.cloud.talent.v4.JobBenefit> values) {
8616       ensureJobBenefitsIsMutable();
8617       for (com.google.cloud.talent.v4.JobBenefit value : values) {
8618         jobBenefits_.add(value.getNumber());
8619       }
8620       onChanged();
8621       return this;
8622     }
8623     /**
8624      *
8625      *
8626      * <pre>
8627      * The benefits included with the job.
8628      * </pre>
8629      *
8630      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8631      *
8632      * @return This builder for chaining.
8633      */
clearJobBenefits()8634     public Builder clearJobBenefits() {
8635       jobBenefits_ = java.util.Collections.emptyList();
8636       bitField0_ = (bitField0_ & ~0x00000080);
8637       onChanged();
8638       return this;
8639     }
8640     /**
8641      *
8642      *
8643      * <pre>
8644      * The benefits included with the job.
8645      * </pre>
8646      *
8647      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8648      *
8649      * @return A list containing the enum numeric values on the wire for jobBenefits.
8650      */
getJobBenefitsValueList()8651     public java.util.List<java.lang.Integer> getJobBenefitsValueList() {
8652       return java.util.Collections.unmodifiableList(jobBenefits_);
8653     }
8654     /**
8655      *
8656      *
8657      * <pre>
8658      * The benefits included with the job.
8659      * </pre>
8660      *
8661      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8662      *
8663      * @param index The index of the value to return.
8664      * @return The enum numeric value on the wire of jobBenefits at the given index.
8665      */
getJobBenefitsValue(int index)8666     public int getJobBenefitsValue(int index) {
8667       return jobBenefits_.get(index);
8668     }
8669     /**
8670      *
8671      *
8672      * <pre>
8673      * The benefits included with the job.
8674      * </pre>
8675      *
8676      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8677      *
8678      * @param index The index to set the value at.
8679      * @param value The enum numeric value on the wire for jobBenefits to set.
8680      * @return This builder for chaining.
8681      */
setJobBenefitsValue(int index, int value)8682     public Builder setJobBenefitsValue(int index, int value) {
8683       ensureJobBenefitsIsMutable();
8684       jobBenefits_.set(index, value);
8685       onChanged();
8686       return this;
8687     }
8688     /**
8689      *
8690      *
8691      * <pre>
8692      * The benefits included with the job.
8693      * </pre>
8694      *
8695      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8696      *
8697      * @param value The enum numeric value on the wire for jobBenefits to add.
8698      * @return This builder for chaining.
8699      */
addJobBenefitsValue(int value)8700     public Builder addJobBenefitsValue(int value) {
8701       ensureJobBenefitsIsMutable();
8702       jobBenefits_.add(value);
8703       onChanged();
8704       return this;
8705     }
8706     /**
8707      *
8708      *
8709      * <pre>
8710      * The benefits included with the job.
8711      * </pre>
8712      *
8713      * <code>repeated .google.cloud.talent.v4.JobBenefit job_benefits = 8;</code>
8714      *
8715      * @param values The enum numeric values on the wire for jobBenefits to add.
8716      * @return This builder for chaining.
8717      */
addAllJobBenefitsValue(java.lang.Iterable<java.lang.Integer> values)8718     public Builder addAllJobBenefitsValue(java.lang.Iterable<java.lang.Integer> values) {
8719       ensureJobBenefitsIsMutable();
8720       for (int value : values) {
8721         jobBenefits_.add(value);
8722       }
8723       onChanged();
8724       return this;
8725     }
8726 
8727     private com.google.cloud.talent.v4.CompensationInfo compensationInfo_;
8728     private com.google.protobuf.SingleFieldBuilderV3<
8729             com.google.cloud.talent.v4.CompensationInfo,
8730             com.google.cloud.talent.v4.CompensationInfo.Builder,
8731             com.google.cloud.talent.v4.CompensationInfoOrBuilder>
8732         compensationInfoBuilder_;
8733     /**
8734      *
8735      *
8736      * <pre>
8737      * Job compensation information (a.k.a. "pay rate") i.e., the compensation
8738      * that will paid to the employee.
8739      * </pre>
8740      *
8741      * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
8742      *
8743      * @return Whether the compensationInfo field is set.
8744      */
hasCompensationInfo()8745     public boolean hasCompensationInfo() {
8746       return ((bitField0_ & 0x00000100) != 0);
8747     }
8748     /**
8749      *
8750      *
8751      * <pre>
8752      * Job compensation information (a.k.a. "pay rate") i.e., the compensation
8753      * that will paid to the employee.
8754      * </pre>
8755      *
8756      * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
8757      *
8758      * @return The compensationInfo.
8759      */
getCompensationInfo()8760     public com.google.cloud.talent.v4.CompensationInfo getCompensationInfo() {
8761       if (compensationInfoBuilder_ == null) {
8762         return compensationInfo_ == null
8763             ? com.google.cloud.talent.v4.CompensationInfo.getDefaultInstance()
8764             : compensationInfo_;
8765       } else {
8766         return compensationInfoBuilder_.getMessage();
8767       }
8768     }
8769     /**
8770      *
8771      *
8772      * <pre>
8773      * Job compensation information (a.k.a. "pay rate") i.e., the compensation
8774      * that will paid to the employee.
8775      * </pre>
8776      *
8777      * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
8778      */
setCompensationInfo(com.google.cloud.talent.v4.CompensationInfo value)8779     public Builder setCompensationInfo(com.google.cloud.talent.v4.CompensationInfo value) {
8780       if (compensationInfoBuilder_ == null) {
8781         if (value == null) {
8782           throw new NullPointerException();
8783         }
8784         compensationInfo_ = value;
8785       } else {
8786         compensationInfoBuilder_.setMessage(value);
8787       }
8788       bitField0_ |= 0x00000100;
8789       onChanged();
8790       return this;
8791     }
8792     /**
8793      *
8794      *
8795      * <pre>
8796      * Job compensation information (a.k.a. "pay rate") i.e., the compensation
8797      * that will paid to the employee.
8798      * </pre>
8799      *
8800      * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
8801      */
setCompensationInfo( com.google.cloud.talent.v4.CompensationInfo.Builder builderForValue)8802     public Builder setCompensationInfo(
8803         com.google.cloud.talent.v4.CompensationInfo.Builder builderForValue) {
8804       if (compensationInfoBuilder_ == null) {
8805         compensationInfo_ = builderForValue.build();
8806       } else {
8807         compensationInfoBuilder_.setMessage(builderForValue.build());
8808       }
8809       bitField0_ |= 0x00000100;
8810       onChanged();
8811       return this;
8812     }
8813     /**
8814      *
8815      *
8816      * <pre>
8817      * Job compensation information (a.k.a. "pay rate") i.e., the compensation
8818      * that will paid to the employee.
8819      * </pre>
8820      *
8821      * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
8822      */
mergeCompensationInfo(com.google.cloud.talent.v4.CompensationInfo value)8823     public Builder mergeCompensationInfo(com.google.cloud.talent.v4.CompensationInfo value) {
8824       if (compensationInfoBuilder_ == null) {
8825         if (((bitField0_ & 0x00000100) != 0)
8826             && compensationInfo_ != null
8827             && compensationInfo_
8828                 != com.google.cloud.talent.v4.CompensationInfo.getDefaultInstance()) {
8829           getCompensationInfoBuilder().mergeFrom(value);
8830         } else {
8831           compensationInfo_ = value;
8832         }
8833       } else {
8834         compensationInfoBuilder_.mergeFrom(value);
8835       }
8836       bitField0_ |= 0x00000100;
8837       onChanged();
8838       return this;
8839     }
8840     /**
8841      *
8842      *
8843      * <pre>
8844      * Job compensation information (a.k.a. "pay rate") i.e., the compensation
8845      * that will paid to the employee.
8846      * </pre>
8847      *
8848      * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
8849      */
clearCompensationInfo()8850     public Builder clearCompensationInfo() {
8851       bitField0_ = (bitField0_ & ~0x00000100);
8852       compensationInfo_ = null;
8853       if (compensationInfoBuilder_ != null) {
8854         compensationInfoBuilder_.dispose();
8855         compensationInfoBuilder_ = null;
8856       }
8857       onChanged();
8858       return this;
8859     }
8860     /**
8861      *
8862      *
8863      * <pre>
8864      * Job compensation information (a.k.a. "pay rate") i.e., the compensation
8865      * that will paid to the employee.
8866      * </pre>
8867      *
8868      * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
8869      */
getCompensationInfoBuilder()8870     public com.google.cloud.talent.v4.CompensationInfo.Builder getCompensationInfoBuilder() {
8871       bitField0_ |= 0x00000100;
8872       onChanged();
8873       return getCompensationInfoFieldBuilder().getBuilder();
8874     }
8875     /**
8876      *
8877      *
8878      * <pre>
8879      * Job compensation information (a.k.a. "pay rate") i.e., the compensation
8880      * that will paid to the employee.
8881      * </pre>
8882      *
8883      * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
8884      */
getCompensationInfoOrBuilder()8885     public com.google.cloud.talent.v4.CompensationInfoOrBuilder getCompensationInfoOrBuilder() {
8886       if (compensationInfoBuilder_ != null) {
8887         return compensationInfoBuilder_.getMessageOrBuilder();
8888       } else {
8889         return compensationInfo_ == null
8890             ? com.google.cloud.talent.v4.CompensationInfo.getDefaultInstance()
8891             : compensationInfo_;
8892       }
8893     }
8894     /**
8895      *
8896      *
8897      * <pre>
8898      * Job compensation information (a.k.a. "pay rate") i.e., the compensation
8899      * that will paid to the employee.
8900      * </pre>
8901      *
8902      * <code>.google.cloud.talent.v4.CompensationInfo compensation_info = 9;</code>
8903      */
8904     private com.google.protobuf.SingleFieldBuilderV3<
8905             com.google.cloud.talent.v4.CompensationInfo,
8906             com.google.cloud.talent.v4.CompensationInfo.Builder,
8907             com.google.cloud.talent.v4.CompensationInfoOrBuilder>
getCompensationInfoFieldBuilder()8908         getCompensationInfoFieldBuilder() {
8909       if (compensationInfoBuilder_ == null) {
8910         compensationInfoBuilder_ =
8911             new com.google.protobuf.SingleFieldBuilderV3<
8912                 com.google.cloud.talent.v4.CompensationInfo,
8913                 com.google.cloud.talent.v4.CompensationInfo.Builder,
8914                 com.google.cloud.talent.v4.CompensationInfoOrBuilder>(
8915                 getCompensationInfo(), getParentForChildren(), isClean());
8916         compensationInfo_ = null;
8917       }
8918       return compensationInfoBuilder_;
8919     }
8920 
8921     private com.google.protobuf.MapField<
8922             java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
8923         customAttributes_;
8924 
8925     private com.google.protobuf.MapField<
8926             java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
internalGetCustomAttributes()8927         internalGetCustomAttributes() {
8928       if (customAttributes_ == null) {
8929         return com.google.protobuf.MapField.emptyMapField(
8930             CustomAttributesDefaultEntryHolder.defaultEntry);
8931       }
8932       return customAttributes_;
8933     }
8934 
8935     private com.google.protobuf.MapField<
8936             java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
internalGetMutableCustomAttributes()8937         internalGetMutableCustomAttributes() {
8938       if (customAttributes_ == null) {
8939         customAttributes_ =
8940             com.google.protobuf.MapField.newMapField(
8941                 CustomAttributesDefaultEntryHolder.defaultEntry);
8942       }
8943       if (!customAttributes_.isMutable()) {
8944         customAttributes_ = customAttributes_.copy();
8945       }
8946       bitField0_ |= 0x00000200;
8947       onChanged();
8948       return customAttributes_;
8949     }
8950 
getCustomAttributesCount()8951     public int getCustomAttributesCount() {
8952       return internalGetCustomAttributes().getMap().size();
8953     }
8954     /**
8955      *
8956      *
8957      * <pre>
8958      * A map of fields to hold both filterable and non-filterable custom job
8959      * attributes that are not covered by the provided structured fields.
8960      * The keys of the map are strings up to 64 bytes and must match the
8961      * pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, key0LikeThis or
8962      * KEY_1_LIKE_THIS.
8963      * At most 100 filterable and at most 100 unfilterable keys are supported.
8964      * For filterable `string_values`, across all keys at most 200 values are
8965      * allowed, with each string no more than 255 characters. For unfilterable
8966      * `string_values`, the maximum total size of `string_values` across all keys
8967      * is 50KB.
8968      * </pre>
8969      *
8970      * <code>map&lt;string, .google.cloud.talent.v4.CustomAttribute&gt; custom_attributes = 10;
8971      * </code>
8972      */
8973     @java.lang.Override
containsCustomAttributes(java.lang.String key)8974     public boolean containsCustomAttributes(java.lang.String key) {
8975       if (key == null) {
8976         throw new NullPointerException("map key");
8977       }
8978       return internalGetCustomAttributes().getMap().containsKey(key);
8979     }
8980     /** Use {@link #getCustomAttributesMap()} instead. */
8981     @java.lang.Override
8982     @java.lang.Deprecated
8983     public java.util.Map<java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
getCustomAttributes()8984         getCustomAttributes() {
8985       return getCustomAttributesMap();
8986     }
8987     /**
8988      *
8989      *
8990      * <pre>
8991      * A map of fields to hold both filterable and non-filterable custom job
8992      * attributes that are not covered by the provided structured fields.
8993      * The keys of the map are strings up to 64 bytes and must match the
8994      * pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, key0LikeThis or
8995      * KEY_1_LIKE_THIS.
8996      * At most 100 filterable and at most 100 unfilterable keys are supported.
8997      * For filterable `string_values`, across all keys at most 200 values are
8998      * allowed, with each string no more than 255 characters. For unfilterable
8999      * `string_values`, the maximum total size of `string_values` across all keys
9000      * is 50KB.
9001      * </pre>
9002      *
9003      * <code>map&lt;string, .google.cloud.talent.v4.CustomAttribute&gt; custom_attributes = 10;
9004      * </code>
9005      */
9006     @java.lang.Override
9007     public java.util.Map<java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
getCustomAttributesMap()9008         getCustomAttributesMap() {
9009       return internalGetCustomAttributes().getMap();
9010     }
9011     /**
9012      *
9013      *
9014      * <pre>
9015      * A map of fields to hold both filterable and non-filterable custom job
9016      * attributes that are not covered by the provided structured fields.
9017      * The keys of the map are strings up to 64 bytes and must match the
9018      * pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, key0LikeThis or
9019      * KEY_1_LIKE_THIS.
9020      * At most 100 filterable and at most 100 unfilterable keys are supported.
9021      * For filterable `string_values`, across all keys at most 200 values are
9022      * allowed, with each string no more than 255 characters. For unfilterable
9023      * `string_values`, the maximum total size of `string_values` across all keys
9024      * is 50KB.
9025      * </pre>
9026      *
9027      * <code>map&lt;string, .google.cloud.talent.v4.CustomAttribute&gt; custom_attributes = 10;
9028      * </code>
9029      */
9030     @java.lang.Override
getCustomAttributesOrDefault( java.lang.String key, com.google.cloud.talent.v4.CustomAttribute defaultValue)9031     public /* nullable */ com.google.cloud.talent.v4.CustomAttribute getCustomAttributesOrDefault(
9032         java.lang.String key,
9033         /* nullable */
9034         com.google.cloud.talent.v4.CustomAttribute defaultValue) {
9035       if (key == null) {
9036         throw new NullPointerException("map key");
9037       }
9038       java.util.Map<java.lang.String, com.google.cloud.talent.v4.CustomAttribute> map =
9039           internalGetCustomAttributes().getMap();
9040       return map.containsKey(key) ? map.get(key) : defaultValue;
9041     }
9042     /**
9043      *
9044      *
9045      * <pre>
9046      * A map of fields to hold both filterable and non-filterable custom job
9047      * attributes that are not covered by the provided structured fields.
9048      * The keys of the map are strings up to 64 bytes and must match the
9049      * pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, key0LikeThis or
9050      * KEY_1_LIKE_THIS.
9051      * At most 100 filterable and at most 100 unfilterable keys are supported.
9052      * For filterable `string_values`, across all keys at most 200 values are
9053      * allowed, with each string no more than 255 characters. For unfilterable
9054      * `string_values`, the maximum total size of `string_values` across all keys
9055      * is 50KB.
9056      * </pre>
9057      *
9058      * <code>map&lt;string, .google.cloud.talent.v4.CustomAttribute&gt; custom_attributes = 10;
9059      * </code>
9060      */
9061     @java.lang.Override
getCustomAttributesOrThrow( java.lang.String key)9062     public com.google.cloud.talent.v4.CustomAttribute getCustomAttributesOrThrow(
9063         java.lang.String key) {
9064       if (key == null) {
9065         throw new NullPointerException("map key");
9066       }
9067       java.util.Map<java.lang.String, com.google.cloud.talent.v4.CustomAttribute> map =
9068           internalGetCustomAttributes().getMap();
9069       if (!map.containsKey(key)) {
9070         throw new java.lang.IllegalArgumentException();
9071       }
9072       return map.get(key);
9073     }
9074 
clearCustomAttributes()9075     public Builder clearCustomAttributes() {
9076       bitField0_ = (bitField0_ & ~0x00000200);
9077       internalGetMutableCustomAttributes().getMutableMap().clear();
9078       return this;
9079     }
9080     /**
9081      *
9082      *
9083      * <pre>
9084      * A map of fields to hold both filterable and non-filterable custom job
9085      * attributes that are not covered by the provided structured fields.
9086      * The keys of the map are strings up to 64 bytes and must match the
9087      * pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, key0LikeThis or
9088      * KEY_1_LIKE_THIS.
9089      * At most 100 filterable and at most 100 unfilterable keys are supported.
9090      * For filterable `string_values`, across all keys at most 200 values are
9091      * allowed, with each string no more than 255 characters. For unfilterable
9092      * `string_values`, the maximum total size of `string_values` across all keys
9093      * is 50KB.
9094      * </pre>
9095      *
9096      * <code>map&lt;string, .google.cloud.talent.v4.CustomAttribute&gt; custom_attributes = 10;
9097      * </code>
9098      */
removeCustomAttributes(java.lang.String key)9099     public Builder removeCustomAttributes(java.lang.String key) {
9100       if (key == null) {
9101         throw new NullPointerException("map key");
9102       }
9103       internalGetMutableCustomAttributes().getMutableMap().remove(key);
9104       return this;
9105     }
9106     /** Use alternate mutation accessors instead. */
9107     @java.lang.Deprecated
9108     public java.util.Map<java.lang.String, com.google.cloud.talent.v4.CustomAttribute>
getMutableCustomAttributes()9109         getMutableCustomAttributes() {
9110       bitField0_ |= 0x00000200;
9111       return internalGetMutableCustomAttributes().getMutableMap();
9112     }
9113     /**
9114      *
9115      *
9116      * <pre>
9117      * A map of fields to hold both filterable and non-filterable custom job
9118      * attributes that are not covered by the provided structured fields.
9119      * The keys of the map are strings up to 64 bytes and must match the
9120      * pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, key0LikeThis or
9121      * KEY_1_LIKE_THIS.
9122      * At most 100 filterable and at most 100 unfilterable keys are supported.
9123      * For filterable `string_values`, across all keys at most 200 values are
9124      * allowed, with each string no more than 255 characters. For unfilterable
9125      * `string_values`, the maximum total size of `string_values` across all keys
9126      * is 50KB.
9127      * </pre>
9128      *
9129      * <code>map&lt;string, .google.cloud.talent.v4.CustomAttribute&gt; custom_attributes = 10;
9130      * </code>
9131      */
putCustomAttributes( java.lang.String key, com.google.cloud.talent.v4.CustomAttribute value)9132     public Builder putCustomAttributes(
9133         java.lang.String key, com.google.cloud.talent.v4.CustomAttribute value) {
9134       if (key == null) {
9135         throw new NullPointerException("map key");
9136       }
9137       if (value == null) {
9138         throw new NullPointerException("map value");
9139       }
9140       internalGetMutableCustomAttributes().getMutableMap().put(key, value);
9141       bitField0_ |= 0x00000200;
9142       return this;
9143     }
9144     /**
9145      *
9146      *
9147      * <pre>
9148      * A map of fields to hold both filterable and non-filterable custom job
9149      * attributes that are not covered by the provided structured fields.
9150      * The keys of the map are strings up to 64 bytes and must match the
9151      * pattern: `[a-zA-Z][a-zA-Z0-9_]*`. For example, key0LikeThis or
9152      * KEY_1_LIKE_THIS.
9153      * At most 100 filterable and at most 100 unfilterable keys are supported.
9154      * For filterable `string_values`, across all keys at most 200 values are
9155      * allowed, with each string no more than 255 characters. For unfilterable
9156      * `string_values`, the maximum total size of `string_values` across all keys
9157      * is 50KB.
9158      * </pre>
9159      *
9160      * <code>map&lt;string, .google.cloud.talent.v4.CustomAttribute&gt; custom_attributes = 10;
9161      * </code>
9162      */
putAllCustomAttributes( java.util.Map<java.lang.String, com.google.cloud.talent.v4.CustomAttribute> values)9163     public Builder putAllCustomAttributes(
9164         java.util.Map<java.lang.String, com.google.cloud.talent.v4.CustomAttribute> values) {
9165       internalGetMutableCustomAttributes().getMutableMap().putAll(values);
9166       bitField0_ |= 0x00000200;
9167       return this;
9168     }
9169 
9170     private java.util.List<java.lang.Integer> degreeTypes_ = java.util.Collections.emptyList();
9171 
ensureDegreeTypesIsMutable()9172     private void ensureDegreeTypesIsMutable() {
9173       if (!((bitField0_ & 0x00000400) != 0)) {
9174         degreeTypes_ = new java.util.ArrayList<java.lang.Integer>(degreeTypes_);
9175         bitField0_ |= 0x00000400;
9176       }
9177     }
9178     /**
9179      *
9180      *
9181      * <pre>
9182      * The desired education degrees for the job, such as Bachelors, Masters.
9183      * </pre>
9184      *
9185      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9186      *
9187      * @return A list containing the degreeTypes.
9188      */
getDegreeTypesList()9189     public java.util.List<com.google.cloud.talent.v4.DegreeType> getDegreeTypesList() {
9190       return new com.google.protobuf.Internal.ListAdapter<
9191           java.lang.Integer, com.google.cloud.talent.v4.DegreeType>(
9192           degreeTypes_, degreeTypes_converter_);
9193     }
9194     /**
9195      *
9196      *
9197      * <pre>
9198      * The desired education degrees for the job, such as Bachelors, Masters.
9199      * </pre>
9200      *
9201      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9202      *
9203      * @return The count of degreeTypes.
9204      */
getDegreeTypesCount()9205     public int getDegreeTypesCount() {
9206       return degreeTypes_.size();
9207     }
9208     /**
9209      *
9210      *
9211      * <pre>
9212      * The desired education degrees for the job, such as Bachelors, Masters.
9213      * </pre>
9214      *
9215      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9216      *
9217      * @param index The index of the element to return.
9218      * @return The degreeTypes at the given index.
9219      */
getDegreeTypes(int index)9220     public com.google.cloud.talent.v4.DegreeType getDegreeTypes(int index) {
9221       return degreeTypes_converter_.convert(degreeTypes_.get(index));
9222     }
9223     /**
9224      *
9225      *
9226      * <pre>
9227      * The desired education degrees for the job, such as Bachelors, Masters.
9228      * </pre>
9229      *
9230      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9231      *
9232      * @param index The index to set the value at.
9233      * @param value The degreeTypes to set.
9234      * @return This builder for chaining.
9235      */
setDegreeTypes(int index, com.google.cloud.talent.v4.DegreeType value)9236     public Builder setDegreeTypes(int index, com.google.cloud.talent.v4.DegreeType value) {
9237       if (value == null) {
9238         throw new NullPointerException();
9239       }
9240       ensureDegreeTypesIsMutable();
9241       degreeTypes_.set(index, value.getNumber());
9242       onChanged();
9243       return this;
9244     }
9245     /**
9246      *
9247      *
9248      * <pre>
9249      * The desired education degrees for the job, such as Bachelors, Masters.
9250      * </pre>
9251      *
9252      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9253      *
9254      * @param value The degreeTypes to add.
9255      * @return This builder for chaining.
9256      */
addDegreeTypes(com.google.cloud.talent.v4.DegreeType value)9257     public Builder addDegreeTypes(com.google.cloud.talent.v4.DegreeType value) {
9258       if (value == null) {
9259         throw new NullPointerException();
9260       }
9261       ensureDegreeTypesIsMutable();
9262       degreeTypes_.add(value.getNumber());
9263       onChanged();
9264       return this;
9265     }
9266     /**
9267      *
9268      *
9269      * <pre>
9270      * The desired education degrees for the job, such as Bachelors, Masters.
9271      * </pre>
9272      *
9273      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9274      *
9275      * @param values The degreeTypes to add.
9276      * @return This builder for chaining.
9277      */
addAllDegreeTypes( java.lang.Iterable<? extends com.google.cloud.talent.v4.DegreeType> values)9278     public Builder addAllDegreeTypes(
9279         java.lang.Iterable<? extends com.google.cloud.talent.v4.DegreeType> values) {
9280       ensureDegreeTypesIsMutable();
9281       for (com.google.cloud.talent.v4.DegreeType value : values) {
9282         degreeTypes_.add(value.getNumber());
9283       }
9284       onChanged();
9285       return this;
9286     }
9287     /**
9288      *
9289      *
9290      * <pre>
9291      * The desired education degrees for the job, such as Bachelors, Masters.
9292      * </pre>
9293      *
9294      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9295      *
9296      * @return This builder for chaining.
9297      */
clearDegreeTypes()9298     public Builder clearDegreeTypes() {
9299       degreeTypes_ = java.util.Collections.emptyList();
9300       bitField0_ = (bitField0_ & ~0x00000400);
9301       onChanged();
9302       return this;
9303     }
9304     /**
9305      *
9306      *
9307      * <pre>
9308      * The desired education degrees for the job, such as Bachelors, Masters.
9309      * </pre>
9310      *
9311      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9312      *
9313      * @return A list containing the enum numeric values on the wire for degreeTypes.
9314      */
getDegreeTypesValueList()9315     public java.util.List<java.lang.Integer> getDegreeTypesValueList() {
9316       return java.util.Collections.unmodifiableList(degreeTypes_);
9317     }
9318     /**
9319      *
9320      *
9321      * <pre>
9322      * The desired education degrees for the job, such as Bachelors, Masters.
9323      * </pre>
9324      *
9325      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9326      *
9327      * @param index The index of the value to return.
9328      * @return The enum numeric value on the wire of degreeTypes at the given index.
9329      */
getDegreeTypesValue(int index)9330     public int getDegreeTypesValue(int index) {
9331       return degreeTypes_.get(index);
9332     }
9333     /**
9334      *
9335      *
9336      * <pre>
9337      * The desired education degrees for the job, such as Bachelors, Masters.
9338      * </pre>
9339      *
9340      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9341      *
9342      * @param index The index to set the value at.
9343      * @param value The enum numeric value on the wire for degreeTypes to set.
9344      * @return This builder for chaining.
9345      */
setDegreeTypesValue(int index, int value)9346     public Builder setDegreeTypesValue(int index, int value) {
9347       ensureDegreeTypesIsMutable();
9348       degreeTypes_.set(index, value);
9349       onChanged();
9350       return this;
9351     }
9352     /**
9353      *
9354      *
9355      * <pre>
9356      * The desired education degrees for the job, such as Bachelors, Masters.
9357      * </pre>
9358      *
9359      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9360      *
9361      * @param value The enum numeric value on the wire for degreeTypes to add.
9362      * @return This builder for chaining.
9363      */
addDegreeTypesValue(int value)9364     public Builder addDegreeTypesValue(int value) {
9365       ensureDegreeTypesIsMutable();
9366       degreeTypes_.add(value);
9367       onChanged();
9368       return this;
9369     }
9370     /**
9371      *
9372      *
9373      * <pre>
9374      * The desired education degrees for the job, such as Bachelors, Masters.
9375      * </pre>
9376      *
9377      * <code>repeated .google.cloud.talent.v4.DegreeType degree_types = 11;</code>
9378      *
9379      * @param values The enum numeric values on the wire for degreeTypes to add.
9380      * @return This builder for chaining.
9381      */
addAllDegreeTypesValue(java.lang.Iterable<java.lang.Integer> values)9382     public Builder addAllDegreeTypesValue(java.lang.Iterable<java.lang.Integer> values) {
9383       ensureDegreeTypesIsMutable();
9384       for (int value : values) {
9385         degreeTypes_.add(value);
9386       }
9387       onChanged();
9388       return this;
9389     }
9390 
9391     private java.lang.Object department_ = "";
9392     /**
9393      *
9394      *
9395      * <pre>
9396      * The department or functional area within the company with the open
9397      * position.
9398      * The maximum number of allowed characters is 255.
9399      * </pre>
9400      *
9401      * <code>string department = 12;</code>
9402      *
9403      * @return The department.
9404      */
getDepartment()9405     public java.lang.String getDepartment() {
9406       java.lang.Object ref = department_;
9407       if (!(ref instanceof java.lang.String)) {
9408         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
9409         java.lang.String s = bs.toStringUtf8();
9410         department_ = s;
9411         return s;
9412       } else {
9413         return (java.lang.String) ref;
9414       }
9415     }
9416     /**
9417      *
9418      *
9419      * <pre>
9420      * The department or functional area within the company with the open
9421      * position.
9422      * The maximum number of allowed characters is 255.
9423      * </pre>
9424      *
9425      * <code>string department = 12;</code>
9426      *
9427      * @return The bytes for department.
9428      */
getDepartmentBytes()9429     public com.google.protobuf.ByteString getDepartmentBytes() {
9430       java.lang.Object ref = department_;
9431       if (ref instanceof String) {
9432         com.google.protobuf.ByteString b =
9433             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
9434         department_ = b;
9435         return b;
9436       } else {
9437         return (com.google.protobuf.ByteString) ref;
9438       }
9439     }
9440     /**
9441      *
9442      *
9443      * <pre>
9444      * The department or functional area within the company with the open
9445      * position.
9446      * The maximum number of allowed characters is 255.
9447      * </pre>
9448      *
9449      * <code>string department = 12;</code>
9450      *
9451      * @param value The department to set.
9452      * @return This builder for chaining.
9453      */
setDepartment(java.lang.String value)9454     public Builder setDepartment(java.lang.String value) {
9455       if (value == null) {
9456         throw new NullPointerException();
9457       }
9458       department_ = value;
9459       bitField0_ |= 0x00000800;
9460       onChanged();
9461       return this;
9462     }
9463     /**
9464      *
9465      *
9466      * <pre>
9467      * The department or functional area within the company with the open
9468      * position.
9469      * The maximum number of allowed characters is 255.
9470      * </pre>
9471      *
9472      * <code>string department = 12;</code>
9473      *
9474      * @return This builder for chaining.
9475      */
clearDepartment()9476     public Builder clearDepartment() {
9477       department_ = getDefaultInstance().getDepartment();
9478       bitField0_ = (bitField0_ & ~0x00000800);
9479       onChanged();
9480       return this;
9481     }
9482     /**
9483      *
9484      *
9485      * <pre>
9486      * The department or functional area within the company with the open
9487      * position.
9488      * The maximum number of allowed characters is 255.
9489      * </pre>
9490      *
9491      * <code>string department = 12;</code>
9492      *
9493      * @param value The bytes for department to set.
9494      * @return This builder for chaining.
9495      */
setDepartmentBytes(com.google.protobuf.ByteString value)9496     public Builder setDepartmentBytes(com.google.protobuf.ByteString value) {
9497       if (value == null) {
9498         throw new NullPointerException();
9499       }
9500       checkByteStringIsUtf8(value);
9501       department_ = value;
9502       bitField0_ |= 0x00000800;
9503       onChanged();
9504       return this;
9505     }
9506 
9507     private java.util.List<java.lang.Integer> employmentTypes_ = java.util.Collections.emptyList();
9508 
ensureEmploymentTypesIsMutable()9509     private void ensureEmploymentTypesIsMutable() {
9510       if (!((bitField0_ & 0x00001000) != 0)) {
9511         employmentTypes_ = new java.util.ArrayList<java.lang.Integer>(employmentTypes_);
9512         bitField0_ |= 0x00001000;
9513       }
9514     }
9515     /**
9516      *
9517      *
9518      * <pre>
9519      * The employment type(s) of a job, for example,
9520      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9521      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9522      * </pre>
9523      *
9524      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9525      *
9526      * @return A list containing the employmentTypes.
9527      */
getEmploymentTypesList()9528     public java.util.List<com.google.cloud.talent.v4.EmploymentType> getEmploymentTypesList() {
9529       return new com.google.protobuf.Internal.ListAdapter<
9530           java.lang.Integer, com.google.cloud.talent.v4.EmploymentType>(
9531           employmentTypes_, employmentTypes_converter_);
9532     }
9533     /**
9534      *
9535      *
9536      * <pre>
9537      * The employment type(s) of a job, for example,
9538      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9539      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9540      * </pre>
9541      *
9542      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9543      *
9544      * @return The count of employmentTypes.
9545      */
getEmploymentTypesCount()9546     public int getEmploymentTypesCount() {
9547       return employmentTypes_.size();
9548     }
9549     /**
9550      *
9551      *
9552      * <pre>
9553      * The employment type(s) of a job, for example,
9554      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9555      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9556      * </pre>
9557      *
9558      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9559      *
9560      * @param index The index of the element to return.
9561      * @return The employmentTypes at the given index.
9562      */
getEmploymentTypes(int index)9563     public com.google.cloud.talent.v4.EmploymentType getEmploymentTypes(int index) {
9564       return employmentTypes_converter_.convert(employmentTypes_.get(index));
9565     }
9566     /**
9567      *
9568      *
9569      * <pre>
9570      * The employment type(s) of a job, for example,
9571      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9572      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9573      * </pre>
9574      *
9575      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9576      *
9577      * @param index The index to set the value at.
9578      * @param value The employmentTypes to set.
9579      * @return This builder for chaining.
9580      */
setEmploymentTypes(int index, com.google.cloud.talent.v4.EmploymentType value)9581     public Builder setEmploymentTypes(int index, com.google.cloud.talent.v4.EmploymentType value) {
9582       if (value == null) {
9583         throw new NullPointerException();
9584       }
9585       ensureEmploymentTypesIsMutable();
9586       employmentTypes_.set(index, value.getNumber());
9587       onChanged();
9588       return this;
9589     }
9590     /**
9591      *
9592      *
9593      * <pre>
9594      * The employment type(s) of a job, for example,
9595      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9596      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9597      * </pre>
9598      *
9599      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9600      *
9601      * @param value The employmentTypes to add.
9602      * @return This builder for chaining.
9603      */
addEmploymentTypes(com.google.cloud.talent.v4.EmploymentType value)9604     public Builder addEmploymentTypes(com.google.cloud.talent.v4.EmploymentType value) {
9605       if (value == null) {
9606         throw new NullPointerException();
9607       }
9608       ensureEmploymentTypesIsMutable();
9609       employmentTypes_.add(value.getNumber());
9610       onChanged();
9611       return this;
9612     }
9613     /**
9614      *
9615      *
9616      * <pre>
9617      * The employment type(s) of a job, for example,
9618      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9619      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9620      * </pre>
9621      *
9622      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9623      *
9624      * @param values The employmentTypes to add.
9625      * @return This builder for chaining.
9626      */
addAllEmploymentTypes( java.lang.Iterable<? extends com.google.cloud.talent.v4.EmploymentType> values)9627     public Builder addAllEmploymentTypes(
9628         java.lang.Iterable<? extends com.google.cloud.talent.v4.EmploymentType> values) {
9629       ensureEmploymentTypesIsMutable();
9630       for (com.google.cloud.talent.v4.EmploymentType value : values) {
9631         employmentTypes_.add(value.getNumber());
9632       }
9633       onChanged();
9634       return this;
9635     }
9636     /**
9637      *
9638      *
9639      * <pre>
9640      * The employment type(s) of a job, for example,
9641      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9642      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9643      * </pre>
9644      *
9645      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9646      *
9647      * @return This builder for chaining.
9648      */
clearEmploymentTypes()9649     public Builder clearEmploymentTypes() {
9650       employmentTypes_ = java.util.Collections.emptyList();
9651       bitField0_ = (bitField0_ & ~0x00001000);
9652       onChanged();
9653       return this;
9654     }
9655     /**
9656      *
9657      *
9658      * <pre>
9659      * The employment type(s) of a job, for example,
9660      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9661      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9662      * </pre>
9663      *
9664      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9665      *
9666      * @return A list containing the enum numeric values on the wire for employmentTypes.
9667      */
getEmploymentTypesValueList()9668     public java.util.List<java.lang.Integer> getEmploymentTypesValueList() {
9669       return java.util.Collections.unmodifiableList(employmentTypes_);
9670     }
9671     /**
9672      *
9673      *
9674      * <pre>
9675      * The employment type(s) of a job, for example,
9676      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9677      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9678      * </pre>
9679      *
9680      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9681      *
9682      * @param index The index of the value to return.
9683      * @return The enum numeric value on the wire of employmentTypes at the given index.
9684      */
getEmploymentTypesValue(int index)9685     public int getEmploymentTypesValue(int index) {
9686       return employmentTypes_.get(index);
9687     }
9688     /**
9689      *
9690      *
9691      * <pre>
9692      * The employment type(s) of a job, for example,
9693      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9694      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9695      * </pre>
9696      *
9697      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9698      *
9699      * @param index The index to set the value at.
9700      * @param value The enum numeric value on the wire for employmentTypes to set.
9701      * @return This builder for chaining.
9702      */
setEmploymentTypesValue(int index, int value)9703     public Builder setEmploymentTypesValue(int index, int value) {
9704       ensureEmploymentTypesIsMutable();
9705       employmentTypes_.set(index, value);
9706       onChanged();
9707       return this;
9708     }
9709     /**
9710      *
9711      *
9712      * <pre>
9713      * The employment type(s) of a job, for example,
9714      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9715      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9716      * </pre>
9717      *
9718      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9719      *
9720      * @param value The enum numeric value on the wire for employmentTypes to add.
9721      * @return This builder for chaining.
9722      */
addEmploymentTypesValue(int value)9723     public Builder addEmploymentTypesValue(int value) {
9724       ensureEmploymentTypesIsMutable();
9725       employmentTypes_.add(value);
9726       onChanged();
9727       return this;
9728     }
9729     /**
9730      *
9731      *
9732      * <pre>
9733      * The employment type(s) of a job, for example,
9734      * [full time][google.cloud.talent.v4.EmploymentType.FULL_TIME] or
9735      * [part time][google.cloud.talent.v4.EmploymentType.PART_TIME].
9736      * </pre>
9737      *
9738      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 13;</code>
9739      *
9740      * @param values The enum numeric values on the wire for employmentTypes to add.
9741      * @return This builder for chaining.
9742      */
addAllEmploymentTypesValue(java.lang.Iterable<java.lang.Integer> values)9743     public Builder addAllEmploymentTypesValue(java.lang.Iterable<java.lang.Integer> values) {
9744       ensureEmploymentTypesIsMutable();
9745       for (int value : values) {
9746         employmentTypes_.add(value);
9747       }
9748       onChanged();
9749       return this;
9750     }
9751 
9752     private java.lang.Object incentives_ = "";
9753     /**
9754      *
9755      *
9756      * <pre>
9757      * A description of bonus, commission, and other compensation
9758      * incentives associated with the job not including salary or pay.
9759      * The maximum number of allowed characters is 10,000.
9760      * </pre>
9761      *
9762      * <code>string incentives = 14;</code>
9763      *
9764      * @return The incentives.
9765      */
getIncentives()9766     public java.lang.String getIncentives() {
9767       java.lang.Object ref = incentives_;
9768       if (!(ref instanceof java.lang.String)) {
9769         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
9770         java.lang.String s = bs.toStringUtf8();
9771         incentives_ = s;
9772         return s;
9773       } else {
9774         return (java.lang.String) ref;
9775       }
9776     }
9777     /**
9778      *
9779      *
9780      * <pre>
9781      * A description of bonus, commission, and other compensation
9782      * incentives associated with the job not including salary or pay.
9783      * The maximum number of allowed characters is 10,000.
9784      * </pre>
9785      *
9786      * <code>string incentives = 14;</code>
9787      *
9788      * @return The bytes for incentives.
9789      */
getIncentivesBytes()9790     public com.google.protobuf.ByteString getIncentivesBytes() {
9791       java.lang.Object ref = incentives_;
9792       if (ref instanceof String) {
9793         com.google.protobuf.ByteString b =
9794             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
9795         incentives_ = b;
9796         return b;
9797       } else {
9798         return (com.google.protobuf.ByteString) ref;
9799       }
9800     }
9801     /**
9802      *
9803      *
9804      * <pre>
9805      * A description of bonus, commission, and other compensation
9806      * incentives associated with the job not including salary or pay.
9807      * The maximum number of allowed characters is 10,000.
9808      * </pre>
9809      *
9810      * <code>string incentives = 14;</code>
9811      *
9812      * @param value The incentives to set.
9813      * @return This builder for chaining.
9814      */
setIncentives(java.lang.String value)9815     public Builder setIncentives(java.lang.String value) {
9816       if (value == null) {
9817         throw new NullPointerException();
9818       }
9819       incentives_ = value;
9820       bitField0_ |= 0x00002000;
9821       onChanged();
9822       return this;
9823     }
9824     /**
9825      *
9826      *
9827      * <pre>
9828      * A description of bonus, commission, and other compensation
9829      * incentives associated with the job not including salary or pay.
9830      * The maximum number of allowed characters is 10,000.
9831      * </pre>
9832      *
9833      * <code>string incentives = 14;</code>
9834      *
9835      * @return This builder for chaining.
9836      */
clearIncentives()9837     public Builder clearIncentives() {
9838       incentives_ = getDefaultInstance().getIncentives();
9839       bitField0_ = (bitField0_ & ~0x00002000);
9840       onChanged();
9841       return this;
9842     }
9843     /**
9844      *
9845      *
9846      * <pre>
9847      * A description of bonus, commission, and other compensation
9848      * incentives associated with the job not including salary or pay.
9849      * The maximum number of allowed characters is 10,000.
9850      * </pre>
9851      *
9852      * <code>string incentives = 14;</code>
9853      *
9854      * @param value The bytes for incentives to set.
9855      * @return This builder for chaining.
9856      */
setIncentivesBytes(com.google.protobuf.ByteString value)9857     public Builder setIncentivesBytes(com.google.protobuf.ByteString value) {
9858       if (value == null) {
9859         throw new NullPointerException();
9860       }
9861       checkByteStringIsUtf8(value);
9862       incentives_ = value;
9863       bitField0_ |= 0x00002000;
9864       onChanged();
9865       return this;
9866     }
9867 
9868     private java.lang.Object languageCode_ = "";
9869     /**
9870      *
9871      *
9872      * <pre>
9873      * The language of the posting. This field is distinct from
9874      * any requirements for fluency that are associated with the job.
9875      * Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
9876      * For more information, see
9877      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
9878      * class="external" target="_blank" }.
9879      * If this field is unspecified and
9880      * [Job.description][google.cloud.talent.v4.Job.description] is present,
9881      * detected language code based on
9882      * [Job.description][google.cloud.talent.v4.Job.description] is assigned,
9883      * otherwise defaults to 'en_US'.
9884      * </pre>
9885      *
9886      * <code>string language_code = 15;</code>
9887      *
9888      * @return The languageCode.
9889      */
getLanguageCode()9890     public java.lang.String getLanguageCode() {
9891       java.lang.Object ref = languageCode_;
9892       if (!(ref instanceof java.lang.String)) {
9893         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
9894         java.lang.String s = bs.toStringUtf8();
9895         languageCode_ = s;
9896         return s;
9897       } else {
9898         return (java.lang.String) ref;
9899       }
9900     }
9901     /**
9902      *
9903      *
9904      * <pre>
9905      * The language of the posting. This field is distinct from
9906      * any requirements for fluency that are associated with the job.
9907      * Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
9908      * For more information, see
9909      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
9910      * class="external" target="_blank" }.
9911      * If this field is unspecified and
9912      * [Job.description][google.cloud.talent.v4.Job.description] is present,
9913      * detected language code based on
9914      * [Job.description][google.cloud.talent.v4.Job.description] is assigned,
9915      * otherwise defaults to 'en_US'.
9916      * </pre>
9917      *
9918      * <code>string language_code = 15;</code>
9919      *
9920      * @return The bytes for languageCode.
9921      */
getLanguageCodeBytes()9922     public com.google.protobuf.ByteString getLanguageCodeBytes() {
9923       java.lang.Object ref = languageCode_;
9924       if (ref instanceof String) {
9925         com.google.protobuf.ByteString b =
9926             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
9927         languageCode_ = b;
9928         return b;
9929       } else {
9930         return (com.google.protobuf.ByteString) ref;
9931       }
9932     }
9933     /**
9934      *
9935      *
9936      * <pre>
9937      * The language of the posting. This field is distinct from
9938      * any requirements for fluency that are associated with the job.
9939      * Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
9940      * For more information, see
9941      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
9942      * class="external" target="_blank" }.
9943      * If this field is unspecified and
9944      * [Job.description][google.cloud.talent.v4.Job.description] is present,
9945      * detected language code based on
9946      * [Job.description][google.cloud.talent.v4.Job.description] is assigned,
9947      * otherwise defaults to 'en_US'.
9948      * </pre>
9949      *
9950      * <code>string language_code = 15;</code>
9951      *
9952      * @param value The languageCode to set.
9953      * @return This builder for chaining.
9954      */
setLanguageCode(java.lang.String value)9955     public Builder setLanguageCode(java.lang.String value) {
9956       if (value == null) {
9957         throw new NullPointerException();
9958       }
9959       languageCode_ = value;
9960       bitField0_ |= 0x00004000;
9961       onChanged();
9962       return this;
9963     }
9964     /**
9965      *
9966      *
9967      * <pre>
9968      * The language of the posting. This field is distinct from
9969      * any requirements for fluency that are associated with the job.
9970      * Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
9971      * For more information, see
9972      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
9973      * class="external" target="_blank" }.
9974      * If this field is unspecified and
9975      * [Job.description][google.cloud.talent.v4.Job.description] is present,
9976      * detected language code based on
9977      * [Job.description][google.cloud.talent.v4.Job.description] is assigned,
9978      * otherwise defaults to 'en_US'.
9979      * </pre>
9980      *
9981      * <code>string language_code = 15;</code>
9982      *
9983      * @return This builder for chaining.
9984      */
clearLanguageCode()9985     public Builder clearLanguageCode() {
9986       languageCode_ = getDefaultInstance().getLanguageCode();
9987       bitField0_ = (bitField0_ & ~0x00004000);
9988       onChanged();
9989       return this;
9990     }
9991     /**
9992      *
9993      *
9994      * <pre>
9995      * The language of the posting. This field is distinct from
9996      * any requirements for fluency that are associated with the job.
9997      * Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
9998      * For more information, see
9999      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
10000      * class="external" target="_blank" }.
10001      * If this field is unspecified and
10002      * [Job.description][google.cloud.talent.v4.Job.description] is present,
10003      * detected language code based on
10004      * [Job.description][google.cloud.talent.v4.Job.description] is assigned,
10005      * otherwise defaults to 'en_US'.
10006      * </pre>
10007      *
10008      * <code>string language_code = 15;</code>
10009      *
10010      * @param value The bytes for languageCode to set.
10011      * @return This builder for chaining.
10012      */
setLanguageCodeBytes(com.google.protobuf.ByteString value)10013     public Builder setLanguageCodeBytes(com.google.protobuf.ByteString value) {
10014       if (value == null) {
10015         throw new NullPointerException();
10016       }
10017       checkByteStringIsUtf8(value);
10018       languageCode_ = value;
10019       bitField0_ |= 0x00004000;
10020       onChanged();
10021       return this;
10022     }
10023 
10024     private int jobLevel_ = 0;
10025     /**
10026      *
10027      *
10028      * <pre>
10029      * The experience level associated with the job, such as "Entry Level".
10030      * </pre>
10031      *
10032      * <code>.google.cloud.talent.v4.JobLevel job_level = 16;</code>
10033      *
10034      * @return The enum numeric value on the wire for jobLevel.
10035      */
10036     @java.lang.Override
getJobLevelValue()10037     public int getJobLevelValue() {
10038       return jobLevel_;
10039     }
10040     /**
10041      *
10042      *
10043      * <pre>
10044      * The experience level associated with the job, such as "Entry Level".
10045      * </pre>
10046      *
10047      * <code>.google.cloud.talent.v4.JobLevel job_level = 16;</code>
10048      *
10049      * @param value The enum numeric value on the wire for jobLevel to set.
10050      * @return This builder for chaining.
10051      */
setJobLevelValue(int value)10052     public Builder setJobLevelValue(int value) {
10053       jobLevel_ = value;
10054       bitField0_ |= 0x00008000;
10055       onChanged();
10056       return this;
10057     }
10058     /**
10059      *
10060      *
10061      * <pre>
10062      * The experience level associated with the job, such as "Entry Level".
10063      * </pre>
10064      *
10065      * <code>.google.cloud.talent.v4.JobLevel job_level = 16;</code>
10066      *
10067      * @return The jobLevel.
10068      */
10069     @java.lang.Override
getJobLevel()10070     public com.google.cloud.talent.v4.JobLevel getJobLevel() {
10071       com.google.cloud.talent.v4.JobLevel result =
10072           com.google.cloud.talent.v4.JobLevel.forNumber(jobLevel_);
10073       return result == null ? com.google.cloud.talent.v4.JobLevel.UNRECOGNIZED : result;
10074     }
10075     /**
10076      *
10077      *
10078      * <pre>
10079      * The experience level associated with the job, such as "Entry Level".
10080      * </pre>
10081      *
10082      * <code>.google.cloud.talent.v4.JobLevel job_level = 16;</code>
10083      *
10084      * @param value The jobLevel to set.
10085      * @return This builder for chaining.
10086      */
setJobLevel(com.google.cloud.talent.v4.JobLevel value)10087     public Builder setJobLevel(com.google.cloud.talent.v4.JobLevel value) {
10088       if (value == null) {
10089         throw new NullPointerException();
10090       }
10091       bitField0_ |= 0x00008000;
10092       jobLevel_ = value.getNumber();
10093       onChanged();
10094       return this;
10095     }
10096     /**
10097      *
10098      *
10099      * <pre>
10100      * The experience level associated with the job, such as "Entry Level".
10101      * </pre>
10102      *
10103      * <code>.google.cloud.talent.v4.JobLevel job_level = 16;</code>
10104      *
10105      * @return This builder for chaining.
10106      */
clearJobLevel()10107     public Builder clearJobLevel() {
10108       bitField0_ = (bitField0_ & ~0x00008000);
10109       jobLevel_ = 0;
10110       onChanged();
10111       return this;
10112     }
10113 
10114     private int promotionValue_;
10115     /**
10116      *
10117      *
10118      * <pre>
10119      * A promotion value of the job, as determined by the client.
10120      * The value determines the sort order of the jobs returned when searching for
10121      * jobs using the featured jobs search call, with higher promotional values
10122      * being returned first and ties being resolved by relevance sort. Only the
10123      * jobs with a promotionValue &gt;0 are returned in a FEATURED_JOB_SEARCH.
10124      * Default value is 0, and negative values are treated as 0.
10125      * </pre>
10126      *
10127      * <code>int32 promotion_value = 17;</code>
10128      *
10129      * @return The promotionValue.
10130      */
10131     @java.lang.Override
getPromotionValue()10132     public int getPromotionValue() {
10133       return promotionValue_;
10134     }
10135     /**
10136      *
10137      *
10138      * <pre>
10139      * A promotion value of the job, as determined by the client.
10140      * The value determines the sort order of the jobs returned when searching for
10141      * jobs using the featured jobs search call, with higher promotional values
10142      * being returned first and ties being resolved by relevance sort. Only the
10143      * jobs with a promotionValue &gt;0 are returned in a FEATURED_JOB_SEARCH.
10144      * Default value is 0, and negative values are treated as 0.
10145      * </pre>
10146      *
10147      * <code>int32 promotion_value = 17;</code>
10148      *
10149      * @param value The promotionValue to set.
10150      * @return This builder for chaining.
10151      */
setPromotionValue(int value)10152     public Builder setPromotionValue(int value) {
10153 
10154       promotionValue_ = value;
10155       bitField0_ |= 0x00010000;
10156       onChanged();
10157       return this;
10158     }
10159     /**
10160      *
10161      *
10162      * <pre>
10163      * A promotion value of the job, as determined by the client.
10164      * The value determines the sort order of the jobs returned when searching for
10165      * jobs using the featured jobs search call, with higher promotional values
10166      * being returned first and ties being resolved by relevance sort. Only the
10167      * jobs with a promotionValue &gt;0 are returned in a FEATURED_JOB_SEARCH.
10168      * Default value is 0, and negative values are treated as 0.
10169      * </pre>
10170      *
10171      * <code>int32 promotion_value = 17;</code>
10172      *
10173      * @return This builder for chaining.
10174      */
clearPromotionValue()10175     public Builder clearPromotionValue() {
10176       bitField0_ = (bitField0_ & ~0x00010000);
10177       promotionValue_ = 0;
10178       onChanged();
10179       return this;
10180     }
10181 
10182     private java.lang.Object qualifications_ = "";
10183     /**
10184      *
10185      *
10186      * <pre>
10187      * A description of the qualifications required to perform the
10188      * job. The use of this field is recommended
10189      * as an alternative to using the more general
10190      * [description][google.cloud.talent.v4.Job.description] field.
10191      * This field accepts and sanitizes HTML input, and also accepts
10192      * bold, italic, ordered list, and unordered list markup tags.
10193      * The maximum number of allowed characters is 10,000.
10194      * </pre>
10195      *
10196      * <code>string qualifications = 18;</code>
10197      *
10198      * @return The qualifications.
10199      */
getQualifications()10200     public java.lang.String getQualifications() {
10201       java.lang.Object ref = qualifications_;
10202       if (!(ref instanceof java.lang.String)) {
10203         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
10204         java.lang.String s = bs.toStringUtf8();
10205         qualifications_ = s;
10206         return s;
10207       } else {
10208         return (java.lang.String) ref;
10209       }
10210     }
10211     /**
10212      *
10213      *
10214      * <pre>
10215      * A description of the qualifications required to perform the
10216      * job. The use of this field is recommended
10217      * as an alternative to using the more general
10218      * [description][google.cloud.talent.v4.Job.description] field.
10219      * This field accepts and sanitizes HTML input, and also accepts
10220      * bold, italic, ordered list, and unordered list markup tags.
10221      * The maximum number of allowed characters is 10,000.
10222      * </pre>
10223      *
10224      * <code>string qualifications = 18;</code>
10225      *
10226      * @return The bytes for qualifications.
10227      */
getQualificationsBytes()10228     public com.google.protobuf.ByteString getQualificationsBytes() {
10229       java.lang.Object ref = qualifications_;
10230       if (ref instanceof String) {
10231         com.google.protobuf.ByteString b =
10232             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
10233         qualifications_ = b;
10234         return b;
10235       } else {
10236         return (com.google.protobuf.ByteString) ref;
10237       }
10238     }
10239     /**
10240      *
10241      *
10242      * <pre>
10243      * A description of the qualifications required to perform the
10244      * job. The use of this field is recommended
10245      * as an alternative to using the more general
10246      * [description][google.cloud.talent.v4.Job.description] field.
10247      * This field accepts and sanitizes HTML input, and also accepts
10248      * bold, italic, ordered list, and unordered list markup tags.
10249      * The maximum number of allowed characters is 10,000.
10250      * </pre>
10251      *
10252      * <code>string qualifications = 18;</code>
10253      *
10254      * @param value The qualifications to set.
10255      * @return This builder for chaining.
10256      */
setQualifications(java.lang.String value)10257     public Builder setQualifications(java.lang.String value) {
10258       if (value == null) {
10259         throw new NullPointerException();
10260       }
10261       qualifications_ = value;
10262       bitField0_ |= 0x00020000;
10263       onChanged();
10264       return this;
10265     }
10266     /**
10267      *
10268      *
10269      * <pre>
10270      * A description of the qualifications required to perform the
10271      * job. The use of this field is recommended
10272      * as an alternative to using the more general
10273      * [description][google.cloud.talent.v4.Job.description] field.
10274      * This field accepts and sanitizes HTML input, and also accepts
10275      * bold, italic, ordered list, and unordered list markup tags.
10276      * The maximum number of allowed characters is 10,000.
10277      * </pre>
10278      *
10279      * <code>string qualifications = 18;</code>
10280      *
10281      * @return This builder for chaining.
10282      */
clearQualifications()10283     public Builder clearQualifications() {
10284       qualifications_ = getDefaultInstance().getQualifications();
10285       bitField0_ = (bitField0_ & ~0x00020000);
10286       onChanged();
10287       return this;
10288     }
10289     /**
10290      *
10291      *
10292      * <pre>
10293      * A description of the qualifications required to perform the
10294      * job. The use of this field is recommended
10295      * as an alternative to using the more general
10296      * [description][google.cloud.talent.v4.Job.description] field.
10297      * This field accepts and sanitizes HTML input, and also accepts
10298      * bold, italic, ordered list, and unordered list markup tags.
10299      * The maximum number of allowed characters is 10,000.
10300      * </pre>
10301      *
10302      * <code>string qualifications = 18;</code>
10303      *
10304      * @param value The bytes for qualifications to set.
10305      * @return This builder for chaining.
10306      */
setQualificationsBytes(com.google.protobuf.ByteString value)10307     public Builder setQualificationsBytes(com.google.protobuf.ByteString value) {
10308       if (value == null) {
10309         throw new NullPointerException();
10310       }
10311       checkByteStringIsUtf8(value);
10312       qualifications_ = value;
10313       bitField0_ |= 0x00020000;
10314       onChanged();
10315       return this;
10316     }
10317 
10318     private java.lang.Object responsibilities_ = "";
10319     /**
10320      *
10321      *
10322      * <pre>
10323      * A description of job responsibilities. The use of this field is
10324      * recommended as an alternative to using the more general
10325      * [description][google.cloud.talent.v4.Job.description] field.
10326      * This field accepts and sanitizes HTML input, and also accepts
10327      * bold, italic, ordered list, and unordered list markup tags.
10328      * The maximum number of allowed characters is 10,000.
10329      * </pre>
10330      *
10331      * <code>string responsibilities = 19;</code>
10332      *
10333      * @return The responsibilities.
10334      */
getResponsibilities()10335     public java.lang.String getResponsibilities() {
10336       java.lang.Object ref = responsibilities_;
10337       if (!(ref instanceof java.lang.String)) {
10338         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
10339         java.lang.String s = bs.toStringUtf8();
10340         responsibilities_ = s;
10341         return s;
10342       } else {
10343         return (java.lang.String) ref;
10344       }
10345     }
10346     /**
10347      *
10348      *
10349      * <pre>
10350      * A description of job responsibilities. The use of this field is
10351      * recommended as an alternative to using the more general
10352      * [description][google.cloud.talent.v4.Job.description] field.
10353      * This field accepts and sanitizes HTML input, and also accepts
10354      * bold, italic, ordered list, and unordered list markup tags.
10355      * The maximum number of allowed characters is 10,000.
10356      * </pre>
10357      *
10358      * <code>string responsibilities = 19;</code>
10359      *
10360      * @return The bytes for responsibilities.
10361      */
getResponsibilitiesBytes()10362     public com.google.protobuf.ByteString getResponsibilitiesBytes() {
10363       java.lang.Object ref = responsibilities_;
10364       if (ref instanceof String) {
10365         com.google.protobuf.ByteString b =
10366             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
10367         responsibilities_ = b;
10368         return b;
10369       } else {
10370         return (com.google.protobuf.ByteString) ref;
10371       }
10372     }
10373     /**
10374      *
10375      *
10376      * <pre>
10377      * A description of job responsibilities. The use of this field is
10378      * recommended as an alternative to using the more general
10379      * [description][google.cloud.talent.v4.Job.description] field.
10380      * This field accepts and sanitizes HTML input, and also accepts
10381      * bold, italic, ordered list, and unordered list markup tags.
10382      * The maximum number of allowed characters is 10,000.
10383      * </pre>
10384      *
10385      * <code>string responsibilities = 19;</code>
10386      *
10387      * @param value The responsibilities to set.
10388      * @return This builder for chaining.
10389      */
setResponsibilities(java.lang.String value)10390     public Builder setResponsibilities(java.lang.String value) {
10391       if (value == null) {
10392         throw new NullPointerException();
10393       }
10394       responsibilities_ = value;
10395       bitField0_ |= 0x00040000;
10396       onChanged();
10397       return this;
10398     }
10399     /**
10400      *
10401      *
10402      * <pre>
10403      * A description of job responsibilities. The use of this field is
10404      * recommended as an alternative to using the more general
10405      * [description][google.cloud.talent.v4.Job.description] field.
10406      * This field accepts and sanitizes HTML input, and also accepts
10407      * bold, italic, ordered list, and unordered list markup tags.
10408      * The maximum number of allowed characters is 10,000.
10409      * </pre>
10410      *
10411      * <code>string responsibilities = 19;</code>
10412      *
10413      * @return This builder for chaining.
10414      */
clearResponsibilities()10415     public Builder clearResponsibilities() {
10416       responsibilities_ = getDefaultInstance().getResponsibilities();
10417       bitField0_ = (bitField0_ & ~0x00040000);
10418       onChanged();
10419       return this;
10420     }
10421     /**
10422      *
10423      *
10424      * <pre>
10425      * A description of job responsibilities. The use of this field is
10426      * recommended as an alternative to using the more general
10427      * [description][google.cloud.talent.v4.Job.description] field.
10428      * This field accepts and sanitizes HTML input, and also accepts
10429      * bold, italic, ordered list, and unordered list markup tags.
10430      * The maximum number of allowed characters is 10,000.
10431      * </pre>
10432      *
10433      * <code>string responsibilities = 19;</code>
10434      *
10435      * @param value The bytes for responsibilities to set.
10436      * @return This builder for chaining.
10437      */
setResponsibilitiesBytes(com.google.protobuf.ByteString value)10438     public Builder setResponsibilitiesBytes(com.google.protobuf.ByteString value) {
10439       if (value == null) {
10440         throw new NullPointerException();
10441       }
10442       checkByteStringIsUtf8(value);
10443       responsibilities_ = value;
10444       bitField0_ |= 0x00040000;
10445       onChanged();
10446       return this;
10447     }
10448 
10449     private int postingRegion_ = 0;
10450     /**
10451      *
10452      *
10453      * <pre>
10454      * The job [PostingRegion][google.cloud.talent.v4.PostingRegion] (for example,
10455      * state, country) throughout which the job is available. If this field is
10456      * set, a [LocationFilter][google.cloud.talent.v4.LocationFilter] in a search
10457      * query within the job region finds this job posting if an exact location
10458      * match isn't specified. If this field is set to
10459      * [PostingRegion.NATION][google.cloud.talent.v4.PostingRegion.NATION] or
10460      * [PostingRegion.ADMINISTRATIVE_AREA][google.cloud.talent.v4.PostingRegion.ADMINISTRATIVE_AREA],
10461      * setting job [Job.addresses][google.cloud.talent.v4.Job.addresses] to the
10462      * same location level as this field is strongly recommended.
10463      * </pre>
10464      *
10465      * <code>.google.cloud.talent.v4.PostingRegion posting_region = 20;</code>
10466      *
10467      * @return The enum numeric value on the wire for postingRegion.
10468      */
10469     @java.lang.Override
getPostingRegionValue()10470     public int getPostingRegionValue() {
10471       return postingRegion_;
10472     }
10473     /**
10474      *
10475      *
10476      * <pre>
10477      * The job [PostingRegion][google.cloud.talent.v4.PostingRegion] (for example,
10478      * state, country) throughout which the job is available. If this field is
10479      * set, a [LocationFilter][google.cloud.talent.v4.LocationFilter] in a search
10480      * query within the job region finds this job posting if an exact location
10481      * match isn't specified. If this field is set to
10482      * [PostingRegion.NATION][google.cloud.talent.v4.PostingRegion.NATION] or
10483      * [PostingRegion.ADMINISTRATIVE_AREA][google.cloud.talent.v4.PostingRegion.ADMINISTRATIVE_AREA],
10484      * setting job [Job.addresses][google.cloud.talent.v4.Job.addresses] to the
10485      * same location level as this field is strongly recommended.
10486      * </pre>
10487      *
10488      * <code>.google.cloud.talent.v4.PostingRegion posting_region = 20;</code>
10489      *
10490      * @param value The enum numeric value on the wire for postingRegion to set.
10491      * @return This builder for chaining.
10492      */
setPostingRegionValue(int value)10493     public Builder setPostingRegionValue(int value) {
10494       postingRegion_ = value;
10495       bitField0_ |= 0x00080000;
10496       onChanged();
10497       return this;
10498     }
10499     /**
10500      *
10501      *
10502      * <pre>
10503      * The job [PostingRegion][google.cloud.talent.v4.PostingRegion] (for example,
10504      * state, country) throughout which the job is available. If this field is
10505      * set, a [LocationFilter][google.cloud.talent.v4.LocationFilter] in a search
10506      * query within the job region finds this job posting if an exact location
10507      * match isn't specified. If this field is set to
10508      * [PostingRegion.NATION][google.cloud.talent.v4.PostingRegion.NATION] or
10509      * [PostingRegion.ADMINISTRATIVE_AREA][google.cloud.talent.v4.PostingRegion.ADMINISTRATIVE_AREA],
10510      * setting job [Job.addresses][google.cloud.talent.v4.Job.addresses] to the
10511      * same location level as this field is strongly recommended.
10512      * </pre>
10513      *
10514      * <code>.google.cloud.talent.v4.PostingRegion posting_region = 20;</code>
10515      *
10516      * @return The postingRegion.
10517      */
10518     @java.lang.Override
getPostingRegion()10519     public com.google.cloud.talent.v4.PostingRegion getPostingRegion() {
10520       com.google.cloud.talent.v4.PostingRegion result =
10521           com.google.cloud.talent.v4.PostingRegion.forNumber(postingRegion_);
10522       return result == null ? com.google.cloud.talent.v4.PostingRegion.UNRECOGNIZED : result;
10523     }
10524     /**
10525      *
10526      *
10527      * <pre>
10528      * The job [PostingRegion][google.cloud.talent.v4.PostingRegion] (for example,
10529      * state, country) throughout which the job is available. If this field is
10530      * set, a [LocationFilter][google.cloud.talent.v4.LocationFilter] in a search
10531      * query within the job region finds this job posting if an exact location
10532      * match isn't specified. If this field is set to
10533      * [PostingRegion.NATION][google.cloud.talent.v4.PostingRegion.NATION] or
10534      * [PostingRegion.ADMINISTRATIVE_AREA][google.cloud.talent.v4.PostingRegion.ADMINISTRATIVE_AREA],
10535      * setting job [Job.addresses][google.cloud.talent.v4.Job.addresses] to the
10536      * same location level as this field is strongly recommended.
10537      * </pre>
10538      *
10539      * <code>.google.cloud.talent.v4.PostingRegion posting_region = 20;</code>
10540      *
10541      * @param value The postingRegion to set.
10542      * @return This builder for chaining.
10543      */
setPostingRegion(com.google.cloud.talent.v4.PostingRegion value)10544     public Builder setPostingRegion(com.google.cloud.talent.v4.PostingRegion value) {
10545       if (value == null) {
10546         throw new NullPointerException();
10547       }
10548       bitField0_ |= 0x00080000;
10549       postingRegion_ = value.getNumber();
10550       onChanged();
10551       return this;
10552     }
10553     /**
10554      *
10555      *
10556      * <pre>
10557      * The job [PostingRegion][google.cloud.talent.v4.PostingRegion] (for example,
10558      * state, country) throughout which the job is available. If this field is
10559      * set, a [LocationFilter][google.cloud.talent.v4.LocationFilter] in a search
10560      * query within the job region finds this job posting if an exact location
10561      * match isn't specified. If this field is set to
10562      * [PostingRegion.NATION][google.cloud.talent.v4.PostingRegion.NATION] or
10563      * [PostingRegion.ADMINISTRATIVE_AREA][google.cloud.talent.v4.PostingRegion.ADMINISTRATIVE_AREA],
10564      * setting job [Job.addresses][google.cloud.talent.v4.Job.addresses] to the
10565      * same location level as this field is strongly recommended.
10566      * </pre>
10567      *
10568      * <code>.google.cloud.talent.v4.PostingRegion posting_region = 20;</code>
10569      *
10570      * @return This builder for chaining.
10571      */
clearPostingRegion()10572     public Builder clearPostingRegion() {
10573       bitField0_ = (bitField0_ & ~0x00080000);
10574       postingRegion_ = 0;
10575       onChanged();
10576       return this;
10577     }
10578 
10579     private int visibility_ = 0;
10580     /**
10581      *
10582      *
10583      * <pre>
10584      * Deprecated. The job is only visible to the owner.
10585      * The visibility of the job.
10586      * Defaults to
10587      * [Visibility.ACCOUNT_ONLY][google.cloud.talent.v4.Visibility.ACCOUNT_ONLY]
10588      * if not specified.
10589      * </pre>
10590      *
10591      * <code>.google.cloud.talent.v4.Visibility visibility = 21 [deprecated = true];</code>
10592      *
10593      * @deprecated google.cloud.talent.v4.Job.visibility is deprecated. See
10594      *     google/cloud/talent/v4/job.proto;l=295
10595      * @return The enum numeric value on the wire for visibility.
10596      */
10597     @java.lang.Override
10598     @java.lang.Deprecated
getVisibilityValue()10599     public int getVisibilityValue() {
10600       return visibility_;
10601     }
10602     /**
10603      *
10604      *
10605      * <pre>
10606      * Deprecated. The job is only visible to the owner.
10607      * The visibility of the job.
10608      * Defaults to
10609      * [Visibility.ACCOUNT_ONLY][google.cloud.talent.v4.Visibility.ACCOUNT_ONLY]
10610      * if not specified.
10611      * </pre>
10612      *
10613      * <code>.google.cloud.talent.v4.Visibility visibility = 21 [deprecated = true];</code>
10614      *
10615      * @deprecated google.cloud.talent.v4.Job.visibility is deprecated. See
10616      *     google/cloud/talent/v4/job.proto;l=295
10617      * @param value The enum numeric value on the wire for visibility to set.
10618      * @return This builder for chaining.
10619      */
10620     @java.lang.Deprecated
setVisibilityValue(int value)10621     public Builder setVisibilityValue(int value) {
10622       visibility_ = value;
10623       bitField0_ |= 0x00100000;
10624       onChanged();
10625       return this;
10626     }
10627     /**
10628      *
10629      *
10630      * <pre>
10631      * Deprecated. The job is only visible to the owner.
10632      * The visibility of the job.
10633      * Defaults to
10634      * [Visibility.ACCOUNT_ONLY][google.cloud.talent.v4.Visibility.ACCOUNT_ONLY]
10635      * if not specified.
10636      * </pre>
10637      *
10638      * <code>.google.cloud.talent.v4.Visibility visibility = 21 [deprecated = true];</code>
10639      *
10640      * @deprecated google.cloud.talent.v4.Job.visibility is deprecated. See
10641      *     google/cloud/talent/v4/job.proto;l=295
10642      * @return The visibility.
10643      */
10644     @java.lang.Override
10645     @java.lang.Deprecated
getVisibility()10646     public com.google.cloud.talent.v4.Visibility getVisibility() {
10647       com.google.cloud.talent.v4.Visibility result =
10648           com.google.cloud.talent.v4.Visibility.forNumber(visibility_);
10649       return result == null ? com.google.cloud.talent.v4.Visibility.UNRECOGNIZED : result;
10650     }
10651     /**
10652      *
10653      *
10654      * <pre>
10655      * Deprecated. The job is only visible to the owner.
10656      * The visibility of the job.
10657      * Defaults to
10658      * [Visibility.ACCOUNT_ONLY][google.cloud.talent.v4.Visibility.ACCOUNT_ONLY]
10659      * if not specified.
10660      * </pre>
10661      *
10662      * <code>.google.cloud.talent.v4.Visibility visibility = 21 [deprecated = true];</code>
10663      *
10664      * @deprecated google.cloud.talent.v4.Job.visibility is deprecated. See
10665      *     google/cloud/talent/v4/job.proto;l=295
10666      * @param value The visibility to set.
10667      * @return This builder for chaining.
10668      */
10669     @java.lang.Deprecated
setVisibility(com.google.cloud.talent.v4.Visibility value)10670     public Builder setVisibility(com.google.cloud.talent.v4.Visibility value) {
10671       if (value == null) {
10672         throw new NullPointerException();
10673       }
10674       bitField0_ |= 0x00100000;
10675       visibility_ = value.getNumber();
10676       onChanged();
10677       return this;
10678     }
10679     /**
10680      *
10681      *
10682      * <pre>
10683      * Deprecated. The job is only visible to the owner.
10684      * The visibility of the job.
10685      * Defaults to
10686      * [Visibility.ACCOUNT_ONLY][google.cloud.talent.v4.Visibility.ACCOUNT_ONLY]
10687      * if not specified.
10688      * </pre>
10689      *
10690      * <code>.google.cloud.talent.v4.Visibility visibility = 21 [deprecated = true];</code>
10691      *
10692      * @deprecated google.cloud.talent.v4.Job.visibility is deprecated. See
10693      *     google/cloud/talent/v4/job.proto;l=295
10694      * @return This builder for chaining.
10695      */
10696     @java.lang.Deprecated
clearVisibility()10697     public Builder clearVisibility() {
10698       bitField0_ = (bitField0_ & ~0x00100000);
10699       visibility_ = 0;
10700       onChanged();
10701       return this;
10702     }
10703 
10704     private com.google.protobuf.Timestamp jobStartTime_;
10705     private com.google.protobuf.SingleFieldBuilderV3<
10706             com.google.protobuf.Timestamp,
10707             com.google.protobuf.Timestamp.Builder,
10708             com.google.protobuf.TimestampOrBuilder>
10709         jobStartTimeBuilder_;
10710     /**
10711      *
10712      *
10713      * <pre>
10714      * The start timestamp of the job in UTC time zone. Typically this field
10715      * is used for contracting engagements. Invalid timestamps are ignored.
10716      * </pre>
10717      *
10718      * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
10719      *
10720      * @return Whether the jobStartTime field is set.
10721      */
hasJobStartTime()10722     public boolean hasJobStartTime() {
10723       return ((bitField0_ & 0x00200000) != 0);
10724     }
10725     /**
10726      *
10727      *
10728      * <pre>
10729      * The start timestamp of the job in UTC time zone. Typically this field
10730      * is used for contracting engagements. Invalid timestamps are ignored.
10731      * </pre>
10732      *
10733      * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
10734      *
10735      * @return The jobStartTime.
10736      */
getJobStartTime()10737     public com.google.protobuf.Timestamp getJobStartTime() {
10738       if (jobStartTimeBuilder_ == null) {
10739         return jobStartTime_ == null
10740             ? com.google.protobuf.Timestamp.getDefaultInstance()
10741             : jobStartTime_;
10742       } else {
10743         return jobStartTimeBuilder_.getMessage();
10744       }
10745     }
10746     /**
10747      *
10748      *
10749      * <pre>
10750      * The start timestamp of the job in UTC time zone. Typically this field
10751      * is used for contracting engagements. Invalid timestamps are ignored.
10752      * </pre>
10753      *
10754      * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
10755      */
setJobStartTime(com.google.protobuf.Timestamp value)10756     public Builder setJobStartTime(com.google.protobuf.Timestamp value) {
10757       if (jobStartTimeBuilder_ == null) {
10758         if (value == null) {
10759           throw new NullPointerException();
10760         }
10761         jobStartTime_ = value;
10762       } else {
10763         jobStartTimeBuilder_.setMessage(value);
10764       }
10765       bitField0_ |= 0x00200000;
10766       onChanged();
10767       return this;
10768     }
10769     /**
10770      *
10771      *
10772      * <pre>
10773      * The start timestamp of the job in UTC time zone. Typically this field
10774      * is used for contracting engagements. Invalid timestamps are ignored.
10775      * </pre>
10776      *
10777      * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
10778      */
setJobStartTime(com.google.protobuf.Timestamp.Builder builderForValue)10779     public Builder setJobStartTime(com.google.protobuf.Timestamp.Builder builderForValue) {
10780       if (jobStartTimeBuilder_ == null) {
10781         jobStartTime_ = builderForValue.build();
10782       } else {
10783         jobStartTimeBuilder_.setMessage(builderForValue.build());
10784       }
10785       bitField0_ |= 0x00200000;
10786       onChanged();
10787       return this;
10788     }
10789     /**
10790      *
10791      *
10792      * <pre>
10793      * The start timestamp of the job in UTC time zone. Typically this field
10794      * is used for contracting engagements. Invalid timestamps are ignored.
10795      * </pre>
10796      *
10797      * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
10798      */
mergeJobStartTime(com.google.protobuf.Timestamp value)10799     public Builder mergeJobStartTime(com.google.protobuf.Timestamp value) {
10800       if (jobStartTimeBuilder_ == null) {
10801         if (((bitField0_ & 0x00200000) != 0)
10802             && jobStartTime_ != null
10803             && jobStartTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
10804           getJobStartTimeBuilder().mergeFrom(value);
10805         } else {
10806           jobStartTime_ = value;
10807         }
10808       } else {
10809         jobStartTimeBuilder_.mergeFrom(value);
10810       }
10811       bitField0_ |= 0x00200000;
10812       onChanged();
10813       return this;
10814     }
10815     /**
10816      *
10817      *
10818      * <pre>
10819      * The start timestamp of the job in UTC time zone. Typically this field
10820      * is used for contracting engagements. Invalid timestamps are ignored.
10821      * </pre>
10822      *
10823      * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
10824      */
clearJobStartTime()10825     public Builder clearJobStartTime() {
10826       bitField0_ = (bitField0_ & ~0x00200000);
10827       jobStartTime_ = null;
10828       if (jobStartTimeBuilder_ != null) {
10829         jobStartTimeBuilder_.dispose();
10830         jobStartTimeBuilder_ = null;
10831       }
10832       onChanged();
10833       return this;
10834     }
10835     /**
10836      *
10837      *
10838      * <pre>
10839      * The start timestamp of the job in UTC time zone. Typically this field
10840      * is used for contracting engagements. Invalid timestamps are ignored.
10841      * </pre>
10842      *
10843      * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
10844      */
getJobStartTimeBuilder()10845     public com.google.protobuf.Timestamp.Builder getJobStartTimeBuilder() {
10846       bitField0_ |= 0x00200000;
10847       onChanged();
10848       return getJobStartTimeFieldBuilder().getBuilder();
10849     }
10850     /**
10851      *
10852      *
10853      * <pre>
10854      * The start timestamp of the job in UTC time zone. Typically this field
10855      * is used for contracting engagements. Invalid timestamps are ignored.
10856      * </pre>
10857      *
10858      * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
10859      */
getJobStartTimeOrBuilder()10860     public com.google.protobuf.TimestampOrBuilder getJobStartTimeOrBuilder() {
10861       if (jobStartTimeBuilder_ != null) {
10862         return jobStartTimeBuilder_.getMessageOrBuilder();
10863       } else {
10864         return jobStartTime_ == null
10865             ? com.google.protobuf.Timestamp.getDefaultInstance()
10866             : jobStartTime_;
10867       }
10868     }
10869     /**
10870      *
10871      *
10872      * <pre>
10873      * The start timestamp of the job in UTC time zone. Typically this field
10874      * is used for contracting engagements. Invalid timestamps are ignored.
10875      * </pre>
10876      *
10877      * <code>.google.protobuf.Timestamp job_start_time = 22;</code>
10878      */
10879     private com.google.protobuf.SingleFieldBuilderV3<
10880             com.google.protobuf.Timestamp,
10881             com.google.protobuf.Timestamp.Builder,
10882             com.google.protobuf.TimestampOrBuilder>
getJobStartTimeFieldBuilder()10883         getJobStartTimeFieldBuilder() {
10884       if (jobStartTimeBuilder_ == null) {
10885         jobStartTimeBuilder_ =
10886             new com.google.protobuf.SingleFieldBuilderV3<
10887                 com.google.protobuf.Timestamp,
10888                 com.google.protobuf.Timestamp.Builder,
10889                 com.google.protobuf.TimestampOrBuilder>(
10890                 getJobStartTime(), getParentForChildren(), isClean());
10891         jobStartTime_ = null;
10892       }
10893       return jobStartTimeBuilder_;
10894     }
10895 
10896     private com.google.protobuf.Timestamp jobEndTime_;
10897     private com.google.protobuf.SingleFieldBuilderV3<
10898             com.google.protobuf.Timestamp,
10899             com.google.protobuf.Timestamp.Builder,
10900             com.google.protobuf.TimestampOrBuilder>
10901         jobEndTimeBuilder_;
10902     /**
10903      *
10904      *
10905      * <pre>
10906      * The end timestamp of the job. Typically this field is used for contracting
10907      * engagements. Invalid timestamps are ignored.
10908      * </pre>
10909      *
10910      * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
10911      *
10912      * @return Whether the jobEndTime field is set.
10913      */
hasJobEndTime()10914     public boolean hasJobEndTime() {
10915       return ((bitField0_ & 0x00400000) != 0);
10916     }
10917     /**
10918      *
10919      *
10920      * <pre>
10921      * The end timestamp of the job. Typically this field is used for contracting
10922      * engagements. Invalid timestamps are ignored.
10923      * </pre>
10924      *
10925      * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
10926      *
10927      * @return The jobEndTime.
10928      */
getJobEndTime()10929     public com.google.protobuf.Timestamp getJobEndTime() {
10930       if (jobEndTimeBuilder_ == null) {
10931         return jobEndTime_ == null
10932             ? com.google.protobuf.Timestamp.getDefaultInstance()
10933             : jobEndTime_;
10934       } else {
10935         return jobEndTimeBuilder_.getMessage();
10936       }
10937     }
10938     /**
10939      *
10940      *
10941      * <pre>
10942      * The end timestamp of the job. Typically this field is used for contracting
10943      * engagements. Invalid timestamps are ignored.
10944      * </pre>
10945      *
10946      * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
10947      */
setJobEndTime(com.google.protobuf.Timestamp value)10948     public Builder setJobEndTime(com.google.protobuf.Timestamp value) {
10949       if (jobEndTimeBuilder_ == null) {
10950         if (value == null) {
10951           throw new NullPointerException();
10952         }
10953         jobEndTime_ = value;
10954       } else {
10955         jobEndTimeBuilder_.setMessage(value);
10956       }
10957       bitField0_ |= 0x00400000;
10958       onChanged();
10959       return this;
10960     }
10961     /**
10962      *
10963      *
10964      * <pre>
10965      * The end timestamp of the job. Typically this field is used for contracting
10966      * engagements. Invalid timestamps are ignored.
10967      * </pre>
10968      *
10969      * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
10970      */
setJobEndTime(com.google.protobuf.Timestamp.Builder builderForValue)10971     public Builder setJobEndTime(com.google.protobuf.Timestamp.Builder builderForValue) {
10972       if (jobEndTimeBuilder_ == null) {
10973         jobEndTime_ = builderForValue.build();
10974       } else {
10975         jobEndTimeBuilder_.setMessage(builderForValue.build());
10976       }
10977       bitField0_ |= 0x00400000;
10978       onChanged();
10979       return this;
10980     }
10981     /**
10982      *
10983      *
10984      * <pre>
10985      * The end timestamp of the job. Typically this field is used for contracting
10986      * engagements. Invalid timestamps are ignored.
10987      * </pre>
10988      *
10989      * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
10990      */
mergeJobEndTime(com.google.protobuf.Timestamp value)10991     public Builder mergeJobEndTime(com.google.protobuf.Timestamp value) {
10992       if (jobEndTimeBuilder_ == null) {
10993         if (((bitField0_ & 0x00400000) != 0)
10994             && jobEndTime_ != null
10995             && jobEndTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
10996           getJobEndTimeBuilder().mergeFrom(value);
10997         } else {
10998           jobEndTime_ = value;
10999         }
11000       } else {
11001         jobEndTimeBuilder_.mergeFrom(value);
11002       }
11003       bitField0_ |= 0x00400000;
11004       onChanged();
11005       return this;
11006     }
11007     /**
11008      *
11009      *
11010      * <pre>
11011      * The end timestamp of the job. Typically this field is used for contracting
11012      * engagements. Invalid timestamps are ignored.
11013      * </pre>
11014      *
11015      * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
11016      */
clearJobEndTime()11017     public Builder clearJobEndTime() {
11018       bitField0_ = (bitField0_ & ~0x00400000);
11019       jobEndTime_ = null;
11020       if (jobEndTimeBuilder_ != null) {
11021         jobEndTimeBuilder_.dispose();
11022         jobEndTimeBuilder_ = null;
11023       }
11024       onChanged();
11025       return this;
11026     }
11027     /**
11028      *
11029      *
11030      * <pre>
11031      * The end timestamp of the job. Typically this field is used for contracting
11032      * engagements. Invalid timestamps are ignored.
11033      * </pre>
11034      *
11035      * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
11036      */
getJobEndTimeBuilder()11037     public com.google.protobuf.Timestamp.Builder getJobEndTimeBuilder() {
11038       bitField0_ |= 0x00400000;
11039       onChanged();
11040       return getJobEndTimeFieldBuilder().getBuilder();
11041     }
11042     /**
11043      *
11044      *
11045      * <pre>
11046      * The end timestamp of the job. Typically this field is used for contracting
11047      * engagements. Invalid timestamps are ignored.
11048      * </pre>
11049      *
11050      * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
11051      */
getJobEndTimeOrBuilder()11052     public com.google.protobuf.TimestampOrBuilder getJobEndTimeOrBuilder() {
11053       if (jobEndTimeBuilder_ != null) {
11054         return jobEndTimeBuilder_.getMessageOrBuilder();
11055       } else {
11056         return jobEndTime_ == null
11057             ? com.google.protobuf.Timestamp.getDefaultInstance()
11058             : jobEndTime_;
11059       }
11060     }
11061     /**
11062      *
11063      *
11064      * <pre>
11065      * The end timestamp of the job. Typically this field is used for contracting
11066      * engagements. Invalid timestamps are ignored.
11067      * </pre>
11068      *
11069      * <code>.google.protobuf.Timestamp job_end_time = 23;</code>
11070      */
11071     private com.google.protobuf.SingleFieldBuilderV3<
11072             com.google.protobuf.Timestamp,
11073             com.google.protobuf.Timestamp.Builder,
11074             com.google.protobuf.TimestampOrBuilder>
getJobEndTimeFieldBuilder()11075         getJobEndTimeFieldBuilder() {
11076       if (jobEndTimeBuilder_ == null) {
11077         jobEndTimeBuilder_ =
11078             new com.google.protobuf.SingleFieldBuilderV3<
11079                 com.google.protobuf.Timestamp,
11080                 com.google.protobuf.Timestamp.Builder,
11081                 com.google.protobuf.TimestampOrBuilder>(
11082                 getJobEndTime(), getParentForChildren(), isClean());
11083         jobEndTime_ = null;
11084       }
11085       return jobEndTimeBuilder_;
11086     }
11087 
11088     private com.google.protobuf.Timestamp postingPublishTime_;
11089     private com.google.protobuf.SingleFieldBuilderV3<
11090             com.google.protobuf.Timestamp,
11091             com.google.protobuf.Timestamp.Builder,
11092             com.google.protobuf.TimestampOrBuilder>
11093         postingPublishTimeBuilder_;
11094     /**
11095      *
11096      *
11097      * <pre>
11098      * The timestamp this job posting was most recently published. The default
11099      * value is the time the request arrives at the server. Invalid timestamps are
11100      * ignored.
11101      * </pre>
11102      *
11103      * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
11104      *
11105      * @return Whether the postingPublishTime field is set.
11106      */
hasPostingPublishTime()11107     public boolean hasPostingPublishTime() {
11108       return ((bitField0_ & 0x00800000) != 0);
11109     }
11110     /**
11111      *
11112      *
11113      * <pre>
11114      * The timestamp this job posting was most recently published. The default
11115      * value is the time the request arrives at the server. Invalid timestamps are
11116      * ignored.
11117      * </pre>
11118      *
11119      * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
11120      *
11121      * @return The postingPublishTime.
11122      */
getPostingPublishTime()11123     public com.google.protobuf.Timestamp getPostingPublishTime() {
11124       if (postingPublishTimeBuilder_ == null) {
11125         return postingPublishTime_ == null
11126             ? com.google.protobuf.Timestamp.getDefaultInstance()
11127             : postingPublishTime_;
11128       } else {
11129         return postingPublishTimeBuilder_.getMessage();
11130       }
11131     }
11132     /**
11133      *
11134      *
11135      * <pre>
11136      * The timestamp this job posting was most recently published. The default
11137      * value is the time the request arrives at the server. Invalid timestamps are
11138      * ignored.
11139      * </pre>
11140      *
11141      * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
11142      */
setPostingPublishTime(com.google.protobuf.Timestamp value)11143     public Builder setPostingPublishTime(com.google.protobuf.Timestamp value) {
11144       if (postingPublishTimeBuilder_ == null) {
11145         if (value == null) {
11146           throw new NullPointerException();
11147         }
11148         postingPublishTime_ = value;
11149       } else {
11150         postingPublishTimeBuilder_.setMessage(value);
11151       }
11152       bitField0_ |= 0x00800000;
11153       onChanged();
11154       return this;
11155     }
11156     /**
11157      *
11158      *
11159      * <pre>
11160      * The timestamp this job posting was most recently published. The default
11161      * value is the time the request arrives at the server. Invalid timestamps are
11162      * ignored.
11163      * </pre>
11164      *
11165      * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
11166      */
setPostingPublishTime(com.google.protobuf.Timestamp.Builder builderForValue)11167     public Builder setPostingPublishTime(com.google.protobuf.Timestamp.Builder builderForValue) {
11168       if (postingPublishTimeBuilder_ == null) {
11169         postingPublishTime_ = builderForValue.build();
11170       } else {
11171         postingPublishTimeBuilder_.setMessage(builderForValue.build());
11172       }
11173       bitField0_ |= 0x00800000;
11174       onChanged();
11175       return this;
11176     }
11177     /**
11178      *
11179      *
11180      * <pre>
11181      * The timestamp this job posting was most recently published. The default
11182      * value is the time the request arrives at the server. Invalid timestamps are
11183      * ignored.
11184      * </pre>
11185      *
11186      * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
11187      */
mergePostingPublishTime(com.google.protobuf.Timestamp value)11188     public Builder mergePostingPublishTime(com.google.protobuf.Timestamp value) {
11189       if (postingPublishTimeBuilder_ == null) {
11190         if (((bitField0_ & 0x00800000) != 0)
11191             && postingPublishTime_ != null
11192             && postingPublishTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
11193           getPostingPublishTimeBuilder().mergeFrom(value);
11194         } else {
11195           postingPublishTime_ = value;
11196         }
11197       } else {
11198         postingPublishTimeBuilder_.mergeFrom(value);
11199       }
11200       bitField0_ |= 0x00800000;
11201       onChanged();
11202       return this;
11203     }
11204     /**
11205      *
11206      *
11207      * <pre>
11208      * The timestamp this job posting was most recently published. The default
11209      * value is the time the request arrives at the server. Invalid timestamps are
11210      * ignored.
11211      * </pre>
11212      *
11213      * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
11214      */
clearPostingPublishTime()11215     public Builder clearPostingPublishTime() {
11216       bitField0_ = (bitField0_ & ~0x00800000);
11217       postingPublishTime_ = null;
11218       if (postingPublishTimeBuilder_ != null) {
11219         postingPublishTimeBuilder_.dispose();
11220         postingPublishTimeBuilder_ = null;
11221       }
11222       onChanged();
11223       return this;
11224     }
11225     /**
11226      *
11227      *
11228      * <pre>
11229      * The timestamp this job posting was most recently published. The default
11230      * value is the time the request arrives at the server. Invalid timestamps are
11231      * ignored.
11232      * </pre>
11233      *
11234      * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
11235      */
getPostingPublishTimeBuilder()11236     public com.google.protobuf.Timestamp.Builder getPostingPublishTimeBuilder() {
11237       bitField0_ |= 0x00800000;
11238       onChanged();
11239       return getPostingPublishTimeFieldBuilder().getBuilder();
11240     }
11241     /**
11242      *
11243      *
11244      * <pre>
11245      * The timestamp this job posting was most recently published. The default
11246      * value is the time the request arrives at the server. Invalid timestamps are
11247      * ignored.
11248      * </pre>
11249      *
11250      * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
11251      */
getPostingPublishTimeOrBuilder()11252     public com.google.protobuf.TimestampOrBuilder getPostingPublishTimeOrBuilder() {
11253       if (postingPublishTimeBuilder_ != null) {
11254         return postingPublishTimeBuilder_.getMessageOrBuilder();
11255       } else {
11256         return postingPublishTime_ == null
11257             ? com.google.protobuf.Timestamp.getDefaultInstance()
11258             : postingPublishTime_;
11259       }
11260     }
11261     /**
11262      *
11263      *
11264      * <pre>
11265      * The timestamp this job posting was most recently published. The default
11266      * value is the time the request arrives at the server. Invalid timestamps are
11267      * ignored.
11268      * </pre>
11269      *
11270      * <code>.google.protobuf.Timestamp posting_publish_time = 24;</code>
11271      */
11272     private com.google.protobuf.SingleFieldBuilderV3<
11273             com.google.protobuf.Timestamp,
11274             com.google.protobuf.Timestamp.Builder,
11275             com.google.protobuf.TimestampOrBuilder>
getPostingPublishTimeFieldBuilder()11276         getPostingPublishTimeFieldBuilder() {
11277       if (postingPublishTimeBuilder_ == null) {
11278         postingPublishTimeBuilder_ =
11279             new com.google.protobuf.SingleFieldBuilderV3<
11280                 com.google.protobuf.Timestamp,
11281                 com.google.protobuf.Timestamp.Builder,
11282                 com.google.protobuf.TimestampOrBuilder>(
11283                 getPostingPublishTime(), getParentForChildren(), isClean());
11284         postingPublishTime_ = null;
11285       }
11286       return postingPublishTimeBuilder_;
11287     }
11288 
11289     private com.google.protobuf.Timestamp postingExpireTime_;
11290     private com.google.protobuf.SingleFieldBuilderV3<
11291             com.google.protobuf.Timestamp,
11292             com.google.protobuf.Timestamp.Builder,
11293             com.google.protobuf.TimestampOrBuilder>
11294         postingExpireTimeBuilder_;
11295     /**
11296      *
11297      *
11298      * <pre>
11299      * Strongly recommended for the best service experience.
11300      * The expiration timestamp of the job. After this timestamp, the
11301      * job is marked as expired, and it no longer appears in search results. The
11302      * expired job can't be listed by the
11303      * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
11304      * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
11305      * or updated with the
11306      * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
11307      * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
11308      * expired job can be updated and opened again by using a future expiration
11309      * timestamp. Updating an expired job fails if there is another existing open
11310      * job with same [company][google.cloud.talent.v4.Job.company],
11311      * [language_code][google.cloud.talent.v4.Job.language_code] and
11312      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
11313      * The expired jobs are retained in our system for 90 days. However, the
11314      * overall expired job count cannot exceed 3 times the maximum number of
11315      * open jobs over previous 7 days. If this threshold is exceeded,
11316      * expired jobs are cleaned out in order of earliest expire time.
11317      * Expired jobs are no longer accessible after they are cleaned
11318      * out.
11319      * Invalid timestamps are ignored, and treated as expire time not provided.
11320      * If the timestamp is before the instant request is made, the job
11321      * is treated as expired immediately on creation. This kind of job can
11322      * not be updated. And when creating a job with past timestamp, the
11323      * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
11324      * must be set before
11325      * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
11326      * purpose of this feature is to allow other objects, such as [Application][],
11327      * to refer a job that didn't exist in the system prior to becoming expired.
11328      * If you want to modify a job that was expired on creation, delete it and
11329      * create a new one.
11330      * If this value isn't provided at the time of job creation or is invalid,
11331      * the job posting expires after 30 days from the job's creation time. For
11332      * example, if the job was created on 2017/01/01 13:00AM UTC with an
11333      * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
11334      * If this value isn't provided on job update, it depends on the field masks
11335      * set by
11336      * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
11337      * If the field masks include
11338      * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
11339      * empty meaning that every field is updated, the job posting expires after 30
11340      * days from the job's last update time. Otherwise the expiration date isn't
11341      * updated.
11342      * </pre>
11343      *
11344      * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
11345      *
11346      * @return Whether the postingExpireTime field is set.
11347      */
hasPostingExpireTime()11348     public boolean hasPostingExpireTime() {
11349       return ((bitField0_ & 0x01000000) != 0);
11350     }
11351     /**
11352      *
11353      *
11354      * <pre>
11355      * Strongly recommended for the best service experience.
11356      * The expiration timestamp of the job. After this timestamp, the
11357      * job is marked as expired, and it no longer appears in search results. The
11358      * expired job can't be listed by the
11359      * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
11360      * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
11361      * or updated with the
11362      * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
11363      * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
11364      * expired job can be updated and opened again by using a future expiration
11365      * timestamp. Updating an expired job fails if there is another existing open
11366      * job with same [company][google.cloud.talent.v4.Job.company],
11367      * [language_code][google.cloud.talent.v4.Job.language_code] and
11368      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
11369      * The expired jobs are retained in our system for 90 days. However, the
11370      * overall expired job count cannot exceed 3 times the maximum number of
11371      * open jobs over previous 7 days. If this threshold is exceeded,
11372      * expired jobs are cleaned out in order of earliest expire time.
11373      * Expired jobs are no longer accessible after they are cleaned
11374      * out.
11375      * Invalid timestamps are ignored, and treated as expire time not provided.
11376      * If the timestamp is before the instant request is made, the job
11377      * is treated as expired immediately on creation. This kind of job can
11378      * not be updated. And when creating a job with past timestamp, the
11379      * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
11380      * must be set before
11381      * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
11382      * purpose of this feature is to allow other objects, such as [Application][],
11383      * to refer a job that didn't exist in the system prior to becoming expired.
11384      * If you want to modify a job that was expired on creation, delete it and
11385      * create a new one.
11386      * If this value isn't provided at the time of job creation or is invalid,
11387      * the job posting expires after 30 days from the job's creation time. For
11388      * example, if the job was created on 2017/01/01 13:00AM UTC with an
11389      * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
11390      * If this value isn't provided on job update, it depends on the field masks
11391      * set by
11392      * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
11393      * If the field masks include
11394      * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
11395      * empty meaning that every field is updated, the job posting expires after 30
11396      * days from the job's last update time. Otherwise the expiration date isn't
11397      * updated.
11398      * </pre>
11399      *
11400      * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
11401      *
11402      * @return The postingExpireTime.
11403      */
getPostingExpireTime()11404     public com.google.protobuf.Timestamp getPostingExpireTime() {
11405       if (postingExpireTimeBuilder_ == null) {
11406         return postingExpireTime_ == null
11407             ? com.google.protobuf.Timestamp.getDefaultInstance()
11408             : postingExpireTime_;
11409       } else {
11410         return postingExpireTimeBuilder_.getMessage();
11411       }
11412     }
11413     /**
11414      *
11415      *
11416      * <pre>
11417      * Strongly recommended for the best service experience.
11418      * The expiration timestamp of the job. After this timestamp, the
11419      * job is marked as expired, and it no longer appears in search results. The
11420      * expired job can't be listed by the
11421      * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
11422      * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
11423      * or updated with the
11424      * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
11425      * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
11426      * expired job can be updated and opened again by using a future expiration
11427      * timestamp. Updating an expired job fails if there is another existing open
11428      * job with same [company][google.cloud.talent.v4.Job.company],
11429      * [language_code][google.cloud.talent.v4.Job.language_code] and
11430      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
11431      * The expired jobs are retained in our system for 90 days. However, the
11432      * overall expired job count cannot exceed 3 times the maximum number of
11433      * open jobs over previous 7 days. If this threshold is exceeded,
11434      * expired jobs are cleaned out in order of earliest expire time.
11435      * Expired jobs are no longer accessible after they are cleaned
11436      * out.
11437      * Invalid timestamps are ignored, and treated as expire time not provided.
11438      * If the timestamp is before the instant request is made, the job
11439      * is treated as expired immediately on creation. This kind of job can
11440      * not be updated. And when creating a job with past timestamp, the
11441      * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
11442      * must be set before
11443      * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
11444      * purpose of this feature is to allow other objects, such as [Application][],
11445      * to refer a job that didn't exist in the system prior to becoming expired.
11446      * If you want to modify a job that was expired on creation, delete it and
11447      * create a new one.
11448      * If this value isn't provided at the time of job creation or is invalid,
11449      * the job posting expires after 30 days from the job's creation time. For
11450      * example, if the job was created on 2017/01/01 13:00AM UTC with an
11451      * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
11452      * If this value isn't provided on job update, it depends on the field masks
11453      * set by
11454      * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
11455      * If the field masks include
11456      * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
11457      * empty meaning that every field is updated, the job posting expires after 30
11458      * days from the job's last update time. Otherwise the expiration date isn't
11459      * updated.
11460      * </pre>
11461      *
11462      * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
11463      */
setPostingExpireTime(com.google.protobuf.Timestamp value)11464     public Builder setPostingExpireTime(com.google.protobuf.Timestamp value) {
11465       if (postingExpireTimeBuilder_ == null) {
11466         if (value == null) {
11467           throw new NullPointerException();
11468         }
11469         postingExpireTime_ = value;
11470       } else {
11471         postingExpireTimeBuilder_.setMessage(value);
11472       }
11473       bitField0_ |= 0x01000000;
11474       onChanged();
11475       return this;
11476     }
11477     /**
11478      *
11479      *
11480      * <pre>
11481      * Strongly recommended for the best service experience.
11482      * The expiration timestamp of the job. After this timestamp, the
11483      * job is marked as expired, and it no longer appears in search results. The
11484      * expired job can't be listed by the
11485      * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
11486      * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
11487      * or updated with the
11488      * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
11489      * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
11490      * expired job can be updated and opened again by using a future expiration
11491      * timestamp. Updating an expired job fails if there is another existing open
11492      * job with same [company][google.cloud.talent.v4.Job.company],
11493      * [language_code][google.cloud.talent.v4.Job.language_code] and
11494      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
11495      * The expired jobs are retained in our system for 90 days. However, the
11496      * overall expired job count cannot exceed 3 times the maximum number of
11497      * open jobs over previous 7 days. If this threshold is exceeded,
11498      * expired jobs are cleaned out in order of earliest expire time.
11499      * Expired jobs are no longer accessible after they are cleaned
11500      * out.
11501      * Invalid timestamps are ignored, and treated as expire time not provided.
11502      * If the timestamp is before the instant request is made, the job
11503      * is treated as expired immediately on creation. This kind of job can
11504      * not be updated. And when creating a job with past timestamp, the
11505      * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
11506      * must be set before
11507      * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
11508      * purpose of this feature is to allow other objects, such as [Application][],
11509      * to refer a job that didn't exist in the system prior to becoming expired.
11510      * If you want to modify a job that was expired on creation, delete it and
11511      * create a new one.
11512      * If this value isn't provided at the time of job creation or is invalid,
11513      * the job posting expires after 30 days from the job's creation time. For
11514      * example, if the job was created on 2017/01/01 13:00AM UTC with an
11515      * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
11516      * If this value isn't provided on job update, it depends on the field masks
11517      * set by
11518      * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
11519      * If the field masks include
11520      * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
11521      * empty meaning that every field is updated, the job posting expires after 30
11522      * days from the job's last update time. Otherwise the expiration date isn't
11523      * updated.
11524      * </pre>
11525      *
11526      * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
11527      */
setPostingExpireTime(com.google.protobuf.Timestamp.Builder builderForValue)11528     public Builder setPostingExpireTime(com.google.protobuf.Timestamp.Builder builderForValue) {
11529       if (postingExpireTimeBuilder_ == null) {
11530         postingExpireTime_ = builderForValue.build();
11531       } else {
11532         postingExpireTimeBuilder_.setMessage(builderForValue.build());
11533       }
11534       bitField0_ |= 0x01000000;
11535       onChanged();
11536       return this;
11537     }
11538     /**
11539      *
11540      *
11541      * <pre>
11542      * Strongly recommended for the best service experience.
11543      * The expiration timestamp of the job. After this timestamp, the
11544      * job is marked as expired, and it no longer appears in search results. The
11545      * expired job can't be listed by the
11546      * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
11547      * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
11548      * or updated with the
11549      * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
11550      * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
11551      * expired job can be updated and opened again by using a future expiration
11552      * timestamp. Updating an expired job fails if there is another existing open
11553      * job with same [company][google.cloud.talent.v4.Job.company],
11554      * [language_code][google.cloud.talent.v4.Job.language_code] and
11555      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
11556      * The expired jobs are retained in our system for 90 days. However, the
11557      * overall expired job count cannot exceed 3 times the maximum number of
11558      * open jobs over previous 7 days. If this threshold is exceeded,
11559      * expired jobs are cleaned out in order of earliest expire time.
11560      * Expired jobs are no longer accessible after they are cleaned
11561      * out.
11562      * Invalid timestamps are ignored, and treated as expire time not provided.
11563      * If the timestamp is before the instant request is made, the job
11564      * is treated as expired immediately on creation. This kind of job can
11565      * not be updated. And when creating a job with past timestamp, the
11566      * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
11567      * must be set before
11568      * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
11569      * purpose of this feature is to allow other objects, such as [Application][],
11570      * to refer a job that didn't exist in the system prior to becoming expired.
11571      * If you want to modify a job that was expired on creation, delete it and
11572      * create a new one.
11573      * If this value isn't provided at the time of job creation or is invalid,
11574      * the job posting expires after 30 days from the job's creation time. For
11575      * example, if the job was created on 2017/01/01 13:00AM UTC with an
11576      * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
11577      * If this value isn't provided on job update, it depends on the field masks
11578      * set by
11579      * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
11580      * If the field masks include
11581      * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
11582      * empty meaning that every field is updated, the job posting expires after 30
11583      * days from the job's last update time. Otherwise the expiration date isn't
11584      * updated.
11585      * </pre>
11586      *
11587      * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
11588      */
mergePostingExpireTime(com.google.protobuf.Timestamp value)11589     public Builder mergePostingExpireTime(com.google.protobuf.Timestamp value) {
11590       if (postingExpireTimeBuilder_ == null) {
11591         if (((bitField0_ & 0x01000000) != 0)
11592             && postingExpireTime_ != null
11593             && postingExpireTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
11594           getPostingExpireTimeBuilder().mergeFrom(value);
11595         } else {
11596           postingExpireTime_ = value;
11597         }
11598       } else {
11599         postingExpireTimeBuilder_.mergeFrom(value);
11600       }
11601       bitField0_ |= 0x01000000;
11602       onChanged();
11603       return this;
11604     }
11605     /**
11606      *
11607      *
11608      * <pre>
11609      * Strongly recommended for the best service experience.
11610      * The expiration timestamp of the job. After this timestamp, the
11611      * job is marked as expired, and it no longer appears in search results. The
11612      * expired job can't be listed by the
11613      * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
11614      * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
11615      * or updated with the
11616      * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
11617      * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
11618      * expired job can be updated and opened again by using a future expiration
11619      * timestamp. Updating an expired job fails if there is another existing open
11620      * job with same [company][google.cloud.talent.v4.Job.company],
11621      * [language_code][google.cloud.talent.v4.Job.language_code] and
11622      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
11623      * The expired jobs are retained in our system for 90 days. However, the
11624      * overall expired job count cannot exceed 3 times the maximum number of
11625      * open jobs over previous 7 days. If this threshold is exceeded,
11626      * expired jobs are cleaned out in order of earliest expire time.
11627      * Expired jobs are no longer accessible after they are cleaned
11628      * out.
11629      * Invalid timestamps are ignored, and treated as expire time not provided.
11630      * If the timestamp is before the instant request is made, the job
11631      * is treated as expired immediately on creation. This kind of job can
11632      * not be updated. And when creating a job with past timestamp, the
11633      * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
11634      * must be set before
11635      * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
11636      * purpose of this feature is to allow other objects, such as [Application][],
11637      * to refer a job that didn't exist in the system prior to becoming expired.
11638      * If you want to modify a job that was expired on creation, delete it and
11639      * create a new one.
11640      * If this value isn't provided at the time of job creation or is invalid,
11641      * the job posting expires after 30 days from the job's creation time. For
11642      * example, if the job was created on 2017/01/01 13:00AM UTC with an
11643      * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
11644      * If this value isn't provided on job update, it depends on the field masks
11645      * set by
11646      * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
11647      * If the field masks include
11648      * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
11649      * empty meaning that every field is updated, the job posting expires after 30
11650      * days from the job's last update time. Otherwise the expiration date isn't
11651      * updated.
11652      * </pre>
11653      *
11654      * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
11655      */
clearPostingExpireTime()11656     public Builder clearPostingExpireTime() {
11657       bitField0_ = (bitField0_ & ~0x01000000);
11658       postingExpireTime_ = null;
11659       if (postingExpireTimeBuilder_ != null) {
11660         postingExpireTimeBuilder_.dispose();
11661         postingExpireTimeBuilder_ = null;
11662       }
11663       onChanged();
11664       return this;
11665     }
11666     /**
11667      *
11668      *
11669      * <pre>
11670      * Strongly recommended for the best service experience.
11671      * The expiration timestamp of the job. After this timestamp, the
11672      * job is marked as expired, and it no longer appears in search results. The
11673      * expired job can't be listed by the
11674      * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
11675      * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
11676      * or updated with the
11677      * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
11678      * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
11679      * expired job can be updated and opened again by using a future expiration
11680      * timestamp. Updating an expired job fails if there is another existing open
11681      * job with same [company][google.cloud.talent.v4.Job.company],
11682      * [language_code][google.cloud.talent.v4.Job.language_code] and
11683      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
11684      * The expired jobs are retained in our system for 90 days. However, the
11685      * overall expired job count cannot exceed 3 times the maximum number of
11686      * open jobs over previous 7 days. If this threshold is exceeded,
11687      * expired jobs are cleaned out in order of earliest expire time.
11688      * Expired jobs are no longer accessible after they are cleaned
11689      * out.
11690      * Invalid timestamps are ignored, and treated as expire time not provided.
11691      * If the timestamp is before the instant request is made, the job
11692      * is treated as expired immediately on creation. This kind of job can
11693      * not be updated. And when creating a job with past timestamp, the
11694      * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
11695      * must be set before
11696      * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
11697      * purpose of this feature is to allow other objects, such as [Application][],
11698      * to refer a job that didn't exist in the system prior to becoming expired.
11699      * If you want to modify a job that was expired on creation, delete it and
11700      * create a new one.
11701      * If this value isn't provided at the time of job creation or is invalid,
11702      * the job posting expires after 30 days from the job's creation time. For
11703      * example, if the job was created on 2017/01/01 13:00AM UTC with an
11704      * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
11705      * If this value isn't provided on job update, it depends on the field masks
11706      * set by
11707      * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
11708      * If the field masks include
11709      * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
11710      * empty meaning that every field is updated, the job posting expires after 30
11711      * days from the job's last update time. Otherwise the expiration date isn't
11712      * updated.
11713      * </pre>
11714      *
11715      * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
11716      */
getPostingExpireTimeBuilder()11717     public com.google.protobuf.Timestamp.Builder getPostingExpireTimeBuilder() {
11718       bitField0_ |= 0x01000000;
11719       onChanged();
11720       return getPostingExpireTimeFieldBuilder().getBuilder();
11721     }
11722     /**
11723      *
11724      *
11725      * <pre>
11726      * Strongly recommended for the best service experience.
11727      * The expiration timestamp of the job. After this timestamp, the
11728      * job is marked as expired, and it no longer appears in search results. The
11729      * expired job can't be listed by the
11730      * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
11731      * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
11732      * or updated with the
11733      * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
11734      * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
11735      * expired job can be updated and opened again by using a future expiration
11736      * timestamp. Updating an expired job fails if there is another existing open
11737      * job with same [company][google.cloud.talent.v4.Job.company],
11738      * [language_code][google.cloud.talent.v4.Job.language_code] and
11739      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
11740      * The expired jobs are retained in our system for 90 days. However, the
11741      * overall expired job count cannot exceed 3 times the maximum number of
11742      * open jobs over previous 7 days. If this threshold is exceeded,
11743      * expired jobs are cleaned out in order of earliest expire time.
11744      * Expired jobs are no longer accessible after they are cleaned
11745      * out.
11746      * Invalid timestamps are ignored, and treated as expire time not provided.
11747      * If the timestamp is before the instant request is made, the job
11748      * is treated as expired immediately on creation. This kind of job can
11749      * not be updated. And when creating a job with past timestamp, the
11750      * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
11751      * must be set before
11752      * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
11753      * purpose of this feature is to allow other objects, such as [Application][],
11754      * to refer a job that didn't exist in the system prior to becoming expired.
11755      * If you want to modify a job that was expired on creation, delete it and
11756      * create a new one.
11757      * If this value isn't provided at the time of job creation or is invalid,
11758      * the job posting expires after 30 days from the job's creation time. For
11759      * example, if the job was created on 2017/01/01 13:00AM UTC with an
11760      * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
11761      * If this value isn't provided on job update, it depends on the field masks
11762      * set by
11763      * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
11764      * If the field masks include
11765      * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
11766      * empty meaning that every field is updated, the job posting expires after 30
11767      * days from the job's last update time. Otherwise the expiration date isn't
11768      * updated.
11769      * </pre>
11770      *
11771      * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
11772      */
getPostingExpireTimeOrBuilder()11773     public com.google.protobuf.TimestampOrBuilder getPostingExpireTimeOrBuilder() {
11774       if (postingExpireTimeBuilder_ != null) {
11775         return postingExpireTimeBuilder_.getMessageOrBuilder();
11776       } else {
11777         return postingExpireTime_ == null
11778             ? com.google.protobuf.Timestamp.getDefaultInstance()
11779             : postingExpireTime_;
11780       }
11781     }
11782     /**
11783      *
11784      *
11785      * <pre>
11786      * Strongly recommended for the best service experience.
11787      * The expiration timestamp of the job. After this timestamp, the
11788      * job is marked as expired, and it no longer appears in search results. The
11789      * expired job can't be listed by the
11790      * [ListJobs][google.cloud.talent.v4.JobService.ListJobs] API, but it can be
11791      * retrieved with the [GetJob][google.cloud.talent.v4.JobService.GetJob] API
11792      * or updated with the
11793      * [UpdateJob][google.cloud.talent.v4.JobService.UpdateJob] API or deleted
11794      * with the [DeleteJob][google.cloud.talent.v4.JobService.DeleteJob] API. An
11795      * expired job can be updated and opened again by using a future expiration
11796      * timestamp. Updating an expired job fails if there is another existing open
11797      * job with same [company][google.cloud.talent.v4.Job.company],
11798      * [language_code][google.cloud.talent.v4.Job.language_code] and
11799      * [requisition_id][google.cloud.talent.v4.Job.requisition_id].
11800      * The expired jobs are retained in our system for 90 days. However, the
11801      * overall expired job count cannot exceed 3 times the maximum number of
11802      * open jobs over previous 7 days. If this threshold is exceeded,
11803      * expired jobs are cleaned out in order of earliest expire time.
11804      * Expired jobs are no longer accessible after they are cleaned
11805      * out.
11806      * Invalid timestamps are ignored, and treated as expire time not provided.
11807      * If the timestamp is before the instant request is made, the job
11808      * is treated as expired immediately on creation. This kind of job can
11809      * not be updated. And when creating a job with past timestamp, the
11810      * [posting_publish_time][google.cloud.talent.v4.Job.posting_publish_time]
11811      * must be set before
11812      * [posting_expire_time][google.cloud.talent.v4.Job.posting_expire_time]. The
11813      * purpose of this feature is to allow other objects, such as [Application][],
11814      * to refer a job that didn't exist in the system prior to becoming expired.
11815      * If you want to modify a job that was expired on creation, delete it and
11816      * create a new one.
11817      * If this value isn't provided at the time of job creation or is invalid,
11818      * the job posting expires after 30 days from the job's creation time. For
11819      * example, if the job was created on 2017/01/01 13:00AM UTC with an
11820      * unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
11821      * If this value isn't provided on job update, it depends on the field masks
11822      * set by
11823      * [UpdateJobRequest.update_mask][google.cloud.talent.v4.UpdateJobRequest.update_mask].
11824      * If the field masks include
11825      * [job_end_time][google.cloud.talent.v4.Job.job_end_time], or the masks are
11826      * empty meaning that every field is updated, the job posting expires after 30
11827      * days from the job's last update time. Otherwise the expiration date isn't
11828      * updated.
11829      * </pre>
11830      *
11831      * <code>.google.protobuf.Timestamp posting_expire_time = 25;</code>
11832      */
11833     private com.google.protobuf.SingleFieldBuilderV3<
11834             com.google.protobuf.Timestamp,
11835             com.google.protobuf.Timestamp.Builder,
11836             com.google.protobuf.TimestampOrBuilder>
getPostingExpireTimeFieldBuilder()11837         getPostingExpireTimeFieldBuilder() {
11838       if (postingExpireTimeBuilder_ == null) {
11839         postingExpireTimeBuilder_ =
11840             new com.google.protobuf.SingleFieldBuilderV3<
11841                 com.google.protobuf.Timestamp,
11842                 com.google.protobuf.Timestamp.Builder,
11843                 com.google.protobuf.TimestampOrBuilder>(
11844                 getPostingExpireTime(), getParentForChildren(), isClean());
11845         postingExpireTime_ = null;
11846       }
11847       return postingExpireTimeBuilder_;
11848     }
11849 
11850     private com.google.protobuf.Timestamp postingCreateTime_;
11851     private com.google.protobuf.SingleFieldBuilderV3<
11852             com.google.protobuf.Timestamp,
11853             com.google.protobuf.Timestamp.Builder,
11854             com.google.protobuf.TimestampOrBuilder>
11855         postingCreateTimeBuilder_;
11856     /**
11857      *
11858      *
11859      * <pre>
11860      * Output only. The timestamp when this job posting was created.
11861      * </pre>
11862      *
11863      * <code>
11864      * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
11865      * </code>
11866      *
11867      * @return Whether the postingCreateTime field is set.
11868      */
hasPostingCreateTime()11869     public boolean hasPostingCreateTime() {
11870       return ((bitField0_ & 0x02000000) != 0);
11871     }
11872     /**
11873      *
11874      *
11875      * <pre>
11876      * Output only. The timestamp when this job posting was created.
11877      * </pre>
11878      *
11879      * <code>
11880      * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
11881      * </code>
11882      *
11883      * @return The postingCreateTime.
11884      */
getPostingCreateTime()11885     public com.google.protobuf.Timestamp getPostingCreateTime() {
11886       if (postingCreateTimeBuilder_ == null) {
11887         return postingCreateTime_ == null
11888             ? com.google.protobuf.Timestamp.getDefaultInstance()
11889             : postingCreateTime_;
11890       } else {
11891         return postingCreateTimeBuilder_.getMessage();
11892       }
11893     }
11894     /**
11895      *
11896      *
11897      * <pre>
11898      * Output only. The timestamp when this job posting was created.
11899      * </pre>
11900      *
11901      * <code>
11902      * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
11903      * </code>
11904      */
setPostingCreateTime(com.google.protobuf.Timestamp value)11905     public Builder setPostingCreateTime(com.google.protobuf.Timestamp value) {
11906       if (postingCreateTimeBuilder_ == null) {
11907         if (value == null) {
11908           throw new NullPointerException();
11909         }
11910         postingCreateTime_ = value;
11911       } else {
11912         postingCreateTimeBuilder_.setMessage(value);
11913       }
11914       bitField0_ |= 0x02000000;
11915       onChanged();
11916       return this;
11917     }
11918     /**
11919      *
11920      *
11921      * <pre>
11922      * Output only. The timestamp when this job posting was created.
11923      * </pre>
11924      *
11925      * <code>
11926      * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
11927      * </code>
11928      */
setPostingCreateTime(com.google.protobuf.Timestamp.Builder builderForValue)11929     public Builder setPostingCreateTime(com.google.protobuf.Timestamp.Builder builderForValue) {
11930       if (postingCreateTimeBuilder_ == null) {
11931         postingCreateTime_ = builderForValue.build();
11932       } else {
11933         postingCreateTimeBuilder_.setMessage(builderForValue.build());
11934       }
11935       bitField0_ |= 0x02000000;
11936       onChanged();
11937       return this;
11938     }
11939     /**
11940      *
11941      *
11942      * <pre>
11943      * Output only. The timestamp when this job posting was created.
11944      * </pre>
11945      *
11946      * <code>
11947      * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
11948      * </code>
11949      */
mergePostingCreateTime(com.google.protobuf.Timestamp value)11950     public Builder mergePostingCreateTime(com.google.protobuf.Timestamp value) {
11951       if (postingCreateTimeBuilder_ == null) {
11952         if (((bitField0_ & 0x02000000) != 0)
11953             && postingCreateTime_ != null
11954             && postingCreateTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
11955           getPostingCreateTimeBuilder().mergeFrom(value);
11956         } else {
11957           postingCreateTime_ = value;
11958         }
11959       } else {
11960         postingCreateTimeBuilder_.mergeFrom(value);
11961       }
11962       bitField0_ |= 0x02000000;
11963       onChanged();
11964       return this;
11965     }
11966     /**
11967      *
11968      *
11969      * <pre>
11970      * Output only. The timestamp when this job posting was created.
11971      * </pre>
11972      *
11973      * <code>
11974      * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
11975      * </code>
11976      */
clearPostingCreateTime()11977     public Builder clearPostingCreateTime() {
11978       bitField0_ = (bitField0_ & ~0x02000000);
11979       postingCreateTime_ = null;
11980       if (postingCreateTimeBuilder_ != null) {
11981         postingCreateTimeBuilder_.dispose();
11982         postingCreateTimeBuilder_ = null;
11983       }
11984       onChanged();
11985       return this;
11986     }
11987     /**
11988      *
11989      *
11990      * <pre>
11991      * Output only. The timestamp when this job posting was created.
11992      * </pre>
11993      *
11994      * <code>
11995      * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
11996      * </code>
11997      */
getPostingCreateTimeBuilder()11998     public com.google.protobuf.Timestamp.Builder getPostingCreateTimeBuilder() {
11999       bitField0_ |= 0x02000000;
12000       onChanged();
12001       return getPostingCreateTimeFieldBuilder().getBuilder();
12002     }
12003     /**
12004      *
12005      *
12006      * <pre>
12007      * Output only. The timestamp when this job posting was created.
12008      * </pre>
12009      *
12010      * <code>
12011      * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
12012      * </code>
12013      */
getPostingCreateTimeOrBuilder()12014     public com.google.protobuf.TimestampOrBuilder getPostingCreateTimeOrBuilder() {
12015       if (postingCreateTimeBuilder_ != null) {
12016         return postingCreateTimeBuilder_.getMessageOrBuilder();
12017       } else {
12018         return postingCreateTime_ == null
12019             ? com.google.protobuf.Timestamp.getDefaultInstance()
12020             : postingCreateTime_;
12021       }
12022     }
12023     /**
12024      *
12025      *
12026      * <pre>
12027      * Output only. The timestamp when this job posting was created.
12028      * </pre>
12029      *
12030      * <code>
12031      * .google.protobuf.Timestamp posting_create_time = 26 [(.google.api.field_behavior) = OUTPUT_ONLY];
12032      * </code>
12033      */
12034     private com.google.protobuf.SingleFieldBuilderV3<
12035             com.google.protobuf.Timestamp,
12036             com.google.protobuf.Timestamp.Builder,
12037             com.google.protobuf.TimestampOrBuilder>
getPostingCreateTimeFieldBuilder()12038         getPostingCreateTimeFieldBuilder() {
12039       if (postingCreateTimeBuilder_ == null) {
12040         postingCreateTimeBuilder_ =
12041             new com.google.protobuf.SingleFieldBuilderV3<
12042                 com.google.protobuf.Timestamp,
12043                 com.google.protobuf.Timestamp.Builder,
12044                 com.google.protobuf.TimestampOrBuilder>(
12045                 getPostingCreateTime(), getParentForChildren(), isClean());
12046         postingCreateTime_ = null;
12047       }
12048       return postingCreateTimeBuilder_;
12049     }
12050 
12051     private com.google.protobuf.Timestamp postingUpdateTime_;
12052     private com.google.protobuf.SingleFieldBuilderV3<
12053             com.google.protobuf.Timestamp,
12054             com.google.protobuf.Timestamp.Builder,
12055             com.google.protobuf.TimestampOrBuilder>
12056         postingUpdateTimeBuilder_;
12057     /**
12058      *
12059      *
12060      * <pre>
12061      * Output only. The timestamp when this job posting was last updated.
12062      * </pre>
12063      *
12064      * <code>
12065      * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
12066      * </code>
12067      *
12068      * @return Whether the postingUpdateTime field is set.
12069      */
hasPostingUpdateTime()12070     public boolean hasPostingUpdateTime() {
12071       return ((bitField0_ & 0x04000000) != 0);
12072     }
12073     /**
12074      *
12075      *
12076      * <pre>
12077      * Output only. The timestamp when this job posting was last updated.
12078      * </pre>
12079      *
12080      * <code>
12081      * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
12082      * </code>
12083      *
12084      * @return The postingUpdateTime.
12085      */
getPostingUpdateTime()12086     public com.google.protobuf.Timestamp getPostingUpdateTime() {
12087       if (postingUpdateTimeBuilder_ == null) {
12088         return postingUpdateTime_ == null
12089             ? com.google.protobuf.Timestamp.getDefaultInstance()
12090             : postingUpdateTime_;
12091       } else {
12092         return postingUpdateTimeBuilder_.getMessage();
12093       }
12094     }
12095     /**
12096      *
12097      *
12098      * <pre>
12099      * Output only. The timestamp when this job posting was last updated.
12100      * </pre>
12101      *
12102      * <code>
12103      * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
12104      * </code>
12105      */
setPostingUpdateTime(com.google.protobuf.Timestamp value)12106     public Builder setPostingUpdateTime(com.google.protobuf.Timestamp value) {
12107       if (postingUpdateTimeBuilder_ == null) {
12108         if (value == null) {
12109           throw new NullPointerException();
12110         }
12111         postingUpdateTime_ = value;
12112       } else {
12113         postingUpdateTimeBuilder_.setMessage(value);
12114       }
12115       bitField0_ |= 0x04000000;
12116       onChanged();
12117       return this;
12118     }
12119     /**
12120      *
12121      *
12122      * <pre>
12123      * Output only. The timestamp when this job posting was last updated.
12124      * </pre>
12125      *
12126      * <code>
12127      * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
12128      * </code>
12129      */
setPostingUpdateTime(com.google.protobuf.Timestamp.Builder builderForValue)12130     public Builder setPostingUpdateTime(com.google.protobuf.Timestamp.Builder builderForValue) {
12131       if (postingUpdateTimeBuilder_ == null) {
12132         postingUpdateTime_ = builderForValue.build();
12133       } else {
12134         postingUpdateTimeBuilder_.setMessage(builderForValue.build());
12135       }
12136       bitField0_ |= 0x04000000;
12137       onChanged();
12138       return this;
12139     }
12140     /**
12141      *
12142      *
12143      * <pre>
12144      * Output only. The timestamp when this job posting was last updated.
12145      * </pre>
12146      *
12147      * <code>
12148      * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
12149      * </code>
12150      */
mergePostingUpdateTime(com.google.protobuf.Timestamp value)12151     public Builder mergePostingUpdateTime(com.google.protobuf.Timestamp value) {
12152       if (postingUpdateTimeBuilder_ == null) {
12153         if (((bitField0_ & 0x04000000) != 0)
12154             && postingUpdateTime_ != null
12155             && postingUpdateTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
12156           getPostingUpdateTimeBuilder().mergeFrom(value);
12157         } else {
12158           postingUpdateTime_ = value;
12159         }
12160       } else {
12161         postingUpdateTimeBuilder_.mergeFrom(value);
12162       }
12163       bitField0_ |= 0x04000000;
12164       onChanged();
12165       return this;
12166     }
12167     /**
12168      *
12169      *
12170      * <pre>
12171      * Output only. The timestamp when this job posting was last updated.
12172      * </pre>
12173      *
12174      * <code>
12175      * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
12176      * </code>
12177      */
clearPostingUpdateTime()12178     public Builder clearPostingUpdateTime() {
12179       bitField0_ = (bitField0_ & ~0x04000000);
12180       postingUpdateTime_ = null;
12181       if (postingUpdateTimeBuilder_ != null) {
12182         postingUpdateTimeBuilder_.dispose();
12183         postingUpdateTimeBuilder_ = null;
12184       }
12185       onChanged();
12186       return this;
12187     }
12188     /**
12189      *
12190      *
12191      * <pre>
12192      * Output only. The timestamp when this job posting was last updated.
12193      * </pre>
12194      *
12195      * <code>
12196      * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
12197      * </code>
12198      */
getPostingUpdateTimeBuilder()12199     public com.google.protobuf.Timestamp.Builder getPostingUpdateTimeBuilder() {
12200       bitField0_ |= 0x04000000;
12201       onChanged();
12202       return getPostingUpdateTimeFieldBuilder().getBuilder();
12203     }
12204     /**
12205      *
12206      *
12207      * <pre>
12208      * Output only. The timestamp when this job posting was last updated.
12209      * </pre>
12210      *
12211      * <code>
12212      * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
12213      * </code>
12214      */
getPostingUpdateTimeOrBuilder()12215     public com.google.protobuf.TimestampOrBuilder getPostingUpdateTimeOrBuilder() {
12216       if (postingUpdateTimeBuilder_ != null) {
12217         return postingUpdateTimeBuilder_.getMessageOrBuilder();
12218       } else {
12219         return postingUpdateTime_ == null
12220             ? com.google.protobuf.Timestamp.getDefaultInstance()
12221             : postingUpdateTime_;
12222       }
12223     }
12224     /**
12225      *
12226      *
12227      * <pre>
12228      * Output only. The timestamp when this job posting was last updated.
12229      * </pre>
12230      *
12231      * <code>
12232      * .google.protobuf.Timestamp posting_update_time = 27 [(.google.api.field_behavior) = OUTPUT_ONLY];
12233      * </code>
12234      */
12235     private com.google.protobuf.SingleFieldBuilderV3<
12236             com.google.protobuf.Timestamp,
12237             com.google.protobuf.Timestamp.Builder,
12238             com.google.protobuf.TimestampOrBuilder>
getPostingUpdateTimeFieldBuilder()12239         getPostingUpdateTimeFieldBuilder() {
12240       if (postingUpdateTimeBuilder_ == null) {
12241         postingUpdateTimeBuilder_ =
12242             new com.google.protobuf.SingleFieldBuilderV3<
12243                 com.google.protobuf.Timestamp,
12244                 com.google.protobuf.Timestamp.Builder,
12245                 com.google.protobuf.TimestampOrBuilder>(
12246                 getPostingUpdateTime(), getParentForChildren(), isClean());
12247         postingUpdateTime_ = null;
12248       }
12249       return postingUpdateTimeBuilder_;
12250     }
12251 
12252     private java.lang.Object companyDisplayName_ = "";
12253     /**
12254      *
12255      *
12256      * <pre>
12257      * Output only. Display name of the company listing the job.
12258      * </pre>
12259      *
12260      * <code>string company_display_name = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
12261      *
12262      * @return The companyDisplayName.
12263      */
getCompanyDisplayName()12264     public java.lang.String getCompanyDisplayName() {
12265       java.lang.Object ref = companyDisplayName_;
12266       if (!(ref instanceof java.lang.String)) {
12267         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
12268         java.lang.String s = bs.toStringUtf8();
12269         companyDisplayName_ = s;
12270         return s;
12271       } else {
12272         return (java.lang.String) ref;
12273       }
12274     }
12275     /**
12276      *
12277      *
12278      * <pre>
12279      * Output only. Display name of the company listing the job.
12280      * </pre>
12281      *
12282      * <code>string company_display_name = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
12283      *
12284      * @return The bytes for companyDisplayName.
12285      */
getCompanyDisplayNameBytes()12286     public com.google.protobuf.ByteString getCompanyDisplayNameBytes() {
12287       java.lang.Object ref = companyDisplayName_;
12288       if (ref instanceof String) {
12289         com.google.protobuf.ByteString b =
12290             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
12291         companyDisplayName_ = b;
12292         return b;
12293       } else {
12294         return (com.google.protobuf.ByteString) ref;
12295       }
12296     }
12297     /**
12298      *
12299      *
12300      * <pre>
12301      * Output only. Display name of the company listing the job.
12302      * </pre>
12303      *
12304      * <code>string company_display_name = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
12305      *
12306      * @param value The companyDisplayName to set.
12307      * @return This builder for chaining.
12308      */
setCompanyDisplayName(java.lang.String value)12309     public Builder setCompanyDisplayName(java.lang.String value) {
12310       if (value == null) {
12311         throw new NullPointerException();
12312       }
12313       companyDisplayName_ = value;
12314       bitField0_ |= 0x08000000;
12315       onChanged();
12316       return this;
12317     }
12318     /**
12319      *
12320      *
12321      * <pre>
12322      * Output only. Display name of the company listing the job.
12323      * </pre>
12324      *
12325      * <code>string company_display_name = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
12326      *
12327      * @return This builder for chaining.
12328      */
clearCompanyDisplayName()12329     public Builder clearCompanyDisplayName() {
12330       companyDisplayName_ = getDefaultInstance().getCompanyDisplayName();
12331       bitField0_ = (bitField0_ & ~0x08000000);
12332       onChanged();
12333       return this;
12334     }
12335     /**
12336      *
12337      *
12338      * <pre>
12339      * Output only. Display name of the company listing the job.
12340      * </pre>
12341      *
12342      * <code>string company_display_name = 28 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
12343      *
12344      * @param value The bytes for companyDisplayName to set.
12345      * @return This builder for chaining.
12346      */
setCompanyDisplayNameBytes(com.google.protobuf.ByteString value)12347     public Builder setCompanyDisplayNameBytes(com.google.protobuf.ByteString value) {
12348       if (value == null) {
12349         throw new NullPointerException();
12350       }
12351       checkByteStringIsUtf8(value);
12352       companyDisplayName_ = value;
12353       bitField0_ |= 0x08000000;
12354       onChanged();
12355       return this;
12356     }
12357 
12358     private com.google.cloud.talent.v4.Job.DerivedInfo derivedInfo_;
12359     private com.google.protobuf.SingleFieldBuilderV3<
12360             com.google.cloud.talent.v4.Job.DerivedInfo,
12361             com.google.cloud.talent.v4.Job.DerivedInfo.Builder,
12362             com.google.cloud.talent.v4.Job.DerivedInfoOrBuilder>
12363         derivedInfoBuilder_;
12364     /**
12365      *
12366      *
12367      * <pre>
12368      * Output only. Derived details about the job posting.
12369      * </pre>
12370      *
12371      * <code>
12372      * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
12373      * </code>
12374      *
12375      * @return Whether the derivedInfo field is set.
12376      */
hasDerivedInfo()12377     public boolean hasDerivedInfo() {
12378       return ((bitField0_ & 0x10000000) != 0);
12379     }
12380     /**
12381      *
12382      *
12383      * <pre>
12384      * Output only. Derived details about the job posting.
12385      * </pre>
12386      *
12387      * <code>
12388      * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
12389      * </code>
12390      *
12391      * @return The derivedInfo.
12392      */
getDerivedInfo()12393     public com.google.cloud.talent.v4.Job.DerivedInfo getDerivedInfo() {
12394       if (derivedInfoBuilder_ == null) {
12395         return derivedInfo_ == null
12396             ? com.google.cloud.talent.v4.Job.DerivedInfo.getDefaultInstance()
12397             : derivedInfo_;
12398       } else {
12399         return derivedInfoBuilder_.getMessage();
12400       }
12401     }
12402     /**
12403      *
12404      *
12405      * <pre>
12406      * Output only. Derived details about the job posting.
12407      * </pre>
12408      *
12409      * <code>
12410      * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
12411      * </code>
12412      */
setDerivedInfo(com.google.cloud.talent.v4.Job.DerivedInfo value)12413     public Builder setDerivedInfo(com.google.cloud.talent.v4.Job.DerivedInfo value) {
12414       if (derivedInfoBuilder_ == null) {
12415         if (value == null) {
12416           throw new NullPointerException();
12417         }
12418         derivedInfo_ = value;
12419       } else {
12420         derivedInfoBuilder_.setMessage(value);
12421       }
12422       bitField0_ |= 0x10000000;
12423       onChanged();
12424       return this;
12425     }
12426     /**
12427      *
12428      *
12429      * <pre>
12430      * Output only. Derived details about the job posting.
12431      * </pre>
12432      *
12433      * <code>
12434      * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
12435      * </code>
12436      */
setDerivedInfo( com.google.cloud.talent.v4.Job.DerivedInfo.Builder builderForValue)12437     public Builder setDerivedInfo(
12438         com.google.cloud.talent.v4.Job.DerivedInfo.Builder builderForValue) {
12439       if (derivedInfoBuilder_ == null) {
12440         derivedInfo_ = builderForValue.build();
12441       } else {
12442         derivedInfoBuilder_.setMessage(builderForValue.build());
12443       }
12444       bitField0_ |= 0x10000000;
12445       onChanged();
12446       return this;
12447     }
12448     /**
12449      *
12450      *
12451      * <pre>
12452      * Output only. Derived details about the job posting.
12453      * </pre>
12454      *
12455      * <code>
12456      * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
12457      * </code>
12458      */
mergeDerivedInfo(com.google.cloud.talent.v4.Job.DerivedInfo value)12459     public Builder mergeDerivedInfo(com.google.cloud.talent.v4.Job.DerivedInfo value) {
12460       if (derivedInfoBuilder_ == null) {
12461         if (((bitField0_ & 0x10000000) != 0)
12462             && derivedInfo_ != null
12463             && derivedInfo_ != com.google.cloud.talent.v4.Job.DerivedInfo.getDefaultInstance()) {
12464           getDerivedInfoBuilder().mergeFrom(value);
12465         } else {
12466           derivedInfo_ = value;
12467         }
12468       } else {
12469         derivedInfoBuilder_.mergeFrom(value);
12470       }
12471       bitField0_ |= 0x10000000;
12472       onChanged();
12473       return this;
12474     }
12475     /**
12476      *
12477      *
12478      * <pre>
12479      * Output only. Derived details about the job posting.
12480      * </pre>
12481      *
12482      * <code>
12483      * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
12484      * </code>
12485      */
clearDerivedInfo()12486     public Builder clearDerivedInfo() {
12487       bitField0_ = (bitField0_ & ~0x10000000);
12488       derivedInfo_ = null;
12489       if (derivedInfoBuilder_ != null) {
12490         derivedInfoBuilder_.dispose();
12491         derivedInfoBuilder_ = null;
12492       }
12493       onChanged();
12494       return this;
12495     }
12496     /**
12497      *
12498      *
12499      * <pre>
12500      * Output only. Derived details about the job posting.
12501      * </pre>
12502      *
12503      * <code>
12504      * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
12505      * </code>
12506      */
getDerivedInfoBuilder()12507     public com.google.cloud.talent.v4.Job.DerivedInfo.Builder getDerivedInfoBuilder() {
12508       bitField0_ |= 0x10000000;
12509       onChanged();
12510       return getDerivedInfoFieldBuilder().getBuilder();
12511     }
12512     /**
12513      *
12514      *
12515      * <pre>
12516      * Output only. Derived details about the job posting.
12517      * </pre>
12518      *
12519      * <code>
12520      * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
12521      * </code>
12522      */
getDerivedInfoOrBuilder()12523     public com.google.cloud.talent.v4.Job.DerivedInfoOrBuilder getDerivedInfoOrBuilder() {
12524       if (derivedInfoBuilder_ != null) {
12525         return derivedInfoBuilder_.getMessageOrBuilder();
12526       } else {
12527         return derivedInfo_ == null
12528             ? com.google.cloud.talent.v4.Job.DerivedInfo.getDefaultInstance()
12529             : derivedInfo_;
12530       }
12531     }
12532     /**
12533      *
12534      *
12535      * <pre>
12536      * Output only. Derived details about the job posting.
12537      * </pre>
12538      *
12539      * <code>
12540      * .google.cloud.talent.v4.Job.DerivedInfo derived_info = 29 [(.google.api.field_behavior) = OUTPUT_ONLY];
12541      * </code>
12542      */
12543     private com.google.protobuf.SingleFieldBuilderV3<
12544             com.google.cloud.talent.v4.Job.DerivedInfo,
12545             com.google.cloud.talent.v4.Job.DerivedInfo.Builder,
12546             com.google.cloud.talent.v4.Job.DerivedInfoOrBuilder>
getDerivedInfoFieldBuilder()12547         getDerivedInfoFieldBuilder() {
12548       if (derivedInfoBuilder_ == null) {
12549         derivedInfoBuilder_ =
12550             new com.google.protobuf.SingleFieldBuilderV3<
12551                 com.google.cloud.talent.v4.Job.DerivedInfo,
12552                 com.google.cloud.talent.v4.Job.DerivedInfo.Builder,
12553                 com.google.cloud.talent.v4.Job.DerivedInfoOrBuilder>(
12554                 getDerivedInfo(), getParentForChildren(), isClean());
12555         derivedInfo_ = null;
12556       }
12557       return derivedInfoBuilder_;
12558     }
12559 
12560     private com.google.cloud.talent.v4.Job.ProcessingOptions processingOptions_;
12561     private com.google.protobuf.SingleFieldBuilderV3<
12562             com.google.cloud.talent.v4.Job.ProcessingOptions,
12563             com.google.cloud.talent.v4.Job.ProcessingOptions.Builder,
12564             com.google.cloud.talent.v4.Job.ProcessingOptionsOrBuilder>
12565         processingOptionsBuilder_;
12566     /**
12567      *
12568      *
12569      * <pre>
12570      * Options for job processing.
12571      * </pre>
12572      *
12573      * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
12574      *
12575      * @return Whether the processingOptions field is set.
12576      */
hasProcessingOptions()12577     public boolean hasProcessingOptions() {
12578       return ((bitField0_ & 0x20000000) != 0);
12579     }
12580     /**
12581      *
12582      *
12583      * <pre>
12584      * Options for job processing.
12585      * </pre>
12586      *
12587      * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
12588      *
12589      * @return The processingOptions.
12590      */
getProcessingOptions()12591     public com.google.cloud.talent.v4.Job.ProcessingOptions getProcessingOptions() {
12592       if (processingOptionsBuilder_ == null) {
12593         return processingOptions_ == null
12594             ? com.google.cloud.talent.v4.Job.ProcessingOptions.getDefaultInstance()
12595             : processingOptions_;
12596       } else {
12597         return processingOptionsBuilder_.getMessage();
12598       }
12599     }
12600     /**
12601      *
12602      *
12603      * <pre>
12604      * Options for job processing.
12605      * </pre>
12606      *
12607      * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
12608      */
setProcessingOptions(com.google.cloud.talent.v4.Job.ProcessingOptions value)12609     public Builder setProcessingOptions(com.google.cloud.talent.v4.Job.ProcessingOptions value) {
12610       if (processingOptionsBuilder_ == null) {
12611         if (value == null) {
12612           throw new NullPointerException();
12613         }
12614         processingOptions_ = value;
12615       } else {
12616         processingOptionsBuilder_.setMessage(value);
12617       }
12618       bitField0_ |= 0x20000000;
12619       onChanged();
12620       return this;
12621     }
12622     /**
12623      *
12624      *
12625      * <pre>
12626      * Options for job processing.
12627      * </pre>
12628      *
12629      * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
12630      */
setProcessingOptions( com.google.cloud.talent.v4.Job.ProcessingOptions.Builder builderForValue)12631     public Builder setProcessingOptions(
12632         com.google.cloud.talent.v4.Job.ProcessingOptions.Builder builderForValue) {
12633       if (processingOptionsBuilder_ == null) {
12634         processingOptions_ = builderForValue.build();
12635       } else {
12636         processingOptionsBuilder_.setMessage(builderForValue.build());
12637       }
12638       bitField0_ |= 0x20000000;
12639       onChanged();
12640       return this;
12641     }
12642     /**
12643      *
12644      *
12645      * <pre>
12646      * Options for job processing.
12647      * </pre>
12648      *
12649      * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
12650      */
mergeProcessingOptions(com.google.cloud.talent.v4.Job.ProcessingOptions value)12651     public Builder mergeProcessingOptions(com.google.cloud.talent.v4.Job.ProcessingOptions value) {
12652       if (processingOptionsBuilder_ == null) {
12653         if (((bitField0_ & 0x20000000) != 0)
12654             && processingOptions_ != null
12655             && processingOptions_
12656                 != com.google.cloud.talent.v4.Job.ProcessingOptions.getDefaultInstance()) {
12657           getProcessingOptionsBuilder().mergeFrom(value);
12658         } else {
12659           processingOptions_ = value;
12660         }
12661       } else {
12662         processingOptionsBuilder_.mergeFrom(value);
12663       }
12664       bitField0_ |= 0x20000000;
12665       onChanged();
12666       return this;
12667     }
12668     /**
12669      *
12670      *
12671      * <pre>
12672      * Options for job processing.
12673      * </pre>
12674      *
12675      * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
12676      */
clearProcessingOptions()12677     public Builder clearProcessingOptions() {
12678       bitField0_ = (bitField0_ & ~0x20000000);
12679       processingOptions_ = null;
12680       if (processingOptionsBuilder_ != null) {
12681         processingOptionsBuilder_.dispose();
12682         processingOptionsBuilder_ = null;
12683       }
12684       onChanged();
12685       return this;
12686     }
12687     /**
12688      *
12689      *
12690      * <pre>
12691      * Options for job processing.
12692      * </pre>
12693      *
12694      * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
12695      */
getProcessingOptionsBuilder()12696     public com.google.cloud.talent.v4.Job.ProcessingOptions.Builder getProcessingOptionsBuilder() {
12697       bitField0_ |= 0x20000000;
12698       onChanged();
12699       return getProcessingOptionsFieldBuilder().getBuilder();
12700     }
12701     /**
12702      *
12703      *
12704      * <pre>
12705      * Options for job processing.
12706      * </pre>
12707      *
12708      * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
12709      */
12710     public com.google.cloud.talent.v4.Job.ProcessingOptionsOrBuilder
getProcessingOptionsOrBuilder()12711         getProcessingOptionsOrBuilder() {
12712       if (processingOptionsBuilder_ != null) {
12713         return processingOptionsBuilder_.getMessageOrBuilder();
12714       } else {
12715         return processingOptions_ == null
12716             ? com.google.cloud.talent.v4.Job.ProcessingOptions.getDefaultInstance()
12717             : processingOptions_;
12718       }
12719     }
12720     /**
12721      *
12722      *
12723      * <pre>
12724      * Options for job processing.
12725      * </pre>
12726      *
12727      * <code>.google.cloud.talent.v4.Job.ProcessingOptions processing_options = 30;</code>
12728      */
12729     private com.google.protobuf.SingleFieldBuilderV3<
12730             com.google.cloud.talent.v4.Job.ProcessingOptions,
12731             com.google.cloud.talent.v4.Job.ProcessingOptions.Builder,
12732             com.google.cloud.talent.v4.Job.ProcessingOptionsOrBuilder>
getProcessingOptionsFieldBuilder()12733         getProcessingOptionsFieldBuilder() {
12734       if (processingOptionsBuilder_ == null) {
12735         processingOptionsBuilder_ =
12736             new com.google.protobuf.SingleFieldBuilderV3<
12737                 com.google.cloud.talent.v4.Job.ProcessingOptions,
12738                 com.google.cloud.talent.v4.Job.ProcessingOptions.Builder,
12739                 com.google.cloud.talent.v4.Job.ProcessingOptionsOrBuilder>(
12740                 getProcessingOptions(), getParentForChildren(), isClean());
12741         processingOptions_ = null;
12742       }
12743       return processingOptionsBuilder_;
12744     }
12745 
12746     @java.lang.Override
setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)12747     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
12748       return super.setUnknownFields(unknownFields);
12749     }
12750 
12751     @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)12752     public final Builder mergeUnknownFields(
12753         final com.google.protobuf.UnknownFieldSet unknownFields) {
12754       return super.mergeUnknownFields(unknownFields);
12755     }
12756 
12757     // @@protoc_insertion_point(builder_scope:google.cloud.talent.v4.Job)
12758   }
12759 
12760   // @@protoc_insertion_point(class_scope:google.cloud.talent.v4.Job)
12761   private static final com.google.cloud.talent.v4.Job DEFAULT_INSTANCE;
12762 
12763   static {
12764     DEFAULT_INSTANCE = new com.google.cloud.talent.v4.Job();
12765   }
12766 
getDefaultInstance()12767   public static com.google.cloud.talent.v4.Job getDefaultInstance() {
12768     return DEFAULT_INSTANCE;
12769   }
12770 
12771   private static final com.google.protobuf.Parser<Job> PARSER =
12772       new com.google.protobuf.AbstractParser<Job>() {
12773         @java.lang.Override
12774         public Job parsePartialFrom(
12775             com.google.protobuf.CodedInputStream input,
12776             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12777             throws com.google.protobuf.InvalidProtocolBufferException {
12778           Builder builder = newBuilder();
12779           try {
12780             builder.mergeFrom(input, extensionRegistry);
12781           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
12782             throw e.setUnfinishedMessage(builder.buildPartial());
12783           } catch (com.google.protobuf.UninitializedMessageException e) {
12784             throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
12785           } catch (java.io.IOException e) {
12786             throw new com.google.protobuf.InvalidProtocolBufferException(e)
12787                 .setUnfinishedMessage(builder.buildPartial());
12788           }
12789           return builder.buildPartial();
12790         }
12791       };
12792 
parser()12793   public static com.google.protobuf.Parser<Job> parser() {
12794     return PARSER;
12795   }
12796 
12797   @java.lang.Override
getParserForType()12798   public com.google.protobuf.Parser<Job> getParserForType() {
12799     return PARSER;
12800   }
12801 
12802   @java.lang.Override
getDefaultInstanceForType()12803   public com.google.cloud.talent.v4.Job getDefaultInstanceForType() {
12804     return DEFAULT_INSTANCE;
12805   }
12806 }
12807