Skip to content

Tasks_CreateTask

POST
/v1/accounts/{account}/tasks
curl --request POST \
--url https://dev-api.qualiastudios.dev/v1/accounts/example/tasks \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "name": "example", "displayName": "example", "draft": { "description": "example", "scene": "example", "steps": "example", "success": "example", "failure": "example", "procedure": { "steps": [ { "id": "example", "kind": "KIND_UNSPECIFIED", "description": "example", "task": "example", "minCount": 1, "maxCount": 1, "triggers": [ "example" ], "stateChecks": [ { "text": "example", "numeric": { "metric": "example", "op": "example", "value": 1, "valueHigh": 1 } } ], "bounds": [ { "metric": "example", "min": 1, "max": 1 } ] } ], "transitions": [ { "source": "example", "target": "example" } ] } }, "etag": "example", "references": [ { "name": "example", "role": "ROLE_UNSPECIFIED", "mode": "example", "episode": "example", "startSeconds": 1, "endSeconds": 1 } ] }'

Creates a task with a draft and nothing published.

account
required
string

The account id.

requestId
string

Idempotency key (AIP-155): a retry with the same id within 24 hours returns the first call’s result instead of creating a second task.

Media type application/json

A task: what a robot should do and how success shows, in prose. A task is reusable across datasets, robots and stages of a policy’s life: operators collect against it, curation judges episodes against it, evals score rollouts against it.

A task holds one editable draft. Publishing it writes an immutable, numbered TaskRevision, so editing never changes what was published.

Served by tasks.

object
name

Accounts/{account}/tasks/{task}

string
displayName
required

The library label, e.g. “Restock shelf”. Not unique and not an identity: two tasks may share it. 1 to 32 characters; a longer name stored before that cap stays until the task is renamed, and the task publishes only once renamed.

string
draft

The working copy. Saving it checks lengths only, so an incomplete draft saves; PublishTask checks that it is complete.

object
description

What the robot should do, in ordinary language. Required to publish.

string
scene

The scene the task runs in: the workspace, the objects that matter, how things start and what varies between episodes.

string
steps

The steps of the task in order, one per line, e.g. “pick a box from the tray”.

string
success

How success shows: what has to be true, or seen happening, for an episode to succeed. Required to publish.

string
failure

How it fails: the ways the task goes wrong, and what looks like a failure but is fine.

string
procedure

The task as a state machine of steps and transitions, beside the prose. Optional; when it has steps, publishing checks that it is well formed.

object
steps

The steps. Step ids are the stable names judgments, subtask labels and progress report against. At most 64.

Array<object>

A state of the task: its start, an action, a recovery, or an outcome it ends in.

object
id
required

Stable within the procedure, e.g. “place_box”: given by the editor when the step is made and not changed after. 1 to 64 lowercase letters, digits or ’_’, starting with a letter. Unique within the procedure.

string
kind

What the step is.

string format: enum
Allowed values: KIND_UNSPECIFIED START ACTION SUCCESS FAILURE RECOVERY
description

The step in one line, as it observably holds: what an action or recovery gets done (e.g. “place the box upright on the shelf”), what an outcome looks like. At most 200 characters. Needed to publish, except on the start and on a step that stands for a task (task), which is named by the task.

string
task

An action that is a whole other task of the same account, accounts/{account}/tasks/{task}. In a draft it means that task’s newest published revision; publishing pins it, so a revision’s steps name accounts/{account}/tasks/{task}/revisions/{revision}. A task never contains itself, directly or through others. Such a step takes its name from the task and leaves description empty.

string
minCount

The fewest times an action (or recovery) happens in a successful attempt: 0 or more; 0 makes it optional, e.g. a step only some attempts need. With both counts unset the step is not counted: checks report how often it happened and never flag it. Checks enforce a count only when count_set names the person who set it.

integer format: int32
maxCount

The most times an action (or recovery) happens in a successful attempt, e.g. 4 box placements: 1 or more, and at least min_count. Unset is no limit. Exactly N is both N; up to N is max_count N alone.

