def modify_cache_cluster(id, options = {})
group_names = options[:security_group_names] || []
sec_group_params = group_names.inject({}) do |group_hash, name|
index = group_names.index(name) + 1
group_hash["CacheSecurityGroupNames.member.#{index}"] = name
group_hash
end
node_ids = options[:nodes_to_remove] || []
node_id_params = node_ids.inject({}) do |node_hash, node_id|
index = node_ids.index(node_id) + 1
node_hash["CacheNodeIdsToRemove.member.#{index}"] = node_id
node_hash
end
request(node_id_params.merge(sec_group_params.merge(
'Action' => 'ModifyCacheCluster',
'CacheClusterId' => id.strip,
'ApplyImmediately' => options[:apply_immediately],
'NumCacheNodes' => options[:num_nodes],
'AutoMinorVersionUpgrade' => options[:auto_minor_version_upgrade],
'CacheParameterGroupName' => options[:parameter_group_name],
'EngineVersion' => options[:engine_version],
'NotificationTopicArn' => (options[:notification_topic_arn]).strip,
'NotificationTopicStatus' => options[:notification_topic_status],
'PreferredMaintenanceWindow' => options[:preferred_maintenance_window],
:parser => Fog::Parsers::AWS::Elasticache::SingleCacheCluster.new
)))
end