code: def delete_forecast(self, job_id, forecast_id=None, params=None):
          
          if job_id in SKIP_IN_PATH:
              raise ValueError("Empty value passed for a required argument 'job_id'.")
          return self.transport.perform_request(
              "DELETE",
              _make_path("_ml", "anomaly_detectors", job_id, "_forecast", forecast_id),
              params=params,
          )
docs: `<http://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-forecast.html>`_
  
          :arg job_id: The ID of the job from which to delete forecasts
          :arg forecast_id: The ID of the forecast to delete, can be comma
              delimited list. Leaving blank implies `_all`
          :arg allow_no_forecasts: Whether to ignore if `_all` matches no
              forecasts
          :arg timeout: Controls the time to wait until the forecast(s) are
              deleted. Default to 30 seconds