integer format: int32
triggers

What observably sets a recovery off (“When”), e.g. “the box slips in the gripper”. Only a recovery has triggers, and it needs one to publish. At most 16, each 1 to 500 characters.

Array<string>
stateChecks

Conditions that observably hold at this step. At most 16; each needs text to publish and may also name a numeric condition. Not on START.

Array<object>

An observable condition at a procedure step, optionally expressed as a number.

object
text
required

What must hold, in 1 to 500 characters. Needed to publish.

string
numeric

A numeric form of the condition, when it can be measured. Only a person writes one: it publishes only with numeric_set.

object
metric
required

The metric name: 1 to 64 lowercase letters, digits, ’_’ or ’.’, starting with a letter.

string
op
required

The comparison: lt, le, gt, ge, eq or between.

string
value
required

The comparison value, or the lower value for between.

number format: double
valueHigh

The upper value, greater than value. Set if and only if op is between.

number format: double
numericSet

The person who set numeric to its current value. Written only by the server, from UpdateTaskRequest.person_set. It follows the numeric form within its step and is cleared when that form changes without it.

object
actor

The person, always kind PERSON, with user and display_name as at the time.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
setTime

When they set it.

string format: date-time
digest

Lowercase hex sha256 of the value. For counts: “count:<min_count>:<max_count>”, each empty when unset. For a numeric condition: “numeric::::<value_high>”, numbers as Python repr(float), value_high empty when unset. For a procedure: “procedure:”, keys sorted, without any stamp.

string
bounds

Metric limits for this step. At most 8. Not on START.

Array<object>

Inclusive limits for a measured metric at a procedure step.

object
metric
required

The metric name: 1 to 64 lowercase letters, digits, ’_’ or ’.’, starting with a letter.

string
min

The lower limit. At least one of min and max is needed to publish.

number format: double
max

The upper limit, at least min when both are set.

number format: double
countSet

The person who set min_count and max_count to their current values. Written only by the server, from UpdateTaskRequest.person_set; cleared when either count, the kind or task changes without it. Unset means the counts are not enforced, whatever they are.

object
actor

The person, always kind PERSON, with user and display_name as at the time.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
setTime

When they set it.

string format: date-time
digest

Lowercase hex sha256 of the value. For counts: “count:<min_count>:<max_count>”, each empty when unset. For a numeric condition: “numeric::::<value_high>”, numbers as Python repr(float), value_high empty when unset. For a procedure: “procedure:”, keys sorted, without any stamp.

string
transitions

How steps follow each other, each from one step to another; nothing is implied. A failure outcome that can happen at several steps has a transition from each. At most 256.

Array<object>

A move from one step to another.

object
source
required

The step it leaves, by id.

string
target
required

The step it enters, by id.

string
procedureSet

The signed-in person whose edit wrote these steps and transitions. Written only by the server, on any UpdateTask from such a person that changes them. An API key’s change or a new proposal from preparation clears it. Unset on a draft, the step-order check reads uncertain instead of failing a take. It is left out of content_hash.

object
actor

The person, always kind PERSON, with user and display_name as at the time.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
setTime

When they set it.

string format: date-time
digest

Lowercase hex sha256 of the value. For counts: “count:<min_count>:<max_count>”, each empty when unset. For a numeric condition: “numeric::::<value_high>”, numbers as Python repr(float), value_high empty when unset. For a procedure: “procedure:”, keys sorted, without any stamp.

string
revision

The newest published revision number; 0 before the first publish.

integer format: int32
unpublishedChanges

The draft differs from the newest published revision (or nothing is published yet).

boolean
creator

Who created it.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
createTime

When it was created.

string format: date-time
updateTime

When the task or its draft last changed.

string format: date-time
etag

Sent back on UpdateTask and PublishTask to refuse a stale write.

string
references

