        return parameters_ == null?
            com.google.protobuf.Struct.getDefaultInstance() : parameters_;
      }
    }
    /**
     * <pre>
     * The collected [session parameters][google.cloud.dialogflow.cx.v3.SessionInfo.parameters].
     * Depending on your protocol or client library language, this is a
     * map, associative array, symbol table, dictionary, or JSON object
     * composed of a collection of (MapKey, MapValue) pairs:
     * -   MapKey type: string
     * -   MapKey value: parameter name
     * -   MapValue type:
     *     -   If parameter's entity type is a composite entity: map
     *     -   Else: depending on parameter value type, could be one of string,
     *         number, boolean, null, list or map
     * -   MapValue value:
     *     -   If parameter's entity type is a composite entity:
     *         map from composite entity property names to property values
     *     -   Else: parameter value
     * </pre>
     *
     * <code>.google.protobuf.Struct parameters = 3;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> 
        getParametersFieldBuilder() {
      if (parametersBuilder_ == null) {
        parametersBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>(
                getParameters(),
                getParentForChildren(),
                isClean());
        parameters_ = null;
      }
      return parametersBuilder_;
    }

    private java.util.List<com.google.cloud.dialogflow.cx.v3.ResponseMessage> responseMessages_ =
      java.util.Collections.emptyList();
    private void ensureResponseMessagesIsMutable() {
      if (!((bitField0_ & 0x00000001)!= 0)) {
        responseMessages_ = new java.util.ArrayList<com.google.cloud.dialogflow.cx.v3.ResponseMessage>(responseMessages_);
        bitField0_ |= 0x00000001;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        com.google.cloud.dialogflow.cx.v3.ResponseMessage, com.google.cloud.dialogflow.cx.v3.ResponseMessage.Builder, com.google.cloud.dialogflow.cx.v3.ResponseMessageOrBuilder> responseMessagesBuilder_;

    /**
     * <pre>
     * The list of rich messages returned to the client. Responses vary from
     * simple text messages to more sophisticated, structured payloads used
     * to drive complex logic.
     * </pre>
     *
     * <code>repeated.google.cloud.dialogflow.cx.v3.ResponseMessage response_messages = 4;</code>
     */
    public java.util.List<com.google.cloud.dialogflow.cx.v3.ResponseMessage> getResponseMessagesList() {
      if (responseMessagesBuilder_ == null) {
        return java.util.Collections.unmodifiableList(responseMessages_);
      } else {
        return responseMessagesBuilder_.getMessageList();
      }
    }
    /**
     * <pre>
     * The list of rich messages returned to the client. Responses vary from
     * simple text messages to more sophisticated, structured payloads used
     * to drive complex logic.
     * </pre>
     *
     * <code>repeated.google.cloud.dialogflow.cx.v3.ResponseMessage response_messages = 4;</code>
     */
    public int getResponseMessagesCount() {
      if (responseMessagesBuilder_ == null) {
        return responseMessages_.size();
      } else {
        return responseMessagesBuilder_.getCount();
      }
    }
    /**
     * <pre>
     * The list of rich messages returned to the client. Responses vary from
     * simple text messages to more sophisticated, structured payloads used
     * to drive complex logic.
     * </pre>
     *
     * <code>repeated.google.cloud.dialogflow.cx.v3.ResponseMessage response_messages = 4;</code>
     */
    public com.google.cloud.dialogflow.cx.v3.ResponseMessage getResponseMessages(int index) {
      if (responseMessagesBuilder_ == null) {
        return responseMessages_.get(index);
      } else {
        return responseMessagesBuilder_.getMessage(index);
      }
    }
    /**
     * <pre>
     * The list of rich messages returned to the client. Responses vary from
     * simple text messages to more sophisticated, structured payloads used
     * to drive complex logic.
     * </pre>
     *
     * <code>repeated.google.cloud.dialogflow.cx.v3.ResponseMessage response_messages = 4;</code>
     */
    public Builder setResponseMessages(
        int index, com.google.cloud.dialogflow.cx.v3.ResponseMessage value) {
      if (responseMessagesBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResponseMessagesIsMutable();
        responseMessages_.set(index, value);
        onChanged();
      } else {
        responseMessagesBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     * <pre>
     * The list of rich messages returned to the client. Responses vary from
     * simple text messages to more sophisticated, structured payloads used
     * to drive complex logic.
     * </pre>
     *
     * <code>repeated.google.cloud.dialogflow.cx.v3.ResponseMessage response_messages = 4;</code>
     */
    public Builder setResponseMessages(
        int index, com.google.cloud.dialogflow.cx.v3.ResponseMessage.Builder builderForValue) {
      if (responseMessagesBuilder_ == null) {
        ensureResponseMessagesIsMutable();
        responseMessages_.set(index, builderForValue.build());
        onChanged();
      } else {
        responseMessagesBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <pre>
     * The list of rich messages returned to the client. Responses vary from
     * simple text messages to more sophisticated, structured payloads used
     * to drive complex logic.
     * </pre>
     *
     * <code>repeated.google.cloud.dialogflow.cx.v3.ResponseMessage response_messages = 4;</code>
     */
    public Builder addResponseMessages(com.google.cloud.dialogflow.cx.v3.ResponseMessage value) {
      if (responseMessagesBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResponseMessagesIsMutable();
        responseMessages_.add(value);
        onChanged();
      } else {
        responseMessagesBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     * <pre>
     * The list of rich messages returned to the client. Responses vary from
     * simple text messages to more sophisticated, structured payloads used
     * to drive complex logic.
     * </pre>
     *
     * <code>repeated.google.cloud.dialogflow.cx.v3.ResponseMessage response_messages = 4;</code>
     */
    public Builder addResponseMessages(
        int index, com.google.cloud.dialogflow.cx.v3.ResponseMessage value) {
      if (responseMessagesBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResponseMessagesIsMutable();
        responseMessages_.add(index, value);
        onChanged();
      } else {
        responseMessagesBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     * <pre>
     * The list of rich messages returned to the client. Responses vary from
     * simple text messages to more sophisticated, structured payloads used
     * to drive complex logic.
     * </pre>
     *
     * <code>repeated.google.cloud.dialogflow.cx.v3.ResponseMessage response_messages = 4;</code>
     */
    public Builder addResponseMessages(
        com.google.cloud.dialogflow.cx.v3.ResponseMessage.Builder builderForValue) {
      if (responseMessagesBuilder_ == null) {
        ensure