async def METHOD_NAME(
    self,
    migration: Optional[str] = None,
    timeout: Optional[str] = "00:01:00",
    collection_id: Optional[str] = None,
    workspace_id: Optional[str] = None,
    **kwargs: Any
) -> None:
    """start_migration.
    :param migration:
    :type migration: str
    :param timeout:
    :type timeout: str
    :param collection_id:
    :type collection_id: str
    :param workspace_id:
    :type workspace_id: str
    :keyword callable cls: A custom type or function that will be passed the direct response
    :return: None, or the result of cls(response)
    :rtype: None
    :raises: ~azure.core.exceptions.HttpResponseError
    """
    cls = kwargs.pop('cls', None)  # type: ClsType[None]
    error_map = {
        401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError
    }
    error_map.update(kwargs.pop('error_map', {}))
    request = build_start_migration_request(
        migration=migration,
        timeout=timeout,
        collection_id=collection_id,
        workspace_id=workspace_id,
        template_url=self.METHOD_NAME.metadata['url'],
    )
    request = _convert_request(request)
    request.url = self._client.format_url(request.url)
    pipeline_response = await self._client._pipeline.run(request, stream=False, **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)
        raise HttpResponseError(response=response, error_format=ARMErrorFormat)
    if cls:
        return cls(pipeline_response, None, {})