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