code: public ServiceFuture<FunctionInner> createOrReplaceAsync(String resourceGroupName, String jobName, String functionName, FunctionInner function, final ServiceCallback<FunctionInner> serviceCallback) {
          return ServiceFuture.fromHeaderResponse(createOrReplaceWithServiceResponseAsync(resourceGroupName, jobName, functionName, function), serviceCallback);
      }
docs: Creates a function or replaces an already existing function under an existing streaming job.
  
  @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
  @param jobName The name of the streaming job.
  @param functionName The name of the function.
  @param function The definition of the function that will be used to create a new function or replace the existing one under the streaming job.
  @param serviceCallback the async ServiceCallback to handle successful and failed responses.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the {@link ServiceFuture} object