Get desktop application:
View/edit binary Protocol Buffers messages
Represents the identifier used by a activity author to define the activity. Typically, the name of a function. This is sometimes referred to as the activity's "name"
Used in: , , , , , , ,
Callback to attach to various events in the system, e.g. workflow run completion.
Used in: , , , , , , ,
Links associated with the callback. It can be used to link to underlying resources of the callback.
Callbacks to be delivered internally within the system. This variant is not settable in the API and will be rejected by the service with an INVALID_ARGUMENT error. The only reason that this is exposed is because callbacks are replicated across clusters via the WorkflowExecutionStarted event, which is defined in the public API.
Used in:
Opaque internal data.
Used in:
Callback URL.
Header to attach to callback request.
Used in:
Contains metadata that can be attached to a variety of requests, like starting a workflow, and can be propagated between, for example, workflows and activities.
Used in: , , , , , , , , , , , , , , , , , , , , , , ,
Link can be associated with history events. It might contain information about an external entity related to the history event. For example, workflow A makes a Nexus call that starts workflow B: in this case, a history event in workflow A could contain a Link to the workflow started event in workflow B, and vice-versa.
Used in: , , , , , , , , , , , , , , , ,
A link to an activity.
Used in:
A link to a built-in batch job. Batch jobs can be used to perform operations on a set of workflows (e.g. terminate, signal, cancel, etc). This link can be put on workflow history events generated by actions taken by a batch job.
Used in:
A link to a standalone Nexus operation.
Used in:
A link to a workflow execution. This is a more general version of WorkflowEvent that doesn't specify a particular event within the workflow, useful when you want to link to a workflow but there is no particular event to link to, such as a Query or a Rejected Update.
Used in:
Used in:
Additional information about the workflow event. Eg: the caller workflow can send the history event details that made the Nexus call.
EventReference is a direct reference to a history event through the event ID.
Used in:
RequestIdReference is a indirect reference to a history event through the request ID.
Used in:
A user-defined set of *unindexed* fields that are exposed when listing/searching workflows
Used in: , , , , , , , , , , , , , , ,
Metadata relevant for metering purposes
Used in: ,
Count of local activities which have begun an execution attempt during this workflow task, and whose first attempt occurred in some previous task. This is used for metering purposes, and does not affect workflow state. (-- api-linter: core::0141::forbidden-types=disabled aip.dev/not-precedent: Negative values make no sense to represent. --)
When starting an execution with a conflict policy that uses an existing execution and there is already an existing running execution, OnConflictOptions defines actions to be taken on the existing running execution.
Used in:
Attaches the request ID to the running execution.
Attaches the completion callbacks to the running execution.
Attaches the links to the running execution.
Represents some binary (byte array) data (ex: activity input parameters or workflow result) with metadata which describes this binary data (format, encoding, encryption, etc). Serialization of the data may be user-defined.
Used in: , , , , , , , , , , , , , , , , , , , , , , , , ,
Details about externally stored payloads associated with this payload.
Describes an externally stored object referenced by this payload.
Used in:
Size in bytes of the externally stored payload
See `Payload`
Used in: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
Principal is an authenticated caller identity computed by the server from trusted authentication context.
Used in:
Low-cardinality category of the principal (e.g., "jwt", "users").
Identifier within that category (e.g., sub JWT claim, email address).
Priority contains metadata that controls relative ordering of task processing when tasks are backed up in a queue. Initially, Priority will be used in matching (workflow and activity) task queues. Later it may be used in history task queues and in rate limiting decisions. Priority is attached to workflows and activities. By default, activities inherit Priority from the workflow that created them, but may override fields when an activity is started or modified. Despite being named "Priority", this message also contains fields that control "fairness" mechanisms. For all fields, the field not present or equal to zero/empty string means to inherit the value from the calling workflow, or if there is no calling workflow, then use the default value. For all fields other than fairness_key, the zero value isn't meaningful so there's no confusion between inherit/default and a meaningful value. For fairness_key, the empty string will be interpreted as "inherit". This means that if a workflow has a non-empty fairness key, you can't override the fairness key of its activity to the empty string. The overall semantics of Priority are: 1. First, consider "priority": higher priority (lower number) goes first. 2. Then, consider fairness: try to dispatch tasks for different fairness keys in proportion to their weight. Applications may use any subset of mechanisms that are useful to them and leave the other fields to use default values. Not all queues in the system may support the "full" semantics of all priority fields. (Currently only support in matching task queues is planned.)
Used in: , , , , , , , , , , , , , , ,
Priority key is a positive integer from 1 to n, where smaller integers correspond to higher priorities (tasks run sooner). In general, tasks in a queue should be processed in close to priority order, although small deviations are possible. The maximum priority value (minimum priority) is determined by server configuration, and defaults to 5. If priority is not present (or zero), then the effective priority will be the default priority, which is calculated by (min+max)/2. With the default max of 5, and min of 1, that comes out to 3.
Fairness key is a short string that's used as a key for a fairness balancing mechanism. It may correspond to a tenant id, or to a fixed string like "high" or "low". The default is the empty string. The fairness mechanism attempts to dispatch tasks for a given key in proportion to its weight. For example, using a thousand distinct tenant ids, each with a weight of 1.0 (the default) will result in each tenant getting a roughly equal share of task dispatch throughput. (Note: this does not imply equal share of worker capacity! Fairness decisions are made based on queue statistics, not current worker load.) As another example, using keys "high" and "low" with weight 9.0 and 1.0 respectively will prefer dispatching "high" tasks over "low" tasks at a 9:1 ratio, while allowing either key to use all worker capacity if the other is not present. All fairness mechanisms, including rate limits, are best-effort and probabilistic. The results may not match what a "perfect" algorithm with infinite resources would produce. The more unique keys are used, the less accurate the results will be. Fairness keys are limited to 64 bytes.
Fairness weight for a task can come from multiple sources for flexibility. From highest to lowest precedence: 1. Weights for a small set of keys can be overridden in task queue configuration with an API. 2. It can be attached to the workflow/activity in this field. 3. The default weight of 1.0 will be used. Weight values are clamped to the range [0.001, 1000].
Describes where and how to reset a workflow, used for batch reset currently and may be used for single-workflow reset later.
Used in:
Which workflow task to reset to.
Resets to the first workflow task completed or started event.
Resets to the last workflow task completed or started event.
The id of a specific `WORKFLOW_TASK_COMPLETED`,`WORKFLOW_TASK_TIMED_OUT`, `WORKFLOW_TASK_FAILED`, or `WORKFLOW_TASK_STARTED` event to reset to. Note that this option doesn't make sense when used as part of a batch request.
Resets to the first workflow task processed by this build id. If the workflow was not processed by the build id, or the workflow task can't be determined, no reset will be performed. Note that by default, this reset is allowed to be to a prior run in a chain of continue-as-new.
Deprecated. Use `options`. Default: RESET_REAPPLY_TYPE_SIGNAL
If true, limit the reset to only within the current run. (Applies to build_id targets and possibly others in the future.)
Event types not to be reapplied
How retries ought to be handled, usable by both workflows and activities
Used in: , , , , , , , , , , , , ,
Interval of the first retry. If retryBackoffCoefficient is 1.0 then it is used for all retries.
Coefficient used to calculate the next retry interval. The next retry interval is previous interval multiplied by the coefficient. Must be 1 or larger.
Maximum interval between retries. Exponential backoff leads to interval increase. This value is the cap of the increase. Default is 100x of the initial interval.
Maximum number of attempts. When exceeded the retries stop even if not expired yet. 1 disables retries. 0 means unlimited (up to the timeouts)
Non-Retryable errors types. Will stop retrying if the error type matches this list. Note that this is not a substring match, the error *type* (not message) must match exactly.
A user-defined set of *indexed* fields that are used/exposed when listing/searching workflows. The payload is not serialized in a user-defined way.
Used in: , , , , , , , , , , , , , , , , , , , ,
The configuration for time skipping of a workflow execution (a chain of runs including retries, cron, continue-as-new). When time skipping is enabled, virtual time advances automatically whenever there is no in-flight work. In-flight work includes activities, child workflows, Nexus operations, signal/cancel external workflow operations, and possibly other features added in the future. User timers are not classified as in-flight work and will be skipped over; the virtual clock may also skip to the time point of the registered fast forward when there is no in-flight work. When time is skipped, a WorkflowExecutionTimeSkippingTransitionedEvent will be added to the workflow history to capture the state changes. For child workflows, by default, if the parent execution is skipping time, the child execution will also skip time, but a parent's fast_forward won't affect its child's execution. A flag is provided to disable propagation of the "enabled" flag to child workflows; regardless of that flag, a child workflow inherits the virtual time from the parent execution as its start time.
Used in: , , , , ,
Enables or disables time skipping for this workflow execution.
Optionally fast-forward the current workflow execution by this duration ahead of current workflow execution time. After the fast-forward completes, time skipping is disabled, and this action is recorded in the WorkflowExecutionTimeSkippingTransitionedEvent. It can be re-enabled by setting `enabled` to true or setting `fast_forward` again via UpdateWorkflowExecutionOptions. The current workflow execution is a chain of runs (retries, cron, continue-as-new); child workflows are separate executions, so this fast_forward won't affect them. For a given workflow execution, only one active fast-forward is allowed at a time. If a new fast-forward is set via UpdateWorkflowExecutionOptions before the previous one completes, the new one will override the previous one. If the fast-forward duration exceeds the remaining execution timeout, time will only be fast-forwarded up to the end of the execution.
By default, child workflows inherit the "enabled" flag when they are started. This flag disables that inheritance.
The time-skipping state that needs to be propagated from a parent workflow to a child workflow, or through a chain of runs.
Used in: ,
The time skipped by the previous execution that started this workflow. It can happen in child workflows and a chain of runs (CaN, cron, retry).
If there is a fast-forward action set for the previous run in a chain of runs, the target time should be propagated to the next run as well.
This is used to send commands to a specific worker or a group of workers. Right now, it is used to send commands to a specific worker instance. Will be extended to be able to send command to multiple workers.
Used in: ,
Options are: - query (will be used as query to ListWorkers, same format as in ListWorkersRequest.query) - task queue (just a shortcut. Same as query=' "TaskQueue"="my-task-queue" ') - etc. All but 'query' are shortcuts, can be replaced with a query, but it is not convenient. string query = 5; string task_queue = 6; ...
Worker instance key to which the command should be sent.
Identifies the version that a worker is compatible with when polling or identifying itself, and whether or not this worker is opting into the build-id based versioning feature. This is used by matching to determine which workers ought to receive what tasks. Deprecated. Use WorkerDeploymentOptions instead.
Used in: , , ,
An opaque whole-worker identifier
If set, the worker is opting in to worker versioning, and wishes to only receive appropriate tasks.
Must be sent if user has set a deployment series name (versioning-3).
Deprecated. This message is replaced with `Deployment` and `VersioningBehavior`. Identifies the version(s) of a worker that processed a task
Used in: , , , , , , , , , , , , , ,
An opaque whole-worker identifier. Replaces the deprecated `binary_checksum` field when this message is included in requests which previously used that.
If set, the worker is opting in to worker versioning. Otherwise, this is used only as a marker for workflow reset points and the BuildIDs search attribute.
Identifies a specific workflow within a namespace. Practically speaking, because run_id is a uuid, a workflow execution is globally unique. Note that many commands allow specifying an empty run id as a way of saying "target the latest run of the workflow".
Used in: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
Represents the identifier used by a workflow author to define the workflow. Typically, the name of a function. This is sometimes referred to as the workflow's "name"
Used in: , , , , , , , , , , , , , , , , , , ,