async def METHOD_NAME(
    self, test_run_id: str, body: Union[JSON, IO], *, old_test_run_id: Optional[str] = None, **kwargs: Any
) -> AsyncLROPoller[JSON]:
    """Create and start a new test run with the given name.
    Create and start a new test run with the given name.
    :param test_run_id: Unique name for the load test run, must contain only lower-case alphabetic,
     numeric, underscore or hyphen characters. Required.
    :type test_run_id: str
    :param body: Load test run model. Is either a model type or a IO type. Required.
    :type body: JSON or IO
    :keyword old_test_run_id: Existing test run identifier that should be rerun, if this is
     provided, the test will run with the JMX file, configuration and app components from the
     existing test run. You can override the configuration values for new test run in the request
     body. Default value is None.
    :paramtype old_test_run_id: str
    :keyword content_type: Body Parameter content-type. Known values are:
     'application/merge-patch+json'. Default value is None.
    :paramtype content_type: str
    :rtype: ~azure.developer.loadtesting._polling.LoadTestingLROPoller
    :raises ~azure.core.exceptions.HttpResponseError:
    :raises ~azure.core.exceptions.ResourceNotFoundError:
    """
    polling_interval = kwargs.pop("_polling_interval", None)
    if polling_interval is None:
        polling_interval = 5
    create_or_update_test_run_operation = await super()._test_run_initial(
        test_run_id, body, old_test_run_id=old_test_run_id, **kwargs
    )
    command = partial(self.get_test_run, test_run_id=test_run_id)
    create_test_run_polling = AsyncTestRunStatusPoller(interval=polling_interval)
    return AsyncLROPoller(command, create_or_update_test_run_operation, lambda *_: None, create_test_run_polling)