CreateTask only: episodes the person picked as references, created with the task in one write by the rules of CreateTaskReference (their names and output fields are ignored). Read them back with ListTaskReferences. (— api-linter: core::0122::embedded-resource=disabled aip.dev/not-precedent: input only, creating the references with the task in one write; never returned, so nothing embeds a stored one. —)

Array<object>

An episode proposed to show the task: done (SUCCESS), or going wrong in a named way (a FAILURE or RECOVERY mode). A reference points at the episode and copies no media, so it lives while its task and its dataset do: deleting the task deletes it, and deleting the dataset removes it (the task and everything written from the reference stay). Nothing is confirmed for a person: a model’s proposal needs a person’s confirmation.

A task holds 1 to 3 SUCCESS references and any number of modes, each 1 to 2 references. Picking one needs read access to the episode’s dataset.

object
name

Accounts/{account}/tasks/{task}/references/{reference}

string
role
required

What it shows.

string format: enum
Allowed values: ROLE_UNSPECIFIED SUCCESS FAILURE RECOVERY
mode

FAILURE and RECOVERY: the mode’s short name, e.g. “drops the box”, which groups the references that show it. 1 to 80 characters; a mode has one role. Empty for SUCCESS.

string
episode
required

The episode: accounts/{account}/datasets/{dataset}/episodes/{episode}, in the task’s account; immutable. Named by the upload it was recorded in (Episode.upload), or by the merged dataset that holds that upload; it is kept and returned as its upload names it, and lives as long as that upload does.

string
startSeconds

The part of the episode it shows, in seconds from its start. Both unset means the whole episode; when set, 0 <= start_seconds < end_seconds.

number format: double
endSeconds

See start_seconds.

number format: double
creator

Who picked it.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
createTime

When it was picked.

string format: date-time
proposedBy

Who proposed it. A person’s own pick is confirmed immediately. (— api-linter: core::0140::prepositions=disabled aip.dev/not-precedent: provenance distinguishes proposed_by from confirmed_by. —)

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
confirmedBy

The first person to confirm it; unset while unconfirmed. (— api-linter: core::0140::prepositions=disabled aip.dev/not-precedent: provenance distinguishes confirmed_by from proposed_by. —)

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string

OK

Media type application/json

A task: what a robot should do and how success shows, in prose. A task is reusable across datasets, robots and stages of a policy’s life: operators collect against it, curation judges episodes against it, evals score rollouts against it.

A task holds one editable draft. Publishing it writes an immutable, numbered TaskRevision, so editing never changes what was published.

Served by tasks.

object
name

Accounts/{account}/tasks/{task}

string
displayName
required

The library label, e.g. “Restock shelf”. Not unique and not an identity: two tasks may share it. 1 to 32 characters; a longer name stored before that cap stays until the task is renamed, and the task publishes only once renamed.

string
draft

The working copy. Saving it checks lengths only, so an incomplete draft saves; PublishTask checks that it is complete.

object
description

What the robot should do, in ordinary language. Required to publish.

string
scene

The scene the task runs in: the workspace, the objects that matter, how things start and what varies between episodes.

string
steps

The steps of the task in order, one per line, e.g. “pick a box from the tray”.

string
success

How success shows: what has to be true, or seen happening, for an episode to succeed. Required to publish.

string
failure

How it fails: the ways the task goes wrong, and what looks like a failure but is fine.

string
procedure

The task as a state machine of steps and transitions, beside the prose. Optional; when it has steps, publishing checks that it is well formed.

object
steps

The steps. Step ids are the stable names judgments, subtask labels and progress report against. At most 64.

Array<object>

A state of the task: its start, an action, a recovery, or an outcome it ends in.

object
id
required

Stable within the procedure, e.g. “place_box”: given by the editor when the step is made and not changed after. 1 to 64 lowercase letters, digits or ’_’, starting with a letter. Unique within the procedure.

string
kind

What the step is.

string format: enum
Allowed values: KIND_UNSPECIFIED START ACTION SUCCESS FAILURE RECOVERY
description

