@distributed_trace_async
async def begin_what_if_at_subscription_scope(self, deployment_name: str, parameters: '_models.DeploymentWhatIf', **kwargs: Any) -> AsyncLROPoller['_models.WhatIfOperationResult']:
    'Returns changes that will be made by the deployment if executed at the scope of the\n        subscription.\n\n        :param deployment_name: The name of the deployment.\n        :type deployment_name: str\n        :param parameters: Parameters to What If.\n        :type parameters: ~azure.mgmt.resource.resources.v2019_08_01.models.DeploymentWhatIf\n        :keyword callable cls: A custom type or function that will be passed the direct response\n        :keyword str continuation_token: A continuation token to restart a poller from a saved state.\n        :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for\n         this operation to not poll, or pass in your own initialized polling object for a personal\n         polling strategy.\n        :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n        :keyword int polling_interval: Default waiting time between two polls for LRO operations if no\n         Retry-After header is present.\n        :return: An instance of AsyncLROPoller that returns either WhatIfOperationResult or the result\n         of cls(response)\n        :rtype:\n         ~azure.core.polling.AsyncLROPoller[~azure.mgmt.resource.resources.v2019_08_01.models.WhatIfOperationResult]\n        :raises: ~azure.core.exceptions.HttpResponseError\n        '
    api_version = kwargs.pop('api_version', '2019-08-01')
    content_type = kwargs.pop('content_type', 'application/json')
    polling = kwargs.pop('polling', True)
    cls = kwargs.pop('cls', None)
    lro_delay = kwargs.pop('polling_interval', self._config.polling_interval)
    cont_token = kwargs.pop('continuation_token', None)
    if (cont_token is None):
        raw_result = (await self._what_if_at_subscription_scope_initial(deployment_name=deployment_name, parameters=parameters, api_version=api_version, content_type=content_type, cls=(lambda x, y, z: x), **kwargs))
    kwargs.pop('error_map', None)

    def get_long_running_output(pipeline_response):
        response = pipeline_response.http_response
        deserialized = self._deserialize('WhatIfOperationResult', pipeline_response)
        if cls:
            return cls(pipeline_response, deserialized, {})
        return deserialized
    if (polling is True):
        polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'location'}, **kwargs)
    elif (polling is False):
        polling_method = AsyncNoPolling()
    else:
        polling_method = polling
    if cont_token:
        return AsyncLROPoller.from_continuation_token(polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output)
    return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method)
Returns changes that will be made by the deployment if executed at the scope of the
subscription.

:param deployment_name: The name of the deployment.
:type deployment_name: str
:param parameters: Parameters to What If.
:type parameters: ~azure.mgmt.resource.resources.v2019_08_01.models.DeploymentWhatIf
:keyword callable cls: A custom type or function that will be passed the direct response
:keyword str continuation_token: A continuation token to restart a poller from a saved state.
:keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for
 this operation to not poll, or pass in your own initialized polling object for a personal
 polling strategy.
:paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod
:keyword int polling_interval: Default waiting time between two polls for LRO operations if no
 Retry-After header is present.
:return: An instance of AsyncLROPoller that returns either WhatIfOperationResult or the result
 of cls(response)
:rtype:
 ~azure.core.polling.AsyncLROPoller[~azure.mgmt.resource.resources.v2019_08_01.models.WhatIfOperationResult]
:raises: ~azure.core.exceptions.HttpResponseError
@distributed_trace_async
async def begin_what_if_at_subscription_scope(self, deployment_name: str, parameters: '_models.DeploymentWhatIf', **kwargs: Any) -> AsyncLROPoller['_models.WhatIfOperationResult']:
    'Returns changes that will be made by the deployment if executed at the scope of the\n        subscription.\n\n        :param deployment_name: The name of the deployment.\n        :type deployment_name: str\n        :param parameters: Parameters to What If.\n        :type parameters: ~azure.mgmt.resource.resources.v2019_08_01.models.DeploymentWhatIf\n        :keyword callable cls: A custom type or function that will be passed the direct response\n        :keyword str continuation_token: A continuation token to restart a poller from a saved state.\n        :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for\n         this operation to not poll, or pass in your own initialized polling object for a personal\n         polling strategy.\n        :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod\n        :keyword int polling_interval: Default waiting time between two polls for LRO operations if no\n         Retry-After header is present.\n        :return: An instance of AsyncLROPoller that returns either WhatIfOperationResult or the result\n         of cls(response)\n        :rtype:\n         ~azure.core.polling.AsyncLROPoller[~azure.mgmt.resource.resources.v2019_08_01.models.WhatIfOperationResult]\n        :raises: ~azure.core.exceptions.HttpResponseError\n        '
    api_version = kwargs.pop('api_version', '2019-08-01')
    content_type = kwargs.pop('content_type', 'application/json')
    polling = kwargs.pop('polling', True)
    cls = kwargs.pop('cls', None)
    lro_delay = kwargs.pop('polling_interval', self._config.polling_interval)
    cont_token = kwargs.pop('continuation_token', None)
    if (cont_token is None):
        raw_result = (await self._what_if_at_subscription_scope_initial(deployment_name=deployment_name, parameters=parameters, api_version=api_version, content_type=content_type, cls=(lambda x, y, z: x), **kwargs))
    kwargs.pop('error_map', None)

    def get_long_running_output(pipeline_response):
        response = pipeline_response.http_response
        deserialized = self._deserialize('WhatIfOperationResult', pipeline_response)
        if cls:
            return cls(pipeline_response, deserialized, {})
        return deserialized
    if (polling is True):
        polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'location'}, **kwargs)
    elif (polling is False):
        polling_method = AsyncNoPolling()
    else:
        polling_method = polling
    if cont_token:
        return AsyncLROPoller.from_continuation_token(polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output)
    return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method)