text: ﻿/**
   * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   * SPDX-License-Identifier: Apache-2.0.
   */
  
  #include <aws/neptune/model/ModifyDBClusterRequest.h>
  #include <aws/core/utils/StringUtils.h>
  #include <aws/core/utils/memory/stl/AWSStringStream.h>
  
  using namespace Aws::Neptune::Model;
  using namespace Aws::Utils;
  
  ModifyDBClusterRequest::ModifyDBClusterRequest() : 
      m_dBClusterIdentifierHasBeenSet(false),
      m_newDBClusterIdentifierHasBeenSet(false),
      m_applyImmediately(false),
      m_applyImmediatelyHasBeenSet(false),
      m_backupRetentionPeriod(0),
      m_backupRetentionPeriodHasBeenSet(false),
      m_dBClusterParameterGroupNameHasBeenSet(false),
      m_vpcSecurityGroupIdsHasBeenSet(false),
      m_port(0),
      m_portHasBeenSet(false),
      m_masterUserPasswordHasBeenSet(false),
      m_optionGroupNameHasBeenSet(false),
      m_preferredBackupWindowHasBeenSet(false),
      m_preferredMaintenanceWindowHasBeenSet(false),
      m_enableIAMDatabaseAuthentication(false),
      m_enableIAMDatabaseAuthenticationHasBeenSet(false),
      m_cloudwatchLogsExportConfigurationHasBeenSet(false),
      m_engineVersionHasBeenSet(false),
      m_deletionProtection(false),
      m_deletionProtectionHasBeenSet(false)
  {
  }
  
  Aws::String ModifyDBClusterRequest::SerializePayload() const
  {
    Aws::StringStream ss;
    ss << "Action=ModifyDBCluster&";
    if(m_dBClusterIdentifierHasBeenSet)
    {
      ss << "DBClusterIdentifier=" << StringUtils::URLEncode(m_dBClusterIdentifier.c_str()) << "&";
    }
  
    if(m_newDBClusterIdentifierHasBeenSet)
    {
      ss << "NewDBClusterIdentifier=" << StringUtils::URLEncode(m_newDBClusterIdentifier.c_str()) << "&";
    }
  
    if(m_applyImmediatelyHasBeenSet)
    {
      ss << "ApplyImmediately=" << std::boolalpha << m_applyImmediately << "&";
    }
  
    if(m_backupRetentionPeriodHasBeenSet)
    {
      ss << "BackupRetentionPeriod=" << m_backupRetentionPeriod << "&";
    }
  
    if(m_dBClusterParameterGroupNameHasBeenSet)
    {
      ss << "DBClusterParameterGroupName=" << StringUtils::URLEncode(m_dBClusterParameterGroupName.c_str()) << "&";
    }
  
    if(m_vpcSecurityGroupIdsHasBeenSet)
    {
      unsigned vpcSecurityGroupIdsCount = 1;
      for(auto& item : m_vpcSecurityGroupIds)
      {
        ss << "VpcSecurityGroupIds.member." << vpcSecurityGroupIdsCount << "="
            << StringUtils::URLEncode(item.c_str()) << "&";
        vpcSecurityGroupIdsCount++;
      }
    }
  
    if(m_portHasBeenSet)
    {
      ss << "Port=" << m_port << "&";
    }
  
    if(m_masterUserPasswordHasBeenSet)
    {
      ss << "MasterUserPassword=" << StringUtils::URLEncode(m_masterUserPassword.c_str()) << "&";
    }
  
    if(m_optionGroupNameHasBeenSet)
    {
      ss << "OptionGroupName=" << StringUtils::URLEncode(m_optionGroupName.c_str()) << "&";
    }
  
    if(m_preferredBackupWindowHasBeenSet)
    {
      ss << "PreferredBackupWindow=" << StringUtils::URLEncode(m_preferredBackupWindow.c_str()) << "&";
    }
  
    if(m_preferredMaintenanceWindowHasBeenSet)
    {
      ss << "PreferredMaintenanceWindow=" << StringUtils::URLEncode(m_preferredMaintenanceWindow.c_str()) << "&";
    }
  
    if(m_enableIAMDatabaseAuthenticationHasBeenSet)
    {
      ss << "EnableIAMDatabaseAuthentication=" << std::boolalpha << m_enableIAMDatabaseAuthentication << "&";
    }
  
    if(m_cloudwatchLogsExportConfigurationHasBeenSet)
    {
      m_cloudwatchLogsExportConfiguration.OutputToStream(ss, "CloudwatchLogsExportConfiguration");
    }
  
    if(m_engineVersionHasBeenSet)
    {
      ss << "EngineVersion=" << StringUtils::URLEncode(m_engineVersion.c_str()) << "&";
    }
  
    if(m_deletionProtectionHasBeenSet)
    {
      ss << "DeletionProtection=" << std::boolalpha << m_deletionProtection << "&";
    }
  
    ss << "Version=2014-10-31";
    return ss.str();
  }
  
  
  void  ModifyDBClusterRequest::DumpBodyToUrl(Aws::Http::URI& uri ) const
  {
    uri.SetQueryString(SerializePayload());
  }
  