async def METHOD_NAME(
    self,
    resource_group_name: str,
    autoscale_setting_name: str,
    timespan: str,
    interval: datetime.timedelta,
    metric_namespace: str,
    metric_name: str,
    aggregation: str,
    **kwargs: Any
) -> _models.PredictiveResponse:
    """get predictive autoscale metric future data.
    :param resource_group_name: The name of the resource group. The name is case insensitive.
     Required.
    :type resource_group_name: str
    :param autoscale_setting_name: The autoscale setting name. Required.
    :type autoscale_setting_name: str
    :param timespan: The timespan of the query. It is a string with the following format
     'startDateTime_ISO/endDateTime_ISO'. Required.
    :type timespan: str
    :param interval: The interval (i.e. timegrain) of the query. Required.
    :type interval: ~datetime.timedelta
    :param metric_namespace: Metric namespace to query metric definitions for. Required.
    :type metric_namespace: str
    :param metric_name: The names of the metrics (comma separated) to retrieve. Special case: If a
     metricname itself has a comma in it then use %2 to indicate it. Eg: 'Metric,Name1' should be
     **'Metric%2Name1'**. Required.
    :type metric_name: str
    :param aggregation: The list of aggregation types (comma separated) to retrieve. Required.
    :type aggregation: str
    :keyword callable cls: A custom type or function that will be passed the direct response
    :return: PredictiveResponse or the result of cls(response)
    :rtype: ~azure.mgmt.monitor.v2022_10_01.models.PredictiveResponse
    :raises ~azure.core.exceptions.HttpResponseError:
    """
    error_map = {
        401: ClientAuthenticationError,
        404: ResourceNotFoundError,
        409: ResourceExistsError,
        304: ResourceNotModifiedError,
    }
    error_map.update(kwargs.pop("error_map", {}) or {})
    _headers = kwargs.pop("headers", {}) or {}
    _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
    api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2022-10-01"))
    cls: ClsType[_models.PredictiveResponse] = kwargs.pop("cls", None)
    request = build_get_request(
        resource_group_name=resource_group_name,
        autoscale_setting_name=autoscale_setting_name,
        subscription_id=self._config.subscription_id,
        timespan=timespan,
        interval=interval,
        metric_namespace=metric_namespace,
        metric_name=metric_name,
        aggregation=aggregation,
        api_version=api_version,
        template_url=self.METHOD_NAME.metadata["url"],
        headers=_headers,
        params=_params,
    )
    request = _convert_request(request)
    request.url = self._client.format_url(request.url)
    _stream = False
    pipeline_response: PipelineResponse = await self._client._pipeline.run(  # pylint: disable=protected-access
        request, stream=_stream, **kwargs
    )
    response = pipeline_response.http_response
    if response.status_code not in [200]:
        map_error(status_code=response.status_code, response=response, error_map=error_map)
        error = self._deserialize.failsafe_deserialize(_models.AutoscaleErrorResponse, pipeline_response)
        raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
    deserialized = self._deserialize("PredictiveResponse", pipeline_response)
    if cls:
        return cls(pipeline_response, deserialized, {})
    return deserialized