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