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