001// Generated by the protocol buffer compiler.  DO NOT EDIT!
002// source: hapi/chart/metadata.proto
003
004package hapi.chart;
005
006public final class MetadataOuterClass {
007  private MetadataOuterClass() {}
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 MaintainerOrBuilder extends
018      // @@protoc_insertion_point(interface_extends:hapi.chart.Maintainer)
019      com.google.protobuf.MessageOrBuilder {
020
021    /**
022     * <pre>
023     * Name is a user name or organization name
024     * </pre>
025     *
026     * <code>string name = 1;</code>
027     */
028    java.lang.String getName();
029    /**
030     * <pre>
031     * Name is a user name or organization name
032     * </pre>
033     *
034     * <code>string name = 1;</code>
035     */
036    com.google.protobuf.ByteString
037        getNameBytes();
038
039    /**
040     * <pre>
041     * Email is an optional email address to contact the named maintainer
042     * </pre>
043     *
044     * <code>string email = 2;</code>
045     */
046    java.lang.String getEmail();
047    /**
048     * <pre>
049     * Email is an optional email address to contact the named maintainer
050     * </pre>
051     *
052     * <code>string email = 2;</code>
053     */
054    com.google.protobuf.ByteString
055        getEmailBytes();
056
057    /**
058     * <pre>
059     * Url is an optional URL to an address for the named maintainer
060     * </pre>
061     *
062     * <code>string url = 3;</code>
063     */
064    java.lang.String getUrl();
065    /**
066     * <pre>
067     * Url is an optional URL to an address for the named maintainer
068     * </pre>
069     *
070     * <code>string url = 3;</code>
071     */
072    com.google.protobuf.ByteString
073        getUrlBytes();
074  }
075  /**
076   * <pre>
077   * Maintainer describes a Chart maintainer.
078   * </pre>
079   *
080   * Protobuf type {@code hapi.chart.Maintainer}
081   */
082  public  static final class Maintainer extends
083      com.google.protobuf.GeneratedMessageV3 implements
084      // @@protoc_insertion_point(message_implements:hapi.chart.Maintainer)
085      MaintainerOrBuilder {
086  private static final long serialVersionUID = 0L;
087    // Use Maintainer.newBuilder() to construct.
088    private Maintainer(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
089      super(builder);
090    }
091    private Maintainer() {
092      name_ = "";
093      email_ = "";
094      url_ = "";
095    }
096
097    @java.lang.Override
098    public final com.google.protobuf.UnknownFieldSet
099    getUnknownFields() {
100      return this.unknownFields;
101    }
102    private Maintainer(
103        com.google.protobuf.CodedInputStream input,
104        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
105        throws com.google.protobuf.InvalidProtocolBufferException {
106      this();
107      if (extensionRegistry == null) {
108        throw new java.lang.NullPointerException();
109      }
110      int mutable_bitField0_ = 0;
111      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
112          com.google.protobuf.UnknownFieldSet.newBuilder();
113      try {
114        boolean done = false;
115        while (!done) {
116          int tag = input.readTag();
117          switch (tag) {
118            case 0:
119              done = true;
120              break;
121            default: {
122              if (!parseUnknownFieldProto3(
123                  input, unknownFields, extensionRegistry, tag)) {
124                done = true;
125              }
126              break;
127            }
128            case 10: {
129              java.lang.String s = input.readStringRequireUtf8();
130
131              name_ = s;
132              break;
133            }
134            case 18: {
135              java.lang.String s = input.readStringRequireUtf8();
136
137              email_ = s;
138              break;
139            }
140            case 26: {
141              java.lang.String s = input.readStringRequireUtf8();
142
143              url_ = s;
144              break;
145            }
146          }
147        }
148      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
149        throw e.setUnfinishedMessage(this);
150      } catch (java.io.IOException e) {
151        throw new com.google.protobuf.InvalidProtocolBufferException(
152            e).setUnfinishedMessage(this);
153      } finally {
154        this.unknownFields = unknownFields.build();
155        makeExtensionsImmutable();
156      }
157    }
158    public static final com.google.protobuf.Descriptors.Descriptor
159        getDescriptor() {
160      return hapi.chart.MetadataOuterClass.internal_static_hapi_chart_Maintainer_descriptor;
161    }
162
163    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
164        internalGetFieldAccessorTable() {
165      return hapi.chart.MetadataOuterClass.internal_static_hapi_chart_Maintainer_fieldAccessorTable
166          .ensureFieldAccessorsInitialized(
167              hapi.chart.MetadataOuterClass.Maintainer.class, hapi.chart.MetadataOuterClass.Maintainer.Builder.class);
168    }
169
170    public static final int NAME_FIELD_NUMBER = 1;
171    private volatile java.lang.Object name_;
172    /**
173     * <pre>
174     * Name is a user name or organization name
175     * </pre>
176     *
177     * <code>string name = 1;</code>
178     */
179    public java.lang.String getName() {
180      java.lang.Object ref = name_;
181      if (ref instanceof java.lang.String) {
182        return (java.lang.String) ref;
183      } else {
184        com.google.protobuf.ByteString bs = 
185            (com.google.protobuf.ByteString) ref;
186        java.lang.String s = bs.toStringUtf8();
187        name_ = s;
188        return s;
189      }
190    }
191    /**
192     * <pre>
193     * Name is a user name or organization name
194     * </pre>
195     *
196     * <code>string name = 1;</code>
197     */
198    public com.google.protobuf.ByteString
199        getNameBytes() {
200      java.lang.Object ref = name_;
201      if (ref instanceof java.lang.String) {
202        com.google.protobuf.ByteString b = 
203            com.google.protobuf.ByteString.copyFromUtf8(
204                (java.lang.String) ref);
205        name_ = b;
206        return b;
207      } else {
208        return (com.google.protobuf.ByteString) ref;
209      }
210    }
211
212    public static final int EMAIL_FIELD_NUMBER = 2;
213    private volatile java.lang.Object email_;
214    /**
215     * <pre>
216     * Email is an optional email address to contact the named maintainer
217     * </pre>
218     *
219     * <code>string email = 2;</code>
220     */
221    public java.lang.String getEmail() {
222      java.lang.Object ref = email_;
223      if (ref instanceof java.lang.String) {
224        return (java.lang.String) ref;
225      } else {
226        com.google.protobuf.ByteString bs = 
227            (com.google.protobuf.ByteString) ref;
228        java.lang.String s = bs.toStringUtf8();
229        email_ = s;
230        return s;
231      }
232    }
233    /**
234     * <pre>
235     * Email is an optional email address to contact the named maintainer
236     * </pre>
237     *
238     * <code>string email = 2;</code>
239     */
240    public com.google.protobuf.ByteString
241        getEmailBytes() {
242      java.lang.Object ref = email_;
243      if (ref instanceof java.lang.String) {
244        com.google.protobuf.ByteString b = 
245            com.google.protobuf.ByteString.copyFromUtf8(
246                (java.lang.String) ref);
247        email_ = b;
248        return b;
249      } else {
250        return (com.google.protobuf.ByteString) ref;
251      }
252    }
253
254    public static final int URL_FIELD_NUMBER = 3;
255    private volatile java.lang.Object url_;
256    /**
257     * <pre>
258     * Url is an optional URL to an address for the named maintainer
259     * </pre>
260     *
261     * <code>string url = 3;</code>
262     */
263    public java.lang.String getUrl() {
264      java.lang.Object ref = url_;
265      if (ref instanceof java.lang.String) {
266        return (java.lang.String) ref;
267      } else {
268        com.google.protobuf.ByteString bs = 
269            (com.google.protobuf.ByteString) ref;
270        java.lang.String s = bs.toStringUtf8();
271        url_ = s;
272        return s;
273      }
274    }
275    /**
276     * <pre>
277     * Url is an optional URL to an address for the named maintainer
278     * </pre>
279     *
280     * <code>string url = 3;</code>
281     */
282    public com.google.protobuf.ByteString
283        getUrlBytes() {
284      java.lang.Object ref = url_;
285      if (ref instanceof java.lang.String) {
286        com.google.protobuf.ByteString b = 
287            com.google.protobuf.ByteString.copyFromUtf8(
288                (java.lang.String) ref);
289        url_ = b;
290        return b;
291      } else {
292        return (com.google.protobuf.ByteString) ref;
293      }
294    }
295
296    private byte memoizedIsInitialized = -1;
297    public final boolean isInitialized() {
298      byte isInitialized = memoizedIsInitialized;
299      if (isInitialized == 1) return true;
300      if (isInitialized == 0) return false;
301
302      memoizedIsInitialized = 1;
303      return true;
304    }
305
306    public void writeTo(com.google.protobuf.CodedOutputStream output)
307                        throws java.io.IOException {
308      if (!getNameBytes().isEmpty()) {
309        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
310      }
311      if (!getEmailBytes().isEmpty()) {
312        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, email_);
313      }
314      if (!getUrlBytes().isEmpty()) {
315        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, url_);
316      }
317      unknownFields.writeTo(output);
318    }
319
320    public int getSerializedSize() {
321      int size = memoizedSize;
322      if (size != -1) return size;
323
324      size = 0;
325      if (!getNameBytes().isEmpty()) {
326        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
327      }
328      if (!getEmailBytes().isEmpty()) {
329        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, email_);
330      }
331      if (!getUrlBytes().isEmpty()) {
332        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, url_);
333      }
334      size += unknownFields.getSerializedSize();
335      memoizedSize = size;
336      return size;
337    }
338
339    @java.lang.Override
340    public boolean equals(final java.lang.Object obj) {
341      if (obj == this) {
342       return true;
343      }
344      if (!(obj instanceof hapi.chart.MetadataOuterClass.Maintainer)) {
345        return super.equals(obj);
346      }
347      hapi.chart.MetadataOuterClass.Maintainer other = (hapi.chart.MetadataOuterClass.Maintainer) obj;
348
349      boolean result = true;
350      result = result && getName()
351          .equals(other.getName());
352      result = result && getEmail()
353          .equals(other.getEmail());
354      result = result && getUrl()
355          .equals(other.getUrl());
356      result = result && unknownFields.equals(other.unknownFields);
357      return result;
358    }
359
360    @java.lang.Override
361    public int hashCode() {
362      if (memoizedHashCode != 0) {
363        return memoizedHashCode;
364      }
365      int hash = 41;
366      hash = (19 * hash) + getDescriptor().hashCode();
367      hash = (37 * hash) + NAME_FIELD_NUMBER;
368      hash = (53 * hash) + getName().hashCode();
369      hash = (37 * hash) + EMAIL_FIELD_NUMBER;
370      hash = (53 * hash) + getEmail().hashCode();
371      hash = (37 * hash) + URL_FIELD_NUMBER;
372      hash = (53 * hash) + getUrl().hashCode();
373      hash = (29 * hash) + unknownFields.hashCode();
374      memoizedHashCode = hash;
375      return hash;
376    }
377
378    public static hapi.chart.MetadataOuterClass.Maintainer parseFrom(
379        java.nio.ByteBuffer data)
380        throws com.google.protobuf.InvalidProtocolBufferException {
381      return PARSER.parseFrom(data);
382    }
383    public static hapi.chart.MetadataOuterClass.Maintainer parseFrom(
384        java.nio.ByteBuffer data,
385        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
386        throws com.google.protobuf.InvalidProtocolBufferException {
387      return PARSER.parseFrom(data, extensionRegistry);
388    }
389    public static hapi.chart.MetadataOuterClass.Maintainer parseFrom(
390        com.google.protobuf.ByteString data)
391        throws com.google.protobuf.InvalidProtocolBufferException {
392      return PARSER.parseFrom(data);
393    }
394    public static hapi.chart.MetadataOuterClass.Maintainer parseFrom(
395        com.google.protobuf.ByteString data,
396        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
397        throws com.google.protobuf.InvalidProtocolBufferException {
398      return PARSER.parseFrom(data, extensionRegistry);
399    }
400    public static hapi.chart.MetadataOuterClass.Maintainer parseFrom(byte[] data)
401        throws com.google.protobuf.InvalidProtocolBufferException {
402      return PARSER.parseFrom(data);
403    }
404    public static hapi.chart.MetadataOuterClass.Maintainer parseFrom(
405        byte[] data,
406        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
407        throws com.google.protobuf.InvalidProtocolBufferException {
408      return PARSER.parseFrom(data, extensionRegistry);
409    }
410    public static hapi.chart.MetadataOuterClass.Maintainer parseFrom(java.io.InputStream input)
411        throws java.io.IOException {
412      return com.google.protobuf.GeneratedMessageV3
413          .parseWithIOException(PARSER, input);
414    }
415    public static hapi.chart.MetadataOuterClass.Maintainer parseFrom(
416        java.io.InputStream input,
417        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
418        throws java.io.IOException {
419      return com.google.protobuf.GeneratedMessageV3
420          .parseWithIOException(PARSER, input, extensionRegistry);
421    }
422    public static hapi.chart.MetadataOuterClass.Maintainer parseDelimitedFrom(java.io.InputStream input)
423        throws java.io.IOException {
424      return com.google.protobuf.GeneratedMessageV3
425          .parseDelimitedWithIOException(PARSER, input);
426    }
427    public static hapi.chart.MetadataOuterClass.Maintainer parseDelimitedFrom(
428        java.io.InputStream input,
429        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
430        throws java.io.IOException {
431      return com.google.protobuf.GeneratedMessageV3
432          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
433    }
434    public static hapi.chart.MetadataOuterClass.Maintainer parseFrom(
435        com.google.protobuf.CodedInputStream input)
436        throws java.io.IOException {
437      return com.google.protobuf.GeneratedMessageV3
438          .parseWithIOException(PARSER, input);
439    }
440    public static hapi.chart.MetadataOuterClass.Maintainer parseFrom(
441        com.google.protobuf.CodedInputStream input,
442        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
443        throws java.io.IOException {
444      return com.google.protobuf.GeneratedMessageV3
445          .parseWithIOException(PARSER, input, extensionRegistry);
446    }
447
448    public Builder newBuilderForType() { return newBuilder(); }
449    public static Builder newBuilder() {
450      return DEFAULT_INSTANCE.toBuilder();
451    }
452    public static Builder newBuilder(hapi.chart.MetadataOuterClass.Maintainer prototype) {
453      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
454    }
455    public Builder toBuilder() {
456      return this == DEFAULT_INSTANCE
457          ? new Builder() : new Builder().mergeFrom(this);
458    }
459
460    @java.lang.Override
461    protected Builder newBuilderForType(
462        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
463      Builder builder = new Builder(parent);
464      return builder;
465    }
466    /**
467     * <pre>
468     * Maintainer describes a Chart maintainer.
469     * </pre>
470     *
471     * Protobuf type {@code hapi.chart.Maintainer}
472     */
473    public static final class Builder extends
474        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
475        // @@protoc_insertion_point(builder_implements:hapi.chart.Maintainer)
476        hapi.chart.MetadataOuterClass.MaintainerOrBuilder {
477      public static final com.google.protobuf.Descriptors.Descriptor
478          getDescriptor() {
479        return hapi.chart.MetadataOuterClass.internal_static_hapi_chart_Maintainer_descriptor;
480      }
481
482      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
483          internalGetFieldAccessorTable() {
484        return hapi.chart.MetadataOuterClass.internal_static_hapi_chart_Maintainer_fieldAccessorTable
485            .ensureFieldAccessorsInitialized(
486                hapi.chart.MetadataOuterClass.Maintainer.class, hapi.chart.MetadataOuterClass.Maintainer.Builder.class);
487      }
488
489      // Construct using hapi.chart.MetadataOuterClass.Maintainer.newBuilder()
490      private Builder() {
491        maybeForceBuilderInitialization();
492      }
493
494      private Builder(
495          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
496        super(parent);
497        maybeForceBuilderInitialization();
498      }
499      private void maybeForceBuilderInitialization() {
500        if (com.google.protobuf.GeneratedMessageV3
501                .alwaysUseFieldBuilders) {
502        }
503      }
504      public Builder clear() {
505        super.clear();
506        name_ = "";
507
508        email_ = "";
509
510        url_ = "";
511
512        return this;
513      }
514
515      public com.google.protobuf.Descriptors.Descriptor
516          getDescriptorForType() {
517        return hapi.chart.MetadataOuterClass.internal_static_hapi_chart_Maintainer_descriptor;
518      }
519
520      public hapi.chart.MetadataOuterClass.Maintainer getDefaultInstanceForType() {
521        return hapi.chart.MetadataOuterClass.Maintainer.getDefaultInstance();
522      }
523
524      public hapi.chart.MetadataOuterClass.Maintainer build() {
525        hapi.chart.MetadataOuterClass.Maintainer result = buildPartial();
526        if (!result.isInitialized()) {
527          throw newUninitializedMessageException(result);
528        }
529        return result;
530      }
531
532      public hapi.chart.MetadataOuterClass.Maintainer buildPartial() {
533        hapi.chart.MetadataOuterClass.Maintainer result = new hapi.chart.MetadataOuterClass.Maintainer(this);
534        result.name_ = name_;
535        result.email_ = email_;
536        result.url_ = url_;
537        onBuilt();
538        return result;
539      }
540
541      public Builder clone() {
542        return (Builder) super.clone();
543      }
544      public Builder setField(
545          com.google.protobuf.Descriptors.FieldDescriptor field,
546          java.lang.Object value) {
547        return (Builder) super.setField(field, value);
548      }
549      public Builder clearField(
550          com.google.protobuf.Descriptors.FieldDescriptor field) {
551        return (Builder) super.clearField(field);
552      }
553      public Builder clearOneof(
554          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
555        return (Builder) super.clearOneof(oneof);
556      }
557      public Builder setRepeatedField(
558          com.google.protobuf.Descriptors.FieldDescriptor field,
559          int index, java.lang.Object value) {
560        return (Builder) super.setRepeatedField(field, index, value);
561      }
562      public Builder addRepeatedField(
563          com.google.protobuf.Descriptors.FieldDescriptor field,
564          java.lang.Object value) {
565        return (Builder) super.addRepeatedField(field, value);
566      }
567      public Builder mergeFrom(com.google.protobuf.Message other) {
568        if (other instanceof hapi.chart.MetadataOuterClass.Maintainer) {
569          return mergeFrom((hapi.chart.MetadataOuterClass.Maintainer)other);
570        } else {
571          super.mergeFrom(other);
572          return this;
573        }
574      }
575
576      public Builder mergeFrom(hapi.chart.MetadataOuterClass.Maintainer other) {
577        if (other == hapi.chart.MetadataOuterClass.Maintainer.getDefaultInstance()) return this;
578        if (!other.getName().isEmpty()) {
579          name_ = other.name_;
580          onChanged();
581        }
582        if (!other.getEmail().isEmpty()) {
583          email_ = other.email_;
584          onChanged();
585        }
586        if (!other.getUrl().isEmpty()) {
587          url_ = other.url_;
588          onChanged();
589        }
590        this.mergeUnknownFields(other.unknownFields);
591        onChanged();
592        return this;
593      }
594
595      public final boolean isInitialized() {
596        return true;
597      }
598
599      public Builder mergeFrom(
600          com.google.protobuf.CodedInputStream input,
601          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
602          throws java.io.IOException {
603        hapi.chart.MetadataOuterClass.Maintainer parsedMessage = null;
604        try {
605          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
606        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
607          parsedMessage = (hapi.chart.MetadataOuterClass.Maintainer) e.getUnfinishedMessage();
608          throw e.unwrapIOException();
609        } finally {
610          if (parsedMessage != null) {
611            mergeFrom(parsedMessage);
612          }
613        }
614        return this;
615      }
616
617      private java.lang.Object name_ = "";
618      /**
619       * <pre>
620       * Name is a user name or organization name
621       * </pre>
622       *
623       * <code>string name = 1;</code>
624       */
625      public java.lang.String getName() {
626        java.lang.Object ref = name_;
627        if (!(ref instanceof java.lang.String)) {
628          com.google.protobuf.ByteString bs =
629              (com.google.protobuf.ByteString) ref;
630          java.lang.String s = bs.toStringUtf8();
631          name_ = s;
632          return s;
633        } else {
634          return (java.lang.String) ref;
635        }
636      }
637      /**
638       * <pre>
639       * Name is a user name or organization name
640       * </pre>
641       *
642       * <code>string name = 1;</code>
643       */
644      public com.google.protobuf.ByteString
645          getNameBytes() {
646        java.lang.Object ref = name_;
647        if (ref instanceof String) {
648          com.google.protobuf.ByteString b = 
649              com.google.protobuf.ByteString.copyFromUtf8(
650                  (java.lang.String) ref);
651          name_ = b;
652          return b;
653        } else {
654          return (com.google.protobuf.ByteString) ref;
655        }
656      }
657      /**
658       * <pre>
659       * Name is a user name or organization name
660       * </pre>
661       *
662       * <code>string name = 1;</code>
663       */
664      public Builder setName(
665          java.lang.String value) {
666        if (value == null) {
667    throw new NullPointerException();
668  }
669  
670        name_ = value;
671        onChanged();
672        return this;
673      }
674      /**
675       * <pre>
676       * Name is a user name or organization name
677       * </pre>
678       *
679       * <code>string name = 1;</code>
680       */
681      public Builder clearName() {
682        
683        name_ = getDefaultInstance().getName();
684        onChanged();
685        return this;
686      }
687      /**
688       * <pre>
689       * Name is a user name or organization name
690       * </pre>
691       *
692       * <code>string name = 1;</code>
693       */
694      public Builder setNameBytes(
695          com.google.protobuf.ByteString value) {
696        if (value == null) {
697    throw new NullPointerException();
698  }
699  checkByteStringIsUtf8(value);
700        
701        name_ = value;
702        onChanged();
703        return this;
704      }
705
706      private java.lang.Object email_ = "";
707      /**
708       * <pre>
709       * Email is an optional email address to contact the named maintainer
710       * </pre>
711       *
712       * <code>string email = 2;</code>
713       */
714      public java.lang.String getEmail() {
715        java.lang.Object ref = email_;
716        if (!(ref instanceof java.lang.String)) {
717          com.google.protobuf.ByteString bs =
718              (com.google.protobuf.ByteString) ref;
719          java.lang.String s = bs.toStringUtf8();
720          email_ = s;
721          return s;
722        } else {
723          return (java.lang.String) ref;
724        }
725      }
726      /**
727       * <pre>
728       * Email is an optional email address to contact the named maintainer
729       * </pre>
730       *
731       * <code>string email = 2;</code>
732       */
733      public com.google.protobuf.ByteString
734          getEmailBytes() {
735        java.lang.Object ref = email_;
736        if (ref instanceof String) {
737          com.google.protobuf.ByteString b = 
738              com.google.protobuf.ByteString.copyFromUtf8(
739                  (java.lang.String) ref);
740          email_ = b;
741          return b;
742        } else {
743          return (com.google.protobuf.ByteString) ref;
744        }
745      }
746      /**
747       * <pre>
748       * Email is an optional email address to contact the named maintainer
749       * </pre>
750       *
751       * <code>string email = 2;</code>
752       */
753      public Builder setEmail(
754          java.lang.String value) {
755        if (value == null) {
756    throw new NullPointerException();
757  }
758  
759        email_ = value;
760        onChanged();
761        return this;
762      }
763      /**
764       * <pre>
765       * Email is an optional email address to contact the named maintainer
766       * </pre>
767       *
768       * <code>string email = 2;</code>
769       */
770      public Builder clearEmail() {
771        
772        email_ = getDefaultInstance().getEmail();
773        onChanged();
774        return this;
775      }
776      /**
777       * <pre>
778       * Email is an optional email address to contact the named maintainer
779       * </pre>
780       *
781       * <code>string email = 2;</code>
782       */
783      public Builder setEmailBytes(
784          com.google.protobuf.ByteString value) {
785        if (value == null) {
786    throw new NullPointerException();
787  }
788  checkByteStringIsUtf8(value);
789        
790        email_ = value;
791        onChanged();
792        return this;
793      }
794
795      private java.lang.Object url_ = "";
796      /**
797       * <pre>
798       * Url is an optional URL to an address for the named maintainer
799       * </pre>
800       *
801       * <code>string url = 3;</code>
802       */
803      public java.lang.String getUrl() {
804        java.lang.Object ref = url_;
805        if (!(ref instanceof java.lang.String)) {
806          com.google.protobuf.ByteString bs =
807              (com.google.protobuf.ByteString) ref;
808          java.lang.String s = bs.toStringUtf8();
809          url_ = s;
810          return s;
811        } else {
812          return (java.lang.String) ref;
813        }
814      }
815      /**
816       * <pre>
817       * Url is an optional URL to an address for the named maintainer
818       * </pre>
819       *
820       * <code>string url = 3;</code>
821       */
822      public com.google.protobuf.ByteString
823          getUrlBytes() {
824        java.lang.Object ref = url_;
825        if (ref instanceof String) {
826          com.google.protobuf.ByteString b = 
827              com.google.protobuf.ByteString.copyFromUtf8(
828                  (java.lang.String) ref);
829          url_ = b;
830          return b;
831        } else {
832          return (com.google.protobuf.ByteString) ref;
833        }
834      }
835      /**
836       * <pre>
837       * Url is an optional URL to an address for the named maintainer
838       * </pre>
839       *
840       * <code>string url = 3;</code>
841       */
842      public Builder setUrl(
843          java.lang.String value) {
844        if (value == null) {
845    throw new NullPointerException();
846  }
847  
848        url_ = value;
849        onChanged();
850        return this;
851      }
852      /**
853       * <pre>
854       * Url is an optional URL to an address for the named maintainer
855       * </pre>
856       *
857       * <code>string url = 3;</code>
858       */
859      public Builder clearUrl() {
860        
861        url_ = getDefaultInstance().getUrl();
862        onChanged();
863        return this;
864      }
865      /**
866       * <pre>
867       * Url is an optional URL to an address for the named maintainer
868       * </pre>
869       *
870       * <code>string url = 3;</code>
871       */
872      public Builder setUrlBytes(
873          com.google.protobuf.ByteString value) {
874        if (value == null) {
875    throw new NullPointerException();
876  }
877  checkByteStringIsUtf8(value);
878        
879        url_ = value;
880        onChanged();
881        return this;
882      }
883      public final Builder setUnknownFields(
884          final com.google.protobuf.UnknownFieldSet unknownFields) {
885        return super.setUnknownFieldsProto3(unknownFields);
886      }
887
888      public final Builder mergeUnknownFields(
889          final com.google.protobuf.UnknownFieldSet unknownFields) {
890        return super.mergeUnknownFields(unknownFields);
891      }
892
893
894      // @@protoc_insertion_point(builder_scope:hapi.chart.Maintainer)
895    }
896
897    // @@protoc_insertion_point(class_scope:hapi.chart.Maintainer)
898    private static final hapi.chart.MetadataOuterClass.Maintainer DEFAULT_INSTANCE;
899    static {
900      DEFAULT_INSTANCE = new hapi.chart.MetadataOuterClass.Maintainer();
901    }
902
903    public static hapi.chart.MetadataOuterClass.Maintainer getDefaultInstance() {
904      return DEFAULT_INSTANCE;
905    }
906
907    private static final com.google.protobuf.Parser<Maintainer>
908        PARSER = new com.google.protobuf.AbstractParser<Maintainer>() {
909      public Maintainer parsePartialFrom(
910          com.google.protobuf.CodedInputStream input,
911          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
912          throws com.google.protobuf.InvalidProtocolBufferException {
913        return new Maintainer(input, extensionRegistry);
914      }
915    };
916
917    public static com.google.protobuf.Parser<Maintainer> parser() {
918      return PARSER;
919    }
920
921    @java.lang.Override
922    public com.google.protobuf.Parser<Maintainer> getParserForType() {
923      return PARSER;
924    }
925
926    public hapi.chart.MetadataOuterClass.Maintainer getDefaultInstanceForType() {
927      return DEFAULT_INSTANCE;
928    }
929
930  }
931
932  public interface MetadataOrBuilder extends
933      // @@protoc_insertion_point(interface_extends:hapi.chart.Metadata)
934      com.google.protobuf.MessageOrBuilder {
935
936    /**
937     * <pre>
938     * The name of the chart
939     * </pre>
940     *
941     * <code>string name = 1;</code>
942     */
943    java.lang.String getName();
944    /**
945     * <pre>
946     * The name of the chart
947     * </pre>
948     *
949     * <code>string name = 1;</code>
950     */
951    com.google.protobuf.ByteString
952        getNameBytes();
953
954    /**
955     * <pre>
956     * The URL to a relevant project page, git repo, or contact person
957     * </pre>
958     *
959     * <code>string home = 2;</code>
960     */
961    java.lang.String getHome();
962    /**
963     * <pre>
964     * The URL to a relevant project page, git repo, or contact person
965     * </pre>
966     *
967     * <code>string home = 2;</code>
968     */
969    com.google.protobuf.ByteString
970        getHomeBytes();
971
972    /**
973     * <pre>
974     * Source is the URL to the source code of this chart
975     * </pre>
976     *
977     * <code>repeated string sources = 3;</code>
978     */
979    java.util.List<java.lang.String>
980        getSourcesList();
981    /**
982     * <pre>
983     * Source is the URL to the source code of this chart
984     * </pre>
985     *
986     * <code>repeated string sources = 3;</code>
987     */
988    int getSourcesCount();
989    /**
990     * <pre>
991     * Source is the URL to the source code of this chart
992     * </pre>
993     *
994     * <code>repeated string sources = 3;</code>
995     */
996    java.lang.String getSources(int index);
997    /**
998     * <pre>
999     * Source is the URL to the source code of this chart
1000     * </pre>
1001     *
1002     * <code>repeated string sources = 3;</code>
1003     */
1004    com.google.protobuf.ByteString
1005        getSourcesBytes(int index);
1006
1007    /**
1008     * <pre>
1009     * A SemVer 2 conformant version string of the chart
1010     * </pre>
1011     *
1012     * <code>string version = 4;</code>
1013     */
1014    java.lang.String getVersion();
1015    /**
1016     * <pre>
1017     * A SemVer 2 conformant version string of the chart
1018     * </pre>
1019     *
1020     * <code>string version = 4;</code>
1021     */
1022    com.google.protobuf.ByteString
1023        getVersionBytes();
1024
1025    /**
1026     * <pre>
1027     * A one-sentence description of the chart
1028     * </pre>
1029     *
1030     * <code>string description = 5;</code>
1031     */
1032    java.lang.String getDescription();
1033    /**
1034     * <pre>
1035     * A one-sentence description of the chart
1036     * </pre>
1037     *
1038     * <code>string description = 5;</code>
1039     */
1040    com.google.protobuf.ByteString
1041        getDescriptionBytes();
1042
1043    /**
1044     * <pre>
1045     * A list of string keywords
1046     * </pre>
1047     *
1048     * <code>repeated string keywords = 6;</code>
1049     */
1050    java.util.List<java.lang.String>
1051        getKeywordsList();
1052    /**
1053     * <pre>
1054     * A list of string keywords
1055     * </pre>
1056     *
1057     * <code>repeated string keywords = 6;</code>
1058     */
1059    int getKeywordsCount();
1060    /**
1061     * <pre>
1062     * A list of string keywords
1063     * </pre>
1064     *
1065     * <code>repeated string keywords = 6;</code>
1066     */
1067    java.lang.String getKeywords(int index);
1068    /**
1069     * <pre>
1070     * A list of string keywords
1071     * </pre>
1072     *
1073     * <code>repeated string keywords = 6;</code>
1074     */
1075    com.google.protobuf.ByteString
1076        getKeywordsBytes(int index);
1077
1078    /**
1079     * <pre>
1080     * A list of name and URL/email address combinations for the maintainer(s)
1081     * </pre>
1082     *
1083     * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
1084     */
1085    java.util.List<hapi.chart.MetadataOuterClass.Maintainer> 
1086        getMaintainersList();
1087    /**
1088     * <pre>
1089     * A list of name and URL/email address combinations for the maintainer(s)
1090     * </pre>
1091     *
1092     * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
1093     */
1094    hapi.chart.MetadataOuterClass.Maintainer getMaintainers(int index);
1095    /**
1096     * <pre>
1097     * A list of name and URL/email address combinations for the maintainer(s)
1098     * </pre>
1099     *
1100     * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
1101     */
1102    int getMaintainersCount();
1103    /**
1104     * <pre>
1105     * A list of name and URL/email address combinations for the maintainer(s)
1106     * </pre>
1107     *
1108     * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
1109     */
1110    java.util.List<? extends hapi.chart.MetadataOuterClass.MaintainerOrBuilder> 
1111        getMaintainersOrBuilderList();
1112    /**
1113     * <pre>
1114     * A list of name and URL/email address combinations for the maintainer(s)
1115     * </pre>
1116     *
1117     * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
1118     */
1119    hapi.chart.MetadataOuterClass.MaintainerOrBuilder getMaintainersOrBuilder(
1120        int index);
1121
1122    /**
1123     * <pre>
1124     * The name of the template engine to use. Defaults to 'gotpl'.
1125     * </pre>
1126     *
1127     * <code>string engine = 8;</code>
1128     */
1129    java.lang.String getEngine();
1130    /**
1131     * <pre>
1132     * The name of the template engine to use. Defaults to 'gotpl'.
1133     * </pre>
1134     *
1135     * <code>string engine = 8;</code>
1136     */
1137    com.google.protobuf.ByteString
1138        getEngineBytes();
1139
1140    /**
1141     * <pre>
1142     * The URL to an icon file.
1143     * </pre>
1144     *
1145     * <code>string icon = 9;</code>
1146     */
1147    java.lang.String getIcon();
1148    /**
1149     * <pre>
1150     * The URL to an icon file.
1151     * </pre>
1152     *
1153     * <code>string icon = 9;</code>
1154     */
1155    com.google.protobuf.ByteString
1156        getIconBytes();
1157
1158    /**
1159     * <pre>
1160     * The API Version of this chart.
1161     * </pre>
1162     *
1163     * <code>string apiVersion = 10;</code>
1164     */
1165    java.lang.String getApiVersion();
1166    /**
1167     * <pre>
1168     * The API Version of this chart.
1169     * </pre>
1170     *
1171     * <code>string apiVersion = 10;</code>
1172     */
1173    com.google.protobuf.ByteString
1174        getApiVersionBytes();
1175
1176    /**
1177     * <pre>
1178     * The condition to check to enable chart
1179     * </pre>
1180     *
1181     * <code>string condition = 11;</code>
1182     */
1183    java.lang.String getCondition();
1184    /**
1185     * <pre>
1186     * The condition to check to enable chart
1187     * </pre>
1188     *
1189     * <code>string condition = 11;</code>
1190     */
1191    com.google.protobuf.ByteString
1192        getConditionBytes();
1193
1194    /**
1195     * <pre>
1196     * The tags to check to enable chart
1197     * </pre>
1198     *
1199     * <code>string tags = 12;</code>
1200     */
1201    java.lang.String getTags();
1202    /**
1203     * <pre>
1204     * The tags to check to enable chart
1205     * </pre>
1206     *
1207     * <code>string tags = 12;</code>
1208     */
1209    com.google.protobuf.ByteString
1210        getTagsBytes();
1211
1212    /**
1213     * <pre>
1214     * The version of the application enclosed inside of this chart.
1215     * </pre>
1216     *
1217     * <code>string appVersion = 13;</code>
1218     */
1219    java.lang.String getAppVersion();
1220    /**
1221     * <pre>
1222     * The version of the application enclosed inside of this chart.
1223     * </pre>
1224     *
1225     * <code>string appVersion = 13;</code>
1226     */
1227    com.google.protobuf.ByteString
1228        getAppVersionBytes();
1229
1230    /**
1231     * <pre>
1232     * Whether or not this chart is deprecated
1233     * </pre>
1234     *
1235     * <code>bool deprecated = 14;</code>
1236     */
1237    boolean getDeprecated();
1238
1239    /**
1240     * <pre>
1241     * TillerVersion is a SemVer constraints on what version of Tiller is required.
1242     * See SemVer ranges here: https://github.com/Masterminds/semver#basic-comparisons
1243     * </pre>
1244     *
1245     * <code>string tillerVersion = 15;</code>
1246     */
1247    java.lang.String getTillerVersion();
1248    /**
1249     * <pre>
1250     * TillerVersion is a SemVer constraints on what version of Tiller is required.
1251     * See SemVer ranges here: https://github.com/Masterminds/semver#basic-comparisons
1252     * </pre>
1253     *
1254     * <code>string tillerVersion = 15;</code>
1255     */
1256    com.google.protobuf.ByteString
1257        getTillerVersionBytes();
1258
1259    /**
1260     * <pre>
1261     * Annotations are additional mappings uninterpreted by Tiller,
1262     * made available for inspection by other applications.
1263     * </pre>
1264     *
1265     * <code>map&lt;string, string&gt; annotations = 16;</code>
1266     */
1267    int getAnnotationsCount();
1268    /**
1269     * <pre>
1270     * Annotations are additional mappings uninterpreted by Tiller,
1271     * made available for inspection by other applications.
1272     * </pre>
1273     *
1274     * <code>map&lt;string, string&gt; annotations = 16;</code>
1275     */
1276    boolean containsAnnotations(
1277        java.lang.String key);
1278    /**
1279     * Use {@link #getAnnotationsMap()} instead.
1280     */
1281    @java.lang.Deprecated
1282    java.util.Map<java.lang.String, java.lang.String>
1283    getAnnotations();
1284    /**
1285     * <pre>
1286     * Annotations are additional mappings uninterpreted by Tiller,
1287     * made available for inspection by other applications.
1288     * </pre>
1289     *
1290     * <code>map&lt;string, string&gt; annotations = 16;</code>
1291     */
1292    java.util.Map<java.lang.String, java.lang.String>
1293    getAnnotationsMap();
1294    /**
1295     * <pre>
1296     * Annotations are additional mappings uninterpreted by Tiller,
1297     * made available for inspection by other applications.
1298     * </pre>
1299     *
1300     * <code>map&lt;string, string&gt; annotations = 16;</code>
1301     */
1302
1303    java.lang.String getAnnotationsOrDefault(
1304        java.lang.String key,
1305        java.lang.String defaultValue);
1306    /**
1307     * <pre>
1308     * Annotations are additional mappings uninterpreted by Tiller,
1309     * made available for inspection by other applications.
1310     * </pre>
1311     *
1312     * <code>map&lt;string, string&gt; annotations = 16;</code>
1313     */
1314
1315    java.lang.String getAnnotationsOrThrow(
1316        java.lang.String key);
1317
1318    /**
1319     * <pre>
1320     * KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
1321     * </pre>
1322     *
1323     * <code>string kubeVersion = 17;</code>
1324     */
1325    java.lang.String getKubeVersion();
1326    /**
1327     * <pre>
1328     * KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
1329     * </pre>
1330     *
1331     * <code>string kubeVersion = 17;</code>
1332     */
1333    com.google.protobuf.ByteString
1334        getKubeVersionBytes();
1335  }
1336  /**
1337   * <pre>
1338   *  Metadata for a Chart file. This models the structure of a Chart.yaml file.
1339   *  Spec: https://k8s.io/helm/blob/master/docs/design/chart_format.md#the-chart-file
1340   * </pre>
1341   *
1342   * Protobuf type {@code hapi.chart.Metadata}
1343   */
1344  public  static final class Metadata extends
1345      com.google.protobuf.GeneratedMessageV3 implements
1346      // @@protoc_insertion_point(message_implements:hapi.chart.Metadata)
1347      MetadataOrBuilder {
1348  private static final long serialVersionUID = 0L;
1349    // Use Metadata.newBuilder() to construct.
1350    private Metadata(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
1351      super(builder);
1352    }
1353    private Metadata() {
1354      name_ = "";
1355      home_ = "";
1356      sources_ = com.google.protobuf.LazyStringArrayList.EMPTY;
1357      version_ = "";
1358      description_ = "";
1359      keywords_ = com.google.protobuf.LazyStringArrayList.EMPTY;
1360      maintainers_ = java.util.Collections.emptyList();
1361      engine_ = "";
1362      icon_ = "";
1363      apiVersion_ = "";
1364      condition_ = "";
1365      tags_ = "";
1366      appVersion_ = "";
1367      deprecated_ = false;
1368      tillerVersion_ = "";
1369      kubeVersion_ = "";
1370    }
1371
1372    @java.lang.Override
1373    public final com.google.protobuf.UnknownFieldSet
1374    getUnknownFields() {
1375      return this.unknownFields;
1376    }
1377    private Metadata(
1378        com.google.protobuf.CodedInputStream input,
1379        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1380        throws com.google.protobuf.InvalidProtocolBufferException {
1381      this();
1382      if (extensionRegistry == null) {
1383        throw new java.lang.NullPointerException();
1384      }
1385      int mutable_bitField0_ = 0;
1386      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
1387          com.google.protobuf.UnknownFieldSet.newBuilder();
1388      try {
1389        boolean done = false;
1390        while (!done) {
1391          int tag = input.readTag();
1392          switch (tag) {
1393            case 0:
1394              done = true;
1395              break;
1396            default: {
1397              if (!parseUnknownFieldProto3(
1398                  input, unknownFields, extensionRegistry, tag)) {
1399                done = true;
1400              }
1401              break;
1402            }
1403            case 10: {
1404              java.lang.String s = input.readStringRequireUtf8();
1405
1406              name_ = s;
1407              break;
1408            }
1409            case 18: {
1410              java.lang.String s = input.readStringRequireUtf8();
1411
1412              home_ = s;
1413              break;
1414            }
1415            case 26: {
1416              java.lang.String s = input.readStringRequireUtf8();
1417              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
1418                sources_ = new com.google.protobuf.LazyStringArrayList();
1419                mutable_bitField0_ |= 0x00000004;
1420              }
1421              sources_.add(s);
1422              break;
1423            }
1424            case 34: {
1425              java.lang.String s = input.readStringRequireUtf8();
1426
1427              version_ = s;
1428              break;
1429            }
1430            case 42: {
1431              java.lang.String s = input.readStringRequireUtf8();
1432
1433              description_ = s;
1434              break;
1435            }
1436            case 50: {
1437              java.lang.String s = input.readStringRequireUtf8();
1438              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
1439                keywords_ = new com.google.protobuf.LazyStringArrayList();
1440                mutable_bitField0_ |= 0x00000020;
1441              }
1442              keywords_.add(s);
1443              break;
1444            }
1445            case 58: {
1446              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
1447                maintainers_ = new java.util.ArrayList<hapi.chart.MetadataOuterClass.Maintainer>();
1448                mutable_bitField0_ |= 0x00000040;
1449              }
1450              maintainers_.add(
1451                  input.readMessage(hapi.chart.MetadataOuterClass.Maintainer.parser(), extensionRegistry));
1452              break;
1453            }
1454            case 66: {
1455              java.lang.String s = input.readStringRequireUtf8();
1456
1457              engine_ = s;
1458              break;
1459            }
1460            case 74: {
1461              java.lang.String s = input.readStringRequireUtf8();
1462
1463              icon_ = s;
1464              break;
1465            }
1466            case 82: {
1467              java.lang.String s = input.readStringRequireUtf8();
1468
1469              apiVersion_ = s;
1470              break;
1471            }
1472            case 90: {
1473              java.lang.String s = input.readStringRequireUtf8();
1474
1475              condition_ = s;
1476              break;
1477            }
1478            case 98: {
1479              java.lang.String s = input.readStringRequireUtf8();
1480
1481              tags_ = s;
1482              break;
1483            }
1484            case 106: {
1485              java.lang.String s = input.readStringRequireUtf8();
1486
1487              appVersion_ = s;
1488              break;
1489            }
1490            case 112: {
1491
1492              deprecated_ = input.readBool();
1493              break;
1494            }
1495            case 122: {
1496              java.lang.String s = input.readStringRequireUtf8();
1497
1498              tillerVersion_ = s;
1499              break;
1500            }
1501            case 130: {
1502              if (!((mutable_bitField0_ & 0x00008000) == 0x00008000)) {
1503                annotations_ = com.google.protobuf.MapField.newMapField(
1504                    AnnotationsDefaultEntryHolder.defaultEntry);
1505                mutable_bitField0_ |= 0x00008000;
1506              }
1507              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
1508              annotations__ = input.readMessage(
1509                  AnnotationsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
1510              annotations_.getMutableMap().put(
1511                  annotations__.getKey(), annotations__.getValue());
1512              break;
1513            }
1514            case 138: {
1515              java.lang.String s = input.readStringRequireUtf8();
1516
1517              kubeVersion_ = s;
1518              break;
1519            }
1520          }
1521        }
1522      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1523        throw e.setUnfinishedMessage(this);
1524      } catch (java.io.IOException e) {
1525        throw new com.google.protobuf.InvalidProtocolBufferException(
1526            e).setUnfinishedMessage(this);
1527      } finally {
1528        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
1529          sources_ = sources_.getUnmodifiableView();
1530        }
1531        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
1532          keywords_ = keywords_.getUnmodifiableView();
1533        }
1534        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
1535          maintainers_ = java.util.Collections.unmodifiableList(maintainers_);
1536        }
1537        this.unknownFields = unknownFields.build();
1538        makeExtensionsImmutable();
1539      }
1540    }
1541    public static final com.google.protobuf.Descriptors.Descriptor
1542        getDescriptor() {
1543      return hapi.chart.MetadataOuterClass.internal_static_hapi_chart_Metadata_descriptor;
1544    }
1545
1546    @SuppressWarnings({"rawtypes"})
1547    protected com.google.protobuf.MapField internalGetMapField(
1548        int number) {
1549      switch (number) {
1550        case 16:
1551          return internalGetAnnotations();
1552        default:
1553          throw new RuntimeException(
1554              "Invalid map field number: " + number);
1555      }
1556    }
1557    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
1558        internalGetFieldAccessorTable() {
1559      return hapi.chart.MetadataOuterClass.internal_static_hapi_chart_Metadata_fieldAccessorTable
1560          .ensureFieldAccessorsInitialized(
1561              hapi.chart.MetadataOuterClass.Metadata.class, hapi.chart.MetadataOuterClass.Metadata.Builder.class);
1562    }
1563
1564    /**
1565     * Protobuf enum {@code hapi.chart.Metadata.Engine}
1566     */
1567    public enum Engine
1568        implements com.google.protobuf.ProtocolMessageEnum {
1569      /**
1570       * <code>UNKNOWN = 0;</code>
1571       */
1572      UNKNOWN(0),
1573      /**
1574       * <code>GOTPL = 1;</code>
1575       */
1576      GOTPL(1),
1577      UNRECOGNIZED(-1),
1578      ;
1579
1580      /**
1581       * <code>UNKNOWN = 0;</code>
1582       */
1583      public static final int UNKNOWN_VALUE = 0;
1584      /**
1585       * <code>GOTPL = 1;</code>
1586       */
1587      public static final int GOTPL_VALUE = 1;
1588
1589
1590      public final int getNumber() {
1591        if (this == UNRECOGNIZED) {
1592          throw new java.lang.IllegalArgumentException(
1593              "Can't get the number of an unknown enum value.");
1594        }
1595        return value;
1596      }
1597
1598      /**
1599       * @deprecated Use {@link #forNumber(int)} instead.
1600       */
1601      @java.lang.Deprecated
1602      public static Engine valueOf(int value) {
1603        return forNumber(value);
1604      }
1605
1606      public static Engine forNumber(int value) {
1607        switch (value) {
1608          case 0: return UNKNOWN;
1609          case 1: return GOTPL;
1610          default: return null;
1611        }
1612      }
1613
1614      public static com.google.protobuf.Internal.EnumLiteMap<Engine>
1615          internalGetValueMap() {
1616        return internalValueMap;
1617      }
1618      private static final com.google.protobuf.Internal.EnumLiteMap<
1619          Engine> internalValueMap =
1620            new com.google.protobuf.Internal.EnumLiteMap<Engine>() {
1621              public Engine findValueByNumber(int number) {
1622                return Engine.forNumber(number);
1623              }
1624            };
1625
1626      public final com.google.protobuf.Descriptors.EnumValueDescriptor
1627          getValueDescriptor() {
1628        return getDescriptor().getValues().get(ordinal());
1629      }
1630      public final com.google.protobuf.Descriptors.EnumDescriptor
1631          getDescriptorForType() {
1632        return getDescriptor();
1633      }
1634      public static final com.google.protobuf.Descriptors.EnumDescriptor
1635          getDescriptor() {
1636        return hapi.chart.MetadataOuterClass.Metadata.getDescriptor().getEnumTypes().get(0);
1637      }
1638
1639      private static final Engine[] VALUES = values();
1640
1641      public static Engine valueOf(
1642          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1643        if (desc.getType() != getDescriptor()) {
1644          throw new java.lang.IllegalArgumentException(
1645            "EnumValueDescriptor is not for this type.");
1646        }
1647        if (desc.getIndex() == -1) {
1648          return UNRECOGNIZED;
1649        }
1650        return VALUES[desc.getIndex()];
1651      }
1652
1653      private final int value;
1654
1655      private Engine(int value) {
1656        this.value = value;
1657      }
1658
1659      // @@protoc_insertion_point(enum_scope:hapi.chart.Metadata.Engine)
1660    }
1661
1662    private int bitField0_;
1663    public static final int NAME_FIELD_NUMBER = 1;
1664    private volatile java.lang.Object name_;
1665    /**
1666     * <pre>
1667     * The name of the chart
1668     * </pre>
1669     *
1670     * <code>string name = 1;</code>
1671     */
1672    public java.lang.String getName() {
1673      java.lang.Object ref = name_;
1674      if (ref instanceof java.lang.String) {
1675        return (java.lang.String) ref;
1676      } else {
1677        com.google.protobuf.ByteString bs = 
1678            (com.google.protobuf.ByteString) ref;
1679        java.lang.String s = bs.toStringUtf8();
1680        name_ = s;
1681        return s;
1682      }
1683    }
1684    /**
1685     * <pre>
1686     * The name of the chart
1687     * </pre>
1688     *
1689     * <code>string name = 1;</code>
1690     */
1691    public com.google.protobuf.ByteString
1692        getNameBytes() {
1693      java.lang.Object ref = name_;
1694      if (ref instanceof java.lang.String) {
1695        com.google.protobuf.ByteString b = 
1696            com.google.protobuf.ByteString.copyFromUtf8(
1697                (java.lang.String) ref);
1698        name_ = b;
1699        return b;
1700      } else {
1701        return (com.google.protobuf.ByteString) ref;
1702      }
1703    }
1704
1705    public static final int HOME_FIELD_NUMBER = 2;
1706    private volatile java.lang.Object home_;
1707    /**
1708     * <pre>
1709     * The URL to a relevant project page, git repo, or contact person
1710     * </pre>
1711     *
1712     * <code>string home = 2;</code>
1713     */
1714    public java.lang.String getHome() {
1715      java.lang.Object ref = home_;
1716      if (ref instanceof java.lang.String) {
1717        return (java.lang.String) ref;
1718      } else {
1719        com.google.protobuf.ByteString bs = 
1720            (com.google.protobuf.ByteString) ref;
1721        java.lang.String s = bs.toStringUtf8();
1722        home_ = s;
1723        return s;
1724      }
1725    }
1726    /**
1727     * <pre>
1728     * The URL to a relevant project page, git repo, or contact person
1729     * </pre>
1730     *
1731     * <code>string home = 2;</code>
1732     */
1733    public com.google.protobuf.ByteString
1734        getHomeBytes() {
1735      java.lang.Object ref = home_;
1736      if (ref instanceof java.lang.String) {
1737        com.google.protobuf.ByteString b = 
1738            com.google.protobuf.ByteString.copyFromUtf8(
1739                (java.lang.String) ref);
1740        home_ = b;
1741        return b;
1742      } else {
1743        return (com.google.protobuf.ByteString) ref;
1744      }
1745    }
1746
1747    public static final int SOURCES_FIELD_NUMBER = 3;
1748    private com.google.protobuf.LazyStringList sources_;
1749    /**
1750     * <pre>
1751     * Source is the URL to the source code of this chart
1752     * </pre>
1753     *
1754     * <code>repeated string sources = 3;</code>
1755     */
1756    public com.google.protobuf.ProtocolStringList
1757        getSourcesList() {
1758      return sources_;
1759    }
1760    /**
1761     * <pre>
1762     * Source is the URL to the source code of this chart
1763     * </pre>
1764     *
1765     * <code>repeated string sources = 3;</code>
1766     */
1767    public int getSourcesCount() {
1768      return sources_.size();
1769    }
1770    /**
1771     * <pre>
1772     * Source is the URL to the source code of this chart
1773     * </pre>
1774     *
1775     * <code>repeated string sources = 3;</code>
1776     */
1777    public java.lang.String getSources(int index) {
1778      return sources_.get(index);
1779    }
1780    /**
1781     * <pre>
1782     * Source is the URL to the source code of this chart
1783     * </pre>
1784     *
1785     * <code>repeated string sources = 3;</code>
1786     */
1787    public com.google.protobuf.ByteString
1788        getSourcesBytes(int index) {
1789      return sources_.getByteString(index);
1790    }
1791
1792    public static final int VERSION_FIELD_NUMBER = 4;
1793    private volatile java.lang.Object version_;
1794    /**
1795     * <pre>
1796     * A SemVer 2 conformant version string of the chart
1797     * </pre>
1798     *
1799     * <code>string version = 4;</code>
1800     */
1801    public java.lang.String getVersion() {
1802      java.lang.Object ref = version_;
1803      if (ref instanceof java.lang.String) {
1804        return (java.lang.String) ref;
1805      } else {
1806        com.google.protobuf.ByteString bs = 
1807            (com.google.protobuf.ByteString) ref;
1808        java.lang.String s = bs.toStringUtf8();
1809        version_ = s;
1810        return s;
1811      }
1812    }
1813    /**
1814     * <pre>
1815     * A SemVer 2 conformant version string of the chart
1816     * </pre>
1817     *
1818     * <code>string version = 4;</code>
1819     */
1820    public com.google.protobuf.ByteString
1821        getVersionBytes() {
1822      java.lang.Object ref = version_;
1823      if (ref instanceof java.lang.String) {
1824        com.google.protobuf.ByteString b = 
1825            com.google.protobuf.ByteString.copyFromUtf8(
1826                (java.lang.String) ref);
1827        version_ = b;
1828        return b;
1829      } else {
1830        return (com.google.protobuf.ByteString) ref;
1831      }
1832    }
1833
1834    public static final int DESCRIPTION_FIELD_NUMBER = 5;
1835    private volatile java.lang.Object description_;
1836    /**
1837     * <pre>
1838     * A one-sentence description of the chart
1839     * </pre>
1840     *
1841     * <code>string description = 5;</code>
1842     */
1843    public java.lang.String getDescription() {
1844      java.lang.Object ref = description_;
1845      if (ref instanceof java.lang.String) {
1846        return (java.lang.String) ref;
1847      } else {
1848        com.google.protobuf.ByteString bs = 
1849            (com.google.protobuf.ByteString) ref;
1850        java.lang.String s = bs.toStringUtf8();
1851        description_ = s;
1852        return s;
1853      }
1854    }
1855    /**
1856     * <pre>
1857     * A one-sentence description of the chart
1858     * </pre>
1859     *
1860     * <code>string description = 5;</code>
1861     */
1862    public com.google.protobuf.ByteString
1863        getDescriptionBytes() {
1864      java.lang.Object ref = description_;
1865      if (ref instanceof java.lang.String) {
1866        com.google.protobuf.ByteString b = 
1867            com.google.protobuf.ByteString.copyFromUtf8(
1868                (java.lang.String) ref);
1869        description_ = b;
1870        return b;
1871      } else {
1872        return (com.google.protobuf.ByteString) ref;
1873      }
1874    }
1875
1876    public static final int KEYWORDS_FIELD_NUMBER = 6;
1877    private com.google.protobuf.LazyStringList keywords_;
1878    /**
1879     * <pre>
1880     * A list of string keywords
1881     * </pre>
1882     *
1883     * <code>repeated string keywords = 6;</code>
1884     */
1885    public com.google.protobuf.ProtocolStringList
1886        getKeywordsList() {
1887      return keywords_;
1888    }
1889    /**
1890     * <pre>
1891     * A list of string keywords
1892     * </pre>
1893     *
1894     * <code>repeated string keywords = 6;</code>
1895     */
1896    public int getKeywordsCount() {
1897      return keywords_.size();
1898    }
1899    /**
1900     * <pre>
1901     * A list of string keywords
1902     * </pre>
1903     *
1904     * <code>repeated string keywords = 6;</code>
1905     */
1906    public java.lang.String getKeywords(int index) {
1907      return keywords_.get(index);
1908    }
1909    /**
1910     * <pre>
1911     * A list of string keywords
1912     * </pre>
1913     *
1914     * <code>repeated string keywords = 6;</code>
1915     */
1916    public com.google.protobuf.ByteString
1917        getKeywordsBytes(int index) {
1918      return keywords_.getByteString(index);
1919    }
1920
1921    public static final int MAINTAINERS_FIELD_NUMBER = 7;
1922    private java.util.List<hapi.chart.MetadataOuterClass.Maintainer> maintainers_;
1923    /**
1924     * <pre>
1925     * A list of name and URL/email address combinations for the maintainer(s)
1926     * </pre>
1927     *
1928     * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
1929     */
1930    public java.util.List<hapi.chart.MetadataOuterClass.Maintainer> getMaintainersList() {
1931      return maintainers_;
1932    }
1933    /**
1934     * <pre>
1935     * A list of name and URL/email address combinations for the maintainer(s)
1936     * </pre>
1937     *
1938     * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
1939     */
1940    public java.util.List<? extends hapi.chart.MetadataOuterClass.MaintainerOrBuilder> 
1941        getMaintainersOrBuilderList() {
1942      return maintainers_;
1943    }
1944    /**
1945     * <pre>
1946     * A list of name and URL/email address combinations for the maintainer(s)
1947     * </pre>
1948     *
1949     * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
1950     */
1951    public int getMaintainersCount() {
1952      return maintainers_.size();
1953    }
1954    /**
1955     * <pre>
1956     * A list of name and URL/email address combinations for the maintainer(s)
1957     * </pre>
1958     *
1959     * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
1960     */
1961    public hapi.chart.MetadataOuterClass.Maintainer getMaintainers(int index) {
1962      return maintainers_.get(index);
1963    }
1964    /**
1965     * <pre>
1966     * A list of name and URL/email address combinations for the maintainer(s)
1967     * </pre>
1968     *
1969     * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
1970     */
1971    public hapi.chart.MetadataOuterClass.MaintainerOrBuilder getMaintainersOrBuilder(
1972        int index) {
1973      return maintainers_.get(index);
1974    }
1975
1976    public static final int ENGINE_FIELD_NUMBER = 8;
1977    private volatile java.lang.Object engine_;
1978    /**
1979     * <pre>
1980     * The name of the template engine to use. Defaults to 'gotpl'.
1981     * </pre>
1982     *
1983     * <code>string engine = 8;</code>
1984     */
1985    public java.lang.String getEngine() {
1986      java.lang.Object ref = engine_;
1987      if (ref instanceof java.lang.String) {
1988        return (java.lang.String) ref;
1989      } else {
1990        com.google.protobuf.ByteString bs = 
1991            (com.google.protobuf.ByteString) ref;
1992        java.lang.String s = bs.toStringUtf8();
1993        engine_ = s;
1994        return s;
1995      }
1996    }
1997    /**
1998     * <pre>
1999     * The name of the template engine to use. Defaults to 'gotpl'.
2000     * </pre>
2001     *
2002     * <code>string engine = 8;</code>
2003     */
2004    public com.google.protobuf.ByteString
2005        getEngineBytes() {
2006      java.lang.Object ref = engine_;
2007      if (ref instanceof java.lang.String) {
2008        com.google.protobuf.ByteString b = 
2009            com.google.protobuf.ByteString.copyFromUtf8(
2010                (java.lang.String) ref);
2011        engine_ = b;
2012        return b;
2013      } else {
2014        return (com.google.protobuf.ByteString) ref;
2015      }
2016    }
2017
2018    public static final int ICON_FIELD_NUMBER = 9;
2019    private volatile java.lang.Object icon_;
2020    /**
2021     * <pre>
2022     * The URL to an icon file.
2023     * </pre>
2024     *
2025     * <code>string icon = 9;</code>
2026     */
2027    public java.lang.String getIcon() {
2028      java.lang.Object ref = icon_;
2029      if (ref instanceof java.lang.String) {
2030        return (java.lang.String) ref;
2031      } else {
2032        com.google.protobuf.ByteString bs = 
2033            (com.google.protobuf.ByteString) ref;
2034        java.lang.String s = bs.toStringUtf8();
2035        icon_ = s;
2036        return s;
2037      }
2038    }
2039    /**
2040     * <pre>
2041     * The URL to an icon file.
2042     * </pre>
2043     *
2044     * <code>string icon = 9;</code>
2045     */
2046    public com.google.protobuf.ByteString
2047        getIconBytes() {
2048      java.lang.Object ref = icon_;
2049      if (ref instanceof java.lang.String) {
2050        com.google.protobuf.ByteString b = 
2051            com.google.protobuf.ByteString.copyFromUtf8(
2052                (java.lang.String) ref);
2053        icon_ = b;
2054        return b;
2055      } else {
2056        return (com.google.protobuf.ByteString) ref;
2057      }
2058    }
2059
2060    public static final int APIVERSION_FIELD_NUMBER = 10;
2061    private volatile java.lang.Object apiVersion_;
2062    /**
2063     * <pre>
2064     * The API Version of this chart.
2065     * </pre>
2066     *
2067     * <code>string apiVersion = 10;</code>
2068     */
2069    public java.lang.String getApiVersion() {
2070      java.lang.Object ref = apiVersion_;
2071      if (ref instanceof java.lang.String) {
2072        return (java.lang.String) ref;
2073      } else {
2074        com.google.protobuf.ByteString bs = 
2075            (com.google.protobuf.ByteString) ref;
2076        java.lang.String s = bs.toStringUtf8();
2077        apiVersion_ = s;
2078        return s;
2079      }
2080    }
2081    /**
2082     * <pre>
2083     * The API Version of this chart.
2084     * </pre>
2085     *
2086     * <code>string apiVersion = 10;</code>
2087     */
2088    public com.google.protobuf.ByteString
2089        getApiVersionBytes() {
2090      java.lang.Object ref = apiVersion_;
2091      if (ref instanceof java.lang.String) {
2092        com.google.protobuf.ByteString b = 
2093            com.google.protobuf.ByteString.copyFromUtf8(
2094                (java.lang.String) ref);
2095        apiVersion_ = b;
2096        return b;
2097      } else {
2098        return (com.google.protobuf.ByteString) ref;
2099      }
2100    }
2101
2102    public static final int CONDITION_FIELD_NUMBER = 11;
2103    private volatile java.lang.Object condition_;
2104    /**
2105     * <pre>
2106     * The condition to check to enable chart
2107     * </pre>
2108     *
2109     * <code>string condition = 11;</code>
2110     */
2111    public java.lang.String getCondition() {
2112      java.lang.Object ref = condition_;
2113      if (ref instanceof java.lang.String) {
2114        return (java.lang.String) ref;
2115      } else {
2116        com.google.protobuf.ByteString bs = 
2117            (com.google.protobuf.ByteString) ref;
2118        java.lang.String s = bs.toStringUtf8();
2119        condition_ = s;
2120        return s;
2121      }
2122    }
2123    /**
2124     * <pre>
2125     * The condition to check to enable chart
2126     * </pre>
2127     *
2128     * <code>string condition = 11;</code>
2129     */
2130    public com.google.protobuf.ByteString
2131        getConditionBytes() {
2132      java.lang.Object ref = condition_;
2133      if (ref instanceof java.lang.String) {
2134        com.google.protobuf.ByteString b = 
2135            com.google.protobuf.ByteString.copyFromUtf8(
2136                (java.lang.String) ref);
2137        condition_ = b;
2138        return b;
2139      } else {
2140        return (com.google.protobuf.ByteString) ref;
2141      }
2142    }
2143
2144    public static final int TAGS_FIELD_NUMBER = 12;
2145    private volatile java.lang.Object tags_;
2146    /**
2147     * <pre>
2148     * The tags to check to enable chart
2149     * </pre>
2150     *
2151     * <code>string tags = 12;</code>
2152     */
2153    public java.lang.String getTags() {
2154      java.lang.Object ref = tags_;
2155      if (ref instanceof java.lang.String) {
2156        return (java.lang.String) ref;
2157      } else {
2158        com.google.protobuf.ByteString bs = 
2159            (com.google.protobuf.ByteString) ref;
2160        java.lang.String s = bs.toStringUtf8();
2161        tags_ = s;
2162        return s;
2163      }
2164    }
2165    /**
2166     * <pre>
2167     * The tags to check to enable chart
2168     * </pre>
2169     *
2170     * <code>string tags = 12;</code>
2171     */
2172    public com.google.protobuf.ByteString
2173        getTagsBytes() {
2174      java.lang.Object ref = tags_;
2175      if (ref instanceof java.lang.String) {
2176        com.google.protobuf.ByteString b = 
2177            com.google.protobuf.ByteString.copyFromUtf8(
2178                (java.lang.String) ref);
2179        tags_ = b;
2180        return b;
2181      } else {
2182        return (com.google.protobuf.ByteString) ref;
2183      }
2184    }
2185
2186    public static final int APPVERSION_FIELD_NUMBER = 13;
2187    private volatile java.lang.Object appVersion_;
2188    /**
2189     * <pre>
2190     * The version of the application enclosed inside of this chart.
2191     * </pre>
2192     *
2193     * <code>string appVersion = 13;</code>
2194     */
2195    public java.lang.String getAppVersion() {
2196      java.lang.Object ref = appVersion_;
2197      if (ref instanceof java.lang.String) {
2198        return (java.lang.String) ref;
2199      } else {
2200        com.google.protobuf.ByteString bs = 
2201            (com.google.protobuf.ByteString) ref;
2202        java.lang.String s = bs.toStringUtf8();
2203        appVersion_ = s;
2204        return s;
2205      }
2206    }
2207    /**
2208     * <pre>
2209     * The version of the application enclosed inside of this chart.
2210     * </pre>
2211     *
2212     * <code>string appVersion = 13;</code>
2213     */
2214    public com.google.protobuf.ByteString
2215        getAppVersionBytes() {
2216      java.lang.Object ref = appVersion_;
2217      if (ref instanceof java.lang.String) {
2218        com.google.protobuf.ByteString b = 
2219            com.google.protobuf.ByteString.copyFromUtf8(
2220                (java.lang.String) ref);
2221        appVersion_ = b;
2222        return b;
2223      } else {
2224        return (com.google.protobuf.ByteString) ref;
2225      }
2226    }
2227
2228    public static final int DEPRECATED_FIELD_NUMBER = 14;
2229    private boolean deprecated_;
2230    /**
2231     * <pre>
2232     * Whether or not this chart is deprecated
2233     * </pre>
2234     *
2235     * <code>bool deprecated = 14;</code>
2236     */
2237    public boolean getDeprecated() {
2238      return deprecated_;
2239    }
2240
2241    public static final int TILLERVERSION_FIELD_NUMBER = 15;
2242    private volatile java.lang.Object tillerVersion_;
2243    /**
2244     * <pre>
2245     * TillerVersion is a SemVer constraints on what version of Tiller is required.
2246     * See SemVer ranges here: https://github.com/Masterminds/semver#basic-comparisons
2247     * </pre>
2248     *
2249     * <code>string tillerVersion = 15;</code>
2250     */
2251    public java.lang.String getTillerVersion() {
2252      java.lang.Object ref = tillerVersion_;
2253      if (ref instanceof java.lang.String) {
2254        return (java.lang.String) ref;
2255      } else {
2256        com.google.protobuf.ByteString bs = 
2257            (com.google.protobuf.ByteString) ref;
2258        java.lang.String s = bs.toStringUtf8();
2259        tillerVersion_ = s;
2260        return s;
2261      }
2262    }
2263    /**
2264     * <pre>
2265     * TillerVersion is a SemVer constraints on what version of Tiller is required.
2266     * See SemVer ranges here: https://github.com/Masterminds/semver#basic-comparisons
2267     * </pre>
2268     *
2269     * <code>string tillerVersion = 15;</code>
2270     */
2271    public com.google.protobuf.ByteString
2272        getTillerVersionBytes() {
2273      java.lang.Object ref = tillerVersion_;
2274      if (ref instanceof java.lang.String) {
2275        com.google.protobuf.ByteString b = 
2276            com.google.protobuf.ByteString.copyFromUtf8(
2277                (java.lang.String) ref);
2278        tillerVersion_ = b;
2279        return b;
2280      } else {
2281        return (com.google.protobuf.ByteString) ref;
2282      }
2283    }
2284
2285    public static final int ANNOTATIONS_FIELD_NUMBER = 16;
2286    private static final class AnnotationsDefaultEntryHolder {
2287      static final com.google.protobuf.MapEntry<
2288          java.lang.String, java.lang.String> defaultEntry =
2289              com.google.protobuf.MapEntry
2290              .<java.lang.String, java.lang.String>newDefaultInstance(
2291                  hapi.chart.MetadataOuterClass.internal_static_hapi_chart_Metadata_AnnotationsEntry_descriptor, 
2292                  com.google.protobuf.WireFormat.FieldType.STRING,
2293                  "",
2294                  com.google.protobuf.WireFormat.FieldType.STRING,
2295                  "");
2296    }
2297    private com.google.protobuf.MapField<
2298        java.lang.String, java.lang.String> annotations_;
2299    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
2300    internalGetAnnotations() {
2301      if (annotations_ == null) {
2302        return com.google.protobuf.MapField.emptyMapField(
2303            AnnotationsDefaultEntryHolder.defaultEntry);
2304      }
2305      return annotations_;
2306    }
2307
2308    public int getAnnotationsCount() {
2309      return internalGetAnnotations().getMap().size();
2310    }
2311    /**
2312     * <pre>
2313     * Annotations are additional mappings uninterpreted by Tiller,
2314     * made available for inspection by other applications.
2315     * </pre>
2316     *
2317     * <code>map&lt;string, string&gt; annotations = 16;</code>
2318     */
2319
2320    public boolean containsAnnotations(
2321        java.lang.String key) {
2322      if (key == null) { throw new java.lang.NullPointerException(); }
2323      return internalGetAnnotations().getMap().containsKey(key);
2324    }
2325    /**
2326     * Use {@link #getAnnotationsMap()} instead.
2327     */
2328    @java.lang.Deprecated
2329    public java.util.Map<java.lang.String, java.lang.String> getAnnotations() {
2330      return getAnnotationsMap();
2331    }
2332    /**
2333     * <pre>
2334     * Annotations are additional mappings uninterpreted by Tiller,
2335     * made available for inspection by other applications.
2336     * </pre>
2337     *
2338     * <code>map&lt;string, string&gt; annotations = 16;</code>
2339     */
2340
2341    public java.util.Map<java.lang.String, java.lang.String> getAnnotationsMap() {
2342      return internalGetAnnotations().getMap();
2343    }
2344    /**
2345     * <pre>
2346     * Annotations are additional mappings uninterpreted by Tiller,
2347     * made available for inspection by other applications.
2348     * </pre>
2349     *
2350     * <code>map&lt;string, string&gt; annotations = 16;</code>
2351     */
2352
2353    public java.lang.String getAnnotationsOrDefault(
2354        java.lang.String key,
2355        java.lang.String defaultValue) {
2356      if (key == null) { throw new java.lang.NullPointerException(); }
2357      java.util.Map<java.lang.String, java.lang.String> map =
2358          internalGetAnnotations().getMap();
2359      return map.containsKey(key) ? map.get(key) : defaultValue;
2360    }
2361    /**
2362     * <pre>
2363     * Annotations are additional mappings uninterpreted by Tiller,
2364     * made available for inspection by other applications.
2365     * </pre>
2366     *
2367     * <code>map&lt;string, string&gt; annotations = 16;</code>
2368     */
2369
2370    public java.lang.String getAnnotationsOrThrow(
2371        java.lang.String key) {
2372      if (key == null) { throw new java.lang.NullPointerException(); }
2373      java.util.Map<java.lang.String, java.lang.String> map =
2374          internalGetAnnotations().getMap();
2375      if (!map.containsKey(key)) {
2376        throw new java.lang.IllegalArgumentException();
2377      }
2378      return map.get(key);
2379    }
2380
2381    public static final int KUBEVERSION_FIELD_NUMBER = 17;
2382    private volatile java.lang.Object kubeVersion_;
2383    /**
2384     * <pre>
2385     * KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
2386     * </pre>
2387     *
2388     * <code>string kubeVersion = 17;</code>
2389     */
2390    public java.lang.String getKubeVersion() {
2391      java.lang.Object ref = kubeVersion_;
2392      if (ref instanceof java.lang.String) {
2393        return (java.lang.String) ref;
2394      } else {
2395        com.google.protobuf.ByteString bs = 
2396            (com.google.protobuf.ByteString) ref;
2397        java.lang.String s = bs.toStringUtf8();
2398        kubeVersion_ = s;
2399        return s;
2400      }
2401    }
2402    /**
2403     * <pre>
2404     * KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
2405     * </pre>
2406     *
2407     * <code>string kubeVersion = 17;</code>
2408     */
2409    public com.google.protobuf.ByteString
2410        getKubeVersionBytes() {
2411      java.lang.Object ref = kubeVersion_;
2412      if (ref instanceof java.lang.String) {
2413        com.google.protobuf.ByteString b = 
2414            com.google.protobuf.ByteString.copyFromUtf8(
2415                (java.lang.String) ref);
2416        kubeVersion_ = b;
2417        return b;
2418      } else {
2419        return (com.google.protobuf.ByteString) ref;
2420      }
2421    }
2422
2423    private byte memoizedIsInitialized = -1;
2424    public final boolean isInitialized() {
2425      byte isInitialized = memoizedIsInitialized;
2426      if (isInitialized == 1) return true;
2427      if (isInitialized == 0) return false;
2428
2429      memoizedIsInitialized = 1;
2430      return true;
2431    }
2432
2433    public void writeTo(com.google.protobuf.CodedOutputStream output)
2434                        throws java.io.IOException {
2435      if (!getNameBytes().isEmpty()) {
2436        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
2437      }
2438      if (!getHomeBytes().isEmpty()) {
2439        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, home_);
2440      }
2441      for (int i = 0; i < sources_.size(); i++) {
2442        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, sources_.getRaw(i));
2443      }
2444      if (!getVersionBytes().isEmpty()) {
2445        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, version_);
2446      }
2447      if (!getDescriptionBytes().isEmpty()) {
2448        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, description_);
2449      }
2450      for (int i = 0; i < keywords_.size(); i++) {
2451        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, keywords_.getRaw(i));
2452      }
2453      for (int i = 0; i < maintainers_.size(); i++) {
2454        output.writeMessage(7, maintainers_.get(i));
2455      }
2456      if (!getEngineBytes().isEmpty()) {
2457        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, engine_);
2458      }
2459      if (!getIconBytes().isEmpty()) {
2460        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, icon_);
2461      }
2462      if (!getApiVersionBytes().isEmpty()) {
2463        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, apiVersion_);
2464      }
2465      if (!getConditionBytes().isEmpty()) {
2466        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, condition_);
2467      }
2468      if (!getTagsBytes().isEmpty()) {
2469        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, tags_);
2470      }
2471      if (!getAppVersionBytes().isEmpty()) {
2472        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, appVersion_);
2473      }
2474      if (deprecated_ != false) {
2475        output.writeBool(14, deprecated_);
2476      }
2477      if (!getTillerVersionBytes().isEmpty()) {
2478        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, tillerVersion_);
2479      }
2480      com.google.protobuf.GeneratedMessageV3
2481        .serializeStringMapTo(
2482          output,
2483          internalGetAnnotations(),
2484          AnnotationsDefaultEntryHolder.defaultEntry,
2485          16);
2486      if (!getKubeVersionBytes().isEmpty()) {
2487        com.google.protobuf.GeneratedMessageV3.writeString(output, 17, kubeVersion_);
2488      }
2489      unknownFields.writeTo(output);
2490    }
2491
2492    public int getSerializedSize() {
2493      int size = memoizedSize;
2494      if (size != -1) return size;
2495
2496      size = 0;
2497      if (!getNameBytes().isEmpty()) {
2498        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
2499      }
2500      if (!getHomeBytes().isEmpty()) {
2501        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, home_);
2502      }
2503      {
2504        int dataSize = 0;
2505        for (int i = 0; i < sources_.size(); i++) {
2506          dataSize += computeStringSizeNoTag(sources_.getRaw(i));
2507        }
2508        size += dataSize;
2509        size += 1 * getSourcesList().size();
2510      }
2511      if (!getVersionBytes().isEmpty()) {
2512        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, version_);
2513      }
2514      if (!getDescriptionBytes().isEmpty()) {
2515        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, description_);
2516      }
2517      {
2518        int dataSize = 0;
2519        for (int i = 0; i < keywords_.size(); i++) {
2520          dataSize += computeStringSizeNoTag(keywords_.getRaw(i));
2521        }
2522        size += dataSize;
2523        size += 1 * getKeywordsList().size();
2524      }
2525      for (int i = 0; i < maintainers_.size(); i++) {
2526        size += com.google.protobuf.CodedOutputStream
2527          .computeMessageSize(7, maintainers_.get(i));
2528      }
2529      if (!getEngineBytes().isEmpty()) {
2530        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, engine_);
2531      }
2532      if (!getIconBytes().isEmpty()) {
2533        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, icon_);
2534      }
2535      if (!getApiVersionBytes().isEmpty()) {
2536        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, apiVersion_);
2537      }
2538      if (!getConditionBytes().isEmpty()) {
2539        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, condition_);
2540      }
2541      if (!getTagsBytes().isEmpty()) {
2542        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, tags_);
2543      }
2544      if (!getAppVersionBytes().isEmpty()) {
2545        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, appVersion_);
2546      }
2547      if (deprecated_ != false) {
2548        size += com.google.protobuf.CodedOutputStream
2549          .computeBoolSize(14, deprecated_);
2550      }
2551      if (!getTillerVersionBytes().isEmpty()) {
2552        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, tillerVersion_);
2553      }
2554      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
2555           : internalGetAnnotations().getMap().entrySet()) {
2556        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
2557        annotations__ = AnnotationsDefaultEntryHolder.defaultEntry.newBuilderForType()
2558            .setKey(entry.getKey())
2559            .setValue(entry.getValue())
2560            .build();
2561        size += com.google.protobuf.CodedOutputStream
2562            .computeMessageSize(16, annotations__);
2563      }
2564      if (!getKubeVersionBytes().isEmpty()) {
2565        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, kubeVersion_);
2566      }
2567      size += unknownFields.getSerializedSize();
2568      memoizedSize = size;
2569      return size;
2570    }
2571
2572    @java.lang.Override
2573    public boolean equals(final java.lang.Object obj) {
2574      if (obj == this) {
2575       return true;
2576      }
2577      if (!(obj instanceof hapi.chart.MetadataOuterClass.Metadata)) {
2578        return super.equals(obj);
2579      }
2580      hapi.chart.MetadataOuterClass.Metadata other = (hapi.chart.MetadataOuterClass.Metadata) obj;
2581
2582      boolean result = true;
2583      result = result && getName()
2584          .equals(other.getName());
2585      result = result && getHome()
2586          .equals(other.getHome());
2587      result = result && getSourcesList()
2588          .equals(other.getSourcesList());
2589      result = result && getVersion()
2590          .equals(other.getVersion());
2591      result = result && getDescription()
2592          .equals(other.getDescription());
2593      result = result && getKeywordsList()
2594          .equals(other.getKeywordsList());
2595      result = result && getMaintainersList()
2596          .equals(other.getMaintainersList());
2597      result = result && getEngine()
2598          .equals(other.getEngine());
2599      result = result && getIcon()
2600          .equals(other.getIcon());
2601      result = result && getApiVersion()
2602          .equals(other.getApiVersion());
2603      result = result && getCondition()
2604          .equals(other.getCondition());
2605      result = result && getTags()
2606          .equals(other.getTags());
2607      result = result && getAppVersion()
2608          .equals(other.getAppVersion());
2609      result = result && (getDeprecated()
2610          == other.getDeprecated());
2611      result = result && getTillerVersion()
2612          .equals(other.getTillerVersion());
2613      result = result && internalGetAnnotations().equals(
2614          other.internalGetAnnotations());
2615      result = result && getKubeVersion()
2616          .equals(other.getKubeVersion());
2617      result = result && unknownFields.equals(other.unknownFields);
2618      return result;
2619    }
2620
2621    @java.lang.Override
2622    public int hashCode() {
2623      if (memoizedHashCode != 0) {
2624        return memoizedHashCode;
2625      }
2626      int hash = 41;
2627      hash = (19 * hash) + getDescriptor().hashCode();
2628      hash = (37 * hash) + NAME_FIELD_NUMBER;
2629      hash = (53 * hash) + getName().hashCode();
2630      hash = (37 * hash) + HOME_FIELD_NUMBER;
2631      hash = (53 * hash) + getHome().hashCode();
2632      if (getSourcesCount() > 0) {
2633        hash = (37 * hash) + SOURCES_FIELD_NUMBER;
2634        hash = (53 * hash) + getSourcesList().hashCode();
2635      }
2636      hash = (37 * hash) + VERSION_FIELD_NUMBER;
2637      hash = (53 * hash) + getVersion().hashCode();
2638      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
2639      hash = (53 * hash) + getDescription().hashCode();
2640      if (getKeywordsCount() > 0) {
2641        hash = (37 * hash) + KEYWORDS_FIELD_NUMBER;
2642        hash = (53 * hash) + getKeywordsList().hashCode();
2643      }
2644      if (getMaintainersCount() > 0) {
2645        hash = (37 * hash) + MAINTAINERS_FIELD_NUMBER;
2646        hash = (53 * hash) + getMaintainersList().hashCode();
2647      }
2648      hash = (37 * hash) + ENGINE_FIELD_NUMBER;
2649      hash = (53 * hash) + getEngine().hashCode();
2650      hash = (37 * hash) + ICON_FIELD_NUMBER;
2651      hash = (53 * hash) + getIcon().hashCode();
2652      hash = (37 * hash) + APIVERSION_FIELD_NUMBER;
2653      hash = (53 * hash) + getApiVersion().hashCode();
2654      hash = (37 * hash) + CONDITION_FIELD_NUMBER;
2655      hash = (53 * hash) + getCondition().hashCode();
2656      hash = (37 * hash) + TAGS_FIELD_NUMBER;
2657      hash = (53 * hash) + getTags().hashCode();
2658      hash = (37 * hash) + APPVERSION_FIELD_NUMBER;
2659      hash = (53 * hash) + getAppVersion().hashCode();
2660      hash = (37 * hash) + DEPRECATED_FIELD_NUMBER;
2661      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2662          getDeprecated());
2663      hash = (37 * hash) + TILLERVERSION_FIELD_NUMBER;
2664      hash = (53 * hash) + getTillerVersion().hashCode();
2665      if (!internalGetAnnotations().getMap().isEmpty()) {
2666        hash = (37 * hash) + ANNOTATIONS_FIELD_NUMBER;
2667        hash = (53 * hash) + internalGetAnnotations().hashCode();
2668      }
2669      hash = (37 * hash) + KUBEVERSION_FIELD_NUMBER;
2670      hash = (53 * hash) + getKubeVersion().hashCode();
2671      hash = (29 * hash) + unknownFields.hashCode();
2672      memoizedHashCode = hash;
2673      return hash;
2674    }
2675
2676    public static hapi.chart.MetadataOuterClass.Metadata parseFrom(
2677        java.nio.ByteBuffer data)
2678        throws com.google.protobuf.InvalidProtocolBufferException {
2679      return PARSER.parseFrom(data);
2680    }
2681    public static hapi.chart.MetadataOuterClass.Metadata parseFrom(
2682        java.nio.ByteBuffer data,
2683        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2684        throws com.google.protobuf.InvalidProtocolBufferException {
2685      return PARSER.parseFrom(data, extensionRegistry);
2686    }
2687    public static hapi.chart.MetadataOuterClass.Metadata parseFrom(
2688        com.google.protobuf.ByteString data)
2689        throws com.google.protobuf.InvalidProtocolBufferException {
2690      return PARSER.parseFrom(data);
2691    }
2692    public static hapi.chart.MetadataOuterClass.Metadata parseFrom(
2693        com.google.protobuf.ByteString data,
2694        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2695        throws com.google.protobuf.InvalidProtocolBufferException {
2696      return PARSER.parseFrom(data, extensionRegistry);
2697    }
2698    public static hapi.chart.MetadataOuterClass.Metadata parseFrom(byte[] data)
2699        throws com.google.protobuf.InvalidProtocolBufferException {
2700      return PARSER.parseFrom(data);
2701    }
2702    public static hapi.chart.MetadataOuterClass.Metadata parseFrom(
2703        byte[] data,
2704        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2705        throws com.google.protobuf.InvalidProtocolBufferException {
2706      return PARSER.parseFrom(data, extensionRegistry);
2707    }
2708    public static hapi.chart.MetadataOuterClass.Metadata parseFrom(java.io.InputStream input)
2709        throws java.io.IOException {
2710      return com.google.protobuf.GeneratedMessageV3
2711          .parseWithIOException(PARSER, input);
2712    }
2713    public static hapi.chart.MetadataOuterClass.Metadata parseFrom(
2714        java.io.InputStream input,
2715        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2716        throws java.io.IOException {
2717      return com.google.protobuf.GeneratedMessageV3
2718          .parseWithIOException(PARSER, input, extensionRegistry);
2719    }
2720    public static hapi.chart.MetadataOuterClass.Metadata parseDelimitedFrom(java.io.InputStream input)
2721        throws java.io.IOException {
2722      return com.google.protobuf.GeneratedMessageV3
2723          .parseDelimitedWithIOException(PARSER, input);
2724    }
2725    public static hapi.chart.MetadataOuterClass.Metadata parseDelimitedFrom(
2726        java.io.InputStream input,
2727        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2728        throws java.io.IOException {
2729      return com.google.protobuf.GeneratedMessageV3
2730          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
2731    }
2732    public static hapi.chart.MetadataOuterClass.Metadata parseFrom(
2733        com.google.protobuf.CodedInputStream input)
2734        throws java.io.IOException {
2735      return com.google.protobuf.GeneratedMessageV3
2736          .parseWithIOException(PARSER, input);
2737    }
2738    public static hapi.chart.MetadataOuterClass.Metadata parseFrom(
2739        com.google.protobuf.CodedInputStream input,
2740        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2741        throws java.io.IOException {
2742      return com.google.protobuf.GeneratedMessageV3
2743          .parseWithIOException(PARSER, input, extensionRegistry);
2744    }
2745
2746    public Builder newBuilderForType() { return newBuilder(); }
2747    public static Builder newBuilder() {
2748      return DEFAULT_INSTANCE.toBuilder();
2749    }
2750    public static Builder newBuilder(hapi.chart.MetadataOuterClass.Metadata prototype) {
2751      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
2752    }
2753    public Builder toBuilder() {
2754      return this == DEFAULT_INSTANCE
2755          ? new Builder() : new Builder().mergeFrom(this);
2756    }
2757
2758    @java.lang.Override
2759    protected Builder newBuilderForType(
2760        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
2761      Builder builder = new Builder(parent);
2762      return builder;
2763    }
2764    /**
2765     * <pre>
2766     *  Metadata for a Chart file. This models the structure of a Chart.yaml file.
2767     *  Spec: https://k8s.io/helm/blob/master/docs/design/chart_format.md#the-chart-file
2768     * </pre>
2769     *
2770     * Protobuf type {@code hapi.chart.Metadata}
2771     */
2772    public static final class Builder extends
2773        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
2774        // @@protoc_insertion_point(builder_implements:hapi.chart.Metadata)
2775        hapi.chart.MetadataOuterClass.MetadataOrBuilder {
2776      public static final com.google.protobuf.Descriptors.Descriptor
2777          getDescriptor() {
2778        return hapi.chart.MetadataOuterClass.internal_static_hapi_chart_Metadata_descriptor;
2779      }
2780
2781      @SuppressWarnings({"rawtypes"})
2782      protected com.google.protobuf.MapField internalGetMapField(
2783          int number) {
2784        switch (number) {
2785          case 16:
2786            return internalGetAnnotations();
2787          default:
2788            throw new RuntimeException(
2789                "Invalid map field number: " + number);
2790        }
2791      }
2792      @SuppressWarnings({"rawtypes"})
2793      protected com.google.protobuf.MapField internalGetMutableMapField(
2794          int number) {
2795        switch (number) {
2796          case 16:
2797            return internalGetMutableAnnotations();
2798          default:
2799            throw new RuntimeException(
2800                "Invalid map field number: " + number);
2801        }
2802      }
2803      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
2804          internalGetFieldAccessorTable() {
2805        return hapi.chart.MetadataOuterClass.internal_static_hapi_chart_Metadata_fieldAccessorTable
2806            .ensureFieldAccessorsInitialized(
2807                hapi.chart.MetadataOuterClass.Metadata.class, hapi.chart.MetadataOuterClass.Metadata.Builder.class);
2808      }
2809
2810      // Construct using hapi.chart.MetadataOuterClass.Metadata.newBuilder()
2811      private Builder() {
2812        maybeForceBuilderInitialization();
2813      }
2814
2815      private Builder(
2816          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
2817        super(parent);
2818        maybeForceBuilderInitialization();
2819      }
2820      private void maybeForceBuilderInitialization() {
2821        if (com.google.protobuf.GeneratedMessageV3
2822                .alwaysUseFieldBuilders) {
2823          getMaintainersFieldBuilder();
2824        }
2825      }
2826      public Builder clear() {
2827        super.clear();
2828        name_ = "";
2829
2830        home_ = "";
2831
2832        sources_ = com.google.protobuf.LazyStringArrayList.EMPTY;
2833        bitField0_ = (bitField0_ & ~0x00000004);
2834        version_ = "";
2835
2836        description_ = "";
2837
2838        keywords_ = com.google.protobuf.LazyStringArrayList.EMPTY;
2839        bitField0_ = (bitField0_ & ~0x00000020);
2840        if (maintainersBuilder_ == null) {
2841          maintainers_ = java.util.Collections.emptyList();
2842          bitField0_ = (bitField0_ & ~0x00000040);
2843        } else {
2844          maintainersBuilder_.clear();
2845        }
2846        engine_ = "";
2847
2848        icon_ = "";
2849
2850        apiVersion_ = "";
2851
2852        condition_ = "";
2853
2854        tags_ = "";
2855
2856        appVersion_ = "";
2857
2858        deprecated_ = false;
2859
2860        tillerVersion_ = "";
2861
2862        internalGetMutableAnnotations().clear();
2863        kubeVersion_ = "";
2864
2865        return this;
2866      }
2867
2868      public com.google.protobuf.Descriptors.Descriptor
2869          getDescriptorForType() {
2870        return hapi.chart.MetadataOuterClass.internal_static_hapi_chart_Metadata_descriptor;
2871      }
2872
2873      public hapi.chart.MetadataOuterClass.Metadata getDefaultInstanceForType() {
2874        return hapi.chart.MetadataOuterClass.Metadata.getDefaultInstance();
2875      }
2876
2877      public hapi.chart.MetadataOuterClass.Metadata build() {
2878        hapi.chart.MetadataOuterClass.Metadata result = buildPartial();
2879        if (!result.isInitialized()) {
2880          throw newUninitializedMessageException(result);
2881        }
2882        return result;
2883      }
2884
2885      public hapi.chart.MetadataOuterClass.Metadata buildPartial() {
2886        hapi.chart.MetadataOuterClass.Metadata result = new hapi.chart.MetadataOuterClass.Metadata(this);
2887        int from_bitField0_ = bitField0_;
2888        int to_bitField0_ = 0;
2889        result.name_ = name_;
2890        result.home_ = home_;
2891        if (((bitField0_ & 0x00000004) == 0x00000004)) {
2892          sources_ = sources_.getUnmodifiableView();
2893          bitField0_ = (bitField0_ & ~0x00000004);
2894        }
2895        result.sources_ = sources_;
2896        result.version_ = version_;
2897        result.description_ = description_;
2898        if (((bitField0_ & 0x00000020) == 0x00000020)) {
2899          keywords_ = keywords_.getUnmodifiableView();
2900          bitField0_ = (bitField0_ & ~0x00000020);
2901        }
2902        result.keywords_ = keywords_;
2903        if (maintainersBuilder_ == null) {
2904          if (((bitField0_ & 0x00000040) == 0x00000040)) {
2905            maintainers_ = java.util.Collections.unmodifiableList(maintainers_);
2906            bitField0_ = (bitField0_ & ~0x00000040);
2907          }
2908          result.maintainers_ = maintainers_;
2909        } else {
2910          result.maintainers_ = maintainersBuilder_.build();
2911        }
2912        result.engine_ = engine_;
2913        result.icon_ = icon_;
2914        result.apiVersion_ = apiVersion_;
2915        result.condition_ = condition_;
2916        result.tags_ = tags_;
2917        result.appVersion_ = appVersion_;
2918        result.deprecated_ = deprecated_;
2919        result.tillerVersion_ = tillerVersion_;
2920        result.annotations_ = internalGetAnnotations();
2921        result.annotations_.makeImmutable();
2922        result.kubeVersion_ = kubeVersion_;
2923        result.bitField0_ = to_bitField0_;
2924        onBuilt();
2925        return result;
2926      }
2927
2928      public Builder clone() {
2929        return (Builder) super.clone();
2930      }
2931      public Builder setField(
2932          com.google.protobuf.Descriptors.FieldDescriptor field,
2933          java.lang.Object value) {
2934        return (Builder) super.setField(field, value);
2935      }
2936      public Builder clearField(
2937          com.google.protobuf.Descriptors.FieldDescriptor field) {
2938        return (Builder) super.clearField(field);
2939      }
2940      public Builder clearOneof(
2941          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
2942        return (Builder) super.clearOneof(oneof);
2943      }
2944      public Builder setRepeatedField(
2945          com.google.protobuf.Descriptors.FieldDescriptor field,
2946          int index, java.lang.Object value) {
2947        return (Builder) super.setRepeatedField(field, index, value);
2948      }
2949      public Builder addRepeatedField(
2950          com.google.protobuf.Descriptors.FieldDescriptor field,
2951          java.lang.Object value) {
2952        return (Builder) super.addRepeatedField(field, value);
2953      }
2954      public Builder mergeFrom(com.google.protobuf.Message other) {
2955        if (other instanceof hapi.chart.MetadataOuterClass.Metadata) {
2956          return mergeFrom((hapi.chart.MetadataOuterClass.Metadata)other);
2957        } else {
2958          super.mergeFrom(other);
2959          return this;
2960        }
2961      }
2962
2963      public Builder mergeFrom(hapi.chart.MetadataOuterClass.Metadata other) {
2964        if (other == hapi.chart.MetadataOuterClass.Metadata.getDefaultInstance()) return this;
2965        if (!other.getName().isEmpty()) {
2966          name_ = other.name_;
2967          onChanged();
2968        }
2969        if (!other.getHome().isEmpty()) {
2970          home_ = other.home_;
2971          onChanged();
2972        }
2973        if (!other.sources_.isEmpty()) {
2974          if (sources_.isEmpty()) {
2975            sources_ = other.sources_;
2976            bitField0_ = (bitField0_ & ~0x00000004);
2977          } else {
2978            ensureSourcesIsMutable();
2979            sources_.addAll(other.sources_);
2980          }
2981          onChanged();
2982        }
2983        if (!other.getVersion().isEmpty()) {
2984          version_ = other.version_;
2985          onChanged();
2986        }
2987        if (!other.getDescription().isEmpty()) {
2988          description_ = other.description_;
2989          onChanged();
2990        }
2991        if (!other.keywords_.isEmpty()) {
2992          if (keywords_.isEmpty()) {
2993            keywords_ = other.keywords_;
2994            bitField0_ = (bitField0_ & ~0x00000020);
2995          } else {
2996            ensureKeywordsIsMutable();
2997            keywords_.addAll(other.keywords_);
2998          }
2999          onChanged();
3000        }
3001        if (maintainersBuilder_ == null) {
3002          if (!other.maintainers_.isEmpty()) {
3003            if (maintainers_.isEmpty()) {
3004              maintainers_ = other.maintainers_;
3005              bitField0_ = (bitField0_ & ~0x00000040);
3006            } else {
3007              ensureMaintainersIsMutable();
3008              maintainers_.addAll(other.maintainers_);
3009            }
3010            onChanged();
3011          }
3012        } else {
3013          if (!other.maintainers_.isEmpty()) {
3014            if (maintainersBuilder_.isEmpty()) {
3015              maintainersBuilder_.dispose();
3016              maintainersBuilder_ = null;
3017              maintainers_ = other.maintainers_;
3018              bitField0_ = (bitField0_ & ~0x00000040);
3019              maintainersBuilder_ = 
3020                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
3021                   getMaintainersFieldBuilder() : null;
3022            } else {
3023              maintainersBuilder_.addAllMessages(other.maintainers_);
3024            }
3025          }
3026        }
3027        if (!other.getEngine().isEmpty()) {
3028          engine_ = other.engine_;
3029          onChanged();
3030        }
3031        if (!other.getIcon().isEmpty()) {
3032          icon_ = other.icon_;
3033          onChanged();
3034        }
3035        if (!other.getApiVersion().isEmpty()) {
3036          apiVersion_ = other.apiVersion_;
3037          onChanged();
3038        }
3039        if (!other.getCondition().isEmpty()) {
3040          condition_ = other.condition_;
3041          onChanged();
3042        }
3043        if (!other.getTags().isEmpty()) {
3044          tags_ = other.tags_;
3045          onChanged();
3046        }
3047        if (!other.getAppVersion().isEmpty()) {
3048          appVersion_ = other.appVersion_;
3049          onChanged();
3050        }
3051        if (other.getDeprecated() != false) {
3052          setDeprecated(other.getDeprecated());
3053        }
3054        if (!other.getTillerVersion().isEmpty()) {
3055          tillerVersion_ = other.tillerVersion_;
3056          onChanged();
3057        }
3058        internalGetMutableAnnotations().mergeFrom(
3059            other.internalGetAnnotations());
3060        if (!other.getKubeVersion().isEmpty()) {
3061          kubeVersion_ = other.kubeVersion_;
3062          onChanged();
3063        }
3064        this.mergeUnknownFields(other.unknownFields);
3065        onChanged();
3066        return this;
3067      }
3068
3069      public final boolean isInitialized() {
3070        return true;
3071      }
3072
3073      public Builder mergeFrom(
3074          com.google.protobuf.CodedInputStream input,
3075          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3076          throws java.io.IOException {
3077        hapi.chart.MetadataOuterClass.Metadata parsedMessage = null;
3078        try {
3079          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
3080        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3081          parsedMessage = (hapi.chart.MetadataOuterClass.Metadata) e.getUnfinishedMessage();
3082          throw e.unwrapIOException();
3083        } finally {
3084          if (parsedMessage != null) {
3085            mergeFrom(parsedMessage);
3086          }
3087        }
3088        return this;
3089      }
3090      private int bitField0_;
3091
3092      private java.lang.Object name_ = "";
3093      /**
3094       * <pre>
3095       * The name of the chart
3096       * </pre>
3097       *
3098       * <code>string name = 1;</code>
3099       */
3100      public java.lang.String getName() {
3101        java.lang.Object ref = name_;
3102        if (!(ref instanceof java.lang.String)) {
3103          com.google.protobuf.ByteString bs =
3104              (com.google.protobuf.ByteString) ref;
3105          java.lang.String s = bs.toStringUtf8();
3106          name_ = s;
3107          return s;
3108        } else {
3109          return (java.lang.String) ref;
3110        }
3111      }
3112      /**
3113       * <pre>
3114       * The name of the chart
3115       * </pre>
3116       *
3117       * <code>string name = 1;</code>
3118       */
3119      public com.google.protobuf.ByteString
3120          getNameBytes() {
3121        java.lang.Object ref = name_;
3122        if (ref instanceof String) {
3123          com.google.protobuf.ByteString b = 
3124              com.google.protobuf.ByteString.copyFromUtf8(
3125                  (java.lang.String) ref);
3126          name_ = b;
3127          return b;
3128        } else {
3129          return (com.google.protobuf.ByteString) ref;
3130        }
3131      }
3132      /**
3133       * <pre>
3134       * The name of the chart
3135       * </pre>
3136       *
3137       * <code>string name = 1;</code>
3138       */
3139      public Builder setName(
3140          java.lang.String value) {
3141        if (value == null) {
3142    throw new NullPointerException();
3143  }
3144  
3145        name_ = value;
3146        onChanged();
3147        return this;
3148      }
3149      /**
3150       * <pre>
3151       * The name of the chart
3152       * </pre>
3153       *
3154       * <code>string name = 1;</code>
3155       */
3156      public Builder clearName() {
3157        
3158        name_ = getDefaultInstance().getName();
3159        onChanged();
3160        return this;
3161      }
3162      /**
3163       * <pre>
3164       * The name of the chart
3165       * </pre>
3166       *
3167       * <code>string name = 1;</code>
3168       */
3169      public Builder setNameBytes(
3170          com.google.protobuf.ByteString value) {
3171        if (value == null) {
3172    throw new NullPointerException();
3173  }
3174  checkByteStringIsUtf8(value);
3175        
3176        name_ = value;
3177        onChanged();
3178        return this;
3179      }
3180
3181      private java.lang.Object home_ = "";
3182      /**
3183       * <pre>
3184       * The URL to a relevant project page, git repo, or contact person
3185       * </pre>
3186       *
3187       * <code>string home = 2;</code>
3188       */
3189      public java.lang.String getHome() {
3190        java.lang.Object ref = home_;
3191        if (!(ref instanceof java.lang.String)) {
3192          com.google.protobuf.ByteString bs =
3193              (com.google.protobuf.ByteString) ref;
3194          java.lang.String s = bs.toStringUtf8();
3195          home_ = s;
3196          return s;
3197        } else {
3198          return (java.lang.String) ref;
3199        }
3200      }
3201      /**
3202       * <pre>
3203       * The URL to a relevant project page, git repo, or contact person
3204       * </pre>
3205       *
3206       * <code>string home = 2;</code>
3207       */
3208      public com.google.protobuf.ByteString
3209          getHomeBytes() {
3210        java.lang.Object ref = home_;
3211        if (ref instanceof String) {
3212          com.google.protobuf.ByteString b = 
3213              com.google.protobuf.ByteString.copyFromUtf8(
3214                  (java.lang.String) ref);
3215          home_ = b;
3216          return b;
3217        } else {
3218          return (com.google.protobuf.ByteString) ref;
3219        }
3220      }
3221      /**
3222       * <pre>
3223       * The URL to a relevant project page, git repo, or contact person
3224       * </pre>
3225       *
3226       * <code>string home = 2;</code>
3227       */
3228      public Builder setHome(
3229          java.lang.String value) {
3230        if (value == null) {
3231    throw new NullPointerException();
3232  }
3233  
3234        home_ = value;
3235        onChanged();
3236        return this;
3237      }
3238      /**
3239       * <pre>
3240       * The URL to a relevant project page, git repo, or contact person
3241       * </pre>
3242       *
3243       * <code>string home = 2;</code>
3244       */
3245      public Builder clearHome() {
3246        
3247        home_ = getDefaultInstance().getHome();
3248        onChanged();
3249        return this;
3250      }
3251      /**
3252       * <pre>
3253       * The URL to a relevant project page, git repo, or contact person
3254       * </pre>
3255       *
3256       * <code>string home = 2;</code>
3257       */
3258      public Builder setHomeBytes(
3259          com.google.protobuf.ByteString value) {
3260        if (value == null) {
3261    throw new NullPointerException();
3262  }
3263  checkByteStringIsUtf8(value);
3264        
3265        home_ = value;
3266        onChanged();
3267        return this;
3268      }
3269
3270      private com.google.protobuf.LazyStringList sources_ = com.google.protobuf.LazyStringArrayList.EMPTY;
3271      private void ensureSourcesIsMutable() {
3272        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
3273          sources_ = new com.google.protobuf.LazyStringArrayList(sources_);
3274          bitField0_ |= 0x00000004;
3275         }
3276      }
3277      /**
3278       * <pre>
3279       * Source is the URL to the source code of this chart
3280       * </pre>
3281       *
3282       * <code>repeated string sources = 3;</code>
3283       */
3284      public com.google.protobuf.ProtocolStringList
3285          getSourcesList() {
3286        return sources_.getUnmodifiableView();
3287      }
3288      /**
3289       * <pre>
3290       * Source is the URL to the source code of this chart
3291       * </pre>
3292       *
3293       * <code>repeated string sources = 3;</code>
3294       */
3295      public int getSourcesCount() {
3296        return sources_.size();
3297      }
3298      /**
3299       * <pre>
3300       * Source is the URL to the source code of this chart
3301       * </pre>
3302       *
3303       * <code>repeated string sources = 3;</code>
3304       */
3305      public java.lang.String getSources(int index) {
3306        return sources_.get(index);
3307      }
3308      /**
3309       * <pre>
3310       * Source is the URL to the source code of this chart
3311       * </pre>
3312       *
3313       * <code>repeated string sources = 3;</code>
3314       */
3315      public com.google.protobuf.ByteString
3316          getSourcesBytes(int index) {
3317        return sources_.getByteString(index);
3318      }
3319      /**
3320       * <pre>
3321       * Source is the URL to the source code of this chart
3322       * </pre>
3323       *
3324       * <code>repeated string sources = 3;</code>
3325       */
3326      public Builder setSources(
3327          int index, java.lang.String value) {
3328        if (value == null) {
3329    throw new NullPointerException();
3330  }
3331  ensureSourcesIsMutable();
3332        sources_.set(index, value);
3333        onChanged();
3334        return this;
3335      }
3336      /**
3337       * <pre>
3338       * Source is the URL to the source code of this chart
3339       * </pre>
3340       *
3341       * <code>repeated string sources = 3;</code>
3342       */
3343      public Builder addSources(
3344          java.lang.String value) {
3345        if (value == null) {
3346    throw new NullPointerException();
3347  }
3348  ensureSourcesIsMutable();
3349        sources_.add(value);
3350        onChanged();
3351        return this;
3352      }
3353      /**
3354       * <pre>
3355       * Source is the URL to the source code of this chart
3356       * </pre>
3357       *
3358       * <code>repeated string sources = 3;</code>
3359       */
3360      public Builder addAllSources(
3361          java.lang.Iterable<java.lang.String> values) {
3362        ensureSourcesIsMutable();
3363        com.google.protobuf.AbstractMessageLite.Builder.addAll(
3364            values, sources_);
3365        onChanged();
3366        return this;
3367      }
3368      /**
3369       * <pre>
3370       * Source is the URL to the source code of this chart
3371       * </pre>
3372       *
3373       * <code>repeated string sources = 3;</code>
3374       */
3375      public Builder clearSources() {
3376        sources_ = com.google.protobuf.LazyStringArrayList.EMPTY;
3377        bitField0_ = (bitField0_ & ~0x00000004);
3378        onChanged();
3379        return this;
3380      }
3381      /**
3382       * <pre>
3383       * Source is the URL to the source code of this chart
3384       * </pre>
3385       *
3386       * <code>repeated string sources = 3;</code>
3387       */
3388      public Builder addSourcesBytes(
3389          com.google.protobuf.ByteString value) {
3390        if (value == null) {
3391    throw new NullPointerException();
3392  }
3393  checkByteStringIsUtf8(value);
3394        ensureSourcesIsMutable();
3395        sources_.add(value);
3396        onChanged();
3397        return this;
3398      }
3399
3400      private java.lang.Object version_ = "";
3401      /**
3402       * <pre>
3403       * A SemVer 2 conformant version string of the chart
3404       * </pre>
3405       *
3406       * <code>string version = 4;</code>
3407       */
3408      public java.lang.String getVersion() {
3409        java.lang.Object ref = version_;
3410        if (!(ref instanceof java.lang.String)) {
3411          com.google.protobuf.ByteString bs =
3412              (com.google.protobuf.ByteString) ref;
3413          java.lang.String s = bs.toStringUtf8();
3414          version_ = s;
3415          return s;
3416        } else {
3417          return (java.lang.String) ref;
3418        }
3419      }
3420      /**
3421       * <pre>
3422       * A SemVer 2 conformant version string of the chart
3423       * </pre>
3424       *
3425       * <code>string version = 4;</code>
3426       */
3427      public com.google.protobuf.ByteString
3428          getVersionBytes() {
3429        java.lang.Object ref = version_;
3430        if (ref instanceof String) {
3431          com.google.protobuf.ByteString b = 
3432              com.google.protobuf.ByteString.copyFromUtf8(
3433                  (java.lang.String) ref);
3434          version_ = b;
3435          return b;
3436        } else {
3437          return (com.google.protobuf.ByteString) ref;
3438        }
3439      }
3440      /**
3441       * <pre>
3442       * A SemVer 2 conformant version string of the chart
3443       * </pre>
3444       *
3445       * <code>string version = 4;</code>
3446       */
3447      public Builder setVersion(
3448          java.lang.String value) {
3449        if (value == null) {
3450    throw new NullPointerException();
3451  }
3452  
3453        version_ = value;
3454        onChanged();
3455        return this;
3456      }
3457      /**
3458       * <pre>
3459       * A SemVer 2 conformant version string of the chart
3460       * </pre>
3461       *
3462       * <code>string version = 4;</code>
3463       */
3464      public Builder clearVersion() {
3465        
3466        version_ = getDefaultInstance().getVersion();
3467        onChanged();
3468        return this;
3469      }
3470      /**
3471       * <pre>
3472       * A SemVer 2 conformant version string of the chart
3473       * </pre>
3474       *
3475       * <code>string version = 4;</code>
3476       */
3477      public Builder setVersionBytes(
3478          com.google.protobuf.ByteString value) {
3479        if (value == null) {
3480    throw new NullPointerException();
3481  }
3482  checkByteStringIsUtf8(value);
3483        
3484        version_ = value;
3485        onChanged();
3486        return this;
3487      }
3488
3489      private java.lang.Object description_ = "";
3490      /**
3491       * <pre>
3492       * A one-sentence description of the chart
3493       * </pre>
3494       *
3495       * <code>string description = 5;</code>
3496       */
3497      public java.lang.String getDescription() {
3498        java.lang.Object ref = description_;
3499        if (!(ref instanceof java.lang.String)) {
3500          com.google.protobuf.ByteString bs =
3501              (com.google.protobuf.ByteString) ref;
3502          java.lang.String s = bs.toStringUtf8();
3503          description_ = s;
3504          return s;
3505        } else {
3506          return (java.lang.String) ref;
3507        }
3508      }
3509      /**
3510       * <pre>
3511       * A one-sentence description of the chart
3512       * </pre>
3513       *
3514       * <code>string description = 5;</code>
3515       */
3516      public com.google.protobuf.ByteString
3517          getDescriptionBytes() {
3518        java.lang.Object ref = description_;
3519        if (ref instanceof String) {
3520          com.google.protobuf.ByteString b = 
3521              com.google.protobuf.ByteString.copyFromUtf8(
3522                  (java.lang.String) ref);
3523          description_ = b;
3524          return b;
3525        } else {
3526          return (com.google.protobuf.ByteString) ref;
3527        }
3528      }
3529      /**
3530       * <pre>
3531       * A one-sentence description of the chart
3532       * </pre>
3533       *
3534       * <code>string description = 5;</code>
3535       */
3536      public Builder setDescription(
3537          java.lang.String value) {
3538        if (value == null) {
3539    throw new NullPointerException();
3540  }
3541  
3542        description_ = value;
3543        onChanged();
3544        return this;
3545      }
3546      /**
3547       * <pre>
3548       * A one-sentence description of the chart
3549       * </pre>
3550       *
3551       * <code>string description = 5;</code>
3552       */
3553      public Builder clearDescription() {
3554        
3555        description_ = getDefaultInstance().getDescription();
3556        onChanged();
3557        return this;
3558      }
3559      /**
3560       * <pre>
3561       * A one-sentence description of the chart
3562       * </pre>
3563       *
3564       * <code>string description = 5;</code>
3565       */
3566      public Builder setDescriptionBytes(
3567          com.google.protobuf.ByteString value) {
3568        if (value == null) {
3569    throw new NullPointerException();
3570  }
3571  checkByteStringIsUtf8(value);
3572        
3573        description_ = value;
3574        onChanged();
3575        return this;
3576      }
3577
3578      private com.google.protobuf.LazyStringList keywords_ = com.google.protobuf.LazyStringArrayList.EMPTY;
3579      private void ensureKeywordsIsMutable() {
3580        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
3581          keywords_ = new com.google.protobuf.LazyStringArrayList(keywords_);
3582          bitField0_ |= 0x00000020;
3583         }
3584      }
3585      /**
3586       * <pre>
3587       * A list of string keywords
3588       * </pre>
3589       *
3590       * <code>repeated string keywords = 6;</code>
3591       */
3592      public com.google.protobuf.ProtocolStringList
3593          getKeywordsList() {
3594        return keywords_.getUnmodifiableView();
3595      }
3596      /**
3597       * <pre>
3598       * A list of string keywords
3599       * </pre>
3600       *
3601       * <code>repeated string keywords = 6;</code>
3602       */
3603      public int getKeywordsCount() {
3604        return keywords_.size();
3605      }
3606      /**
3607       * <pre>
3608       * A list of string keywords
3609       * </pre>
3610       *
3611       * <code>repeated string keywords = 6;</code>
3612       */
3613      public java.lang.String getKeywords(int index) {
3614        return keywords_.get(index);
3615      }
3616      /**
3617       * <pre>
3618       * A list of string keywords
3619       * </pre>
3620       *
3621       * <code>repeated string keywords = 6;</code>
3622       */
3623      public com.google.protobuf.ByteString
3624          getKeywordsBytes(int index) {
3625        return keywords_.getByteString(index);
3626      }
3627      /**
3628       * <pre>
3629       * A list of string keywords
3630       * </pre>
3631       *
3632       * <code>repeated string keywords = 6;</code>
3633       */
3634      public Builder setKeywords(
3635          int index, java.lang.String value) {
3636        if (value == null) {
3637    throw new NullPointerException();
3638  }
3639  ensureKeywordsIsMutable();
3640        keywords_.set(index, value);
3641        onChanged();
3642        return this;
3643      }
3644      /**
3645       * <pre>
3646       * A list of string keywords
3647       * </pre>
3648       *
3649       * <code>repeated string keywords = 6;</code>
3650       */
3651      public Builder addKeywords(
3652          java.lang.String value) {
3653        if (value == null) {
3654    throw new NullPointerException();
3655  }
3656  ensureKeywordsIsMutable();
3657        keywords_.add(value);
3658        onChanged();
3659        return this;
3660      }
3661      /**
3662       * <pre>
3663       * A list of string keywords
3664       * </pre>
3665       *
3666       * <code>repeated string keywords = 6;</code>
3667       */
3668      public Builder addAllKeywords(
3669          java.lang.Iterable<java.lang.String> values) {
3670        ensureKeywordsIsMutable();
3671        com.google.protobuf.AbstractMessageLite.Builder.addAll(
3672            values, keywords_);
3673        onChanged();
3674        return this;
3675      }
3676      /**
3677       * <pre>
3678       * A list of string keywords
3679       * </pre>
3680       *
3681       * <code>repeated string keywords = 6;</code>
3682       */
3683      public Builder clearKeywords() {
3684        keywords_ = com.google.protobuf.LazyStringArrayList.EMPTY;
3685        bitField0_ = (bitField0_ & ~0x00000020);
3686        onChanged();
3687        return this;
3688      }
3689      /**
3690       * <pre>
3691       * A list of string keywords
3692       * </pre>
3693       *
3694       * <code>repeated string keywords = 6;</code>
3695       */
3696      public Builder addKeywordsBytes(
3697          com.google.protobuf.ByteString value) {
3698        if (value == null) {
3699    throw new NullPointerException();
3700  }
3701  checkByteStringIsUtf8(value);
3702        ensureKeywordsIsMutable();
3703        keywords_.add(value);
3704        onChanged();
3705        return this;
3706      }
3707
3708      private java.util.List<hapi.chart.MetadataOuterClass.Maintainer> maintainers_ =
3709        java.util.Collections.emptyList();
3710      private void ensureMaintainersIsMutable() {
3711        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
3712          maintainers_ = new java.util.ArrayList<hapi.chart.MetadataOuterClass.Maintainer>(maintainers_);
3713          bitField0_ |= 0x00000040;
3714         }
3715      }
3716
3717      private com.google.protobuf.RepeatedFieldBuilderV3<
3718          hapi.chart.MetadataOuterClass.Maintainer, hapi.chart.MetadataOuterClass.Maintainer.Builder, hapi.chart.MetadataOuterClass.MaintainerOrBuilder> maintainersBuilder_;
3719
3720      /**
3721       * <pre>
3722       * A list of name and URL/email address combinations for the maintainer(s)
3723       * </pre>
3724       *
3725       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3726       */
3727      public java.util.List<hapi.chart.MetadataOuterClass.Maintainer> getMaintainersList() {
3728        if (maintainersBuilder_ == null) {
3729          return java.util.Collections.unmodifiableList(maintainers_);
3730        } else {
3731          return maintainersBuilder_.getMessageList();
3732        }
3733      }
3734      /**
3735       * <pre>
3736       * A list of name and URL/email address combinations for the maintainer(s)
3737       * </pre>
3738       *
3739       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3740       */
3741      public int getMaintainersCount() {
3742        if (maintainersBuilder_ == null) {
3743          return maintainers_.size();
3744        } else {
3745          return maintainersBuilder_.getCount();
3746        }
3747      }
3748      /**
3749       * <pre>
3750       * A list of name and URL/email address combinations for the maintainer(s)
3751       * </pre>
3752       *
3753       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3754       */
3755      public hapi.chart.MetadataOuterClass.Maintainer getMaintainers(int index) {
3756        if (maintainersBuilder_ == null) {
3757          return maintainers_.get(index);
3758        } else {
3759          return maintainersBuilder_.getMessage(index);
3760        }
3761      }
3762      /**
3763       * <pre>
3764       * A list of name and URL/email address combinations for the maintainer(s)
3765       * </pre>
3766       *
3767       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3768       */
3769      public Builder setMaintainers(
3770          int index, hapi.chart.MetadataOuterClass.Maintainer value) {
3771        if (maintainersBuilder_ == null) {
3772          if (value == null) {
3773            throw new NullPointerException();
3774          }
3775          ensureMaintainersIsMutable();
3776          maintainers_.set(index, value);
3777          onChanged();
3778        } else {
3779          maintainersBuilder_.setMessage(index, value);
3780        }
3781        return this;
3782      }
3783      /**
3784       * <pre>
3785       * A list of name and URL/email address combinations for the maintainer(s)
3786       * </pre>
3787       *
3788       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3789       */
3790      public Builder setMaintainers(
3791          int index, hapi.chart.MetadataOuterClass.Maintainer.Builder builderForValue) {
3792        if (maintainersBuilder_ == null) {
3793          ensureMaintainersIsMutable();
3794          maintainers_.set(index, builderForValue.build());
3795          onChanged();
3796        } else {
3797          maintainersBuilder_.setMessage(index, builderForValue.build());
3798        }
3799        return this;
3800      }
3801      /**
3802       * <pre>
3803       * A list of name and URL/email address combinations for the maintainer(s)
3804       * </pre>
3805       *
3806       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3807       */
3808      public Builder addMaintainers(hapi.chart.MetadataOuterClass.Maintainer value) {
3809        if (maintainersBuilder_ == null) {
3810          if (value == null) {
3811            throw new NullPointerException();
3812          }
3813          ensureMaintainersIsMutable();
3814          maintainers_.add(value);
3815          onChanged();
3816        } else {
3817          maintainersBuilder_.addMessage(value);
3818        }
3819        return this;
3820      }
3821      /**
3822       * <pre>
3823       * A list of name and URL/email address combinations for the maintainer(s)
3824       * </pre>
3825       *
3826       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3827       */
3828      public Builder addMaintainers(
3829          int index, hapi.chart.MetadataOuterClass.Maintainer value) {
3830        if (maintainersBuilder_ == null) {
3831          if (value == null) {
3832            throw new NullPointerException();
3833          }
3834          ensureMaintainersIsMutable();
3835          maintainers_.add(index, value);
3836          onChanged();
3837        } else {
3838          maintainersBuilder_.addMessage(index, value);
3839        }
3840        return this;
3841      }
3842      /**
3843       * <pre>
3844       * A list of name and URL/email address combinations for the maintainer(s)
3845       * </pre>
3846       *
3847       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3848       */
3849      public Builder addMaintainers(
3850          hapi.chart.MetadataOuterClass.Maintainer.Builder builderForValue) {
3851        if (maintainersBuilder_ == null) {
3852          ensureMaintainersIsMutable();
3853          maintainers_.add(builderForValue.build());
3854          onChanged();
3855        } else {
3856          maintainersBuilder_.addMessage(builderForValue.build());
3857        }
3858        return this;
3859      }
3860      /**
3861       * <pre>
3862       * A list of name and URL/email address combinations for the maintainer(s)
3863       * </pre>
3864       *
3865       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3866       */
3867      public Builder addMaintainers(
3868          int index, hapi.chart.MetadataOuterClass.Maintainer.Builder builderForValue) {
3869        if (maintainersBuilder_ == null) {
3870          ensureMaintainersIsMutable();
3871          maintainers_.add(index, builderForValue.build());
3872          onChanged();
3873        } else {
3874          maintainersBuilder_.addMessage(index, builderForValue.build());
3875        }
3876        return this;
3877      }
3878      /**
3879       * <pre>
3880       * A list of name and URL/email address combinations for the maintainer(s)
3881       * </pre>
3882       *
3883       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3884       */
3885      public Builder addAllMaintainers(
3886          java.lang.Iterable<? extends hapi.chart.MetadataOuterClass.Maintainer> values) {
3887        if (maintainersBuilder_ == null) {
3888          ensureMaintainersIsMutable();
3889          com.google.protobuf.AbstractMessageLite.Builder.addAll(
3890              values, maintainers_);
3891          onChanged();
3892        } else {
3893          maintainersBuilder_.addAllMessages(values);
3894        }
3895        return this;
3896      }
3897      /**
3898       * <pre>
3899       * A list of name and URL/email address combinations for the maintainer(s)
3900       * </pre>
3901       *
3902       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3903       */
3904      public Builder clearMaintainers() {
3905        if (maintainersBuilder_ == null) {
3906          maintainers_ = java.util.Collections.emptyList();
3907          bitField0_ = (bitField0_ & ~0x00000040);
3908          onChanged();
3909        } else {
3910          maintainersBuilder_.clear();
3911        }
3912        return this;
3913      }
3914      /**
3915       * <pre>
3916       * A list of name and URL/email address combinations for the maintainer(s)
3917       * </pre>
3918       *
3919       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3920       */
3921      public Builder removeMaintainers(int index) {
3922        if (maintainersBuilder_ == null) {
3923          ensureMaintainersIsMutable();
3924          maintainers_.remove(index);
3925          onChanged();
3926        } else {
3927          maintainersBuilder_.remove(index);
3928        }
3929        return this;
3930      }
3931      /**
3932       * <pre>
3933       * A list of name and URL/email address combinations for the maintainer(s)
3934       * </pre>
3935       *
3936       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3937       */
3938      public hapi.chart.MetadataOuterClass.Maintainer.Builder getMaintainersBuilder(
3939          int index) {
3940        return getMaintainersFieldBuilder().getBuilder(index);
3941      }
3942      /**
3943       * <pre>
3944       * A list of name and URL/email address combinations for the maintainer(s)
3945       * </pre>
3946       *
3947       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3948       */
3949      public hapi.chart.MetadataOuterClass.MaintainerOrBuilder getMaintainersOrBuilder(
3950          int index) {
3951        if (maintainersBuilder_ == null) {
3952          return maintainers_.get(index);  } else {
3953          return maintainersBuilder_.getMessageOrBuilder(index);
3954        }
3955      }
3956      /**
3957       * <pre>
3958       * A list of name and URL/email address combinations for the maintainer(s)
3959       * </pre>
3960       *
3961       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3962       */
3963      public java.util.List<? extends hapi.chart.MetadataOuterClass.MaintainerOrBuilder> 
3964           getMaintainersOrBuilderList() {
3965        if (maintainersBuilder_ != null) {
3966          return maintainersBuilder_.getMessageOrBuilderList();
3967        } else {
3968          return java.util.Collections.unmodifiableList(maintainers_);
3969        }
3970      }
3971      /**
3972       * <pre>
3973       * A list of name and URL/email address combinations for the maintainer(s)
3974       * </pre>
3975       *
3976       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3977       */
3978      public hapi.chart.MetadataOuterClass.Maintainer.Builder addMaintainersBuilder() {
3979        return getMaintainersFieldBuilder().addBuilder(
3980            hapi.chart.MetadataOuterClass.Maintainer.getDefaultInstance());
3981      }
3982      /**
3983       * <pre>
3984       * A list of name and URL/email address combinations for the maintainer(s)
3985       * </pre>
3986       *
3987       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
3988       */
3989      public hapi.chart.MetadataOuterClass.Maintainer.Builder addMaintainersBuilder(
3990          int index) {
3991        return getMaintainersFieldBuilder().addBuilder(
3992            index, hapi.chart.MetadataOuterClass.Maintainer.getDefaultInstance());
3993      }
3994      /**
3995       * <pre>
3996       * A list of name and URL/email address combinations for the maintainer(s)
3997       * </pre>
3998       *
3999       * <code>repeated .hapi.chart.Maintainer maintainers = 7;</code>
4000       */
4001      public java.util.List<hapi.chart.MetadataOuterClass.Maintainer.Builder> 
4002           getMaintainersBuilderList() {
4003        return getMaintainersFieldBuilder().getBuilderList();
4004      }
4005      private com.google.protobuf.RepeatedFieldBuilderV3<
4006          hapi.chart.MetadataOuterClass.Maintainer, hapi.chart.MetadataOuterClass.Maintainer.Builder, hapi.chart.MetadataOuterClass.MaintainerOrBuilder> 
4007          getMaintainersFieldBuilder() {
4008        if (maintainersBuilder_ == null) {
4009          maintainersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
4010              hapi.chart.MetadataOuterClass.Maintainer, hapi.chart.MetadataOuterClass.Maintainer.Builder, hapi.chart.MetadataOuterClass.MaintainerOrBuilder>(
4011                  maintainers_,
4012                  ((bitField0_ & 0x00000040) == 0x00000040),
4013                  getParentForChildren(),
4014                  isClean());
4015          maintainers_ = null;
4016        }
4017        return maintainersBuilder_;
4018      }
4019
4020      private java.lang.Object engine_ = "";
4021      /**
4022       * <pre>
4023       * The name of the template engine to use. Defaults to 'gotpl'.
4024       * </pre>
4025       *
4026       * <code>string engine = 8;</code>
4027       */
4028      public java.lang.String getEngine() {
4029        java.lang.Object ref = engine_;
4030        if (!(ref instanceof java.lang.String)) {
4031          com.google.protobuf.ByteString bs =
4032              (com.google.protobuf.ByteString) ref;
4033          java.lang.String s = bs.toStringUtf8();
4034          engine_ = s;
4035          return s;
4036        } else {
4037          return (java.lang.String) ref;
4038        }
4039      }
4040      /**
4041       * <pre>
4042       * The name of the template engine to use. Defaults to 'gotpl'.
4043       * </pre>
4044       *
4045       * <code>string engine = 8;</code>
4046       */
4047      public com.google.protobuf.ByteString
4048          getEngineBytes() {
4049        java.lang.Object ref = engine_;
4050        if (ref instanceof String) {
4051          com.google.protobuf.ByteString b = 
4052              com.google.protobuf.ByteString.copyFromUtf8(
4053                  (java.lang.String) ref);
4054          engine_ = b;
4055          return b;
4056        } else {
4057          return (com.google.protobuf.ByteString) ref;
4058        }
4059      }
4060      /**
4061       * <pre>
4062       * The name of the template engine to use. Defaults to 'gotpl'.
4063       * </pre>
4064       *
4065       * <code>string engine = 8;</code>
4066       */
4067      public Builder setEngine(
4068          java.lang.String value) {
4069        if (value == null) {
4070    throw new NullPointerException();
4071  }
4072  
4073        engine_ = value;
4074        onChanged();
4075        return this;
4076      }
4077      /**
4078       * <pre>
4079       * The name of the template engine to use. Defaults to 'gotpl'.
4080       * </pre>
4081       *
4082       * <code>string engine = 8;</code>
4083       */
4084      public Builder clearEngine() {
4085        
4086        engine_ = getDefaultInstance().getEngine();
4087        onChanged();
4088        return this;
4089      }
4090      /**
4091       * <pre>
4092       * The name of the template engine to use. Defaults to 'gotpl'.
4093       * </pre>
4094       *
4095       * <code>string engine = 8;</code>
4096       */
4097      public Builder setEngineBytes(
4098          com.google.protobuf.ByteString value) {
4099        if (value == null) {
4100    throw new NullPointerException();
4101  }
4102  checkByteStringIsUtf8(value);
4103        
4104        engine_ = value;
4105        onChanged();
4106        return this;
4107      }
4108
4109      private java.lang.Object icon_ = "";
4110      /**
4111       * <pre>
4112       * The URL to an icon file.
4113       * </pre>
4114       *
4115       * <code>string icon = 9;</code>
4116       */
4117      public java.lang.String getIcon() {
4118        java.lang.Object ref = icon_;
4119        if (!(ref instanceof java.lang.String)) {
4120          com.google.protobuf.ByteString bs =
4121              (com.google.protobuf.ByteString) ref;
4122          java.lang.String s = bs.toStringUtf8();
4123          icon_ = s;
4124          return s;
4125        } else {
4126          return (java.lang.String) ref;
4127        }
4128      }
4129      /**
4130       * <pre>
4131       * The URL to an icon file.
4132       * </pre>
4133       *
4134       * <code>string icon = 9;</code>
4135       */
4136      public com.google.protobuf.ByteString
4137          getIconBytes() {
4138        java.lang.Object ref = icon_;
4139        if (ref instanceof String) {
4140          com.google.protobuf.ByteString b = 
4141              com.google.protobuf.ByteString.copyFromUtf8(
4142                  (java.lang.String) ref);
4143          icon_ = b;
4144          return b;
4145        } else {
4146          return (com.google.protobuf.ByteString) ref;
4147        }
4148      }
4149      /**
4150       * <pre>
4151       * The URL to an icon file.
4152       * </pre>
4153       *
4154       * <code>string icon = 9;</code>
4155       */
4156      public Builder setIcon(
4157          java.lang.String value) {
4158        if (value == null) {
4159    throw new NullPointerException();
4160  }
4161  
4162        icon_ = value;
4163        onChanged();
4164        return this;
4165      }
4166      /**
4167       * <pre>
4168       * The URL to an icon file.
4169       * </pre>
4170       *
4171       * <code>string icon = 9;</code>
4172       */
4173      public Builder clearIcon() {
4174        
4175        icon_ = getDefaultInstance().getIcon();
4176        onChanged();
4177        return this;
4178      }
4179      /**
4180       * <pre>
4181       * The URL to an icon file.
4182       * </pre>
4183       *
4184       * <code>string icon = 9;</code>
4185       */
4186      public Builder setIconBytes(
4187          com.google.protobuf.ByteString value) {
4188        if (value == null) {
4189    throw new NullPointerException();
4190  }
4191  checkByteStringIsUtf8(value);
4192        
4193        icon_ = value;
4194        onChanged();
4195        return this;
4196      }
4197
4198      private java.lang.Object apiVersion_ = "";
4199      /**
4200       * <pre>
4201       * The API Version of this chart.
4202       * </pre>
4203       *
4204       * <code>string apiVersion = 10;</code>
4205       */
4206      public java.lang.String getApiVersion() {
4207        java.lang.Object ref = apiVersion_;
4208        if (!(ref instanceof java.lang.String)) {
4209          com.google.protobuf.ByteString bs =
4210              (com.google.protobuf.ByteString) ref;
4211          java.lang.String s = bs.toStringUtf8();
4212          apiVersion_ = s;
4213          return s;
4214        } else {
4215          return (java.lang.String) ref;
4216        }
4217      }
4218      /**
4219       * <pre>
4220       * The API Version of this chart.
4221       * </pre>
4222       *
4223       * <code>string apiVersion = 10;</code>
4224       */
4225      public com.google.protobuf.ByteString
4226          getApiVersionBytes() {
4227        java.lang.Object ref = apiVersion_;
4228        if (ref instanceof String) {
4229          com.google.protobuf.ByteString b = 
4230              com.google.protobuf.ByteString.copyFromUtf8(
4231                  (java.lang.String) ref);
4232          apiVersion_ = b;
4233          return b;
4234        } else {
4235          return (com.google.protobuf.ByteString) ref;
4236        }
4237      }
4238      /**
4239       * <pre>
4240       * The API Version of this chart.
4241       * </pre>
4242       *
4243       * <code>string apiVersion = 10;</code>
4244       */
4245      public Builder setApiVersion(
4246          java.lang.String value) {
4247        if (value == null) {
4248    throw new NullPointerException();
4249  }
4250  
4251        apiVersion_ = value;
4252        onChanged();
4253        return this;
4254      }
4255      /**
4256       * <pre>
4257       * The API Version of this chart.
4258       * </pre>
4259       *
4260       * <code>string apiVersion = 10;</code>
4261       */
4262      public Builder clearApiVersion() {
4263        
4264        apiVersion_ = getDefaultInstance().getApiVersion();
4265        onChanged();
4266        return this;
4267      }
4268      /**
4269       * <pre>
4270       * The API Version of this chart.
4271       * </pre>
4272       *
4273       * <code>string apiVersion = 10;</code>
4274       */
4275      public Builder setApiVersionBytes(
4276          com.google.protobuf.ByteString value) {
4277        if (value == null) {
4278    throw new NullPointerException();
4279  }
4280  checkByteStringIsUtf8(value);
4281        
4282        apiVersion_ = value;
4283        onChanged();
4284        return this;
4285      }
4286
4287      private java.lang.Object condition_ = "";
4288      /**
4289       * <pre>
4290       * The condition to check to enable chart
4291       * </pre>
4292       *
4293       * <code>string condition = 11;</code>
4294       */
4295      public java.lang.String getCondition() {
4296        java.lang.Object ref = condition_;
4297        if (!(ref instanceof java.lang.String)) {
4298          com.google.protobuf.ByteString bs =
4299              (com.google.protobuf.ByteString) ref;
4300          java.lang.String s = bs.toStringUtf8();
4301          condition_ = s;
4302          return s;
4303        } else {
4304          return (java.lang.String) ref;
4305        }
4306      }
4307      /**
4308       * <pre>
4309       * The condition to check to enable chart
4310       * </pre>
4311       *
4312       * <code>string condition = 11;</code>
4313       */
4314      public com.google.protobuf.ByteString
4315          getConditionBytes() {
4316        java.lang.Object ref = condition_;
4317        if (ref instanceof String) {
4318          com.google.protobuf.ByteString b = 
4319              com.google.protobuf.ByteString.copyFromUtf8(
4320                  (java.lang.String) ref);
4321          condition_ = b;
4322          return b;
4323        } else {
4324          return (com.google.protobuf.ByteString) ref;
4325        }
4326      }
4327      /**
4328       * <pre>
4329       * The condition to check to enable chart
4330       * </pre>
4331       *
4332       * <code>string condition = 11;</code>
4333       */
4334      public Builder setCondition(
4335          java.lang.String value) {
4336        if (value == null) {
4337    throw new NullPointerException();
4338  }
4339  
4340        condition_ = value;
4341        onChanged();
4342        return this;
4343      }
4344      /**
4345       * <pre>
4346       * The condition to check to enable chart
4347       * </pre>
4348       *
4349       * <code>string condition = 11;</code>
4350       */
4351      public Builder clearCondition() {
4352        
4353        condition_ = getDefaultInstance().getCondition();
4354        onChanged();
4355        return this;
4356      }
4357      /**
4358       * <pre>
4359       * The condition to check to enable chart
4360       * </pre>
4361       *
4362       * <code>string condition = 11;</code>
4363       */
4364      public Builder setConditionBytes(
4365          com.google.protobuf.ByteString value) {
4366        if (value == null) {
4367    throw new NullPointerException();
4368  }
4369  checkByteStringIsUtf8(value);
4370        
4371        condition_ = value;
4372        onChanged();
4373        return this;
4374      }
4375
4376      private java.lang.Object tags_ = "";
4377      /**
4378       * <pre>
4379       * The tags to check to enable chart
4380       * </pre>
4381       *
4382       * <code>string tags = 12;</code>
4383       */
4384      public java.lang.String getTags() {
4385        java.lang.Object ref = tags_;
4386        if (!(ref instanceof java.lang.String)) {
4387          com.google.protobuf.ByteString bs =
4388              (com.google.protobuf.ByteString) ref;
4389          java.lang.String s = bs.toStringUtf8();
4390          tags_ = s;
4391          return s;
4392        } else {
4393          return (java.lang.String) ref;
4394        }
4395      }
4396      /**
4397       * <pre>
4398       * The tags to check to enable chart
4399       * </pre>
4400       *
4401       * <code>string tags = 12;</code>
4402       */
4403      public com.google.protobuf.ByteString
4404          getTagsBytes() {
4405        java.lang.Object ref = tags_;
4406        if (ref instanceof String) {
4407          com.google.protobuf.ByteString b = 
4408              com.google.protobuf.ByteString.copyFromUtf8(
4409                  (java.lang.String) ref);
4410          tags_ = b;
4411          return b;
4412        } else {
4413          return (com.google.protobuf.ByteString) ref;
4414        }
4415      }
4416      /**
4417       * <pre>
4418       * The tags to check to enable chart
4419       * </pre>
4420       *
4421       * <code>string tags = 12;</code>
4422       */
4423      public Builder setTags(
4424          java.lang.String value) {
4425        if (value == null) {
4426    throw new NullPointerException();
4427  }
4428  
4429        tags_ = value;
4430        onChanged();
4431        return this;
4432      }
4433      /**
4434       * <pre>
4435       * The tags to check to enable chart
4436       * </pre>
4437       *
4438       * <code>string tags = 12;</code>
4439       */
4440      public Builder clearTags() {
4441        
4442        tags_ = getDefaultInstance().getTags();
4443        onChanged();
4444        return this;
4445      }
4446      /**
4447       * <pre>
4448       * The tags to check to enable chart
4449       * </pre>
4450       *
4451       * <code>string tags = 12;</code>
4452       */
4453      public Builder setTagsBytes(
4454          com.google.protobuf.ByteString value) {
4455        if (value == null) {
4456    throw new NullPointerException();
4457  }
4458  checkByteStringIsUtf8(value);
4459        
4460        tags_ = value;
4461        onChanged();
4462        return this;
4463      }
4464
4465      private java.lang.Object appVersion_ = "";
4466      /**
4467       * <pre>
4468       * The version of the application enclosed inside of this chart.
4469       * </pre>
4470       *
4471       * <code>string appVersion = 13;</code>
4472       */
4473      public java.lang.String getAppVersion() {
4474        java.lang.Object ref = appVersion_;
4475        if (!(ref instanceof java.lang.String)) {
4476          com.google.protobuf.ByteString bs =
4477              (com.google.protobuf.ByteString) ref;
4478          java.lang.String s = bs.toStringUtf8();
4479          appVersion_ = s;
4480          return s;
4481        } else {
4482          return (java.lang.String) ref;
4483        }
4484      }
4485      /**
4486       * <pre>
4487       * The version of the application enclosed inside of this chart.
4488       * </pre>
4489       *
4490       * <code>string appVersion = 13;</code>
4491       */
4492      public com.google.protobuf.ByteString
4493          getAppVersionBytes() {
4494        java.lang.Object ref = appVersion_;
4495        if (ref instanceof String) {
4496          com.google.protobuf.ByteString b = 
4497              com.google.protobuf.ByteString.copyFromUtf8(
4498                  (java.lang.String) ref);
4499          appVersion_ = b;
4500          return b;
4501        } else {
4502          return (com.google.protobuf.ByteString) ref;
4503        }
4504      }
4505      /**
4506       * <pre>
4507       * The version of the application enclosed inside of this chart.
4508       * </pre>
4509       *
4510       * <code>string appVersion = 13;</code>
4511       */
4512      public Builder setAppVersion(
4513          java.lang.String value) {
4514        if (value == null) {
4515    throw new NullPointerException();
4516  }
4517  
4518        appVersion_ = value;
4519        onChanged();
4520        return this;
4521      }
4522      /**
4523       * <pre>
4524       * The version of the application enclosed inside of this chart.
4525       * </pre>
4526       *
4527       * <code>string appVersion = 13;</code>
4528       */
4529      public Builder clearAppVersion() {
4530        
4531        appVersion_ = getDefaultInstance().getAppVersion();
4532        onChanged();
4533        return this;
4534      }
4535      /**
4536       * <pre>
4537       * The version of the application enclosed inside of this chart.
4538       * </pre>
4539       *
4540       * <code>string appVersion = 13;</code>
4541       */
4542      public Builder setAppVersionBytes(
4543          com.google.protobuf.ByteString value) {
4544        if (value == null) {
4545    throw new NullPointerException();
4546  }
4547  checkByteStringIsUtf8(value);
4548        
4549        appVersion_ = value;
4550        onChanged();
4551        return this;
4552      }
4553
4554      private boolean deprecated_ ;
4555      /**
4556       * <pre>
4557       * Whether or not this chart is deprecated
4558       * </pre>
4559       *
4560       * <code>bool deprecated = 14;</code>
4561       */
4562      public boolean getDeprecated() {
4563        return deprecated_;
4564      }
4565      /**
4566       * <pre>
4567       * Whether or not this chart is deprecated
4568       * </pre>
4569       *
4570       * <code>bool deprecated = 14;</code>
4571       */
4572      public Builder setDeprecated(boolean value) {
4573        
4574        deprecated_ = value;
4575        onChanged();
4576        return this;
4577      }
4578      /**
4579       * <pre>
4580       * Whether or not this chart is deprecated
4581       * </pre>
4582       *
4583       * <code>bool deprecated = 14;</code>
4584       */
4585      public Builder clearDeprecated() {
4586        
4587        deprecated_ = false;
4588        onChanged();
4589        return this;
4590      }
4591
4592      private java.lang.Object tillerVersion_ = "";
4593      /**
4594       * <pre>
4595       * TillerVersion is a SemVer constraints on what version of Tiller is required.
4596       * See SemVer ranges here: https://github.com/Masterminds/semver#basic-comparisons
4597       * </pre>
4598       *
4599       * <code>string tillerVersion = 15;</code>
4600       */
4601      public java.lang.String getTillerVersion() {
4602        java.lang.Object ref = tillerVersion_;
4603        if (!(ref instanceof java.lang.String)) {
4604          com.google.protobuf.ByteString bs =
4605              (com.google.protobuf.ByteString) ref;
4606          java.lang.String s = bs.toStringUtf8();
4607          tillerVersion_ = s;
4608          return s;
4609        } else {
4610          return (java.lang.String) ref;
4611        }
4612      }
4613      /**
4614       * <pre>
4615       * TillerVersion is a SemVer constraints on what version of Tiller is required.
4616       * See SemVer ranges here: https://github.com/Masterminds/semver#basic-comparisons
4617       * </pre>
4618       *
4619       * <code>string tillerVersion = 15;</code>
4620       */
4621      public com.google.protobuf.ByteString
4622          getTillerVersionBytes() {
4623        java.lang.Object ref = tillerVersion_;
4624        if (ref instanceof String) {
4625          com.google.protobuf.ByteString b = 
4626              com.google.protobuf.ByteString.copyFromUtf8(
4627                  (java.lang.String) ref);
4628          tillerVersion_ = b;
4629          return b;
4630        } else {
4631          return (com.google.protobuf.ByteString) ref;
4632        }
4633      }
4634      /**
4635       * <pre>
4636       * TillerVersion is a SemVer constraints on what version of Tiller is required.
4637       * See SemVer ranges here: https://github.com/Masterminds/semver#basic-comparisons
4638       * </pre>
4639       *
4640       * <code>string tillerVersion = 15;</code>
4641       */
4642      public Builder setTillerVersion(
4643          java.lang.String value) {
4644        if (value == null) {
4645    throw new NullPointerException();
4646  }
4647  
4648        tillerVersion_ = value;
4649        onChanged();
4650        return this;
4651      }
4652      /**
4653       * <pre>
4654       * TillerVersion is a SemVer constraints on what version of Tiller is required.
4655       * See SemVer ranges here: https://github.com/Masterminds/semver#basic-comparisons
4656       * </pre>
4657       *
4658       * <code>string tillerVersion = 15;</code>
4659       */
4660      public Builder clearTillerVersion() {
4661        
4662        tillerVersion_ = getDefaultInstance().getTillerVersion();
4663        onChanged();
4664        return this;
4665      }
4666      /**
4667       * <pre>
4668       * TillerVersion is a SemVer constraints on what version of Tiller is required.
4669       * See SemVer ranges here: https://github.com/Masterminds/semver#basic-comparisons
4670       * </pre>
4671       *
4672       * <code>string tillerVersion = 15;</code>
4673       */
4674      public Builder setTillerVersionBytes(
4675          com.google.protobuf.ByteString value) {
4676        if (value == null) {
4677    throw new NullPointerException();
4678  }
4679  checkByteStringIsUtf8(value);
4680        
4681        tillerVersion_ = value;
4682        onChanged();
4683        return this;
4684      }
4685
4686      private com.google.protobuf.MapField<
4687          java.lang.String, java.lang.String> annotations_;
4688      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
4689      internalGetAnnotations() {
4690        if (annotations_ == null) {
4691          return com.google.protobuf.MapField.emptyMapField(
4692              AnnotationsDefaultEntryHolder.defaultEntry);
4693        }
4694        return annotations_;
4695      }
4696      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
4697      internalGetMutableAnnotations() {
4698        onChanged();;
4699        if (annotations_ == null) {
4700          annotations_ = com.google.protobuf.MapField.newMapField(
4701              AnnotationsDefaultEntryHolder.defaultEntry);
4702        }
4703        if (!annotations_.isMutable()) {
4704          annotations_ = annotations_.copy();
4705        }
4706        return annotations_;
4707      }
4708
4709      public int getAnnotationsCount() {
4710        return internalGetAnnotations().getMap().size();
4711      }
4712      /**
4713       * <pre>
4714       * Annotations are additional mappings uninterpreted by Tiller,
4715       * made available for inspection by other applications.
4716       * </pre>
4717       *
4718       * <code>map&lt;string, string&gt; annotations = 16;</code>
4719       */
4720
4721      public boolean containsAnnotations(
4722          java.lang.String key) {
4723        if (key == null) { throw new java.lang.NullPointerException(); }
4724        return internalGetAnnotations().getMap().containsKey(key);
4725      }
4726      /**
4727       * Use {@link #getAnnotationsMap()} instead.
4728       */
4729      @java.lang.Deprecated
4730      public java.util.Map<java.lang.String, java.lang.String> getAnnotations() {
4731        return getAnnotationsMap();
4732      }
4733      /**
4734       * <pre>
4735       * Annotations are additional mappings uninterpreted by Tiller,
4736       * made available for inspection by other applications.
4737       * </pre>
4738       *
4739       * <code>map&lt;string, string&gt; annotations = 16;</code>
4740       */
4741
4742      public java.util.Map<java.lang.String, java.lang.String> getAnnotationsMap() {
4743        return internalGetAnnotations().getMap();
4744      }
4745      /**
4746       * <pre>
4747       * Annotations are additional mappings uninterpreted by Tiller,
4748       * made available for inspection by other applications.
4749       * </pre>
4750       *
4751       * <code>map&lt;string, string&gt; annotations = 16;</code>
4752       */
4753
4754      public java.lang.String getAnnotationsOrDefault(
4755          java.lang.String key,
4756          java.lang.String defaultValue) {
4757        if (key == null) { throw new java.lang.NullPointerException(); }
4758        java.util.Map<java.lang.String, java.lang.String> map =
4759            internalGetAnnotations().getMap();
4760        return map.containsKey(key) ? map.get(key) : defaultValue;
4761      }
4762      /**
4763       * <pre>
4764       * Annotations are additional mappings uninterpreted by Tiller,
4765       * made available for inspection by other applications.
4766       * </pre>
4767       *
4768       * <code>map&lt;string, string&gt; annotations = 16;</code>
4769       */
4770
4771      public java.lang.String getAnnotationsOrThrow(
4772          java.lang.String key) {
4773        if (key == null) { throw new java.lang.NullPointerException(); }
4774        java.util.Map<java.lang.String, java.lang.String> map =
4775            internalGetAnnotations().getMap();
4776        if (!map.containsKey(key)) {
4777          throw new java.lang.IllegalArgumentException();
4778        }
4779        return map.get(key);
4780      }
4781
4782      public Builder clearAnnotations() {
4783        internalGetMutableAnnotations().getMutableMap()
4784            .clear();
4785        return this;
4786      }
4787      /**
4788       * <pre>
4789       * Annotations are additional mappings uninterpreted by Tiller,
4790       * made available for inspection by other applications.
4791       * </pre>
4792       *
4793       * <code>map&lt;string, string&gt; annotations = 16;</code>
4794       */
4795
4796      public Builder removeAnnotations(
4797          java.lang.String key) {
4798        if (key == null) { throw new java.lang.NullPointerException(); }
4799        internalGetMutableAnnotations().getMutableMap()
4800            .remove(key);
4801        return this;
4802      }
4803      /**
4804       * Use alternate mutation accessors instead.
4805       */
4806      @java.lang.Deprecated
4807      public java.util.Map<java.lang.String, java.lang.String>
4808      getMutableAnnotations() {
4809        return internalGetMutableAnnotations().getMutableMap();
4810      }
4811      /**
4812       * <pre>
4813       * Annotations are additional mappings uninterpreted by Tiller,
4814       * made available for inspection by other applications.
4815       * </pre>
4816       *
4817       * <code>map&lt;string, string&gt; annotations = 16;</code>
4818       */
4819      public Builder putAnnotations(
4820          java.lang.String key,
4821          java.lang.String value) {
4822        if (key == null) { throw new java.lang.NullPointerException(); }
4823        if (value == null) { throw new java.lang.NullPointerException(); }
4824        internalGetMutableAnnotations().getMutableMap()
4825            .put(key, value);
4826        return this;
4827      }
4828      /**
4829       * <pre>
4830       * Annotations are additional mappings uninterpreted by Tiller,
4831       * made available for inspection by other applications.
4832       * </pre>
4833       *
4834       * <code>map&lt;string, string&gt; annotations = 16;</code>
4835       */
4836
4837      public Builder putAllAnnotations(
4838          java.util.Map<java.lang.String, java.lang.String> values) {
4839        internalGetMutableAnnotations().getMutableMap()
4840            .putAll(values);
4841        return this;
4842      }
4843
4844      private java.lang.Object kubeVersion_ = "";
4845      /**
4846       * <pre>
4847       * KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
4848       * </pre>
4849       *
4850       * <code>string kubeVersion = 17;</code>
4851       */
4852      public java.lang.String getKubeVersion() {
4853        java.lang.Object ref = kubeVersion_;
4854        if (!(ref instanceof java.lang.String)) {
4855          com.google.protobuf.ByteString bs =
4856              (com.google.protobuf.ByteString) ref;
4857          java.lang.String s = bs.toStringUtf8();
4858          kubeVersion_ = s;
4859          return s;
4860        } else {
4861          return (java.lang.String) ref;
4862        }
4863      }
4864      /**
4865       * <pre>
4866       * KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
4867       * </pre>
4868       *
4869       * <code>string kubeVersion = 17;</code>
4870       */
4871      public com.google.protobuf.ByteString
4872          getKubeVersionBytes() {
4873        java.lang.Object ref = kubeVersion_;
4874        if (ref instanceof String) {
4875          com.google.protobuf.ByteString b = 
4876              com.google.protobuf.ByteString.copyFromUtf8(
4877                  (java.lang.String) ref);
4878          kubeVersion_ = b;
4879          return b;
4880        } else {
4881          return (com.google.protobuf.ByteString) ref;
4882        }
4883      }
4884      /**
4885       * <pre>
4886       * KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
4887       * </pre>
4888       *
4889       * <code>string kubeVersion = 17;</code>
4890       */
4891      public Builder setKubeVersion(
4892          java.lang.String value) {
4893        if (value == null) {
4894    throw new NullPointerException();
4895  }
4896  
4897        kubeVersion_ = value;
4898        onChanged();
4899        return this;
4900      }
4901      /**
4902       * <pre>
4903       * KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
4904       * </pre>
4905       *
4906       * <code>string kubeVersion = 17;</code>
4907       */
4908      public Builder clearKubeVersion() {
4909        
4910        kubeVersion_ = getDefaultInstance().getKubeVersion();
4911        onChanged();
4912        return this;
4913      }
4914      /**
4915       * <pre>
4916       * KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
4917       * </pre>
4918       *
4919       * <code>string kubeVersion = 17;</code>
4920       */
4921      public Builder setKubeVersionBytes(
4922          com.google.protobuf.ByteString value) {
4923        if (value == null) {
4924    throw new NullPointerException();
4925  }
4926  checkByteStringIsUtf8(value);
4927        
4928        kubeVersion_ = value;
4929        onChanged();
4930        return this;
4931      }
4932      public final Builder setUnknownFields(
4933          final com.google.protobuf.UnknownFieldSet unknownFields) {
4934        return super.setUnknownFieldsProto3(unknownFields);
4935      }
4936
4937      public final Builder mergeUnknownFields(
4938          final com.google.protobuf.UnknownFieldSet unknownFields) {
4939        return super.mergeUnknownFields(unknownFields);
4940      }
4941
4942
4943      // @@protoc_insertion_point(builder_scope:hapi.chart.Metadata)
4944    }
4945
4946    // @@protoc_insertion_point(class_scope:hapi.chart.Metadata)
4947    private static final hapi.chart.MetadataOuterClass.Metadata DEFAULT_INSTANCE;
4948    static {
4949      DEFAULT_INSTANCE = new hapi.chart.MetadataOuterClass.Metadata();
4950    }
4951
4952    public static hapi.chart.MetadataOuterClass.Metadata getDefaultInstance() {
4953      return DEFAULT_INSTANCE;
4954    }
4955
4956    private static final com.google.protobuf.Parser<Metadata>
4957        PARSER = new com.google.protobuf.AbstractParser<Metadata>() {
4958      public Metadata parsePartialFrom(
4959          com.google.protobuf.CodedInputStream input,
4960          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4961          throws com.google.protobuf.InvalidProtocolBufferException {
4962        return new Metadata(input, extensionRegistry);
4963      }
4964    };
4965
4966    public static com.google.protobuf.Parser<Metadata> parser() {
4967      return PARSER;
4968    }
4969
4970    @java.lang.Override
4971    public com.google.protobuf.Parser<Metadata> getParserForType() {
4972      return PARSER;
4973    }
4974
4975    public hapi.chart.MetadataOuterClass.Metadata getDefaultInstanceForType() {
4976      return DEFAULT_INSTANCE;
4977    }
4978
4979  }
4980
4981  private static final com.google.protobuf.Descriptors.Descriptor
4982    internal_static_hapi_chart_Maintainer_descriptor;
4983  private static final 
4984    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
4985      internal_static_hapi_chart_Maintainer_fieldAccessorTable;
4986  private static final com.google.protobuf.Descriptors.Descriptor
4987    internal_static_hapi_chart_Metadata_descriptor;
4988  private static final 
4989    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
4990      internal_static_hapi_chart_Metadata_fieldAccessorTable;
4991  private static final com.google.protobuf.Descriptors.Descriptor
4992    internal_static_hapi_chart_Metadata_AnnotationsEntry_descriptor;
4993  private static final 
4994    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
4995      internal_static_hapi_chart_Metadata_AnnotationsEntry_fieldAccessorTable;
4996
4997  public static com.google.protobuf.Descriptors.FileDescriptor
4998      getDescriptor() {
4999    return descriptor;
5000  }
5001  private static  com.google.protobuf.Descriptors.FileDescriptor
5002      descriptor;
5003  static {
5004    java.lang.String[] descriptorData = {
5005      "\n\031hapi/chart/metadata.proto\022\nhapi.chart\"" +
5006      "6\n\nMaintainer\022\014\n\004name\030\001 \001(\t\022\r\n\005email\030\002 \001" +
5007      "(\t\022\013\n\003url\030\003 \001(\t\"\325\003\n\010Metadata\022\014\n\004name\030\001 \001" +
5008      "(\t\022\014\n\004home\030\002 \001(\t\022\017\n\007sources\030\003 \003(\t\022\017\n\007ver" +
5009      "sion\030\004 \001(\t\022\023\n\013description\030\005 \001(\t\022\020\n\010keywo" +
5010      "rds\030\006 \003(\t\022+\n\013maintainers\030\007 \003(\0132\026.hapi.ch" +
5011      "art.Maintainer\022\016\n\006engine\030\010 \001(\t\022\014\n\004icon\030\t" +
5012      " \001(\t\022\022\n\napiVersion\030\n \001(\t\022\021\n\tcondition\030\013 " +
5013      "\001(\t\022\014\n\004tags\030\014 \001(\t\022\022\n\nappVersion\030\r \001(\t\022\022\n" +
5014      "\ndeprecated\030\016 \001(\010\022\025\n\rtillerVersion\030\017 \001(\t" +
5015      "\022:\n\013annotations\030\020 \003(\0132%.hapi.chart.Metad" +
5016      "ata.AnnotationsEntry\022\023\n\013kubeVersion\030\021 \001(" +
5017      "\t\0322\n\020AnnotationsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005va" +
5018      "lue\030\002 \001(\t:\0028\001\" \n\006Engine\022\013\n\007UNKNOWN\020\000\022\t\n\005" +
5019      "GOTPL\020\001B\007Z\005chartb\006proto3"
5020    };
5021    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
5022        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
5023          public com.google.protobuf.ExtensionRegistry assignDescriptors(
5024              com.google.protobuf.Descriptors.FileDescriptor root) {
5025            descriptor = root;
5026            return null;
5027          }
5028        };
5029    com.google.protobuf.Descriptors.FileDescriptor
5030      .internalBuildGeneratedFileFrom(descriptorData,
5031        new com.google.protobuf.Descriptors.FileDescriptor[] {
5032        }, assigner);
5033    internal_static_hapi_chart_Maintainer_descriptor =
5034      getDescriptor().getMessageTypes().get(0);
5035    internal_static_hapi_chart_Maintainer_fieldAccessorTable = new
5036      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
5037        internal_static_hapi_chart_Maintainer_descriptor,
5038        new java.lang.String[] { "Name", "Email", "Url", });
5039    internal_static_hapi_chart_Metadata_descriptor =
5040      getDescriptor().getMessageTypes().get(1);
5041    internal_static_hapi_chart_Metadata_fieldAccessorTable = new
5042      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
5043        internal_static_hapi_chart_Metadata_descriptor,
5044        new java.lang.String[] { "Name", "Home", "Sources", "Version", "Description", "Keywords", "Maintainers", "Engine", "Icon", "ApiVersion", "Condition", "Tags", "AppVersion", "Deprecated", "TillerVersion", "Annotations", "KubeVersion", });
5045    internal_static_hapi_chart_Metadata_AnnotationsEntry_descriptor =
5046      internal_static_hapi_chart_Metadata_descriptor.getNestedTypes().get(0);
5047    internal_static_hapi_chart_Metadata_AnnotationsEntry_fieldAccessorTable = new
5048      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
5049        internal_static_hapi_chart_Metadata_AnnotationsEntry_descriptor,
5050        new java.lang.String[] { "Key", "Value", });
5051  }
5052
5053  // @@protoc_insertion_point(outer_class_scope)
5054}