public Request<DescribeConfigurationSettingsRequest> marshall(
      DescribeConfigurationSettingsRequest describeConfigurationSettingsRequest) {

    if (describeConfigurationSettingsRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DescribeConfigurationSettingsRequest> request =
        new DefaultRequest<DescribeConfigurationSettingsRequest>(
            describeConfigurationSettingsRequest, "AWSElasticBeanstalk");
    request.addParameter("Action", "DescribeConfigurationSettings");
    request.addParameter("Version", "2010-12-01");

    if (describeConfigurationSettingsRequest.getApplicationName() != null) {
      request.addParameter(
          "ApplicationName",
          StringUtils.fromString(describeConfigurationSettingsRequest.getApplicationName()));
    }
    if (describeConfigurationSettingsRequest.getTemplateName() != null) {
      request.addParameter(
          "TemplateName",
          StringUtils.fromString(describeConfigurationSettingsRequest.getTemplateName()));
    }
    if (describeConfigurationSettingsRequest.getEnvironmentName() != null) {
      request.addParameter(
          "EnvironmentName",
          StringUtils.fromString(describeConfigurationSettingsRequest.getEnvironmentName()));
    }

    return request;
  }
  @Override
  public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null) return false;

    if (obj instanceof DescribeConfigurationSettingsRequest == false) return false;
    DescribeConfigurationSettingsRequest other = (DescribeConfigurationSettingsRequest) obj;

    if (other.getApplicationName() == null ^ this.getApplicationName() == null) return false;
    if (other.getApplicationName() != null
        && other.getApplicationName().equals(this.getApplicationName()) == false) return false;
    if (other.getTemplateName() == null ^ this.getTemplateName() == null) return false;
    if (other.getTemplateName() != null
        && other.getTemplateName().equals(this.getTemplateName()) == false) return false;
    if (other.getEnvironmentName() == null ^ this.getEnvironmentName() == null) return false;
    if (other.getEnvironmentName() != null
        && other.getEnvironmentName().equals(this.getEnvironmentName()) == false) return false;
    return true;
  }