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.11
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.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface TagOrBuilder extends
      // @@protoc_insertion_point(interface_extends:aws.kinesis.protobuf.Tag)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string key = 1;
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * required string key = 1;
     * @return The key.
     */
    java.lang.String getKey();
    /**
     * required string key = 1;
     * @return The bytes for key.
     */
    com.google.protobuf.ByteString
        getKeyBytes();

    /**
     * optional string value = 2;
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * optional string value = 2;
     * @return The value.
     */
    java.lang.String getValue();
    /**
     * optional string value = 2;
     * @return The bytes for value.
     */
    com.google.protobuf.ByteString
        getValueBytes();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.Tag}
   */
  public  static final class Tag extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.Tag)
      TagOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Tag.newBuilder() to construct.
    private Tag(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Tag() {
      key_ = "";
      value_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Tag();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            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;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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_aws_kinesis_protobuf_Tag_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Tag_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     * required string key = 1;
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required string key = 1;
     * @return The key.
     */
    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;
     * @return The bytes for key.
     */
    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 volatile java.lang.Object value_;
    /**
     * optional string value = 2;
     * @return Whether the value field is set.
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional string value = 2;
     * @return The value.
     */
    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;
     * @return The bytes for value.
     */
    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 byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.Tag}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_Tag_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Tag_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       * required string key = 1;
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required string key = 1;
       * @return The key.
       */
      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;
       * @return The bytes for key.
       */
      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;
       * @param value The key to set.
       * @return This builder for chaining.
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * required string key = 1;
       * @return This builder for chaining.
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * required string key = 1;
       * @param value The bytes for key to set.
       * @return This builder for chaining.
       */
      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;
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional string value = 2;
       * @return The value.
       */
      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;
       * @return The bytes for value.
       */
      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;
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string value = 2;
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       * optional string value = 2;
       * @param value The bytes for value to set.
       * @return This builder for chaining.
       */
      public Builder setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.Tag)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.Tag)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * required uint64 partition_key_index = 1;
     * @return Whether the partitionKeyIndex field is set.
     */
    boolean hasPartitionKeyIndex();
    /**
     * required uint64 partition_key_index = 1;
     * @return The partitionKeyIndex.
     */
    long getPartitionKeyIndex();

    /**
     * optional uint64 explicit_hash_key_index = 2;
     * @return Whether the explicitHashKeyIndex field is set.
     */
    boolean hasExplicitHashKeyIndex();
    /**
     * optional uint64 explicit_hash_key_index = 2;
     * @return The explicitHashKeyIndex.
     */
    long getExplicitHashKeyIndex();

    /**
     * required bytes data = 3;
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * required bytes data = 3;
     * @return The data.
     */
    com.google.protobuf.ByteString getData();

    /**
     * repeated .aws.kinesis.protobuf.Tag tags = 4;
     */
    java.util.List 
        getTagsList();
    /**
     * repeated .aws.kinesis.protobuf.Tag tags = 4;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag getTags(int index);
    /**
     * repeated .aws.kinesis.protobuf.Tag tags = 4;
     */
    int getTagsCount();
    /**
     * repeated .aws.kinesis.protobuf.Tag tags = 4;
     */
    java.util.List 
        getTagsOrBuilderList();
    /**
     * repeated .aws.kinesis.protobuf.Tag tags = 4;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.TagOrBuilder getTagsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.Record}
   */
  public  static final class Record extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.Record)
      RecordOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Record.newBuilder() to construct.
    private Record(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Record() {
      data_ = com.google.protobuf.ByteString.EMPTY;
      tags_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Record();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            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) != 0)) {
                tags_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              tags_.add(
                  input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) != 0)) {
          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_aws_kinesis_protobuf_Record_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Record_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder.class);
    }

    private int bitField0_;
    public static final int PARTITION_KEY_INDEX_FIELD_NUMBER = 1;
    private long partitionKeyIndex_;
    /**
     * required uint64 partition_key_index = 1;
     * @return Whether the partitionKeyIndex field is set.
     */
    public boolean hasPartitionKeyIndex() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required uint64 partition_key_index = 1;
     * @return The partitionKeyIndex.
     */
    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;
     * @return Whether the explicitHashKeyIndex field is set.
     */
    public boolean hasExplicitHashKeyIndex() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional uint64 explicit_hash_key_index = 2;
     * @return The explicitHashKeyIndex.
     */
    public long getExplicitHashKeyIndex() {
      return explicitHashKeyIndex_;
    }

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

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

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

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

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, partitionKeyIndex_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, explicitHashKeyIndex_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        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 += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Record)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.Record other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Record) obj;

      if (hasPartitionKeyIndex() != other.hasPartitionKeyIndex()) return false;
      if (hasPartitionKeyIndex()) {
        if (getPartitionKeyIndex()
            != other.getPartitionKeyIndex()) return false;
      }
      if (hasExplicitHashKeyIndex() != other.hasExplicitHashKeyIndex()) return false;
      if (hasExplicitHashKeyIndex()) {
        if (getExplicitHashKeyIndex()
            != other.getExplicitHashKeyIndex()) return false;
      }
      if (hasData() != other.hasData()) return false;
      if (hasData()) {
        if (!getData()
            .equals(other.getData())) return false;
      }
      if (!getTagsList()
          .equals(other.getTagsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPartitionKeyIndex()) {
        hash = (37 * hash) + PARTITION_KEY_INDEX_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getPartitionKeyIndex());
      }
      if (hasExplicitHashKeyIndex()) {
        hash = (37 * hash) + EXPLICIT_HASH_KEY_INDEX_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getExplicitHashKeyIndex());
      }
      if (hasData()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getData().hashCode();
      }
      if (getTagsCount() > 0) {
        hash = (37 * hash) + TAGS_FIELD_NUMBER;
        hash = (53 * hash) + getTagsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Record parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Record prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.Record}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_Record_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTagsFieldBuilder();
        }
      }
      @java.lang.Override
      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;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Record_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          result.partitionKeyIndex_ = partitionKeyIndex_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.explicitHashKeyIndex_ = explicitHashKeyIndex_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.data_ = data_;
        if (tagsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            tags_ = java.util.Collections.unmodifiableList(tags_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.tags_ = tags_;
        } else {
          result.tags_ = tagsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getTagsFieldBuilder() : null;
            } else {
              tagsBuilder_.addAllMessages(other.tags_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long partitionKeyIndex_ ;
      /**
       * required uint64 partition_key_index = 1;
       * @return Whether the partitionKeyIndex field is set.
       */
      public boolean hasPartitionKeyIndex() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required uint64 partition_key_index = 1;
       * @return The partitionKeyIndex.
       */
      public long getPartitionKeyIndex() {
        return partitionKeyIndex_;
      }
      /**
       * required uint64 partition_key_index = 1;
       * @param value The partitionKeyIndex to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionKeyIndex(long value) {
        bitField0_ |= 0x00000001;
        partitionKeyIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint64 partition_key_index = 1;
       * @return This builder for chaining.
       */
      public Builder clearPartitionKeyIndex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        partitionKeyIndex_ = 0L;
        onChanged();
        return this;
      }

      private long explicitHashKeyIndex_ ;
      /**
       * optional uint64 explicit_hash_key_index = 2;
       * @return Whether the explicitHashKeyIndex field is set.
       */
      public boolean hasExplicitHashKeyIndex() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional uint64 explicit_hash_key_index = 2;
       * @return The explicitHashKeyIndex.
       */
      public long getExplicitHashKeyIndex() {
        return explicitHashKeyIndex_;
      }
      /**
       * optional uint64 explicit_hash_key_index = 2;
       * @param value The explicitHashKeyIndex to set.
       * @return This builder for chaining.
       */
      public Builder setExplicitHashKeyIndex(long value) {
        bitField0_ |= 0x00000002;
        explicitHashKeyIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 explicit_hash_key_index = 2;
       * @return This builder for chaining.
       */
      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;
       * @return Whether the data field is set.
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * required bytes data = 3;
       * @return The data.
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * required bytes data = 3;
       * @param value The data to set.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      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) != 0)) {
          tags_ = new java.util.ArrayList(tags_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          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 .aws.kinesis.protobuf.Tag tags = 4;
       */
      public java.util.List getTagsList() {
        if (tagsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(tags_);
        } else {
          return tagsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .aws.kinesis.protobuf.Tag tags = 4;
       */
      public int getTagsCount() {
        if (tagsBuilder_ == null) {
          return tags_.size();
        } else {
          return tagsBuilder_.getCount();
        }
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Tag tags = 4;
       */
      public Builder removeTags(int index) {
        if (tagsBuilder_ == null) {
          ensureTagsIsMutable();
          tags_.remove(index);
          onChanged();
        } else {
          tagsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .aws.kinesis.protobuf.Tag tags = 4;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Tag.Builder getTagsBuilder(
          int index) {
        return getTagsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.protobuf.Tag tags = 4;
       */
      public java.util.List 
           getTagsOrBuilderList() {
        if (tagsBuilder_ != null) {
          return tagsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(tags_);
        }
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Tag tags = 4;
       */
      public java.util.List 
           getTagsBuilderList() {
        return getTagsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          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.RepeatedFieldBuilderV3<
              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) != 0),
                  getParentForChildren(),
                  isClean());
          tags_ = null;
        }
        return tagsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.Record)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.Record)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.Record DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Record();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Record getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * repeated string partition_key_table = 1;
     * @return A list containing the partitionKeyTable.
     */
    java.util.List
        getPartitionKeyTableList();
    /**
     * repeated string partition_key_table = 1;
     * @return The count of partitionKeyTable.
     */
    int getPartitionKeyTableCount();
    /**
     * repeated string partition_key_table = 1;
     * @param index The index of the element to return.
     * @return The partitionKeyTable at the given index.
     */
    java.lang.String getPartitionKeyTable(int index);
    /**
     * repeated string partition_key_table = 1;
     * @param index The index of the value to return.
     * @return The bytes of the partitionKeyTable at the given index.
     */
    com.google.protobuf.ByteString
        getPartitionKeyTableBytes(int index);

    /**
     * repeated string explicit_hash_key_table = 2;
     * @return A list containing the explicitHashKeyTable.
     */
    java.util.List
        getExplicitHashKeyTableList();
    /**
     * repeated string explicit_hash_key_table = 2;
     * @return The count of explicitHashKeyTable.
     */
    int getExplicitHashKeyTableCount();
    /**
     * repeated string explicit_hash_key_table = 2;
     * @param index The index of the element to return.
     * @return The explicitHashKeyTable at the given index.
     */
    java.lang.String getExplicitHashKeyTable(int index);
    /**
     * repeated string explicit_hash_key_table = 2;
     * @param index The index of the value to return.
     * @return The bytes of the explicitHashKeyTable at the given index.
     */
    com.google.protobuf.ByteString
        getExplicitHashKeyTableBytes(int index);

    /**
     * repeated .aws.kinesis.protobuf.Record records = 3;
     */
    java.util.List 
        getRecordsList();
    /**
     * repeated .aws.kinesis.protobuf.Record records = 3;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Record getRecords(int index);
    /**
     * repeated .aws.kinesis.protobuf.Record records = 3;
     */
    int getRecordsCount();
    /**
     * repeated .aws.kinesis.protobuf.Record records = 3;
     */
    java.util.List 
        getRecordsOrBuilderList();
    /**
     * repeated .aws.kinesis.protobuf.Record records = 3;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.RecordOrBuilder getRecordsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.AggregatedRecord}
   */
  public  static final class AggregatedRecord extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.AggregatedRecord)
      AggregatedRecordOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AggregatedRecord.newBuilder() to construct.
    private AggregatedRecord(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private AggregatedRecord() {
      partitionKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      explicitHashKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      records_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AggregatedRecord();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                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) != 0)) {
                explicitHashKeyTable_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              explicitHashKeyTable_.add(bs);
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                records_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              records_.add(
                  input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          partitionKeyTable_ = partitionKeyTable_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          explicitHashKeyTable_ = explicitHashKeyTable_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          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_aws_kinesis_protobuf_AggregatedRecord_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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 final int PARTITION_KEY_TABLE_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList partitionKeyTable_;
    /**
     * repeated string partition_key_table = 1;
     * @return A list containing the partitionKeyTable.
     */
    public com.google.protobuf.ProtocolStringList
        getPartitionKeyTableList() {
      return partitionKeyTable_;
    }
    /**
     * repeated string partition_key_table = 1;
     * @return The count of partitionKeyTable.
     */
    public int getPartitionKeyTableCount() {
      return partitionKeyTable_.size();
    }
    /**
     * repeated string partition_key_table = 1;
     * @param index The index of the element to return.
     * @return The partitionKeyTable at the given index.
     */
    public java.lang.String getPartitionKeyTable(int index) {
      return partitionKeyTable_.get(index);
    }
    /**
     * repeated string partition_key_table = 1;
     * @param index The index of the value to return.
     * @return The bytes of the partitionKeyTable at the given index.
     */
    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;
     * @return A list containing the explicitHashKeyTable.
     */
    public com.google.protobuf.ProtocolStringList
        getExplicitHashKeyTableList() {
      return explicitHashKeyTable_;
    }
    /**
     * repeated string explicit_hash_key_table = 2;
     * @return The count of explicitHashKeyTable.
     */
    public int getExplicitHashKeyTableCount() {
      return explicitHashKeyTable_.size();
    }
    /**
     * repeated string explicit_hash_key_table = 2;
     * @param index The index of the element to return.
     * @return The explicitHashKeyTable at the given index.
     */
    public java.lang.String getExplicitHashKeyTable(int index) {
      return explicitHashKeyTable_.get(index);
    }
    /**
     * repeated string explicit_hash_key_table = 2;
     * @param index The index of the value to return.
     * @return The bytes of the explicitHashKeyTable at the given index.
     */
    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 .aws.kinesis.protobuf.Record records = 3;
     */
    public java.util.List getRecordsList() {
      return records_;
    }
    /**
     * repeated .aws.kinesis.protobuf.Record records = 3;
     */
    public java.util.List 
        getRecordsOrBuilderList() {
      return records_;
    }
    /**
     * repeated .aws.kinesis.protobuf.Record records = 3;
     */
    public int getRecordsCount() {
      return records_.size();
    }
    /**
     * repeated .aws.kinesis.protobuf.Record records = 3;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Record getRecords(int index) {
      return records_.get(index);
    }
    /**
     * repeated .aws.kinesis.protobuf.Record records = 3;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.RecordOrBuilder getRecordsOrBuilder(
        int index) {
      return records_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < partitionKeyTable_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, partitionKeyTable_.getRaw(i));
      }
      for (int i = 0; i < explicitHashKeyTable_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, explicitHashKeyTable_.getRaw(i));
      }
      for (int i = 0; i < records_.size(); i++) {
        output.writeMessage(3, records_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < partitionKeyTable_.size(); i++) {
          dataSize += computeStringSizeNoTag(partitionKeyTable_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getPartitionKeyTableList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < explicitHashKeyTable_.size(); i++) {
          dataSize += computeStringSizeNoTag(explicitHashKeyTable_.getRaw(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 += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord) obj;

      if (!getPartitionKeyTableList()
          .equals(other.getPartitionKeyTableList())) return false;
      if (!getExplicitHashKeyTableList()
          .equals(other.getExplicitHashKeyTableList())) return false;
      if (!getRecordsList()
          .equals(other.getRecordsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getPartitionKeyTableCount() > 0) {
        hash = (37 * hash) + PARTITION_KEY_TABLE_FIELD_NUMBER;
        hash = (53 * hash) + getPartitionKeyTableList().hashCode();
      }
      if (getExplicitHashKeyTableCount() > 0) {
        hash = (37 * hash) + EXPLICIT_HASH_KEY_TABLE_FIELD_NUMBER;
        hash = (53 * hash) + getExplicitHashKeyTableList().hashCode();
      }
      if (getRecordsCount() > 0) {
        hash = (37 * hash) + RECORDS_FIELD_NUMBER;
        hash = (53 * hash) + getRecordsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.AggregatedRecord}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_AggregatedRecord_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getRecordsFieldBuilder();
        }
      }
      @java.lang.Override
      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;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_AggregatedRecord_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          partitionKeyTable_ = partitionKeyTable_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.partitionKeyTable_ = partitionKeyTable_;
        if (((bitField0_ & 0x00000002) != 0)) {
          explicitHashKeyTable_ = explicitHashKeyTable_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.explicitHashKeyTable_ = explicitHashKeyTable_;
        if (recordsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            records_ = java.util.Collections.unmodifiableList(records_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.records_ = records_;
        } else {
          result.records_ = recordsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRecordsFieldBuilder() : null;
            } else {
              recordsBuilder_.addAllMessages(other.records_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      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.unwrapIOException();
        } 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) != 0)) {
          partitionKeyTable_ = new com.google.protobuf.LazyStringArrayList(partitionKeyTable_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated string partition_key_table = 1;
       * @return A list containing the partitionKeyTable.
       */
      public com.google.protobuf.ProtocolStringList
          getPartitionKeyTableList() {
        return partitionKeyTable_.getUnmodifiableView();
      }
      /**
       * repeated string partition_key_table = 1;
       * @return The count of partitionKeyTable.
       */
      public int getPartitionKeyTableCount() {
        return partitionKeyTable_.size();
      }
      /**
       * repeated string partition_key_table = 1;
       * @param index The index of the element to return.
       * @return The partitionKeyTable at the given index.
       */
      public java.lang.String getPartitionKeyTable(int index) {
        return partitionKeyTable_.get(index);
      }
      /**
       * repeated string partition_key_table = 1;
       * @param index The index of the value to return.
       * @return The bytes of the partitionKeyTable at the given index.
       */
      public com.google.protobuf.ByteString
          getPartitionKeyTableBytes(int index) {
        return partitionKeyTable_.getByteString(index);
      }
      /**
       * repeated string partition_key_table = 1;
       * @param index The index to set the value at.
       * @param value The partitionKeyTable to set.
       * @return This builder for chaining.
       */
      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;
       * @param value The partitionKeyTable to add.
       * @return This builder for chaining.
       */
      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;
       * @param values The partitionKeyTable to add.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearPartitionKeyTable() {
        partitionKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * repeated string partition_key_table = 1;
       * @param value The bytes of the partitionKeyTable to add.
       * @return This builder for chaining.
       */
      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) != 0)) {
          explicitHashKeyTable_ = new com.google.protobuf.LazyStringArrayList(explicitHashKeyTable_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       * @return A list containing the explicitHashKeyTable.
       */
      public com.google.protobuf.ProtocolStringList
          getExplicitHashKeyTableList() {
        return explicitHashKeyTable_.getUnmodifiableView();
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       * @return The count of explicitHashKeyTable.
       */
      public int getExplicitHashKeyTableCount() {
        return explicitHashKeyTable_.size();
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       * @param index The index of the element to return.
       * @return The explicitHashKeyTable at the given index.
       */
      public java.lang.String getExplicitHashKeyTable(int index) {
        return explicitHashKeyTable_.get(index);
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       * @param index The index of the value to return.
       * @return The bytes of the explicitHashKeyTable at the given index.
       */
      public com.google.protobuf.ByteString
          getExplicitHashKeyTableBytes(int index) {
        return explicitHashKeyTable_.getByteString(index);
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       * @param index The index to set the value at.
       * @param value The explicitHashKeyTable to set.
       * @return This builder for chaining.
       */
      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;
       * @param value The explicitHashKeyTable to add.
       * @return This builder for chaining.
       */
      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;
       * @param values The explicitHashKeyTable to add.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearExplicitHashKeyTable() {
        explicitHashKeyTable_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * repeated string explicit_hash_key_table = 2;
       * @param value The bytes of the explicitHashKeyTable to add.
       * @return This builder for chaining.
       */
      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) != 0)) {
          records_ = new java.util.ArrayList(records_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          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 .aws.kinesis.protobuf.Record records = 3;
       */
      public java.util.List getRecordsList() {
        if (recordsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(records_);
        } else {
          return recordsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .aws.kinesis.protobuf.Record records = 3;
       */
      public int getRecordsCount() {
        if (recordsBuilder_ == null) {
          return records_.size();
        } else {
          return recordsBuilder_.getCount();
        }
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Record records = 3;
       */
      public Builder removeRecords(int index) {
        if (recordsBuilder_ == null) {
          ensureRecordsIsMutable();
          records_.remove(index);
          onChanged();
        } else {
          recordsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .aws.kinesis.protobuf.Record records = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Record.Builder getRecordsBuilder(
          int index) {
        return getRecordsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.protobuf.Record records = 3;
       */
      public java.util.List 
           getRecordsOrBuilderList() {
        if (recordsBuilder_ != null) {
          return recordsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(records_);
        }
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Record records = 3;
       */
      public java.util.List 
           getRecordsBuilderList() {
        return getRecordsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          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.RepeatedFieldBuilderV3<
              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) != 0),
                  getParentForChildren(),
                  isClean());
          records_ = null;
        }
        return recordsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.AggregatedRecord)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.AggregatedRecord)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.AggregatedRecord getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * required uint64 id = 1;
     * @return Whether the id field is set.
     */
    boolean hasId();
    /**
     * required uint64 id = 1;
     * @return The id.
     */
    long getId();

    /**
     * optional uint64 source_id = 2;
     * @return Whether the sourceId field is set.
     */
    boolean hasSourceId();
    /**
     * optional uint64 source_id = 2;
     * @return The sourceId.
     */
    long getSourceId();

    /**
     * optional .aws.kinesis.protobuf.PutRecord put_record = 3;
     * @return Whether the putRecord field is set.
     */
    boolean hasPutRecord();
    /**
     * optional .aws.kinesis.protobuf.PutRecord put_record = 3;
     * @return The putRecord.
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord getPutRecord();
    /**
     * optional .aws.kinesis.protobuf.PutRecord put_record = 3;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordOrBuilder getPutRecordOrBuilder();

    /**
     * optional .aws.kinesis.protobuf.Flush flush = 4;
     * @return Whether the flush field is set.
     */
    boolean hasFlush();
    /**
     * optional .aws.kinesis.protobuf.Flush flush = 4;
     * @return The flush.
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush getFlush();
    /**
     * optional .aws.kinesis.protobuf.Flush flush = 4;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.FlushOrBuilder getFlushOrBuilder();

    /**
     * optional .aws.kinesis.protobuf.PutRecordResult put_record_result = 5;
     * @return Whether the putRecordResult field is set.
     */
    boolean hasPutRecordResult();
    /**
     * optional .aws.kinesis.protobuf.PutRecordResult put_record_result = 5;
     * @return The putRecordResult.
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult getPutRecordResult();
    /**
     * optional .aws.kinesis.protobuf.PutRecordResult put_record_result = 5;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResultOrBuilder getPutRecordResultOrBuilder();

    /**
     * optional .aws.kinesis.protobuf.Configuration configuration = 6;
     * @return Whether the configuration field is set.
     */
    boolean hasConfiguration();
    /**
     * optional .aws.kinesis.protobuf.Configuration configuration = 6;
     * @return The configuration.
     */
    com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration getConfiguration();
    /**
     * optional .aws.kinesis.protobuf.Configuration configuration = 6;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Config.ConfigurationOrBuilder getConfigurationOrBuilder();

    /**
     * optional .aws.kinesis.protobuf.MetricsRequest metrics_request = 7;
     * @return Whether the metricsRequest field is set.
     */
    boolean hasMetricsRequest();
    /**
     * optional .aws.kinesis.protobuf.MetricsRequest metrics_request = 7;
     * @return The metricsRequest.
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest getMetricsRequest();
    /**
     * optional .aws.kinesis.protobuf.MetricsRequest metrics_request = 7;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequestOrBuilder getMetricsRequestOrBuilder();

    /**
     * optional .aws.kinesis.protobuf.MetricsResponse metrics_response = 8;
     * @return Whether the metricsResponse field is set.
     */
    boolean hasMetricsResponse();
    /**
     * optional .aws.kinesis.protobuf.MetricsResponse metrics_response = 8;
     * @return The metricsResponse.
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse getMetricsResponse();
    /**
     * optional .aws.kinesis.protobuf.MetricsResponse metrics_response = 8;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponseOrBuilder getMetricsResponseOrBuilder();

    /**
     * optional .aws.kinesis.protobuf.SetCredentials set_credentials = 9;
     * @return Whether the setCredentials field is set.
     */
    boolean hasSetCredentials();
    /**
     * optional .aws.kinesis.protobuf.SetCredentials set_credentials = 9;
     * @return The setCredentials.
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials getSetCredentials();
    /**
     * optional .aws.kinesis.protobuf.SetCredentials set_credentials = 9;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentialsOrBuilder getSetCredentialsOrBuilder();

    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Message.ActualMessageCase getActualMessageCase();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.Message}
   */
  public  static final class Message extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.Message)
      MessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Message.newBuilder() to construct.
    private Message(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Message() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Message();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            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;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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_aws_kinesis_protobuf_Message_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Message_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Message.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Message.Builder.class);
    }

    private int bitField0_;
    private int actualMessageCase_ = 0;
    private java.lang.Object actualMessage_;
    public enum ActualMessageCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      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 final int value;
      private ActualMessageCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ActualMessageCase valueOf(int value) {
        return forNumber(value);
      }

      public static ActualMessageCase forNumber(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: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

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

    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    /**
     * required uint64 id = 1;
     * @return Whether the id field is set.
     */
    public boolean hasId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required uint64 id = 1;
     * @return The id.
     */
    public long getId() {
      return id_;
    }

    public static final int SOURCE_ID_FIELD_NUMBER = 2;
    private long sourceId_;
    /**
     * optional uint64 source_id = 2;
     * @return Whether the sourceId field is set.
     */
    public boolean hasSourceId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional uint64 source_id = 2;
     * @return The sourceId.
     */
    public long getSourceId() {
      return sourceId_;
    }

    public static final int PUT_RECORD_FIELD_NUMBER = 3;
    /**
     * optional .aws.kinesis.protobuf.PutRecord put_record = 3;
     * @return Whether the putRecord field is set.
     */
    public boolean hasPutRecord() {
      return actualMessageCase_ == 3;
    }
    /**
     * optional .aws.kinesis.protobuf.PutRecord put_record = 3;
     * @return The putRecord.
     */
    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 .aws.kinesis.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 .aws.kinesis.protobuf.Flush flush = 4;
     * @return Whether the flush field is set.
     */
    public boolean hasFlush() {
      return actualMessageCase_ == 4;
    }
    /**
     * optional .aws.kinesis.protobuf.Flush flush = 4;
     * @return The flush.
     */
    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 .aws.kinesis.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 .aws.kinesis.protobuf.PutRecordResult put_record_result = 5;
     * @return Whether the putRecordResult field is set.
     */
    public boolean hasPutRecordResult() {
      return actualMessageCase_ == 5;
    }
    /**
     * optional .aws.kinesis.protobuf.PutRecordResult put_record_result = 5;
     * @return The putRecordResult.
     */
    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 .aws.kinesis.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 .aws.kinesis.protobuf.Configuration configuration = 6;
     * @return Whether the configuration field is set.
     */
    public boolean hasConfiguration() {
      return actualMessageCase_ == 6;
    }
    /**
     * optional .aws.kinesis.protobuf.Configuration configuration = 6;
     * @return The configuration.
     */
    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 .aws.kinesis.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 .aws.kinesis.protobuf.MetricsRequest metrics_request = 7;
     * @return Whether the metricsRequest field is set.
     */
    public boolean hasMetricsRequest() {
      return actualMessageCase_ == 7;
    }
    /**
     * optional .aws.kinesis.protobuf.MetricsRequest metrics_request = 7;
     * @return The metricsRequest.
     */
    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 .aws.kinesis.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 .aws.kinesis.protobuf.MetricsResponse metrics_response = 8;
     * @return Whether the metricsResponse field is set.
     */
    public boolean hasMetricsResponse() {
      return actualMessageCase_ == 8;
    }
    /**
     * optional .aws.kinesis.protobuf.MetricsResponse metrics_response = 8;
     * @return The metricsResponse.
     */
    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 .aws.kinesis.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 .aws.kinesis.protobuf.SetCredentials set_credentials = 9;
     * @return Whether the setCredentials field is set.
     */
    public boolean hasSetCredentials() {
      return actualMessageCase_ == 9;
    }
    /**
     * optional .aws.kinesis.protobuf.SetCredentials set_credentials = 9;
     * @return The setCredentials.
     */
    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 .aws.kinesis.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 byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt64(1, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        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_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, id_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        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 += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Message)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.Message other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Message) obj;

      if (hasId() != other.hasId()) return false;
      if (hasId()) {
        if (getId()
            != other.getId()) return false;
      }
      if (hasSourceId() != other.hasSourceId()) return false;
      if (hasSourceId()) {
        if (getSourceId()
            != other.getSourceId()) return false;
      }
      if (!getActualMessageCase().equals(other.getActualMessageCase())) return false;
      switch (actualMessageCase_) {
        case 3:
          if (!getPutRecord()
              .equals(other.getPutRecord())) return false;
          break;
        case 4:
          if (!getFlush()
              .equals(other.getFlush())) return false;
          break;
        case 5:
          if (!getPutRecordResult()
              .equals(other.getPutRecordResult())) return false;
          break;
        case 6:
          if (!getConfiguration()
              .equals(other.getConfiguration())) return false;
          break;
        case 7:
          if (!getMetricsRequest()
              .equals(other.getMetricsRequest())) return false;
          break;
        case 8:
          if (!getMetricsResponse()
              .equals(other.getMetricsResponse())) return false;
          break;
        case 9:
          if (!getSetCredentials()
              .equals(other.getSetCredentials())) return false;
          break;
        case 0:
        default:
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasId()) {
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getId());
      }
      if (hasSourceId()) {
        hash = (37 * hash) + SOURCE_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSourceId());
      }
      switch (actualMessageCase_) {
        case 3:
          hash = (37 * hash) + PUT_RECORD_FIELD_NUMBER;
          hash = (53 * hash) + getPutRecord().hashCode();
          break;
        case 4:
          hash = (37 * hash) + FLUSH_FIELD_NUMBER;
          hash = (53 * hash) + getFlush().hashCode();
          break;
        case 5:
          hash = (37 * hash) + PUT_RECORD_RESULT_FIELD_NUMBER;
          hash = (53 * hash) + getPutRecordResult().hashCode();
          break;
        case 6:
          hash = (37 * hash) + CONFIGURATION_FIELD_NUMBER;
          hash = (53 * hash) + getConfiguration().hashCode();
          break;
        case 7:
          hash = (37 * hash) + METRICS_REQUEST_FIELD_NUMBER;
          hash = (53 * hash) + getMetricsRequest().hashCode();
          break;
        case 8:
          hash = (37 * hash) + METRICS_RESPONSE_FIELD_NUMBER;
          hash = (53 * hash) + getMetricsResponse().hashCode();
          break;
        case 9:
          hash = (37 * hash) + SET_CREDENTIALS_FIELD_NUMBER;
          hash = (53 * hash) + getSetCredentials().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Message prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.Message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_Message_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        id_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        sourceId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        actualMessageCase_ = 0;
        actualMessage_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Message_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          result.id_ = id_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.sourceId_ = sourceId_;
          to_bitField0_ |= 0x00000002;
        }
        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;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int actualMessageCase_ = 0;
      private java.lang.Object actualMessage_;
      public ActualMessageCase
          getActualMessageCase() {
        return ActualMessageCase.forNumber(
            actualMessageCase_);
      }

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

      private int bitField0_;

      private long id_ ;
      /**
       * required uint64 id = 1;
       * @return Whether the id field is set.
       */
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required uint64 id = 1;
       * @return The id.
       */
      public long getId() {
        return id_;
      }
      /**
       * required uint64 id = 1;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {
        bitField0_ |= 0x00000001;
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint64 id = 1;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        onChanged();
        return this;
      }

      private long sourceId_ ;
      /**
       * optional uint64 source_id = 2;
       * @return Whether the sourceId field is set.
       */
      public boolean hasSourceId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional uint64 source_id = 2;
       * @return The sourceId.
       */
      public long getSourceId() {
        return sourceId_;
      }
      /**
       * optional uint64 source_id = 2;
       * @param value The sourceId to set.
       * @return This builder for chaining.
       */
      public Builder setSourceId(long value) {
        bitField0_ |= 0x00000002;
        sourceId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 source_id = 2;
       * @return This builder for chaining.
       */
      public Builder clearSourceId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sourceId_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          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 .aws.kinesis.protobuf.PutRecord put_record = 3;
       * @return Whether the putRecord field is set.
       */
      public boolean hasPutRecord() {
        return actualMessageCase_ == 3;
      }
      /**
       * optional .aws.kinesis.protobuf.PutRecord put_record = 3;
       * @return The putRecord.
       */
      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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.PutRecord put_record = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.Builder getPutRecordBuilder() {
        return getPutRecordFieldBuilder().getBuilder();
      }
      /**
       * optional .aws.kinesis.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 .aws.kinesis.protobuf.PutRecord put_record = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          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.SingleFieldBuilderV3<
              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;
        onChanged();;
        return putRecordBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          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 .aws.kinesis.protobuf.Flush flush = 4;
       * @return Whether the flush field is set.
       */
      public boolean hasFlush() {
        return actualMessageCase_ == 4;
      }
      /**
       * optional .aws.kinesis.protobuf.Flush flush = 4;
       * @return The flush.
       */
      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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Flush flush = 4;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.Builder getFlushBuilder() {
        return getFlushFieldBuilder().getBuilder();
      }
      /**
       * optional .aws.kinesis.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 .aws.kinesis.protobuf.Flush flush = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          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.SingleFieldBuilderV3<
              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;
        onChanged();;
        return flushBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          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 .aws.kinesis.protobuf.PutRecordResult put_record_result = 5;
       * @return Whether the putRecordResult field is set.
       */
      public boolean hasPutRecordResult() {
        return actualMessageCase_ == 5;
      }
      /**
       * optional .aws.kinesis.protobuf.PutRecordResult put_record_result = 5;
       * @return The putRecordResult.
       */
      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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.PutRecordResult put_record_result = 5;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.Builder getPutRecordResultBuilder() {
        return getPutRecordResultFieldBuilder().getBuilder();
      }
      /**
       * optional .aws.kinesis.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 .aws.kinesis.protobuf.PutRecordResult put_record_result = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          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.SingleFieldBuilderV3<
              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;
        onChanged();;
        return putRecordResultBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          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 .aws.kinesis.protobuf.Configuration configuration = 6;
       * @return Whether the configuration field is set.
       */
      public boolean hasConfiguration() {
        return actualMessageCase_ == 6;
      }
      /**
       * optional .aws.kinesis.protobuf.Configuration configuration = 6;
       * @return The configuration.
       */
      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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Configuration configuration = 6;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Config.Configuration.Builder getConfigurationBuilder() {
        return getConfigurationFieldBuilder().getBuilder();
      }
      /**
       * optional .aws.kinesis.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 .aws.kinesis.protobuf.Configuration configuration = 6;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          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.SingleFieldBuilderV3<
              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;
        onChanged();;
        return configurationBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          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 .aws.kinesis.protobuf.MetricsRequest metrics_request = 7;
       * @return Whether the metricsRequest field is set.
       */
      public boolean hasMetricsRequest() {
        return actualMessageCase_ == 7;
      }
      /**
       * optional .aws.kinesis.protobuf.MetricsRequest metrics_request = 7;
       * @return The metricsRequest.
       */
      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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.MetricsRequest metrics_request = 7;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.Builder getMetricsRequestBuilder() {
        return getMetricsRequestFieldBuilder().getBuilder();
      }
      /**
       * optional .aws.kinesis.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 .aws.kinesis.protobuf.MetricsRequest metrics_request = 7;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          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.SingleFieldBuilderV3<
              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;
        onChanged();;
        return metricsRequestBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          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 .aws.kinesis.protobuf.MetricsResponse metrics_response = 8;
       * @return Whether the metricsResponse field is set.
       */
      public boolean hasMetricsResponse() {
        return actualMessageCase_ == 8;
      }
      /**
       * optional .aws.kinesis.protobuf.MetricsResponse metrics_response = 8;
       * @return The metricsResponse.
       */
      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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.MetricsResponse metrics_response = 8;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse.Builder getMetricsResponseBuilder() {
        return getMetricsResponseFieldBuilder().getBuilder();
      }
      /**
       * optional .aws.kinesis.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 .aws.kinesis.protobuf.MetricsResponse metrics_response = 8;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          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.SingleFieldBuilderV3<
              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;
        onChanged();;
        return metricsResponseBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          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 .aws.kinesis.protobuf.SetCredentials set_credentials = 9;
       * @return Whether the setCredentials field is set.
       */
      public boolean hasSetCredentials() {
        return actualMessageCase_ == 9;
      }
      /**
       * optional .aws.kinesis.protobuf.SetCredentials set_credentials = 9;
       * @return The setCredentials.
       */
      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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.SetCredentials set_credentials = 9;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.Builder getSetCredentialsBuilder() {
        return getSetCredentialsFieldBuilder().getBuilder();
      }
      /**
       * optional .aws.kinesis.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 .aws.kinesis.protobuf.SetCredentials set_credentials = 9;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          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.SingleFieldBuilderV3<
              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;
        onChanged();;
        return setCredentialsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.Message)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.Message)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.Message DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Message();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Message getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * required string stream_name = 1;
     * @return Whether the streamName field is set.
     */
    boolean hasStreamName();
    /**
     * required string stream_name = 1;
     * @return The streamName.
     */
    java.lang.String getStreamName();
    /**
     * required string stream_name = 1;
     * @return The bytes for streamName.
     */
    com.google.protobuf.ByteString
        getStreamNameBytes();

    /**
     * required string partition_key = 2;
     * @return Whether the partitionKey field is set.
     */
    boolean hasPartitionKey();
    /**
     * required string partition_key = 2;
     * @return The partitionKey.
     */
    java.lang.String getPartitionKey();
    /**
     * required string partition_key = 2;
     * @return The bytes for partitionKey.
     */
    com.google.protobuf.ByteString
        getPartitionKeyBytes();

    /**
     * optional string explicit_hash_key = 3;
     * @return Whether the explicitHashKey field is set.
     */
    boolean hasExplicitHashKey();
    /**
     * optional string explicit_hash_key = 3;
     * @return The explicitHashKey.
     */
    java.lang.String getExplicitHashKey();
    /**
     * optional string explicit_hash_key = 3;
     * @return The bytes for explicitHashKey.
     */
    com.google.protobuf.ByteString
        getExplicitHashKeyBytes();

    /**
     * required bytes data = 4;
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * required bytes data = 4;
     * @return The data.
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.PutRecord}
   */
  public  static final class PutRecord extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.PutRecord)
      PutRecordOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PutRecord.newBuilder() to construct.
    private PutRecord(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PutRecord() {
      streamName_ = "";
      partitionKey_ = "";
      explicitHashKey_ = "";
      data_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PutRecord();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            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;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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_aws_kinesis_protobuf_PutRecord_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_PutRecord_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord.Builder.class);
    }

    private int bitField0_;
    public static final int STREAM_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object streamName_;
    /**
     * required string stream_name = 1;
     * @return Whether the streamName field is set.
     */
    public boolean hasStreamName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required string stream_name = 1;
     * @return The streamName.
     */
    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;
     * @return The bytes for streamName.
     */
    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 volatile java.lang.Object partitionKey_;
    /**
     * required string partition_key = 2;
     * @return Whether the partitionKey field is set.
     */
    public boolean hasPartitionKey() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * required string partition_key = 2;
     * @return The partitionKey.
     */
    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;
     * @return The bytes for partitionKey.
     */
    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 volatile java.lang.Object explicitHashKey_;
    /**
     * optional string explicit_hash_key = 3;
     * @return Whether the explicitHashKey field is set.
     */
    public boolean hasExplicitHashKey() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional string explicit_hash_key = 3;
     * @return The explicitHashKey.
     */
    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;
     * @return The bytes for explicitHashKey.
     */
    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;
     * @return Whether the data field is set.
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * required bytes data = 4;
     * @return The data.
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, streamName_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, partitionKey_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, explicitHashKey_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeBytes(4, data_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, streamName_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, partitionKey_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, explicitHashKey_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, data_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord) obj;

      if (hasStreamName() != other.hasStreamName()) return false;
      if (hasStreamName()) {
        if (!getStreamName()
            .equals(other.getStreamName())) return false;
      }
      if (hasPartitionKey() != other.hasPartitionKey()) return false;
      if (hasPartitionKey()) {
        if (!getPartitionKey()
            .equals(other.getPartitionKey())) return false;
      }
      if (hasExplicitHashKey() != other.hasExplicitHashKey()) return false;
      if (hasExplicitHashKey()) {
        if (!getExplicitHashKey()
            .equals(other.getExplicitHashKey())) return false;
      }
      if (hasData() != other.hasData()) return false;
      if (hasData()) {
        if (!getData()
            .equals(other.getData())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasStreamName()) {
        hash = (37 * hash) + STREAM_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getStreamName().hashCode();
      }
      if (hasPartitionKey()) {
        hash = (37 * hash) + PARTITION_KEY_FIELD_NUMBER;
        hash = (53 * hash) + getPartitionKey().hashCode();
      }
      if (hasExplicitHashKey()) {
        hash = (37 * hash) + EXPLICIT_HASH_KEY_FIELD_NUMBER;
        hash = (53 * hash) + getExplicitHashKey().hashCode();
      }
      if (hasData()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getData().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.PutRecord}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_PutRecord_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      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;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_PutRecord_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.streamName_ = streamName_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.partitionKey_ = partitionKey_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.explicitHashKey_ = explicitHashKey_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasStreamName()) {
          return false;
        }
        if (!hasPartitionKey()) {
          return false;
        }
        if (!hasData()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object streamName_ = "";
      /**
       * required string stream_name = 1;
       * @return Whether the streamName field is set.
       */
      public boolean hasStreamName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required string stream_name = 1;
       * @return The streamName.
       */
      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;
       * @return The bytes for streamName.
       */
      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;
       * @param value The streamName to set.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearStreamName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        streamName_ = getDefaultInstance().getStreamName();
        onChanged();
        return this;
      }
      /**
       * required string stream_name = 1;
       * @param value The bytes for streamName to set.
       * @return This builder for chaining.
       */
      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;
       * @return Whether the partitionKey field is set.
       */
      public boolean hasPartitionKey() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * required string partition_key = 2;
       * @return The partitionKey.
       */
      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;
       * @return The bytes for partitionKey.
       */
      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;
       * @param value The partitionKey to set.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearPartitionKey() {
        bitField0_ = (bitField0_ & ~0x00000002);
        partitionKey_ = getDefaultInstance().getPartitionKey();
        onChanged();
        return this;
      }
      /**
       * required string partition_key = 2;
       * @param value The bytes for partitionKey to set.
       * @return This builder for chaining.
       */
      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;
       * @return Whether the explicitHashKey field is set.
       */
      public boolean hasExplicitHashKey() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional string explicit_hash_key = 3;
       * @return The explicitHashKey.
       */
      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;
       * @return The bytes for explicitHashKey.
       */
      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;
       * @param value The explicitHashKey to set.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearExplicitHashKey() {
        bitField0_ = (bitField0_ & ~0x00000004);
        explicitHashKey_ = getDefaultInstance().getExplicitHashKey();
        onChanged();
        return this;
      }
      /**
       * optional string explicit_hash_key = 3;
       * @param value The bytes for explicitHashKey to set.
       * @return This builder for chaining.
       */
      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;
       * @return Whether the data field is set.
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * required bytes data = 4;
       * @return The data.
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * required bytes data = 4;
       * @param value The data to set.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000008);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.PutRecord)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.PutRecord)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecord getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional string stream_name = 1;
     * @return Whether the streamName field is set.
     */
    boolean hasStreamName();
    /**
     * optional string stream_name = 1;
     * @return The streamName.
     */
    java.lang.String getStreamName();
    /**
     * optional string stream_name = 1;
     * @return The bytes for streamName.
     */
    com.google.protobuf.ByteString
        getStreamNameBytes();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.Flush}
   */
  public  static final class Flush extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.Flush)
      FlushOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Flush.newBuilder() to construct.
    private Flush(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Flush() {
      streamName_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Flush();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              streamName_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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_aws_kinesis_protobuf_Flush_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Flush_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush.Builder.class);
    }

    private int bitField0_;
    public static final int STREAM_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object streamName_;
    /**
     * optional string stream_name = 1;
     * @return Whether the streamName field is set.
     */
    public boolean hasStreamName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string stream_name = 1;
     * @return The streamName.
     */
    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;
     * @return The bytes for streamName.
     */
    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 byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, streamName_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, streamName_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush) obj;

      if (hasStreamName() != other.hasStreamName()) return false;
      if (hasStreamName()) {
        if (!getStreamName()
            .equals(other.getStreamName())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasStreamName()) {
        hash = (37 * hash) + STREAM_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getStreamName().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.Flush}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_Flush_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        streamName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Flush_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.streamName_ = streamName_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object streamName_ = "";
      /**
       * optional string stream_name = 1;
       * @return Whether the streamName field is set.
       */
      public boolean hasStreamName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional string stream_name = 1;
       * @return The streamName.
       */
      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;
       * @return The bytes for streamName.
       */
      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;
       * @param value The streamName to set.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearStreamName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        streamName_ = getDefaultInstance().getStreamName();
        onChanged();
        return this;
      }
      /**
       * optional string stream_name = 1;
       * @param value The bytes for streamName to set.
       * @return This builder for chaining.
       */
      public Builder setStreamNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        streamName_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.Flush)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.Flush)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Flush getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * required uint32 delay = 1;
     * @return Whether the delay field is set.
     */
    boolean hasDelay();
    /**
     * required uint32 delay = 1;
     * @return The delay.
     */
    int getDelay();

    /**
     * required uint32 duration = 2;
     * @return Whether the duration field is set.
     */
    boolean hasDuration();
    /**
     * required uint32 duration = 2;
     * @return The duration.
     */
    int getDuration();

    /**
     * required bool success = 3;
     * @return Whether the success field is set.
     */
    boolean hasSuccess();
    /**
     * required bool success = 3;
     * @return The success.
     */
    boolean getSuccess();

    /**
     * optional string error_code = 4;
     * @return Whether the errorCode field is set.
     */
    boolean hasErrorCode();
    /**
     * optional string error_code = 4;
     * @return The errorCode.
     */
    java.lang.String getErrorCode();
    /**
     * optional string error_code = 4;
     * @return The bytes for errorCode.
     */
    com.google.protobuf.ByteString
        getErrorCodeBytes();

    /**
     * optional string error_message = 5;
     * @return Whether the errorMessage field is set.
     */
    boolean hasErrorMessage();
    /**
     * optional string error_message = 5;
     * @return The errorMessage.
     */
    java.lang.String getErrorMessage();
    /**
     * optional string error_message = 5;
     * @return The bytes for errorMessage.
     */
    com.google.protobuf.ByteString
        getErrorMessageBytes();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.Attempt}
   */
  public  static final class Attempt extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.Attempt)
      AttemptOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Attempt.newBuilder() to construct.
    private Attempt(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Attempt() {
      errorCode_ = "";
      errorMessage_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Attempt();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            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;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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_aws_kinesis_protobuf_Attempt_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Attempt_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder.class);
    }

    private int bitField0_;
    public static final int DELAY_FIELD_NUMBER = 1;
    private int delay_;
    /**
     * required uint32 delay = 1;
     * @return Whether the delay field is set.
     */
    public boolean hasDelay() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required uint32 delay = 1;
     * @return The delay.
     */
    public int getDelay() {
      return delay_;
    }

    public static final int DURATION_FIELD_NUMBER = 2;
    private int duration_;
    /**
     * required uint32 duration = 2;
     * @return Whether the duration field is set.
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * required uint32 duration = 2;
     * @return The duration.
     */
    public int getDuration() {
      return duration_;
    }

    public static final int SUCCESS_FIELD_NUMBER = 3;
    private boolean success_;
    /**
     * required bool success = 3;
     * @return Whether the success field is set.
     */
    public boolean hasSuccess() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * required bool success = 3;
     * @return The success.
     */
    public boolean getSuccess() {
      return success_;
    }

    public static final int ERROR_CODE_FIELD_NUMBER = 4;
    private volatile java.lang.Object errorCode_;
    /**
     * optional string error_code = 4;
     * @return Whether the errorCode field is set.
     */
    public boolean hasErrorCode() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional string error_code = 4;
     * @return The errorCode.
     */
    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;
     * @return The bytes for errorCode.
     */
    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 volatile java.lang.Object errorMessage_;
    /**
     * optional string error_message = 5;
     * @return Whether the errorMessage field is set.
     */
    public boolean hasErrorMessage() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * optional string error_message = 5;
     * @return The errorMessage.
     */
    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;
     * @return The bytes for errorMessage.
     */
    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 byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, delay_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, duration_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, success_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, errorCode_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, errorMessage_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, delay_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, duration_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, success_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, errorCode_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, errorMessage_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt) obj;

      if (hasDelay() != other.hasDelay()) return false;
      if (hasDelay()) {
        if (getDelay()
            != other.getDelay()) return false;
      }
      if (hasDuration() != other.hasDuration()) return false;
      if (hasDuration()) {
        if (getDuration()
            != other.getDuration()) return false;
      }
      if (hasSuccess() != other.hasSuccess()) return false;
      if (hasSuccess()) {
        if (getSuccess()
            != other.getSuccess()) return false;
      }
      if (hasErrorCode() != other.hasErrorCode()) return false;
      if (hasErrorCode()) {
        if (!getErrorCode()
            .equals(other.getErrorCode())) return false;
      }
      if (hasErrorMessage() != other.hasErrorMessage()) return false;
      if (hasErrorMessage()) {
        if (!getErrorMessage()
            .equals(other.getErrorMessage())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDelay()) {
        hash = (37 * hash) + DELAY_FIELD_NUMBER;
        hash = (53 * hash) + getDelay();
      }
      if (hasDuration()) {
        hash = (37 * hash) + DURATION_FIELD_NUMBER;
        hash = (53 * hash) + getDuration();
      }
      if (hasSuccess()) {
        hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSuccess());
      }
      if (hasErrorCode()) {
        hash = (37 * hash) + ERROR_CODE_FIELD_NUMBER;
        hash = (53 * hash) + getErrorCode().hashCode();
      }
      if (hasErrorMessage()) {
        hash = (37 * hash) + ERROR_MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getErrorMessage().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.Attempt}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_Attempt_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      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;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Attempt_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          result.delay_ = delay_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.duration_ = duration_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.success_ = success_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.errorCode_ = errorCode_;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          to_bitField0_ |= 0x00000010;
        }
        result.errorMessage_ = errorMessage_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasDelay()) {
          return false;
        }
        if (!hasDuration()) {
          return false;
        }
        if (!hasSuccess()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int delay_ ;
      /**
       * required uint32 delay = 1;
       * @return Whether the delay field is set.
       */
      public boolean hasDelay() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required uint32 delay = 1;
       * @return The delay.
       */
      public int getDelay() {
        return delay_;
      }
      /**
       * required uint32 delay = 1;
       * @param value The delay to set.
       * @return This builder for chaining.
       */
      public Builder setDelay(int value) {
        bitField0_ |= 0x00000001;
        delay_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 delay = 1;
       * @return This builder for chaining.
       */
      public Builder clearDelay() {
        bitField0_ = (bitField0_ & ~0x00000001);
        delay_ = 0;
        onChanged();
        return this;
      }

      private int duration_ ;
      /**
       * required uint32 duration = 2;
       * @return Whether the duration field is set.
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * required uint32 duration = 2;
       * @return The duration.
       */
      public int getDuration() {
        return duration_;
      }
      /**
       * required uint32 duration = 2;
       * @param value The duration to set.
       * @return This builder for chaining.
       */
      public Builder setDuration(int value) {
        bitField0_ |= 0x00000002;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 duration = 2;
       * @return This builder for chaining.
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000002);
        duration_ = 0;
        onChanged();
        return this;
      }

      private boolean success_ ;
      /**
       * required bool success = 3;
       * @return Whether the success field is set.
       */
      public boolean hasSuccess() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * required bool success = 3;
       * @return The success.
       */
      public boolean getSuccess() {
        return success_;
      }
      /**
       * required bool success = 3;
       * @param value The success to set.
       * @return This builder for chaining.
       */
      public Builder setSuccess(boolean value) {
        bitField0_ |= 0x00000004;
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * required bool success = 3;
       * @return This builder for chaining.
       */
      public Builder clearSuccess() {
        bitField0_ = (bitField0_ & ~0x00000004);
        success_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object errorCode_ = "";
      /**
       * optional string error_code = 4;
       * @return Whether the errorCode field is set.
       */
      public boolean hasErrorCode() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional string error_code = 4;
       * @return The errorCode.
       */
      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;
       * @return The bytes for errorCode.
       */
      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;
       * @param value The errorCode to set.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearErrorCode() {
        bitField0_ = (bitField0_ & ~0x00000008);
        errorCode_ = getDefaultInstance().getErrorCode();
        onChanged();
        return this;
      }
      /**
       * optional string error_code = 4;
       * @param value The bytes for errorCode to set.
       * @return This builder for chaining.
       */
      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;
       * @return Whether the errorMessage field is set.
       */
      public boolean hasErrorMessage() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * optional string error_message = 5;
       * @return The errorMessage.
       */
      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;
       * @return The bytes for errorMessage.
       */
      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;
       * @param value The errorMessage to set.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearErrorMessage() {
        bitField0_ = (bitField0_ & ~0x00000010);
        errorMessage_ = getDefaultInstance().getErrorMessage();
        onChanged();
        return this;
      }
      /**
       * optional string error_message = 5;
       * @param value The bytes for errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        errorMessage_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.Attempt)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.Attempt)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

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

    /**
     * required bool success = 2;
     * @return Whether the success field is set.
     */
    boolean hasSuccess();
    /**
     * required bool success = 2;
     * @return The success.
     */
    boolean getSuccess();

    /**
     * optional string shard_id = 3;
     * @return Whether the shardId field is set.
     */
    boolean hasShardId();
    /**
     * optional string shard_id = 3;
     * @return The shardId.
     */
    java.lang.String getShardId();
    /**
     * optional string shard_id = 3;
     * @return The bytes for shardId.
     */
    com.google.protobuf.ByteString
        getShardIdBytes();

    /**
     * optional string sequence_number = 4;
     * @return Whether the sequenceNumber field is set.
     */
    boolean hasSequenceNumber();
    /**
     * optional string sequence_number = 4;
     * @return The sequenceNumber.
     */
    java.lang.String getSequenceNumber();
    /**
     * optional string sequence_number = 4;
     * @return The bytes for sequenceNumber.
     */
    com.google.protobuf.ByteString
        getSequenceNumberBytes();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.PutRecordResult}
   */
  public  static final class PutRecordResult extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.PutRecordResult)
      PutRecordResultOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PutRecordResult.newBuilder() to construct.
    private PutRecordResult(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PutRecordResult() {
      attempts_ = java.util.Collections.emptyList();
      shardId_ = "";
      sequenceNumber_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PutRecordResult();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                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;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          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_aws_kinesis_protobuf_PutRecordResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_PutRecordResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult.Builder.class);
    }

    private int bitField0_;
    public static final int ATTEMPTS_FIELD_NUMBER = 1;
    private java.util.List attempts_;
    /**
     * repeated .aws.kinesis.protobuf.Attempt attempts = 1;
     */
    public java.util.List getAttemptsList() {
      return attempts_;
    }
    /**
     * repeated .aws.kinesis.protobuf.Attempt attempts = 1;
     */
    public java.util.List 
        getAttemptsOrBuilderList() {
      return attempts_;
    }
    /**
     * repeated .aws.kinesis.protobuf.Attempt attempts = 1;
     */
    public int getAttemptsCount() {
      return attempts_.size();
    }
    /**
     * repeated .aws.kinesis.protobuf.Attempt attempts = 1;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt getAttempts(int index) {
      return attempts_.get(index);
    }
    /**
     * repeated .aws.kinesis.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;
     * @return Whether the success field is set.
     */
    public boolean hasSuccess() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required bool success = 2;
     * @return The success.
     */
    public boolean getSuccess() {
      return success_;
    }

    public static final int SHARD_ID_FIELD_NUMBER = 3;
    private volatile java.lang.Object shardId_;
    /**
     * optional string shard_id = 3;
     * @return Whether the shardId field is set.
     */
    public boolean hasShardId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional string shard_id = 3;
     * @return The shardId.
     */
    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;
     * @return The bytes for shardId.
     */
    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 volatile java.lang.Object sequenceNumber_;
    /**
     * optional string sequence_number = 4;
     * @return Whether the sequenceNumber field is set.
     */
    public boolean hasSequenceNumber() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional string sequence_number = 4;
     * @return The sequenceNumber.
     */
    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;
     * @return The bytes for sequenceNumber.
     */
    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 byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < attempts_.size(); i++) {
        output.writeMessage(1, attempts_.get(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBool(2, success_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, shardId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, sequenceNumber_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      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) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, success_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, shardId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, sequenceNumber_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult) obj;

      if (!getAttemptsList()
          .equals(other.getAttemptsList())) return false;
      if (hasSuccess() != other.hasSuccess()) return false;
      if (hasSuccess()) {
        if (getSuccess()
            != other.getSuccess()) return false;
      }
      if (hasShardId() != other.hasShardId()) return false;
      if (hasShardId()) {
        if (!getShardId()
            .equals(other.getShardId())) return false;
      }
      if (hasSequenceNumber() != other.hasSequenceNumber()) return false;
      if (hasSequenceNumber()) {
        if (!getSequenceNumber()
            .equals(other.getSequenceNumber())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getAttemptsCount() > 0) {
        hash = (37 * hash) + ATTEMPTS_FIELD_NUMBER;
        hash = (53 * hash) + getAttemptsList().hashCode();
      }
      if (hasSuccess()) {
        hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSuccess());
      }
      if (hasShardId()) {
        hash = (37 * hash) + SHARD_ID_FIELD_NUMBER;
        hash = (53 * hash) + getShardId().hashCode();
      }
      if (hasSequenceNumber()) {
        hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getSequenceNumber().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.PutRecordResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_PutRecordResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAttemptsFieldBuilder();
        }
      }
      @java.lang.Override
      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;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_PutRecordResult_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
            attempts_ = java.util.Collections.unmodifiableList(attempts_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.attempts_ = attempts_;
        } else {
          result.attempts_ = attemptsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.success_ = success_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.shardId_ = shardId_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.sequenceNumber_ = sequenceNumber_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.GeneratedMessageV3.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.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      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.unwrapIOException();
        } 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) != 0)) {
          attempts_ = new java.util.ArrayList(attempts_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          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 .aws.kinesis.protobuf.Attempt attempts = 1;
       */
      public java.util.List getAttemptsList() {
        if (attemptsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(attempts_);
        } else {
          return attemptsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .aws.kinesis.protobuf.Attempt attempts = 1;
       */
      public int getAttemptsCount() {
        if (attemptsBuilder_ == null) {
          return attempts_.size();
        } else {
          return attemptsBuilder_.getCount();
        }
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Attempt attempts = 1;
       */
      public Builder removeAttempts(int index) {
        if (attemptsBuilder_ == null) {
          ensureAttemptsIsMutable();
          attempts_.remove(index);
          onChanged();
        } else {
          attemptsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .aws.kinesis.protobuf.Attempt attempts = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Attempt.Builder getAttemptsBuilder(
          int index) {
        return getAttemptsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.protobuf.Attempt attempts = 1;
       */
      public java.util.List 
           getAttemptsOrBuilderList() {
        if (attemptsBuilder_ != null) {
          return attemptsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(attempts_);
        }
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Attempt attempts = 1;
       */
      public java.util.List 
           getAttemptsBuilderList() {
        return getAttemptsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          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.RepeatedFieldBuilderV3<
              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) != 0),
                  getParentForChildren(),
                  isClean());
          attempts_ = null;
        }
        return attemptsBuilder_;
      }

      private boolean success_ ;
      /**
       * required bool success = 2;
       * @return Whether the success field is set.
       */
      public boolean hasSuccess() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * required bool success = 2;
       * @return The success.
       */
      public boolean getSuccess() {
        return success_;
      }
      /**
       * required bool success = 2;
       * @param value The success to set.
       * @return This builder for chaining.
       */
      public Builder setSuccess(boolean value) {
        bitField0_ |= 0x00000002;
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * required bool success = 2;
       * @return This builder for chaining.
       */
      public Builder clearSuccess() {
        bitField0_ = (bitField0_ & ~0x00000002);
        success_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object shardId_ = "";
      /**
       * optional string shard_id = 3;
       * @return Whether the shardId field is set.
       */
      public boolean hasShardId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional string shard_id = 3;
       * @return The shardId.
       */
      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;
       * @return The bytes for shardId.
       */
      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;
       * @param value The shardId to set.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearShardId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        shardId_ = getDefaultInstance().getShardId();
        onChanged();
        return this;
      }
      /**
       * optional string shard_id = 3;
       * @param value The bytes for shardId to set.
       * @return This builder for chaining.
       */
      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;
       * @return Whether the sequenceNumber field is set.
       */
      public boolean hasSequenceNumber() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional string sequence_number = 4;
       * @return The sequenceNumber.
       */
      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;
       * @return The bytes for sequenceNumber.
       */
      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;
       * @param value The sequenceNumber to set.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000008);
        sequenceNumber_ = getDefaultInstance().getSequenceNumber();
        onChanged();
        return this;
      }
      /**
       * optional string sequence_number = 4;
       * @param value The bytes for sequenceNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        sequenceNumber_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.PutRecordResult)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.PutRecordResult)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.PutRecordResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * required string akid = 1;
     * @return Whether the akid field is set.
     */
    boolean hasAkid();
    /**
     * required string akid = 1;
     * @return The akid.
     */
    java.lang.String getAkid();
    /**
     * required string akid = 1;
     * @return The bytes for akid.
     */
    com.google.protobuf.ByteString
        getAkidBytes();

    /**
     * required string secret_key = 2;
     * @return Whether the secretKey field is set.
     */
    boolean hasSecretKey();
    /**
     * required string secret_key = 2;
     * @return The secretKey.
     */
    java.lang.String getSecretKey();
    /**
     * required string secret_key = 2;
     * @return The bytes for secretKey.
     */
    com.google.protobuf.ByteString
        getSecretKeyBytes();

    /**
     * optional string token = 3;
     * @return Whether the token field is set.
     */
    boolean hasToken();
    /**
     * optional string token = 3;
     * @return The token.
     */
    java.lang.String getToken();
    /**
     * optional string token = 3;
     * @return The bytes for token.
     */
    com.google.protobuf.ByteString
        getTokenBytes();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.Credentials}
   */
  public  static final class Credentials extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.Credentials)
      CredentialsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Credentials.newBuilder() to construct.
    private Credentials(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Credentials() {
      akid_ = "";
      secretKey_ = "";
      token_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Credentials();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            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;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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_aws_kinesis_protobuf_Credentials_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Credentials_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.Builder.class);
    }

    private int bitField0_;
    public static final int AKID_FIELD_NUMBER = 1;
    private volatile java.lang.Object akid_;
    /**
     * required string akid = 1;
     * @return Whether the akid field is set.
     */
    public boolean hasAkid() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required string akid = 1;
     * @return The akid.
     */
    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;
     * @return The bytes for akid.
     */
    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 volatile java.lang.Object secretKey_;
    /**
     * required string secret_key = 2;
     * @return Whether the secretKey field is set.
     */
    public boolean hasSecretKey() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * required string secret_key = 2;
     * @return The secretKey.
     */
    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;
     * @return The bytes for secretKey.
     */
    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 volatile java.lang.Object token_;
    /**
     * optional string token = 3;
     * @return Whether the token field is set.
     */
    public boolean hasToken() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional string token = 3;
     * @return The token.
     */
    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;
     * @return The bytes for token.
     */
    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 byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, akid_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, secretKey_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, token_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, akid_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, secretKey_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, token_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials) obj;

      if (hasAkid() != other.hasAkid()) return false;
      if (hasAkid()) {
        if (!getAkid()
            .equals(other.getAkid())) return false;
      }
      if (hasSecretKey() != other.hasSecretKey()) return false;
      if (hasSecretKey()) {
        if (!getSecretKey()
            .equals(other.getSecretKey())) return false;
      }
      if (hasToken() != other.hasToken()) return false;
      if (hasToken()) {
        if (!getToken()
            .equals(other.getToken())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasAkid()) {
        hash = (37 * hash) + AKID_FIELD_NUMBER;
        hash = (53 * hash) + getAkid().hashCode();
      }
      if (hasSecretKey()) {
        hash = (37 * hash) + SECRET_KEY_FIELD_NUMBER;
        hash = (53 * hash) + getSecretKey().hashCode();
      }
      if (hasToken()) {
        hash = (37 * hash) + TOKEN_FIELD_NUMBER;
        hash = (53 * hash) + getToken().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.Credentials}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_Credentials_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        akid_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        secretKey_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        token_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Credentials_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.akid_ = akid_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.secretKey_ = secretKey_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.token_ = token_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasAkid()) {
          return false;
        }
        if (!hasSecretKey()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object akid_ = "";
      /**
       * required string akid = 1;
       * @return Whether the akid field is set.
       */
      public boolean hasAkid() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required string akid = 1;
       * @return The akid.
       */
      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;
       * @return The bytes for akid.
       */
      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;
       * @param value The akid to set.
       * @return This builder for chaining.
       */
      public Builder setAkid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        akid_ = value;
        onChanged();
        return this;
      }
      /**
       * required string akid = 1;
       * @return This builder for chaining.
       */
      public Builder clearAkid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        akid_ = getDefaultInstance().getAkid();
        onChanged();
        return this;
      }
      /**
       * required string akid = 1;
       * @param value The bytes for akid to set.
       * @return This builder for chaining.
       */
      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;
       * @return Whether the secretKey field is set.
       */
      public boolean hasSecretKey() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * required string secret_key = 2;
       * @return The secretKey.
       */
      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;
       * @return The bytes for secretKey.
       */
      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;
       * @param value The secretKey to set.
       * @return This builder for chaining.
       */
      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;
       * @return This builder for chaining.
       */
      public Builder clearSecretKey() {
        bitField0_ = (bitField0_ & ~0x00000002);
        secretKey_ = getDefaultInstance().getSecretKey();
        onChanged();
        return this;
      }
      /**
       * required string secret_key = 2;
       * @param value The bytes for secretKey to set.
       * @return This builder for chaining.
       */
      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;
       * @return Whether the token field is set.
       */
      public boolean hasToken() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional string token = 3;
       * @return The token.
       */
      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;
       * @return The bytes for token.
       */
      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;
       * @param value The token to set.
       * @return This builder for chaining.
       */
      public Builder setToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string token = 3;
       * @return This builder for chaining.
       */
      public Builder clearToken() {
        bitField0_ = (bitField0_ & ~0x00000004);
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * optional string token = 3;
       * @param value The bytes for token to set.
       * @return This builder for chaining.
       */
      public Builder setTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        token_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.Credentials)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.Credentials)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional bool for_metrics = 1;
     * @return Whether the forMetrics field is set.
     */
    boolean hasForMetrics();
    /**
     * optional bool for_metrics = 1;
     * @return The forMetrics.
     */
    boolean getForMetrics();

    /**
     * required .aws.kinesis.protobuf.Credentials credentials = 2;
     * @return Whether the credentials field is set.
     */
    boolean hasCredentials();
    /**
     * required .aws.kinesis.protobuf.Credentials credentials = 2;
     * @return The credentials.
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials getCredentials();
    /**
     * required .aws.kinesis.protobuf.Credentials credentials = 2;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.CredentialsOrBuilder getCredentialsOrBuilder();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.SetCredentials}
   */
  public  static final class SetCredentials extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.SetCredentials)
      SetCredentialsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetCredentials.newBuilder() to construct.
    private SetCredentials(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private SetCredentials() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SetCredentials();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 8: {
              bitField0_ |= 0x00000001;
              forMetrics_ = input.readBool();
              break;
            }
            case 18: {
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                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;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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_aws_kinesis_protobuf_SetCredentials_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_SetCredentials_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials.Builder.class);
    }

    private int bitField0_;
    public static final int FOR_METRICS_FIELD_NUMBER = 1;
    private boolean forMetrics_;
    /**
     * optional bool for_metrics = 1;
     * @return Whether the forMetrics field is set.
     */
    public boolean hasForMetrics() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional bool for_metrics = 1;
     * @return The forMetrics.
     */
    public boolean getForMetrics() {
      return forMetrics_;
    }

    public static final int CREDENTIALS_FIELD_NUMBER = 2;
    private com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials credentials_;
    /**
     * required .aws.kinesis.protobuf.Credentials credentials = 2;
     * @return Whether the credentials field is set.
     */
    public boolean hasCredentials() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * required .aws.kinesis.protobuf.Credentials credentials = 2;
     * @return The credentials.
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials getCredentials() {
      return credentials_ == null ? com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.getDefaultInstance() : credentials_;
    }
    /**
     * required .aws.kinesis.protobuf.Credentials credentials = 2;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.CredentialsOrBuilder getCredentialsOrBuilder() {
      return credentials_ == null ? com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.getDefaultInstance() : credentials_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBool(1, forMetrics_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getCredentials());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, forMetrics_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getCredentials());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials) obj;

      if (hasForMetrics() != other.hasForMetrics()) return false;
      if (hasForMetrics()) {
        if (getForMetrics()
            != other.getForMetrics()) return false;
      }
      if (hasCredentials() != other.hasCredentials()) return false;
      if (hasCredentials()) {
        if (!getCredentials()
            .equals(other.getCredentials())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasForMetrics()) {
        hash = (37 * hash) + FOR_METRICS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getForMetrics());
      }
      if (hasCredentials()) {
        hash = (37 * hash) + CREDENTIALS_FIELD_NUMBER;
        hash = (53 * hash) + getCredentials().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.SetCredentials}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_SetCredentials_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getCredentialsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        forMetrics_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (credentialsBuilder_ == null) {
          credentials_ = null;
        } else {
          credentialsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_SetCredentials_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          result.forMetrics_ = forMetrics_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (credentialsBuilder_ == null) {
            result.credentials_ = credentials_;
          } else {
            result.credentials_ = credentialsBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private boolean forMetrics_ ;
      /**
       * optional bool for_metrics = 1;
       * @return Whether the forMetrics field is set.
       */
      public boolean hasForMetrics() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional bool for_metrics = 1;
       * @return The forMetrics.
       */
      public boolean getForMetrics() {
        return forMetrics_;
      }
      /**
       * optional bool for_metrics = 1;
       * @param value The forMetrics to set.
       * @return This builder for chaining.
       */
      public Builder setForMetrics(boolean value) {
        bitField0_ |= 0x00000001;
        forMetrics_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool for_metrics = 1;
       * @return This builder for chaining.
       */
      public Builder clearForMetrics() {
        bitField0_ = (bitField0_ & ~0x00000001);
        forMetrics_ = false;
        onChanged();
        return this;
      }

      private com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials credentials_;
      private com.google.protobuf.SingleFieldBuilderV3<
          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 .aws.kinesis.protobuf.Credentials credentials = 2;
       * @return Whether the credentials field is set.
       */
      public boolean hasCredentials() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * required .aws.kinesis.protobuf.Credentials credentials = 2;
       * @return The credentials.
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials getCredentials() {
        if (credentialsBuilder_ == null) {
          return credentials_ == null ? com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.getDefaultInstance() : credentials_;
        } else {
          return credentialsBuilder_.getMessage();
        }
      }
      /**
       * required .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Credentials credentials = 2;
       */
      public Builder mergeCredentials(com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials value) {
        if (credentialsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              credentials_ != null &&
              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 .aws.kinesis.protobuf.Credentials credentials = 2;
       */
      public Builder clearCredentials() {
        if (credentialsBuilder_ == null) {
          credentials_ = null;
          onChanged();
        } else {
          credentialsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * required .aws.kinesis.protobuf.Credentials credentials = 2;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.Builder getCredentialsBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getCredentialsFieldBuilder().getBuilder();
      }
      /**
       * required .aws.kinesis.protobuf.Credentials credentials = 2;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.CredentialsOrBuilder getCredentialsOrBuilder() {
        if (credentialsBuilder_ != null) {
          return credentialsBuilder_.getMessageOrBuilder();
        } else {
          return credentials_ == null ?
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Credentials.getDefaultInstance() : credentials_;
        }
      }
      /**
       * required .aws.kinesis.protobuf.Credentials credentials = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          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.SingleFieldBuilderV3<
              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_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.SetCredentials)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.SetCredentials)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.SetCredentials getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * required string key = 1;
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * required string key = 1;
     * @return The key.
     */
    java.lang.String getKey();
    /**
     * required string key = 1;
     * @return The bytes for key.
     */
    com.google.protobuf.ByteString
        getKeyBytes();

    /**
     * required string value = 2;
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * required string value = 2;
     * @return The value.
     */
    java.lang.String getValue();
    /**
     * required string value = 2;
     * @return The bytes for value.
     */
    com.google.protobuf.ByteString
        getValueBytes();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.Dimension}
   */
  public  static final class Dimension extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.Dimension)
      DimensionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Dimension.newBuilder() to construct.
    private Dimension(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Dimension() {
      key_ = "";
      value_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Dimension();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            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;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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_aws_kinesis_protobuf_Dimension_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Dimension_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     * required string key = 1;
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required string key = 1;
     * @return The key.
     */
    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;
     * @return The bytes for key.
     */
    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 volatile java.lang.Object value_;
    /**
     * required string value = 2;
     * @return Whether the value field is set.
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * required string value = 2;
     * @return The value.
     */
    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;
     * @return The bytes for value.
     */
    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 byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.Dimension}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_Dimension_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Dimension_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        if (!hasValue()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       * required string key = 1;
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required string key = 1;
       * @return The key.
       */
      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;
       * @return The bytes for key.
       */
      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;
       * @param value The key to set.
       * @return This builder for chaining.
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * required string key = 1;
       * @return This builder for chaining.
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * required string key = 1;
       * @param value The bytes for key to set.
       * @return This builder for chaining.
       */
      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;
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * required string value = 2;
       * @return The value.
       */
      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;
       * @return The bytes for value.
       */
      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;
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * required string value = 2;
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       * required string value = 2;
       * @param value The bytes for value to set.
       * @return This builder for chaining.
       */
      public Builder setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.Dimension)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.Dimension)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * required double count = 1;
     * @return Whether the count field is set.
     */
    boolean hasCount();
    /**
     * required double count = 1;
     * @return The count.
     */
    double getCount();

    /**
     * required double sum = 2;
     * @return Whether the sum field is set.
     */
    boolean hasSum();
    /**
     * required double sum = 2;
     * @return The sum.
     */
    double getSum();

    /**
     * required double mean = 3;
     * @return Whether the mean field is set.
     */
    boolean hasMean();
    /**
     * required double mean = 3;
     * @return The mean.
     */
    double getMean();

    /**
     * required double min = 4;
     * @return Whether the min field is set.
     */
    boolean hasMin();
    /**
     * required double min = 4;
     * @return The min.
     */
    double getMin();

    /**
     * required double max = 5;
     * @return Whether the max field is set.
     */
    boolean hasMax();
    /**
     * required double max = 5;
     * @return The max.
     */
    double getMax();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.Stats}
   */
  public  static final class Stats extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.Stats)
      StatsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Stats.newBuilder() to construct.
    private Stats(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Stats() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Stats();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            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;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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_aws_kinesis_protobuf_Stats_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Stats_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.Builder.class);
    }

    private int bitField0_;
    public static final int COUNT_FIELD_NUMBER = 1;
    private double count_;
    /**
     * required double count = 1;
     * @return Whether the count field is set.
     */
    public boolean hasCount() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required double count = 1;
     * @return The count.
     */
    public double getCount() {
      return count_;
    }

    public static final int SUM_FIELD_NUMBER = 2;
    private double sum_;
    /**
     * required double sum = 2;
     * @return Whether the sum field is set.
     */
    public boolean hasSum() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * required double sum = 2;
     * @return The sum.
     */
    public double getSum() {
      return sum_;
    }

    public static final int MEAN_FIELD_NUMBER = 3;
    private double mean_;
    /**
     * required double mean = 3;
     * @return Whether the mean field is set.
     */
    public boolean hasMean() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * required double mean = 3;
     * @return The mean.
     */
    public double getMean() {
      return mean_;
    }

    public static final int MIN_FIELD_NUMBER = 4;
    private double min_;
    /**
     * required double min = 4;
     * @return Whether the min field is set.
     */
    public boolean hasMin() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * required double min = 4;
     * @return The min.
     */
    public double getMin() {
      return min_;
    }

    public static final int MAX_FIELD_NUMBER = 5;
    private double max_;
    /**
     * required double max = 5;
     * @return Whether the max field is set.
     */
    public boolean hasMax() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * required double max = 5;
     * @return The max.
     */
    public double getMax() {
      return max_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

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

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats) obj;

      if (hasCount() != other.hasCount()) return false;
      if (hasCount()) {
        if (java.lang.Double.doubleToLongBits(getCount())
            != java.lang.Double.doubleToLongBits(
                other.getCount())) return false;
      }
      if (hasSum() != other.hasSum()) return false;
      if (hasSum()) {
        if (java.lang.Double.doubleToLongBits(getSum())
            != java.lang.Double.doubleToLongBits(
                other.getSum())) return false;
      }
      if (hasMean() != other.hasMean()) return false;
      if (hasMean()) {
        if (java.lang.Double.doubleToLongBits(getMean())
            != java.lang.Double.doubleToLongBits(
                other.getMean())) return false;
      }
      if (hasMin() != other.hasMin()) return false;
      if (hasMin()) {
        if (java.lang.Double.doubleToLongBits(getMin())
            != java.lang.Double.doubleToLongBits(
                other.getMin())) return false;
      }
      if (hasMax() != other.hasMax()) return false;
      if (hasMax()) {
        if (java.lang.Double.doubleToLongBits(getMax())
            != java.lang.Double.doubleToLongBits(
                other.getMax())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasCount()) {
        hash = (37 * hash) + COUNT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getCount()));
      }
      if (hasSum()) {
        hash = (37 * hash) + SUM_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getSum()));
      }
      if (hasMean()) {
        hash = (37 * hash) + MEAN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMean()));
      }
      if (hasMin()) {
        hash = (37 * hash) + MIN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMin()));
      }
      if (hasMax()) {
        hash = (37 * hash) + MAX_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMax()));
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.Stats}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_Stats_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      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;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Stats_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          result.count_ = count_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.sum_ = sum_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.mean_ = mean_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.min_ = min_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.max_ = max_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private double count_ ;
      /**
       * required double count = 1;
       * @return Whether the count field is set.
       */
      public boolean hasCount() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required double count = 1;
       * @return The count.
       */
      public double getCount() {
        return count_;
      }
      /**
       * required double count = 1;
       * @param value The count to set.
       * @return This builder for chaining.
       */
      public Builder setCount(double value) {
        bitField0_ |= 0x00000001;
        count_ = value;
        onChanged();
        return this;
      }
      /**
       * required double count = 1;
       * @return This builder for chaining.
       */
      public Builder clearCount() {
        bitField0_ = (bitField0_ & ~0x00000001);
        count_ = 0D;
        onChanged();
        return this;
      }

      private double sum_ ;
      /**
       * required double sum = 2;
       * @return Whether the sum field is set.
       */
      public boolean hasSum() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * required double sum = 2;
       * @return The sum.
       */
      public double getSum() {
        return sum_;
      }
      /**
       * required double sum = 2;
       * @param value The sum to set.
       * @return This builder for chaining.
       */
      public Builder setSum(double value) {
        bitField0_ |= 0x00000002;
        sum_ = value;
        onChanged();
        return this;
      }
      /**
       * required double sum = 2;
       * @return This builder for chaining.
       */
      public Builder clearSum() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sum_ = 0D;
        onChanged();
        return this;
      }

      private double mean_ ;
      /**
       * required double mean = 3;
       * @return Whether the mean field is set.
       */
      public boolean hasMean() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * required double mean = 3;
       * @return The mean.
       */
      public double getMean() {
        return mean_;
      }
      /**
       * required double mean = 3;
       * @param value The mean to set.
       * @return This builder for chaining.
       */
      public Builder setMean(double value) {
        bitField0_ |= 0x00000004;
        mean_ = value;
        onChanged();
        return this;
      }
      /**
       * required double mean = 3;
       * @return This builder for chaining.
       */
      public Builder clearMean() {
        bitField0_ = (bitField0_ & ~0x00000004);
        mean_ = 0D;
        onChanged();
        return this;
      }

      private double min_ ;
      /**
       * required double min = 4;
       * @return Whether the min field is set.
       */
      public boolean hasMin() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * required double min = 4;
       * @return The min.
       */
      public double getMin() {
        return min_;
      }
      /**
       * required double min = 4;
       * @param value The min to set.
       * @return This builder for chaining.
       */
      public Builder setMin(double value) {
        bitField0_ |= 0x00000008;
        min_ = value;
        onChanged();
        return this;
      }
      /**
       * required double min = 4;
       * @return This builder for chaining.
       */
      public Builder clearMin() {
        bitField0_ = (bitField0_ & ~0x00000008);
        min_ = 0D;
        onChanged();
        return this;
      }

      private double max_ ;
      /**
       * required double max = 5;
       * @return Whether the max field is set.
       */
      public boolean hasMax() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * required double max = 5;
       * @return The max.
       */
      public double getMax() {
        return max_;
      }
      /**
       * required double max = 5;
       * @param value The max to set.
       * @return This builder for chaining.
       */
      public Builder setMax(double value) {
        bitField0_ |= 0x00000010;
        max_ = value;
        onChanged();
        return this;
      }
      /**
       * required double max = 5;
       * @return This builder for chaining.
       */
      public Builder clearMax() {
        bitField0_ = (bitField0_ & ~0x00000010);
        max_ = 0D;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.Stats)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.Stats)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * required string name = 1;
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * required string name = 1;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * required string name = 1;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

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

    /**
     * required .aws.kinesis.protobuf.Stats stats = 3;
     * @return Whether the stats field is set.
     */
    boolean hasStats();
    /**
     * required .aws.kinesis.protobuf.Stats stats = 3;
     * @return The stats.
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats getStats();
    /**
     * required .aws.kinesis.protobuf.Stats stats = 3;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.StatsOrBuilder getStatsOrBuilder();

    /**
     * required uint64 seconds = 4;
     * @return Whether the seconds field is set.
     */
    boolean hasSeconds();
    /**
     * required uint64 seconds = 4;
     * @return The seconds.
     */
    long getSeconds();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.Metric}
   */
  public  static final class Metric extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.Metric)
      MetricOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Metric.newBuilder() to construct.
    private Metric(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Metric() {
      name_ = "";
      dimensions_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Metric();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              name_ = bs;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                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) != 0)) {
                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;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          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_aws_kinesis_protobuf_Metric_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Metric_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * required string name = 1;
     * @return Whether the name field is set.
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * required string name = 1;
     * @return The name.
     */
    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;
     * @return The bytes for name.
     */
    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 .aws.kinesis.protobuf.Dimension dimensions = 2;
     */
    public java.util.List getDimensionsList() {
      return dimensions_;
    }
    /**
     * repeated .aws.kinesis.protobuf.Dimension dimensions = 2;
     */
    public java.util.List 
        getDimensionsOrBuilderList() {
      return dimensions_;
    }
    /**
     * repeated .aws.kinesis.protobuf.Dimension dimensions = 2;
     */
    public int getDimensionsCount() {
      return dimensions_.size();
    }
    /**
     * repeated .aws.kinesis.protobuf.Dimension dimensions = 2;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension getDimensions(int index) {
      return dimensions_.get(index);
    }
    /**
     * repeated .aws.kinesis.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 .aws.kinesis.protobuf.Stats stats = 3;
     * @return Whether the stats field is set.
     */
    public boolean hasStats() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * required .aws.kinesis.protobuf.Stats stats = 3;
     * @return The stats.
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats getStats() {
      return stats_ == null ? com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.getDefaultInstance() : stats_;
    }
    /**
     * required .aws.kinesis.protobuf.Stats stats = 3;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.StatsOrBuilder getStatsOrBuilder() {
      return stats_ == null ? com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.getDefaultInstance() : stats_;
    }

    public static final int SECONDS_FIELD_NUMBER = 4;
    private long seconds_;
    /**
     * required uint64 seconds = 4;
     * @return Whether the seconds field is set.
     */
    public boolean hasSeconds() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * required uint64 seconds = 4;
     * @return The seconds.
     */
    public long getSeconds() {
      return seconds_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      for (int i = 0; i < dimensions_.size(); i++) {
        output.writeMessage(2, dimensions_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(3, getStats());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt64(4, seconds_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      for (int i = 0; i < dimensions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, dimensions_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getStats());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, seconds_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric) obj;

      if (hasName() != other.hasName()) return false;
      if (hasName()) {
        if (!getName()
            .equals(other.getName())) return false;
      }
      if (!getDimensionsList()
          .equals(other.getDimensionsList())) return false;
      if (hasStats() != other.hasStats()) return false;
      if (hasStats()) {
        if (!getStats()
            .equals(other.getStats())) return false;
      }
      if (hasSeconds() != other.hasSeconds()) return false;
      if (hasSeconds()) {
        if (getSeconds()
            != other.getSeconds()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (getDimensionsCount() > 0) {
        hash = (37 * hash) + DIMENSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getDimensionsList().hashCode();
      }
      if (hasStats()) {
        hash = (37 * hash) + STATS_FIELD_NUMBER;
        hash = (53 * hash) + getStats().hashCode();
      }
      if (hasSeconds()) {
        hash = (37 * hash) + SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSeconds());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.Metric}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_Metric_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getDimensionsFieldBuilder();
          getStatsFieldBuilder();
        }
      }
      @java.lang.Override
      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_ = null;
        } else {
          statsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        seconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_Metric_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (dimensionsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            dimensions_ = java.util.Collections.unmodifiableList(dimensions_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.dimensions_ = dimensions_;
        } else {
          result.dimensions_ = dimensionsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          if (statsBuilder_ == null) {
            result.stats_ = stats_;
          } else {
            result.stats_ = statsBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.seconds_ = seconds_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDimensionsFieldBuilder() : null;
            } else {
              dimensionsBuilder_.addAllMessages(other.dimensions_);
            }
          }
        }
        if (other.hasStats()) {
          mergeStats(other.getStats());
        }
        if (other.hasSeconds()) {
          setSeconds(other.getSeconds());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * required string name = 1;
       * @return Whether the name field is set.
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * required string name = 1;
       * @return The name.
       */
      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;
       * @return The bytes for name.
       */
      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;
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * required string name = 1;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * required string name = 1;
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      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) != 0)) {
          dimensions_ = new java.util.ArrayList(dimensions_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          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 .aws.kinesis.protobuf.Dimension dimensions = 2;
       */
      public java.util.List getDimensionsList() {
        if (dimensionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dimensions_);
        } else {
          return dimensionsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .aws.kinesis.protobuf.Dimension dimensions = 2;
       */
      public int getDimensionsCount() {
        if (dimensionsBuilder_ == null) {
          return dimensions_.size();
        } else {
          return dimensionsBuilder_.getCount();
        }
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Dimension dimensions = 2;
       */
      public Builder removeDimensions(int index) {
        if (dimensionsBuilder_ == null) {
          ensureDimensionsIsMutable();
          dimensions_.remove(index);
          onChanged();
        } else {
          dimensionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .aws.kinesis.protobuf.Dimension dimensions = 2;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Dimension.Builder getDimensionsBuilder(
          int index) {
        return getDimensionsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.protobuf.Dimension dimensions = 2;
       */
      public java.util.List 
           getDimensionsOrBuilderList() {
        if (dimensionsBuilder_ != null) {
          return dimensionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dimensions_);
        }
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Dimension dimensions = 2;
       */
      public java.util.List 
           getDimensionsBuilderList() {
        return getDimensionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          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.RepeatedFieldBuilderV3<
              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) != 0),
                  getParentForChildren(),
                  isClean());
          dimensions_ = null;
        }
        return dimensionsBuilder_;
      }

      private com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats stats_;
      private com.google.protobuf.SingleFieldBuilderV3<
          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 .aws.kinesis.protobuf.Stats stats = 3;
       * @return Whether the stats field is set.
       */
      public boolean hasStats() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * required .aws.kinesis.protobuf.Stats stats = 3;
       * @return The stats.
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats getStats() {
        if (statsBuilder_ == null) {
          return stats_ == null ? com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.getDefaultInstance() : stats_;
        } else {
          return statsBuilder_.getMessage();
        }
      }
      /**
       * required .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Stats stats = 3;
       */
      public Builder mergeStats(com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats value) {
        if (statsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
              stats_ != null &&
              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 .aws.kinesis.protobuf.Stats stats = 3;
       */
      public Builder clearStats() {
        if (statsBuilder_ == null) {
          stats_ = null;
          onChanged();
        } else {
          statsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * required .aws.kinesis.protobuf.Stats stats = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.Builder getStatsBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatsFieldBuilder().getBuilder();
      }
      /**
       * required .aws.kinesis.protobuf.Stats stats = 3;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.StatsOrBuilder getStatsOrBuilder() {
        if (statsBuilder_ != null) {
          return statsBuilder_.getMessageOrBuilder();
        } else {
          return stats_ == null ?
              com.amazonaws.services.kinesis.producer.protobuf.Messages.Stats.getDefaultInstance() : stats_;
        }
      }
      /**
       * required .aws.kinesis.protobuf.Stats stats = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          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.SingleFieldBuilderV3<
              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;
       * @return Whether the seconds field is set.
       */
      public boolean hasSeconds() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * required uint64 seconds = 4;
       * @return The seconds.
       */
      public long getSeconds() {
        return seconds_;
      }
      /**
       * required uint64 seconds = 4;
       * @param value The seconds to set.
       * @return This builder for chaining.
       */
      public Builder setSeconds(long value) {
        bitField0_ |= 0x00000008;
        seconds_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint64 seconds = 4;
       * @return This builder for chaining.
       */
      public Builder clearSeconds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        seconds_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.Metric)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.Metric)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * optional string name = 1;
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * optional string name = 1;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * optional string name = 1;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * optional uint64 seconds = 2;
     * @return Whether the seconds field is set.
     */
    boolean hasSeconds();
    /**
     * optional uint64 seconds = 2;
     * @return The seconds.
     */
    long getSeconds();
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.MetricsRequest}
   */
  public  static final class MetricsRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.MetricsRequest)
      MetricsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MetricsRequest.newBuilder() to construct.
    private MetricsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MetricsRequest() {
      name_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MetricsRequest();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              name_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              seconds_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).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_aws_kinesis_protobuf_MetricsRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_MetricsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.class, com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * optional string name = 1;
     * @return Whether the name field is set.
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string name = 1;
     * @return The name.
     */
    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;
     * @return The bytes for name.
     */
    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;
     * @return Whether the seconds field is set.
     */
    public boolean hasSeconds() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional uint64 seconds = 2;
     * @return The seconds.
     */
    public long getSeconds() {
      return seconds_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, seconds_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, seconds_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest) obj;

      if (hasName() != other.hasName()) return false;
      if (hasName()) {
        if (!getName()
            .equals(other.getName())) return false;
      }
      if (hasSeconds() != other.hasSeconds()) return false;
      if (hasSeconds()) {
        if (getSeconds()
            != other.getSeconds()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasSeconds()) {
        hash = (37 * hash) + SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSeconds());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.MetricsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_MetricsRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        seconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_MetricsRequest_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.seconds_ = seconds_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      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.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       * optional string name = 1;
       * @return Whether the name field is set.
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional string name = 1;
       * @return The name.
       */
      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;
       * @return The bytes for name.
       */
      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;
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      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;
       * @return Whether the seconds field is set.
       */
      public boolean hasSeconds() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional uint64 seconds = 2;
       * @return The seconds.
       */
      public long getSeconds() {
        return seconds_;
      }
      /**
       * optional uint64 seconds = 2;
       * @param value The seconds to set.
       * @return This builder for chaining.
       */
      public Builder setSeconds(long value) {
        bitField0_ |= 0x00000002;
        seconds_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 seconds = 2;
       * @return This builder for chaining.
       */
      public Builder clearSeconds() {
        bitField0_ = (bitField0_ & ~0x00000002);
        seconds_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.MetricsRequest)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.MetricsRequest)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * repeated .aws.kinesis.protobuf.Metric metrics = 1;
     */
    java.util.List 
        getMetricsList();
    /**
     * repeated .aws.kinesis.protobuf.Metric metrics = 1;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric getMetrics(int index);
    /**
     * repeated .aws.kinesis.protobuf.Metric metrics = 1;
     */
    int getMetricsCount();
    /**
     * repeated .aws.kinesis.protobuf.Metric metrics = 1;
     */
    java.util.List 
        getMetricsOrBuilderList();
    /**
     * repeated .aws.kinesis.protobuf.Metric metrics = 1;
     */
    com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricOrBuilder getMetricsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code aws.kinesis.protobuf.MetricsResponse}
   */
  public  static final class MetricsResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:aws.kinesis.protobuf.MetricsResponse)
      MetricsResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MetricsResponse.newBuilder() to construct.
    private MetricsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MetricsResponse() {
      metrics_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MetricsResponse();
    }

    @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 {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                metrics_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              metrics_.add(
                  input.readMessage(com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          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_aws_kinesis_protobuf_MetricsResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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 final int METRICS_FIELD_NUMBER = 1;
    private java.util.List metrics_;
    /**
     * repeated .aws.kinesis.protobuf.Metric metrics = 1;
     */
    public java.util.List getMetricsList() {
      return metrics_;
    }
    /**
     * repeated .aws.kinesis.protobuf.Metric metrics = 1;
     */
    public java.util.List 
        getMetricsOrBuilderList() {
      return metrics_;
    }
    /**
     * repeated .aws.kinesis.protobuf.Metric metrics = 1;
     */
    public int getMetricsCount() {
      return metrics_.size();
    }
    /**
     * repeated .aws.kinesis.protobuf.Metric metrics = 1;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric getMetrics(int index) {
      return metrics_.get(index);
    }
    /**
     * repeated .aws.kinesis.protobuf.Metric metrics = 1;
     */
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricOrBuilder getMetricsOrBuilder(
        int index) {
      return metrics_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    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;
    }

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

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      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 += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse)) {
        return super.equals(obj);
      }
      com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse other = (com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse) obj;

      if (!getMetricsList()
          .equals(other.getMetricsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getMetricsCount() > 0) {
        hash = (37 * hash) + METRICS_FIELD_NUMBER;
        hash = (53 * hash) + getMetricsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseFrom(
        java.nio.ByteBuffer 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(
        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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code aws.kinesis.protobuf.MetricsResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:aws.kinesis.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_aws_kinesis_protobuf_MetricsResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_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.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getMetricsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metricsBuilder_ == null) {
          metrics_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          metricsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.amazonaws.services.kinesis.producer.protobuf.Messages.internal_static_aws_kinesis_protobuf_MetricsResponse_descriptor;
      }

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

      @java.lang.Override
      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;
      }

      @java.lang.Override
      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) != 0)) {
            metrics_ = java.util.Collections.unmodifiableList(metrics_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.metrics_ = metrics_;
        } else {
          result.metrics_ = metricsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      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.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMetricsFieldBuilder() : null;
            } else {
              metricsBuilder_.addAllMessages(other.metrics_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      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.unwrapIOException();
        } 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) != 0)) {
          metrics_ = new java.util.ArrayList(metrics_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          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 .aws.kinesis.protobuf.Metric metrics = 1;
       */
      public java.util.List getMetricsList() {
        if (metricsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(metrics_);
        } else {
          return metricsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .aws.kinesis.protobuf.Metric metrics = 1;
       */
      public int getMetricsCount() {
        if (metricsBuilder_ == null) {
          return metrics_.size();
        } else {
          return metricsBuilder_.getCount();
        }
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Metric metrics = 1;
       */
      public Builder removeMetrics(int index) {
        if (metricsBuilder_ == null) {
          ensureMetricsIsMutable();
          metrics_.remove(index);
          onChanged();
        } else {
          metricsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .aws.kinesis.protobuf.Metric metrics = 1;
       */
      public com.amazonaws.services.kinesis.producer.protobuf.Messages.Metric.Builder getMetricsBuilder(
          int index) {
        return getMetricsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.protobuf.Metric metrics = 1;
       */
      public java.util.List 
           getMetricsOrBuilderList() {
        if (metricsBuilder_ != null) {
          return metricsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(metrics_);
        }
      }
      /**
       * repeated .aws.kinesis.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 .aws.kinesis.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 .aws.kinesis.protobuf.Metric metrics = 1;
       */
      public java.util.List 
           getMetricsBuilderList() {
        return getMetricsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          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.RepeatedFieldBuilderV3<
              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) != 0),
                  getParentForChildren(),
                  isClean());
          metrics_ = null;
        }
        return metricsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:aws.kinesis.protobuf.MetricsResponse)
    }

    // @@protoc_insertion_point(class_scope:aws.kinesis.protobuf.MetricsResponse)
    private static final com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse();
    }

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

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

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public com.amazonaws.services.kinesis.producer.protobuf.Messages.MetricsResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_Tag_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_Tag_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_Record_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_Record_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_AggregatedRecord_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_AggregatedRecord_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_Message_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_Message_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_PutRecord_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_PutRecord_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_Flush_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_Flush_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_Attempt_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_Attempt_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_PutRecordResult_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_PutRecordResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_Credentials_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_Credentials_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_SetCredentials_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_SetCredentials_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_Dimension_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_Dimension_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_Stats_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_Stats_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_Metric_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_Metric_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_MetricsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_protobuf_MetricsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_aws_kinesis_protobuf_MetricsResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_aws_kinesis_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\022\024aws.kinesis.protobuf\032\014" +
      "config.proto\"!\n\003Tag\022\013\n\003key\030\001 \002(\t\022\r\n\005valu" +
      "e\030\002 \001(\t\"}\n\006Record\022\033\n\023partition_key_index" +
      "\030\001 \002(\004\022\037\n\027explicit_hash_key_index\030\002 \001(\004\022" +
      "\014\n\004data\030\003 \002(\014\022\'\n\004tags\030\004 \003(\0132\031.aws.kinesi" +
      "s.protobuf.Tag\"\177\n\020AggregatedRecord\022\033\n\023pa" +
      "rtition_key_table\030\001 \003(\t\022\037\n\027explicit_hash" +
      "_key_table\030\002 \003(\t\022-\n\007records\030\003 \003(\0132\034.aws." +
      "kinesis.protobuf.Record\"\346\003\n\007Message\022\n\n\002i" +
      "d\030\001 \002(\004\022\021\n\tsource_id\030\002 \001(\004\0225\n\nput_record" +
      "\030\003 \001(\0132\037.aws.kinesis.protobuf.PutRecordH" +
      "\000\022,\n\005flush\030\004 \001(\0132\033.aws.kinesis.protobuf." +
      "FlushH\000\022B\n\021put_record_result\030\005 \001(\0132%.aws" +
      ".kinesis.protobuf.PutRecordResultH\000\022<\n\rc" +
      "onfiguration\030\006 \001(\0132#.aws.kinesis.protobu" +
      "f.ConfigurationH\000\022?\n\017metrics_request\030\007 \001" +
      "(\0132$.aws.kinesis.protobuf.MetricsRequest" +
      "H\000\022A\n\020metrics_response\030\010 \001(\0132%.aws.kines" +
      "is.protobuf.MetricsResponseH\000\022?\n\017set_cre" +
      "dentials\030\t \001(\0132$.aws.kinesis.protobuf.Se" +
      "tCredentialsH\000B\020\n\016actual_message\"`\n\tPutR" +
      "ecord\022\023\n\013stream_name\030\001 \002(\t\022\025\n\rpartition_" +
      "key\030\002 \002(\t\022\031\n\021explicit_hash_key\030\003 \001(\t\022\014\n\004" +
      "data\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\"~\n\017PutRecordRes" +
      "ult\022/\n\010attempts\030\001 \003(\0132\035.aws.kinesis.prot" +
      "obuf.Attempt\022\017\n\007success\030\002 \002(\010\022\020\n\010shard_i" +
      "d\030\003 \001(\t\022\027\n\017sequence_number\030\004 \001(\t\">\n\013Cred" +
      "entials\022\014\n\004akid\030\001 \002(\t\022\022\n\nsecret_key\030\002 \002(" +
      "\t\022\r\n\005token\030\003 \001(\t\"]\n\016SetCredentials\022\023\n\013fo" +
      "r_metrics\030\001 \001(\010\0226\n\013credentials\030\002 \002(\0132!.a" +
      "ws.kinesis.protobuf.Credentials\"\'\n\tDimen" +
      "sion\022\013\n\003key\030\001 \002(\t\022\r\n\005value\030\002 \002(\t\"K\n\005Stat" +
      "s\022\r\n\005count\030\001 \002(\001\022\013\n\003sum\030\002 \002(\001\022\014\n\004mean\030\003 " +
      "\002(\001\022\013\n\003min\030\004 \002(\001\022\013\n\003max\030\005 \002(\001\"\210\001\n\006Metric" +
      "\022\014\n\004name\030\001 \002(\t\0223\n\ndimensions\030\002 \003(\0132\037.aws" +
      ".kinesis.protobuf.Dimension\022*\n\005stats\030\003 \002" +
      "(\0132\033.aws.kinesis.protobuf.Stats\022\017\n\007secon" +
      "ds\030\004 \002(\004\"/\n\016MetricsRequest\022\014\n\004name\030\001 \001(\t" +
      "\022\017\n\007seconds\030\002 \001(\004\"@\n\017MetricsResponse\022-\n\007" +
      "metrics\030\001 \003(\0132\034.aws.kinesis.protobuf.Met" +
      "ricB2\n0com.amazonaws.services.kinesis.pr" +
      "oducer.protobuf"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.amazonaws.services.kinesis.producer.protobuf.Config.getDescriptor(),
        });
    internal_static_aws_kinesis_protobuf_Tag_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_aws_kinesis_protobuf_Tag_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_Tag_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_aws_kinesis_protobuf_Record_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_aws_kinesis_protobuf_Record_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_Record_descriptor,
        new java.lang.String[] { "PartitionKeyIndex", "ExplicitHashKeyIndex", "Data", "Tags", });
    internal_static_aws_kinesis_protobuf_AggregatedRecord_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_aws_kinesis_protobuf_AggregatedRecord_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_AggregatedRecord_descriptor,
        new java.lang.String[] { "PartitionKeyTable", "ExplicitHashKeyTable", "Records", });
    internal_static_aws_kinesis_protobuf_Message_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_aws_kinesis_protobuf_Message_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_Message_descriptor,
        new java.lang.String[] { "Id", "SourceId", "PutRecord", "Flush", "PutRecordResult", "Configuration", "MetricsRequest", "MetricsResponse", "SetCredentials", "ActualMessage", });
    internal_static_aws_kinesis_protobuf_PutRecord_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_aws_kinesis_protobuf_PutRecord_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_PutRecord_descriptor,
        new java.lang.String[] { "StreamName", "PartitionKey", "ExplicitHashKey", "Data", });
    internal_static_aws_kinesis_protobuf_Flush_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_aws_kinesis_protobuf_Flush_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_Flush_descriptor,
        new java.lang.String[] { "StreamName", });
    internal_static_aws_kinesis_protobuf_Attempt_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_aws_kinesis_protobuf_Attempt_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_Attempt_descriptor,
        new java.lang.String[] { "Delay", "Duration", "Success", "ErrorCode", "ErrorMessage", });
    internal_static_aws_kinesis_protobuf_PutRecordResult_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_aws_kinesis_protobuf_PutRecordResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_PutRecordResult_descriptor,
        new java.lang.String[] { "Attempts", "Success", "ShardId", "SequenceNumber", });
    internal_static_aws_kinesis_protobuf_Credentials_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_aws_kinesis_protobuf_Credentials_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_Credentials_descriptor,
        new java.lang.String[] { "Akid", "SecretKey", "Token", });
    internal_static_aws_kinesis_protobuf_SetCredentials_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_aws_kinesis_protobuf_SetCredentials_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_SetCredentials_descriptor,
        new java.lang.String[] { "ForMetrics", "Credentials", });
    internal_static_aws_kinesis_protobuf_Dimension_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_aws_kinesis_protobuf_Dimension_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_Dimension_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_aws_kinesis_protobuf_Stats_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_aws_kinesis_protobuf_Stats_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_Stats_descriptor,
        new java.lang.String[] { "Count", "Sum", "Mean", "Min", "Max", });
    internal_static_aws_kinesis_protobuf_Metric_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_aws_kinesis_protobuf_Metric_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_Metric_descriptor,
        new java.lang.String[] { "Name", "Dimensions", "Stats", "Seconds", });
    internal_static_aws_kinesis_protobuf_MetricsRequest_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_aws_kinesis_protobuf_MetricsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_MetricsRequest_descriptor,
        new java.lang.String[] { "Name", "Seconds", });
    internal_static_aws_kinesis_protobuf_MetricsResponse_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_aws_kinesis_protobuf_MetricsResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_aws_kinesis_protobuf_MetricsResponse_descriptor,
        new java.lang.String[] { "Metrics", });
    com.amazonaws.services.kinesis.producer.protobuf.Config.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy