def create_or_update(<EOL>self, resource_group_name, service_topology_name, service_name, service_unit_name, service_unit_info, custom_headers=None, raw=False, polling=True, **operation_config):
raw_result = self._create_or_update_initial(<EOL>resource_group_name=resource_group_name,<EOL>service_topology_name=service_topology_name,<EOL>service_name=service_name,<EOL>service_unit_name=service_unit_name,<EOL>service_unit_info=service_unit_info,<EOL>custom_headers=custom_headers,<EOL>raw=True,<EOL>**operation_config<EOL>)<EOL>def get_long_running_output(response):<EOL><INDENT>header_dict = {<EOL>'<STR_LIT>': '<STR_LIT:str>',<EOL>}<EOL>deserialized = self._deserialize('<STR_LIT>', response)<EOL>if raw:<EOL><INDENT>client_raw_response = ClientRawResponse(deserialized, response)<EOL>client_raw_response.add_headers(header_dict)<EOL>return client_raw_response<EOL><DEDENT>return deserialized<EOL><DEDENT>lro_delay = operation_config.get(<EOL>'<STR_LIT>',<EOL>self.config.long_running_operation_timeout)<EOL>if polling is True: polling_method = ARMPolling(lro_delay, **operation_config)<EOL>elif polling is False: polling_method = NoPolling()<EOL>else: polling_method = polling<EOL>return LROPoller(self._client, raw_result, get_long_running_output, polling_method)<EOL>
Creates or updates a service unit under the service in the service
        topology.

        This is an asynchronous operation and can be polled to completion using
        the operation resource returned by this operation.

        :param resource_group_name: The name of the resource group. The name
         is case insensitive.
        :type resource_group_name: str
        :param service_topology_name: The name of the service topology .
        :type service_topology_name: str
        :param service_name: The name of the service resource.
        :type service_name: str
        :param service_unit_name: The name of the service unit resource.
        :type service_unit_name: str
        :param service_unit_info: The service unit resource object.
        :type service_unit_info:
         ~azure.mgmt.deploymentmanager.models.ServiceUnitResource
        :param dict custom_headers: headers that will be added to the request
        :param bool raw: The poller return type is ClientRawResponse, the
         direct response alongside the deserialized response
        :param polling: True for ARMPolling, False for no polling, or a
         polling object for personal polling strategy
        :return: An instance of LROPoller that returns ServiceUnitResource or
         ClientRawResponse<ServiceUnitResource> if raw==True
        :rtype:
         ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.deploymentmanager.models.ServiceUnitResource]
         or
         ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.deploymentmanager.models.ServiceUnitResource]]
        :raises: :class:`CloudError<msrestazure.azure_exceptions.CloudError>`