'Given a a list of scheduled functions,
tear down their regular execution.'

def unschedule(self):

    events = self.stage_config.get(u'events', [])
    if (not isinstance(events, list)):
        print u'Events    must    be    supplied    as    a    list.'
        return
    function_arn = None
    try:
        function_response = self.zappa.lambda_client.get_function(FunctionName=self.lambda_name)
        function_arn = function_response[u'Configuration'][u'FunctionArn']
    except botocore.exceptions.ClientError as e:
        raise ClickException(u'Function    does    not    exist,    you    should    deploy    first.    Ex:    zappa    deploy    {}.    Proceeding    to    unschedule    CloudWatch    based    events.'.format(self.api_stage))
    print u'Unscheduling..'
    self.zappa.unschedule_events(lambda_name=self.lambda_name, lambda_arn=function_arn, events=events)
    if ((self.stage_config.get(u'async_source', None) == u'sns') and self.stage_config.get(u'async_resources', True)):
        removed_arns = self.zappa.remove_async_sns_topic(self.lambda_name)
        click.echo((u'SNS    Topic    removed:    %s' % u',    '.join(removed_arns)))
