All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.kinesis.producer.protobuf.Messages Maven / Gradle / Ivy

Go to download

The Amazon Kinesis Producer Library for Java enables developers to easily and reliably put data into Amazon Kinesis.

There is a newer version: 0.15.12
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: messages.proto

package com.amazonaws.services.kinesis.producer.protobuf;

public final class Messages {
  private Messages() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public interface TagOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.Tag)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string key = 1;
     */
    boolean hasKey();
    /**
     * required string key = 1;
     */
    java.lang.String getKey();
    /**
     * required string key = 1;
     */
    com.google.protobuf.ByteString
        getKeyBytes();

    /**
     * optional string value = 2;
     */
    boolean hasValue();
    /**
     * optional string value = 2;
     */
    java.lang.String getValue();
    /**
     * optional string value = 2;
     */
    com.google.protobuf.ByteString
        getValueBytes();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Tag}
   */
  public static final class Tag extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.Tag)
      TagOrBuilder {
    // Use Tag.newBuilder() to construct.
    private Tag(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Tag(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Tag defaultInstance;
    public static Tag getDefaultInstance() {
      return defaultInstance;
    }

    public Tag getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Tag(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              key_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              value_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Tag_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Tag_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public Tag parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Tag(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private java.lang.Object key_;
    /**
     * required string key = 1;
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string key = 1;
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     * required string key = 1;
     */
    public com.google.protobuf.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private java.lang.Object value_;
    /**
     * optional string value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string value = 2;
     */
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     * optional string value = 2;
     */
    public com.google.protobuf.ByteString
        getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      key_ = "";
      value_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getValueBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getValueBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Tag}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.Tag)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.TagOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Tag_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Tag_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Tag_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000002;
          value_ = other.value_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasKey()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       * required string key = 1;
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string key = 1;
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string key = 1;
       */
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string key = 1;
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * required string key = 1;
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * required string key = 1;
       */
      public Builder setKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object value_ = "";
      /**
       * optional string value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string value = 2;
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string value = 2;
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string value = 2;
       */
      public Builder setValue(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       * optional string value = 2;
       */
      public Builder setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.Tag)
    }

    static {
      defaultInstance = new Tag(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.Tag)
  }

  public interface RecordOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.Record)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required uint64 partition_key_index = 1;
     */
    boolean hasPartitionKeyIndex();
    /**
     * required uint64 partition_key_index = 1;
     */
    long getPartitionKeyIndex();

    /**
     * optional uint64 explicit_hash_key_index = 2;
     */
    boolean hasExplicitHashKeyIndex();
    /**
     * optional uint64 explicit_hash_key_index = 2;
     */
    long getExplicitHashKeyIndex();

    /**
     * required bytes data = 3;
     */
    boolean hasData();
    /**
     * required bytes data = 3;
     */
    com.google.protobuf.ByteString getData();

    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
     */
    java.util.List 
        getTagsList();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag getTags(int index);
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
     */
    int getTagsCount();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
     */
    java.util.List 
        getTagsOrBuilderList();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.TagOrBuilder getTagsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Record}
   */
  public static final class Record extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.Record)
      RecordOrBuilder {
    // Use Record.newBuilder() to construct.
    private Record(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Record(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Record defaultInstance;
    public static Record getDefaultInstance() {
      return defaultInstance;
    }

    public Record getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Record(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              partitionKeyIndex_ = input.readUInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              explicitHashKeyIndex_ = input.readUInt64();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              data_ = input.readBytes();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                tags_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              tags_.add(input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          tags_ = java.util.Collections.unmodifiableList(tags_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Record_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Record_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public Record parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Record(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PARTITION_KEY_INDEX_FIELD_NUMBER = 1;
    private long partitionKeyIndex_;
    /**
     * required uint64 partition_key_index = 1;
     */
    public boolean hasPartitionKeyIndex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required uint64 partition_key_index = 1;
     */
    public long getPartitionKeyIndex() {
      return partitionKeyIndex_;
    }

    public static final int EXPLICIT_HASH_KEY_INDEX_FIELD_NUMBER = 2;
    private long explicitHashKeyIndex_;
    /**
     * optional uint64 explicit_hash_key_index = 2;
     */
    public boolean hasExplicitHashKeyIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint64 explicit_hash_key_index = 2;
     */
    public long getExplicitHashKeyIndex() {
      return explicitHashKeyIndex_;
    }

    public static final int DATA_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString data_;
    /**
     * required bytes data = 3;
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required bytes data = 3;
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    public static final int TAGS_FIELD_NUMBER = 4;
    private java.util.List tags_;
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
     */
    public java.util.List getTagsList() {
      return tags_;
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
     */
    public java.util.List 
        getTagsOrBuilderList() {
      return tags_;
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
     */
    public int getTagsCount() {
      return tags_.size();
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag getTags(int index) {
      return tags_.get(index);
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.TagOrBuilder getTagsOrBuilder(
        int index) {
      return tags_.get(index);
    }

    private void initFields() {
      partitionKeyIndex_ = 0L;
      explicitHashKeyIndex_ = 0L;
      data_ = com.google.protobuf.ByteString.EMPTY;
      tags_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPartitionKeyIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getTagsCount(); i++) {
        if (!getTags(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, partitionKeyIndex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, explicitHashKeyIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, data_);
      }
      for (int i = 0; i < tags_.size(); i++) {
        output.writeMessage(4, tags_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, partitionKeyIndex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, explicitHashKeyIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, data_);
      }
      for (int i = 0; i < tags_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, tags_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Record prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Record}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.Record)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.RecordOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Record_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Record_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getTagsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        partitionKeyIndex_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        explicitHashKeyIndex_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (tagsBuilder_ == null) {
          tags_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          tagsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Record_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Record getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Record build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Record result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Record buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Record result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Record(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.partitionKeyIndex_ = partitionKeyIndex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.explicitHashKeyIndex_ = explicitHashKeyIndex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.data_ = data_;
        if (tagsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            tags_ = java.util.Collections.unmodifiableList(tags_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.tags_ = tags_;
        } else {
          result.tags_ = tagsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Record) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.Record)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.Record other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.getDefaultInstance()) return this;
        if (other.hasPartitionKeyIndex()) {
          setPartitionKeyIndex(other.getPartitionKeyIndex());
        }
        if (other.hasExplicitHashKeyIndex()) {
          setExplicitHashKeyIndex(other.getExplicitHashKeyIndex());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        if (tagsBuilder_ == null) {
          if (!other.tags_.isEmpty()) {
            if (tags_.isEmpty()) {
              tags_ = other.tags_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureTagsIsMutable();
              tags_.addAll(other.tags_);
            }
            onChanged();
          }
        } else {
          if (!other.tags_.isEmpty()) {
            if (tagsBuilder_.isEmpty()) {
              tagsBuilder_.dispose();
              tagsBuilder_ = null;
              tags_ = other.tags_;
              bitField0_ = (bitField0_ & ~0x00000008);
              tagsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getTagsFieldBuilder() : null;
            } else {
              tagsBuilder_.addAllMessages(other.tags_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPartitionKeyIndex()) {
          
          return false;
        }
        if (!hasData()) {
          
          return false;
        }
        for (int i = 0; i < getTagsCount(); i++) {
          if (!getTags(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Record) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long partitionKeyIndex_ ;
      /**
       * required uint64 partition_key_index = 1;
       */
      public boolean hasPartitionKeyIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required uint64 partition_key_index = 1;
       */
      public long getPartitionKeyIndex() {
        return partitionKeyIndex_;
      }
      /**
       * required uint64 partition_key_index = 1;
       */
      public Builder setPartitionKeyIndex(long value) {
        bitField0_ |= 0x00000001;
        partitionKeyIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint64 partition_key_index = 1;
       */
      public Builder clearPartitionKeyIndex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        partitionKeyIndex_ = 0L;
        onChanged();
        return this;
      }

      private long explicitHashKeyIndex_ ;
      /**
       * optional uint64 explicit_hash_key_index = 2;
       */
      public boolean hasExplicitHashKeyIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint64 explicit_hash_key_index = 2;
       */
      public long getExplicitHashKeyIndex() {
        return explicitHashKeyIndex_;
      }
      /**
       * optional uint64 explicit_hash_key_index = 2;
       */
      public Builder setExplicitHashKeyIndex(long value) {
        bitField0_ |= 0x00000002;
        explicitHashKeyIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 explicit_hash_key_index = 2;
       */
      public Builder clearExplicitHashKeyIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        explicitHashKeyIndex_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * required bytes data = 3;
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required bytes data = 3;
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * required bytes data = 3;
       */
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        data_ = value;
        onChanged();
        return this;
      }
      /**
       * required bytes data = 3;
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000004);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      private java.util.List tags_ =
        java.util.Collections.emptyList();
      private void ensureTagsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          tags_ = new java.util.ArrayList(tags_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag, com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.TagOrBuilder> tagsBuilder_;

      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public java.util.List getTagsList() {
        if (tagsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(tags_);
        } else {
          return tagsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public int getTagsCount() {
        if (tagsBuilder_ == null) {
          return tags_.size();
        } else {
          return tagsBuilder_.getCount();
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag getTags(int index) {
        if (tagsBuilder_ == null) {
          return tags_.get(index);
        } else {
          return tagsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public Builder setTags(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag value) {
        if (tagsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTagsIsMutable();
          tags_.set(index, value);
          onChanged();
        } else {
          tagsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public Builder setTags(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder builderForValue) {
        if (tagsBuilder_ == null) {
          ensureTagsIsMutable();
          tags_.set(index, builderForValue.build());
          onChanged();
        } else {
          tagsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public Builder addTags(com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag value) {
        if (tagsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTagsIsMutable();
          tags_.add(value);
          onChanged();
        } else {
          tagsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public Builder addTags(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag value) {
        if (tagsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTagsIsMutable();
          tags_.add(index, value);
          onChanged();
        } else {
          tagsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public Builder addTags(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder builderForValue) {
        if (tagsBuilder_ == null) {
          ensureTagsIsMutable();
          tags_.add(builderForValue.build());
          onChanged();
        } else {
          tagsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public Builder addTags(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder builderForValue) {
        if (tagsBuilder_ == null) {
          ensureTagsIsMutable();
          tags_.add(index, builderForValue.build());
          onChanged();
        } else {
          tagsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public Builder addAllTags(
          java.lang.Iterable values) {
        if (tagsBuilder_ == null) {
          ensureTagsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, tags_);
          onChanged();
        } else {
          tagsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public Builder clearTags() {
        if (tagsBuilder_ == null) {
          tags_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          tagsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public Builder removeTags(int index) {
        if (tagsBuilder_ == null) {
          ensureTagsIsMutable();
          tags_.remove(index);
          onChanged();
        } else {
          tagsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder getTagsBuilder(
          int index) {
        return getTagsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.TagOrBuilder getTagsOrBuilder(
          int index) {
        if (tagsBuilder_ == null) {
          return tags_.get(index);  } else {
          return tagsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public java.util.List 
           getTagsOrBuilderList() {
        if (tagsBuilder_ != null) {
          return tagsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(tags_);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder addTagsBuilder() {
        return getTagsFieldBuilder().addBuilder(
            com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.getDefaultInstance());
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder addTagsBuilder(
          int index) {
        return getTagsFieldBuilder().addBuilder(
            index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.getDefaultInstance());
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Tag tags = 4;
       */
      public java.util.List 
           getTagsBuilderList() {
        return getTagsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag, com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.TagOrBuilder> 
          getTagsFieldBuilder() {
        if (tagsBuilder_ == null) {
          tagsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag, com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.TagOrBuilder>(
                  tags_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          tags_ = null;
        }
        return tagsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.Record)
    }

    static {
      defaultInstance = new Record(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.Record)
  }

  public interface AggregatedRecordOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.AggregatedRecord)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated string partition_key_table = 1;
     */
    com.google.protobuf.ProtocolStringList
        getPartitionKeyTableList();
    /**
     * repeated string partition_key_table = 1;
     */
    int getPartitionKeyTableCount();
    /**
     * repeated string partition_key_table = 1;
     */
    java.lang.String getPartitionKeyTable(int index);
    /**
     * repeated string partition_key_table = 1;
     */
    com.google.protobuf.ByteString
        getPartitionKeyTableBytes(int index);

    /**
     * repeated string explicit_hash_key_table = 2;
     */
    com.google.protobuf.ProtocolStringList
        getExplicitHashKeyTableList();
    /**
     * repeated string explicit_hash_key_table = 2;
     */
    int getExplicitHashKeyTableCount();
    /**
     * repeated string explicit_hash_key_table = 2;
     */
    java.lang.String getExplicitHashKeyTable(int index);
    /**
     * repeated string explicit_hash_key_table = 2;
     */
    com.google.protobuf.ByteString
        getExplicitHashKeyTableBytes(int index);

    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
     */
    java.util.List 
        getRecordsList();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Record getRecords(int index);
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
     */
    int getRecordsCount();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
     */
    java.util.List 
        getRecordsOrBuilderList();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.RecordOrBuilder getRecordsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.AggregatedRecord}
   */
  public static final class AggregatedRecord extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.AggregatedRecord)
      AggregatedRecordOrBuilder {
    // Use AggregatedRecord.newBuilder() to construct.
    private AggregatedRecord(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AggregatedRecord(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final AggregatedRecord defaultInstance;
    public static AggregatedRecord getDefaultInstance() {
      return defaultInstance;
    }

    public AggregatedRecord getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private AggregatedRecord(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                partitionKeyTable_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              partitionKeyTable_.add(bs);
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                explicitHashKeyTable_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              explicitHashKeyTable_.add(bs);
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                records_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              records_.add(input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          partitionKeyTable_ = partitionKeyTable_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          explicitHashKeyTable_ = explicitHashKeyTable_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          records_ = java.util.Collections.unmodifiableList(records_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_AggregatedRecord_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_AggregatedRecord_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public AggregatedRecord parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AggregatedRecord(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int PARTITION_KEY_TABLE_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList partitionKeyTable_;
    /**
     * repeated string partition_key_table = 1;
     */
    public com.google.protobuf.ProtocolStringList
        getPartitionKeyTableList() {
      return partitionKeyTable_;
    }
    /**
     * repeated string partition_key_table = 1;
     */
    public int getPartitionKeyTableCount() {
      return partitionKeyTable_.size();
    }
    /**
     * repeated string partition_key_table = 1;
     */
    public java.lang.String getPartitionKeyTable(int index) {
      return partitionKeyTable_.get(index);
    }
    /**
     * repeated string partition_key_table = 1;
     */
    public com.google.protobuf.ByteString
        getPartitionKeyTableBytes(int index) {
      return partitionKeyTable_.getByteString(index);
    }

    public static final int EXPLICIT_HASH_KEY_TABLE_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList explicitHashKeyTable_;
    /**
     * repeated string explicit_hash_key_table = 2;
     */
    public com.google.protobuf.ProtocolStringList
        getExplicitHashKeyTableList() {
      return explicitHashKeyTable_;
    }
    /**
     * repeated string explicit_hash_key_table = 2;
     */
    public int getExplicitHashKeyTableCount() {
      return explicitHashKeyTable_.size();
    }
    /**
     * repeated string explicit_hash_key_table = 2;
     */
    public java.lang.String getExplicitHashKeyTable(int index) {
      return explicitHashKeyTable_.get(index);
    }
    /**
     * repeated string explicit_hash_key_table = 2;
     */
    public com.google.protobuf.ByteString
        getExplicitHashKeyTableBytes(int index) {
      return explicitHashKeyTable_.getByteString(index);
    }

    public static final int RECORDS_FIELD_NUMBER = 3;
    private java.util.List records_;
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
     */
    public java.util.List getRecordsList() {
      return records_;
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
     */
    public java.util.List 
        getRecordsOrBuilderList() {
      return records_;
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
     */
    public int getRecordsCount() {
      return records_.size();
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Record getRecords(int index) {
      return records_.get(index);
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.RecordOrBuilder getRecordsOrBuilder(
        int index) {
      return records_.get(index);
    }

    private void initFields() {
      partitionKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      explicitHashKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      records_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getRecordsCount(); i++) {
        if (!getRecords(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < partitionKeyTable_.size(); i++) {
        output.writeBytes(1, partitionKeyTable_.getByteString(i));
      }
      for (int i = 0; i < explicitHashKeyTable_.size(); i++) {
        output.writeBytes(2, explicitHashKeyTable_.getByteString(i));
      }
      for (int i = 0; i < records_.size(); i++) {
        output.writeMessage(3, records_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < partitionKeyTable_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(partitionKeyTable_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getPartitionKeyTableList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < explicitHashKeyTable_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(explicitHashKeyTable_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getExplicitHashKeyTableList().size();
      }
      for (int i = 0; i < records_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, records_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.AggregatedRecord}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.AggregatedRecord)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecordOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_AggregatedRecord_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_AggregatedRecord_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getRecordsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        partitionKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        explicitHashKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (recordsBuilder_ == null) {
          records_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          recordsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_AggregatedRecord_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          partitionKeyTable_ = partitionKeyTable_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.partitionKeyTable_ = partitionKeyTable_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          explicitHashKeyTable_ = explicitHashKeyTable_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.explicitHashKeyTable_ = explicitHashKeyTable_;
        if (recordsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            records_ = java.util.Collections.unmodifiableList(records_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.records_ = records_;
        } else {
          result.records_ = recordsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord.getDefaultInstance()) return this;
        if (!other.partitionKeyTable_.isEmpty()) {
          if (partitionKeyTable_.isEmpty()) {
            partitionKeyTable_ = other.partitionKeyTable_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensurePartitionKeyTableIsMutable();
            partitionKeyTable_.addAll(other.partitionKeyTable_);
          }
          onChanged();
        }
        if (!other.explicitHashKeyTable_.isEmpty()) {
          if (explicitHashKeyTable_.isEmpty()) {
            explicitHashKeyTable_ = other.explicitHashKeyTable_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureExplicitHashKeyTableIsMutable();
            explicitHashKeyTable_.addAll(other.explicitHashKeyTable_);
          }
          onChanged();
        }
        if (recordsBuilder_ == null) {
          if (!other.records_.isEmpty()) {
            if (records_.isEmpty()) {
              records_ = other.records_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureRecordsIsMutable();
              records_.addAll(other.records_);
            }
            onChanged();
          }
        } else {
          if (!other.records_.isEmpty()) {
            if (recordsBuilder_.isEmpty()) {
              recordsBuilder_.dispose();
              recordsBuilder_ = null;
              records_ = other.records_;
              bitField0_ = (bitField0_ & ~0x00000004);
              recordsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getRecordsFieldBuilder() : null;
            } else {
              recordsBuilder_.addAllMessages(other.records_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getRecordsCount(); i++) {
          if (!getRecords(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringList partitionKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensurePartitionKeyTableIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          partitionKeyTable_ = new com.google.protobuf.LazyStringArrayList(partitionKeyTable_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated string partition_key_table = 1;
       */
      public com.google.protobuf.ProtocolStringList
          getPartitionKeyTableList() {
        return partitionKeyTable_.getUnmodifiableView();
      }
      /**
       * repeated string partition_key_table = 1;
       */
      public int getPartitionKeyTableCount() {
        return partitionKeyTable_.size();
      }
      /**
       * repeated string partition_key_table = 1;
       */
      public java.lang.String getPartitionKeyTable(int index) {
        return partitionKeyTable_.get(index);
      }
      /**
       * repeated string partition_key_table = 1;
       */
      public com.google.protobuf.ByteString
          getPartitionKeyTableBytes(int index) {
        return partitionKeyTable_.getByteString(index);
      }
      /**
       * repeated string partition_key_table = 1;
       */
      public Builder setPartitionKeyTable(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePartitionKeyTableIsMutable();
        partitionKeyTable_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string partition_key_table = 1;
       */
      public Builder addPartitionKeyTable(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePartitionKeyTableIsMutable();
        partitionKeyTable_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string partition_key_table = 1;
       */
      public Builder addAllPartitionKeyTable(
          java.lang.Iterable values) {
        ensurePartitionKeyTableIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, partitionKeyTable_);
        onChanged();
        return this;
      }
      /**
       * repeated string partition_key_table = 1;
       */
      public Builder clearPartitionKeyTable() {
        partitionKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * repeated string partition_key_table = 1;
       */
      public Builder addPartitionKeyTableBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePartitionKeyTableIsMutable();
        partitionKeyTable_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList explicitHashKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureExplicitHashKeyTableIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          explicitHashKeyTable_ = new com.google.protobuf.LazyStringArrayList(explicitHashKeyTable_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       */
      public com.google.protobuf.ProtocolStringList
          getExplicitHashKeyTableList() {
        return explicitHashKeyTable_.getUnmodifiableView();
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       */
      public int getExplicitHashKeyTableCount() {
        return explicitHashKeyTable_.size();
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       */
      public java.lang.String getExplicitHashKeyTable(int index) {
        return explicitHashKeyTable_.get(index);
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       */
      public com.google.protobuf.ByteString
          getExplicitHashKeyTableBytes(int index) {
        return explicitHashKeyTable_.getByteString(index);
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       */
      public Builder setExplicitHashKeyTable(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureExplicitHashKeyTableIsMutable();
        explicitHashKeyTable_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       */
      public Builder addExplicitHashKeyTable(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureExplicitHashKeyTableIsMutable();
        explicitHashKeyTable_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       */
      public Builder addAllExplicitHashKeyTable(
          java.lang.Iterable values) {
        ensureExplicitHashKeyTableIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, explicitHashKeyTable_);
        onChanged();
        return this;
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       */
      public Builder clearExplicitHashKeyTable() {
        explicitHashKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       */
      public Builder addExplicitHashKeyTableBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureExplicitHashKeyTableIsMutable();
        explicitHashKeyTable_.add(value);
        onChanged();
        return this;
      }

      private java.util.List records_ =
        java.util.Collections.emptyList();
      private void ensureRecordsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          records_ = new java.util.ArrayList(records_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Record, com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.RecordOrBuilder> recordsBuilder_;

      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public java.util.List getRecordsList() {
        if (recordsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(records_);
        } else {
          return recordsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public int getRecordsCount() {
        if (recordsBuilder_ == null) {
          return records_.size();
        } else {
          return recordsBuilder_.getCount();
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Record getRecords(int index) {
        if (recordsBuilder_ == null) {
          return records_.get(index);
        } else {
          return recordsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public Builder setRecords(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Record value) {
        if (recordsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRecordsIsMutable();
          records_.set(index, value);
          onChanged();
        } else {
          recordsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public Builder setRecords(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder builderForValue) {
        if (recordsBuilder_ == null) {
          ensureRecordsIsMutable();
          records_.set(index, builderForValue.build());
          onChanged();
        } else {
          recordsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public Builder addRecords(com.amazonaws.services.kinesis.producer.protobuf.Messages.Record value) {
        if (recordsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRecordsIsMutable();
          records_.add(value);
          onChanged();
        } else {
          recordsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public Builder addRecords(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Record value) {
        if (recordsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRecordsIsMutable();
          records_.add(index, value);
          onChanged();
        } else {
          recordsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public Builder addRecords(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder builderForValue) {
        if (recordsBuilder_ == null) {
          ensureRecordsIsMutable();
          records_.add(builderForValue.build());
          onChanged();
        } else {
          recordsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public Builder addRecords(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder builderForValue) {
        if (recordsBuilder_ == null) {
          ensureRecordsIsMutable();
          records_.add(index, builderForValue.build());
          onChanged();
        } else {
          recordsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public Builder addAllRecords(
          java.lang.Iterable values) {
        if (recordsBuilder_ == null) {
          ensureRecordsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, records_);
          onChanged();
        } else {
          recordsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public Builder clearRecords() {
        if (recordsBuilder_ == null) {
          records_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          recordsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public Builder removeRecords(int index) {
        if (recordsBuilder_ == null) {
          ensureRecordsIsMutable();
          records_.remove(index);
          onChanged();
        } else {
          recordsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder getRecordsBuilder(
          int index) {
        return getRecordsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.RecordOrBuilder getRecordsOrBuilder(
          int index) {
        if (recordsBuilder_ == null) {
          return records_.get(index);  } else {
          return recordsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public java.util.List 
           getRecordsOrBuilderList() {
        if (recordsBuilder_ != null) {
          return recordsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(records_);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder addRecordsBuilder() {
        return getRecordsFieldBuilder().addBuilder(
            com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.getDefaultInstance());
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder addRecordsBuilder(
          int index) {
        return getRecordsFieldBuilder().addBuilder(
            index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.getDefaultInstance());
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Record records = 3;
       */
      public java.util.List 
           getRecordsBuilderList() {
        return getRecordsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Record, com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.RecordOrBuilder> 
          getRecordsFieldBuilder() {
        if (recordsBuilder_ == null) {
          recordsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Record, com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.RecordOrBuilder>(
                  records_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          records_ = null;
        }
        return recordsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.AggregatedRecord)
    }

    static {
      defaultInstance = new AggregatedRecord(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.AggregatedRecord)
  }

  public interface MessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.Message)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required uint64 id = 1;
     */
    boolean hasId();
    /**
     * required uint64 id = 1;
     */
    long getId();

    /**
     * optional uint64 source_id = 2;
     */
    boolean hasSourceId();
    /**
     * optional uint64 source_id = 2;
     */
    long getSourceId();

    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
     */
    boolean hasPutRecord();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord getPutRecord();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordOrBuilder getPutRecordOrBuilder();

    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
     */
    boolean hasFlush();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush getFlush();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.FlushOrBuilder getFlushOrBuilder();

    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
     */
    boolean hasPutRecordResult();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult getPutRecordResult();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResultOrBuilder getPutRecordResultOrBuilder();

    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
     */
    boolean hasConfiguration();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration getConfiguration();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Config.ConfigurationOrBuilder getConfigurationOrBuilder();

    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
     */
    boolean hasMetricsRequest();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest getMetricsRequest();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequestOrBuilder getMetricsRequestOrBuilder();

    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
     */
    boolean hasMetricsResponse();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse getMetricsResponse();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponseOrBuilder getMetricsResponseOrBuilder();

    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
     */
    boolean hasSetCredentials();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials getSetCredentials();
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentialsOrBuilder getSetCredentialsOrBuilder();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Message}
   */
  public static final class Message extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.Message)
      MessageOrBuilder {
    // Use Message.newBuilder() to construct.
    private Message(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Message(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Message defaultInstance;
    public static Message getDefaultInstance() {
      return defaultInstance;
    }

    public Message getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Message(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              id_ = input.readUInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              sourceId_ = input.readUInt64();
              break;
            }
            case 26: {
              com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.Builder subBuilder = null;
              if (actualMessageCase_ == 3) {
                subBuilder = ((com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) actualMessage_).toBuilder();
              }
              actualMessage_ = input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) actualMessage_);
                actualMessage_ = subBuilder.buildPartial();
              }
              actualMessageCase_ = 3;
              break;
            }
            case 34: {
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.Builder subBuilder = null;
              if (actualMessageCase_ == 4) {
                subBuilder = ((com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) actualMessage_).toBuilder();
              }
              actualMessage_ = input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) actualMessage_);
                actualMessage_ = subBuilder.buildPartial();
              }
              actualMessageCase_ = 4;
              break;
            }
            case 42: {
              com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.Builder subBuilder = null;
              if (actualMessageCase_ == 5) {
                subBuilder = ((com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) actualMessage_).toBuilder();
              }
              actualMessage_ = input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) actualMessage_);
                actualMessage_ = subBuilder.buildPartial();
              }
              actualMessageCase_ = 5;
              break;
            }
            case 50: {
              com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.Builder subBuilder = null;
              if (actualMessageCase_ == 6) {
                subBuilder = ((com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration) actualMessage_).toBuilder();
              }
              actualMessage_ = input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration) actualMessage_);
                actualMessage_ = subBuilder.buildPartial();
              }
              actualMessageCase_ = 6;
              break;
            }
            case 58: {
              com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.Builder subBuilder = null;
              if (actualMessageCase_ == 7) {
                subBuilder = ((com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) actualMessage_).toBuilder();
              }
              actualMessage_ = input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) actualMessage_);
                actualMessage_ = subBuilder.buildPartial();
              }
              actualMessageCase_ = 7;
              break;
            }
            case 66: {
              com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.Builder subBuilder = null;
              if (actualMessageCase_ == 8) {
                subBuilder = ((com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) actualMessage_).toBuilder();
              }
              actualMessage_ = input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) actualMessage_);
                actualMessage_ = subBuilder.buildPartial();
              }
              actualMessageCase_ = 8;
              break;
            }
            case 74: {
              com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.Builder subBuilder = null;
              if (actualMessageCase_ == 9) {
                subBuilder = ((com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) actualMessage_).toBuilder();
              }
              actualMessage_ = input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) actualMessage_);
                actualMessage_ = subBuilder.buildPartial();
              }
              actualMessageCase_ = 9;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Message_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Message_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Message.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Message.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public Message parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Message(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    private int actualMessageCase_ = 0;
    private java.lang.Object actualMessage_;
    public enum ActualMessageCase
        implements com.google.protobuf.Internal.EnumLite {
      PUT_RECORD(3),
      FLUSH(4),
      PUT_RECORD_RESULT(5),
      CONFIGURATION(6),
      METRICS_REQUEST(7),
      METRICS_RESPONSE(8),
      SET_CREDENTIALS(9),
      ACTUALMESSAGE_NOT_SET(0);
      private int value = 0;
      private ActualMessageCase(int value) {
        this.value = value;
      }
      public static ActualMessageCase valueOf(int value) {
        switch (value) {
          case 3: return PUT_RECORD;
          case 4: return FLUSH;
          case 5: return PUT_RECORD_RESULT;
          case 6: return CONFIGURATION;
          case 7: return METRICS_REQUEST;
          case 8: return METRICS_RESPONSE;
          case 9: return SET_CREDENTIALS;
          case 0: return ACTUALMESSAGE_NOT_SET;
          default: throw new java.lang.IllegalArgumentException(
            "Value is undefined for this oneof enum.");
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ActualMessageCase
    getActualMessageCase() {
      return ActualMessageCase.valueOf(
          actualMessageCase_);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    /**
     * required uint64 id = 1;
     */
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required uint64 id = 1;
     */
    public long getId() {
      return id_;
    }

    public static final int SOURCE_ID_FIELD_NUMBER = 2;
    private long sourceId_;
    /**
     * optional uint64 source_id = 2;
     */
    public boolean hasSourceId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint64 source_id = 2;
     */
    public long getSourceId() {
      return sourceId_;
    }

    public static final int PUT_RECORD_FIELD_NUMBER = 3;
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
     */
    public boolean hasPutRecord() {
      return actualMessageCase_ == 3;
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord getPutRecord() {
      if (actualMessageCase_ == 3) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.getDefaultInstance();
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordOrBuilder getPutRecordOrBuilder() {
      if (actualMessageCase_ == 3) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.getDefaultInstance();
    }

    public static final int FLUSH_FIELD_NUMBER = 4;
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
     */
    public boolean hasFlush() {
      return actualMessageCase_ == 4;
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush getFlush() {
      if (actualMessageCase_ == 4) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.getDefaultInstance();
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.FlushOrBuilder getFlushOrBuilder() {
      if (actualMessageCase_ == 4) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.getDefaultInstance();
    }

    public static final int PUT_RECORD_RESULT_FIELD_NUMBER = 5;
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
     */
    public boolean hasPutRecordResult() {
      return actualMessageCase_ == 5;
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult getPutRecordResult() {
      if (actualMessageCase_ == 5) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.getDefaultInstance();
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResultOrBuilder getPutRecordResultOrBuilder() {
      if (actualMessageCase_ == 5) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.getDefaultInstance();
    }

    public static final int CONFIGURATION_FIELD_NUMBER = 6;
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
     */
    public boolean hasConfiguration() {
      return actualMessageCase_ == 6;
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration getConfiguration() {
      if (actualMessageCase_ == 6) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.getDefaultInstance();
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Config.ConfigurationOrBuilder getConfigurationOrBuilder() {
      if (actualMessageCase_ == 6) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.getDefaultInstance();
    }

    public static final int METRICS_REQUEST_FIELD_NUMBER = 7;
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
     */
    public boolean hasMetricsRequest() {
      return actualMessageCase_ == 7;
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest getMetricsRequest() {
      if (actualMessageCase_ == 7) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.getDefaultInstance();
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequestOrBuilder getMetricsRequestOrBuilder() {
      if (actualMessageCase_ == 7) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.getDefaultInstance();
    }

    public static final int METRICS_RESPONSE_FIELD_NUMBER = 8;
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
     */
    public boolean hasMetricsResponse() {
      return actualMessageCase_ == 8;
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse getMetricsResponse() {
      if (actualMessageCase_ == 8) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.getDefaultInstance();
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponseOrBuilder getMetricsResponseOrBuilder() {
      if (actualMessageCase_ == 8) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.getDefaultInstance();
    }

    public static final int SET_CREDENTIALS_FIELD_NUMBER = 9;
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
     */
    public boolean hasSetCredentials() {
      return actualMessageCase_ == 9;
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials getSetCredentials() {
      if (actualMessageCase_ == 9) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.getDefaultInstance();
    }
    /**
     * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentialsOrBuilder getSetCredentialsOrBuilder() {
      if (actualMessageCase_ == 9) {
         return (com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) actualMessage_;
      }
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.getDefaultInstance();
    }

    private void initFields() {
      id_ = 0L;
      sourceId_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasPutRecord()) {
        if (!getPutRecord().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPutRecordResult()) {
        if (!getPutRecordResult().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasConfiguration()) {
        if (!getConfiguration().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasMetricsResponse()) {
        if (!getMetricsResponse().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasSetCredentials()) {
        if (!getSetCredentials().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, id_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, sourceId_);
      }
      if (actualMessageCase_ == 3) {
        output.writeMessage(3, (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) actualMessage_);
      }
      if (actualMessageCase_ == 4) {
        output.writeMessage(4, (com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) actualMessage_);
      }
      if (actualMessageCase_ == 5) {
        output.writeMessage(5, (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) actualMessage_);
      }
      if (actualMessageCase_ == 6) {
        output.writeMessage(6, (com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration) actualMessage_);
      }
      if (actualMessageCase_ == 7) {
        output.writeMessage(7, (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) actualMessage_);
      }
      if (actualMessageCase_ == 8) {
        output.writeMessage(8, (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) actualMessage_);
      }
      if (actualMessageCase_ == 9) {
        output.writeMessage(9, (com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) actualMessage_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, id_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, sourceId_);
      }
      if (actualMessageCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) actualMessage_);
      }
      if (actualMessageCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) actualMessage_);
      }
      if (actualMessageCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) actualMessage_);
      }
      if (actualMessageCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration) actualMessage_);
      }
      if (actualMessageCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) actualMessage_);
      }
      if (actualMessageCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) actualMessage_);
      }
      if (actualMessageCase_ == 9) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, (com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) actualMessage_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Message prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.Message)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.MessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Message_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Message_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.Message.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Message.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.Message.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        id_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        sourceId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        actualMessageCase_ = 0;
        actualMessage_ = null;
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Message_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Message getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.Message.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Message build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Message result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Message buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Message result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Message(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.id_ = id_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.sourceId_ = sourceId_;
        if (actualMessageCase_ == 3) {
          if (putRecordBuilder_ == null) {
            result.actualMessage_ = actualMessage_;
          } else {
            result.actualMessage_ = putRecordBuilder_.build();
          }
        }
        if (actualMessageCase_ == 4) {
          if (flushBuilder_ == null) {
            result.actualMessage_ = actualMessage_;
          } else {
            result.actualMessage_ = flushBuilder_.build();
          }
        }
        if (actualMessageCase_ == 5) {
          if (putRecordResultBuilder_ == null) {
            result.actualMessage_ = actualMessage_;
          } else {
            result.actualMessage_ = putRecordResultBuilder_.build();
          }
        }
        if (actualMessageCase_ == 6) {
          if (configurationBuilder_ == null) {
            result.actualMessage_ = actualMessage_;
          } else {
            result.actualMessage_ = configurationBuilder_.build();
          }
        }
        if (actualMessageCase_ == 7) {
          if (metricsRequestBuilder_ == null) {
            result.actualMessage_ = actualMessage_;
          } else {
            result.actualMessage_ = metricsRequestBuilder_.build();
          }
        }
        if (actualMessageCase_ == 8) {
          if (metricsResponseBuilder_ == null) {
            result.actualMessage_ = actualMessage_;
          } else {
            result.actualMessage_ = metricsResponseBuilder_.build();
          }
        }
        if (actualMessageCase_ == 9) {
          if (setCredentialsBuilder_ == null) {
            result.actualMessage_ = actualMessage_;
          } else {
            result.actualMessage_ = setCredentialsBuilder_.build();
          }
        }
        result.bitField0_ = to_bitField0_;
        result.actualMessageCase_ = actualMessageCase_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Message) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.Message)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.Message other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.Message.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (other.hasSourceId()) {
          setSourceId(other.getSourceId());
        }
        switch (other.getActualMessageCase()) {
          case PUT_RECORD: {
            mergePutRecord(other.getPutRecord());
            break;
          }
          case FLUSH: {
            mergeFlush(other.getFlush());
            break;
          }
          case PUT_RECORD_RESULT: {
            mergePutRecordResult(other.getPutRecordResult());
            break;
          }
          case CONFIGURATION: {
            mergeConfiguration(other.getConfiguration());
            break;
          }
          case METRICS_REQUEST: {
            mergeMetricsRequest(other.getMetricsRequest());
            break;
          }
          case METRICS_RESPONSE: {
            mergeMetricsResponse(other.getMetricsResponse());
            break;
          }
          case SET_CREDENTIALS: {
            mergeSetCredentials(other.getSetCredentials());
            break;
          }
          case ACTUALMESSAGE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasId()) {
          
          return false;
        }
        if (hasPutRecord()) {
          if (!getPutRecord().isInitialized()) {
            
            return false;
          }
        }
        if (hasPutRecordResult()) {
          if (!getPutRecordResult().isInitialized()) {
            
            return false;
          }
        }
        if (hasConfiguration()) {
          if (!getConfiguration().isInitialized()) {
            
            return false;
          }
        }
        if (hasMetricsResponse()) {
          if (!getMetricsResponse().isInitialized()) {
            
            return false;
          }
        }
        if (hasSetCredentials()) {
          if (!getSetCredentials().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Message) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int actualMessageCase_ = 0;
      private java.lang.Object actualMessage_;
      public ActualMessageCase
          getActualMessageCase() {
        return ActualMessageCase.valueOf(
            actualMessageCase_);
      }

      public Builder clearActualMessage() {
        actualMessageCase_ = 0;
        actualMessage_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private long id_ ;
      /**
       * required uint64 id = 1;
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required uint64 id = 1;
       */
      public long getId() {
        return id_;
      }
      /**
       * required uint64 id = 1;
       */
      public Builder setId(long value) {
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint64 id = 1;
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        onChanged();
        return this;
      }

      private long sourceId_ ;
      /**
       * optional uint64 source_id = 2;
       */
      public boolean hasSourceId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint64 source_id = 2;
       */
      public long getSourceId() {
        return sourceId_;
      }
      /**
       * optional uint64 source_id = 2;
       */
      public Builder setSourceId(long value) {
        bitField0_ |= 0x00000002;
        sourceId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 source_id = 2;
       */
      public Builder clearSourceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sourceId_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordOrBuilder> putRecordBuilder_;
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
       */
      public boolean hasPutRecord() {
        return actualMessageCase_ == 3;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord getPutRecord() {
        if (putRecordBuilder_ == null) {
          if (actualMessageCase_ == 3) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.getDefaultInstance();
        } else {
          if (actualMessageCase_ == 3) {
            return putRecordBuilder_.getMessage();
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
       */
      public Builder setPutRecord(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord value) {
        if (putRecordBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actualMessage_ = value;
          onChanged();
        } else {
          putRecordBuilder_.setMessage(value);
        }
        actualMessageCase_ = 3;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
       */
      public Builder setPutRecord(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.Builder builderForValue) {
        if (putRecordBuilder_ == null) {
          actualMessage_ = builderForValue.build();
          onChanged();
        } else {
          putRecordBuilder_.setMessage(builderForValue.build());
        }
        actualMessageCase_ = 3;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
       */
      public Builder mergePutRecord(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord value) {
        if (putRecordBuilder_ == null) {
          if (actualMessageCase_ == 3 &&
              actualMessage_ != com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.getDefaultInstance()) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.newBuilder((com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) actualMessage_)
                .mergeFrom(value).buildPartial();
          } else {
            actualMessage_ = value;
          }
          onChanged();
        } else {
          if (actualMessageCase_ == 3) {
            putRecordBuilder_.mergeFrom(value);
          }
          putRecordBuilder_.setMessage(value);
        }
        actualMessageCase_ = 3;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
       */
      public Builder clearPutRecord() {
        if (putRecordBuilder_ == null) {
          if (actualMessageCase_ == 3) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
            onChanged();
          }
        } else {
          if (actualMessageCase_ == 3) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
          }
          putRecordBuilder_.clear();
        }
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.Builder getPutRecordBuilder() {
        return getPutRecordFieldBuilder().getBuilder();
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordOrBuilder getPutRecordOrBuilder() {
        if ((actualMessageCase_ == 3) && (putRecordBuilder_ != null)) {
          return putRecordBuilder_.getMessageOrBuilder();
        } else {
          if (actualMessageCase_ == 3) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecord put_record = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordOrBuilder> 
          getPutRecordFieldBuilder() {
        if (putRecordBuilder_ == null) {
          if (!(actualMessageCase_ == 3)) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.getDefaultInstance();
          }
          putRecordBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordOrBuilder>(
                  (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) actualMessage_,
                  getParentForChildren(),
                  isClean());
          actualMessage_ = null;
        }
        actualMessageCase_ = 3;
        return putRecordBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush, com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.FlushOrBuilder> flushBuilder_;
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
       */
      public boolean hasFlush() {
        return actualMessageCase_ == 4;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush getFlush() {
        if (flushBuilder_ == null) {
          if (actualMessageCase_ == 4) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.getDefaultInstance();
        } else {
          if (actualMessageCase_ == 4) {
            return flushBuilder_.getMessage();
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
       */
      public Builder setFlush(com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush value) {
        if (flushBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actualMessage_ = value;
          onChanged();
        } else {
          flushBuilder_.setMessage(value);
        }
        actualMessageCase_ = 4;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
       */
      public Builder setFlush(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.Builder builderForValue) {
        if (flushBuilder_ == null) {
          actualMessage_ = builderForValue.build();
          onChanged();
        } else {
          flushBuilder_.setMessage(builderForValue.build());
        }
        actualMessageCase_ = 4;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
       */
      public Builder mergeFlush(com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush value) {
        if (flushBuilder_ == null) {
          if (actualMessageCase_ == 4 &&
              actualMessage_ != com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.getDefaultInstance()) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.newBuilder((com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) actualMessage_)
                .mergeFrom(value).buildPartial();
          } else {
            actualMessage_ = value;
          }
          onChanged();
        } else {
          if (actualMessageCase_ == 4) {
            flushBuilder_.mergeFrom(value);
          }
          flushBuilder_.setMessage(value);
        }
        actualMessageCase_ = 4;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
       */
      public Builder clearFlush() {
        if (flushBuilder_ == null) {
          if (actualMessageCase_ == 4) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
            onChanged();
          }
        } else {
          if (actualMessageCase_ == 4) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
          }
          flushBuilder_.clear();
        }
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.Builder getFlushBuilder() {
        return getFlushFieldBuilder().getBuilder();
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.FlushOrBuilder getFlushOrBuilder() {
        if ((actualMessageCase_ == 4) && (flushBuilder_ != null)) {
          return flushBuilder_.getMessageOrBuilder();
        } else {
          if (actualMessageCase_ == 4) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Flush flush = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush, com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.FlushOrBuilder> 
          getFlushFieldBuilder() {
        if (flushBuilder_ == null) {
          if (!(actualMessageCase_ == 4)) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.getDefaultInstance();
          }
          flushBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush, com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.FlushOrBuilder>(
                  (com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) actualMessage_,
                  getParentForChildren(),
                  isClean());
          actualMessage_ = null;
        }
        actualMessageCase_ = 4;
        return flushBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResultOrBuilder> putRecordResultBuilder_;
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
       */
      public boolean hasPutRecordResult() {
        return actualMessageCase_ == 5;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult getPutRecordResult() {
        if (putRecordResultBuilder_ == null) {
          if (actualMessageCase_ == 5) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.getDefaultInstance();
        } else {
          if (actualMessageCase_ == 5) {
            return putRecordResultBuilder_.getMessage();
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
       */
      public Builder setPutRecordResult(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult value) {
        if (putRecordResultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actualMessage_ = value;
          onChanged();
        } else {
          putRecordResultBuilder_.setMessage(value);
        }
        actualMessageCase_ = 5;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
       */
      public Builder setPutRecordResult(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.Builder builderForValue) {
        if (putRecordResultBuilder_ == null) {
          actualMessage_ = builderForValue.build();
          onChanged();
        } else {
          putRecordResultBuilder_.setMessage(builderForValue.build());
        }
        actualMessageCase_ = 5;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
       */
      public Builder mergePutRecordResult(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult value) {
        if (putRecordResultBuilder_ == null) {
          if (actualMessageCase_ == 5 &&
              actualMessage_ != com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.getDefaultInstance()) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.newBuilder((com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) actualMessage_)
                .mergeFrom(value).buildPartial();
          } else {
            actualMessage_ = value;
          }
          onChanged();
        } else {
          if (actualMessageCase_ == 5) {
            putRecordResultBuilder_.mergeFrom(value);
          }
          putRecordResultBuilder_.setMessage(value);
        }
        actualMessageCase_ = 5;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
       */
      public Builder clearPutRecordResult() {
        if (putRecordResultBuilder_ == null) {
          if (actualMessageCase_ == 5) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
            onChanged();
          }
        } else {
          if (actualMessageCase_ == 5) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
          }
          putRecordResultBuilder_.clear();
        }
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.Builder getPutRecordResultBuilder() {
        return getPutRecordResultFieldBuilder().getBuilder();
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResultOrBuilder getPutRecordResultOrBuilder() {
        if ((actualMessageCase_ == 5) && (putRecordResultBuilder_ != null)) {
          return putRecordResultBuilder_.getMessageOrBuilder();
        } else {
          if (actualMessageCase_ == 5) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult put_record_result = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResultOrBuilder> 
          getPutRecordResultFieldBuilder() {
        if (putRecordResultBuilder_ == null) {
          if (!(actualMessageCase_ == 5)) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.getDefaultInstance();
          }
          putRecordResultBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResultOrBuilder>(
                  (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) actualMessage_,
                  getParentForChildren(),
                  isClean());
          actualMessage_ = null;
        }
        actualMessageCase_ = 5;
        return putRecordResultBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration, com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.Builder, com.amazonaws.services.kinesis.producer.protobuf.Config.ConfigurationOrBuilder> configurationBuilder_;
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
       */
      public boolean hasConfiguration() {
        return actualMessageCase_ == 6;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration getConfiguration() {
        if (configurationBuilder_ == null) {
          if (actualMessageCase_ == 6) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.getDefaultInstance();
        } else {
          if (actualMessageCase_ == 6) {
            return configurationBuilder_.getMessage();
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
       */
      public Builder setConfiguration(com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration value) {
        if (configurationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actualMessage_ = value;
          onChanged();
        } else {
          configurationBuilder_.setMessage(value);
        }
        actualMessageCase_ = 6;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
       */
      public Builder setConfiguration(
          com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.Builder builderForValue) {
        if (configurationBuilder_ == null) {
          actualMessage_ = builderForValue.build();
          onChanged();
        } else {
          configurationBuilder_.setMessage(builderForValue.build());
        }
        actualMessageCase_ = 6;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
       */
      public Builder mergeConfiguration(com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration value) {
        if (configurationBuilder_ == null) {
          if (actualMessageCase_ == 6 &&
              actualMessage_ != com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.getDefaultInstance()) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.newBuilder((com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration) actualMessage_)
                .mergeFrom(value).buildPartial();
          } else {
            actualMessage_ = value;
          }
          onChanged();
        } else {
          if (actualMessageCase_ == 6) {
            configurationBuilder_.mergeFrom(value);
          }
          configurationBuilder_.setMessage(value);
        }
        actualMessageCase_ = 6;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
       */
      public Builder clearConfiguration() {
        if (configurationBuilder_ == null) {
          if (actualMessageCase_ == 6) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
            onChanged();
          }
        } else {
          if (actualMessageCase_ == 6) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
          }
          configurationBuilder_.clear();
        }
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.Builder getConfigurationBuilder() {
        return getConfigurationFieldBuilder().getBuilder();
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Config.ConfigurationOrBuilder getConfigurationOrBuilder() {
        if ((actualMessageCase_ == 6) && (configurationBuilder_ != null)) {
          return configurationBuilder_.getMessageOrBuilder();
        } else {
          if (actualMessageCase_ == 6) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.Configuration configuration = 6;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration, com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.Builder, com.amazonaws.services.kinesis.producer.protobuf.Config.ConfigurationOrBuilder> 
          getConfigurationFieldBuilder() {
        if (configurationBuilder_ == null) {
          if (!(actualMessageCase_ == 6)) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.getDefaultInstance();
          }
          configurationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration, com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.Builder, com.amazonaws.services.kinesis.producer.protobuf.Config.ConfigurationOrBuilder>(
                  (com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration) actualMessage_,
                  getParentForChildren(),
                  isClean());
          actualMessage_ = null;
        }
        actualMessageCase_ = 6;
        return configurationBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequestOrBuilder> metricsRequestBuilder_;
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
       */
      public boolean hasMetricsRequest() {
        return actualMessageCase_ == 7;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest getMetricsRequest() {
        if (metricsRequestBuilder_ == null) {
          if (actualMessageCase_ == 7) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.getDefaultInstance();
        } else {
          if (actualMessageCase_ == 7) {
            return metricsRequestBuilder_.getMessage();
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
       */
      public Builder setMetricsRequest(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest value) {
        if (metricsRequestBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actualMessage_ = value;
          onChanged();
        } else {
          metricsRequestBuilder_.setMessage(value);
        }
        actualMessageCase_ = 7;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
       */
      public Builder setMetricsRequest(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.Builder builderForValue) {
        if (metricsRequestBuilder_ == null) {
          actualMessage_ = builderForValue.build();
          onChanged();
        } else {
          metricsRequestBuilder_.setMessage(builderForValue.build());
        }
        actualMessageCase_ = 7;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
       */
      public Builder mergeMetricsRequest(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest value) {
        if (metricsRequestBuilder_ == null) {
          if (actualMessageCase_ == 7 &&
              actualMessage_ != com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.getDefaultInstance()) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.newBuilder((com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) actualMessage_)
                .mergeFrom(value).buildPartial();
          } else {
            actualMessage_ = value;
          }
          onChanged();
        } else {
          if (actualMessageCase_ == 7) {
            metricsRequestBuilder_.mergeFrom(value);
          }
          metricsRequestBuilder_.setMessage(value);
        }
        actualMessageCase_ = 7;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
       */
      public Builder clearMetricsRequest() {
        if (metricsRequestBuilder_ == null) {
          if (actualMessageCase_ == 7) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
            onChanged();
          }
        } else {
          if (actualMessageCase_ == 7) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
          }
          metricsRequestBuilder_.clear();
        }
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.Builder getMetricsRequestBuilder() {
        return getMetricsRequestFieldBuilder().getBuilder();
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequestOrBuilder getMetricsRequestOrBuilder() {
        if ((actualMessageCase_ == 7) && (metricsRequestBuilder_ != null)) {
          return metricsRequestBuilder_.getMessageOrBuilder();
        } else {
          if (actualMessageCase_ == 7) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest metrics_request = 7;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequestOrBuilder> 
          getMetricsRequestFieldBuilder() {
        if (metricsRequestBuilder_ == null) {
          if (!(actualMessageCase_ == 7)) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.getDefaultInstance();
          }
          metricsRequestBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequestOrBuilder>(
                  (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) actualMessage_,
                  getParentForChildren(),
                  isClean());
          actualMessage_ = null;
        }
        actualMessageCase_ = 7;
        return metricsRequestBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponseOrBuilder> metricsResponseBuilder_;
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
       */
      public boolean hasMetricsResponse() {
        return actualMessageCase_ == 8;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse getMetricsResponse() {
        if (metricsResponseBuilder_ == null) {
          if (actualMessageCase_ == 8) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.getDefaultInstance();
        } else {
          if (actualMessageCase_ == 8) {
            return metricsResponseBuilder_.getMessage();
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
       */
      public Builder setMetricsResponse(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse value) {
        if (metricsResponseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actualMessage_ = value;
          onChanged();
        } else {
          metricsResponseBuilder_.setMessage(value);
        }
        actualMessageCase_ = 8;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
       */
      public Builder setMetricsResponse(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.Builder builderForValue) {
        if (metricsResponseBuilder_ == null) {
          actualMessage_ = builderForValue.build();
          onChanged();
        } else {
          metricsResponseBuilder_.setMessage(builderForValue.build());
        }
        actualMessageCase_ = 8;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
       */
      public Builder mergeMetricsResponse(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse value) {
        if (metricsResponseBuilder_ == null) {
          if (actualMessageCase_ == 8 &&
              actualMessage_ != com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.getDefaultInstance()) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.newBuilder((com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) actualMessage_)
                .mergeFrom(value).buildPartial();
          } else {
            actualMessage_ = value;
          }
          onChanged();
        } else {
          if (actualMessageCase_ == 8) {
            metricsResponseBuilder_.mergeFrom(value);
          }
          metricsResponseBuilder_.setMessage(value);
        }
        actualMessageCase_ = 8;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
       */
      public Builder clearMetricsResponse() {
        if (metricsResponseBuilder_ == null) {
          if (actualMessageCase_ == 8) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
            onChanged();
          }
        } else {
          if (actualMessageCase_ == 8) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
          }
          metricsResponseBuilder_.clear();
        }
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.Builder getMetricsResponseBuilder() {
        return getMetricsResponseFieldBuilder().getBuilder();
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponseOrBuilder getMetricsResponseOrBuilder() {
        if ((actualMessageCase_ == 8) && (metricsResponseBuilder_ != null)) {
          return metricsResponseBuilder_.getMessageOrBuilder();
        } else {
          if (actualMessageCase_ == 8) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse metrics_response = 8;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponseOrBuilder> 
          getMetricsResponseFieldBuilder() {
        if (metricsResponseBuilder_ == null) {
          if (!(actualMessageCase_ == 8)) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.getDefaultInstance();
          }
          metricsResponseBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponseOrBuilder>(
                  (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) actualMessage_,
                  getParentForChildren(),
                  isClean());
          actualMessage_ = null;
        }
        actualMessageCase_ = 8;
        return metricsResponseBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials, com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentialsOrBuilder> setCredentialsBuilder_;
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
       */
      public boolean hasSetCredentials() {
        return actualMessageCase_ == 9;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials getSetCredentials() {
        if (setCredentialsBuilder_ == null) {
          if (actualMessageCase_ == 9) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.getDefaultInstance();
        } else {
          if (actualMessageCase_ == 9) {
            return setCredentialsBuilder_.getMessage();
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
       */
      public Builder setSetCredentials(com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials value) {
        if (setCredentialsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          actualMessage_ = value;
          onChanged();
        } else {
          setCredentialsBuilder_.setMessage(value);
        }
        actualMessageCase_ = 9;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
       */
      public Builder setSetCredentials(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.Builder builderForValue) {
        if (setCredentialsBuilder_ == null) {
          actualMessage_ = builderForValue.build();
          onChanged();
        } else {
          setCredentialsBuilder_.setMessage(builderForValue.build());
        }
        actualMessageCase_ = 9;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
       */
      public Builder mergeSetCredentials(com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials value) {
        if (setCredentialsBuilder_ == null) {
          if (actualMessageCase_ == 9 &&
              actualMessage_ != com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.getDefaultInstance()) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.newBuilder((com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) actualMessage_)
                .mergeFrom(value).buildPartial();
          } else {
            actualMessage_ = value;
          }
          onChanged();
        } else {
          if (actualMessageCase_ == 9) {
            setCredentialsBuilder_.mergeFrom(value);
          }
          setCredentialsBuilder_.setMessage(value);
        }
        actualMessageCase_ = 9;
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
       */
      public Builder clearSetCredentials() {
        if (setCredentialsBuilder_ == null) {
          if (actualMessageCase_ == 9) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
            onChanged();
          }
        } else {
          if (actualMessageCase_ == 9) {
            actualMessageCase_ = 0;
            actualMessage_ = null;
          }
          setCredentialsBuilder_.clear();
        }
        return this;
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.Builder getSetCredentialsBuilder() {
        return getSetCredentialsFieldBuilder().getBuilder();
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentialsOrBuilder getSetCredentialsOrBuilder() {
        if ((actualMessageCase_ == 9) && (setCredentialsBuilder_ != null)) {
          return setCredentialsBuilder_.getMessageOrBuilder();
        } else {
          if (actualMessageCase_ == 9) {
            return (com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) actualMessage_;
          }
          return com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.getDefaultInstance();
        }
      }
      /**
       * optional .com.amazonaws.services.kinesis.producer.protobuf.SetCredentials set_credentials = 9;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials, com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentialsOrBuilder> 
          getSetCredentialsFieldBuilder() {
        if (setCredentialsBuilder_ == null) {
          if (!(actualMessageCase_ == 9)) {
            actualMessage_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.getDefaultInstance();
          }
          setCredentialsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials, com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentialsOrBuilder>(
                  (com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) actualMessage_,
                  getParentForChildren(),
                  isClean());
          actualMessage_ = null;
        }
        actualMessageCase_ = 9;
        return setCredentialsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.Message)
    }

    static {
      defaultInstance = new Message(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.Message)
  }

  public interface PutRecordOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.PutRecord)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string stream_name = 1;
     */
    boolean hasStreamName();
    /**
     * required string stream_name = 1;
     */
    java.lang.String getStreamName();
    /**
     * required string stream_name = 1;
     */
    com.google.protobuf.ByteString
        getStreamNameBytes();

    /**
     * required string partition_key = 2;
     */
    boolean hasPartitionKey();
    /**
     * required string partition_key = 2;
     */
    java.lang.String getPartitionKey();
    /**
     * required string partition_key = 2;
     */
    com.google.protobuf.ByteString
        getPartitionKeyBytes();

    /**
     * optional string explicit_hash_key = 3;
     */
    boolean hasExplicitHashKey();
    /**
     * optional string explicit_hash_key = 3;
     */
    java.lang.String getExplicitHashKey();
    /**
     * optional string explicit_hash_key = 3;
     */
    com.google.protobuf.ByteString
        getExplicitHashKeyBytes();

    /**
     * required bytes data = 4;
     */
    boolean hasData();
    /**
     * required bytes data = 4;
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.PutRecord}
   */
  public static final class PutRecord extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.PutRecord)
      PutRecordOrBuilder {
    // Use PutRecord.newBuilder() to construct.
    private PutRecord(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PutRecord(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PutRecord defaultInstance;
    public static PutRecord getDefaultInstance() {
      return defaultInstance;
    }

    public PutRecord getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PutRecord(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              streamName_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              partitionKey_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              explicitHashKey_ = bs;
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              data_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecord_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecord_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public PutRecord parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PutRecord(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int STREAM_NAME_FIELD_NUMBER = 1;
    private java.lang.Object streamName_;
    /**
     * required string stream_name = 1;
     */
    public boolean hasStreamName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string stream_name = 1;
     */
    public java.lang.String getStreamName() {
      java.lang.Object ref = streamName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          streamName_ = s;
        }
        return s;
      }
    }
    /**
     * required string stream_name = 1;
     */
    public com.google.protobuf.ByteString
        getStreamNameBytes() {
      java.lang.Object ref = streamName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        streamName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PARTITION_KEY_FIELD_NUMBER = 2;
    private java.lang.Object partitionKey_;
    /**
     * required string partition_key = 2;
     */
    public boolean hasPartitionKey() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string partition_key = 2;
     */
    public java.lang.String getPartitionKey() {
      java.lang.Object ref = partitionKey_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          partitionKey_ = s;
        }
        return s;
      }
    }
    /**
     * required string partition_key = 2;
     */
    public com.google.protobuf.ByteString
        getPartitionKeyBytes() {
      java.lang.Object ref = partitionKey_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        partitionKey_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXPLICIT_HASH_KEY_FIELD_NUMBER = 3;
    private java.lang.Object explicitHashKey_;
    /**
     * optional string explicit_hash_key = 3;
     */
    public boolean hasExplicitHashKey() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string explicit_hash_key = 3;
     */
    public java.lang.String getExplicitHashKey() {
      java.lang.Object ref = explicitHashKey_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          explicitHashKey_ = s;
        }
        return s;
      }
    }
    /**
     * optional string explicit_hash_key = 3;
     */
    public com.google.protobuf.ByteString
        getExplicitHashKeyBytes() {
      java.lang.Object ref = explicitHashKey_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        explicitHashKey_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DATA_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString data_;
    /**
     * required bytes data = 4;
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * required bytes data = 4;
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private void initFields() {
      streamName_ = "";
      partitionKey_ = "";
      explicitHashKey_ = "";
      data_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasStreamName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPartitionKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getStreamNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getPartitionKeyBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getExplicitHashKeyBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getStreamNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getPartitionKeyBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getExplicitHashKeyBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.PutRecord}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.PutRecord)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecord_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecord_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        streamName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        partitionKey_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        explicitHashKey_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecord_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.streamName_ = streamName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.partitionKey_ = partitionKey_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.explicitHashKey_ = explicitHashKey_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.getDefaultInstance()) return this;
        if (other.hasStreamName()) {
          bitField0_ |= 0x00000001;
          streamName_ = other.streamName_;
          onChanged();
        }
        if (other.hasPartitionKey()) {
          bitField0_ |= 0x00000002;
          partitionKey_ = other.partitionKey_;
          onChanged();
        }
        if (other.hasExplicitHashKey()) {
          bitField0_ |= 0x00000004;
          explicitHashKey_ = other.explicitHashKey_;
          onChanged();
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasStreamName()) {
          
          return false;
        }
        if (!hasPartitionKey()) {
          
          return false;
        }
        if (!hasData()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object streamName_ = "";
      /**
       * required string stream_name = 1;
       */
      public boolean hasStreamName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string stream_name = 1;
       */
      public java.lang.String getStreamName() {
        java.lang.Object ref = streamName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            streamName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string stream_name = 1;
       */
      public com.google.protobuf.ByteString
          getStreamNameBytes() {
        java.lang.Object ref = streamName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          streamName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string stream_name = 1;
       */
      public Builder setStreamName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        streamName_ = value;
        onChanged();
        return this;
      }
      /**
       * required string stream_name = 1;
       */
      public Builder clearStreamName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        streamName_ = getDefaultInstance().getStreamName();
        onChanged();
        return this;
      }
      /**
       * required string stream_name = 1;
       */
      public Builder setStreamNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        streamName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object partitionKey_ = "";
      /**
       * required string partition_key = 2;
       */
      public boolean hasPartitionKey() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required string partition_key = 2;
       */
      public java.lang.String getPartitionKey() {
        java.lang.Object ref = partitionKey_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            partitionKey_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string partition_key = 2;
       */
      public com.google.protobuf.ByteString
          getPartitionKeyBytes() {
        java.lang.Object ref = partitionKey_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          partitionKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string partition_key = 2;
       */
      public Builder setPartitionKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        partitionKey_ = value;
        onChanged();
        return this;
      }
      /**
       * required string partition_key = 2;
       */
      public Builder clearPartitionKey() {
        bitField0_ = (bitField0_ & ~0x00000002);
        partitionKey_ = getDefaultInstance().getPartitionKey();
        onChanged();
        return this;
      }
      /**
       * required string partition_key = 2;
       */
      public Builder setPartitionKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        partitionKey_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object explicitHashKey_ = "";
      /**
       * optional string explicit_hash_key = 3;
       */
      public boolean hasExplicitHashKey() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string explicit_hash_key = 3;
       */
      public java.lang.String getExplicitHashKey() {
        java.lang.Object ref = explicitHashKey_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            explicitHashKey_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string explicit_hash_key = 3;
       */
      public com.google.protobuf.ByteString
          getExplicitHashKeyBytes() {
        java.lang.Object ref = explicitHashKey_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          explicitHashKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string explicit_hash_key = 3;
       */
      public Builder setExplicitHashKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        explicitHashKey_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string explicit_hash_key = 3;
       */
      public Builder clearExplicitHashKey() {
        bitField0_ = (bitField0_ & ~0x00000004);
        explicitHashKey_ = getDefaultInstance().getExplicitHashKey();
        onChanged();
        return this;
      }
      /**
       * optional string explicit_hash_key = 3;
       */
      public Builder setExplicitHashKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        explicitHashKey_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * required bytes data = 4;
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * required bytes data = 4;
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * required bytes data = 4;
       */
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        data_ = value;
        onChanged();
        return this;
      }
      /**
       * required bytes data = 4;
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000008);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.PutRecord)
    }

    static {
      defaultInstance = new PutRecord(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.PutRecord)
  }

  public interface FlushOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.Flush)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string stream_name = 1;
     */
    boolean hasStreamName();
    /**
     * optional string stream_name = 1;
     */
    java.lang.String getStreamName();
    /**
     * optional string stream_name = 1;
     */
    com.google.protobuf.ByteString
        getStreamNameBytes();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Flush}
   */
  public static final class Flush extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.Flush)
      FlushOrBuilder {
    // Use Flush.newBuilder() to construct.
    private Flush(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Flush(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Flush defaultInstance;
    public static Flush getDefaultInstance() {
      return defaultInstance;
    }

    public Flush getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Flush(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              streamName_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Flush_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Flush_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public Flush parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Flush(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int STREAM_NAME_FIELD_NUMBER = 1;
    private java.lang.Object streamName_;
    /**
     * optional string stream_name = 1;
     */
    public boolean hasStreamName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string stream_name = 1;
     */
    public java.lang.String getStreamName() {
      java.lang.Object ref = streamName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          streamName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string stream_name = 1;
     */
    public com.google.protobuf.ByteString
        getStreamNameBytes() {
      java.lang.Object ref = streamName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        streamName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      streamName_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getStreamNameBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getStreamNameBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Flush}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.Flush)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.FlushOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Flush_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Flush_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        streamName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Flush_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.streamName_ = streamName_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.getDefaultInstance()) return this;
        if (other.hasStreamName()) {
          bitField0_ |= 0x00000001;
          streamName_ = other.streamName_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object streamName_ = "";
      /**
       * optional string stream_name = 1;
       */
      public boolean hasStreamName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string stream_name = 1;
       */
      public java.lang.String getStreamName() {
        java.lang.Object ref = streamName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            streamName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string stream_name = 1;
       */
      public com.google.protobuf.ByteString
          getStreamNameBytes() {
        java.lang.Object ref = streamName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          streamName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string stream_name = 1;
       */
      public Builder setStreamName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        streamName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string stream_name = 1;
       */
      public Builder clearStreamName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        streamName_ = getDefaultInstance().getStreamName();
        onChanged();
        return this;
      }
      /**
       * optional string stream_name = 1;
       */
      public Builder setStreamNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        streamName_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.Flush)
    }

    static {
      defaultInstance = new Flush(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.Flush)
  }

  public interface AttemptOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.Attempt)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required uint32 delay = 1;
     */
    boolean hasDelay();
    /**
     * required uint32 delay = 1;
     */
    int getDelay();

    /**
     * required uint32 duration = 2;
     */
    boolean hasDuration();
    /**
     * required uint32 duration = 2;
     */
    int getDuration();

    /**
     * required bool success = 3;
     */
    boolean hasSuccess();
    /**
     * required bool success = 3;
     */
    boolean getSuccess();

    /**
     * optional string error_code = 4;
     */
    boolean hasErrorCode();
    /**
     * optional string error_code = 4;
     */
    java.lang.String getErrorCode();
    /**
     * optional string error_code = 4;
     */
    com.google.protobuf.ByteString
        getErrorCodeBytes();

    /**
     * optional string error_message = 5;
     */
    boolean hasErrorMessage();
    /**
     * optional string error_message = 5;
     */
    java.lang.String getErrorMessage();
    /**
     * optional string error_message = 5;
     */
    com.google.protobuf.ByteString
        getErrorMessageBytes();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Attempt}
   */
  public static final class Attempt extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.Attempt)
      AttemptOrBuilder {
    // Use Attempt.newBuilder() to construct.
    private Attempt(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Attempt(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Attempt defaultInstance;
    public static Attempt getDefaultInstance() {
      return defaultInstance;
    }

    public Attempt getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Attempt(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              delay_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              duration_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              success_ = input.readBool();
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              errorCode_ = bs;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              errorMessage_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Attempt_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Attempt_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public Attempt parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Attempt(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int DELAY_FIELD_NUMBER = 1;
    private int delay_;
    /**
     * required uint32 delay = 1;
     */
    public boolean hasDelay() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required uint32 delay = 1;
     */
    public int getDelay() {
      return delay_;
    }

    public static final int DURATION_FIELD_NUMBER = 2;
    private int duration_;
    /**
     * required uint32 duration = 2;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required uint32 duration = 2;
     */
    public int getDuration() {
      return duration_;
    }

    public static final int SUCCESS_FIELD_NUMBER = 3;
    private boolean success_;
    /**
     * required bool success = 3;
     */
    public boolean hasSuccess() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required bool success = 3;
     */
    public boolean getSuccess() {
      return success_;
    }

    public static final int ERROR_CODE_FIELD_NUMBER = 4;
    private java.lang.Object errorCode_;
    /**
     * optional string error_code = 4;
     */
    public boolean hasErrorCode() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional string error_code = 4;
     */
    public java.lang.String getErrorCode() {
      java.lang.Object ref = errorCode_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          errorCode_ = s;
        }
        return s;
      }
    }
    /**
     * optional string error_code = 4;
     */
    public com.google.protobuf.ByteString
        getErrorCodeBytes() {
      java.lang.Object ref = errorCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errorCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ERROR_MESSAGE_FIELD_NUMBER = 5;
    private java.lang.Object errorMessage_;
    /**
     * optional string error_message = 5;
     */
    public boolean hasErrorMessage() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional string error_message = 5;
     */
    public java.lang.String getErrorMessage() {
      java.lang.Object ref = errorMessage_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          errorMessage_ = s;
        }
        return s;
      }
    }
    /**
     * optional string error_message = 5;
     */
    public com.google.protobuf.ByteString
        getErrorMessageBytes() {
      java.lang.Object ref = errorMessage_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errorMessage_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      delay_ = 0;
      duration_ = 0;
      success_ = false;
      errorCode_ = "";
      errorMessage_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasDelay()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDuration()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSuccess()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, delay_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, duration_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, success_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getErrorCodeBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, getErrorMessageBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, delay_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, duration_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, success_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getErrorCodeBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getErrorMessageBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Attempt}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.Attempt)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.AttemptOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Attempt_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Attempt_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        delay_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        duration_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        success_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        errorCode_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        errorMessage_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Attempt_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.delay_ = delay_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.duration_ = duration_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.success_ = success_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.errorCode_ = errorCode_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.errorMessage_ = errorMessage_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.getDefaultInstance()) return this;
        if (other.hasDelay()) {
          setDelay(other.getDelay());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        if (other.hasSuccess()) {
          setSuccess(other.getSuccess());
        }
        if (other.hasErrorCode()) {
          bitField0_ |= 0x00000008;
          errorCode_ = other.errorCode_;
          onChanged();
        }
        if (other.hasErrorMessage()) {
          bitField0_ |= 0x00000010;
          errorMessage_ = other.errorMessage_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasDelay()) {
          
          return false;
        }
        if (!hasDuration()) {
          
          return false;
        }
        if (!hasSuccess()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int delay_ ;
      /**
       * required uint32 delay = 1;
       */
      public boolean hasDelay() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required uint32 delay = 1;
       */
      public int getDelay() {
        return delay_;
      }
      /**
       * required uint32 delay = 1;
       */
      public Builder setDelay(int value) {
        bitField0_ |= 0x00000001;
        delay_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 delay = 1;
       */
      public Builder clearDelay() {
        bitField0_ = (bitField0_ & ~0x00000001);
        delay_ = 0;
        onChanged();
        return this;
      }

      private int duration_ ;
      /**
       * required uint32 duration = 2;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required uint32 duration = 2;
       */
      public int getDuration() {
        return duration_;
      }
      /**
       * required uint32 duration = 2;
       */
      public Builder setDuration(int value) {
        bitField0_ |= 0x00000002;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 duration = 2;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000002);
        duration_ = 0;
        onChanged();
        return this;
      }

      private boolean success_ ;
      /**
       * required bool success = 3;
       */
      public boolean hasSuccess() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required bool success = 3;
       */
      public boolean getSuccess() {
        return success_;
      }
      /**
       * required bool success = 3;
       */
      public Builder setSuccess(boolean value) {
        bitField0_ |= 0x00000004;
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * required bool success = 3;
       */
      public Builder clearSuccess() {
        bitField0_ = (bitField0_ & ~0x00000004);
        success_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object errorCode_ = "";
      /**
       * optional string error_code = 4;
       */
      public boolean hasErrorCode() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string error_code = 4;
       */
      public java.lang.String getErrorCode() {
        java.lang.Object ref = errorCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            errorCode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string error_code = 4;
       */
      public com.google.protobuf.ByteString
          getErrorCodeBytes() {
        java.lang.Object ref = errorCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errorCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string error_code = 4;
       */
      public Builder setErrorCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        errorCode_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string error_code = 4;
       */
      public Builder clearErrorCode() {
        bitField0_ = (bitField0_ & ~0x00000008);
        errorCode_ = getDefaultInstance().getErrorCode();
        onChanged();
        return this;
      }
      /**
       * optional string error_code = 4;
       */
      public Builder setErrorCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        errorCode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object errorMessage_ = "";
      /**
       * optional string error_message = 5;
       */
      public boolean hasErrorMessage() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional string error_message = 5;
       */
      public java.lang.String getErrorMessage() {
        java.lang.Object ref = errorMessage_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            errorMessage_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string error_message = 5;
       */
      public com.google.protobuf.ByteString
          getErrorMessageBytes() {
        java.lang.Object ref = errorMessage_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errorMessage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string error_message = 5;
       */
      public Builder setErrorMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        errorMessage_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string error_message = 5;
       */
      public Builder clearErrorMessage() {
        bitField0_ = (bitField0_ & ~0x00000010);
        errorMessage_ = getDefaultInstance().getErrorMessage();
        onChanged();
        return this;
      }
      /**
       * optional string error_message = 5;
       */
      public Builder setErrorMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        errorMessage_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.Attempt)
    }

    static {
      defaultInstance = new Attempt(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.Attempt)
  }

  public interface PutRecordResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
     */
    java.util.List 
        getAttemptsList();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt getAttempts(int index);
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
     */
    int getAttemptsCount();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
     */
    java.util.List 
        getAttemptsOrBuilderList();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.AttemptOrBuilder getAttemptsOrBuilder(
        int index);

    /**
     * required bool success = 2;
     */
    boolean hasSuccess();
    /**
     * required bool success = 2;
     */
    boolean getSuccess();

    /**
     * optional string shard_id = 3;
     */
    boolean hasShardId();
    /**
     * optional string shard_id = 3;
     */
    java.lang.String getShardId();
    /**
     * optional string shard_id = 3;
     */
    com.google.protobuf.ByteString
        getShardIdBytes();

    /**
     * optional string sequence_number = 4;
     */
    boolean hasSequenceNumber();
    /**
     * optional string sequence_number = 4;
     */
    java.lang.String getSequenceNumber();
    /**
     * optional string sequence_number = 4;
     */
    com.google.protobuf.ByteString
        getSequenceNumberBytes();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult}
   */
  public static final class PutRecordResult extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult)
      PutRecordResultOrBuilder {
    // Use PutRecordResult.newBuilder() to construct.
    private PutRecordResult(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PutRecordResult(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PutRecordResult defaultInstance;
    public static PutRecordResult getDefaultInstance() {
      return defaultInstance;
    }

    public PutRecordResult getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PutRecordResult(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                attempts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              attempts_.add(input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.PARSER, extensionRegistry));
              break;
            }
            case 16: {
              bitField0_ |= 0x00000001;
              success_ = input.readBool();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              shardId_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              sequenceNumber_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          attempts_ = java.util.Collections.unmodifiableList(attempts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecordResult_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecordResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public PutRecordResult parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PutRecordResult(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ATTEMPTS_FIELD_NUMBER = 1;
    private java.util.List attempts_;
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
     */
    public java.util.List getAttemptsList() {
      return attempts_;
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
     */
    public java.util.List 
        getAttemptsOrBuilderList() {
      return attempts_;
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
     */
    public int getAttemptsCount() {
      return attempts_.size();
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt getAttempts(int index) {
      return attempts_.get(index);
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.AttemptOrBuilder getAttemptsOrBuilder(
        int index) {
      return attempts_.get(index);
    }

    public static final int SUCCESS_FIELD_NUMBER = 2;
    private boolean success_;
    /**
     * required bool success = 2;
     */
    public boolean hasSuccess() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required bool success = 2;
     */
    public boolean getSuccess() {
      return success_;
    }

    public static final int SHARD_ID_FIELD_NUMBER = 3;
    private java.lang.Object shardId_;
    /**
     * optional string shard_id = 3;
     */
    public boolean hasShardId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string shard_id = 3;
     */
    public java.lang.String getShardId() {
      java.lang.Object ref = shardId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shardId_ = s;
        }
        return s;
      }
    }
    /**
     * optional string shard_id = 3;
     */
    public com.google.protobuf.ByteString
        getShardIdBytes() {
      java.lang.Object ref = shardId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shardId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 4;
    private java.lang.Object sequenceNumber_;
    /**
     * optional string sequence_number = 4;
     */
    public boolean hasSequenceNumber() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string sequence_number = 4;
     */
    public java.lang.String getSequenceNumber() {
      java.lang.Object ref = sequenceNumber_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          sequenceNumber_ = s;
        }
        return s;
      }
    }
    /**
     * optional string sequence_number = 4;
     */
    public com.google.protobuf.ByteString
        getSequenceNumberBytes() {
      java.lang.Object ref = sequenceNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sequenceNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      attempts_ = java.util.Collections.emptyList();
      success_ = false;
      shardId_ = "";
      sequenceNumber_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasSuccess()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getAttemptsCount(); i++) {
        if (!getAttempts(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < attempts_.size(); i++) {
        output.writeMessage(1, attempts_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(2, success_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(3, getShardIdBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(4, getSequenceNumberBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < attempts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, attempts_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, success_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getShardIdBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getSequenceNumberBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecordResult_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecordResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getAttemptsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (attemptsBuilder_ == null) {
          attempts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          attemptsBuilder_.clear();
        }
        success_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        shardId_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        sequenceNumber_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecordResult_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (attemptsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            attempts_ = java.util.Collections.unmodifiableList(attempts_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.attempts_ = attempts_;
        } else {
          result.attempts_ = attemptsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.success_ = success_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.shardId_ = shardId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.sequenceNumber_ = sequenceNumber_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.getDefaultInstance()) return this;
        if (attemptsBuilder_ == null) {
          if (!other.attempts_.isEmpty()) {
            if (attempts_.isEmpty()) {
              attempts_ = other.attempts_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAttemptsIsMutable();
              attempts_.addAll(other.attempts_);
            }
            onChanged();
          }
        } else {
          if (!other.attempts_.isEmpty()) {
            if (attemptsBuilder_.isEmpty()) {
              attemptsBuilder_.dispose();
              attemptsBuilder_ = null;
              attempts_ = other.attempts_;
              bitField0_ = (bitField0_ & ~0x00000001);
              attemptsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getAttemptsFieldBuilder() : null;
            } else {
              attemptsBuilder_.addAllMessages(other.attempts_);
            }
          }
        }
        if (other.hasSuccess()) {
          setSuccess(other.getSuccess());
        }
        if (other.hasShardId()) {
          bitField0_ |= 0x00000004;
          shardId_ = other.shardId_;
          onChanged();
        }
        if (other.hasSequenceNumber()) {
          bitField0_ |= 0x00000008;
          sequenceNumber_ = other.sequenceNumber_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasSuccess()) {
          
          return false;
        }
        for (int i = 0; i < getAttemptsCount(); i++) {
          if (!getAttempts(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List attempts_ =
        java.util.Collections.emptyList();
      private void ensureAttemptsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          attempts_ = new java.util.ArrayList(attempts_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt, com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.AttemptOrBuilder> attemptsBuilder_;

      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public java.util.List getAttemptsList() {
        if (attemptsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(attempts_);
        } else {
          return attemptsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public int getAttemptsCount() {
        if (attemptsBuilder_ == null) {
          return attempts_.size();
        } else {
          return attemptsBuilder_.getCount();
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt getAttempts(int index) {
        if (attemptsBuilder_ == null) {
          return attempts_.get(index);
        } else {
          return attemptsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public Builder setAttempts(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt value) {
        if (attemptsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttemptsIsMutable();
          attempts_.set(index, value);
          onChanged();
        } else {
          attemptsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public Builder setAttempts(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder builderForValue) {
        if (attemptsBuilder_ == null) {
          ensureAttemptsIsMutable();
          attempts_.set(index, builderForValue.build());
          onChanged();
        } else {
          attemptsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public Builder addAttempts(com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt value) {
        if (attemptsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttemptsIsMutable();
          attempts_.add(value);
          onChanged();
        } else {
          attemptsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public Builder addAttempts(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt value) {
        if (attemptsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttemptsIsMutable();
          attempts_.add(index, value);
          onChanged();
        } else {
          attemptsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public Builder addAttempts(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder builderForValue) {
        if (attemptsBuilder_ == null) {
          ensureAttemptsIsMutable();
          attempts_.add(builderForValue.build());
          onChanged();
        } else {
          attemptsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public Builder addAttempts(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder builderForValue) {
        if (attemptsBuilder_ == null) {
          ensureAttemptsIsMutable();
          attempts_.add(index, builderForValue.build());
          onChanged();
        } else {
          attemptsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public Builder addAllAttempts(
          java.lang.Iterable values) {
        if (attemptsBuilder_ == null) {
          ensureAttemptsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, attempts_);
          onChanged();
        } else {
          attemptsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public Builder clearAttempts() {
        if (attemptsBuilder_ == null) {
          attempts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          attemptsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public Builder removeAttempts(int index) {
        if (attemptsBuilder_ == null) {
          ensureAttemptsIsMutable();
          attempts_.remove(index);
          onChanged();
        } else {
          attemptsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder getAttemptsBuilder(
          int index) {
        return getAttemptsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.AttemptOrBuilder getAttemptsOrBuilder(
          int index) {
        if (attemptsBuilder_ == null) {
          return attempts_.get(index);  } else {
          return attemptsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public java.util.List 
           getAttemptsOrBuilderList() {
        if (attemptsBuilder_ != null) {
          return attemptsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(attempts_);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder addAttemptsBuilder() {
        return getAttemptsFieldBuilder().addBuilder(
            com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.getDefaultInstance());
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder addAttemptsBuilder(
          int index) {
        return getAttemptsFieldBuilder().addBuilder(
            index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.getDefaultInstance());
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Attempt attempts = 1;
       */
      public java.util.List 
           getAttemptsBuilderList() {
        return getAttemptsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt, com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.AttemptOrBuilder> 
          getAttemptsFieldBuilder() {
        if (attemptsBuilder_ == null) {
          attemptsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt, com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.AttemptOrBuilder>(
                  attempts_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          attempts_ = null;
        }
        return attemptsBuilder_;
      }

      private boolean success_ ;
      /**
       * required bool success = 2;
       */
      public boolean hasSuccess() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required bool success = 2;
       */
      public boolean getSuccess() {
        return success_;
      }
      /**
       * required bool success = 2;
       */
      public Builder setSuccess(boolean value) {
        bitField0_ |= 0x00000002;
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * required bool success = 2;
       */
      public Builder clearSuccess() {
        bitField0_ = (bitField0_ & ~0x00000002);
        success_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object shardId_ = "";
      /**
       * optional string shard_id = 3;
       */
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string shard_id = 3;
       */
      public java.lang.String getShardId() {
        java.lang.Object ref = shardId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shardId_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string shard_id = 3;
       */
      public com.google.protobuf.ByteString
          getShardIdBytes() {
        java.lang.Object ref = shardId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shardId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string shard_id = 3;
       */
      public Builder setShardId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        shardId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string shard_id = 3;
       */
      public Builder clearShardId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        shardId_ = getDefaultInstance().getShardId();
        onChanged();
        return this;
      }
      /**
       * optional string shard_id = 3;
       */
      public Builder setShardIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        shardId_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object sequenceNumber_ = "";
      /**
       * optional string sequence_number = 4;
       */
      public boolean hasSequenceNumber() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string sequence_number = 4;
       */
      public java.lang.String getSequenceNumber() {
        java.lang.Object ref = sequenceNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            sequenceNumber_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string sequence_number = 4;
       */
      public com.google.protobuf.ByteString
          getSequenceNumberBytes() {
        java.lang.Object ref = sequenceNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sequenceNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string sequence_number = 4;
       */
      public Builder setSequenceNumber(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        sequenceNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string sequence_number = 4;
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000008);
        sequenceNumber_ = getDefaultInstance().getSequenceNumber();
        onChanged();
        return this;
      }
      /**
       * optional string sequence_number = 4;
       */
      public Builder setSequenceNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        sequenceNumber_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult)
    }

    static {
      defaultInstance = new PutRecordResult(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.PutRecordResult)
  }

  public interface CredentialsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.Credentials)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string akid = 1;
     */
    boolean hasAkid();
    /**
     * required string akid = 1;
     */
    java.lang.String getAkid();
    /**
     * required string akid = 1;
     */
    com.google.protobuf.ByteString
        getAkidBytes();

    /**
     * required string secret_key = 2;
     */
    boolean hasSecretKey();
    /**
     * required string secret_key = 2;
     */
    java.lang.String getSecretKey();
    /**
     * required string secret_key = 2;
     */
    com.google.protobuf.ByteString
        getSecretKeyBytes();

    /**
     * optional string token = 3;
     */
    boolean hasToken();
    /**
     * optional string token = 3;
     */
    java.lang.String getToken();
    /**
     * optional string token = 3;
     */
    com.google.protobuf.ByteString
        getTokenBytes();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Credentials}
   */
  public static final class Credentials extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.Credentials)
      CredentialsOrBuilder {
    // Use Credentials.newBuilder() to construct.
    private Credentials(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Credentials(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Credentials defaultInstance;
    public static Credentials getDefaultInstance() {
      return defaultInstance;
    }

    public Credentials getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Credentials(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              akid_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              secretKey_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              token_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Credentials_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Credentials_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public Credentials parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Credentials(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int AKID_FIELD_NUMBER = 1;
    private java.lang.Object akid_;
    /**
     * required string akid = 1;
     */
    public boolean hasAkid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string akid = 1;
     */
    public java.lang.String getAkid() {
      java.lang.Object ref = akid_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          akid_ = s;
        }
        return s;
      }
    }
    /**
     * required string akid = 1;
     */
    public com.google.protobuf.ByteString
        getAkidBytes() {
      java.lang.Object ref = akid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        akid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECRET_KEY_FIELD_NUMBER = 2;
    private java.lang.Object secretKey_;
    /**
     * required string secret_key = 2;
     */
    public boolean hasSecretKey() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string secret_key = 2;
     */
    public java.lang.String getSecretKey() {
      java.lang.Object ref = secretKey_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          secretKey_ = s;
        }
        return s;
      }
    }
    /**
     * required string secret_key = 2;
     */
    public com.google.protobuf.ByteString
        getSecretKeyBytes() {
      java.lang.Object ref = secretKey_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        secretKey_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOKEN_FIELD_NUMBER = 3;
    private java.lang.Object token_;
    /**
     * optional string token = 3;
     */
    public boolean hasToken() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string token = 3;
     */
    public java.lang.String getToken() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          token_ = s;
        }
        return s;
      }
    }
    /**
     * optional string token = 3;
     */
    public com.google.protobuf.ByteString
        getTokenBytes() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        token_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      akid_ = "";
      secretKey_ = "";
      token_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasAkid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSecretKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getAkidBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getSecretKeyBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getTokenBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getAkidBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getSecretKeyBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getTokenBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Credentials}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.Credentials)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.CredentialsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Credentials_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Credentials_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        akid_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        secretKey_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        token_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Credentials_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.akid_ = akid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.secretKey_ = secretKey_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.token_ = token_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.getDefaultInstance()) return this;
        if (other.hasAkid()) {
          bitField0_ |= 0x00000001;
          akid_ = other.akid_;
          onChanged();
        }
        if (other.hasSecretKey()) {
          bitField0_ |= 0x00000002;
          secretKey_ = other.secretKey_;
          onChanged();
        }
        if (other.hasToken()) {
          bitField0_ |= 0x00000004;
          token_ = other.token_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasAkid()) {
          
          return false;
        }
        if (!hasSecretKey()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object akid_ = "";
      /**
       * required string akid = 1;
       */
      public boolean hasAkid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string akid = 1;
       */
      public java.lang.String getAkid() {
        java.lang.Object ref = akid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            akid_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string akid = 1;
       */
      public com.google.protobuf.ByteString
          getAkidBytes() {
        java.lang.Object ref = akid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          akid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string akid = 1;
       */
      public Builder setAkid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        akid_ = value;
        onChanged();
        return this;
      }
      /**
       * required string akid = 1;
       */
      public Builder clearAkid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        akid_ = getDefaultInstance().getAkid();
        onChanged();
        return this;
      }
      /**
       * required string akid = 1;
       */
      public Builder setAkidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        akid_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object secretKey_ = "";
      /**
       * required string secret_key = 2;
       */
      public boolean hasSecretKey() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required string secret_key = 2;
       */
      public java.lang.String getSecretKey() {
        java.lang.Object ref = secretKey_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            secretKey_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string secret_key = 2;
       */
      public com.google.protobuf.ByteString
          getSecretKeyBytes() {
        java.lang.Object ref = secretKey_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          secretKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string secret_key = 2;
       */
      public Builder setSecretKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        secretKey_ = value;
        onChanged();
        return this;
      }
      /**
       * required string secret_key = 2;
       */
      public Builder clearSecretKey() {
        bitField0_ = (bitField0_ & ~0x00000002);
        secretKey_ = getDefaultInstance().getSecretKey();
        onChanged();
        return this;
      }
      /**
       * required string secret_key = 2;
       */
      public Builder setSecretKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        secretKey_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object token_ = "";
      /**
       * optional string token = 3;
       */
      public boolean hasToken() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string token = 3;
       */
      public java.lang.String getToken() {
        java.lang.Object ref = token_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            token_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string token = 3;
       */
      public com.google.protobuf.ByteString
          getTokenBytes() {
        java.lang.Object ref = token_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          token_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string token = 3;
       */
      public Builder setToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string token = 3;
       */
      public Builder clearToken() {
        bitField0_ = (bitField0_ & ~0x00000004);
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * optional string token = 3;
       */
      public Builder setTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        token_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.Credentials)
    }

    static {
      defaultInstance = new Credentials(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.Credentials)
  }

  public interface SetCredentialsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.SetCredentials)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional bool for_metrics = 1;
     */
    boolean hasForMetrics();
    /**
     * optional bool for_metrics = 1;
     */
    boolean getForMetrics();

    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
     */
    boolean hasCredentials();
    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials getCredentials();
    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.CredentialsOrBuilder getCredentialsOrBuilder();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.SetCredentials}
   */
  public static final class SetCredentials extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.SetCredentials)
      SetCredentialsOrBuilder {
    // Use SetCredentials.newBuilder() to construct.
    private SetCredentials(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SetCredentials(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final SetCredentials defaultInstance;
    public static SetCredentials getDefaultInstance() {
      return defaultInstance;
    }

    public SetCredentials getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SetCredentials(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              forMetrics_ = input.readBool();
              break;
            }
            case 18: {
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = credentials_.toBuilder();
              }
              credentials_ = input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(credentials_);
                credentials_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_SetCredentials_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_SetCredentials_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public SetCredentials parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SetCredentials(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int FOR_METRICS_FIELD_NUMBER = 1;
    private boolean forMetrics_;
    /**
     * optional bool for_metrics = 1;
     */
    public boolean hasForMetrics() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bool for_metrics = 1;
     */
    public boolean getForMetrics() {
      return forMetrics_;
    }

    public static final int CREDENTIALS_FIELD_NUMBER = 2;
    private com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials credentials_;
    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
     */
    public boolean hasCredentials() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials getCredentials() {
      return credentials_;
    }
    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.CredentialsOrBuilder getCredentialsOrBuilder() {
      return credentials_;
    }

    private void initFields() {
      forMetrics_ = false;
      credentials_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasCredentials()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getCredentials().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, forMetrics_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, credentials_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, forMetrics_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, credentials_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.SetCredentials}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.SetCredentials)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentialsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_SetCredentials_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_SetCredentials_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getCredentialsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        forMetrics_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (credentialsBuilder_ == null) {
          credentials_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.getDefaultInstance();
        } else {
          credentialsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_SetCredentials_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.forMetrics_ = forMetrics_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (credentialsBuilder_ == null) {
          result.credentials_ = credentials_;
        } else {
          result.credentials_ = credentialsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.getDefaultInstance()) return this;
        if (other.hasForMetrics()) {
          setForMetrics(other.getForMetrics());
        }
        if (other.hasCredentials()) {
          mergeCredentials(other.getCredentials());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasCredentials()) {
          
          return false;
        }
        if (!getCredentials().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private boolean forMetrics_ ;
      /**
       * optional bool for_metrics = 1;
       */
      public boolean hasForMetrics() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool for_metrics = 1;
       */
      public boolean getForMetrics() {
        return forMetrics_;
      }
      /**
       * optional bool for_metrics = 1;
       */
      public Builder setForMetrics(boolean value) {
        bitField0_ |= 0x00000001;
        forMetrics_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool for_metrics = 1;
       */
      public Builder clearForMetrics() {
        bitField0_ = (bitField0_ & ~0x00000001);
        forMetrics_ = false;
        onChanged();
        return this;
      }

      private com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials credentials_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials, com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.CredentialsOrBuilder> credentialsBuilder_;
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
       */
      public boolean hasCredentials() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials getCredentials() {
        if (credentialsBuilder_ == null) {
          return credentials_;
        } else {
          return credentialsBuilder_.getMessage();
        }
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
       */
      public Builder setCredentials(com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials value) {
        if (credentialsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          credentials_ = value;
          onChanged();
        } else {
          credentialsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
       */
      public Builder setCredentials(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.Builder builderForValue) {
        if (credentialsBuilder_ == null) {
          credentials_ = builderForValue.build();
          onChanged();
        } else {
          credentialsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
       */
      public Builder mergeCredentials(com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials value) {
        if (credentialsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              credentials_ != com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.getDefaultInstance()) {
            credentials_ =
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.newBuilder(credentials_).mergeFrom(value).buildPartial();
          } else {
            credentials_ = value;
          }
          onChanged();
        } else {
          credentialsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
       */
      public Builder clearCredentials() {
        if (credentialsBuilder_ == null) {
          credentials_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.getDefaultInstance();
          onChanged();
        } else {
          credentialsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.Builder getCredentialsBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getCredentialsFieldBuilder().getBuilder();
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.CredentialsOrBuilder getCredentialsOrBuilder() {
        if (credentialsBuilder_ != null) {
          return credentialsBuilder_.getMessageOrBuilder();
        } else {
          return credentials_;
        }
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Credentials credentials = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials, com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.CredentialsOrBuilder> 
          getCredentialsFieldBuilder() {
        if (credentialsBuilder_ == null) {
          credentialsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials, com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.CredentialsOrBuilder>(
                  getCredentials(),
                  getParentForChildren(),
                  isClean());
          credentials_ = null;
        }
        return credentialsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.SetCredentials)
    }

    static {
      defaultInstance = new SetCredentials(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.SetCredentials)
  }

  public interface DimensionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.Dimension)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string key = 1;
     */
    boolean hasKey();
    /**
     * required string key = 1;
     */
    java.lang.String getKey();
    /**
     * required string key = 1;
     */
    com.google.protobuf.ByteString
        getKeyBytes();

    /**
     * required string value = 2;
     */
    boolean hasValue();
    /**
     * required string value = 2;
     */
    java.lang.String getValue();
    /**
     * required string value = 2;
     */
    com.google.protobuf.ByteString
        getValueBytes();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Dimension}
   */
  public static final class Dimension extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.Dimension)
      DimensionOrBuilder {
    // Use Dimension.newBuilder() to construct.
    private Dimension(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Dimension(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Dimension defaultInstance;
    public static Dimension getDefaultInstance() {
      return defaultInstance;
    }

    public Dimension getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Dimension(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              key_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              value_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Dimension_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Dimension_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public Dimension parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Dimension(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private java.lang.Object key_;
    /**
     * required string key = 1;
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string key = 1;
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     * required string key = 1;
     */
    public com.google.protobuf.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private java.lang.Object value_;
    /**
     * required string value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string value = 2;
     */
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     * required string value = 2;
     */
    public com.google.protobuf.ByteString
        getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      key_ = "";
      value_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasValue()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getValueBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getValueBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Dimension}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.Dimension)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.DimensionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Dimension_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Dimension_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Dimension_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000002;
          value_ = other.value_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasKey()) {
          
          return false;
        }
        if (!hasValue()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       * required string key = 1;
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string key = 1;
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string key = 1;
       */
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string key = 1;
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * required string key = 1;
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * required string key = 1;
       */
      public Builder setKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object value_ = "";
      /**
       * required string value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required string value = 2;
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string value = 2;
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string value = 2;
       */
      public Builder setValue(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * required string value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       * required string value = 2;
       */
      public Builder setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.Dimension)
    }

    static {
      defaultInstance = new Dimension(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.Dimension)
  }

  public interface StatsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.Stats)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required double count = 1;
     */
    boolean hasCount();
    /**
     * required double count = 1;
     */
    double getCount();

    /**
     * required double sum = 2;
     */
    boolean hasSum();
    /**
     * required double sum = 2;
     */
    double getSum();

    /**
     * required double mean = 3;
     */
    boolean hasMean();
    /**
     * required double mean = 3;
     */
    double getMean();

    /**
     * required double min = 4;
     */
    boolean hasMin();
    /**
     * required double min = 4;
     */
    double getMin();

    /**
     * required double max = 5;
     */
    boolean hasMax();
    /**
     * required double max = 5;
     */
    double getMax();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Stats}
   */
  public static final class Stats extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.Stats)
      StatsOrBuilder {
    // Use Stats.newBuilder() to construct.
    private Stats(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Stats(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Stats defaultInstance;
    public static Stats getDefaultInstance() {
      return defaultInstance;
    }

    public Stats getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Stats(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 9: {
              bitField0_ |= 0x00000001;
              count_ = input.readDouble();
              break;
            }
            case 17: {
              bitField0_ |= 0x00000002;
              sum_ = input.readDouble();
              break;
            }
            case 25: {
              bitField0_ |= 0x00000004;
              mean_ = input.readDouble();
              break;
            }
            case 33: {
              bitField0_ |= 0x00000008;
              min_ = input.readDouble();
              break;
            }
            case 41: {
              bitField0_ |= 0x00000010;
              max_ = input.readDouble();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Stats_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Stats_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public Stats parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Stats(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int COUNT_FIELD_NUMBER = 1;
    private double count_;
    /**
     * required double count = 1;
     */
    public boolean hasCount() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required double count = 1;
     */
    public double getCount() {
      return count_;
    }

    public static final int SUM_FIELD_NUMBER = 2;
    private double sum_;
    /**
     * required double sum = 2;
     */
    public boolean hasSum() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required double sum = 2;
     */
    public double getSum() {
      return sum_;
    }

    public static final int MEAN_FIELD_NUMBER = 3;
    private double mean_;
    /**
     * required double mean = 3;
     */
    public boolean hasMean() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required double mean = 3;
     */
    public double getMean() {
      return mean_;
    }

    public static final int MIN_FIELD_NUMBER = 4;
    private double min_;
    /**
     * required double min = 4;
     */
    public boolean hasMin() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * required double min = 4;
     */
    public double getMin() {
      return min_;
    }

    public static final int MAX_FIELD_NUMBER = 5;
    private double max_;
    /**
     * required double max = 5;
     */
    public boolean hasMax() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * required double max = 5;
     */
    public double getMax() {
      return max_;
    }

    private void initFields() {
      count_ = 0D;
      sum_ = 0D;
      mean_ = 0D;
      min_ = 0D;
      max_ = 0D;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasCount()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMean()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMin()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMax()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeDouble(1, count_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeDouble(2, sum_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeDouble(3, mean_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeDouble(4, min_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeDouble(5, max_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, count_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, sum_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(3, mean_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, min_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(5, max_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Stats}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.Stats)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.StatsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Stats_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Stats_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        count_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000001);
        sum_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000002);
        mean_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000004);
        min_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000008);
        max_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Stats_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.count_ = count_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.sum_ = sum_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.mean_ = mean_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.min_ = min_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.max_ = max_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.getDefaultInstance()) return this;
        if (other.hasCount()) {
          setCount(other.getCount());
        }
        if (other.hasSum()) {
          setSum(other.getSum());
        }
        if (other.hasMean()) {
          setMean(other.getMean());
        }
        if (other.hasMin()) {
          setMin(other.getMin());
        }
        if (other.hasMax()) {
          setMax(other.getMax());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasCount()) {
          
          return false;
        }
        if (!hasSum()) {
          
          return false;
        }
        if (!hasMean()) {
          
          return false;
        }
        if (!hasMin()) {
          
          return false;
        }
        if (!hasMax()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private double count_ ;
      /**
       * required double count = 1;
       */
      public boolean hasCount() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required double count = 1;
       */
      public double getCount() {
        return count_;
      }
      /**
       * required double count = 1;
       */
      public Builder setCount(double value) {
        bitField0_ |= 0x00000001;
        count_ = value;
        onChanged();
        return this;
      }
      /**
       * required double count = 1;
       */
      public Builder clearCount() {
        bitField0_ = (bitField0_ & ~0x00000001);
        count_ = 0D;
        onChanged();
        return this;
      }

      private double sum_ ;
      /**
       * required double sum = 2;
       */
      public boolean hasSum() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required double sum = 2;
       */
      public double getSum() {
        return sum_;
      }
      /**
       * required double sum = 2;
       */
      public Builder setSum(double value) {
        bitField0_ |= 0x00000002;
        sum_ = value;
        onChanged();
        return this;
      }
      /**
       * required double sum = 2;
       */
      public Builder clearSum() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sum_ = 0D;
        onChanged();
        return this;
      }

      private double mean_ ;
      /**
       * required double mean = 3;
       */
      public boolean hasMean() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required double mean = 3;
       */
      public double getMean() {
        return mean_;
      }
      /**
       * required double mean = 3;
       */
      public Builder setMean(double value) {
        bitField0_ |= 0x00000004;
        mean_ = value;
        onChanged();
        return this;
      }
      /**
       * required double mean = 3;
       */
      public Builder clearMean() {
        bitField0_ = (bitField0_ & ~0x00000004);
        mean_ = 0D;
        onChanged();
        return this;
      }

      private double min_ ;
      /**
       * required double min = 4;
       */
      public boolean hasMin() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * required double min = 4;
       */
      public double getMin() {
        return min_;
      }
      /**
       * required double min = 4;
       */
      public Builder setMin(double value) {
        bitField0_ |= 0x00000008;
        min_ = value;
        onChanged();
        return this;
      }
      /**
       * required double min = 4;
       */
      public Builder clearMin() {
        bitField0_ = (bitField0_ & ~0x00000008);
        min_ = 0D;
        onChanged();
        return this;
      }

      private double max_ ;
      /**
       * required double max = 5;
       */
      public boolean hasMax() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * required double max = 5;
       */
      public double getMax() {
        return max_;
      }
      /**
       * required double max = 5;
       */
      public Builder setMax(double value) {
        bitField0_ |= 0x00000010;
        max_ = value;
        onChanged();
        return this;
      }
      /**
       * required double max = 5;
       */
      public Builder clearMax() {
        bitField0_ = (bitField0_ & ~0x00000010);
        max_ = 0D;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.Stats)
    }

    static {
      defaultInstance = new Stats(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.Stats)
  }

  public interface MetricOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.Metric)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string name = 1;
     */
    boolean hasName();
    /**
     * required string name = 1;
     */
    java.lang.String getName();
    /**
     * required string name = 1;
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
     */
    java.util.List 
        getDimensionsList();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension getDimensions(int index);
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
     */
    int getDimensionsCount();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
     */
    java.util.List 
        getDimensionsOrBuilderList();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.DimensionOrBuilder getDimensionsOrBuilder(
        int index);

    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
     */
    boolean hasStats();
    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats getStats();
    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.StatsOrBuilder getStatsOrBuilder();

    /**
     * required uint64 seconds = 4;
     */
    boolean hasSeconds();
    /**
     * required uint64 seconds = 4;
     */
    long getSeconds();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Metric}
   */
  public static final class Metric extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.Metric)
      MetricOrBuilder {
    // Use Metric.newBuilder() to construct.
    private Metric(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Metric(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Metric defaultInstance;
    public static Metric getDefaultInstance() {
      return defaultInstance;
    }

    public Metric getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Metric(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              name_ = bs;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                dimensions_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              dimensions_.add(input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.PARSER, extensionRegistry));
              break;
            }
            case 26: {
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = stats_.toBuilder();
              }
              stats_ = input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(stats_);
                stats_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              seconds_ = input.readUInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          dimensions_ = java.util.Collections.unmodifiableList(dimensions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Metric_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Metric_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public Metric parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Metric(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private java.lang.Object name_;
    /**
     * required string name = 1;
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string name = 1;
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * required string name = 1;
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DIMENSIONS_FIELD_NUMBER = 2;
    private java.util.List dimensions_;
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
     */
    public java.util.List getDimensionsList() {
      return dimensions_;
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
     */
    public java.util.List 
        getDimensionsOrBuilderList() {
      return dimensions_;
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
     */
    public int getDimensionsCount() {
      return dimensions_.size();
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension getDimensions(int index) {
      return dimensions_.get(index);
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.DimensionOrBuilder getDimensionsOrBuilder(
        int index) {
      return dimensions_.get(index);
    }

    public static final int STATS_FIELD_NUMBER = 3;
    private com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats stats_;
    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
     */
    public boolean hasStats() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats getStats() {
      return stats_;
    }
    /**
     * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.StatsOrBuilder getStatsOrBuilder() {
      return stats_;
    }

    public static final int SECONDS_FIELD_NUMBER = 4;
    private long seconds_;
    /**
     * required uint64 seconds = 4;
     */
    public boolean hasSeconds() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required uint64 seconds = 4;
     */
    public long getSeconds() {
      return seconds_;
    }

    private void initFields() {
      name_ = "";
      dimensions_ = java.util.Collections.emptyList();
      stats_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.getDefaultInstance();
      seconds_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStats()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSeconds()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getDimensionsCount(); i++) {
        if (!getDimensions(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (!getStats().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getNameBytes());
      }
      for (int i = 0; i < dimensions_.size(); i++) {
        output.writeMessage(2, dimensions_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(3, stats_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt64(4, seconds_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getNameBytes());
      }
      for (int i = 0; i < dimensions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, dimensions_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, stats_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, seconds_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.Metric}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.Metric)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Metric_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Metric_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDimensionsFieldBuilder();
          getStatsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (dimensionsBuilder_ == null) {
          dimensions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          dimensionsBuilder_.clear();
        }
        if (statsBuilder_ == null) {
          stats_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.getDefaultInstance();
        } else {
          statsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        seconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_Metric_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (dimensionsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            dimensions_ = java.util.Collections.unmodifiableList(dimensions_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.dimensions_ = dimensions_;
        } else {
          result.dimensions_ = dimensionsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        if (statsBuilder_ == null) {
          result.stats_ = stats_;
        } else {
          result.stats_ = statsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.seconds_ = seconds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (dimensionsBuilder_ == null) {
          if (!other.dimensions_.isEmpty()) {
            if (dimensions_.isEmpty()) {
              dimensions_ = other.dimensions_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureDimensionsIsMutable();
              dimensions_.addAll(other.dimensions_);
            }
            onChanged();
          }
        } else {
          if (!other.dimensions_.isEmpty()) {
            if (dimensionsBuilder_.isEmpty()) {
              dimensionsBuilder_.dispose();
              dimensionsBuilder_ = null;
              dimensions_ = other.dimensions_;
              bitField0_ = (bitField0_ & ~0x00000002);
              dimensionsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getDimensionsFieldBuilder() : null;
            } else {
              dimensionsBuilder_.addAllMessages(other.dimensions_);
            }
          }
        }
        if (other.hasStats()) {
          mergeStats(other.getStats());
        }
        if (other.hasSeconds()) {
          setSeconds(other.getSeconds());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasName()) {
          
          return false;
        }
        if (!hasStats()) {
          
          return false;
        }
        if (!hasSeconds()) {
          
          return false;
        }
        for (int i = 0; i < getDimensionsCount(); i++) {
          if (!getDimensions(i).isInitialized()) {
            
            return false;
          }
        }
        if (!getStats().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * required string name = 1;
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string name = 1;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string name = 1;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string name = 1;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * required string name = 1;
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * required string name = 1;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.util.List dimensions_ =
        java.util.Collections.emptyList();
      private void ensureDimensionsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          dimensions_ = new java.util.ArrayList(dimensions_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension, com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.DimensionOrBuilder> dimensionsBuilder_;

      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public java.util.List getDimensionsList() {
        if (dimensionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dimensions_);
        } else {
          return dimensionsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public int getDimensionsCount() {
        if (dimensionsBuilder_ == null) {
          return dimensions_.size();
        } else {
          return dimensionsBuilder_.getCount();
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension getDimensions(int index) {
        if (dimensionsBuilder_ == null) {
          return dimensions_.get(index);
        } else {
          return dimensionsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public Builder setDimensions(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension value) {
        if (dimensionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDimensionsIsMutable();
          dimensions_.set(index, value);
          onChanged();
        } else {
          dimensionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public Builder setDimensions(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder builderForValue) {
        if (dimensionsBuilder_ == null) {
          ensureDimensionsIsMutable();
          dimensions_.set(index, builderForValue.build());
          onChanged();
        } else {
          dimensionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public Builder addDimensions(com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension value) {
        if (dimensionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDimensionsIsMutable();
          dimensions_.add(value);
          onChanged();
        } else {
          dimensionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public Builder addDimensions(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension value) {
        if (dimensionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDimensionsIsMutable();
          dimensions_.add(index, value);
          onChanged();
        } else {
          dimensionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public Builder addDimensions(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder builderForValue) {
        if (dimensionsBuilder_ == null) {
          ensureDimensionsIsMutable();
          dimensions_.add(builderForValue.build());
          onChanged();
        } else {
          dimensionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public Builder addDimensions(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder builderForValue) {
        if (dimensionsBuilder_ == null) {
          ensureDimensionsIsMutable();
          dimensions_.add(index, builderForValue.build());
          onChanged();
        } else {
          dimensionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public Builder addAllDimensions(
          java.lang.Iterable values) {
        if (dimensionsBuilder_ == null) {
          ensureDimensionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dimensions_);
          onChanged();
        } else {
          dimensionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public Builder clearDimensions() {
        if (dimensionsBuilder_ == null) {
          dimensions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          dimensionsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public Builder removeDimensions(int index) {
        if (dimensionsBuilder_ == null) {
          ensureDimensionsIsMutable();
          dimensions_.remove(index);
          onChanged();
        } else {
          dimensionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder getDimensionsBuilder(
          int index) {
        return getDimensionsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.DimensionOrBuilder getDimensionsOrBuilder(
          int index) {
        if (dimensionsBuilder_ == null) {
          return dimensions_.get(index);  } else {
          return dimensionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public java.util.List 
           getDimensionsOrBuilderList() {
        if (dimensionsBuilder_ != null) {
          return dimensionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dimensions_);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder addDimensionsBuilder() {
        return getDimensionsFieldBuilder().addBuilder(
            com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.getDefaultInstance());
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder addDimensionsBuilder(
          int index) {
        return getDimensionsFieldBuilder().addBuilder(
            index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.getDefaultInstance());
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Dimension dimensions = 2;
       */
      public java.util.List 
           getDimensionsBuilderList() {
        return getDimensionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension, com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.DimensionOrBuilder> 
          getDimensionsFieldBuilder() {
        if (dimensionsBuilder_ == null) {
          dimensionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension, com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.DimensionOrBuilder>(
                  dimensions_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          dimensions_ = null;
        }
        return dimensionsBuilder_;
      }

      private com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats stats_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats, com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.StatsOrBuilder> statsBuilder_;
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
       */
      public boolean hasStats() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats getStats() {
        if (statsBuilder_ == null) {
          return stats_;
        } else {
          return statsBuilder_.getMessage();
        }
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
       */
      public Builder setStats(com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats value) {
        if (statsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          stats_ = value;
          onChanged();
        } else {
          statsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
       */
      public Builder setStats(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.Builder builderForValue) {
        if (statsBuilder_ == null) {
          stats_ = builderForValue.build();
          onChanged();
        } else {
          statsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
       */
      public Builder mergeStats(com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats value) {
        if (statsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              stats_ != com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.getDefaultInstance()) {
            stats_ =
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.newBuilder(stats_).mergeFrom(value).buildPartial();
          } else {
            stats_ = value;
          }
          onChanged();
        } else {
          statsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
       */
      public Builder clearStats() {
        if (statsBuilder_ == null) {
          stats_ = com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.getDefaultInstance();
          onChanged();
        } else {
          statsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.Builder getStatsBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatsFieldBuilder().getBuilder();
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.StatsOrBuilder getStatsOrBuilder() {
        if (statsBuilder_ != null) {
          return statsBuilder_.getMessageOrBuilder();
        } else {
          return stats_;
        }
      }
      /**
       * required .com.amazonaws.services.kinesis.producer.protobuf.Stats stats = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats, com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.StatsOrBuilder> 
          getStatsFieldBuilder() {
        if (statsBuilder_ == null) {
          statsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats, com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.StatsOrBuilder>(
                  getStats(),
                  getParentForChildren(),
                  isClean());
          stats_ = null;
        }
        return statsBuilder_;
      }

      private long seconds_ ;
      /**
       * required uint64 seconds = 4;
       */
      public boolean hasSeconds() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * required uint64 seconds = 4;
       */
      public long getSeconds() {
        return seconds_;
      }
      /**
       * required uint64 seconds = 4;
       */
      public Builder setSeconds(long value) {
        bitField0_ |= 0x00000008;
        seconds_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint64 seconds = 4;
       */
      public Builder clearSeconds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        seconds_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.Metric)
    }

    static {
      defaultInstance = new Metric(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.Metric)
  }

  public interface MetricsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string name = 1;
     */
    boolean hasName();
    /**
     * optional string name = 1;
     */
    java.lang.String getName();
    /**
     * optional string name = 1;
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * optional uint64 seconds = 2;
     */
    boolean hasSeconds();
    /**
     * optional uint64 seconds = 2;
     */
    long getSeconds();
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest}
   */
  public static final class MetricsRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest)
      MetricsRequestOrBuilder {
    // Use MetricsRequest.newBuilder() to construct.
    private MetricsRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MetricsRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final MetricsRequest defaultInstance;
    public static MetricsRequest getDefaultInstance() {
      return defaultInstance;
    }

    public MetricsRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MetricsRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              name_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              seconds_ = input.readUInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public MetricsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MetricsRequest(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private java.lang.Object name_;
    /**
     * optional string name = 1;
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string name = 1;
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * optional string name = 1;
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECONDS_FIELD_NUMBER = 2;
    private long seconds_;
    /**
     * optional uint64 seconds = 2;
     */
    public boolean hasSeconds() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint64 seconds = 2;
     */
    public long getSeconds() {
      return seconds_;
    }

    private void initFields() {
      name_ = "";
      seconds_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, seconds_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, seconds_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        seconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsRequest_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.seconds_ = seconds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasSeconds()) {
          setSeconds(other.getSeconds());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * optional string name = 1;
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string name = 1;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string name = 1;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string name = 1;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private long seconds_ ;
      /**
       * optional uint64 seconds = 2;
       */
      public boolean hasSeconds() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint64 seconds = 2;
       */
      public long getSeconds() {
        return seconds_;
      }
      /**
       * optional uint64 seconds = 2;
       */
      public Builder setSeconds(long value) {
        bitField0_ |= 0x00000002;
        seconds_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 seconds = 2;
       */
      public Builder clearSeconds() {
        bitField0_ = (bitField0_ & ~0x00000002);
        seconds_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest)
    }

    static {
      defaultInstance = new MetricsRequest(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.MetricsRequest)
  }

  public interface MetricsResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
     */
    java.util.List 
        getMetricsList();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric getMetrics(int index);
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
     */
    int getMetricsCount();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
     */
    java.util.List 
        getMetricsOrBuilderList();
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricOrBuilder getMetricsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse}
   */
  public static final class MetricsResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse)
      MetricsResponseOrBuilder {
    // Use MetricsResponse.newBuilder() to construct.
    private MetricsResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MetricsResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final MetricsResponse defaultInstance;
    public static MetricsResponse getDefaultInstance() {
      return defaultInstance;
    }

    public MetricsResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private MetricsResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                metrics_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              metrics_.add(input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          metrics_ = java.util.Collections.unmodifiableList(metrics_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public MetricsResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MetricsResponse(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int METRICS_FIELD_NUMBER = 1;
    private java.util.List metrics_;
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
     */
    public java.util.List getMetricsList() {
      return metrics_;
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
     */
    public java.util.List 
        getMetricsOrBuilderList() {
      return metrics_;
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
     */
    public int getMetricsCount() {
      return metrics_.size();
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric getMetrics(int index) {
      return metrics_.get(index);
    }
    /**
     * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricOrBuilder getMetricsOrBuilder(
        int index) {
      return metrics_.get(index);
    }

    private void initFields() {
      metrics_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getMetricsCount(); i++) {
        if (!getMetrics(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < metrics_.size(); i++) {
        output.writeMessage(1, metrics_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < metrics_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, metrics_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse)
        com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.Builder.class);
      }

      // Construct using com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getMetricsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (metricsBuilder_ == null) {
          metrics_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          metricsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsResponse_descriptor;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse getDefaultInstanceForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.getDefaultInstance();
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse build() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse buildPartial() {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse result = new com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse(this);
        int from_bitField0_ = bitField0_;
        if (metricsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            metrics_ = java.util.Collections.unmodifiableList(metrics_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.metrics_ = metrics_;
        } else {
          result.metrics_ = metricsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) {
          return mergeFrom((com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse other) {
        if (other == com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.getDefaultInstance()) return this;
        if (metricsBuilder_ == null) {
          if (!other.metrics_.isEmpty()) {
            if (metrics_.isEmpty()) {
              metrics_ = other.metrics_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureMetricsIsMutable();
              metrics_.addAll(other.metrics_);
            }
            onChanged();
          }
        } else {
          if (!other.metrics_.isEmpty()) {
            if (metricsBuilder_.isEmpty()) {
              metricsBuilder_.dispose();
              metricsBuilder_ = null;
              metrics_ = other.metrics_;
              bitField0_ = (bitField0_ & ~0x00000001);
              metricsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getMetricsFieldBuilder() : null;
            } else {
              metricsBuilder_.addAllMessages(other.metrics_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getMetricsCount(); i++) {
          if (!getMetrics(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List metrics_ =
        java.util.Collections.emptyList();
      private void ensureMetricsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          metrics_ = new java.util.ArrayList(metrics_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric, com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricOrBuilder> metricsBuilder_;

      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public java.util.List getMetricsList() {
        if (metricsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(metrics_);
        } else {
          return metricsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public int getMetricsCount() {
        if (metricsBuilder_ == null) {
          return metrics_.size();
        } else {
          return metricsBuilder_.getCount();
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric getMetrics(int index) {
        if (metricsBuilder_ == null) {
          return metrics_.get(index);
        } else {
          return metricsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public Builder setMetrics(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric value) {
        if (metricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetricsIsMutable();
          metrics_.set(index, value);
          onChanged();
        } else {
          metricsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public Builder setMetrics(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder builderForValue) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          metrics_.set(index, builderForValue.build());
          onChanged();
        } else {
          metricsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public Builder addMetrics(com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric value) {
        if (metricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetricsIsMutable();
          metrics_.add(value);
          onChanged();
        } else {
          metricsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public Builder addMetrics(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric value) {
        if (metricsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetricsIsMutable();
          metrics_.add(index, value);
          onChanged();
        } else {
          metricsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public Builder addMetrics(
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder builderForValue) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          metrics_.add(builderForValue.build());
          onChanged();
        } else {
          metricsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public Builder addMetrics(
          int index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder builderForValue) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          metrics_.add(index, builderForValue.build());
          onChanged();
        } else {
          metricsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public Builder addAllMetrics(
          java.lang.Iterable values) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, metrics_);
          onChanged();
        } else {
          metricsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public Builder clearMetrics() {
        if (metricsBuilder_ == null) {
          metrics_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          metricsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public Builder removeMetrics(int index) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          metrics_.remove(index);
          onChanged();
        } else {
          metricsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder getMetricsBuilder(
          int index) {
        return getMetricsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricOrBuilder getMetricsOrBuilder(
          int index) {
        if (metricsBuilder_ == null) {
          return metrics_.get(index);  } else {
          return metricsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public java.util.List 
           getMetricsOrBuilderList() {
        if (metricsBuilder_ != null) {
          return metricsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(metrics_);
        }
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder addMetricsBuilder() {
        return getMetricsFieldBuilder().addBuilder(
            com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.getDefaultInstance());
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder addMetricsBuilder(
          int index) {
        return getMetricsFieldBuilder().addBuilder(
            index, com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.getDefaultInstance());
      }
      /**
       * repeated .com.amazonaws.services.kinesis.producer.protobuf.Metric metrics = 1;
       */
      public java.util.List 
           getMetricsBuilderList() {
        return getMetricsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric, com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricOrBuilder> 
          getMetricsFieldBuilder() {
        if (metricsBuilder_ == null) {
          metricsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric, com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricOrBuilder>(
                  metrics_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          metrics_ = null;
        }
        return metricsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse)
    }

    static {
      defaultInstance = new MetricsResponse(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.amazonaws.services.kinesis.producer.protobuf.MetricsResponse)
  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Tag_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_Tag_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Record_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_Record_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_AggregatedRecord_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_AggregatedRecord_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Message_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_Message_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecord_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecord_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Flush_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_Flush_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Attempt_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_Attempt_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecordResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecordResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Credentials_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_Credentials_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_SetCredentials_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_SetCredentials_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Dimension_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_Dimension_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Stats_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_Stats_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Metric_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_Metric_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsResponse_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\016messages.proto\0220com.amazonaws.services" +
      ".kinesis.producer.protobuf\032\014config.proto" +
      "\"!\n\003Tag\022\013\n\003key\030\001 \002(\t\022\r\n\005value\030\002 \001(\t\"\231\001\n\006" +
      "Record\022\033\n\023partition_key_index\030\001 \002(\004\022\037\n\027e" +
      "xplicit_hash_key_index\030\002 \001(\004\022\014\n\004data\030\003 \002" +
      "(\014\022C\n\004tags\030\004 \003(\01325.com.amazonaws.service" +
      "s.kinesis.producer.protobuf.Tag\"\233\001\n\020Aggr" +
      "egatedRecord\022\033\n\023partition_key_table\030\001 \003(" +
      "\t\022\037\n\027explicit_hash_key_table\030\002 \003(\t\022I\n\007re" +
      "cords\030\003 \003(\01328.com.amazonaws.services.kin",
      "esis.producer.protobuf.Record\"\252\005\n\007Messag" +
      "e\022\n\n\002id\030\001 \002(\004\022\021\n\tsource_id\030\002 \001(\004\022Q\n\nput_" +
      "record\030\003 \001(\0132;.com.amazonaws.services.ki" +
      "nesis.producer.protobuf.PutRecordH\000\022H\n\005f" +
      "lush\030\004 \001(\01327.com.amazonaws.services.kine" +
      "sis.producer.protobuf.FlushH\000\022^\n\021put_rec" +
      "ord_result\030\005 \001(\0132A.com.amazonaws.service" +
      "s.kinesis.producer.protobuf.PutRecordRes" +
      "ultH\000\022X\n\rconfiguration\030\006 \001(\0132?.com.amazo" +
      "naws.services.kinesis.producer.protobuf.",
      "ConfigurationH\000\022[\n\017metrics_request\030\007 \001(\013" +
      "[email protected]" +
      "er.protobuf.MetricsRequestH\000\022]\n\020metrics_" +
      "response\030\010 \001(\0132A.com.amazonaws.services." +
      "kinesis.producer.protobuf.MetricsRespons" +
      "eH\000\022[\n\017set_credentials\030\t \001(\[email protected]" +
      "naws.services.kinesis.producer.protobuf." +
      "SetCredentialsH\000B\020\n\016actual_message\"`\n\tPu" +
      "tRecord\022\023\n\013stream_name\030\001 \002(\t\022\025\n\rpartitio" +
      "n_key\030\002 \002(\t\022\031\n\021explicit_hash_key\030\003 \001(\t\022\014",
      "\n\004data\030\004 \002(\014\"\034\n\005Flush\022\023\n\013stream_name\030\001 \001" +
      "(\t\"f\n\007Attempt\022\r\n\005delay\030\001 \002(\r\022\020\n\010duration" +
      "\030\002 \002(\r\022\017\n\007success\030\003 \002(\010\022\022\n\nerror_code\030\004 " +
      "\001(\t\022\025\n\rerror_message\030\005 \001(\t\"\232\001\n\017PutRecord" +
      "Result\022K\n\010attempts\030\001 \003(\01329.com.amazonaws" +
      ".services.kinesis.producer.protobuf.Atte" +
      "mpt\022\017\n\007success\030\002 \002(\010\022\020\n\010shard_id\030\003 \001(\t\022\027" +
      "\n\017sequence_number\030\004 \001(\t\">\n\013Credentials\022\014" +
      "\n\004akid\030\001 \002(\t\022\022\n\nsecret_key\030\002 \002(\t\022\r\n\005toke" +
      "n\030\003 \001(\t\"y\n\016SetCredentials\022\023\n\013for_metrics",
      "\030\001 \001(\010\022R\n\013credentials\030\002 \002(\0132=.com.amazon" +
      "aws.services.kinesis.producer.protobuf.C" +
      "redentials\"\'\n\tDimension\022\013\n\003key\030\001 \002(\t\022\r\n\005" +
      "value\030\002 \002(\t\"K\n\005Stats\022\r\n\005count\030\001 \002(\001\022\013\n\003s" +
      "um\030\002 \002(\001\022\014\n\004mean\030\003 \002(\001\022\013\n\003min\030\004 \002(\001\022\013\n\003m" +
      "ax\030\005 \002(\001\"\300\001\n\006Metric\022\014\n\004name\030\001 \002(\t\022O\n\ndim" +
      "ensions\030\002 \003(\0132;.com.amazonaws.services.k" +
      "inesis.producer.protobuf.Dimension\022F\n\005st" +
      "ats\030\003 \002(\01327.com.amazonaws.services.kines" +
      "is.producer.protobuf.Stats\022\017\n\007seconds\030\004 ",
      "\002(\004\"/\n\016MetricsRequest\022\014\n\004name\030\001 \001(\t\022\017\n\007s" +
      "econds\030\002 \001(\004\"\\\n\017MetricsResponse\022I\n\007metri" +
      "cs\030\001 \003(\01328.com.amazonaws.services.kinesi" +
      "s.producer.protobuf.Metric"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.amazonaws.services.kinesis.producer.protobuf.Config.getDescriptor(),
        }, assigner);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Tag_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Tag_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_Tag_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Record_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Record_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_Record_descriptor,
        new java.lang.String[] { "PartitionKeyIndex", "ExplicitHashKeyIndex", "Data", "Tags", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_AggregatedRecord_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_AggregatedRecord_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_AggregatedRecord_descriptor,
        new java.lang.String[] { "PartitionKeyTable", "ExplicitHashKeyTable", "Records", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Message_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Message_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_Message_descriptor,
        new java.lang.String[] { "Id", "SourceId", "PutRecord", "Flush", "PutRecordResult", "Configuration", "MetricsRequest", "MetricsResponse", "SetCredentials", "ActualMessage", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecord_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecord_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecord_descriptor,
        new java.lang.String[] { "StreamName", "PartitionKey", "ExplicitHashKey", "Data", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Flush_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Flush_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_Flush_descriptor,
        new java.lang.String[] { "StreamName", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Attempt_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Attempt_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_Attempt_descriptor,
        new java.lang.String[] { "Delay", "Duration", "Success", "ErrorCode", "ErrorMessage", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecordResult_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecordResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_PutRecordResult_descriptor,
        new java.lang.String[] { "Attempts", "Success", "ShardId", "SequenceNumber", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Credentials_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Credentials_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_Credentials_descriptor,
        new java.lang.String[] { "Akid", "SecretKey", "Token", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_SetCredentials_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_SetCredentials_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_SetCredentials_descriptor,
        new java.lang.String[] { "ForMetrics", "Credentials", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Dimension_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Dimension_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_Dimension_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Stats_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Stats_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_Stats_descriptor,
        new java.lang.String[] { "Count", "Sum", "Mean", "Min", "Max", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Metric_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_Metric_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_Metric_descriptor,
        new java.lang.String[] { "Name", "Dimensions", "Stats", "Seconds", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsRequest_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsRequest_descriptor,
        new java.lang.String[] { "Name", "Seconds", });
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsResponse_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_amazonaws_services_kinesis_producer_protobuf_MetricsResponse_descriptor,
        new java.lang.String[] { "Metrics", });
    com.amazonaws.services.kinesis.producer.protobuf.Config.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy