async def _what_if_at_subscription_scope_initial(self, deployment_name: str, parameters: '_models.DeploymentWhatIf', **kwargs: Any) -> Optional['_models.WhatIfOperationResult']:
    cls = kwargs.pop('cls', None)
    error_map = {401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError}
    error_map.update(kwargs.pop('error_map', {}))
    api_version = kwargs.pop('api_version', '2019-08-01')
    content_type = kwargs.pop('content_type', 'application/json')
    _json = self._serialize.body(parameters, 'DeploymentWhatIf')
    request = build_deployments_what_if_at_subscription_scope_request_initial(deployment_name=deployment_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, template_url=self._what_if_at_subscription_scope_initial.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, 202]):
        map_error(status_code=response.status_code, response=response, error_map=error_map)
        raise HttpResponseError(response=response, error_format=ARMErrorFormat)
    deserialized = None
    response_headers = {}
    if (response.status_code == 200):
        deserialized = self._deserialize('WhatIfOperationResult', pipeline_response)
    if (response.status_code == 202):
        response_headers['Location'] = self._deserialize('str', response.headers.get('Location'))
        response_headers['Retry-After'] = self._deserialize('str', response.headers.get('Retry-After'))
    if cls:
        return cls(pipeline_response, deserialized, response_headers)
    return deserialized
async def _what_if_at_subscription_scope_initial(self, deployment_name: str, parameters: '_models.DeploymentWhatIf', **kwargs: Any) -> Optional['_models.WhatIfOperationResult']:
    cls = kwargs.pop('cls', None)
    error_map = {401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError}
    error_map.update(kwargs.pop('error_map', {}))
    api_version = kwargs.pop('api_version', '2019-08-01')
    content_type = kwargs.pop('content_type', 'application/json')
    _json = self._serialize.body(parameters, 'DeploymentWhatIf')
    request = build_deployments_what_if_at_subscription_scope_request_initial(deployment_name=deployment_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, template_url=self._what_if_at_subscription_scope_initial.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, 202]):
        map_error(status_code=response.status_code, response=response, error_map=error_map)
        raise HttpResponseError(response=response, error_format=ARMErrorFormat)
    deserialized = None
    response_headers = {}
    if (response.status_code == 200):
        deserialized = self._deserialize('WhatIfOperationResult', pipeline_response)
    if (response.status_code == 202):
        response_headers['Location'] = self._deserialize('str', response.headers.get('Location'))
        response_headers['Retry-After'] = self._deserialize('str', response.headers.get('Retry-After'))
    if cls:
        return cls(pipeline_response, deserialized, response_headers)
    return deserialized