• 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/aiplatform/v1/custom_job.proto
18 
19 package com.google.cloud.aiplatform.v1;
20 
21 /**
22  *
23  *
24  * <pre>
25  * Represents the spec of a CustomJob.
26  * </pre>
27  *
28  * Protobuf type {@code google.cloud.aiplatform.v1.CustomJobSpec}
29  */
30 public final class CustomJobSpec extends com.google.protobuf.GeneratedMessageV3
31     implements
32     // @@protoc_insertion_point(message_implements:google.cloud.aiplatform.v1.CustomJobSpec)
33     CustomJobSpecOrBuilder {
34   private static final long serialVersionUID = 0L;
35   // Use CustomJobSpec.newBuilder() to construct.
CustomJobSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)36   private CustomJobSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
37     super(builder);
38   }
39 
CustomJobSpec()40   private CustomJobSpec() {
41     workerPoolSpecs_ = java.util.Collections.emptyList();
42     serviceAccount_ = "";
43     network_ = "";
44     reservedIpRanges_ = com.google.protobuf.LazyStringArrayList.EMPTY;
45     tensorboard_ = "";
46     experiment_ = "";
47     experimentRun_ = "";
48   }
49 
50   @java.lang.Override
51   @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)52   protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
53     return new CustomJobSpec();
54   }
55 
56   @java.lang.Override
getUnknownFields()57   public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
58     return this.unknownFields;
59   }
60 
getDescriptor()61   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
62     return com.google.cloud.aiplatform.v1.CustomJobProto
63         .internal_static_google_cloud_aiplatform_v1_CustomJobSpec_descriptor;
64   }
65 
66   @java.lang.Override
67   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()68       internalGetFieldAccessorTable() {
69     return com.google.cloud.aiplatform.v1.CustomJobProto
70         .internal_static_google_cloud_aiplatform_v1_CustomJobSpec_fieldAccessorTable
71         .ensureFieldAccessorsInitialized(
72             com.google.cloud.aiplatform.v1.CustomJobSpec.class,
73             com.google.cloud.aiplatform.v1.CustomJobSpec.Builder.class);
74   }
75 
76   public static final int WORKER_POOL_SPECS_FIELD_NUMBER = 1;
77 
78   @SuppressWarnings("serial")
79   private java.util.List<com.google.cloud.aiplatform.v1.WorkerPoolSpec> workerPoolSpecs_;
80   /**
81    *
82    *
83    * <pre>
84    * Required. The spec of the worker pools including machine type and Docker
85    * image. All worker pools except the first one are optional and can be
86    * skipped by providing an empty value.
87    * </pre>
88    *
89    * <code>
90    * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
91    * </code>
92    */
93   @java.lang.Override
getWorkerPoolSpecsList()94   public java.util.List<com.google.cloud.aiplatform.v1.WorkerPoolSpec> getWorkerPoolSpecsList() {
95     return workerPoolSpecs_;
96   }
97   /**
98    *
99    *
100    * <pre>
101    * Required. The spec of the worker pools including machine type and Docker
102    * image. All worker pools except the first one are optional and can be
103    * skipped by providing an empty value.
104    * </pre>
105    *
106    * <code>
107    * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
108    * </code>
109    */
110   @java.lang.Override
111   public java.util.List<? extends com.google.cloud.aiplatform.v1.WorkerPoolSpecOrBuilder>
getWorkerPoolSpecsOrBuilderList()112       getWorkerPoolSpecsOrBuilderList() {
113     return workerPoolSpecs_;
114   }
115   /**
116    *
117    *
118    * <pre>
119    * Required. The spec of the worker pools including machine type and Docker
120    * image. All worker pools except the first one are optional and can be
121    * skipped by providing an empty value.
122    * </pre>
123    *
124    * <code>
125    * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
126    * </code>
127    */
128   @java.lang.Override
getWorkerPoolSpecsCount()129   public int getWorkerPoolSpecsCount() {
130     return workerPoolSpecs_.size();
131   }
132   /**
133    *
134    *
135    * <pre>
136    * Required. The spec of the worker pools including machine type and Docker
137    * image. All worker pools except the first one are optional and can be
138    * skipped by providing an empty value.
139    * </pre>
140    *
141    * <code>
142    * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
143    * </code>
144    */
145   @java.lang.Override
getWorkerPoolSpecs(int index)146   public com.google.cloud.aiplatform.v1.WorkerPoolSpec getWorkerPoolSpecs(int index) {
147     return workerPoolSpecs_.get(index);
148   }
149   /**
150    *
151    *
152    * <pre>
153    * Required. The spec of the worker pools including machine type and Docker
154    * image. All worker pools except the first one are optional and can be
155    * skipped by providing an empty value.
156    * </pre>
157    *
158    * <code>
159    * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
160    * </code>
161    */
162   @java.lang.Override
getWorkerPoolSpecsOrBuilder( int index)163   public com.google.cloud.aiplatform.v1.WorkerPoolSpecOrBuilder getWorkerPoolSpecsOrBuilder(
164       int index) {
165     return workerPoolSpecs_.get(index);
166   }
167 
168   public static final int SCHEDULING_FIELD_NUMBER = 3;
169   private com.google.cloud.aiplatform.v1.Scheduling scheduling_;
170   /**
171    *
172    *
173    * <pre>
174    * Scheduling options for a CustomJob.
175    * </pre>
176    *
177    * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
178    *
179    * @return Whether the scheduling field is set.
180    */
181   @java.lang.Override
hasScheduling()182   public boolean hasScheduling() {
183     return scheduling_ != null;
184   }
185   /**
186    *
187    *
188    * <pre>
189    * Scheduling options for a CustomJob.
190    * </pre>
191    *
192    * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
193    *
194    * @return The scheduling.
195    */
196   @java.lang.Override
getScheduling()197   public com.google.cloud.aiplatform.v1.Scheduling getScheduling() {
198     return scheduling_ == null
199         ? com.google.cloud.aiplatform.v1.Scheduling.getDefaultInstance()
200         : scheduling_;
201   }
202   /**
203    *
204    *
205    * <pre>
206    * Scheduling options for a CustomJob.
207    * </pre>
208    *
209    * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
210    */
211   @java.lang.Override
getSchedulingOrBuilder()212   public com.google.cloud.aiplatform.v1.SchedulingOrBuilder getSchedulingOrBuilder() {
213     return scheduling_ == null
214         ? com.google.cloud.aiplatform.v1.Scheduling.getDefaultInstance()
215         : scheduling_;
216   }
217 
218   public static final int SERVICE_ACCOUNT_FIELD_NUMBER = 4;
219 
220   @SuppressWarnings("serial")
221   private volatile java.lang.Object serviceAccount_ = "";
222   /**
223    *
224    *
225    * <pre>
226    * Specifies the service account for workload run-as account.
227    * Users submitting jobs must have act-as permission on this run-as account.
228    * If unspecified, the [Vertex AI Custom Code Service
229    * Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
230    * for the CustomJob's project is used.
231    * </pre>
232    *
233    * <code>string service_account = 4;</code>
234    *
235    * @return The serviceAccount.
236    */
237   @java.lang.Override
getServiceAccount()238   public java.lang.String getServiceAccount() {
239     java.lang.Object ref = serviceAccount_;
240     if (ref instanceof java.lang.String) {
241       return (java.lang.String) ref;
242     } else {
243       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
244       java.lang.String s = bs.toStringUtf8();
245       serviceAccount_ = s;
246       return s;
247     }
248   }
249   /**
250    *
251    *
252    * <pre>
253    * Specifies the service account for workload run-as account.
254    * Users submitting jobs must have act-as permission on this run-as account.
255    * If unspecified, the [Vertex AI Custom Code Service
256    * Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
257    * for the CustomJob's project is used.
258    * </pre>
259    *
260    * <code>string service_account = 4;</code>
261    *
262    * @return The bytes for serviceAccount.
263    */
264   @java.lang.Override
getServiceAccountBytes()265   public com.google.protobuf.ByteString getServiceAccountBytes() {
266     java.lang.Object ref = serviceAccount_;
267     if (ref instanceof java.lang.String) {
268       com.google.protobuf.ByteString b =
269           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
270       serviceAccount_ = b;
271       return b;
272     } else {
273       return (com.google.protobuf.ByteString) ref;
274     }
275   }
276 
277   public static final int NETWORK_FIELD_NUMBER = 5;
278 
279   @SuppressWarnings("serial")
280   private volatile java.lang.Object network_ = "";
281   /**
282    *
283    *
284    * <pre>
285    * Optional. The full name of the Compute Engine
286    * [network](/compute/docs/networks-and-firewalls#networks) to which the Job
287    * should be peered. For example, `projects/12345/global/networks/myVPC`.
288    * [Format](/compute/docs/reference/rest/v1/networks/insert)
289    * is of the form `projects/{project}/global/networks/{network}`.
290    * Where {project} is a project number, as in `12345`, and {network} is a
291    * network name.
292    * To specify this field, you must have already [configured VPC Network
293    * Peering for Vertex
294    * AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering).
295    * If this field is left unspecified, the job is not peered with any network.
296    * </pre>
297    *
298    * <code>
299    * string network = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
300    * </code>
301    *
302    * @return The network.
303    */
304   @java.lang.Override
getNetwork()305   public java.lang.String getNetwork() {
306     java.lang.Object ref = network_;
307     if (ref instanceof java.lang.String) {
308       return (java.lang.String) ref;
309     } else {
310       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
311       java.lang.String s = bs.toStringUtf8();
312       network_ = s;
313       return s;
314     }
315   }
316   /**
317    *
318    *
319    * <pre>
320    * Optional. The full name of the Compute Engine
321    * [network](/compute/docs/networks-and-firewalls#networks) to which the Job
322    * should be peered. For example, `projects/12345/global/networks/myVPC`.
323    * [Format](/compute/docs/reference/rest/v1/networks/insert)
324    * is of the form `projects/{project}/global/networks/{network}`.
325    * Where {project} is a project number, as in `12345`, and {network} is a
326    * network name.
327    * To specify this field, you must have already [configured VPC Network
328    * Peering for Vertex
329    * AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering).
330    * If this field is left unspecified, the job is not peered with any network.
331    * </pre>
332    *
333    * <code>
334    * string network = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
335    * </code>
336    *
337    * @return The bytes for network.
338    */
339   @java.lang.Override
getNetworkBytes()340   public com.google.protobuf.ByteString getNetworkBytes() {
341     java.lang.Object ref = network_;
342     if (ref instanceof java.lang.String) {
343       com.google.protobuf.ByteString b =
344           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
345       network_ = b;
346       return b;
347     } else {
348       return (com.google.protobuf.ByteString) ref;
349     }
350   }
351 
352   public static final int RESERVED_IP_RANGES_FIELD_NUMBER = 13;
353 
354   @SuppressWarnings("serial")
355   private com.google.protobuf.LazyStringList reservedIpRanges_;
356   /**
357    *
358    *
359    * <pre>
360    * Optional. A list of names for the reserved ip ranges under the VPC network
361    * that can be used for this job.
362    * If set, we will deploy the job within the provided ip ranges. Otherwise,
363    * the job will be deployed to any ip ranges under the provided VPC
364    * network.
365    * Example: ['vertex-ai-ip-range'].
366    * </pre>
367    *
368    * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];</code>
369    *
370    * @return A list containing the reservedIpRanges.
371    */
getReservedIpRangesList()372   public com.google.protobuf.ProtocolStringList getReservedIpRangesList() {
373     return reservedIpRanges_;
374   }
375   /**
376    *
377    *
378    * <pre>
379    * Optional. A list of names for the reserved ip ranges under the VPC network
380    * that can be used for this job.
381    * If set, we will deploy the job within the provided ip ranges. Otherwise,
382    * the job will be deployed to any ip ranges under the provided VPC
383    * network.
384    * Example: ['vertex-ai-ip-range'].
385    * </pre>
386    *
387    * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];</code>
388    *
389    * @return The count of reservedIpRanges.
390    */
getReservedIpRangesCount()391   public int getReservedIpRangesCount() {
392     return reservedIpRanges_.size();
393   }
394   /**
395    *
396    *
397    * <pre>
398    * Optional. A list of names for the reserved ip ranges under the VPC network
399    * that can be used for this job.
400    * If set, we will deploy the job within the provided ip ranges. Otherwise,
401    * the job will be deployed to any ip ranges under the provided VPC
402    * network.
403    * Example: ['vertex-ai-ip-range'].
404    * </pre>
405    *
406    * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];</code>
407    *
408    * @param index The index of the element to return.
409    * @return The reservedIpRanges at the given index.
410    */
getReservedIpRanges(int index)411   public java.lang.String getReservedIpRanges(int index) {
412     return reservedIpRanges_.get(index);
413   }
414   /**
415    *
416    *
417    * <pre>
418    * Optional. A list of names for the reserved ip ranges under the VPC network
419    * that can be used for this job.
420    * If set, we will deploy the job within the provided ip ranges. Otherwise,
421    * the job will be deployed to any ip ranges under the provided VPC
422    * network.
423    * Example: ['vertex-ai-ip-range'].
424    * </pre>
425    *
426    * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];</code>
427    *
428    * @param index The index of the value to return.
429    * @return The bytes of the reservedIpRanges at the given index.
430    */
getReservedIpRangesBytes(int index)431   public com.google.protobuf.ByteString getReservedIpRangesBytes(int index) {
432     return reservedIpRanges_.getByteString(index);
433   }
434 
435   public static final int BASE_OUTPUT_DIRECTORY_FIELD_NUMBER = 6;
436   private com.google.cloud.aiplatform.v1.GcsDestination baseOutputDirectory_;
437   /**
438    *
439    *
440    * <pre>
441    * The Cloud Storage location to store the output of this CustomJob or
442    * HyperparameterTuningJob. For HyperparameterTuningJob,
443    * the baseOutputDirectory of
444    * each child CustomJob backing a Trial is set to a subdirectory of name
445    * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
446    * HyperparameterTuningJob's baseOutputDirectory.
447    * The following Vertex AI environment variables will be passed to
448    * containers or python modules when this field is set:
449    *   For CustomJob:
450    *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
451    *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
452    *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
453    *   For CustomJob backing a Trial of HyperparameterTuningJob:
454    *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
455    *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
456    *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
457    * </pre>
458    *
459    * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
460    *
461    * @return Whether the baseOutputDirectory field is set.
462    */
463   @java.lang.Override
hasBaseOutputDirectory()464   public boolean hasBaseOutputDirectory() {
465     return baseOutputDirectory_ != null;
466   }
467   /**
468    *
469    *
470    * <pre>
471    * The Cloud Storage location to store the output of this CustomJob or
472    * HyperparameterTuningJob. For HyperparameterTuningJob,
473    * the baseOutputDirectory of
474    * each child CustomJob backing a Trial is set to a subdirectory of name
475    * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
476    * HyperparameterTuningJob's baseOutputDirectory.
477    * The following Vertex AI environment variables will be passed to
478    * containers or python modules when this field is set:
479    *   For CustomJob:
480    *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
481    *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
482    *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
483    *   For CustomJob backing a Trial of HyperparameterTuningJob:
484    *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
485    *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
486    *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
487    * </pre>
488    *
489    * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
490    *
491    * @return The baseOutputDirectory.
492    */
493   @java.lang.Override
getBaseOutputDirectory()494   public com.google.cloud.aiplatform.v1.GcsDestination getBaseOutputDirectory() {
495     return baseOutputDirectory_ == null
496         ? com.google.cloud.aiplatform.v1.GcsDestination.getDefaultInstance()
497         : baseOutputDirectory_;
498   }
499   /**
500    *
501    *
502    * <pre>
503    * The Cloud Storage location to store the output of this CustomJob or
504    * HyperparameterTuningJob. For HyperparameterTuningJob,
505    * the baseOutputDirectory of
506    * each child CustomJob backing a Trial is set to a subdirectory of name
507    * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
508    * HyperparameterTuningJob's baseOutputDirectory.
509    * The following Vertex AI environment variables will be passed to
510    * containers or python modules when this field is set:
511    *   For CustomJob:
512    *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
513    *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
514    *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
515    *   For CustomJob backing a Trial of HyperparameterTuningJob:
516    *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
517    *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
518    *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
519    * </pre>
520    *
521    * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
522    */
523   @java.lang.Override
getBaseOutputDirectoryOrBuilder()524   public com.google.cloud.aiplatform.v1.GcsDestinationOrBuilder getBaseOutputDirectoryOrBuilder() {
525     return baseOutputDirectory_ == null
526         ? com.google.cloud.aiplatform.v1.GcsDestination.getDefaultInstance()
527         : baseOutputDirectory_;
528   }
529 
530   public static final int TENSORBOARD_FIELD_NUMBER = 7;
531 
532   @SuppressWarnings("serial")
533   private volatile java.lang.Object tensorboard_ = "";
534   /**
535    *
536    *
537    * <pre>
538    * Optional. The name of a Vertex AI
539    * [Tensorboard][google.cloud.aiplatform.v1.Tensorboard] resource to which
540    * this CustomJob will upload Tensorboard logs. Format:
541    * `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
542    * </pre>
543    *
544    * <code>
545    * string tensorboard = 7 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
546    * </code>
547    *
548    * @return The tensorboard.
549    */
550   @java.lang.Override
getTensorboard()551   public java.lang.String getTensorboard() {
552     java.lang.Object ref = tensorboard_;
553     if (ref instanceof java.lang.String) {
554       return (java.lang.String) ref;
555     } else {
556       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
557       java.lang.String s = bs.toStringUtf8();
558       tensorboard_ = s;
559       return s;
560     }
561   }
562   /**
563    *
564    *
565    * <pre>
566    * Optional. The name of a Vertex AI
567    * [Tensorboard][google.cloud.aiplatform.v1.Tensorboard] resource to which
568    * this CustomJob will upload Tensorboard logs. Format:
569    * `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
570    * </pre>
571    *
572    * <code>
573    * string tensorboard = 7 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
574    * </code>
575    *
576    * @return The bytes for tensorboard.
577    */
578   @java.lang.Override
getTensorboardBytes()579   public com.google.protobuf.ByteString getTensorboardBytes() {
580     java.lang.Object ref = tensorboard_;
581     if (ref instanceof java.lang.String) {
582       com.google.protobuf.ByteString b =
583           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
584       tensorboard_ = b;
585       return b;
586     } else {
587       return (com.google.protobuf.ByteString) ref;
588     }
589   }
590 
591   public static final int ENABLE_WEB_ACCESS_FIELD_NUMBER = 10;
592   private boolean enableWebAccess_ = false;
593   /**
594    *
595    *
596    * <pre>
597    * Optional. Whether you want Vertex AI to enable [interactive shell
598    * access](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell)
599    * to training containers.
600    * If set to `true`, you can access interactive shells at the URIs given
601    * by
602    * [CustomJob.web_access_uris][google.cloud.aiplatform.v1.CustomJob.web_access_uris]
603    * or
604    * [Trial.web_access_uris][google.cloud.aiplatform.v1.Trial.web_access_uris]
605    * (within
606    * [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1.HyperparameterTuningJob.trials]).
607    * </pre>
608    *
609    * <code>bool enable_web_access = 10 [(.google.api.field_behavior) = OPTIONAL];</code>
610    *
611    * @return The enableWebAccess.
612    */
613   @java.lang.Override
getEnableWebAccess()614   public boolean getEnableWebAccess() {
615     return enableWebAccess_;
616   }
617 
618   public static final int ENABLE_DASHBOARD_ACCESS_FIELD_NUMBER = 16;
619   private boolean enableDashboardAccess_ = false;
620   /**
621    *
622    *
623    * <pre>
624    * Optional. Whether you want Vertex AI to enable access to the customized
625    * dashboard in training chief container.
626    * If set to `true`, you can access the dashboard at the URIs given
627    * by
628    * [CustomJob.web_access_uris][google.cloud.aiplatform.v1.CustomJob.web_access_uris]
629    * or
630    * [Trial.web_access_uris][google.cloud.aiplatform.v1.Trial.web_access_uris]
631    * (within
632    * [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1.HyperparameterTuningJob.trials]).
633    * </pre>
634    *
635    * <code>bool enable_dashboard_access = 16 [(.google.api.field_behavior) = OPTIONAL];</code>
636    *
637    * @return The enableDashboardAccess.
638    */
639   @java.lang.Override
getEnableDashboardAccess()640   public boolean getEnableDashboardAccess() {
641     return enableDashboardAccess_;
642   }
643 
644   public static final int EXPERIMENT_FIELD_NUMBER = 17;
645 
646   @SuppressWarnings("serial")
647   private volatile java.lang.Object experiment_ = "";
648   /**
649    *
650    *
651    * <pre>
652    * Optional. The Experiment associated with this job.
653    * Format:
654    * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}`
655    * </pre>
656    *
657    * <code>
658    * string experiment = 17 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
659    * </code>
660    *
661    * @return The experiment.
662    */
663   @java.lang.Override
getExperiment()664   public java.lang.String getExperiment() {
665     java.lang.Object ref = experiment_;
666     if (ref instanceof java.lang.String) {
667       return (java.lang.String) ref;
668     } else {
669       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
670       java.lang.String s = bs.toStringUtf8();
671       experiment_ = s;
672       return s;
673     }
674   }
675   /**
676    *
677    *
678    * <pre>
679    * Optional. The Experiment associated with this job.
680    * Format:
681    * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}`
682    * </pre>
683    *
684    * <code>
685    * string experiment = 17 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
686    * </code>
687    *
688    * @return The bytes for experiment.
689    */
690   @java.lang.Override
getExperimentBytes()691   public com.google.protobuf.ByteString getExperimentBytes() {
692     java.lang.Object ref = experiment_;
693     if (ref instanceof java.lang.String) {
694       com.google.protobuf.ByteString b =
695           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
696       experiment_ = b;
697       return b;
698     } else {
699       return (com.google.protobuf.ByteString) ref;
700     }
701   }
702 
703   public static final int EXPERIMENT_RUN_FIELD_NUMBER = 18;
704 
705   @SuppressWarnings("serial")
706   private volatile java.lang.Object experimentRun_ = "";
707   /**
708    *
709    *
710    * <pre>
711    * Optional. The Experiment Run associated with this job.
712    * Format:
713    * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}`
714    * </pre>
715    *
716    * <code>
717    * string experiment_run = 18 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
718    * </code>
719    *
720    * @return The experimentRun.
721    */
722   @java.lang.Override
getExperimentRun()723   public java.lang.String getExperimentRun() {
724     java.lang.Object ref = experimentRun_;
725     if (ref instanceof java.lang.String) {
726       return (java.lang.String) ref;
727     } else {
728       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
729       java.lang.String s = bs.toStringUtf8();
730       experimentRun_ = s;
731       return s;
732     }
733   }
734   /**
735    *
736    *
737    * <pre>
738    * Optional. The Experiment Run associated with this job.
739    * Format:
740    * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}`
741    * </pre>
742    *
743    * <code>
744    * string experiment_run = 18 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
745    * </code>
746    *
747    * @return The bytes for experimentRun.
748    */
749   @java.lang.Override
getExperimentRunBytes()750   public com.google.protobuf.ByteString getExperimentRunBytes() {
751     java.lang.Object ref = experimentRun_;
752     if (ref instanceof java.lang.String) {
753       com.google.protobuf.ByteString b =
754           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
755       experimentRun_ = b;
756       return b;
757     } else {
758       return (com.google.protobuf.ByteString) ref;
759     }
760   }
761 
762   private byte memoizedIsInitialized = -1;
763 
764   @java.lang.Override
isInitialized()765   public final boolean isInitialized() {
766     byte isInitialized = memoizedIsInitialized;
767     if (isInitialized == 1) return true;
768     if (isInitialized == 0) return false;
769 
770     memoizedIsInitialized = 1;
771     return true;
772   }
773 
774   @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)775   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
776     for (int i = 0; i < workerPoolSpecs_.size(); i++) {
777       output.writeMessage(1, workerPoolSpecs_.get(i));
778     }
779     if (scheduling_ != null) {
780       output.writeMessage(3, getScheduling());
781     }
782     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceAccount_)) {
783       com.google.protobuf.GeneratedMessageV3.writeString(output, 4, serviceAccount_);
784     }
785     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(network_)) {
786       com.google.protobuf.GeneratedMessageV3.writeString(output, 5, network_);
787     }
788     if (baseOutputDirectory_ != null) {
789       output.writeMessage(6, getBaseOutputDirectory());
790     }
791     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tensorboard_)) {
792       com.google.protobuf.GeneratedMessageV3.writeString(output, 7, tensorboard_);
793     }
794     if (enableWebAccess_ != false) {
795       output.writeBool(10, enableWebAccess_);
796     }
797     for (int i = 0; i < reservedIpRanges_.size(); i++) {
798       com.google.protobuf.GeneratedMessageV3.writeString(output, 13, reservedIpRanges_.getRaw(i));
799     }
800     if (enableDashboardAccess_ != false) {
801       output.writeBool(16, enableDashboardAccess_);
802     }
803     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(experiment_)) {
804       com.google.protobuf.GeneratedMessageV3.writeString(output, 17, experiment_);
805     }
806     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(experimentRun_)) {
807       com.google.protobuf.GeneratedMessageV3.writeString(output, 18, experimentRun_);
808     }
809     getUnknownFields().writeTo(output);
810   }
811 
812   @java.lang.Override
getSerializedSize()813   public int getSerializedSize() {
814     int size = memoizedSize;
815     if (size != -1) return size;
816 
817     size = 0;
818     for (int i = 0; i < workerPoolSpecs_.size(); i++) {
819       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, workerPoolSpecs_.get(i));
820     }
821     if (scheduling_ != null) {
822       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getScheduling());
823     }
824     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceAccount_)) {
825       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, serviceAccount_);
826     }
827     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(network_)) {
828       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, network_);
829     }
830     if (baseOutputDirectory_ != null) {
831       size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getBaseOutputDirectory());
832     }
833     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tensorboard_)) {
834       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, tensorboard_);
835     }
836     if (enableWebAccess_ != false) {
837       size += com.google.protobuf.CodedOutputStream.computeBoolSize(10, enableWebAccess_);
838     }
839     {
840       int dataSize = 0;
841       for (int i = 0; i < reservedIpRanges_.size(); i++) {
842         dataSize += computeStringSizeNoTag(reservedIpRanges_.getRaw(i));
843       }
844       size += dataSize;
845       size += 1 * getReservedIpRangesList().size();
846     }
847     if (enableDashboardAccess_ != false) {
848       size += com.google.protobuf.CodedOutputStream.computeBoolSize(16, enableDashboardAccess_);
849     }
850     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(experiment_)) {
851       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, experiment_);
852     }
853     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(experimentRun_)) {
854       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, experimentRun_);
855     }
856     size += getUnknownFields().getSerializedSize();
857     memoizedSize = size;
858     return size;
859   }
860 
861   @java.lang.Override
equals(final java.lang.Object obj)862   public boolean equals(final java.lang.Object obj) {
863     if (obj == this) {
864       return true;
865     }
866     if (!(obj instanceof com.google.cloud.aiplatform.v1.CustomJobSpec)) {
867       return super.equals(obj);
868     }
869     com.google.cloud.aiplatform.v1.CustomJobSpec other =
870         (com.google.cloud.aiplatform.v1.CustomJobSpec) obj;
871 
872     if (!getWorkerPoolSpecsList().equals(other.getWorkerPoolSpecsList())) return false;
873     if (hasScheduling() != other.hasScheduling()) return false;
874     if (hasScheduling()) {
875       if (!getScheduling().equals(other.getScheduling())) return false;
876     }
877     if (!getServiceAccount().equals(other.getServiceAccount())) return false;
878     if (!getNetwork().equals(other.getNetwork())) return false;
879     if (!getReservedIpRangesList().equals(other.getReservedIpRangesList())) return false;
880     if (hasBaseOutputDirectory() != other.hasBaseOutputDirectory()) return false;
881     if (hasBaseOutputDirectory()) {
882       if (!getBaseOutputDirectory().equals(other.getBaseOutputDirectory())) return false;
883     }
884     if (!getTensorboard().equals(other.getTensorboard())) return false;
885     if (getEnableWebAccess() != other.getEnableWebAccess()) return false;
886     if (getEnableDashboardAccess() != other.getEnableDashboardAccess()) return false;
887     if (!getExperiment().equals(other.getExperiment())) return false;
888     if (!getExperimentRun().equals(other.getExperimentRun())) return false;
889     if (!getUnknownFields().equals(other.getUnknownFields())) return false;
890     return true;
891   }
892 
893   @java.lang.Override
hashCode()894   public int hashCode() {
895     if (memoizedHashCode != 0) {
896       return memoizedHashCode;
897     }
898     int hash = 41;
899     hash = (19 * hash) + getDescriptor().hashCode();
900     if (getWorkerPoolSpecsCount() > 0) {
901       hash = (37 * hash) + WORKER_POOL_SPECS_FIELD_NUMBER;
902       hash = (53 * hash) + getWorkerPoolSpecsList().hashCode();
903     }
904     if (hasScheduling()) {
905       hash = (37 * hash) + SCHEDULING_FIELD_NUMBER;
906       hash = (53 * hash) + getScheduling().hashCode();
907     }
908     hash = (37 * hash) + SERVICE_ACCOUNT_FIELD_NUMBER;
909     hash = (53 * hash) + getServiceAccount().hashCode();
910     hash = (37 * hash) + NETWORK_FIELD_NUMBER;
911     hash = (53 * hash) + getNetwork().hashCode();
912     if (getReservedIpRangesCount() > 0) {
913       hash = (37 * hash) + RESERVED_IP_RANGES_FIELD_NUMBER;
914       hash = (53 * hash) + getReservedIpRangesList().hashCode();
915     }
916     if (hasBaseOutputDirectory()) {
917       hash = (37 * hash) + BASE_OUTPUT_DIRECTORY_FIELD_NUMBER;
918       hash = (53 * hash) + getBaseOutputDirectory().hashCode();
919     }
920     hash = (37 * hash) + TENSORBOARD_FIELD_NUMBER;
921     hash = (53 * hash) + getTensorboard().hashCode();
922     hash = (37 * hash) + ENABLE_WEB_ACCESS_FIELD_NUMBER;
923     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnableWebAccess());
924     hash = (37 * hash) + ENABLE_DASHBOARD_ACCESS_FIELD_NUMBER;
925     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnableDashboardAccess());
926     hash = (37 * hash) + EXPERIMENT_FIELD_NUMBER;
927     hash = (53 * hash) + getExperiment().hashCode();
928     hash = (37 * hash) + EXPERIMENT_RUN_FIELD_NUMBER;
929     hash = (53 * hash) + getExperimentRun().hashCode();
930     hash = (29 * hash) + getUnknownFields().hashCode();
931     memoizedHashCode = hash;
932     return hash;
933   }
934 
parseFrom(java.nio.ByteBuffer data)935   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseFrom(java.nio.ByteBuffer data)
936       throws com.google.protobuf.InvalidProtocolBufferException {
937     return PARSER.parseFrom(data);
938   }
939 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)940   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseFrom(
941       java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
942       throws com.google.protobuf.InvalidProtocolBufferException {
943     return PARSER.parseFrom(data, extensionRegistry);
944   }
945 
parseFrom( com.google.protobuf.ByteString data)946   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseFrom(
947       com.google.protobuf.ByteString data)
948       throws com.google.protobuf.InvalidProtocolBufferException {
949     return PARSER.parseFrom(data);
950   }
951 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)952   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseFrom(
953       com.google.protobuf.ByteString data,
954       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
955       throws com.google.protobuf.InvalidProtocolBufferException {
956     return PARSER.parseFrom(data, extensionRegistry);
957   }
958 
parseFrom(byte[] data)959   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseFrom(byte[] data)
960       throws com.google.protobuf.InvalidProtocolBufferException {
961     return PARSER.parseFrom(data);
962   }
963 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)964   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseFrom(
965       byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
966       throws com.google.protobuf.InvalidProtocolBufferException {
967     return PARSER.parseFrom(data, extensionRegistry);
968   }
969 
parseFrom(java.io.InputStream input)970   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseFrom(java.io.InputStream input)
971       throws java.io.IOException {
972     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
973   }
974 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)975   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseFrom(
976       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
977       throws java.io.IOException {
978     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
979         PARSER, input, extensionRegistry);
980   }
981 
parseDelimitedFrom( java.io.InputStream input)982   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseDelimitedFrom(
983       java.io.InputStream input) throws java.io.IOException {
984     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
985   }
986 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)987   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseDelimitedFrom(
988       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
989       throws java.io.IOException {
990     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
991         PARSER, input, extensionRegistry);
992   }
993 
parseFrom( com.google.protobuf.CodedInputStream input)994   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseFrom(
995       com.google.protobuf.CodedInputStream input) throws java.io.IOException {
996     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
997   }
998 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)999   public static com.google.cloud.aiplatform.v1.CustomJobSpec parseFrom(
1000       com.google.protobuf.CodedInputStream input,
1001       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1002       throws java.io.IOException {
1003     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
1004         PARSER, input, extensionRegistry);
1005   }
1006 
1007   @java.lang.Override
newBuilderForType()1008   public Builder newBuilderForType() {
1009     return newBuilder();
1010   }
1011 
newBuilder()1012   public static Builder newBuilder() {
1013     return DEFAULT_INSTANCE.toBuilder();
1014   }
1015 
newBuilder(com.google.cloud.aiplatform.v1.CustomJobSpec prototype)1016   public static Builder newBuilder(com.google.cloud.aiplatform.v1.CustomJobSpec prototype) {
1017     return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
1018   }
1019 
1020   @java.lang.Override
toBuilder()1021   public Builder toBuilder() {
1022     return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
1023   }
1024 
1025   @java.lang.Override
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)1026   protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
1027     Builder builder = new Builder(parent);
1028     return builder;
1029   }
1030   /**
1031    *
1032    *
1033    * <pre>
1034    * Represents the spec of a CustomJob.
1035    * </pre>
1036    *
1037    * Protobuf type {@code google.cloud.aiplatform.v1.CustomJobSpec}
1038    */
1039   public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
1040       implements
1041       // @@protoc_insertion_point(builder_implements:google.cloud.aiplatform.v1.CustomJobSpec)
1042       com.google.cloud.aiplatform.v1.CustomJobSpecOrBuilder {
getDescriptor()1043     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
1044       return com.google.cloud.aiplatform.v1.CustomJobProto
1045           .internal_static_google_cloud_aiplatform_v1_CustomJobSpec_descriptor;
1046     }
1047 
1048     @java.lang.Override
1049     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()1050         internalGetFieldAccessorTable() {
1051       return com.google.cloud.aiplatform.v1.CustomJobProto
1052           .internal_static_google_cloud_aiplatform_v1_CustomJobSpec_fieldAccessorTable
1053           .ensureFieldAccessorsInitialized(
1054               com.google.cloud.aiplatform.v1.CustomJobSpec.class,
1055               com.google.cloud.aiplatform.v1.CustomJobSpec.Builder.class);
1056     }
1057 
1058     // Construct using com.google.cloud.aiplatform.v1.CustomJobSpec.newBuilder()
Builder()1059     private Builder() {}
1060 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)1061     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
1062       super(parent);
1063     }
1064 
1065     @java.lang.Override
clear()1066     public Builder clear() {
1067       super.clear();
1068       bitField0_ = 0;
1069       if (workerPoolSpecsBuilder_ == null) {
1070         workerPoolSpecs_ = java.util.Collections.emptyList();
1071       } else {
1072         workerPoolSpecs_ = null;
1073         workerPoolSpecsBuilder_.clear();
1074       }
1075       bitField0_ = (bitField0_ & ~0x00000001);
1076       scheduling_ = null;
1077       if (schedulingBuilder_ != null) {
1078         schedulingBuilder_.dispose();
1079         schedulingBuilder_ = null;
1080       }
1081       serviceAccount_ = "";
1082       network_ = "";
1083       reservedIpRanges_ = com.google.protobuf.LazyStringArrayList.EMPTY;
1084       bitField0_ = (bitField0_ & ~0x00000010);
1085       baseOutputDirectory_ = null;
1086       if (baseOutputDirectoryBuilder_ != null) {
1087         baseOutputDirectoryBuilder_.dispose();
1088         baseOutputDirectoryBuilder_ = null;
1089       }
1090       tensorboard_ = "";
1091       enableWebAccess_ = false;
1092       enableDashboardAccess_ = false;
1093       experiment_ = "";
1094       experimentRun_ = "";
1095       return this;
1096     }
1097 
1098     @java.lang.Override
getDescriptorForType()1099     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
1100       return com.google.cloud.aiplatform.v1.CustomJobProto
1101           .internal_static_google_cloud_aiplatform_v1_CustomJobSpec_descriptor;
1102     }
1103 
1104     @java.lang.Override
getDefaultInstanceForType()1105     public com.google.cloud.aiplatform.v1.CustomJobSpec getDefaultInstanceForType() {
1106       return com.google.cloud.aiplatform.v1.CustomJobSpec.getDefaultInstance();
1107     }
1108 
1109     @java.lang.Override
build()1110     public com.google.cloud.aiplatform.v1.CustomJobSpec build() {
1111       com.google.cloud.aiplatform.v1.CustomJobSpec result = buildPartial();
1112       if (!result.isInitialized()) {
1113         throw newUninitializedMessageException(result);
1114       }
1115       return result;
1116     }
1117 
1118     @java.lang.Override
buildPartial()1119     public com.google.cloud.aiplatform.v1.CustomJobSpec buildPartial() {
1120       com.google.cloud.aiplatform.v1.CustomJobSpec result =
1121           new com.google.cloud.aiplatform.v1.CustomJobSpec(this);
1122       buildPartialRepeatedFields(result);
1123       if (bitField0_ != 0) {
1124         buildPartial0(result);
1125       }
1126       onBuilt();
1127       return result;
1128     }
1129 
buildPartialRepeatedFields(com.google.cloud.aiplatform.v1.CustomJobSpec result)1130     private void buildPartialRepeatedFields(com.google.cloud.aiplatform.v1.CustomJobSpec result) {
1131       if (workerPoolSpecsBuilder_ == null) {
1132         if (((bitField0_ & 0x00000001) != 0)) {
1133           workerPoolSpecs_ = java.util.Collections.unmodifiableList(workerPoolSpecs_);
1134           bitField0_ = (bitField0_ & ~0x00000001);
1135         }
1136         result.workerPoolSpecs_ = workerPoolSpecs_;
1137       } else {
1138         result.workerPoolSpecs_ = workerPoolSpecsBuilder_.build();
1139       }
1140       if (((bitField0_ & 0x00000010) != 0)) {
1141         reservedIpRanges_ = reservedIpRanges_.getUnmodifiableView();
1142         bitField0_ = (bitField0_ & ~0x00000010);
1143       }
1144       result.reservedIpRanges_ = reservedIpRanges_;
1145     }
1146 
buildPartial0(com.google.cloud.aiplatform.v1.CustomJobSpec result)1147     private void buildPartial0(com.google.cloud.aiplatform.v1.CustomJobSpec result) {
1148       int from_bitField0_ = bitField0_;
1149       if (((from_bitField0_ & 0x00000002) != 0)) {
1150         result.scheduling_ = schedulingBuilder_ == null ? scheduling_ : schedulingBuilder_.build();
1151       }
1152       if (((from_bitField0_ & 0x00000004) != 0)) {
1153         result.serviceAccount_ = serviceAccount_;
1154       }
1155       if (((from_bitField0_ & 0x00000008) != 0)) {
1156         result.network_ = network_;
1157       }
1158       if (((from_bitField0_ & 0x00000020) != 0)) {
1159         result.baseOutputDirectory_ =
1160             baseOutputDirectoryBuilder_ == null
1161                 ? baseOutputDirectory_
1162                 : baseOutputDirectoryBuilder_.build();
1163       }
1164       if (((from_bitField0_ & 0x00000040) != 0)) {
1165         result.tensorboard_ = tensorboard_;
1166       }
1167       if (((from_bitField0_ & 0x00000080) != 0)) {
1168         result.enableWebAccess_ = enableWebAccess_;
1169       }
1170       if (((from_bitField0_ & 0x00000100) != 0)) {
1171         result.enableDashboardAccess_ = enableDashboardAccess_;
1172       }
1173       if (((from_bitField0_ & 0x00000200) != 0)) {
1174         result.experiment_ = experiment_;
1175       }
1176       if (((from_bitField0_ & 0x00000400) != 0)) {
1177         result.experimentRun_ = experimentRun_;
1178       }
1179     }
1180 
1181     @java.lang.Override
clone()1182     public Builder clone() {
1183       return super.clone();
1184     }
1185 
1186     @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)1187     public Builder setField(
1188         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
1189       return super.setField(field, value);
1190     }
1191 
1192     @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)1193     public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
1194       return super.clearField(field);
1195     }
1196 
1197     @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)1198     public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
1199       return super.clearOneof(oneof);
1200     }
1201 
1202     @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)1203     public Builder setRepeatedField(
1204         com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
1205       return super.setRepeatedField(field, index, value);
1206     }
1207 
1208     @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)1209     public Builder addRepeatedField(
1210         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
1211       return super.addRepeatedField(field, value);
1212     }
1213 
1214     @java.lang.Override
mergeFrom(com.google.protobuf.Message other)1215     public Builder mergeFrom(com.google.protobuf.Message other) {
1216       if (other instanceof com.google.cloud.aiplatform.v1.CustomJobSpec) {
1217         return mergeFrom((com.google.cloud.aiplatform.v1.CustomJobSpec) other);
1218       } else {
1219         super.mergeFrom(other);
1220         return this;
1221       }
1222     }
1223 
mergeFrom(com.google.cloud.aiplatform.v1.CustomJobSpec other)1224     public Builder mergeFrom(com.google.cloud.aiplatform.v1.CustomJobSpec other) {
1225       if (other == com.google.cloud.aiplatform.v1.CustomJobSpec.getDefaultInstance()) return this;
1226       if (workerPoolSpecsBuilder_ == null) {
1227         if (!other.workerPoolSpecs_.isEmpty()) {
1228           if (workerPoolSpecs_.isEmpty()) {
1229             workerPoolSpecs_ = other.workerPoolSpecs_;
1230             bitField0_ = (bitField0_ & ~0x00000001);
1231           } else {
1232             ensureWorkerPoolSpecsIsMutable();
1233             workerPoolSpecs_.addAll(other.workerPoolSpecs_);
1234           }
1235           onChanged();
1236         }
1237       } else {
1238         if (!other.workerPoolSpecs_.isEmpty()) {
1239           if (workerPoolSpecsBuilder_.isEmpty()) {
1240             workerPoolSpecsBuilder_.dispose();
1241             workerPoolSpecsBuilder_ = null;
1242             workerPoolSpecs_ = other.workerPoolSpecs_;
1243             bitField0_ = (bitField0_ & ~0x00000001);
1244             workerPoolSpecsBuilder_ =
1245                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
1246                     ? getWorkerPoolSpecsFieldBuilder()
1247                     : null;
1248           } else {
1249             workerPoolSpecsBuilder_.addAllMessages(other.workerPoolSpecs_);
1250           }
1251         }
1252       }
1253       if (other.hasScheduling()) {
1254         mergeScheduling(other.getScheduling());
1255       }
1256       if (!other.getServiceAccount().isEmpty()) {
1257         serviceAccount_ = other.serviceAccount_;
1258         bitField0_ |= 0x00000004;
1259         onChanged();
1260       }
1261       if (!other.getNetwork().isEmpty()) {
1262         network_ = other.network_;
1263         bitField0_ |= 0x00000008;
1264         onChanged();
1265       }
1266       if (!other.reservedIpRanges_.isEmpty()) {
1267         if (reservedIpRanges_.isEmpty()) {
1268           reservedIpRanges_ = other.reservedIpRanges_;
1269           bitField0_ = (bitField0_ & ~0x00000010);
1270         } else {
1271           ensureReservedIpRangesIsMutable();
1272           reservedIpRanges_.addAll(other.reservedIpRanges_);
1273         }
1274         onChanged();
1275       }
1276       if (other.hasBaseOutputDirectory()) {
1277         mergeBaseOutputDirectory(other.getBaseOutputDirectory());
1278       }
1279       if (!other.getTensorboard().isEmpty()) {
1280         tensorboard_ = other.tensorboard_;
1281         bitField0_ |= 0x00000040;
1282         onChanged();
1283       }
1284       if (other.getEnableWebAccess() != false) {
1285         setEnableWebAccess(other.getEnableWebAccess());
1286       }
1287       if (other.getEnableDashboardAccess() != false) {
1288         setEnableDashboardAccess(other.getEnableDashboardAccess());
1289       }
1290       if (!other.getExperiment().isEmpty()) {
1291         experiment_ = other.experiment_;
1292         bitField0_ |= 0x00000200;
1293         onChanged();
1294       }
1295       if (!other.getExperimentRun().isEmpty()) {
1296         experimentRun_ = other.experimentRun_;
1297         bitField0_ |= 0x00000400;
1298         onChanged();
1299       }
1300       this.mergeUnknownFields(other.getUnknownFields());
1301       onChanged();
1302       return this;
1303     }
1304 
1305     @java.lang.Override
isInitialized()1306     public final boolean isInitialized() {
1307       return true;
1308     }
1309 
1310     @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1311     public Builder mergeFrom(
1312         com.google.protobuf.CodedInputStream input,
1313         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1314         throws java.io.IOException {
1315       if (extensionRegistry == null) {
1316         throw new java.lang.NullPointerException();
1317       }
1318       try {
1319         boolean done = false;
1320         while (!done) {
1321           int tag = input.readTag();
1322           switch (tag) {
1323             case 0:
1324               done = true;
1325               break;
1326             case 10:
1327               {
1328                 com.google.cloud.aiplatform.v1.WorkerPoolSpec m =
1329                     input.readMessage(
1330                         com.google.cloud.aiplatform.v1.WorkerPoolSpec.parser(), extensionRegistry);
1331                 if (workerPoolSpecsBuilder_ == null) {
1332                   ensureWorkerPoolSpecsIsMutable();
1333                   workerPoolSpecs_.add(m);
1334                 } else {
1335                   workerPoolSpecsBuilder_.addMessage(m);
1336                 }
1337                 break;
1338               } // case 10
1339             case 26:
1340               {
1341                 input.readMessage(getSchedulingFieldBuilder().getBuilder(), extensionRegistry);
1342                 bitField0_ |= 0x00000002;
1343                 break;
1344               } // case 26
1345             case 34:
1346               {
1347                 serviceAccount_ = input.readStringRequireUtf8();
1348                 bitField0_ |= 0x00000004;
1349                 break;
1350               } // case 34
1351             case 42:
1352               {
1353                 network_ = input.readStringRequireUtf8();
1354                 bitField0_ |= 0x00000008;
1355                 break;
1356               } // case 42
1357             case 50:
1358               {
1359                 input.readMessage(
1360                     getBaseOutputDirectoryFieldBuilder().getBuilder(), extensionRegistry);
1361                 bitField0_ |= 0x00000020;
1362                 break;
1363               } // case 50
1364             case 58:
1365               {
1366                 tensorboard_ = input.readStringRequireUtf8();
1367                 bitField0_ |= 0x00000040;
1368                 break;
1369               } // case 58
1370             case 80:
1371               {
1372                 enableWebAccess_ = input.readBool();
1373                 bitField0_ |= 0x00000080;
1374                 break;
1375               } // case 80
1376             case 106:
1377               {
1378                 java.lang.String s = input.readStringRequireUtf8();
1379                 ensureReservedIpRangesIsMutable();
1380                 reservedIpRanges_.add(s);
1381                 break;
1382               } // case 106
1383             case 128:
1384               {
1385                 enableDashboardAccess_ = input.readBool();
1386                 bitField0_ |= 0x00000100;
1387                 break;
1388               } // case 128
1389             case 138:
1390               {
1391                 experiment_ = input.readStringRequireUtf8();
1392                 bitField0_ |= 0x00000200;
1393                 break;
1394               } // case 138
1395             case 146:
1396               {
1397                 experimentRun_ = input.readStringRequireUtf8();
1398                 bitField0_ |= 0x00000400;
1399                 break;
1400               } // case 146
1401             default:
1402               {
1403                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
1404                   done = true; // was an endgroup tag
1405                 }
1406                 break;
1407               } // default:
1408           } // switch (tag)
1409         } // while (!done)
1410       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1411         throw e.unwrapIOException();
1412       } finally {
1413         onChanged();
1414       } // finally
1415       return this;
1416     }
1417 
1418     private int bitField0_;
1419 
1420     private java.util.List<com.google.cloud.aiplatform.v1.WorkerPoolSpec> workerPoolSpecs_ =
1421         java.util.Collections.emptyList();
1422 
ensureWorkerPoolSpecsIsMutable()1423     private void ensureWorkerPoolSpecsIsMutable() {
1424       if (!((bitField0_ & 0x00000001) != 0)) {
1425         workerPoolSpecs_ =
1426             new java.util.ArrayList<com.google.cloud.aiplatform.v1.WorkerPoolSpec>(
1427                 workerPoolSpecs_);
1428         bitField0_ |= 0x00000001;
1429       }
1430     }
1431 
1432     private com.google.protobuf.RepeatedFieldBuilderV3<
1433             com.google.cloud.aiplatform.v1.WorkerPoolSpec,
1434             com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder,
1435             com.google.cloud.aiplatform.v1.WorkerPoolSpecOrBuilder>
1436         workerPoolSpecsBuilder_;
1437 
1438     /**
1439      *
1440      *
1441      * <pre>
1442      * Required. The spec of the worker pools including machine type and Docker
1443      * image. All worker pools except the first one are optional and can be
1444      * skipped by providing an empty value.
1445      * </pre>
1446      *
1447      * <code>
1448      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1449      * </code>
1450      */
getWorkerPoolSpecsList()1451     public java.util.List<com.google.cloud.aiplatform.v1.WorkerPoolSpec> getWorkerPoolSpecsList() {
1452       if (workerPoolSpecsBuilder_ == null) {
1453         return java.util.Collections.unmodifiableList(workerPoolSpecs_);
1454       } else {
1455         return workerPoolSpecsBuilder_.getMessageList();
1456       }
1457     }
1458     /**
1459      *
1460      *
1461      * <pre>
1462      * Required. The spec of the worker pools including machine type and Docker
1463      * image. All worker pools except the first one are optional and can be
1464      * skipped by providing an empty value.
1465      * </pre>
1466      *
1467      * <code>
1468      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1469      * </code>
1470      */
getWorkerPoolSpecsCount()1471     public int getWorkerPoolSpecsCount() {
1472       if (workerPoolSpecsBuilder_ == null) {
1473         return workerPoolSpecs_.size();
1474       } else {
1475         return workerPoolSpecsBuilder_.getCount();
1476       }
1477     }
1478     /**
1479      *
1480      *
1481      * <pre>
1482      * Required. The spec of the worker pools including machine type and Docker
1483      * image. All worker pools except the first one are optional and can be
1484      * skipped by providing an empty value.
1485      * </pre>
1486      *
1487      * <code>
1488      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1489      * </code>
1490      */
getWorkerPoolSpecs(int index)1491     public com.google.cloud.aiplatform.v1.WorkerPoolSpec getWorkerPoolSpecs(int index) {
1492       if (workerPoolSpecsBuilder_ == null) {
1493         return workerPoolSpecs_.get(index);
1494       } else {
1495         return workerPoolSpecsBuilder_.getMessage(index);
1496       }
1497     }
1498     /**
1499      *
1500      *
1501      * <pre>
1502      * Required. The spec of the worker pools including machine type and Docker
1503      * image. All worker pools except the first one are optional and can be
1504      * skipped by providing an empty value.
1505      * </pre>
1506      *
1507      * <code>
1508      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1509      * </code>
1510      */
setWorkerPoolSpecs( int index, com.google.cloud.aiplatform.v1.WorkerPoolSpec value)1511     public Builder setWorkerPoolSpecs(
1512         int index, com.google.cloud.aiplatform.v1.WorkerPoolSpec value) {
1513       if (workerPoolSpecsBuilder_ == null) {
1514         if (value == null) {
1515           throw new NullPointerException();
1516         }
1517         ensureWorkerPoolSpecsIsMutable();
1518         workerPoolSpecs_.set(index, value);
1519         onChanged();
1520       } else {
1521         workerPoolSpecsBuilder_.setMessage(index, value);
1522       }
1523       return this;
1524     }
1525     /**
1526      *
1527      *
1528      * <pre>
1529      * Required. The spec of the worker pools including machine type and Docker
1530      * image. All worker pools except the first one are optional and can be
1531      * skipped by providing an empty value.
1532      * </pre>
1533      *
1534      * <code>
1535      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1536      * </code>
1537      */
setWorkerPoolSpecs( int index, com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder builderForValue)1538     public Builder setWorkerPoolSpecs(
1539         int index, com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder builderForValue) {
1540       if (workerPoolSpecsBuilder_ == null) {
1541         ensureWorkerPoolSpecsIsMutable();
1542         workerPoolSpecs_.set(index, builderForValue.build());
1543         onChanged();
1544       } else {
1545         workerPoolSpecsBuilder_.setMessage(index, builderForValue.build());
1546       }
1547       return this;
1548     }
1549     /**
1550      *
1551      *
1552      * <pre>
1553      * Required. The spec of the worker pools including machine type and Docker
1554      * image. All worker pools except the first one are optional and can be
1555      * skipped by providing an empty value.
1556      * </pre>
1557      *
1558      * <code>
1559      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1560      * </code>
1561      */
addWorkerPoolSpecs(com.google.cloud.aiplatform.v1.WorkerPoolSpec value)1562     public Builder addWorkerPoolSpecs(com.google.cloud.aiplatform.v1.WorkerPoolSpec value) {
1563       if (workerPoolSpecsBuilder_ == null) {
1564         if (value == null) {
1565           throw new NullPointerException();
1566         }
1567         ensureWorkerPoolSpecsIsMutable();
1568         workerPoolSpecs_.add(value);
1569         onChanged();
1570       } else {
1571         workerPoolSpecsBuilder_.addMessage(value);
1572       }
1573       return this;
1574     }
1575     /**
1576      *
1577      *
1578      * <pre>
1579      * Required. The spec of the worker pools including machine type and Docker
1580      * image. All worker pools except the first one are optional and can be
1581      * skipped by providing an empty value.
1582      * </pre>
1583      *
1584      * <code>
1585      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1586      * </code>
1587      */
addWorkerPoolSpecs( int index, com.google.cloud.aiplatform.v1.WorkerPoolSpec value)1588     public Builder addWorkerPoolSpecs(
1589         int index, com.google.cloud.aiplatform.v1.WorkerPoolSpec value) {
1590       if (workerPoolSpecsBuilder_ == null) {
1591         if (value == null) {
1592           throw new NullPointerException();
1593         }
1594         ensureWorkerPoolSpecsIsMutable();
1595         workerPoolSpecs_.add(index, value);
1596         onChanged();
1597       } else {
1598         workerPoolSpecsBuilder_.addMessage(index, value);
1599       }
1600       return this;
1601     }
1602     /**
1603      *
1604      *
1605      * <pre>
1606      * Required. The spec of the worker pools including machine type and Docker
1607      * image. All worker pools except the first one are optional and can be
1608      * skipped by providing an empty value.
1609      * </pre>
1610      *
1611      * <code>
1612      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1613      * </code>
1614      */
addWorkerPoolSpecs( com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder builderForValue)1615     public Builder addWorkerPoolSpecs(
1616         com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder builderForValue) {
1617       if (workerPoolSpecsBuilder_ == null) {
1618         ensureWorkerPoolSpecsIsMutable();
1619         workerPoolSpecs_.add(builderForValue.build());
1620         onChanged();
1621       } else {
1622         workerPoolSpecsBuilder_.addMessage(builderForValue.build());
1623       }
1624       return this;
1625     }
1626     /**
1627      *
1628      *
1629      * <pre>
1630      * Required. The spec of the worker pools including machine type and Docker
1631      * image. All worker pools except the first one are optional and can be
1632      * skipped by providing an empty value.
1633      * </pre>
1634      *
1635      * <code>
1636      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1637      * </code>
1638      */
addWorkerPoolSpecs( int index, com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder builderForValue)1639     public Builder addWorkerPoolSpecs(
1640         int index, com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder builderForValue) {
1641       if (workerPoolSpecsBuilder_ == null) {
1642         ensureWorkerPoolSpecsIsMutable();
1643         workerPoolSpecs_.add(index, builderForValue.build());
1644         onChanged();
1645       } else {
1646         workerPoolSpecsBuilder_.addMessage(index, builderForValue.build());
1647       }
1648       return this;
1649     }
1650     /**
1651      *
1652      *
1653      * <pre>
1654      * Required. The spec of the worker pools including machine type and Docker
1655      * image. All worker pools except the first one are optional and can be
1656      * skipped by providing an empty value.
1657      * </pre>
1658      *
1659      * <code>
1660      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1661      * </code>
1662      */
addAllWorkerPoolSpecs( java.lang.Iterable<? extends com.google.cloud.aiplatform.v1.WorkerPoolSpec> values)1663     public Builder addAllWorkerPoolSpecs(
1664         java.lang.Iterable<? extends com.google.cloud.aiplatform.v1.WorkerPoolSpec> values) {
1665       if (workerPoolSpecsBuilder_ == null) {
1666         ensureWorkerPoolSpecsIsMutable();
1667         com.google.protobuf.AbstractMessageLite.Builder.addAll(values, workerPoolSpecs_);
1668         onChanged();
1669       } else {
1670         workerPoolSpecsBuilder_.addAllMessages(values);
1671       }
1672       return this;
1673     }
1674     /**
1675      *
1676      *
1677      * <pre>
1678      * Required. The spec of the worker pools including machine type and Docker
1679      * image. All worker pools except the first one are optional and can be
1680      * skipped by providing an empty value.
1681      * </pre>
1682      *
1683      * <code>
1684      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1685      * </code>
1686      */
clearWorkerPoolSpecs()1687     public Builder clearWorkerPoolSpecs() {
1688       if (workerPoolSpecsBuilder_ == null) {
1689         workerPoolSpecs_ = java.util.Collections.emptyList();
1690         bitField0_ = (bitField0_ & ~0x00000001);
1691         onChanged();
1692       } else {
1693         workerPoolSpecsBuilder_.clear();
1694       }
1695       return this;
1696     }
1697     /**
1698      *
1699      *
1700      * <pre>
1701      * Required. The spec of the worker pools including machine type and Docker
1702      * image. All worker pools except the first one are optional and can be
1703      * skipped by providing an empty value.
1704      * </pre>
1705      *
1706      * <code>
1707      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1708      * </code>
1709      */
removeWorkerPoolSpecs(int index)1710     public Builder removeWorkerPoolSpecs(int index) {
1711       if (workerPoolSpecsBuilder_ == null) {
1712         ensureWorkerPoolSpecsIsMutable();
1713         workerPoolSpecs_.remove(index);
1714         onChanged();
1715       } else {
1716         workerPoolSpecsBuilder_.remove(index);
1717       }
1718       return this;
1719     }
1720     /**
1721      *
1722      *
1723      * <pre>
1724      * Required. The spec of the worker pools including machine type and Docker
1725      * image. All worker pools except the first one are optional and can be
1726      * skipped by providing an empty value.
1727      * </pre>
1728      *
1729      * <code>
1730      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1731      * </code>
1732      */
getWorkerPoolSpecsBuilder( int index)1733     public com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder getWorkerPoolSpecsBuilder(
1734         int index) {
1735       return getWorkerPoolSpecsFieldBuilder().getBuilder(index);
1736     }
1737     /**
1738      *
1739      *
1740      * <pre>
1741      * Required. The spec of the worker pools including machine type and Docker
1742      * image. All worker pools except the first one are optional and can be
1743      * skipped by providing an empty value.
1744      * </pre>
1745      *
1746      * <code>
1747      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1748      * </code>
1749      */
getWorkerPoolSpecsOrBuilder( int index)1750     public com.google.cloud.aiplatform.v1.WorkerPoolSpecOrBuilder getWorkerPoolSpecsOrBuilder(
1751         int index) {
1752       if (workerPoolSpecsBuilder_ == null) {
1753         return workerPoolSpecs_.get(index);
1754       } else {
1755         return workerPoolSpecsBuilder_.getMessageOrBuilder(index);
1756       }
1757     }
1758     /**
1759      *
1760      *
1761      * <pre>
1762      * Required. The spec of the worker pools including machine type and Docker
1763      * image. All worker pools except the first one are optional and can be
1764      * skipped by providing an empty value.
1765      * </pre>
1766      *
1767      * <code>
1768      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1769      * </code>
1770      */
1771     public java.util.List<? extends com.google.cloud.aiplatform.v1.WorkerPoolSpecOrBuilder>
getWorkerPoolSpecsOrBuilderList()1772         getWorkerPoolSpecsOrBuilderList() {
1773       if (workerPoolSpecsBuilder_ != null) {
1774         return workerPoolSpecsBuilder_.getMessageOrBuilderList();
1775       } else {
1776         return java.util.Collections.unmodifiableList(workerPoolSpecs_);
1777       }
1778     }
1779     /**
1780      *
1781      *
1782      * <pre>
1783      * Required. The spec of the worker pools including machine type and Docker
1784      * image. All worker pools except the first one are optional and can be
1785      * skipped by providing an empty value.
1786      * </pre>
1787      *
1788      * <code>
1789      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1790      * </code>
1791      */
addWorkerPoolSpecsBuilder()1792     public com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder addWorkerPoolSpecsBuilder() {
1793       return getWorkerPoolSpecsFieldBuilder()
1794           .addBuilder(com.google.cloud.aiplatform.v1.WorkerPoolSpec.getDefaultInstance());
1795     }
1796     /**
1797      *
1798      *
1799      * <pre>
1800      * Required. The spec of the worker pools including machine type and Docker
1801      * image. All worker pools except the first one are optional and can be
1802      * skipped by providing an empty value.
1803      * </pre>
1804      *
1805      * <code>
1806      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1807      * </code>
1808      */
addWorkerPoolSpecsBuilder( int index)1809     public com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder addWorkerPoolSpecsBuilder(
1810         int index) {
1811       return getWorkerPoolSpecsFieldBuilder()
1812           .addBuilder(index, com.google.cloud.aiplatform.v1.WorkerPoolSpec.getDefaultInstance());
1813     }
1814     /**
1815      *
1816      *
1817      * <pre>
1818      * Required. The spec of the worker pools including machine type and Docker
1819      * image. All worker pools except the first one are optional and can be
1820      * skipped by providing an empty value.
1821      * </pre>
1822      *
1823      * <code>
1824      * repeated .google.cloud.aiplatform.v1.WorkerPoolSpec worker_pool_specs = 1 [(.google.api.field_behavior) = REQUIRED];
1825      * </code>
1826      */
1827     public java.util.List<com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder>
getWorkerPoolSpecsBuilderList()1828         getWorkerPoolSpecsBuilderList() {
1829       return getWorkerPoolSpecsFieldBuilder().getBuilderList();
1830     }
1831 
1832     private com.google.protobuf.RepeatedFieldBuilderV3<
1833             com.google.cloud.aiplatform.v1.WorkerPoolSpec,
1834             com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder,
1835             com.google.cloud.aiplatform.v1.WorkerPoolSpecOrBuilder>
getWorkerPoolSpecsFieldBuilder()1836         getWorkerPoolSpecsFieldBuilder() {
1837       if (workerPoolSpecsBuilder_ == null) {
1838         workerPoolSpecsBuilder_ =
1839             new com.google.protobuf.RepeatedFieldBuilderV3<
1840                 com.google.cloud.aiplatform.v1.WorkerPoolSpec,
1841                 com.google.cloud.aiplatform.v1.WorkerPoolSpec.Builder,
1842                 com.google.cloud.aiplatform.v1.WorkerPoolSpecOrBuilder>(
1843                 workerPoolSpecs_,
1844                 ((bitField0_ & 0x00000001) != 0),
1845                 getParentForChildren(),
1846                 isClean());
1847         workerPoolSpecs_ = null;
1848       }
1849       return workerPoolSpecsBuilder_;
1850     }
1851 
1852     private com.google.cloud.aiplatform.v1.Scheduling scheduling_;
1853     private com.google.protobuf.SingleFieldBuilderV3<
1854             com.google.cloud.aiplatform.v1.Scheduling,
1855             com.google.cloud.aiplatform.v1.Scheduling.Builder,
1856             com.google.cloud.aiplatform.v1.SchedulingOrBuilder>
1857         schedulingBuilder_;
1858     /**
1859      *
1860      *
1861      * <pre>
1862      * Scheduling options for a CustomJob.
1863      * </pre>
1864      *
1865      * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
1866      *
1867      * @return Whether the scheduling field is set.
1868      */
hasScheduling()1869     public boolean hasScheduling() {
1870       return ((bitField0_ & 0x00000002) != 0);
1871     }
1872     /**
1873      *
1874      *
1875      * <pre>
1876      * Scheduling options for a CustomJob.
1877      * </pre>
1878      *
1879      * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
1880      *
1881      * @return The scheduling.
1882      */
getScheduling()1883     public com.google.cloud.aiplatform.v1.Scheduling getScheduling() {
1884       if (schedulingBuilder_ == null) {
1885         return scheduling_ == null
1886             ? com.google.cloud.aiplatform.v1.Scheduling.getDefaultInstance()
1887             : scheduling_;
1888       } else {
1889         return schedulingBuilder_.getMessage();
1890       }
1891     }
1892     /**
1893      *
1894      *
1895      * <pre>
1896      * Scheduling options for a CustomJob.
1897      * </pre>
1898      *
1899      * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
1900      */
setScheduling(com.google.cloud.aiplatform.v1.Scheduling value)1901     public Builder setScheduling(com.google.cloud.aiplatform.v1.Scheduling value) {
1902       if (schedulingBuilder_ == null) {
1903         if (value == null) {
1904           throw new NullPointerException();
1905         }
1906         scheduling_ = value;
1907       } else {
1908         schedulingBuilder_.setMessage(value);
1909       }
1910       bitField0_ |= 0x00000002;
1911       onChanged();
1912       return this;
1913     }
1914     /**
1915      *
1916      *
1917      * <pre>
1918      * Scheduling options for a CustomJob.
1919      * </pre>
1920      *
1921      * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
1922      */
setScheduling( com.google.cloud.aiplatform.v1.Scheduling.Builder builderForValue)1923     public Builder setScheduling(
1924         com.google.cloud.aiplatform.v1.Scheduling.Builder builderForValue) {
1925       if (schedulingBuilder_ == null) {
1926         scheduling_ = builderForValue.build();
1927       } else {
1928         schedulingBuilder_.setMessage(builderForValue.build());
1929       }
1930       bitField0_ |= 0x00000002;
1931       onChanged();
1932       return this;
1933     }
1934     /**
1935      *
1936      *
1937      * <pre>
1938      * Scheduling options for a CustomJob.
1939      * </pre>
1940      *
1941      * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
1942      */
mergeScheduling(com.google.cloud.aiplatform.v1.Scheduling value)1943     public Builder mergeScheduling(com.google.cloud.aiplatform.v1.Scheduling value) {
1944       if (schedulingBuilder_ == null) {
1945         if (((bitField0_ & 0x00000002) != 0)
1946             && scheduling_ != null
1947             && scheduling_ != com.google.cloud.aiplatform.v1.Scheduling.getDefaultInstance()) {
1948           getSchedulingBuilder().mergeFrom(value);
1949         } else {
1950           scheduling_ = value;
1951         }
1952       } else {
1953         schedulingBuilder_.mergeFrom(value);
1954       }
1955       bitField0_ |= 0x00000002;
1956       onChanged();
1957       return this;
1958     }
1959     /**
1960      *
1961      *
1962      * <pre>
1963      * Scheduling options for a CustomJob.
1964      * </pre>
1965      *
1966      * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
1967      */
clearScheduling()1968     public Builder clearScheduling() {
1969       bitField0_ = (bitField0_ & ~0x00000002);
1970       scheduling_ = null;
1971       if (schedulingBuilder_ != null) {
1972         schedulingBuilder_.dispose();
1973         schedulingBuilder_ = null;
1974       }
1975       onChanged();
1976       return this;
1977     }
1978     /**
1979      *
1980      *
1981      * <pre>
1982      * Scheduling options for a CustomJob.
1983      * </pre>
1984      *
1985      * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
1986      */
getSchedulingBuilder()1987     public com.google.cloud.aiplatform.v1.Scheduling.Builder getSchedulingBuilder() {
1988       bitField0_ |= 0x00000002;
1989       onChanged();
1990       return getSchedulingFieldBuilder().getBuilder();
1991     }
1992     /**
1993      *
1994      *
1995      * <pre>
1996      * Scheduling options for a CustomJob.
1997      * </pre>
1998      *
1999      * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
2000      */
getSchedulingOrBuilder()2001     public com.google.cloud.aiplatform.v1.SchedulingOrBuilder getSchedulingOrBuilder() {
2002       if (schedulingBuilder_ != null) {
2003         return schedulingBuilder_.getMessageOrBuilder();
2004       } else {
2005         return scheduling_ == null
2006             ? com.google.cloud.aiplatform.v1.Scheduling.getDefaultInstance()
2007             : scheduling_;
2008       }
2009     }
2010     /**
2011      *
2012      *
2013      * <pre>
2014      * Scheduling options for a CustomJob.
2015      * </pre>
2016      *
2017      * <code>.google.cloud.aiplatform.v1.Scheduling scheduling = 3;</code>
2018      */
2019     private com.google.protobuf.SingleFieldBuilderV3<
2020             com.google.cloud.aiplatform.v1.Scheduling,
2021             com.google.cloud.aiplatform.v1.Scheduling.Builder,
2022             com.google.cloud.aiplatform.v1.SchedulingOrBuilder>
getSchedulingFieldBuilder()2023         getSchedulingFieldBuilder() {
2024       if (schedulingBuilder_ == null) {
2025         schedulingBuilder_ =
2026             new com.google.protobuf.SingleFieldBuilderV3<
2027                 com.google.cloud.aiplatform.v1.Scheduling,
2028                 com.google.cloud.aiplatform.v1.Scheduling.Builder,
2029                 com.google.cloud.aiplatform.v1.SchedulingOrBuilder>(
2030                 getScheduling(), getParentForChildren(), isClean());
2031         scheduling_ = null;
2032       }
2033       return schedulingBuilder_;
2034     }
2035 
2036     private java.lang.Object serviceAccount_ = "";
2037     /**
2038      *
2039      *
2040      * <pre>
2041      * Specifies the service account for workload run-as account.
2042      * Users submitting jobs must have act-as permission on this run-as account.
2043      * If unspecified, the [Vertex AI Custom Code Service
2044      * Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
2045      * for the CustomJob's project is used.
2046      * </pre>
2047      *
2048      * <code>string service_account = 4;</code>
2049      *
2050      * @return The serviceAccount.
2051      */
getServiceAccount()2052     public java.lang.String getServiceAccount() {
2053       java.lang.Object ref = serviceAccount_;
2054       if (!(ref instanceof java.lang.String)) {
2055         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2056         java.lang.String s = bs.toStringUtf8();
2057         serviceAccount_ = s;
2058         return s;
2059       } else {
2060         return (java.lang.String) ref;
2061       }
2062     }
2063     /**
2064      *
2065      *
2066      * <pre>
2067      * Specifies the service account for workload run-as account.
2068      * Users submitting jobs must have act-as permission on this run-as account.
2069      * If unspecified, the [Vertex AI Custom Code Service
2070      * Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
2071      * for the CustomJob's project is used.
2072      * </pre>
2073      *
2074      * <code>string service_account = 4;</code>
2075      *
2076      * @return The bytes for serviceAccount.
2077      */
getServiceAccountBytes()2078     public com.google.protobuf.ByteString getServiceAccountBytes() {
2079       java.lang.Object ref = serviceAccount_;
2080       if (ref instanceof String) {
2081         com.google.protobuf.ByteString b =
2082             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2083         serviceAccount_ = b;
2084         return b;
2085       } else {
2086         return (com.google.protobuf.ByteString) ref;
2087       }
2088     }
2089     /**
2090      *
2091      *
2092      * <pre>
2093      * Specifies the service account for workload run-as account.
2094      * Users submitting jobs must have act-as permission on this run-as account.
2095      * If unspecified, the [Vertex AI Custom Code Service
2096      * Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
2097      * for the CustomJob's project is used.
2098      * </pre>
2099      *
2100      * <code>string service_account = 4;</code>
2101      *
2102      * @param value The serviceAccount to set.
2103      * @return This builder for chaining.
2104      */
setServiceAccount(java.lang.String value)2105     public Builder setServiceAccount(java.lang.String value) {
2106       if (value == null) {
2107         throw new NullPointerException();
2108       }
2109       serviceAccount_ = value;
2110       bitField0_ |= 0x00000004;
2111       onChanged();
2112       return this;
2113     }
2114     /**
2115      *
2116      *
2117      * <pre>
2118      * Specifies the service account for workload run-as account.
2119      * Users submitting jobs must have act-as permission on this run-as account.
2120      * If unspecified, the [Vertex AI Custom Code Service
2121      * Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
2122      * for the CustomJob's project is used.
2123      * </pre>
2124      *
2125      * <code>string service_account = 4;</code>
2126      *
2127      * @return This builder for chaining.
2128      */
clearServiceAccount()2129     public Builder clearServiceAccount() {
2130       serviceAccount_ = getDefaultInstance().getServiceAccount();
2131       bitField0_ = (bitField0_ & ~0x00000004);
2132       onChanged();
2133       return this;
2134     }
2135     /**
2136      *
2137      *
2138      * <pre>
2139      * Specifies the service account for workload run-as account.
2140      * Users submitting jobs must have act-as permission on this run-as account.
2141      * If unspecified, the [Vertex AI Custom Code Service
2142      * Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
2143      * for the CustomJob's project is used.
2144      * </pre>
2145      *
2146      * <code>string service_account = 4;</code>
2147      *
2148      * @param value The bytes for serviceAccount to set.
2149      * @return This builder for chaining.
2150      */
setServiceAccountBytes(com.google.protobuf.ByteString value)2151     public Builder setServiceAccountBytes(com.google.protobuf.ByteString value) {
2152       if (value == null) {
2153         throw new NullPointerException();
2154       }
2155       checkByteStringIsUtf8(value);
2156       serviceAccount_ = value;
2157       bitField0_ |= 0x00000004;
2158       onChanged();
2159       return this;
2160     }
2161 
2162     private java.lang.Object network_ = "";
2163     /**
2164      *
2165      *
2166      * <pre>
2167      * Optional. The full name of the Compute Engine
2168      * [network](/compute/docs/networks-and-firewalls#networks) to which the Job
2169      * should be peered. For example, `projects/12345/global/networks/myVPC`.
2170      * [Format](/compute/docs/reference/rest/v1/networks/insert)
2171      * is of the form `projects/{project}/global/networks/{network}`.
2172      * Where {project} is a project number, as in `12345`, and {network} is a
2173      * network name.
2174      * To specify this field, you must have already [configured VPC Network
2175      * Peering for Vertex
2176      * AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering).
2177      * If this field is left unspecified, the job is not peered with any network.
2178      * </pre>
2179      *
2180      * <code>
2181      * string network = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
2182      * </code>
2183      *
2184      * @return The network.
2185      */
getNetwork()2186     public java.lang.String getNetwork() {
2187       java.lang.Object ref = network_;
2188       if (!(ref instanceof java.lang.String)) {
2189         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2190         java.lang.String s = bs.toStringUtf8();
2191         network_ = s;
2192         return s;
2193       } else {
2194         return (java.lang.String) ref;
2195       }
2196     }
2197     /**
2198      *
2199      *
2200      * <pre>
2201      * Optional. The full name of the Compute Engine
2202      * [network](/compute/docs/networks-and-firewalls#networks) to which the Job
2203      * should be peered. For example, `projects/12345/global/networks/myVPC`.
2204      * [Format](/compute/docs/reference/rest/v1/networks/insert)
2205      * is of the form `projects/{project}/global/networks/{network}`.
2206      * Where {project} is a project number, as in `12345`, and {network} is a
2207      * network name.
2208      * To specify this field, you must have already [configured VPC Network
2209      * Peering for Vertex
2210      * AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering).
2211      * If this field is left unspecified, the job is not peered with any network.
2212      * </pre>
2213      *
2214      * <code>
2215      * string network = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
2216      * </code>
2217      *
2218      * @return The bytes for network.
2219      */
getNetworkBytes()2220     public com.google.protobuf.ByteString getNetworkBytes() {
2221       java.lang.Object ref = network_;
2222       if (ref instanceof String) {
2223         com.google.protobuf.ByteString b =
2224             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2225         network_ = b;
2226         return b;
2227       } else {
2228         return (com.google.protobuf.ByteString) ref;
2229       }
2230     }
2231     /**
2232      *
2233      *
2234      * <pre>
2235      * Optional. The full name of the Compute Engine
2236      * [network](/compute/docs/networks-and-firewalls#networks) to which the Job
2237      * should be peered. For example, `projects/12345/global/networks/myVPC`.
2238      * [Format](/compute/docs/reference/rest/v1/networks/insert)
2239      * is of the form `projects/{project}/global/networks/{network}`.
2240      * Where {project} is a project number, as in `12345`, and {network} is a
2241      * network name.
2242      * To specify this field, you must have already [configured VPC Network
2243      * Peering for Vertex
2244      * AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering).
2245      * If this field is left unspecified, the job is not peered with any network.
2246      * </pre>
2247      *
2248      * <code>
2249      * string network = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
2250      * </code>
2251      *
2252      * @param value The network to set.
2253      * @return This builder for chaining.
2254      */
setNetwork(java.lang.String value)2255     public Builder setNetwork(java.lang.String value) {
2256       if (value == null) {
2257         throw new NullPointerException();
2258       }
2259       network_ = value;
2260       bitField0_ |= 0x00000008;
2261       onChanged();
2262       return this;
2263     }
2264     /**
2265      *
2266      *
2267      * <pre>
2268      * Optional. The full name of the Compute Engine
2269      * [network](/compute/docs/networks-and-firewalls#networks) to which the Job
2270      * should be peered. For example, `projects/12345/global/networks/myVPC`.
2271      * [Format](/compute/docs/reference/rest/v1/networks/insert)
2272      * is of the form `projects/{project}/global/networks/{network}`.
2273      * Where {project} is a project number, as in `12345`, and {network} is a
2274      * network name.
2275      * To specify this field, you must have already [configured VPC Network
2276      * Peering for Vertex
2277      * AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering).
2278      * If this field is left unspecified, the job is not peered with any network.
2279      * </pre>
2280      *
2281      * <code>
2282      * string network = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
2283      * </code>
2284      *
2285      * @return This builder for chaining.
2286      */
clearNetwork()2287     public Builder clearNetwork() {
2288       network_ = getDefaultInstance().getNetwork();
2289       bitField0_ = (bitField0_ & ~0x00000008);
2290       onChanged();
2291       return this;
2292     }
2293     /**
2294      *
2295      *
2296      * <pre>
2297      * Optional. The full name of the Compute Engine
2298      * [network](/compute/docs/networks-and-firewalls#networks) to which the Job
2299      * should be peered. For example, `projects/12345/global/networks/myVPC`.
2300      * [Format](/compute/docs/reference/rest/v1/networks/insert)
2301      * is of the form `projects/{project}/global/networks/{network}`.
2302      * Where {project} is a project number, as in `12345`, and {network} is a
2303      * network name.
2304      * To specify this field, you must have already [configured VPC Network
2305      * Peering for Vertex
2306      * AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering).
2307      * If this field is left unspecified, the job is not peered with any network.
2308      * </pre>
2309      *
2310      * <code>
2311      * string network = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
2312      * </code>
2313      *
2314      * @param value The bytes for network to set.
2315      * @return This builder for chaining.
2316      */
setNetworkBytes(com.google.protobuf.ByteString value)2317     public Builder setNetworkBytes(com.google.protobuf.ByteString value) {
2318       if (value == null) {
2319         throw new NullPointerException();
2320       }
2321       checkByteStringIsUtf8(value);
2322       network_ = value;
2323       bitField0_ |= 0x00000008;
2324       onChanged();
2325       return this;
2326     }
2327 
2328     private com.google.protobuf.LazyStringList reservedIpRanges_ =
2329         com.google.protobuf.LazyStringArrayList.EMPTY;
2330 
ensureReservedIpRangesIsMutable()2331     private void ensureReservedIpRangesIsMutable() {
2332       if (!((bitField0_ & 0x00000010) != 0)) {
2333         reservedIpRanges_ = new com.google.protobuf.LazyStringArrayList(reservedIpRanges_);
2334         bitField0_ |= 0x00000010;
2335       }
2336     }
2337     /**
2338      *
2339      *
2340      * <pre>
2341      * Optional. A list of names for the reserved ip ranges under the VPC network
2342      * that can be used for this job.
2343      * If set, we will deploy the job within the provided ip ranges. Otherwise,
2344      * the job will be deployed to any ip ranges under the provided VPC
2345      * network.
2346      * Example: ['vertex-ai-ip-range'].
2347      * </pre>
2348      *
2349      * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];
2350      * </code>
2351      *
2352      * @return A list containing the reservedIpRanges.
2353      */
getReservedIpRangesList()2354     public com.google.protobuf.ProtocolStringList getReservedIpRangesList() {
2355       return reservedIpRanges_.getUnmodifiableView();
2356     }
2357     /**
2358      *
2359      *
2360      * <pre>
2361      * Optional. A list of names for the reserved ip ranges under the VPC network
2362      * that can be used for this job.
2363      * If set, we will deploy the job within the provided ip ranges. Otherwise,
2364      * the job will be deployed to any ip ranges under the provided VPC
2365      * network.
2366      * Example: ['vertex-ai-ip-range'].
2367      * </pre>
2368      *
2369      * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];
2370      * </code>
2371      *
2372      * @return The count of reservedIpRanges.
2373      */
getReservedIpRangesCount()2374     public int getReservedIpRangesCount() {
2375       return reservedIpRanges_.size();
2376     }
2377     /**
2378      *
2379      *
2380      * <pre>
2381      * Optional. A list of names for the reserved ip ranges under the VPC network
2382      * that can be used for this job.
2383      * If set, we will deploy the job within the provided ip ranges. Otherwise,
2384      * the job will be deployed to any ip ranges under the provided VPC
2385      * network.
2386      * Example: ['vertex-ai-ip-range'].
2387      * </pre>
2388      *
2389      * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];
2390      * </code>
2391      *
2392      * @param index The index of the element to return.
2393      * @return The reservedIpRanges at the given index.
2394      */
getReservedIpRanges(int index)2395     public java.lang.String getReservedIpRanges(int index) {
2396       return reservedIpRanges_.get(index);
2397     }
2398     /**
2399      *
2400      *
2401      * <pre>
2402      * Optional. A list of names for the reserved ip ranges under the VPC network
2403      * that can be used for this job.
2404      * If set, we will deploy the job within the provided ip ranges. Otherwise,
2405      * the job will be deployed to any ip ranges under the provided VPC
2406      * network.
2407      * Example: ['vertex-ai-ip-range'].
2408      * </pre>
2409      *
2410      * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];
2411      * </code>
2412      *
2413      * @param index The index of the value to return.
2414      * @return The bytes of the reservedIpRanges at the given index.
2415      */
getReservedIpRangesBytes(int index)2416     public com.google.protobuf.ByteString getReservedIpRangesBytes(int index) {
2417       return reservedIpRanges_.getByteString(index);
2418     }
2419     /**
2420      *
2421      *
2422      * <pre>
2423      * Optional. A list of names for the reserved ip ranges under the VPC network
2424      * that can be used for this job.
2425      * If set, we will deploy the job within the provided ip ranges. Otherwise,
2426      * the job will be deployed to any ip ranges under the provided VPC
2427      * network.
2428      * Example: ['vertex-ai-ip-range'].
2429      * </pre>
2430      *
2431      * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];
2432      * </code>
2433      *
2434      * @param index The index to set the value at.
2435      * @param value The reservedIpRanges to set.
2436      * @return This builder for chaining.
2437      */
setReservedIpRanges(int index, java.lang.String value)2438     public Builder setReservedIpRanges(int index, java.lang.String value) {
2439       if (value == null) {
2440         throw new NullPointerException();
2441       }
2442       ensureReservedIpRangesIsMutable();
2443       reservedIpRanges_.set(index, value);
2444       onChanged();
2445       return this;
2446     }
2447     /**
2448      *
2449      *
2450      * <pre>
2451      * Optional. A list of names for the reserved ip ranges under the VPC network
2452      * that can be used for this job.
2453      * If set, we will deploy the job within the provided ip ranges. Otherwise,
2454      * the job will be deployed to any ip ranges under the provided VPC
2455      * network.
2456      * Example: ['vertex-ai-ip-range'].
2457      * </pre>
2458      *
2459      * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];
2460      * </code>
2461      *
2462      * @param value The reservedIpRanges to add.
2463      * @return This builder for chaining.
2464      */
addReservedIpRanges(java.lang.String value)2465     public Builder addReservedIpRanges(java.lang.String value) {
2466       if (value == null) {
2467         throw new NullPointerException();
2468       }
2469       ensureReservedIpRangesIsMutable();
2470       reservedIpRanges_.add(value);
2471       onChanged();
2472       return this;
2473     }
2474     /**
2475      *
2476      *
2477      * <pre>
2478      * Optional. A list of names for the reserved ip ranges under the VPC network
2479      * that can be used for this job.
2480      * If set, we will deploy the job within the provided ip ranges. Otherwise,
2481      * the job will be deployed to any ip ranges under the provided VPC
2482      * network.
2483      * Example: ['vertex-ai-ip-range'].
2484      * </pre>
2485      *
2486      * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];
2487      * </code>
2488      *
2489      * @param values The reservedIpRanges to add.
2490      * @return This builder for chaining.
2491      */
addAllReservedIpRanges(java.lang.Iterable<java.lang.String> values)2492     public Builder addAllReservedIpRanges(java.lang.Iterable<java.lang.String> values) {
2493       ensureReservedIpRangesIsMutable();
2494       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, reservedIpRanges_);
2495       onChanged();
2496       return this;
2497     }
2498     /**
2499      *
2500      *
2501      * <pre>
2502      * Optional. A list of names for the reserved ip ranges under the VPC network
2503      * that can be used for this job.
2504      * If set, we will deploy the job within the provided ip ranges. Otherwise,
2505      * the job will be deployed to any ip ranges under the provided VPC
2506      * network.
2507      * Example: ['vertex-ai-ip-range'].
2508      * </pre>
2509      *
2510      * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];
2511      * </code>
2512      *
2513      * @return This builder for chaining.
2514      */
clearReservedIpRanges()2515     public Builder clearReservedIpRanges() {
2516       reservedIpRanges_ = com.google.protobuf.LazyStringArrayList.EMPTY;
2517       bitField0_ = (bitField0_ & ~0x00000010);
2518       onChanged();
2519       return this;
2520     }
2521     /**
2522      *
2523      *
2524      * <pre>
2525      * Optional. A list of names for the reserved ip ranges under the VPC network
2526      * that can be used for this job.
2527      * If set, we will deploy the job within the provided ip ranges. Otherwise,
2528      * the job will be deployed to any ip ranges under the provided VPC
2529      * network.
2530      * Example: ['vertex-ai-ip-range'].
2531      * </pre>
2532      *
2533      * <code>repeated string reserved_ip_ranges = 13 [(.google.api.field_behavior) = OPTIONAL];
2534      * </code>
2535      *
2536      * @param value The bytes of the reservedIpRanges to add.
2537      * @return This builder for chaining.
2538      */
addReservedIpRangesBytes(com.google.protobuf.ByteString value)2539     public Builder addReservedIpRangesBytes(com.google.protobuf.ByteString value) {
2540       if (value == null) {
2541         throw new NullPointerException();
2542       }
2543       checkByteStringIsUtf8(value);
2544       ensureReservedIpRangesIsMutable();
2545       reservedIpRanges_.add(value);
2546       onChanged();
2547       return this;
2548     }
2549 
2550     private com.google.cloud.aiplatform.v1.GcsDestination baseOutputDirectory_;
2551     private com.google.protobuf.SingleFieldBuilderV3<
2552             com.google.cloud.aiplatform.v1.GcsDestination,
2553             com.google.cloud.aiplatform.v1.GcsDestination.Builder,
2554             com.google.cloud.aiplatform.v1.GcsDestinationOrBuilder>
2555         baseOutputDirectoryBuilder_;
2556     /**
2557      *
2558      *
2559      * <pre>
2560      * The Cloud Storage location to store the output of this CustomJob or
2561      * HyperparameterTuningJob. For HyperparameterTuningJob,
2562      * the baseOutputDirectory of
2563      * each child CustomJob backing a Trial is set to a subdirectory of name
2564      * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
2565      * HyperparameterTuningJob's baseOutputDirectory.
2566      * The following Vertex AI environment variables will be passed to
2567      * containers or python modules when this field is set:
2568      *   For CustomJob:
2569      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
2570      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
2571      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
2572      *   For CustomJob backing a Trial of HyperparameterTuningJob:
2573      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
2574      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
2575      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
2576      * </pre>
2577      *
2578      * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
2579      *
2580      * @return Whether the baseOutputDirectory field is set.
2581      */
hasBaseOutputDirectory()2582     public boolean hasBaseOutputDirectory() {
2583       return ((bitField0_ & 0x00000020) != 0);
2584     }
2585     /**
2586      *
2587      *
2588      * <pre>
2589      * The Cloud Storage location to store the output of this CustomJob or
2590      * HyperparameterTuningJob. For HyperparameterTuningJob,
2591      * the baseOutputDirectory of
2592      * each child CustomJob backing a Trial is set to a subdirectory of name
2593      * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
2594      * HyperparameterTuningJob's baseOutputDirectory.
2595      * The following Vertex AI environment variables will be passed to
2596      * containers or python modules when this field is set:
2597      *   For CustomJob:
2598      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
2599      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
2600      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
2601      *   For CustomJob backing a Trial of HyperparameterTuningJob:
2602      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
2603      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
2604      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
2605      * </pre>
2606      *
2607      * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
2608      *
2609      * @return The baseOutputDirectory.
2610      */
getBaseOutputDirectory()2611     public com.google.cloud.aiplatform.v1.GcsDestination getBaseOutputDirectory() {
2612       if (baseOutputDirectoryBuilder_ == null) {
2613         return baseOutputDirectory_ == null
2614             ? com.google.cloud.aiplatform.v1.GcsDestination.getDefaultInstance()
2615             : baseOutputDirectory_;
2616       } else {
2617         return baseOutputDirectoryBuilder_.getMessage();
2618       }
2619     }
2620     /**
2621      *
2622      *
2623      * <pre>
2624      * The Cloud Storage location to store the output of this CustomJob or
2625      * HyperparameterTuningJob. For HyperparameterTuningJob,
2626      * the baseOutputDirectory of
2627      * each child CustomJob backing a Trial is set to a subdirectory of name
2628      * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
2629      * HyperparameterTuningJob's baseOutputDirectory.
2630      * The following Vertex AI environment variables will be passed to
2631      * containers or python modules when this field is set:
2632      *   For CustomJob:
2633      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
2634      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
2635      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
2636      *   For CustomJob backing a Trial of HyperparameterTuningJob:
2637      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
2638      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
2639      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
2640      * </pre>
2641      *
2642      * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
2643      */
setBaseOutputDirectory(com.google.cloud.aiplatform.v1.GcsDestination value)2644     public Builder setBaseOutputDirectory(com.google.cloud.aiplatform.v1.GcsDestination value) {
2645       if (baseOutputDirectoryBuilder_ == null) {
2646         if (value == null) {
2647           throw new NullPointerException();
2648         }
2649         baseOutputDirectory_ = value;
2650       } else {
2651         baseOutputDirectoryBuilder_.setMessage(value);
2652       }
2653       bitField0_ |= 0x00000020;
2654       onChanged();
2655       return this;
2656     }
2657     /**
2658      *
2659      *
2660      * <pre>
2661      * The Cloud Storage location to store the output of this CustomJob or
2662      * HyperparameterTuningJob. For HyperparameterTuningJob,
2663      * the baseOutputDirectory of
2664      * each child CustomJob backing a Trial is set to a subdirectory of name
2665      * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
2666      * HyperparameterTuningJob's baseOutputDirectory.
2667      * The following Vertex AI environment variables will be passed to
2668      * containers or python modules when this field is set:
2669      *   For CustomJob:
2670      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
2671      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
2672      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
2673      *   For CustomJob backing a Trial of HyperparameterTuningJob:
2674      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
2675      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
2676      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
2677      * </pre>
2678      *
2679      * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
2680      */
setBaseOutputDirectory( com.google.cloud.aiplatform.v1.GcsDestination.Builder builderForValue)2681     public Builder setBaseOutputDirectory(
2682         com.google.cloud.aiplatform.v1.GcsDestination.Builder builderForValue) {
2683       if (baseOutputDirectoryBuilder_ == null) {
2684         baseOutputDirectory_ = builderForValue.build();
2685       } else {
2686         baseOutputDirectoryBuilder_.setMessage(builderForValue.build());
2687       }
2688       bitField0_ |= 0x00000020;
2689       onChanged();
2690       return this;
2691     }
2692     /**
2693      *
2694      *
2695      * <pre>
2696      * The Cloud Storage location to store the output of this CustomJob or
2697      * HyperparameterTuningJob. For HyperparameterTuningJob,
2698      * the baseOutputDirectory of
2699      * each child CustomJob backing a Trial is set to a subdirectory of name
2700      * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
2701      * HyperparameterTuningJob's baseOutputDirectory.
2702      * The following Vertex AI environment variables will be passed to
2703      * containers or python modules when this field is set:
2704      *   For CustomJob:
2705      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
2706      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
2707      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
2708      *   For CustomJob backing a Trial of HyperparameterTuningJob:
2709      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
2710      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
2711      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
2712      * </pre>
2713      *
2714      * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
2715      */
mergeBaseOutputDirectory(com.google.cloud.aiplatform.v1.GcsDestination value)2716     public Builder mergeBaseOutputDirectory(com.google.cloud.aiplatform.v1.GcsDestination value) {
2717       if (baseOutputDirectoryBuilder_ == null) {
2718         if (((bitField0_ & 0x00000020) != 0)
2719             && baseOutputDirectory_ != null
2720             && baseOutputDirectory_
2721                 != com.google.cloud.aiplatform.v1.GcsDestination.getDefaultInstance()) {
2722           getBaseOutputDirectoryBuilder().mergeFrom(value);
2723         } else {
2724           baseOutputDirectory_ = value;
2725         }
2726       } else {
2727         baseOutputDirectoryBuilder_.mergeFrom(value);
2728       }
2729       bitField0_ |= 0x00000020;
2730       onChanged();
2731       return this;
2732     }
2733     /**
2734      *
2735      *
2736      * <pre>
2737      * The Cloud Storage location to store the output of this CustomJob or
2738      * HyperparameterTuningJob. For HyperparameterTuningJob,
2739      * the baseOutputDirectory of
2740      * each child CustomJob backing a Trial is set to a subdirectory of name
2741      * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
2742      * HyperparameterTuningJob's baseOutputDirectory.
2743      * The following Vertex AI environment variables will be passed to
2744      * containers or python modules when this field is set:
2745      *   For CustomJob:
2746      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
2747      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
2748      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
2749      *   For CustomJob backing a Trial of HyperparameterTuningJob:
2750      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
2751      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
2752      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
2753      * </pre>
2754      *
2755      * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
2756      */
clearBaseOutputDirectory()2757     public Builder clearBaseOutputDirectory() {
2758       bitField0_ = (bitField0_ & ~0x00000020);
2759       baseOutputDirectory_ = null;
2760       if (baseOutputDirectoryBuilder_ != null) {
2761         baseOutputDirectoryBuilder_.dispose();
2762         baseOutputDirectoryBuilder_ = null;
2763       }
2764       onChanged();
2765       return this;
2766     }
2767     /**
2768      *
2769      *
2770      * <pre>
2771      * The Cloud Storage location to store the output of this CustomJob or
2772      * HyperparameterTuningJob. For HyperparameterTuningJob,
2773      * the baseOutputDirectory of
2774      * each child CustomJob backing a Trial is set to a subdirectory of name
2775      * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
2776      * HyperparameterTuningJob's baseOutputDirectory.
2777      * The following Vertex AI environment variables will be passed to
2778      * containers or python modules when this field is set:
2779      *   For CustomJob:
2780      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
2781      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
2782      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
2783      *   For CustomJob backing a Trial of HyperparameterTuningJob:
2784      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
2785      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
2786      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
2787      * </pre>
2788      *
2789      * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
2790      */
getBaseOutputDirectoryBuilder()2791     public com.google.cloud.aiplatform.v1.GcsDestination.Builder getBaseOutputDirectoryBuilder() {
2792       bitField0_ |= 0x00000020;
2793       onChanged();
2794       return getBaseOutputDirectoryFieldBuilder().getBuilder();
2795     }
2796     /**
2797      *
2798      *
2799      * <pre>
2800      * The Cloud Storage location to store the output of this CustomJob or
2801      * HyperparameterTuningJob. For HyperparameterTuningJob,
2802      * the baseOutputDirectory of
2803      * each child CustomJob backing a Trial is set to a subdirectory of name
2804      * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
2805      * HyperparameterTuningJob's baseOutputDirectory.
2806      * The following Vertex AI environment variables will be passed to
2807      * containers or python modules when this field is set:
2808      *   For CustomJob:
2809      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
2810      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
2811      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
2812      *   For CustomJob backing a Trial of HyperparameterTuningJob:
2813      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
2814      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
2815      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
2816      * </pre>
2817      *
2818      * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
2819      */
2820     public com.google.cloud.aiplatform.v1.GcsDestinationOrBuilder
getBaseOutputDirectoryOrBuilder()2821         getBaseOutputDirectoryOrBuilder() {
2822       if (baseOutputDirectoryBuilder_ != null) {
2823         return baseOutputDirectoryBuilder_.getMessageOrBuilder();
2824       } else {
2825         return baseOutputDirectory_ == null
2826             ? com.google.cloud.aiplatform.v1.GcsDestination.getDefaultInstance()
2827             : baseOutputDirectory_;
2828       }
2829     }
2830     /**
2831      *
2832      *
2833      * <pre>
2834      * The Cloud Storage location to store the output of this CustomJob or
2835      * HyperparameterTuningJob. For HyperparameterTuningJob,
2836      * the baseOutputDirectory of
2837      * each child CustomJob backing a Trial is set to a subdirectory of name
2838      * [id][google.cloud.aiplatform.v1.Trial.id] under its parent
2839      * HyperparameterTuningJob's baseOutputDirectory.
2840      * The following Vertex AI environment variables will be passed to
2841      * containers or python modules when this field is set:
2842      *   For CustomJob:
2843      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/model/`
2844      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/checkpoints/`
2845      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/logs/`
2846      *   For CustomJob backing a Trial of HyperparameterTuningJob:
2847      *   * AIP_MODEL_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/model/`
2848      *   * AIP_CHECKPOINT_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/checkpoints/`
2849      *   * AIP_TENSORBOARD_LOG_DIR = `&lt;base_output_directory&gt;/&lt;trial_id&gt;/logs/`
2850      * </pre>
2851      *
2852      * <code>.google.cloud.aiplatform.v1.GcsDestination base_output_directory = 6;</code>
2853      */
2854     private com.google.protobuf.SingleFieldBuilderV3<
2855             com.google.cloud.aiplatform.v1.GcsDestination,
2856             com.google.cloud.aiplatform.v1.GcsDestination.Builder,
2857             com.google.cloud.aiplatform.v1.GcsDestinationOrBuilder>
getBaseOutputDirectoryFieldBuilder()2858         getBaseOutputDirectoryFieldBuilder() {
2859       if (baseOutputDirectoryBuilder_ == null) {
2860         baseOutputDirectoryBuilder_ =
2861             new com.google.protobuf.SingleFieldBuilderV3<
2862                 com.google.cloud.aiplatform.v1.GcsDestination,
2863                 com.google.cloud.aiplatform.v1.GcsDestination.Builder,
2864                 com.google.cloud.aiplatform.v1.GcsDestinationOrBuilder>(
2865                 getBaseOutputDirectory(), getParentForChildren(), isClean());
2866         baseOutputDirectory_ = null;
2867       }
2868       return baseOutputDirectoryBuilder_;
2869     }
2870 
2871     private java.lang.Object tensorboard_ = "";
2872     /**
2873      *
2874      *
2875      * <pre>
2876      * Optional. The name of a Vertex AI
2877      * [Tensorboard][google.cloud.aiplatform.v1.Tensorboard] resource to which
2878      * this CustomJob will upload Tensorboard logs. Format:
2879      * `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
2880      * </pre>
2881      *
2882      * <code>
2883      * string tensorboard = 7 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
2884      * </code>
2885      *
2886      * @return The tensorboard.
2887      */
getTensorboard()2888     public java.lang.String getTensorboard() {
2889       java.lang.Object ref = tensorboard_;
2890       if (!(ref instanceof java.lang.String)) {
2891         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2892         java.lang.String s = bs.toStringUtf8();
2893         tensorboard_ = s;
2894         return s;
2895       } else {
2896         return (java.lang.String) ref;
2897       }
2898     }
2899     /**
2900      *
2901      *
2902      * <pre>
2903      * Optional. The name of a Vertex AI
2904      * [Tensorboard][google.cloud.aiplatform.v1.Tensorboard] resource to which
2905      * this CustomJob will upload Tensorboard logs. Format:
2906      * `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
2907      * </pre>
2908      *
2909      * <code>
2910      * string tensorboard = 7 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
2911      * </code>
2912      *
2913      * @return The bytes for tensorboard.
2914      */
getTensorboardBytes()2915     public com.google.protobuf.ByteString getTensorboardBytes() {
2916       java.lang.Object ref = tensorboard_;
2917       if (ref instanceof String) {
2918         com.google.protobuf.ByteString b =
2919             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2920         tensorboard_ = b;
2921         return b;
2922       } else {
2923         return (com.google.protobuf.ByteString) ref;
2924       }
2925     }
2926     /**
2927      *
2928      *
2929      * <pre>
2930      * Optional. The name of a Vertex AI
2931      * [Tensorboard][google.cloud.aiplatform.v1.Tensorboard] resource to which
2932      * this CustomJob will upload Tensorboard logs. Format:
2933      * `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
2934      * </pre>
2935      *
2936      * <code>
2937      * string tensorboard = 7 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
2938      * </code>
2939      *
2940      * @param value The tensorboard to set.
2941      * @return This builder for chaining.
2942      */
setTensorboard(java.lang.String value)2943     public Builder setTensorboard(java.lang.String value) {
2944       if (value == null) {
2945         throw new NullPointerException();
2946       }
2947       tensorboard_ = value;
2948       bitField0_ |= 0x00000040;
2949       onChanged();
2950       return this;
2951     }
2952     /**
2953      *
2954      *
2955      * <pre>
2956      * Optional. The name of a Vertex AI
2957      * [Tensorboard][google.cloud.aiplatform.v1.Tensorboard] resource to which
2958      * this CustomJob will upload Tensorboard logs. Format:
2959      * `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
2960      * </pre>
2961      *
2962      * <code>
2963      * string tensorboard = 7 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
2964      * </code>
2965      *
2966      * @return This builder for chaining.
2967      */
clearTensorboard()2968     public Builder clearTensorboard() {
2969       tensorboard_ = getDefaultInstance().getTensorboard();
2970       bitField0_ = (bitField0_ & ~0x00000040);
2971       onChanged();
2972       return this;
2973     }
2974     /**
2975      *
2976      *
2977      * <pre>
2978      * Optional. The name of a Vertex AI
2979      * [Tensorboard][google.cloud.aiplatform.v1.Tensorboard] resource to which
2980      * this CustomJob will upload Tensorboard logs. Format:
2981      * `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
2982      * </pre>
2983      *
2984      * <code>
2985      * string tensorboard = 7 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
2986      * </code>
2987      *
2988      * @param value The bytes for tensorboard to set.
2989      * @return This builder for chaining.
2990      */
setTensorboardBytes(com.google.protobuf.ByteString value)2991     public Builder setTensorboardBytes(com.google.protobuf.ByteString value) {
2992       if (value == null) {
2993         throw new NullPointerException();
2994       }
2995       checkByteStringIsUtf8(value);
2996       tensorboard_ = value;
2997       bitField0_ |= 0x00000040;
2998       onChanged();
2999       return this;
3000     }
3001 
3002     private boolean enableWebAccess_;
3003     /**
3004      *
3005      *
3006      * <pre>
3007      * Optional. Whether you want Vertex AI to enable [interactive shell
3008      * access](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell)
3009      * to training containers.
3010      * If set to `true`, you can access interactive shells at the URIs given
3011      * by
3012      * [CustomJob.web_access_uris][google.cloud.aiplatform.v1.CustomJob.web_access_uris]
3013      * or
3014      * [Trial.web_access_uris][google.cloud.aiplatform.v1.Trial.web_access_uris]
3015      * (within
3016      * [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1.HyperparameterTuningJob.trials]).
3017      * </pre>
3018      *
3019      * <code>bool enable_web_access = 10 [(.google.api.field_behavior) = OPTIONAL];</code>
3020      *
3021      * @return The enableWebAccess.
3022      */
3023     @java.lang.Override
getEnableWebAccess()3024     public boolean getEnableWebAccess() {
3025       return enableWebAccess_;
3026     }
3027     /**
3028      *
3029      *
3030      * <pre>
3031      * Optional. Whether you want Vertex AI to enable [interactive shell
3032      * access](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell)
3033      * to training containers.
3034      * If set to `true`, you can access interactive shells at the URIs given
3035      * by
3036      * [CustomJob.web_access_uris][google.cloud.aiplatform.v1.CustomJob.web_access_uris]
3037      * or
3038      * [Trial.web_access_uris][google.cloud.aiplatform.v1.Trial.web_access_uris]
3039      * (within
3040      * [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1.HyperparameterTuningJob.trials]).
3041      * </pre>
3042      *
3043      * <code>bool enable_web_access = 10 [(.google.api.field_behavior) = OPTIONAL];</code>
3044      *
3045      * @param value The enableWebAccess to set.
3046      * @return This builder for chaining.
3047      */
setEnableWebAccess(boolean value)3048     public Builder setEnableWebAccess(boolean value) {
3049 
3050       enableWebAccess_ = value;
3051       bitField0_ |= 0x00000080;
3052       onChanged();
3053       return this;
3054     }
3055     /**
3056      *
3057      *
3058      * <pre>
3059      * Optional. Whether you want Vertex AI to enable [interactive shell
3060      * access](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell)
3061      * to training containers.
3062      * If set to `true`, you can access interactive shells at the URIs given
3063      * by
3064      * [CustomJob.web_access_uris][google.cloud.aiplatform.v1.CustomJob.web_access_uris]
3065      * or
3066      * [Trial.web_access_uris][google.cloud.aiplatform.v1.Trial.web_access_uris]
3067      * (within
3068      * [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1.HyperparameterTuningJob.trials]).
3069      * </pre>
3070      *
3071      * <code>bool enable_web_access = 10 [(.google.api.field_behavior) = OPTIONAL];</code>
3072      *
3073      * @return This builder for chaining.
3074      */
clearEnableWebAccess()3075     public Builder clearEnableWebAccess() {
3076       bitField0_ = (bitField0_ & ~0x00000080);
3077       enableWebAccess_ = false;
3078       onChanged();
3079       return this;
3080     }
3081 
3082     private boolean enableDashboardAccess_;
3083     /**
3084      *
3085      *
3086      * <pre>
3087      * Optional. Whether you want Vertex AI to enable access to the customized
3088      * dashboard in training chief container.
3089      * If set to `true`, you can access the dashboard at the URIs given
3090      * by
3091      * [CustomJob.web_access_uris][google.cloud.aiplatform.v1.CustomJob.web_access_uris]
3092      * or
3093      * [Trial.web_access_uris][google.cloud.aiplatform.v1.Trial.web_access_uris]
3094      * (within
3095      * [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1.HyperparameterTuningJob.trials]).
3096      * </pre>
3097      *
3098      * <code>bool enable_dashboard_access = 16 [(.google.api.field_behavior) = OPTIONAL];</code>
3099      *
3100      * @return The enableDashboardAccess.
3101      */
3102     @java.lang.Override
getEnableDashboardAccess()3103     public boolean getEnableDashboardAccess() {
3104       return enableDashboardAccess_;
3105     }
3106     /**
3107      *
3108      *
3109      * <pre>
3110      * Optional. Whether you want Vertex AI to enable access to the customized
3111      * dashboard in training chief container.
3112      * If set to `true`, you can access the dashboard at the URIs given
3113      * by
3114      * [CustomJob.web_access_uris][google.cloud.aiplatform.v1.CustomJob.web_access_uris]
3115      * or
3116      * [Trial.web_access_uris][google.cloud.aiplatform.v1.Trial.web_access_uris]
3117      * (within
3118      * [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1.HyperparameterTuningJob.trials]).
3119      * </pre>
3120      *
3121      * <code>bool enable_dashboard_access = 16 [(.google.api.field_behavior) = OPTIONAL];</code>
3122      *
3123      * @param value The enableDashboardAccess to set.
3124      * @return This builder for chaining.
3125      */
setEnableDashboardAccess(boolean value)3126     public Builder setEnableDashboardAccess(boolean value) {
3127 
3128       enableDashboardAccess_ = value;
3129       bitField0_ |= 0x00000100;
3130       onChanged();
3131       return this;
3132     }
3133     /**
3134      *
3135      *
3136      * <pre>
3137      * Optional. Whether you want Vertex AI to enable access to the customized
3138      * dashboard in training chief container.
3139      * If set to `true`, you can access the dashboard at the URIs given
3140      * by
3141      * [CustomJob.web_access_uris][google.cloud.aiplatform.v1.CustomJob.web_access_uris]
3142      * or
3143      * [Trial.web_access_uris][google.cloud.aiplatform.v1.Trial.web_access_uris]
3144      * (within
3145      * [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1.HyperparameterTuningJob.trials]).
3146      * </pre>
3147      *
3148      * <code>bool enable_dashboard_access = 16 [(.google.api.field_behavior) = OPTIONAL];</code>
3149      *
3150      * @return This builder for chaining.
3151      */
clearEnableDashboardAccess()3152     public Builder clearEnableDashboardAccess() {
3153       bitField0_ = (bitField0_ & ~0x00000100);
3154       enableDashboardAccess_ = false;
3155       onChanged();
3156       return this;
3157     }
3158 
3159     private java.lang.Object experiment_ = "";
3160     /**
3161      *
3162      *
3163      * <pre>
3164      * Optional. The Experiment associated with this job.
3165      * Format:
3166      * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}`
3167      * </pre>
3168      *
3169      * <code>
3170      * string experiment = 17 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
3171      * </code>
3172      *
3173      * @return The experiment.
3174      */
getExperiment()3175     public java.lang.String getExperiment() {
3176       java.lang.Object ref = experiment_;
3177       if (!(ref instanceof java.lang.String)) {
3178         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
3179         java.lang.String s = bs.toStringUtf8();
3180         experiment_ = s;
3181         return s;
3182       } else {
3183         return (java.lang.String) ref;
3184       }
3185     }
3186     /**
3187      *
3188      *
3189      * <pre>
3190      * Optional. The Experiment associated with this job.
3191      * Format:
3192      * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}`
3193      * </pre>
3194      *
3195      * <code>
3196      * string experiment = 17 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
3197      * </code>
3198      *
3199      * @return The bytes for experiment.
3200      */
getExperimentBytes()3201     public com.google.protobuf.ByteString getExperimentBytes() {
3202       java.lang.Object ref = experiment_;
3203       if (ref instanceof String) {
3204         com.google.protobuf.ByteString b =
3205             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
3206         experiment_ = b;
3207         return b;
3208       } else {
3209         return (com.google.protobuf.ByteString) ref;
3210       }
3211     }
3212     /**
3213      *
3214      *
3215      * <pre>
3216      * Optional. The Experiment associated with this job.
3217      * Format:
3218      * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}`
3219      * </pre>
3220      *
3221      * <code>
3222      * string experiment = 17 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
3223      * </code>
3224      *
3225      * @param value The experiment to set.
3226      * @return This builder for chaining.
3227      */
setExperiment(java.lang.String value)3228     public Builder setExperiment(java.lang.String value) {
3229       if (value == null) {
3230         throw new NullPointerException();
3231       }
3232       experiment_ = value;
3233       bitField0_ |= 0x00000200;
3234       onChanged();
3235       return this;
3236     }
3237     /**
3238      *
3239      *
3240      * <pre>
3241      * Optional. The Experiment associated with this job.
3242      * Format:
3243      * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}`
3244      * </pre>
3245      *
3246      * <code>
3247      * string experiment = 17 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
3248      * </code>
3249      *
3250      * @return This builder for chaining.
3251      */
clearExperiment()3252     public Builder clearExperiment() {
3253       experiment_ = getDefaultInstance().getExperiment();
3254       bitField0_ = (bitField0_ & ~0x00000200);
3255       onChanged();
3256       return this;
3257     }
3258     /**
3259      *
3260      *
3261      * <pre>
3262      * Optional. The Experiment associated with this job.
3263      * Format:
3264      * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}`
3265      * </pre>
3266      *
3267      * <code>
3268      * string experiment = 17 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
3269      * </code>
3270      *
3271      * @param value The bytes for experiment to set.
3272      * @return This builder for chaining.
3273      */
setExperimentBytes(com.google.protobuf.ByteString value)3274     public Builder setExperimentBytes(com.google.protobuf.ByteString value) {
3275       if (value == null) {
3276         throw new NullPointerException();
3277       }
3278       checkByteStringIsUtf8(value);
3279       experiment_ = value;
3280       bitField0_ |= 0x00000200;
3281       onChanged();
3282       return this;
3283     }
3284 
3285     private java.lang.Object experimentRun_ = "";
3286     /**
3287      *
3288      *
3289      * <pre>
3290      * Optional. The Experiment Run associated with this job.
3291      * Format:
3292      * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}`
3293      * </pre>
3294      *
3295      * <code>
3296      * string experiment_run = 18 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
3297      * </code>
3298      *
3299      * @return The experimentRun.
3300      */
getExperimentRun()3301     public java.lang.String getExperimentRun() {
3302       java.lang.Object ref = experimentRun_;
3303       if (!(ref instanceof java.lang.String)) {
3304         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
3305         java.lang.String s = bs.toStringUtf8();
3306         experimentRun_ = s;
3307         return s;
3308       } else {
3309         return (java.lang.String) ref;
3310       }
3311     }
3312     /**
3313      *
3314      *
3315      * <pre>
3316      * Optional. The Experiment Run associated with this job.
3317      * Format:
3318      * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}`
3319      * </pre>
3320      *
3321      * <code>
3322      * string experiment_run = 18 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
3323      * </code>
3324      *
3325      * @return The bytes for experimentRun.
3326      */
getExperimentRunBytes()3327     public com.google.protobuf.ByteString getExperimentRunBytes() {
3328       java.lang.Object ref = experimentRun_;
3329       if (ref instanceof String) {
3330         com.google.protobuf.ByteString b =
3331             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
3332         experimentRun_ = b;
3333         return b;
3334       } else {
3335         return (com.google.protobuf.ByteString) ref;
3336       }
3337     }
3338     /**
3339      *
3340      *
3341      * <pre>
3342      * Optional. The Experiment Run associated with this job.
3343      * Format:
3344      * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}`
3345      * </pre>
3346      *
3347      * <code>
3348      * string experiment_run = 18 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
3349      * </code>
3350      *
3351      * @param value The experimentRun to set.
3352      * @return This builder for chaining.
3353      */
setExperimentRun(java.lang.String value)3354     public Builder setExperimentRun(java.lang.String value) {
3355       if (value == null) {
3356         throw new NullPointerException();
3357       }
3358       experimentRun_ = value;
3359       bitField0_ |= 0x00000400;
3360       onChanged();
3361       return this;
3362     }
3363     /**
3364      *
3365      *
3366      * <pre>
3367      * Optional. The Experiment Run associated with this job.
3368      * Format:
3369      * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}`
3370      * </pre>
3371      *
3372      * <code>
3373      * string experiment_run = 18 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
3374      * </code>
3375      *
3376      * @return This builder for chaining.
3377      */
clearExperimentRun()3378     public Builder clearExperimentRun() {
3379       experimentRun_ = getDefaultInstance().getExperimentRun();
3380       bitField0_ = (bitField0_ & ~0x00000400);
3381       onChanged();
3382       return this;
3383     }
3384     /**
3385      *
3386      *
3387      * <pre>
3388      * Optional. The Experiment Run associated with this job.
3389      * Format:
3390      * `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}`
3391      * </pre>
3392      *
3393      * <code>
3394      * string experiment_run = 18 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { ... }
3395      * </code>
3396      *
3397      * @param value The bytes for experimentRun to set.
3398      * @return This builder for chaining.
3399      */
setExperimentRunBytes(com.google.protobuf.ByteString value)3400     public Builder setExperimentRunBytes(com.google.protobuf.ByteString value) {
3401       if (value == null) {
3402         throw new NullPointerException();
3403       }
3404       checkByteStringIsUtf8(value);
3405       experimentRun_ = value;
3406       bitField0_ |= 0x00000400;
3407       onChanged();
3408       return this;
3409     }
3410 
3411     @java.lang.Override
setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)3412     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
3413       return super.setUnknownFields(unknownFields);
3414     }
3415 
3416     @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)3417     public final Builder mergeUnknownFields(
3418         final com.google.protobuf.UnknownFieldSet unknownFields) {
3419       return super.mergeUnknownFields(unknownFields);
3420     }
3421 
3422     // @@protoc_insertion_point(builder_scope:google.cloud.aiplatform.v1.CustomJobSpec)
3423   }
3424 
3425   // @@protoc_insertion_point(class_scope:google.cloud.aiplatform.v1.CustomJobSpec)
3426   private static final com.google.cloud.aiplatform.v1.CustomJobSpec DEFAULT_INSTANCE;
3427 
3428   static {
3429     DEFAULT_INSTANCE = new com.google.cloud.aiplatform.v1.CustomJobSpec();
3430   }
3431 
getDefaultInstance()3432   public static com.google.cloud.aiplatform.v1.CustomJobSpec getDefaultInstance() {
3433     return DEFAULT_INSTANCE;
3434   }
3435 
3436   private static final com.google.protobuf.Parser<CustomJobSpec> PARSER =
3437       new com.google.protobuf.AbstractParser<CustomJobSpec>() {
3438         @java.lang.Override
3439         public CustomJobSpec parsePartialFrom(
3440             com.google.protobuf.CodedInputStream input,
3441             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3442             throws com.google.protobuf.InvalidProtocolBufferException {
3443           Builder builder = newBuilder();
3444           try {
3445             builder.mergeFrom(input, extensionRegistry);
3446           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3447             throw e.setUnfinishedMessage(builder.buildPartial());
3448           } catch (com.google.protobuf.UninitializedMessageException e) {
3449             throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
3450           } catch (java.io.IOException e) {
3451             throw new com.google.protobuf.InvalidProtocolBufferException(e)
3452                 .setUnfinishedMessage(builder.buildPartial());
3453           }
3454           return builder.buildPartial();
3455         }
3456       };
3457 
parser()3458   public static com.google.protobuf.Parser<CustomJobSpec> parser() {
3459     return PARSER;
3460   }
3461 
3462   @java.lang.Override
getParserForType()3463   public com.google.protobuf.Parser<CustomJobSpec> getParserForType() {
3464     return PARSER;
3465   }
3466 
3467   @java.lang.Override
getDefaultInstanceForType()3468   public com.google.cloud.aiplatform.v1.CustomJobSpec getDefaultInstanceForType() {
3469     return DEFAULT_INSTANCE;
3470   }
3471 }
3472