# File lib/fog/aws/requests/elasticache/modify_cache_cluster.rb, line 64
        def modify_cache_cluster(id, options = {})
          response        = Excon::Response.new
          cluster         = self.data[:clusters][id]
          pending_values  = Hash.new
          # For any given option, update the cluster's corresponding value
          { :auto_minor_version_upgrade   => 'AutoMinorVersionUpgrade',
            :preferred_maintenance_window => 'PreferredMaintenanceWindow',
            :engine_version               => 'EngineVersion',
            :num_nodes                    => 'NumCacheNodes',
          }.each do |option, cluster_key|
            if options[option] != nil
              cluster[cluster_key] = options[option].to_s
              pending_values[cluster_key] = options[option]
            end
          end
          cache['CacheParameterGroup'] = {
            'CacheParameterGroupName' => options[:parameter_group_name]
          } if options[:parameter_group_name]
          if options[:num_nodes] || options[:engine_version]
            cluster['CacheNodes'] =
              create_cache_nodes(cluster['CacheClusterId'], options[:num_nodes])
            cluster['NumCacheNodes'] = cluster['CacheNodes'].size
          end
          if options[:nodes_to_remove]
            pending_values['CacheNodeId'] = options[:nodes_to_remove].join(',')
          end
          response.body = {
            'CacheCluster' => cluster.merge({
              'PendingModifiedValues' => pending_values
            }),
            'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
          }
          response
        end