The step in one line, as it observably holds: what an action or recovery gets done (e.g. “place the box upright on the shelf”), what an outcome looks like. At most 200 characters. Needed to publish, except on the start and on a step that stands for a task (task), which is named by the task.

string
task

An action that is a whole other task of the same account, accounts/{account}/tasks/{task}. In a draft it means that task’s newest published revision; publishing pins it, so a revision’s steps name accounts/{account}/tasks/{task}/revisions/{revision}. A task never contains itself, directly or through others. Such a step takes its name from the task and leaves description empty.

string
minCount

The fewest times an action (or recovery) happens in a successful attempt: 0 or more; 0 makes it optional, e.g. a step only some attempts need. With both counts unset the step is not counted: checks report how often it happened and never flag it. Checks enforce a count only when count_set names the person who set it.

integer format: int32
maxCount

The most times an action (or recovery) happens in a successful attempt, e.g. 4 box placements: 1 or more, and at least min_count. Unset is no limit. Exactly N is both N; up to N is max_count N alone.

integer format: int32
triggers

What observably sets a recovery off (“When”), e.g. “the box slips in the gripper”. Only a recovery has triggers, and it needs one to publish. At most 16, each 1 to 500 characters.

Array<string>
stateChecks

Conditions that observably hold at this step. At most 16; each needs text to publish and may also name a numeric condition. Not on START.

Array<object>

An observable condition at a procedure step, optionally expressed as a number.

object
text
required

What must hold, in 1 to 500 characters. Needed to publish.

string
numeric

A numeric form of the condition, when it can be measured. Only a person writes one: it publishes only with numeric_set.

object
metric
required

The metric name: 1 to 64 lowercase letters, digits, ’_’ or ’.’, starting with a letter.

string
op
required

The comparison: lt, le, gt, ge, eq or between.

string
value
required

The comparison value, or the lower value for between.

number format: double
valueHigh

The upper value, greater than value. Set if and only if op is between.

number format: double
numericSet

The person who set numeric to its current value. Written only by the server, from UpdateTaskRequest.person_set. It follows the numeric form within its step and is cleared when that form changes without it.

object
actor

The person, always kind PERSON, with user and display_name as at the time.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
setTime

When they set it.

string format: date-time
digest

Lowercase hex sha256 of the value. For counts: “count:<min_count>:<max_count>”, each empty when unset. For a numeric condition: “numeric::::<value_high>”, numbers as Python repr(float), value_high empty when unset. For a procedure: “procedure:”, keys sorted, without any stamp.

string
bounds

Metric limits for this step. At most 8. Not on START.

Array<object>

Inclusive limits for a measured metric at a procedure step.

object
metric
required

The metric name: 1 to 64 lowercase letters, digits, ’_’ or ’.’, starting with a letter.

string
min

The lower limit. At least one of min and max is needed to publish.

number format: double
max

The upper limit, at least min when both are set.

number format: double
countSet

The person who set min_count and max_count to their current values. Written only by the server, from UpdateTaskRequest.person_set; cleared when either count, the kind or task changes without it. Unset means the counts are not enforced, whatever they are.

object
actor

The person, always kind PERSON, with user and display_name as at the time.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
setTime

When they set it.

string format: date-time
digest

Lowercase hex sha256 of the value. For counts: “count:<min_count>:<max_count>”, each empty when unset. For a numeric condition: “numeric::::<value_high>”, numbers as Python repr(float), value_high empty when unset. For a procedure: “procedure:”, keys sorted, without any stamp.

string
transitions

How steps follow each other, each from one step to another; nothing is implied. A failure outcome that can happen at several steps has a transition from each. At most 256.

Array<object>

A move from one step to another.

object
source
required

The step it leaves, by id.

string
target
required

The step it enters, by id.

string
procedureSet

The signed-in person whose edit wrote these steps and transitions. Written only by the server, on any UpdateTask from such a person that changes them. An API key’s change or a new proposal from preparation clears it. Unset on a draft, the step-order check reads uncertain instead of failing a take. It is left out of content_hash.

