public final Task createTask(QueueName parent, Task task) {
    CreateTaskRequest request =
        CreateTaskRequest.newBuilder()
            .setParent(parent == null ? null : parent.toString())
            .setTask(task)
            .build();
    return createTask(request);
  }
Creates a task and adds it to a queue.

<p>Tasks cannot be updated after creation; there is no UpdateTask command.

<ul>
  <li>The maximum task size is 100KB.
</ul>

<p>Sample code:

<pre>{@code
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in
// https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
try (CloudTasksClient cloudTasksClient = CloudTasksClient.create()) {
  QueueName parent = QueueName.of("[PROJECT]", "[LOCATION]", "[QUEUE]");
  Task task = Task.newBuilder().build();
  Task response = cloudTasksClient.createTask(parent, task);
}
}</pre>

@param parent Required. The queue name. For example:
    `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID`
    <p>The queue must already exist.
@param task Required. The task to add.
    <p>Task names have the following format:
    `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`. The user can
    optionally specify a task [name][google.cloud.tasks.v2.Task.name]. If a name is not
    specified then the system will generate a random unique task id, which will be set in the
    task returned in the [response][google.cloud.tasks.v2.Task.name].
    <p>If [schedule_time][google.cloud.tasks.v2.Task.schedule_time] is not set or is in the
    past then Cloud Tasks will set it to the current time.
    <p>Task De-duplication:
    <p>Explicitly specifying a task ID enables task de-duplication. If a task's ID is identical
    to that of an existing task or a task that was deleted or executed recently then the call
    will fail with [ALREADY_EXISTS][google.rpc.Code.ALREADY_EXISTS]. If the task's queue was
    created using Cloud Tasks, then another task with the same name can't be created for ~1hour
    after the original task was deleted or executed. If the task's queue was created using
    queue.yaml or queue.xml, then another task with the same name can't be created for ~9days
    after the original task was deleted or executed.
    <p>Because there is an extra lookup cost to identify duplicate task names, these
    [CreateTask][google.cloud.tasks.v2.CloudTasks.CreateTask] calls have significantly
    increased latency. Using hashed strings for the task id or for the prefix of the task id is
    recommended. Choosing task ids that are sequential or have sequential prefixes, for example
    using a timestamp, causes an increase in latency and error rates in all task commands. The
    infrastructure relies on an approximately uniform distribution of task ids to store and
    serve tasks efficiently.
@throws com.google.api.gax.rpc.ApiException if the remote call fails
java-tasks/google-cloud-tasks/src/main/java/com/google/cloud/tasks/v2/CloudTasksClient.java