'Gets the Remote Desktop Protocol file for the specified compute node.
Before you can access a node by using the RDP file, you must create a
user account on the node. This API can only be invoked on pools created
with the cloud service configuration property.
:param pool_id: The ID of the pool that contains the compute node.
:type pool_id: str
:param node_id: The ID of the compute node for which you want to get
the Remote Desktop Protocol file.
:type node_id: str
:param compute_node_get_remote_desktop_options: Additional parameters
for the operation
:type compute_node_get_remote_desktop_options:
:class:`ComputeNodeGetRemoteDesktopOptions
<azure.batch.models.ComputeNodeGetRemoteDesktopOptions>`
:param dict custom_headers: headers that will be added to the request
:param bool raw: returns the direct response alongside the
deserialized response
:param callback: When specified, will be called with each chunk of
data that is streamed. The callback should take two arguments, the
bytes of the current chunk of data and the response object. If the
data is uploading, response will be None.
:type callback: Callable[Bytes, response=None]
:param operation_config: :ref:`Operation configuration
overrides<msrest:optionsforoperations>`.
:rtype: Generator
:rtype: :class:`ClientRawResponse<msrest.pipeline.ClientRawResponse>`
if raw=true
:raises:
:class:`BatchErrorException<azure.batch.models.BatchErrorException>`'

def get_remote_desktop(self, pool_id, node_id, compute_node_get_remote_desktop_options=None, custom_headers=None, raw=False, callback=None, **operation_config):

    timeout = None
    if (compute_node_get_remote_desktop_options is not None):
        timeout = compute_node_get_remote_desktop_options.timeout
    client_request_id = None
    if (compute_node_get_remote_desktop_options is not None):
        client_request_id = compute_node_get_remote_desktop_options.client_request_id
    return_client_request_id = None
    if (compute_node_get_remote_desktop_options is not None):
        return_client_request_id = compute_node_get_remote_desktop_options.return_client_request_id
    ocp_date = None
    if (compute_node_get_remote_desktop_options is not None):
        ocp_date = compute_node_get_remote_desktop_options.ocp_date
    url = '/pools/{poolId}/nodes/{nodeId}/rdp'
    path_format_arguments = {'poolId': self._serialize.url('pool_id', pool_id, 'str'), 'nodeId': self._serialize.url('node_id', node_id, 'str')}
    url = self._client.format_url(url, **path_format_arguments)
    query_parameters = {}
    query_parameters['api-version'] = self._serialize.query('self.api_version', self.api_version, 'str')
    if (timeout is not None):
        query_parameters['timeout'] = self._serialize.query('timeout', timeout, 'int')
    header_parameters = {}
    header_parameters['Content-Type'] = 'application/json;    odata=minimalmetadata;    charset=utf-8'
    if self.config.generate_client_request_id:
        header_parameters['client-request-id'] = str(uuid.uuid1())
    if custom_headers:
        header_parameters.update(custom_headers)
    if (self.config.accept_language is not None):
        header_parameters['accept-language'] = self._serialize.header('self.config.accept_language', self.config.accept_language, 'str')
    if (client_request_id is not None):
        header_parameters['client-request-id'] = self._serialize.header('client_request_id', client_request_id, 'str')
    if (return_client_request_id is not None):
        header_parameters['return-client-request-id'] = self._serialize.header('return_client_request_id', return_client_request_id, 'bool')
    if (ocp_date is not None):
        header_parameters['ocp-date'] = self._serialize.header('ocp_date', ocp_date, 'rfc-1123')
    request = self._client.get(url, query_parameters)
    response = self._client.send(request, header_parameters, **operation_config)
    if (response.status_code not in [200]):
        raise models.BatchErrorException(self._deserialize, response)
    deserialized = None
    header_dict = {}
    if (response.status_code == 200):
        deserialized = self._client.stream_download(response, callback)
        header_dict = {'client-request-id': 'str', 'request-id': 'str', 'ETag': 'str', 'Last-Modified': 'rfc-1123'}
    if raw:
        client_raw_response = ClientRawResponse(deserialized, response)
        client_raw_response.add_headers(header_dict)
        return client_raw_response
    return deserialized
