code: def undeploy(self, no_confirm=False, remove_logs=False):
          
  
          if not no_confirm: # pragma: no cover
              confirm = input("Are you sure you want to undeploy? [y/n] ")
              if confirm != 'y':
                  return
  
          if self.use_alb:
              self.zappa.undeploy_lambda_alb(self.lambda_name)
  
          if self.use_apigateway:
              if remove_logs:
                  self.zappa.remove_api_gateway_logs(self.lambda_name)
  
              domain_name = self.stage_config.get('domain', None)
              base_path = self.stage_config.get('base_path', None)
  
              # Only remove the api key when not specified
              if self.api_key_required and self.api_key is None:
                  api_id = self.zappa.get_api_id(self.lambda_name)
                  self.zappa.remove_api_key(api_id, self.api_stage)
  
              gateway_id = self.zappa.undeploy_api_gateway(
                  self.lambda_name,
                  domain_name=domain_name,
                  base_path=base_path
              )
  
          self.unschedule()  # removes event triggers, including warm up event.
  
          self.zappa.delete_lambda_function(self.lambda_name)
          if remove_logs:
              self.zappa.remove_lambda_function_logs(self.lambda_name)
  
          click.echo(click.style("Done", fg="green", bold=True) + "!")
docs: Tear down an existing deployment.