def modify_cluster(options = {})
cluster_identifier = options[:cluster_identifier]
cluster_type = options[:cluster_type]
node_type = options[:node_type]
master_user_password = options[:master_user_password]
preferred_maintenance_window = options[:preferred_maintenance_window]
cluster_parameter_group_name = options[:cluster_parameter_group_name]
automated_snapshot_retention_period = options[:automated_snapshot_retention_period]
cluster_version = options[:cluster_version]
allow_version_upgrade = options[:allow_version_upgrade]
number_of_nodes = options[:number_of_nodes]
path = "/"
params = {
:idempotent => true,
:headers => {},
:path => path,
:method => :put,
:query => {},
:parser => Fog::Parsers::Redshift::AWS::Cluster.new
}
if cluster_security_groups = options.delete(:ClusterSecurityGroups)
params[:query].merge!(Fog::AWS.indexed_param('ClusterSecurityGroups.member.%d', [*cluster_security_groups]))
end
if vpc_security_group_ids = options.delete(:VpcSecurityGroupIds)
params[:query].merge!(Fog::AWS.indexed_param('VpcSecurityGroupIds.member.%d', [*vpc_security_group_ids]))
end
params[:query]['Action'] = 'ModifyCluster'
params[:query]['ClusterIdentifier'] = cluster_identifier if cluster_identifier
params[:query]['ClusterParameterGroupName'] = cluster_parameter_group_name if cluster_parameter_group_name
params[:query]['ClusterType'] = cluster_type if cluster_type
params[:query]['NodeType'] = node_type if node_type
params[:query]['MasterUserPassword'] = master_user_password if master_user_password
params[:query]['PreferredMaintenanceWindow'] = preferred_maintenance_window if preferred_maintenance_window
params[:query]['AutomatedSnapshotRetentionPeriod'] = automated_snapshot_retention_period if automated_snapshot_retention_period
params[:query]['ClusterVersion'] = cluster_version if cluster_version
params[:query]['AllowVersionUpgrade'] = allow_version_upgrade if allow_version_upgrade
params[:query]['NumberOfNodes'] = number_of_nodes if number_of_nodes
params[:query]['ClusterSecurityGroups'] = cluster_security_groups if cluster_security_groups
params[:query]['VpcSecurityGroupIds'] = vpc_security_group_ids if vpc_security_group_ids
request(params)
end