code: def undeploy_api_gateway(self, lambda_name, domain_name=None, base_path=None):
          
          print("Deleting API Gateway..")
  
          api_id = self.get_api_id(lambda_name)
  
          if domain_name:
  
              # XXX - Remove Route53 smartly here?
              # XXX - This doesn't raise, but doesn't work either.
  
              try:
                  self.apigateway_client.delete_base_path_mapping(
                      domainName=domain_name,
                      basePath='(none)' if base_path is None else base_path
                  )
              except Exception as e:
                  # We may not have actually set up the domain.
                  pass
  
          was_deleted = self.delete_stack(lambda_name, wait=True)
  
          if not was_deleted:
              # try erasing it with the older method
              for api in self.get_rest_apis(lambda_name):
                  self.apigateway_client.delete_rest_api(
                      restApiId=api['id']
                  )
docs: Delete a deployed REST API Gateway.