'Modify the cache cluster. Note it\'s only possible to modify a few select options.'

def modify(self):

    nodes_to_remove = self._get_nodes_to_remove()
    try:
        self.conn.modify_cache_cluster(CacheClusterId=self.name, NumCacheNodes=self.num_nodes, CacheNodeIdsToRemove=nodes_to_remove, CacheSecurityGroupNames=self.cache_security_groups, CacheParameterGroupName=self.cache_parameter_group, SecurityGroupIds=self.security_group_ids, ApplyImmediately=True, EngineVersion=self.cache_engine_version)
    except botocore.exceptions.ClientError as e:
        self.module.fail_json(msg=e.message, exception=format_exc(), **camel_dict_to_snake_dict(e.response))
    self._refresh_data()
    self.changed = True
    if self.wait:
        self._wait_for_status('available')
