def create_cache_cluster(id, options = {})
req_options = {
'Action' => 'CreateCacheCluster',
'CacheClusterId' => id.strip,
'CacheNodeType' => options[:node_type] || 'cache.m1.large',
'Engine' => options[:engine] || 'memcached',
'NumCacheNodes' => options[:num_nodes] || 1,
'AutoMinorVersionUpgrade' => options[:auto_minor_version_upgrade],
'CacheParameterGroupName' => options[:parameter_group_name],
'CacheSubnetGroupName' => options[:cache_subnet_group_name],
'EngineVersion' => options[:engine_version],
'NotificationTopicArn' => options[:notification_topic_arn],
'Port' => options[:port],
'PreferredAvailabilityZone' => options[:preferred_availablility_zone],
'PreferredMaintenanceWindow' => options[:preferred_maintenance_window],
:parser => Fog::Parsers::AWS::Elasticache::SingleCacheCluster.new
}
if s3_snapshot_location = options.delete(:s3_snapshot_location)
req_options.merge!(Fog::AWS.indexed_param('SnapshotArns.member.%d', [*s3_snapshot_location]))
end
if cache_security_groups = options.delete(:security_group_names)
req_options.merge!(Fog::AWS.indexed_param('CacheSecurityGroupNames.member.%d', [*cache_security_groups]))
end
if vpc_security_groups = options.delete(:vpc_security_groups)
req_options.merge!(Fog::AWS.indexed_param('SecurityGroupIds.member.%d', [*vpc_security_groups]))
end
request( req_options )
end