'Destroy an ElastiCache cluster'

def delete(self):

    if (self.status == 'gone'):
        return
    if (self.status == 'deleting'):
        if self.wait:
            self._wait_for_status('gone')
        return
    if (self.status in ['creating', 'rebooting', 'modifying']):
        if self.wait:
            self._wait_for_status('available')
        else:
            msg = "'%s'    is    currently    %s.    Cannot    delete."
            self.module.fail_json(msg=(msg % (self.name, self.status)))
    try:
        response = self.conn.delete_cache_cluster(CacheClusterId=self.name)
    except botocore.exceptions.ClientError as e:
        self.module.fail_json(msg=e.message, exception=format_exc(), **camel_dict_to_snake_dict(e.response))
    cache_cluster_data = response['CacheCluster']
    self._refresh_data(cache_cluster_data)
    self.changed = True
    if self.wait:
        self._wait_for_status('gone')