object
actor

The person, always kind PERSON, with user and display_name as at the time.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
setTime

When they set it.

string format: date-time
digest

Lowercase hex sha256 of the value. For counts: “count:<min_count>:<max_count>”, each empty when unset. For a numeric condition: “numeric::::<value_high>”, numbers as Python repr(float), value_high empty when unset. For a procedure: “procedure:”, keys sorted, without any stamp.

string
revision

The newest published revision number; 0 before the first publish.

integer format: int32
unpublishedChanges

The draft differs from the newest published revision (or nothing is published yet).

boolean
creator

Who created it.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
createTime

When it was created.

string format: date-time
updateTime

When the task or its draft last changed.

string format: date-time
etag

Sent back on UpdateTask and PublishTask to refuse a stale write.

string
references

CreateTask only: episodes the person picked as references, created with the task in one write by the rules of CreateTaskReference (their names and output fields are ignored). Read them back with ListTaskReferences. (— api-linter: core::0122::embedded-resource=disabled aip.dev/not-precedent: input only, creating the references with the task in one write; never returned, so nothing embeds a stored one. —)

Array<object>

An episode proposed to show the task: done (SUCCESS), or going wrong in a named way (a FAILURE or RECOVERY mode). A reference points at the episode and copies no media, so it lives while its task and its dataset do: deleting the task deletes it, and deleting the dataset removes it (the task and everything written from the reference stay). Nothing is confirmed for a person: a model’s proposal needs a person’s confirmation.

A task holds 1 to 3 SUCCESS references and any number of modes, each 1 to 2 references. Picking one needs read access to the episode’s dataset.

object
name

Accounts/{account}/tasks/{task}/references/{reference}

string
role
required

What it shows.

string format: enum
Allowed values: ROLE_UNSPECIFIED SUCCESS FAILURE RECOVERY
mode

FAILURE and RECOVERY: the mode’s short name, e.g. “drops the box”, which groups the references that show it. 1 to 80 characters; a mode has one role. Empty for SUCCESS.

string
episode
required

The episode: accounts/{account}/datasets/{dataset}/episodes/{episode}, in the task’s account; immutable. Named by the upload it was recorded in (Episode.upload), or by the merged dataset that holds that upload; it is kept and returned as its upload names it, and lives as long as that upload does.

string
startSeconds

The part of the episode it shows, in seconds from its start. Both unset means the whole episode; when set, 0 <= start_seconds < end_seconds.

number format: double
endSeconds

See start_seconds.

number format: double
creator

Who picked it.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
createTime

When it was picked.

string format: date-time
proposedBy

Who proposed it. A person’s own pick is confirmed immediately. (— api-linter: core::0140::prepositions=disabled aip.dev/not-precedent: provenance distinguishes proposed_by from confirmed_by. —)

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
confirmedBy

The first person to confirm it; unset while unconfirmed. (— api-linter: core::0140::prepositions=disabled aip.dev/not-precedent: provenance distinguishes confirmed_by from proposed_by. —)

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
Example
{
"draft": {
"procedure": {
"steps": [
{
"kind": "KIND_UNSPECIFIED",
"stateChecks": [
{
"numericSet": {
"actor": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
}
}
}
],
"countSet": {
"actor": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
}
}
}
],
"procedureSet": {
"actor": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
}
}
}
},
"creator": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
},
"references": [
{
"role": "ROLE_UNSPECIFIED",
"creator": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
},
"proposedBy": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
},
"confirmedBy": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
}
}
]
}

Default error response

Media type application/json

The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.

object
code

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

integer format: int32
message

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

string
details

A list of messages that carry the error details. There is a common set of message types for APIs to use.

Array<object>

Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.

object
@type

The type of the serialized message.

string
key
additional properties
any
Example generated
{
"code": 1,
"message": "example",
"details": [
{
"@type": "example"
}
]
}