001// Generated by the protocol buffer compiler.  DO NOT EDIT!
002// source: hapi/release/hook.proto
003
004package hapi.release;
005
006public final class HookOuterClass {
007  private HookOuterClass() {}
008  public static void registerAllExtensions(
009      com.google.protobuf.ExtensionRegistryLite registry) {
010  }
011
012  public static void registerAllExtensions(
013      com.google.protobuf.ExtensionRegistry registry) {
014    registerAllExtensions(
015        (com.google.protobuf.ExtensionRegistryLite) registry);
016  }
017  public interface HookOrBuilder extends
018      // @@protoc_insertion_point(interface_extends:hapi.release.Hook)
019      com.google.protobuf.MessageOrBuilder {
020
021    /**
022     * <code>string name = 1;</code>
023     */
024    java.lang.String getName();
025    /**
026     * <code>string name = 1;</code>
027     */
028    com.google.protobuf.ByteString
029        getNameBytes();
030
031    /**
032     * <pre>
033     * Kind is the Kubernetes kind.
034     * </pre>
035     *
036     * <code>string kind = 2;</code>
037     */
038    java.lang.String getKind();
039    /**
040     * <pre>
041     * Kind is the Kubernetes kind.
042     * </pre>
043     *
044     * <code>string kind = 2;</code>
045     */
046    com.google.protobuf.ByteString
047        getKindBytes();
048
049    /**
050     * <pre>
051     * Path is the chart-relative path to the template.
052     * </pre>
053     *
054     * <code>string path = 3;</code>
055     */
056    java.lang.String getPath();
057    /**
058     * <pre>
059     * Path is the chart-relative path to the template.
060     * </pre>
061     *
062     * <code>string path = 3;</code>
063     */
064    com.google.protobuf.ByteString
065        getPathBytes();
066
067    /**
068     * <pre>
069     * Manifest is the manifest contents.
070     * </pre>
071     *
072     * <code>string manifest = 4;</code>
073     */
074    java.lang.String getManifest();
075    /**
076     * <pre>
077     * Manifest is the manifest contents.
078     * </pre>
079     *
080     * <code>string manifest = 4;</code>
081     */
082    com.google.protobuf.ByteString
083        getManifestBytes();
084
085    /**
086     * <pre>
087     * Events are the events that this hook fires on.
088     * </pre>
089     *
090     * <code>repeated .hapi.release.Hook.Event events = 5;</code>
091     */
092    java.util.List<hapi.release.HookOuterClass.Hook.Event> getEventsList();
093    /**
094     * <pre>
095     * Events are the events that this hook fires on.
096     * </pre>
097     *
098     * <code>repeated .hapi.release.Hook.Event events = 5;</code>
099     */
100    int getEventsCount();
101    /**
102     * <pre>
103     * Events are the events that this hook fires on.
104     * </pre>
105     *
106     * <code>repeated .hapi.release.Hook.Event events = 5;</code>
107     */
108    hapi.release.HookOuterClass.Hook.Event getEvents(int index);
109    /**
110     * <pre>
111     * Events are the events that this hook fires on.
112     * </pre>
113     *
114     * <code>repeated .hapi.release.Hook.Event events = 5;</code>
115     */
116    java.util.List<java.lang.Integer>
117    getEventsValueList();
118    /**
119     * <pre>
120     * Events are the events that this hook fires on.
121     * </pre>
122     *
123     * <code>repeated .hapi.release.Hook.Event events = 5;</code>
124     */
125    int getEventsValue(int index);
126
127    /**
128     * <pre>
129     * LastRun indicates the date/time this was last run.
130     * </pre>
131     *
132     * <code>.google.protobuf.Timestamp last_run = 6;</code>
133     */
134    boolean hasLastRun();
135    /**
136     * <pre>
137     * LastRun indicates the date/time this was last run.
138     * </pre>
139     *
140     * <code>.google.protobuf.Timestamp last_run = 6;</code>
141     */
142    com.google.protobuf.Timestamp getLastRun();
143    /**
144     * <pre>
145     * LastRun indicates the date/time this was last run.
146     * </pre>
147     *
148     * <code>.google.protobuf.Timestamp last_run = 6;</code>
149     */
150    com.google.protobuf.TimestampOrBuilder getLastRunOrBuilder();
151
152    /**
153     * <pre>
154     * Weight indicates the sort order for execution among similar Hook type
155     * </pre>
156     *
157     * <code>int32 weight = 7;</code>
158     */
159    int getWeight();
160
161    /**
162     * <pre>
163     * DeletePolicies are the policies that indicate when to delete the hook
164     * </pre>
165     *
166     * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
167     */
168    java.util.List<hapi.release.HookOuterClass.Hook.DeletePolicy> getDeletePoliciesList();
169    /**
170     * <pre>
171     * DeletePolicies are the policies that indicate when to delete the hook
172     * </pre>
173     *
174     * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
175     */
176    int getDeletePoliciesCount();
177    /**
178     * <pre>
179     * DeletePolicies are the policies that indicate when to delete the hook
180     * </pre>
181     *
182     * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
183     */
184    hapi.release.HookOuterClass.Hook.DeletePolicy getDeletePolicies(int index);
185    /**
186     * <pre>
187     * DeletePolicies are the policies that indicate when to delete the hook
188     * </pre>
189     *
190     * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
191     */
192    java.util.List<java.lang.Integer>
193    getDeletePoliciesValueList();
194    /**
195     * <pre>
196     * DeletePolicies are the policies that indicate when to delete the hook
197     * </pre>
198     *
199     * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
200     */
201    int getDeletePoliciesValue(int index);
202  }
203  /**
204   * <pre>
205   * Hook defines a hook object.
206   * </pre>
207   *
208   * Protobuf type {@code hapi.release.Hook}
209   */
210  public  static final class Hook extends
211      com.google.protobuf.GeneratedMessageV3 implements
212      // @@protoc_insertion_point(message_implements:hapi.release.Hook)
213      HookOrBuilder {
214  private static final long serialVersionUID = 0L;
215    // Use Hook.newBuilder() to construct.
216    private Hook(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
217      super(builder);
218    }
219    private Hook() {
220      name_ = "";
221      kind_ = "";
222      path_ = "";
223      manifest_ = "";
224      events_ = java.util.Collections.emptyList();
225      weight_ = 0;
226      deletePolicies_ = java.util.Collections.emptyList();
227    }
228
229    @java.lang.Override
230    public final com.google.protobuf.UnknownFieldSet
231    getUnknownFields() {
232      return this.unknownFields;
233    }
234    private Hook(
235        com.google.protobuf.CodedInputStream input,
236        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
237        throws com.google.protobuf.InvalidProtocolBufferException {
238      this();
239      int mutable_bitField0_ = 0;
240      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
241          com.google.protobuf.UnknownFieldSet.newBuilder();
242      try {
243        boolean done = false;
244        while (!done) {
245          int tag = input.readTag();
246          switch (tag) {
247            case 0:
248              done = true;
249              break;
250            default: {
251              if (!parseUnknownFieldProto3(
252                  input, unknownFields, extensionRegistry, tag)) {
253                done = true;
254              }
255              break;
256            }
257            case 10: {
258              java.lang.String s = input.readStringRequireUtf8();
259
260              name_ = s;
261              break;
262            }
263            case 18: {
264              java.lang.String s = input.readStringRequireUtf8();
265
266              kind_ = s;
267              break;
268            }
269            case 26: {
270              java.lang.String s = input.readStringRequireUtf8();
271
272              path_ = s;
273              break;
274            }
275            case 34: {
276              java.lang.String s = input.readStringRequireUtf8();
277
278              manifest_ = s;
279              break;
280            }
281            case 40: {
282              int rawValue = input.readEnum();
283              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
284                events_ = new java.util.ArrayList<java.lang.Integer>();
285                mutable_bitField0_ |= 0x00000010;
286              }
287              events_.add(rawValue);
288              break;
289            }
290            case 42: {
291              int length = input.readRawVarint32();
292              int oldLimit = input.pushLimit(length);
293              while(input.getBytesUntilLimit() > 0) {
294                int rawValue = input.readEnum();
295                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
296                  events_ = new java.util.ArrayList<java.lang.Integer>();
297                  mutable_bitField0_ |= 0x00000010;
298                }
299                events_.add(rawValue);
300              }
301              input.popLimit(oldLimit);
302              break;
303            }
304            case 50: {
305              com.google.protobuf.Timestamp.Builder subBuilder = null;
306              if (lastRun_ != null) {
307                subBuilder = lastRun_.toBuilder();
308              }
309              lastRun_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
310              if (subBuilder != null) {
311                subBuilder.mergeFrom(lastRun_);
312                lastRun_ = subBuilder.buildPartial();
313              }
314
315              break;
316            }
317            case 56: {
318
319              weight_ = input.readInt32();
320              break;
321            }
322            case 64: {
323              int rawValue = input.readEnum();
324              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
325                deletePolicies_ = new java.util.ArrayList<java.lang.Integer>();
326                mutable_bitField0_ |= 0x00000080;
327              }
328              deletePolicies_.add(rawValue);
329              break;
330            }
331            case 66: {
332              int length = input.readRawVarint32();
333              int oldLimit = input.pushLimit(length);
334              while(input.getBytesUntilLimit() > 0) {
335                int rawValue = input.readEnum();
336                if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
337                  deletePolicies_ = new java.util.ArrayList<java.lang.Integer>();
338                  mutable_bitField0_ |= 0x00000080;
339                }
340                deletePolicies_.add(rawValue);
341              }
342              input.popLimit(oldLimit);
343              break;
344            }
345          }
346        }
347      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
348        throw e.setUnfinishedMessage(this);
349      } catch (java.io.IOException e) {
350        throw new com.google.protobuf.InvalidProtocolBufferException(
351            e).setUnfinishedMessage(this);
352      } finally {
353        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
354          events_ = java.util.Collections.unmodifiableList(events_);
355        }
356        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
357          deletePolicies_ = java.util.Collections.unmodifiableList(deletePolicies_);
358        }
359        this.unknownFields = unknownFields.build();
360        makeExtensionsImmutable();
361      }
362    }
363    public static final com.google.protobuf.Descriptors.Descriptor
364        getDescriptor() {
365      return hapi.release.HookOuterClass.internal_static_hapi_release_Hook_descriptor;
366    }
367
368    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
369        internalGetFieldAccessorTable() {
370      return hapi.release.HookOuterClass.internal_static_hapi_release_Hook_fieldAccessorTable
371          .ensureFieldAccessorsInitialized(
372              hapi.release.HookOuterClass.Hook.class, hapi.release.HookOuterClass.Hook.Builder.class);
373    }
374
375    /**
376     * Protobuf enum {@code hapi.release.Hook.Event}
377     */
378    public enum Event
379        implements com.google.protobuf.ProtocolMessageEnum {
380      /**
381       * <code>UNKNOWN = 0;</code>
382       */
383      UNKNOWN(0),
384      /**
385       * <code>PRE_INSTALL = 1;</code>
386       */
387      PRE_INSTALL(1),
388      /**
389       * <code>POST_INSTALL = 2;</code>
390       */
391      POST_INSTALL(2),
392      /**
393       * <code>PRE_DELETE = 3;</code>
394       */
395      PRE_DELETE(3),
396      /**
397       * <code>POST_DELETE = 4;</code>
398       */
399      POST_DELETE(4),
400      /**
401       * <code>PRE_UPGRADE = 5;</code>
402       */
403      PRE_UPGRADE(5),
404      /**
405       * <code>POST_UPGRADE = 6;</code>
406       */
407      POST_UPGRADE(6),
408      /**
409       * <code>PRE_ROLLBACK = 7;</code>
410       */
411      PRE_ROLLBACK(7),
412      /**
413       * <code>POST_ROLLBACK = 8;</code>
414       */
415      POST_ROLLBACK(8),
416      /**
417       * <code>RELEASE_TEST_SUCCESS = 9;</code>
418       */
419      RELEASE_TEST_SUCCESS(9),
420      /**
421       * <code>RELEASE_TEST_FAILURE = 10;</code>
422       */
423      RELEASE_TEST_FAILURE(10),
424      UNRECOGNIZED(-1),
425      ;
426
427      /**
428       * <code>UNKNOWN = 0;</code>
429       */
430      public static final int UNKNOWN_VALUE = 0;
431      /**
432       * <code>PRE_INSTALL = 1;</code>
433       */
434      public static final int PRE_INSTALL_VALUE = 1;
435      /**
436       * <code>POST_INSTALL = 2;</code>
437       */
438      public static final int POST_INSTALL_VALUE = 2;
439      /**
440       * <code>PRE_DELETE = 3;</code>
441       */
442      public static final int PRE_DELETE_VALUE = 3;
443      /**
444       * <code>POST_DELETE = 4;</code>
445       */
446      public static final int POST_DELETE_VALUE = 4;
447      /**
448       * <code>PRE_UPGRADE = 5;</code>
449       */
450      public static final int PRE_UPGRADE_VALUE = 5;
451      /**
452       * <code>POST_UPGRADE = 6;</code>
453       */
454      public static final int POST_UPGRADE_VALUE = 6;
455      /**
456       * <code>PRE_ROLLBACK = 7;</code>
457       */
458      public static final int PRE_ROLLBACK_VALUE = 7;
459      /**
460       * <code>POST_ROLLBACK = 8;</code>
461       */
462      public static final int POST_ROLLBACK_VALUE = 8;
463      /**
464       * <code>RELEASE_TEST_SUCCESS = 9;</code>
465       */
466      public static final int RELEASE_TEST_SUCCESS_VALUE = 9;
467      /**
468       * <code>RELEASE_TEST_FAILURE = 10;</code>
469       */
470      public static final int RELEASE_TEST_FAILURE_VALUE = 10;
471
472
473      public final int getNumber() {
474        if (this == UNRECOGNIZED) {
475          throw new java.lang.IllegalArgumentException(
476              "Can't get the number of an unknown enum value.");
477        }
478        return value;
479      }
480
481      /**
482       * @deprecated Use {@link #forNumber(int)} instead.
483       */
484      @java.lang.Deprecated
485      public static Event valueOf(int value) {
486        return forNumber(value);
487      }
488
489      public static Event forNumber(int value) {
490        switch (value) {
491          case 0: return UNKNOWN;
492          case 1: return PRE_INSTALL;
493          case 2: return POST_INSTALL;
494          case 3: return PRE_DELETE;
495          case 4: return POST_DELETE;
496          case 5: return PRE_UPGRADE;
497          case 6: return POST_UPGRADE;
498          case 7: return PRE_ROLLBACK;
499          case 8: return POST_ROLLBACK;
500          case 9: return RELEASE_TEST_SUCCESS;
501          case 10: return RELEASE_TEST_FAILURE;
502          default: return null;
503        }
504      }
505
506      public static com.google.protobuf.Internal.EnumLiteMap<Event>
507          internalGetValueMap() {
508        return internalValueMap;
509      }
510      private static final com.google.protobuf.Internal.EnumLiteMap<
511          Event> internalValueMap =
512            new com.google.protobuf.Internal.EnumLiteMap<Event>() {
513              public Event findValueByNumber(int number) {
514                return Event.forNumber(number);
515              }
516            };
517
518      public final com.google.protobuf.Descriptors.EnumValueDescriptor
519          getValueDescriptor() {
520        return getDescriptor().getValues().get(ordinal());
521      }
522      public final com.google.protobuf.Descriptors.EnumDescriptor
523          getDescriptorForType() {
524        return getDescriptor();
525      }
526      public static final com.google.protobuf.Descriptors.EnumDescriptor
527          getDescriptor() {
528        return hapi.release.HookOuterClass.Hook.getDescriptor().getEnumTypes().get(0);
529      }
530
531      private static final Event[] VALUES = values();
532
533      public static Event valueOf(
534          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
535        if (desc.getType() != getDescriptor()) {
536          throw new java.lang.IllegalArgumentException(
537            "EnumValueDescriptor is not for this type.");
538        }
539        if (desc.getIndex() == -1) {
540          return UNRECOGNIZED;
541        }
542        return VALUES[desc.getIndex()];
543      }
544
545      private final int value;
546
547      private Event(int value) {
548        this.value = value;
549      }
550
551      // @@protoc_insertion_point(enum_scope:hapi.release.Hook.Event)
552    }
553
554    /**
555     * Protobuf enum {@code hapi.release.Hook.DeletePolicy}
556     */
557    public enum DeletePolicy
558        implements com.google.protobuf.ProtocolMessageEnum {
559      /**
560       * <code>SUCCEEDED = 0;</code>
561       */
562      SUCCEEDED(0),
563      /**
564       * <code>FAILED = 1;</code>
565       */
566      FAILED(1),
567      UNRECOGNIZED(-1),
568      ;
569
570      /**
571       * <code>SUCCEEDED = 0;</code>
572       */
573      public static final int SUCCEEDED_VALUE = 0;
574      /**
575       * <code>FAILED = 1;</code>
576       */
577      public static final int FAILED_VALUE = 1;
578
579
580      public final int getNumber() {
581        if (this == UNRECOGNIZED) {
582          throw new java.lang.IllegalArgumentException(
583              "Can't get the number of an unknown enum value.");
584        }
585        return value;
586      }
587
588      /**
589       * @deprecated Use {@link #forNumber(int)} instead.
590       */
591      @java.lang.Deprecated
592      public static DeletePolicy valueOf(int value) {
593        return forNumber(value);
594      }
595
596      public static DeletePolicy forNumber(int value) {
597        switch (value) {
598          case 0: return SUCCEEDED;
599          case 1: return FAILED;
600          default: return null;
601        }
602      }
603
604      public static com.google.protobuf.Internal.EnumLiteMap<DeletePolicy>
605          internalGetValueMap() {
606        return internalValueMap;
607      }
608      private static final com.google.protobuf.Internal.EnumLiteMap<
609          DeletePolicy> internalValueMap =
610            new com.google.protobuf.Internal.EnumLiteMap<DeletePolicy>() {
611              public DeletePolicy findValueByNumber(int number) {
612                return DeletePolicy.forNumber(number);
613              }
614            };
615
616      public final com.google.protobuf.Descriptors.EnumValueDescriptor
617          getValueDescriptor() {
618        return getDescriptor().getValues().get(ordinal());
619      }
620      public final com.google.protobuf.Descriptors.EnumDescriptor
621          getDescriptorForType() {
622        return getDescriptor();
623      }
624      public static final com.google.protobuf.Descriptors.EnumDescriptor
625          getDescriptor() {
626        return hapi.release.HookOuterClass.Hook.getDescriptor().getEnumTypes().get(1);
627      }
628
629      private static final DeletePolicy[] VALUES = values();
630
631      public static DeletePolicy valueOf(
632          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
633        if (desc.getType() != getDescriptor()) {
634          throw new java.lang.IllegalArgumentException(
635            "EnumValueDescriptor is not for this type.");
636        }
637        if (desc.getIndex() == -1) {
638          return UNRECOGNIZED;
639        }
640        return VALUES[desc.getIndex()];
641      }
642
643      private final int value;
644
645      private DeletePolicy(int value) {
646        this.value = value;
647      }
648
649      // @@protoc_insertion_point(enum_scope:hapi.release.Hook.DeletePolicy)
650    }
651
652    private int bitField0_;
653    public static final int NAME_FIELD_NUMBER = 1;
654    private volatile java.lang.Object name_;
655    /**
656     * <code>string name = 1;</code>
657     */
658    public java.lang.String getName() {
659      java.lang.Object ref = name_;
660      if (ref instanceof java.lang.String) {
661        return (java.lang.String) ref;
662      } else {
663        com.google.protobuf.ByteString bs = 
664            (com.google.protobuf.ByteString) ref;
665        java.lang.String s = bs.toStringUtf8();
666        name_ = s;
667        return s;
668      }
669    }
670    /**
671     * <code>string name = 1;</code>
672     */
673    public com.google.protobuf.ByteString
674        getNameBytes() {
675      java.lang.Object ref = name_;
676      if (ref instanceof java.lang.String) {
677        com.google.protobuf.ByteString b = 
678            com.google.protobuf.ByteString.copyFromUtf8(
679                (java.lang.String) ref);
680        name_ = b;
681        return b;
682      } else {
683        return (com.google.protobuf.ByteString) ref;
684      }
685    }
686
687    public static final int KIND_FIELD_NUMBER = 2;
688    private volatile java.lang.Object kind_;
689    /**
690     * <pre>
691     * Kind is the Kubernetes kind.
692     * </pre>
693     *
694     * <code>string kind = 2;</code>
695     */
696    public java.lang.String getKind() {
697      java.lang.Object ref = kind_;
698      if (ref instanceof java.lang.String) {
699        return (java.lang.String) ref;
700      } else {
701        com.google.protobuf.ByteString bs = 
702            (com.google.protobuf.ByteString) ref;
703        java.lang.String s = bs.toStringUtf8();
704        kind_ = s;
705        return s;
706      }
707    }
708    /**
709     * <pre>
710     * Kind is the Kubernetes kind.
711     * </pre>
712     *
713     * <code>string kind = 2;</code>
714     */
715    public com.google.protobuf.ByteString
716        getKindBytes() {
717      java.lang.Object ref = kind_;
718      if (ref instanceof java.lang.String) {
719        com.google.protobuf.ByteString b = 
720            com.google.protobuf.ByteString.copyFromUtf8(
721                (java.lang.String) ref);
722        kind_ = b;
723        return b;
724      } else {
725        return (com.google.protobuf.ByteString) ref;
726      }
727    }
728
729    public static final int PATH_FIELD_NUMBER = 3;
730    private volatile java.lang.Object path_;
731    /**
732     * <pre>
733     * Path is the chart-relative path to the template.
734     * </pre>
735     *
736     * <code>string path = 3;</code>
737     */
738    public java.lang.String getPath() {
739      java.lang.Object ref = path_;
740      if (ref instanceof java.lang.String) {
741        return (java.lang.String) ref;
742      } else {
743        com.google.protobuf.ByteString bs = 
744            (com.google.protobuf.ByteString) ref;
745        java.lang.String s = bs.toStringUtf8();
746        path_ = s;
747        return s;
748      }
749    }
750    /**
751     * <pre>
752     * Path is the chart-relative path to the template.
753     * </pre>
754     *
755     * <code>string path = 3;</code>
756     */
757    public com.google.protobuf.ByteString
758        getPathBytes() {
759      java.lang.Object ref = path_;
760      if (ref instanceof java.lang.String) {
761        com.google.protobuf.ByteString b = 
762            com.google.protobuf.ByteString.copyFromUtf8(
763                (java.lang.String) ref);
764        path_ = b;
765        return b;
766      } else {
767        return (com.google.protobuf.ByteString) ref;
768      }
769    }
770
771    public static final int MANIFEST_FIELD_NUMBER = 4;
772    private volatile java.lang.Object manifest_;
773    /**
774     * <pre>
775     * Manifest is the manifest contents.
776     * </pre>
777     *
778     * <code>string manifest = 4;</code>
779     */
780    public java.lang.String getManifest() {
781      java.lang.Object ref = manifest_;
782      if (ref instanceof java.lang.String) {
783        return (java.lang.String) ref;
784      } else {
785        com.google.protobuf.ByteString bs = 
786            (com.google.protobuf.ByteString) ref;
787        java.lang.String s = bs.toStringUtf8();
788        manifest_ = s;
789        return s;
790      }
791    }
792    /**
793     * <pre>
794     * Manifest is the manifest contents.
795     * </pre>
796     *
797     * <code>string manifest = 4;</code>
798     */
799    public com.google.protobuf.ByteString
800        getManifestBytes() {
801      java.lang.Object ref = manifest_;
802      if (ref instanceof java.lang.String) {
803        com.google.protobuf.ByteString b = 
804            com.google.protobuf.ByteString.copyFromUtf8(
805                (java.lang.String) ref);
806        manifest_ = b;
807        return b;
808      } else {
809        return (com.google.protobuf.ByteString) ref;
810      }
811    }
812
813    public static final int EVENTS_FIELD_NUMBER = 5;
814    private java.util.List<java.lang.Integer> events_;
815    private static final com.google.protobuf.Internal.ListAdapter.Converter<
816        java.lang.Integer, hapi.release.HookOuterClass.Hook.Event> events_converter_ =
817            new com.google.protobuf.Internal.ListAdapter.Converter<
818                java.lang.Integer, hapi.release.HookOuterClass.Hook.Event>() {
819              public hapi.release.HookOuterClass.Hook.Event convert(java.lang.Integer from) {
820                hapi.release.HookOuterClass.Hook.Event result = hapi.release.HookOuterClass.Hook.Event.valueOf(from);
821                return result == null ? hapi.release.HookOuterClass.Hook.Event.UNRECOGNIZED : result;
822              }
823            };
824    /**
825     * <pre>
826     * Events are the events that this hook fires on.
827     * </pre>
828     *
829     * <code>repeated .hapi.release.Hook.Event events = 5;</code>
830     */
831    public java.util.List<hapi.release.HookOuterClass.Hook.Event> getEventsList() {
832      return new com.google.protobuf.Internal.ListAdapter<
833          java.lang.Integer, hapi.release.HookOuterClass.Hook.Event>(events_, events_converter_);
834    }
835    /**
836     * <pre>
837     * Events are the events that this hook fires on.
838     * </pre>
839     *
840     * <code>repeated .hapi.release.Hook.Event events = 5;</code>
841     */
842    public int getEventsCount() {
843      return events_.size();
844    }
845    /**
846     * <pre>
847     * Events are the events that this hook fires on.
848     * </pre>
849     *
850     * <code>repeated .hapi.release.Hook.Event events = 5;</code>
851     */
852    public hapi.release.HookOuterClass.Hook.Event getEvents(int index) {
853      return events_converter_.convert(events_.get(index));
854    }
855    /**
856     * <pre>
857     * Events are the events that this hook fires on.
858     * </pre>
859     *
860     * <code>repeated .hapi.release.Hook.Event events = 5;</code>
861     */
862    public java.util.List<java.lang.Integer>
863    getEventsValueList() {
864      return events_;
865    }
866    /**
867     * <pre>
868     * Events are the events that this hook fires on.
869     * </pre>
870     *
871     * <code>repeated .hapi.release.Hook.Event events = 5;</code>
872     */
873    public int getEventsValue(int index) {
874      return events_.get(index);
875    }
876    private int eventsMemoizedSerializedSize;
877
878    public static final int LAST_RUN_FIELD_NUMBER = 6;
879    private com.google.protobuf.Timestamp lastRun_;
880    /**
881     * <pre>
882     * LastRun indicates the date/time this was last run.
883     * </pre>
884     *
885     * <code>.google.protobuf.Timestamp last_run = 6;</code>
886     */
887    public boolean hasLastRun() {
888      return lastRun_ != null;
889    }
890    /**
891     * <pre>
892     * LastRun indicates the date/time this was last run.
893     * </pre>
894     *
895     * <code>.google.protobuf.Timestamp last_run = 6;</code>
896     */
897    public com.google.protobuf.Timestamp getLastRun() {
898      return lastRun_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastRun_;
899    }
900    /**
901     * <pre>
902     * LastRun indicates the date/time this was last run.
903     * </pre>
904     *
905     * <code>.google.protobuf.Timestamp last_run = 6;</code>
906     */
907    public com.google.protobuf.TimestampOrBuilder getLastRunOrBuilder() {
908      return getLastRun();
909    }
910
911    public static final int WEIGHT_FIELD_NUMBER = 7;
912    private int weight_;
913    /**
914     * <pre>
915     * Weight indicates the sort order for execution among similar Hook type
916     * </pre>
917     *
918     * <code>int32 weight = 7;</code>
919     */
920    public int getWeight() {
921      return weight_;
922    }
923
924    public static final int DELETE_POLICIES_FIELD_NUMBER = 8;
925    private java.util.List<java.lang.Integer> deletePolicies_;
926    private static final com.google.protobuf.Internal.ListAdapter.Converter<
927        java.lang.Integer, hapi.release.HookOuterClass.Hook.DeletePolicy> deletePolicies_converter_ =
928            new com.google.protobuf.Internal.ListAdapter.Converter<
929                java.lang.Integer, hapi.release.HookOuterClass.Hook.DeletePolicy>() {
930              public hapi.release.HookOuterClass.Hook.DeletePolicy convert(java.lang.Integer from) {
931                hapi.release.HookOuterClass.Hook.DeletePolicy result = hapi.release.HookOuterClass.Hook.DeletePolicy.valueOf(from);
932                return result == null ? hapi.release.HookOuterClass.Hook.DeletePolicy.UNRECOGNIZED : result;
933              }
934            };
935    /**
936     * <pre>
937     * DeletePolicies are the policies that indicate when to delete the hook
938     * </pre>
939     *
940     * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
941     */
942    public java.util.List<hapi.release.HookOuterClass.Hook.DeletePolicy> getDeletePoliciesList() {
943      return new com.google.protobuf.Internal.ListAdapter<
944          java.lang.Integer, hapi.release.HookOuterClass.Hook.DeletePolicy>(deletePolicies_, deletePolicies_converter_);
945    }
946    /**
947     * <pre>
948     * DeletePolicies are the policies that indicate when to delete the hook
949     * </pre>
950     *
951     * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
952     */
953    public int getDeletePoliciesCount() {
954      return deletePolicies_.size();
955    }
956    /**
957     * <pre>
958     * DeletePolicies are the policies that indicate when to delete the hook
959     * </pre>
960     *
961     * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
962     */
963    public hapi.release.HookOuterClass.Hook.DeletePolicy getDeletePolicies(int index) {
964      return deletePolicies_converter_.convert(deletePolicies_.get(index));
965    }
966    /**
967     * <pre>
968     * DeletePolicies are the policies that indicate when to delete the hook
969     * </pre>
970     *
971     * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
972     */
973    public java.util.List<java.lang.Integer>
974    getDeletePoliciesValueList() {
975      return deletePolicies_;
976    }
977    /**
978     * <pre>
979     * DeletePolicies are the policies that indicate when to delete the hook
980     * </pre>
981     *
982     * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
983     */
984    public int getDeletePoliciesValue(int index) {
985      return deletePolicies_.get(index);
986    }
987    private int deletePoliciesMemoizedSerializedSize;
988
989    private byte memoizedIsInitialized = -1;
990    public final boolean isInitialized() {
991      byte isInitialized = memoizedIsInitialized;
992      if (isInitialized == 1) return true;
993      if (isInitialized == 0) return false;
994
995      memoizedIsInitialized = 1;
996      return true;
997    }
998
999    public void writeTo(com.google.protobuf.CodedOutputStream output)
1000                        throws java.io.IOException {
1001      getSerializedSize();
1002      if (!getNameBytes().isEmpty()) {
1003        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
1004      }
1005      if (!getKindBytes().isEmpty()) {
1006        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, kind_);
1007      }
1008      if (!getPathBytes().isEmpty()) {
1009        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, path_);
1010      }
1011      if (!getManifestBytes().isEmpty()) {
1012        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, manifest_);
1013      }
1014      if (getEventsList().size() > 0) {
1015        output.writeUInt32NoTag(42);
1016        output.writeUInt32NoTag(eventsMemoizedSerializedSize);
1017      }
1018      for (int i = 0; i < events_.size(); i++) {
1019        output.writeEnumNoTag(events_.get(i));
1020      }
1021      if (lastRun_ != null) {
1022        output.writeMessage(6, getLastRun());
1023      }
1024      if (weight_ != 0) {
1025        output.writeInt32(7, weight_);
1026      }
1027      if (getDeletePoliciesList().size() > 0) {
1028        output.writeUInt32NoTag(66);
1029        output.writeUInt32NoTag(deletePoliciesMemoizedSerializedSize);
1030      }
1031      for (int i = 0; i < deletePolicies_.size(); i++) {
1032        output.writeEnumNoTag(deletePolicies_.get(i));
1033      }
1034      unknownFields.writeTo(output);
1035    }
1036
1037    public int getSerializedSize() {
1038      int size = memoizedSize;
1039      if (size != -1) return size;
1040
1041      size = 0;
1042      if (!getNameBytes().isEmpty()) {
1043        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
1044      }
1045      if (!getKindBytes().isEmpty()) {
1046        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, kind_);
1047      }
1048      if (!getPathBytes().isEmpty()) {
1049        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, path_);
1050      }
1051      if (!getManifestBytes().isEmpty()) {
1052        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, manifest_);
1053      }
1054      {
1055        int dataSize = 0;
1056        for (int i = 0; i < events_.size(); i++) {
1057          dataSize += com.google.protobuf.CodedOutputStream
1058            .computeEnumSizeNoTag(events_.get(i));
1059        }
1060        size += dataSize;
1061        if (!getEventsList().isEmpty()) {  size += 1;
1062          size += com.google.protobuf.CodedOutputStream
1063            .computeUInt32SizeNoTag(dataSize);
1064        }eventsMemoizedSerializedSize = dataSize;
1065      }
1066      if (lastRun_ != null) {
1067        size += com.google.protobuf.CodedOutputStream
1068          .computeMessageSize(6, getLastRun());
1069      }
1070      if (weight_ != 0) {
1071        size += com.google.protobuf.CodedOutputStream
1072          .computeInt32Size(7, weight_);
1073      }
1074      {
1075        int dataSize = 0;
1076        for (int i = 0; i < deletePolicies_.size(); i++) {
1077          dataSize += com.google.protobuf.CodedOutputStream
1078            .computeEnumSizeNoTag(deletePolicies_.get(i));
1079        }
1080        size += dataSize;
1081        if (!getDeletePoliciesList().isEmpty()) {  size += 1;
1082          size += com.google.protobuf.CodedOutputStream
1083            .computeUInt32SizeNoTag(dataSize);
1084        }deletePoliciesMemoizedSerializedSize = dataSize;
1085      }
1086      size += unknownFields.getSerializedSize();
1087      memoizedSize = size;
1088      return size;
1089    }
1090
1091    @java.lang.Override
1092    public boolean equals(final java.lang.Object obj) {
1093      if (obj == this) {
1094       return true;
1095      }
1096      if (!(obj instanceof hapi.release.HookOuterClass.Hook)) {
1097        return super.equals(obj);
1098      }
1099      hapi.release.HookOuterClass.Hook other = (hapi.release.HookOuterClass.Hook) obj;
1100
1101      boolean result = true;
1102      result = result && getName()
1103          .equals(other.getName());
1104      result = result && getKind()
1105          .equals(other.getKind());
1106      result = result && getPath()
1107          .equals(other.getPath());
1108      result = result && getManifest()
1109          .equals(other.getManifest());
1110      result = result && events_.equals(other.events_);
1111      result = result && (hasLastRun() == other.hasLastRun());
1112      if (hasLastRun()) {
1113        result = result && getLastRun()
1114            .equals(other.getLastRun());
1115      }
1116      result = result && (getWeight()
1117          == other.getWeight());
1118      result = result && deletePolicies_.equals(other.deletePolicies_);
1119      result = result && unknownFields.equals(other.unknownFields);
1120      return result;
1121    }
1122
1123    @java.lang.Override
1124    public int hashCode() {
1125      if (memoizedHashCode != 0) {
1126        return memoizedHashCode;
1127      }
1128      int hash = 41;
1129      hash = (19 * hash) + getDescriptor().hashCode();
1130      hash = (37 * hash) + NAME_FIELD_NUMBER;
1131      hash = (53 * hash) + getName().hashCode();
1132      hash = (37 * hash) + KIND_FIELD_NUMBER;
1133      hash = (53 * hash) + getKind().hashCode();
1134      hash = (37 * hash) + PATH_FIELD_NUMBER;
1135      hash = (53 * hash) + getPath().hashCode();
1136      hash = (37 * hash) + MANIFEST_FIELD_NUMBER;
1137      hash = (53 * hash) + getManifest().hashCode();
1138      if (getEventsCount() > 0) {
1139        hash = (37 * hash) + EVENTS_FIELD_NUMBER;
1140        hash = (53 * hash) + events_.hashCode();
1141      }
1142      if (hasLastRun()) {
1143        hash = (37 * hash) + LAST_RUN_FIELD_NUMBER;
1144        hash = (53 * hash) + getLastRun().hashCode();
1145      }
1146      hash = (37 * hash) + WEIGHT_FIELD_NUMBER;
1147      hash = (53 * hash) + getWeight();
1148      if (getDeletePoliciesCount() > 0) {
1149        hash = (37 * hash) + DELETE_POLICIES_FIELD_NUMBER;
1150        hash = (53 * hash) + deletePolicies_.hashCode();
1151      }
1152      hash = (29 * hash) + unknownFields.hashCode();
1153      memoizedHashCode = hash;
1154      return hash;
1155    }
1156
1157    public static hapi.release.HookOuterClass.Hook parseFrom(
1158        java.nio.ByteBuffer data)
1159        throws com.google.protobuf.InvalidProtocolBufferException {
1160      return PARSER.parseFrom(data);
1161    }
1162    public static hapi.release.HookOuterClass.Hook parseFrom(
1163        java.nio.ByteBuffer data,
1164        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1165        throws com.google.protobuf.InvalidProtocolBufferException {
1166      return PARSER.parseFrom(data, extensionRegistry);
1167    }
1168    public static hapi.release.HookOuterClass.Hook parseFrom(
1169        com.google.protobuf.ByteString data)
1170        throws com.google.protobuf.InvalidProtocolBufferException {
1171      return PARSER.parseFrom(data);
1172    }
1173    public static hapi.release.HookOuterClass.Hook parseFrom(
1174        com.google.protobuf.ByteString data,
1175        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1176        throws com.google.protobuf.InvalidProtocolBufferException {
1177      return PARSER.parseFrom(data, extensionRegistry);
1178    }
1179    public static hapi.release.HookOuterClass.Hook parseFrom(byte[] data)
1180        throws com.google.protobuf.InvalidProtocolBufferException {
1181      return PARSER.parseFrom(data);
1182    }
1183    public static hapi.release.HookOuterClass.Hook parseFrom(
1184        byte[] data,
1185        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1186        throws com.google.protobuf.InvalidProtocolBufferException {
1187      return PARSER.parseFrom(data, extensionRegistry);
1188    }
1189    public static hapi.release.HookOuterClass.Hook parseFrom(java.io.InputStream input)
1190        throws java.io.IOException {
1191      return com.google.protobuf.GeneratedMessageV3
1192          .parseWithIOException(PARSER, input);
1193    }
1194    public static hapi.release.HookOuterClass.Hook parseFrom(
1195        java.io.InputStream input,
1196        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1197        throws java.io.IOException {
1198      return com.google.protobuf.GeneratedMessageV3
1199          .parseWithIOException(PARSER, input, extensionRegistry);
1200    }
1201    public static hapi.release.HookOuterClass.Hook parseDelimitedFrom(java.io.InputStream input)
1202        throws java.io.IOException {
1203      return com.google.protobuf.GeneratedMessageV3
1204          .parseDelimitedWithIOException(PARSER, input);
1205    }
1206    public static hapi.release.HookOuterClass.Hook parseDelimitedFrom(
1207        java.io.InputStream input,
1208        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1209        throws java.io.IOException {
1210      return com.google.protobuf.GeneratedMessageV3
1211          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
1212    }
1213    public static hapi.release.HookOuterClass.Hook parseFrom(
1214        com.google.protobuf.CodedInputStream input)
1215        throws java.io.IOException {
1216      return com.google.protobuf.GeneratedMessageV3
1217          .parseWithIOException(PARSER, input);
1218    }
1219    public static hapi.release.HookOuterClass.Hook parseFrom(
1220        com.google.protobuf.CodedInputStream input,
1221        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1222        throws java.io.IOException {
1223      return com.google.protobuf.GeneratedMessageV3
1224          .parseWithIOException(PARSER, input, extensionRegistry);
1225    }
1226
1227    public Builder newBuilderForType() { return newBuilder(); }
1228    public static Builder newBuilder() {
1229      return DEFAULT_INSTANCE.toBuilder();
1230    }
1231    public static Builder newBuilder(hapi.release.HookOuterClass.Hook prototype) {
1232      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
1233    }
1234    public Builder toBuilder() {
1235      return this == DEFAULT_INSTANCE
1236          ? new Builder() : new Builder().mergeFrom(this);
1237    }
1238
1239    @java.lang.Override
1240    protected Builder newBuilderForType(
1241        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
1242      Builder builder = new Builder(parent);
1243      return builder;
1244    }
1245    /**
1246     * <pre>
1247     * Hook defines a hook object.
1248     * </pre>
1249     *
1250     * Protobuf type {@code hapi.release.Hook}
1251     */
1252    public static final class Builder extends
1253        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
1254        // @@protoc_insertion_point(builder_implements:hapi.release.Hook)
1255        hapi.release.HookOuterClass.HookOrBuilder {
1256      public static final com.google.protobuf.Descriptors.Descriptor
1257          getDescriptor() {
1258        return hapi.release.HookOuterClass.internal_static_hapi_release_Hook_descriptor;
1259      }
1260
1261      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
1262          internalGetFieldAccessorTable() {
1263        return hapi.release.HookOuterClass.internal_static_hapi_release_Hook_fieldAccessorTable
1264            .ensureFieldAccessorsInitialized(
1265                hapi.release.HookOuterClass.Hook.class, hapi.release.HookOuterClass.Hook.Builder.class);
1266      }
1267
1268      // Construct using hapi.release.HookOuterClass.Hook.newBuilder()
1269      private Builder() {
1270        maybeForceBuilderInitialization();
1271      }
1272
1273      private Builder(
1274          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
1275        super(parent);
1276        maybeForceBuilderInitialization();
1277      }
1278      private void maybeForceBuilderInitialization() {
1279        if (com.google.protobuf.GeneratedMessageV3
1280                .alwaysUseFieldBuilders) {
1281        }
1282      }
1283      public Builder clear() {
1284        super.clear();
1285        name_ = "";
1286
1287        kind_ = "";
1288
1289        path_ = "";
1290
1291        manifest_ = "";
1292
1293        events_ = java.util.Collections.emptyList();
1294        bitField0_ = (bitField0_ & ~0x00000010);
1295        if (lastRunBuilder_ == null) {
1296          lastRun_ = null;
1297        } else {
1298          lastRun_ = null;
1299          lastRunBuilder_ = null;
1300        }
1301        weight_ = 0;
1302
1303        deletePolicies_ = java.util.Collections.emptyList();
1304        bitField0_ = (bitField0_ & ~0x00000080);
1305        return this;
1306      }
1307
1308      public com.google.protobuf.Descriptors.Descriptor
1309          getDescriptorForType() {
1310        return hapi.release.HookOuterClass.internal_static_hapi_release_Hook_descriptor;
1311      }
1312
1313      public hapi.release.HookOuterClass.Hook getDefaultInstanceForType() {
1314        return hapi.release.HookOuterClass.Hook.getDefaultInstance();
1315      }
1316
1317      public hapi.release.HookOuterClass.Hook build() {
1318        hapi.release.HookOuterClass.Hook result = buildPartial();
1319        if (!result.isInitialized()) {
1320          throw newUninitializedMessageException(result);
1321        }
1322        return result;
1323      }
1324
1325      public hapi.release.HookOuterClass.Hook buildPartial() {
1326        hapi.release.HookOuterClass.Hook result = new hapi.release.HookOuterClass.Hook(this);
1327        int from_bitField0_ = bitField0_;
1328        int to_bitField0_ = 0;
1329        result.name_ = name_;
1330        result.kind_ = kind_;
1331        result.path_ = path_;
1332        result.manifest_ = manifest_;
1333        if (((bitField0_ & 0x00000010) == 0x00000010)) {
1334          events_ = java.util.Collections.unmodifiableList(events_);
1335          bitField0_ = (bitField0_ & ~0x00000010);
1336        }
1337        result.events_ = events_;
1338        if (lastRunBuilder_ == null) {
1339          result.lastRun_ = lastRun_;
1340        } else {
1341          result.lastRun_ = lastRunBuilder_.build();
1342        }
1343        result.weight_ = weight_;
1344        if (((bitField0_ & 0x00000080) == 0x00000080)) {
1345          deletePolicies_ = java.util.Collections.unmodifiableList(deletePolicies_);
1346          bitField0_ = (bitField0_ & ~0x00000080);
1347        }
1348        result.deletePolicies_ = deletePolicies_;
1349        result.bitField0_ = to_bitField0_;
1350        onBuilt();
1351        return result;
1352      }
1353
1354      public Builder clone() {
1355        return (Builder) super.clone();
1356      }
1357      public Builder setField(
1358          com.google.protobuf.Descriptors.FieldDescriptor field,
1359          java.lang.Object value) {
1360        return (Builder) super.setField(field, value);
1361      }
1362      public Builder clearField(
1363          com.google.protobuf.Descriptors.FieldDescriptor field) {
1364        return (Builder) super.clearField(field);
1365      }
1366      public Builder clearOneof(
1367          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
1368        return (Builder) super.clearOneof(oneof);
1369      }
1370      public Builder setRepeatedField(
1371          com.google.protobuf.Descriptors.FieldDescriptor field,
1372          int index, java.lang.Object value) {
1373        return (Builder) super.setRepeatedField(field, index, value);
1374      }
1375      public Builder addRepeatedField(
1376          com.google.protobuf.Descriptors.FieldDescriptor field,
1377          java.lang.Object value) {
1378        return (Builder) super.addRepeatedField(field, value);
1379      }
1380      public Builder mergeFrom(com.google.protobuf.Message other) {
1381        if (other instanceof hapi.release.HookOuterClass.Hook) {
1382          return mergeFrom((hapi.release.HookOuterClass.Hook)other);
1383        } else {
1384          super.mergeFrom(other);
1385          return this;
1386        }
1387      }
1388
1389      public Builder mergeFrom(hapi.release.HookOuterClass.Hook other) {
1390        if (other == hapi.release.HookOuterClass.Hook.getDefaultInstance()) return this;
1391        if (!other.getName().isEmpty()) {
1392          name_ = other.name_;
1393          onChanged();
1394        }
1395        if (!other.getKind().isEmpty()) {
1396          kind_ = other.kind_;
1397          onChanged();
1398        }
1399        if (!other.getPath().isEmpty()) {
1400          path_ = other.path_;
1401          onChanged();
1402        }
1403        if (!other.getManifest().isEmpty()) {
1404          manifest_ = other.manifest_;
1405          onChanged();
1406        }
1407        if (!other.events_.isEmpty()) {
1408          if (events_.isEmpty()) {
1409            events_ = other.events_;
1410            bitField0_ = (bitField0_ & ~0x00000010);
1411          } else {
1412            ensureEventsIsMutable();
1413            events_.addAll(other.events_);
1414          }
1415          onChanged();
1416        }
1417        if (other.hasLastRun()) {
1418          mergeLastRun(other.getLastRun());
1419        }
1420        if (other.getWeight() != 0) {
1421          setWeight(other.getWeight());
1422        }
1423        if (!other.deletePolicies_.isEmpty()) {
1424          if (deletePolicies_.isEmpty()) {
1425            deletePolicies_ = other.deletePolicies_;
1426            bitField0_ = (bitField0_ & ~0x00000080);
1427          } else {
1428            ensureDeletePoliciesIsMutable();
1429            deletePolicies_.addAll(other.deletePolicies_);
1430          }
1431          onChanged();
1432        }
1433        this.mergeUnknownFields(other.unknownFields);
1434        onChanged();
1435        return this;
1436      }
1437
1438      public final boolean isInitialized() {
1439        return true;
1440      }
1441
1442      public Builder mergeFrom(
1443          com.google.protobuf.CodedInputStream input,
1444          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1445          throws java.io.IOException {
1446        hapi.release.HookOuterClass.Hook parsedMessage = null;
1447        try {
1448          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
1449        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1450          parsedMessage = (hapi.release.HookOuterClass.Hook) e.getUnfinishedMessage();
1451          throw e.unwrapIOException();
1452        } finally {
1453          if (parsedMessage != null) {
1454            mergeFrom(parsedMessage);
1455          }
1456        }
1457        return this;
1458      }
1459      private int bitField0_;
1460
1461      private java.lang.Object name_ = "";
1462      /**
1463       * <code>string name = 1;</code>
1464       */
1465      public java.lang.String getName() {
1466        java.lang.Object ref = name_;
1467        if (!(ref instanceof java.lang.String)) {
1468          com.google.protobuf.ByteString bs =
1469              (com.google.protobuf.ByteString) ref;
1470          java.lang.String s = bs.toStringUtf8();
1471          name_ = s;
1472          return s;
1473        } else {
1474          return (java.lang.String) ref;
1475        }
1476      }
1477      /**
1478       * <code>string name = 1;</code>
1479       */
1480      public com.google.protobuf.ByteString
1481          getNameBytes() {
1482        java.lang.Object ref = name_;
1483        if (ref instanceof String) {
1484          com.google.protobuf.ByteString b = 
1485              com.google.protobuf.ByteString.copyFromUtf8(
1486                  (java.lang.String) ref);
1487          name_ = b;
1488          return b;
1489        } else {
1490          return (com.google.protobuf.ByteString) ref;
1491        }
1492      }
1493      /**
1494       * <code>string name = 1;</code>
1495       */
1496      public Builder setName(
1497          java.lang.String value) {
1498        if (value == null) {
1499    throw new NullPointerException();
1500  }
1501  
1502        name_ = value;
1503        onChanged();
1504        return this;
1505      }
1506      /**
1507       * <code>string name = 1;</code>
1508       */
1509      public Builder clearName() {
1510        
1511        name_ = getDefaultInstance().getName();
1512        onChanged();
1513        return this;
1514      }
1515      /**
1516       * <code>string name = 1;</code>
1517       */
1518      public Builder setNameBytes(
1519          com.google.protobuf.ByteString value) {
1520        if (value == null) {
1521    throw new NullPointerException();
1522  }
1523  checkByteStringIsUtf8(value);
1524        
1525        name_ = value;
1526        onChanged();
1527        return this;
1528      }
1529
1530      private java.lang.Object kind_ = "";
1531      /**
1532       * <pre>
1533       * Kind is the Kubernetes kind.
1534       * </pre>
1535       *
1536       * <code>string kind = 2;</code>
1537       */
1538      public java.lang.String getKind() {
1539        java.lang.Object ref = kind_;
1540        if (!(ref instanceof java.lang.String)) {
1541          com.google.protobuf.ByteString bs =
1542              (com.google.protobuf.ByteString) ref;
1543          java.lang.String s = bs.toStringUtf8();
1544          kind_ = s;
1545          return s;
1546        } else {
1547          return (java.lang.String) ref;
1548        }
1549      }
1550      /**
1551       * <pre>
1552       * Kind is the Kubernetes kind.
1553       * </pre>
1554       *
1555       * <code>string kind = 2;</code>
1556       */
1557      public com.google.protobuf.ByteString
1558          getKindBytes() {
1559        java.lang.Object ref = kind_;
1560        if (ref instanceof String) {
1561          com.google.protobuf.ByteString b = 
1562              com.google.protobuf.ByteString.copyFromUtf8(
1563                  (java.lang.String) ref);
1564          kind_ = b;
1565          return b;
1566        } else {
1567          return (com.google.protobuf.ByteString) ref;
1568        }
1569      }
1570      /**
1571       * <pre>
1572       * Kind is the Kubernetes kind.
1573       * </pre>
1574       *
1575       * <code>string kind = 2;</code>
1576       */
1577      public Builder setKind(
1578          java.lang.String value) {
1579        if (value == null) {
1580    throw new NullPointerException();
1581  }
1582  
1583        kind_ = value;
1584        onChanged();
1585        return this;
1586      }
1587      /**
1588       * <pre>
1589       * Kind is the Kubernetes kind.
1590       * </pre>
1591       *
1592       * <code>string kind = 2;</code>
1593       */
1594      public Builder clearKind() {
1595        
1596        kind_ = getDefaultInstance().getKind();
1597        onChanged();
1598        return this;
1599      }
1600      /**
1601       * <pre>
1602       * Kind is the Kubernetes kind.
1603       * </pre>
1604       *
1605       * <code>string kind = 2;</code>
1606       */
1607      public Builder setKindBytes(
1608          com.google.protobuf.ByteString value) {
1609        if (value == null) {
1610    throw new NullPointerException();
1611  }
1612  checkByteStringIsUtf8(value);
1613        
1614        kind_ = value;
1615        onChanged();
1616        return this;
1617      }
1618
1619      private java.lang.Object path_ = "";
1620      /**
1621       * <pre>
1622       * Path is the chart-relative path to the template.
1623       * </pre>
1624       *
1625       * <code>string path = 3;</code>
1626       */
1627      public java.lang.String getPath() {
1628        java.lang.Object ref = path_;
1629        if (!(ref instanceof java.lang.String)) {
1630          com.google.protobuf.ByteString bs =
1631              (com.google.protobuf.ByteString) ref;
1632          java.lang.String s = bs.toStringUtf8();
1633          path_ = s;
1634          return s;
1635        } else {
1636          return (java.lang.String) ref;
1637        }
1638      }
1639      /**
1640       * <pre>
1641       * Path is the chart-relative path to the template.
1642       * </pre>
1643       *
1644       * <code>string path = 3;</code>
1645       */
1646      public com.google.protobuf.ByteString
1647          getPathBytes() {
1648        java.lang.Object ref = path_;
1649        if (ref instanceof String) {
1650          com.google.protobuf.ByteString b = 
1651              com.google.protobuf.ByteString.copyFromUtf8(
1652                  (java.lang.String) ref);
1653          path_ = b;
1654          return b;
1655        } else {
1656          return (com.google.protobuf.ByteString) ref;
1657        }
1658      }
1659      /**
1660       * <pre>
1661       * Path is the chart-relative path to the template.
1662       * </pre>
1663       *
1664       * <code>string path = 3;</code>
1665       */
1666      public Builder setPath(
1667          java.lang.String value) {
1668        if (value == null) {
1669    throw new NullPointerException();
1670  }
1671  
1672        path_ = value;
1673        onChanged();
1674        return this;
1675      }
1676      /**
1677       * <pre>
1678       * Path is the chart-relative path to the template.
1679       * </pre>
1680       *
1681       * <code>string path = 3;</code>
1682       */
1683      public Builder clearPath() {
1684        
1685        path_ = getDefaultInstance().getPath();
1686        onChanged();
1687        return this;
1688      }
1689      /**
1690       * <pre>
1691       * Path is the chart-relative path to the template.
1692       * </pre>
1693       *
1694       * <code>string path = 3;</code>
1695       */
1696      public Builder setPathBytes(
1697          com.google.protobuf.ByteString value) {
1698        if (value == null) {
1699    throw new NullPointerException();
1700  }
1701  checkByteStringIsUtf8(value);
1702        
1703        path_ = value;
1704        onChanged();
1705        return this;
1706      }
1707
1708      private java.lang.Object manifest_ = "";
1709      /**
1710       * <pre>
1711       * Manifest is the manifest contents.
1712       * </pre>
1713       *
1714       * <code>string manifest = 4;</code>
1715       */
1716      public java.lang.String getManifest() {
1717        java.lang.Object ref = manifest_;
1718        if (!(ref instanceof java.lang.String)) {
1719          com.google.protobuf.ByteString bs =
1720              (com.google.protobuf.ByteString) ref;
1721          java.lang.String s = bs.toStringUtf8();
1722          manifest_ = s;
1723          return s;
1724        } else {
1725          return (java.lang.String) ref;
1726        }
1727      }
1728      /**
1729       * <pre>
1730       * Manifest is the manifest contents.
1731       * </pre>
1732       *
1733       * <code>string manifest = 4;</code>
1734       */
1735      public com.google.protobuf.ByteString
1736          getManifestBytes() {
1737        java.lang.Object ref = manifest_;
1738        if (ref instanceof String) {
1739          com.google.protobuf.ByteString b = 
1740              com.google.protobuf.ByteString.copyFromUtf8(
1741                  (java.lang.String) ref);
1742          manifest_ = b;
1743          return b;
1744        } else {
1745          return (com.google.protobuf.ByteString) ref;
1746        }
1747      }
1748      /**
1749       * <pre>
1750       * Manifest is the manifest contents.
1751       * </pre>
1752       *
1753       * <code>string manifest = 4;</code>
1754       */
1755      public Builder setManifest(
1756          java.lang.String value) {
1757        if (value == null) {
1758    throw new NullPointerException();
1759  }
1760  
1761        manifest_ = value;
1762        onChanged();
1763        return this;
1764      }
1765      /**
1766       * <pre>
1767       * Manifest is the manifest contents.
1768       * </pre>
1769       *
1770       * <code>string manifest = 4;</code>
1771       */
1772      public Builder clearManifest() {
1773        
1774        manifest_ = getDefaultInstance().getManifest();
1775        onChanged();
1776        return this;
1777      }
1778      /**
1779       * <pre>
1780       * Manifest is the manifest contents.
1781       * </pre>
1782       *
1783       * <code>string manifest = 4;</code>
1784       */
1785      public Builder setManifestBytes(
1786          com.google.protobuf.ByteString value) {
1787        if (value == null) {
1788    throw new NullPointerException();
1789  }
1790  checkByteStringIsUtf8(value);
1791        
1792        manifest_ = value;
1793        onChanged();
1794        return this;
1795      }
1796
1797      private java.util.List<java.lang.Integer> events_ =
1798        java.util.Collections.emptyList();
1799      private void ensureEventsIsMutable() {
1800        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
1801          events_ = new java.util.ArrayList<java.lang.Integer>(events_);
1802          bitField0_ |= 0x00000010;
1803        }
1804      }
1805      /**
1806       * <pre>
1807       * Events are the events that this hook fires on.
1808       * </pre>
1809       *
1810       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1811       */
1812      public java.util.List<hapi.release.HookOuterClass.Hook.Event> getEventsList() {
1813        return new com.google.protobuf.Internal.ListAdapter<
1814            java.lang.Integer, hapi.release.HookOuterClass.Hook.Event>(events_, events_converter_);
1815      }
1816      /**
1817       * <pre>
1818       * Events are the events that this hook fires on.
1819       * </pre>
1820       *
1821       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1822       */
1823      public int getEventsCount() {
1824        return events_.size();
1825      }
1826      /**
1827       * <pre>
1828       * Events are the events that this hook fires on.
1829       * </pre>
1830       *
1831       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1832       */
1833      public hapi.release.HookOuterClass.Hook.Event getEvents(int index) {
1834        return events_converter_.convert(events_.get(index));
1835      }
1836      /**
1837       * <pre>
1838       * Events are the events that this hook fires on.
1839       * </pre>
1840       *
1841       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1842       */
1843      public Builder setEvents(
1844          int index, hapi.release.HookOuterClass.Hook.Event value) {
1845        if (value == null) {
1846          throw new NullPointerException();
1847        }
1848        ensureEventsIsMutable();
1849        events_.set(index, value.getNumber());
1850        onChanged();
1851        return this;
1852      }
1853      /**
1854       * <pre>
1855       * Events are the events that this hook fires on.
1856       * </pre>
1857       *
1858       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1859       */
1860      public Builder addEvents(hapi.release.HookOuterClass.Hook.Event value) {
1861        if (value == null) {
1862          throw new NullPointerException();
1863        }
1864        ensureEventsIsMutable();
1865        events_.add(value.getNumber());
1866        onChanged();
1867        return this;
1868      }
1869      /**
1870       * <pre>
1871       * Events are the events that this hook fires on.
1872       * </pre>
1873       *
1874       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1875       */
1876      public Builder addAllEvents(
1877          java.lang.Iterable<? extends hapi.release.HookOuterClass.Hook.Event> values) {
1878        ensureEventsIsMutable();
1879        for (hapi.release.HookOuterClass.Hook.Event value : values) {
1880          events_.add(value.getNumber());
1881        }
1882        onChanged();
1883        return this;
1884      }
1885      /**
1886       * <pre>
1887       * Events are the events that this hook fires on.
1888       * </pre>
1889       *
1890       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1891       */
1892      public Builder clearEvents() {
1893        events_ = java.util.Collections.emptyList();
1894        bitField0_ = (bitField0_ & ~0x00000010);
1895        onChanged();
1896        return this;
1897      }
1898      /**
1899       * <pre>
1900       * Events are the events that this hook fires on.
1901       * </pre>
1902       *
1903       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1904       */
1905      public java.util.List<java.lang.Integer>
1906      getEventsValueList() {
1907        return java.util.Collections.unmodifiableList(events_);
1908      }
1909      /**
1910       * <pre>
1911       * Events are the events that this hook fires on.
1912       * </pre>
1913       *
1914       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1915       */
1916      public int getEventsValue(int index) {
1917        return events_.get(index);
1918      }
1919      /**
1920       * <pre>
1921       * Events are the events that this hook fires on.
1922       * </pre>
1923       *
1924       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1925       */
1926      public Builder setEventsValue(
1927          int index, int value) {
1928        ensureEventsIsMutable();
1929        events_.set(index, value);
1930        onChanged();
1931        return this;
1932      }
1933      /**
1934       * <pre>
1935       * Events are the events that this hook fires on.
1936       * </pre>
1937       *
1938       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1939       */
1940      public Builder addEventsValue(int value) {
1941        ensureEventsIsMutable();
1942        events_.add(value);
1943        onChanged();
1944        return this;
1945      }
1946      /**
1947       * <pre>
1948       * Events are the events that this hook fires on.
1949       * </pre>
1950       *
1951       * <code>repeated .hapi.release.Hook.Event events = 5;</code>
1952       */
1953      public Builder addAllEventsValue(
1954          java.lang.Iterable<java.lang.Integer> values) {
1955        ensureEventsIsMutable();
1956        for (int value : values) {
1957          events_.add(value);
1958        }
1959        onChanged();
1960        return this;
1961      }
1962
1963      private com.google.protobuf.Timestamp lastRun_ = null;
1964      private com.google.protobuf.SingleFieldBuilderV3<
1965          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> lastRunBuilder_;
1966      /**
1967       * <pre>
1968       * LastRun indicates the date/time this was last run.
1969       * </pre>
1970       *
1971       * <code>.google.protobuf.Timestamp last_run = 6;</code>
1972       */
1973      public boolean hasLastRun() {
1974        return lastRunBuilder_ != null || lastRun_ != null;
1975      }
1976      /**
1977       * <pre>
1978       * LastRun indicates the date/time this was last run.
1979       * </pre>
1980       *
1981       * <code>.google.protobuf.Timestamp last_run = 6;</code>
1982       */
1983      public com.google.protobuf.Timestamp getLastRun() {
1984        if (lastRunBuilder_ == null) {
1985          return lastRun_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastRun_;
1986        } else {
1987          return lastRunBuilder_.getMessage();
1988        }
1989      }
1990      /**
1991       * <pre>
1992       * LastRun indicates the date/time this was last run.
1993       * </pre>
1994       *
1995       * <code>.google.protobuf.Timestamp last_run = 6;</code>
1996       */
1997      public Builder setLastRun(com.google.protobuf.Timestamp value) {
1998        if (lastRunBuilder_ == null) {
1999          if (value == null) {
2000            throw new NullPointerException();
2001          }
2002          lastRun_ = value;
2003          onChanged();
2004        } else {
2005          lastRunBuilder_.setMessage(value);
2006        }
2007
2008        return this;
2009      }
2010      /**
2011       * <pre>
2012       * LastRun indicates the date/time this was last run.
2013       * </pre>
2014       *
2015       * <code>.google.protobuf.Timestamp last_run = 6;</code>
2016       */
2017      public Builder setLastRun(
2018          com.google.protobuf.Timestamp.Builder builderForValue) {
2019        if (lastRunBuilder_ == null) {
2020          lastRun_ = builderForValue.build();
2021          onChanged();
2022        } else {
2023          lastRunBuilder_.setMessage(builderForValue.build());
2024        }
2025
2026        return this;
2027      }
2028      /**
2029       * <pre>
2030       * LastRun indicates the date/time this was last run.
2031       * </pre>
2032       *
2033       * <code>.google.protobuf.Timestamp last_run = 6;</code>
2034       */
2035      public Builder mergeLastRun(com.google.protobuf.Timestamp value) {
2036        if (lastRunBuilder_ == null) {
2037          if (lastRun_ != null) {
2038            lastRun_ =
2039              com.google.protobuf.Timestamp.newBuilder(lastRun_).mergeFrom(value).buildPartial();
2040          } else {
2041            lastRun_ = value;
2042          }
2043          onChanged();
2044        } else {
2045          lastRunBuilder_.mergeFrom(value);
2046        }
2047
2048        return this;
2049      }
2050      /**
2051       * <pre>
2052       * LastRun indicates the date/time this was last run.
2053       * </pre>
2054       *
2055       * <code>.google.protobuf.Timestamp last_run = 6;</code>
2056       */
2057      public Builder clearLastRun() {
2058        if (lastRunBuilder_ == null) {
2059          lastRun_ = null;
2060          onChanged();
2061        } else {
2062          lastRun_ = null;
2063          lastRunBuilder_ = null;
2064        }
2065
2066        return this;
2067      }
2068      /**
2069       * <pre>
2070       * LastRun indicates the date/time this was last run.
2071       * </pre>
2072       *
2073       * <code>.google.protobuf.Timestamp last_run = 6;</code>
2074       */
2075      public com.google.protobuf.Timestamp.Builder getLastRunBuilder() {
2076        
2077        onChanged();
2078        return getLastRunFieldBuilder().getBuilder();
2079      }
2080      /**
2081       * <pre>
2082       * LastRun indicates the date/time this was last run.
2083       * </pre>
2084       *
2085       * <code>.google.protobuf.Timestamp last_run = 6;</code>
2086       */
2087      public com.google.protobuf.TimestampOrBuilder getLastRunOrBuilder() {
2088        if (lastRunBuilder_ != null) {
2089          return lastRunBuilder_.getMessageOrBuilder();
2090        } else {
2091          return lastRun_ == null ?
2092              com.google.protobuf.Timestamp.getDefaultInstance() : lastRun_;
2093        }
2094      }
2095      /**
2096       * <pre>
2097       * LastRun indicates the date/time this was last run.
2098       * </pre>
2099       *
2100       * <code>.google.protobuf.Timestamp last_run = 6;</code>
2101       */
2102      private com.google.protobuf.SingleFieldBuilderV3<
2103          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
2104          getLastRunFieldBuilder() {
2105        if (lastRunBuilder_ == null) {
2106          lastRunBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
2107              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
2108                  getLastRun(),
2109                  getParentForChildren(),
2110                  isClean());
2111          lastRun_ = null;
2112        }
2113        return lastRunBuilder_;
2114      }
2115
2116      private int weight_ ;
2117      /**
2118       * <pre>
2119       * Weight indicates the sort order for execution among similar Hook type
2120       * </pre>
2121       *
2122       * <code>int32 weight = 7;</code>
2123       */
2124      public int getWeight() {
2125        return weight_;
2126      }
2127      /**
2128       * <pre>
2129       * Weight indicates the sort order for execution among similar Hook type
2130       * </pre>
2131       *
2132       * <code>int32 weight = 7;</code>
2133       */
2134      public Builder setWeight(int value) {
2135        
2136        weight_ = value;
2137        onChanged();
2138        return this;
2139      }
2140      /**
2141       * <pre>
2142       * Weight indicates the sort order for execution among similar Hook type
2143       * </pre>
2144       *
2145       * <code>int32 weight = 7;</code>
2146       */
2147      public Builder clearWeight() {
2148        
2149        weight_ = 0;
2150        onChanged();
2151        return this;
2152      }
2153
2154      private java.util.List<java.lang.Integer> deletePolicies_ =
2155        java.util.Collections.emptyList();
2156      private void ensureDeletePoliciesIsMutable() {
2157        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
2158          deletePolicies_ = new java.util.ArrayList<java.lang.Integer>(deletePolicies_);
2159          bitField0_ |= 0x00000080;
2160        }
2161      }
2162      /**
2163       * <pre>
2164       * DeletePolicies are the policies that indicate when to delete the hook
2165       * </pre>
2166       *
2167       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2168       */
2169      public java.util.List<hapi.release.HookOuterClass.Hook.DeletePolicy> getDeletePoliciesList() {
2170        return new com.google.protobuf.Internal.ListAdapter<
2171            java.lang.Integer, hapi.release.HookOuterClass.Hook.DeletePolicy>(deletePolicies_, deletePolicies_converter_);
2172      }
2173      /**
2174       * <pre>
2175       * DeletePolicies are the policies that indicate when to delete the hook
2176       * </pre>
2177       *
2178       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2179       */
2180      public int getDeletePoliciesCount() {
2181        return deletePolicies_.size();
2182      }
2183      /**
2184       * <pre>
2185       * DeletePolicies are the policies that indicate when to delete the hook
2186       * </pre>
2187       *
2188       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2189       */
2190      public hapi.release.HookOuterClass.Hook.DeletePolicy getDeletePolicies(int index) {
2191        return deletePolicies_converter_.convert(deletePolicies_.get(index));
2192      }
2193      /**
2194       * <pre>
2195       * DeletePolicies are the policies that indicate when to delete the hook
2196       * </pre>
2197       *
2198       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2199       */
2200      public Builder setDeletePolicies(
2201          int index, hapi.release.HookOuterClass.Hook.DeletePolicy value) {
2202        if (value == null) {
2203          throw new NullPointerException();
2204        }
2205        ensureDeletePoliciesIsMutable();
2206        deletePolicies_.set(index, value.getNumber());
2207        onChanged();
2208        return this;
2209      }
2210      /**
2211       * <pre>
2212       * DeletePolicies are the policies that indicate when to delete the hook
2213       * </pre>
2214       *
2215       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2216       */
2217      public Builder addDeletePolicies(hapi.release.HookOuterClass.Hook.DeletePolicy value) {
2218        if (value == null) {
2219          throw new NullPointerException();
2220        }
2221        ensureDeletePoliciesIsMutable();
2222        deletePolicies_.add(value.getNumber());
2223        onChanged();
2224        return this;
2225      }
2226      /**
2227       * <pre>
2228       * DeletePolicies are the policies that indicate when to delete the hook
2229       * </pre>
2230       *
2231       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2232       */
2233      public Builder addAllDeletePolicies(
2234          java.lang.Iterable<? extends hapi.release.HookOuterClass.Hook.DeletePolicy> values) {
2235        ensureDeletePoliciesIsMutable();
2236        for (hapi.release.HookOuterClass.Hook.DeletePolicy value : values) {
2237          deletePolicies_.add(value.getNumber());
2238        }
2239        onChanged();
2240        return this;
2241      }
2242      /**
2243       * <pre>
2244       * DeletePolicies are the policies that indicate when to delete the hook
2245       * </pre>
2246       *
2247       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2248       */
2249      public Builder clearDeletePolicies() {
2250        deletePolicies_ = java.util.Collections.emptyList();
2251        bitField0_ = (bitField0_ & ~0x00000080);
2252        onChanged();
2253        return this;
2254      }
2255      /**
2256       * <pre>
2257       * DeletePolicies are the policies that indicate when to delete the hook
2258       * </pre>
2259       *
2260       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2261       */
2262      public java.util.List<java.lang.Integer>
2263      getDeletePoliciesValueList() {
2264        return java.util.Collections.unmodifiableList(deletePolicies_);
2265      }
2266      /**
2267       * <pre>
2268       * DeletePolicies are the policies that indicate when to delete the hook
2269       * </pre>
2270       *
2271       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2272       */
2273      public int getDeletePoliciesValue(int index) {
2274        return deletePolicies_.get(index);
2275      }
2276      /**
2277       * <pre>
2278       * DeletePolicies are the policies that indicate when to delete the hook
2279       * </pre>
2280       *
2281       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2282       */
2283      public Builder setDeletePoliciesValue(
2284          int index, int value) {
2285        ensureDeletePoliciesIsMutable();
2286        deletePolicies_.set(index, value);
2287        onChanged();
2288        return this;
2289      }
2290      /**
2291       * <pre>
2292       * DeletePolicies are the policies that indicate when to delete the hook
2293       * </pre>
2294       *
2295       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2296       */
2297      public Builder addDeletePoliciesValue(int value) {
2298        ensureDeletePoliciesIsMutable();
2299        deletePolicies_.add(value);
2300        onChanged();
2301        return this;
2302      }
2303      /**
2304       * <pre>
2305       * DeletePolicies are the policies that indicate when to delete the hook
2306       * </pre>
2307       *
2308       * <code>repeated .hapi.release.Hook.DeletePolicy delete_policies = 8;</code>
2309       */
2310      public Builder addAllDeletePoliciesValue(
2311          java.lang.Iterable<java.lang.Integer> values) {
2312        ensureDeletePoliciesIsMutable();
2313        for (int value : values) {
2314          deletePolicies_.add(value);
2315        }
2316        onChanged();
2317        return this;
2318      }
2319      public final Builder setUnknownFields(
2320          final com.google.protobuf.UnknownFieldSet unknownFields) {
2321        return super.setUnknownFieldsProto3(unknownFields);
2322      }
2323
2324      public final Builder mergeUnknownFields(
2325          final com.google.protobuf.UnknownFieldSet unknownFields) {
2326        return super.mergeUnknownFields(unknownFields);
2327      }
2328
2329
2330      // @@protoc_insertion_point(builder_scope:hapi.release.Hook)
2331    }
2332
2333    // @@protoc_insertion_point(class_scope:hapi.release.Hook)
2334    private static final hapi.release.HookOuterClass.Hook DEFAULT_INSTANCE;
2335    static {
2336      DEFAULT_INSTANCE = new hapi.release.HookOuterClass.Hook();
2337    }
2338
2339    public static hapi.release.HookOuterClass.Hook getDefaultInstance() {
2340      return DEFAULT_INSTANCE;
2341    }
2342
2343    private static final com.google.protobuf.Parser<Hook>
2344        PARSER = new com.google.protobuf.AbstractParser<Hook>() {
2345      public Hook parsePartialFrom(
2346          com.google.protobuf.CodedInputStream input,
2347          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2348          throws com.google.protobuf.InvalidProtocolBufferException {
2349          return new Hook(input, extensionRegistry);
2350      }
2351    };
2352
2353    public static com.google.protobuf.Parser<Hook> parser() {
2354      return PARSER;
2355    }
2356
2357    @java.lang.Override
2358    public com.google.protobuf.Parser<Hook> getParserForType() {
2359      return PARSER;
2360    }
2361
2362    public hapi.release.HookOuterClass.Hook getDefaultInstanceForType() {
2363      return DEFAULT_INSTANCE;
2364    }
2365
2366  }
2367
2368  private static final com.google.protobuf.Descriptors.Descriptor
2369    internal_static_hapi_release_Hook_descriptor;
2370  private static final 
2371    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
2372      internal_static_hapi_release_Hook_fieldAccessorTable;
2373
2374  public static com.google.protobuf.Descriptors.FileDescriptor
2375      getDescriptor() {
2376    return descriptor;
2377  }
2378  private static  com.google.protobuf.Descriptors.FileDescriptor
2379      descriptor;
2380  static {
2381    java.lang.String[] descriptorData = {
2382      "\n\027hapi/release/hook.proto\022\014hapi.release\032" +
2383      "\037google/protobuf/timestamp.proto\"\346\003\n\004Hoo" +
2384      "k\022\014\n\004name\030\001 \001(\t\022\014\n\004kind\030\002 \001(\t\022\014\n\004path\030\003 " +
2385      "\001(\t\022\020\n\010manifest\030\004 \001(\t\022(\n\006events\030\005 \003(\0162\030." +
2386      "hapi.release.Hook.Event\022,\n\010last_run\030\006 \001(" +
2387      "\0132\032.google.protobuf.Timestamp\022\016\n\006weight\030" +
2388      "\007 \001(\005\0228\n\017delete_policies\030\010 \003(\0162\037.hapi.re" +
2389      "lease.Hook.DeletePolicy\"\324\001\n\005Event\022\013\n\007UNK" +
2390      "NOWN\020\000\022\017\n\013PRE_INSTALL\020\001\022\020\n\014POST_INSTALL\020" +
2391      "\002\022\016\n\nPRE_DELETE\020\003\022\017\n\013POST_DELETE\020\004\022\017\n\013PR",
2392      "E_UPGRADE\020\005\022\020\n\014POST_UPGRADE\020\006\022\020\n\014PRE_ROL" +
2393      "LBACK\020\007\022\021\n\rPOST_ROLLBACK\020\010\022\030\n\024RELEASE_TE" +
2394      "ST_SUCCESS\020\t\022\030\n\024RELEASE_TEST_FAILURE\020\n\")" +
2395      "\n\014DeletePolicy\022\r\n\tSUCCEEDED\020\000\022\n\n\006FAILED\020" +
2396      "\001B\tZ\007releaseb\006proto3"
2397    };
2398    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
2399        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
2400          public com.google.protobuf.ExtensionRegistry assignDescriptors(
2401              com.google.protobuf.Descriptors.FileDescriptor root) {
2402            descriptor = root;
2403            return null;
2404          }
2405        };
2406    com.google.protobuf.Descriptors.FileDescriptor
2407      .internalBuildGeneratedFileFrom(descriptorData,
2408        new com.google.protobuf.Descriptors.FileDescriptor[] {
2409          com.google.protobuf.TimestampProto.getDescriptor(),
2410        }, assigner);
2411    internal_static_hapi_release_Hook_descriptor =
2412      getDescriptor().getMessageTypes().get(0);
2413    internal_static_hapi_release_Hook_fieldAccessorTable = new
2414      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
2415        internal_static_hapi_release_Hook_descriptor,
2416        new java.lang.String[] { "Name", "Kind", "Path", "Manifest", "Events", "LastRun", "Weight", "DeletePolicies", });
2417    com.google.protobuf.TimestampProto.getDescriptor();
2418  }
2419
2420  // @@protoc_insertion_point(outer_class_scope)
2421}