def METHOD_NAME(
    self,
    resource_group_name,  # type: str
    resource_provider_namespace,  # type: str
    parent_resource_type,  # type: str
    parent_resource,  # type: str
    serial_port,  # type: str
    **kwargs  # type: Any
):
    # type: (...) -> "models.SerialPortConnectResult"
    """Connect to serial port of the target resource.
    :param resource_group_name: The name of the resource group.
    :type resource_group_name: str
    :param resource_provider_namespace: The namespace of the resource provider.
    :type resource_provider_namespace: str
    :param parent_resource_type: The resource type of the parent resource.  For example:
     'virtualMachines' or 'virtualMachineScaleSets'.
    :type parent_resource_type: str
    :param parent_resource: The resource name, or subordinate path, for the parent of the serial
     port. For example: the name of the virtual machine.
    :type parent_resource: str
    :param serial_port: The name of the serial port to connect to.
    :type serial_port: str
    :keyword callable cls: A custom type or function that will be passed the direct response
    :return: SerialPortConnectResult, or the result of cls(response)
    :rtype: ~microsoft_serial_console_client.models.SerialPortConnectResult
    :raises: ~azure.core.exceptions.HttpResponseError
    """
    cls = kwargs.pop('cls', None)  # type: ClsType["models.SerialPortConnectResult"]
    error_map = {
        401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError
    }
    error_map.update(kwargs.pop('error_map', {}))
    api_version = "2018-05-01"
    accept = "application/json"
    accept_language = "en"
    content_type = "application/json"
    # Construct URL
    url = self.METHOD_NAME.metadata['url']  # type: ignore
    path_format_arguments = {
        'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'),
        'resourceProviderNamespace': self._serialize.url("resource_provider_namespace", resource_provider_namespace, 'str'),
        'parentResourceType': self._serialize.url("parent_resource_type", parent_resource_type, 'str', skip_quote=True),
        'parentResource': self._serialize.url("parent_resource", parent_resource, 'str'),
        'serialPort': self._serialize.url("serial_port", serial_port, 'str'),
        'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'),
    }
    url = self._client.format_url(url, **path_format_arguments)
    # Construct parameters
    query_parameters = {}  # type: Dict[str, Any]
    query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str')
    # Construct headers
    header_parameters = {}  # type: Dict[str, Any]
    header_parameters['Accept'] = self._serialize.header("accept", accept, 'str')
    header_parameters['Accept-Language'] = self._serialize.header("accept-language", accept_language, 'str')
    header_parameters['Content-Type'] = self._serialize.header("content-type", content_type, 'str')
    request = self._client.post(url, query_parameters, header_parameters)
    pipeline_response = 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)
    deserialized = self._deserialize('SerialPortConnectResult', pipeline_response)
    if cls:
        return cls(pipeline_response, deserialized, {})
    return deserialized