@temporalio/proto 1.10.3 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/protos/root.d.ts CHANGED
@@ -9351,7 +9351,8 @@ export namespace temporal {
9351
9351
  RESOURCE_EXHAUSTED_CAUSE_SYSTEM_OVERLOADED = 3,
9352
9352
  RESOURCE_EXHAUSTED_CAUSE_PERSISTENCE_LIMIT = 4,
9353
9353
  RESOURCE_EXHAUSTED_CAUSE_BUSY_WORKFLOW = 5,
9354
- RESOURCE_EXHAUSTED_CAUSE_APS_LIMIT = 6
9354
+ RESOURCE_EXHAUSTED_CAUSE_APS_LIMIT = 6,
9355
+ RESOURCE_EXHAUSTED_CAUSE_PERSISTENCE_STORAGE_LIMIT = 7
9355
9356
  }
9356
9357
 
9357
9358
  /** ResourceExhaustedScope enum. */
@@ -9446,8 +9447,13 @@ export namespace temporal {
9446
9447
 
9447
9448
  /**
9448
9449
  * Specifies which category of tasks may reach a versioned worker of a certain Build ID.
9450
+ *
9451
+ * Task Reachability is eventually consistent; there may be a delay until it converges to the most
9452
+ * accurate value but it is designed in a way to take the more conservative side until it converges.
9453
+ * For example REACHABLE is more conservative than CLOSED_WORKFLOWS_ONLY.
9454
+ *
9449
9455
  * Note: future activities who inherit their workflow's Build ID but not its Task Queue will not be
9450
- * accounted for reachability as server cannot not know if they'll happen as they do not use
9456
+ * accounted for reachability as server cannot know if they'll happen as they do not use
9451
9457
  * assignment rules of their Task Queue. Same goes for Child Workflows or Continue-As-New Workflows
9452
9458
  * who inherit the parent/previous workflow's Build ID but not its Task Queue. In those cases, make
9453
9459
  * sure to query reachability for the parent/previous workflow's Task Queue as well.
@@ -12826,7 +12832,26 @@ export namespace temporal {
12826
12832
  public getWorkerBuildIdCompatibility(request: temporal.api.workflowservice.v1.IGetWorkerBuildIdCompatibilityRequest): Promise<temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse>;
12827
12833
 
12828
12834
  /**
12829
- * Allows updating the Build ID assignment and redirect rules for a given Task Queue.
12835
+ * Use this API to manage Worker Versioning Rules for a given Task Queue. There are two types of
12836
+ * rules: Build ID Assignment rules and Compatible Build ID Redirect rules.
12837
+ *
12838
+ * Assignment rules are used to assign a Build ID for a new execution when it starts. Its primary
12839
+ * use case is to specify the latest Build ID but it has powerful features for gradual rollout
12840
+ * of a new Build ID.
12841
+ *
12842
+ * Once a Build ID is assigned to a workflow execution and it completes its first Workflow Task,
12843
+ * the workflow stays on the assigned Build ID regardless of changes in assignment rules. This
12844
+ * eliminates the need for compatibility between versions when you only care about using the new
12845
+ * version for new workflows and let existing workflows finish in their own version.
12846
+ *
12847
+ * Activities, Child Workflows and Continue-as-New executions have the option to inherit their
12848
+ * parent/previous workflow or use the latest assigment rules to independently select a Build ID.
12849
+ *
12850
+ * Redirect rules should only be used when you want to move workflows and activities assigned to
12851
+ * one Build ID (source) to another compatible Build ID (target). You are responsible to make sure
12852
+ * the target Build ID of a redirect rule is able to process event histories made by the source
12853
+ * Build ID by using [Patching](https://docs.temporal.io/workflows#patching) or other means.
12854
+ *
12830
12855
  * WARNING: Worker Versioning is not yet stable and the API and behavior may change incompatibly.
12831
12856
  * (-- api-linter: core::0127::http-annotation=disabled
12832
12857
  * aip.dev/not-precedent: We do yet expose versioning API to HTTP. --)
@@ -12836,7 +12861,26 @@ export namespace temporal {
12836
12861
  public updateWorkerVersioningRules(request: temporal.api.workflowservice.v1.IUpdateWorkerVersioningRulesRequest, callback: temporal.api.workflowservice.v1.WorkflowService.UpdateWorkerVersioningRulesCallback): void;
12837
12862
 
12838
12863
  /**
12839
- * Allows updating the Build ID assignment and redirect rules for a given Task Queue.
12864
+ * Use this API to manage Worker Versioning Rules for a given Task Queue. There are two types of
12865
+ * rules: Build ID Assignment rules and Compatible Build ID Redirect rules.
12866
+ *
12867
+ * Assignment rules are used to assign a Build ID for a new execution when it starts. Its primary
12868
+ * use case is to specify the latest Build ID but it has powerful features for gradual rollout
12869
+ * of a new Build ID.
12870
+ *
12871
+ * Once a Build ID is assigned to a workflow execution and it completes its first Workflow Task,
12872
+ * the workflow stays on the assigned Build ID regardless of changes in assignment rules. This
12873
+ * eliminates the need for compatibility between versions when you only care about using the new
12874
+ * version for new workflows and let existing workflows finish in their own version.
12875
+ *
12876
+ * Activities, Child Workflows and Continue-as-New executions have the option to inherit their
12877
+ * parent/previous workflow or use the latest assigment rules to independently select a Build ID.
12878
+ *
12879
+ * Redirect rules should only be used when you want to move workflows and activities assigned to
12880
+ * one Build ID (source) to another compatible Build ID (target). You are responsible to make sure
12881
+ * the target Build ID of a redirect rule is able to process event histories made by the source
12882
+ * Build ID by using [Patching](https://docs.temporal.io/workflows#patching) or other means.
12883
+ *
12840
12884
  * WARNING: Worker Versioning is not yet stable and the API and behavior may change incompatibly.
12841
12885
  * (-- api-linter: core::0127::http-annotation=disabled
12842
12886
  * aip.dev/not-precedent: We do yet expose versioning API to HTTP. --)
@@ -14678,6 +14722,13 @@ export namespace temporal {
14678
14722
  * Callback addresses must be whitelisted in the server's dynamic configuration.
14679
14723
  */
14680
14724
  completionCallbacks?: (temporal.api.common.v1.ICallback[]|null);
14725
+
14726
+ /**
14727
+ * Metadata on the workflow if it is started. This is carried over to the WorkflowExecutionInfo
14728
+ * for use by user interfaces to display the fixed as-of-start summary and details of the
14729
+ * workflow.
14730
+ */
14731
+ userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
14681
14732
  }
14682
14733
 
14683
14734
  /** Represents a StartWorkflowExecutionRequest. */
@@ -14783,6 +14834,13 @@ export namespace temporal {
14783
14834
  */
14784
14835
  public completionCallbacks: temporal.api.common.v1.ICallback[];
14785
14836
 
14837
+ /**
14838
+ * Metadata on the workflow if it is started. This is carried over to the WorkflowExecutionInfo
14839
+ * for use by user interfaces to display the fixed as-of-start summary and details of the
14840
+ * workflow.
14841
+ */
14842
+ public userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
14843
+
14786
14844
  /**
14787
14845
  * Creates a new StartWorkflowExecutionRequest instance using the specified properties.
14788
14846
  * @param [properties] Properties to set
@@ -15584,8 +15642,16 @@ export namespace temporal {
15584
15642
  attempt?: (number|null);
15585
15643
 
15586
15644
  /**
15587
- * A hint that there are more tasks already present in this task queue. Can be used to
15588
- * prioritize draining a sticky queue before polling from a normal queue.
15645
+ * A hint that there are more tasks already present in this task queue
15646
+ * partition. Can be used to prioritize draining a sticky queue.
15647
+ *
15648
+ * Specifically, the returned number is the number of tasks remaining in
15649
+ * the in-memory buffer for this partition, which is currently capped at
15650
+ * 1000. Because sticky queues only have one partition, this number is
15651
+ * more useful when draining them. Normal queues, typically having more than one
15652
+ * partition, will return a number representing only some portion of the
15653
+ * overall backlog. Subsequent RPCs may not hit the same partition as
15654
+ * this call.
15589
15655
  */
15590
15656
  backlogCountHint?: (Long|null);
15591
15657
 
@@ -15668,8 +15734,16 @@ export namespace temporal {
15668
15734
  public attempt: number;
15669
15735
 
15670
15736
  /**
15671
- * A hint that there are more tasks already present in this task queue. Can be used to
15672
- * prioritize draining a sticky queue before polling from a normal queue.
15737
+ * A hint that there are more tasks already present in this task queue
15738
+ * partition. Can be used to prioritize draining a sticky queue.
15739
+ *
15740
+ * Specifically, the returned number is the number of tasks remaining in
15741
+ * the in-memory buffer for this partition, which is currently capped at
15742
+ * 1000. Because sticky queues only have one partition, this number is
15743
+ * more useful when draining them. Normal queues, typically having more than one
15744
+ * partition, will return a number representing only some portion of the
15745
+ * overall backlog. Subsequent RPCs may not hit the same partition as
15746
+ * this call.
15673
15747
  */
15674
15748
  public backlogCountHint: Long;
15675
15749
 
@@ -18894,6 +18968,13 @@ export namespace temporal {
18894
18968
 
18895
18969
  /** Indicates that a new workflow task should not be generated when this signal is received. */
18896
18970
  skipGenerateWorkflowTask?: (boolean|null);
18971
+
18972
+ /**
18973
+ * Metadata on the workflow if it is started. This is carried over to the WorkflowExecutionInfo
18974
+ * for use by user interfaces to display the fixed as-of-start summary and details of the
18975
+ * workflow.
18976
+ */
18977
+ userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
18897
18978
  }
18898
18979
 
18899
18980
  /** Represents a SignalWithStartWorkflowExecutionRequest. */
@@ -18989,6 +19070,13 @@ export namespace temporal {
18989
19070
  /** Indicates that a new workflow task should not be generated when this signal is received. */
18990
19071
  public skipGenerateWorkflowTask: boolean;
18991
19072
 
19073
+ /**
19074
+ * Metadata on the workflow if it is started. This is carried over to the WorkflowExecutionInfo
19075
+ * for use by user interfaces to display the fixed as-of-start summary and details of the
19076
+ * workflow.
19077
+ */
19078
+ public userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
19079
+
18992
19080
  /**
18993
19081
  * Creates a new SignalWithStartWorkflowExecutionRequest instance using the specified properties.
18994
19082
  * @param [properties] Properties to set
@@ -22157,11 +22245,10 @@ export namespace temporal {
22157
22245
  /** Task queue types to report info about. If not specified, all types are considered. */
22158
22246
  taskQueueTypes?: (temporal.api.enums.v1.TaskQueueType[]|null);
22159
22247
 
22160
- /**
22161
- * Report backlog info for the requested task queue types and versions
22162
- * bool report_backlog_info = 8;
22163
- * Report list of pollers for requested task queue types and versions
22164
- */
22248
+ /** Report stats for the requested task queue types and versions */
22249
+ reportStats?: (boolean|null);
22250
+
22251
+ /** Report list of pollers for requested task queue types and versions */
22165
22252
  reportPollers?: (boolean|null);
22166
22253
 
22167
22254
  /**
@@ -22212,11 +22299,10 @@ export namespace temporal {
22212
22299
  /** Task queue types to report info about. If not specified, all types are considered. */
22213
22300
  public taskQueueTypes: temporal.api.enums.v1.TaskQueueType[];
22214
22301
 
22215
- /**
22216
- * Report backlog info for the requested task queue types and versions
22217
- * bool report_backlog_info = 8;
22218
- * Report list of pollers for requested task queue types and versions
22219
- */
22302
+ /** Report stats for the requested task queue types and versions */
22303
+ public reportStats: boolean;
22304
+
22305
+ /** Report list of pollers for requested task queue types and versions */
22220
22306
  public reportPollers: boolean;
22221
22307
 
22222
22308
  /**
@@ -36203,6 +36289,18 @@ export namespace temporal {
36203
36289
  */
36204
36290
  workerMayIgnore?: (boolean|null);
36205
36291
 
36292
+ /**
36293
+ * Metadata on the event. This is often carried over from commands and client calls. Most events
36294
+ * won't have this information, and how this information is used is dependent upon the interface
36295
+ * that reads it.
36296
+ *
36297
+ * Current well-known uses:
36298
+ * workflow_execution_started_event_attributes - summary and details from start workflow.
36299
+ * timer_started_event_attributes - summary represents an identifier for the timer for use by
36300
+ * user interfaces.
36301
+ */
36302
+ userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
36303
+
36206
36304
  /** HistoryEvent workflowExecutionStartedEventAttributes */
36207
36305
  workflowExecutionStartedEventAttributes?: (temporal.api.history.v1.IWorkflowExecutionStartedEventAttributes|null);
36208
36306
 
@@ -36401,6 +36499,18 @@ export namespace temporal {
36401
36499
  */
36402
36500
  public workerMayIgnore: boolean;
36403
36501
 
36502
+ /**
36503
+ * Metadata on the event. This is often carried over from commands and client calls. Most events
36504
+ * won't have this information, and how this information is used is dependent upon the interface
36505
+ * that reads it.
36506
+ *
36507
+ * Current well-known uses:
36508
+ * * workflow_execution_started_event_attributes - summary and details from start workflow.
36509
+ * * timer_started_event_attributes - summary represents an identifier for the timer for use by
36510
+ * user interfaces.
36511
+ */
36512
+ public userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
36513
+
36404
36514
  /** HistoryEvent workflowExecutionStartedEventAttributes. */
36405
36515
  public workflowExecutionStartedEventAttributes?: (temporal.api.history.v1.IWorkflowExecutionStartedEventAttributes|null);
36406
36516
 
@@ -37047,7 +37157,17 @@ export namespace temporal {
37047
37157
  /** Task Queue info per Task Type. Key is the numerical value of the temporal.api.enums.v1.TaskQueueType enum. */
37048
37158
  typesInfo?: ({ [k: string]: temporal.api.taskqueue.v1.ITaskQueueTypeInfo }|null);
37049
37159
 
37050
- /** TaskQueueVersionInfo taskReachability */
37160
+ /**
37161
+ * Task Reachability is eventually consistent; there may be a delay until it converges to the most
37162
+ * accurate value but it is designed in a way to take the more conservative side until it converges.
37163
+ * For example REACHABLE is more conservative than CLOSED_WORKFLOWS_ONLY.
37164
+ *
37165
+ * Note: future activities who inherit their workflow's Build ID but not its Task Queue will not be
37166
+ * accounted for reachability as server cannot know if they'll happen as they do not use
37167
+ * assignment rules of their Task Queue. Same goes for Child Workflows or Continue-As-New Workflows
37168
+ * who inherit the parent/previous workflow's Build ID but not its Task Queue. In those cases, make
37169
+ * sure to query reachability for the parent/previous workflow's Task Queue as well.
37170
+ */
37051
37171
  taskReachability?: (temporal.api.enums.v1.BuildIdTaskReachability|null);
37052
37172
  }
37053
37173
 
@@ -37063,7 +37183,17 @@ export namespace temporal {
37063
37183
  /** Task Queue info per Task Type. Key is the numerical value of the temporal.api.enums.v1.TaskQueueType enum. */
37064
37184
  public typesInfo: { [k: string]: temporal.api.taskqueue.v1.ITaskQueueTypeInfo };
37065
37185
 
37066
- /** TaskQueueVersionInfo taskReachability. */
37186
+ /**
37187
+ * Task Reachability is eventually consistent; there may be a delay until it converges to the most
37188
+ * accurate value but it is designed in a way to take the more conservative side until it converges.
37189
+ * For example REACHABLE is more conservative than CLOSED_WORKFLOWS_ONLY.
37190
+ *
37191
+ * Note: future activities who inherit their workflow's Build ID but not its Task Queue will not be
37192
+ * accounted for reachability as server cannot know if they'll happen as they do not use
37193
+ * assignment rules of their Task Queue. Same goes for Child Workflows or Continue-As-New Workflows
37194
+ * who inherit the parent/previous workflow's Build ID but not its Task Queue. In those cases, make
37195
+ * sure to query reachability for the parent/previous workflow's Task Queue as well.
37196
+ */
37067
37197
  public taskReachability: temporal.api.enums.v1.BuildIdTaskReachability;
37068
37198
 
37069
37199
  /**
@@ -37142,6 +37272,9 @@ export namespace temporal {
37142
37272
 
37143
37273
  /** Unversioned workers (with `useVersioning=false`) are reported in unversioned result even if they set a Build ID. */
37144
37274
  pollers?: (temporal.api.taskqueue.v1.IPollerInfo[]|null);
37275
+
37276
+ /** TaskQueueTypeInfo stats */
37277
+ stats?: (temporal.api.taskqueue.v1.ITaskQueueStats|null);
37145
37278
  }
37146
37279
 
37147
37280
  /** Represents a TaskQueueTypeInfo. */
@@ -37156,6 +37289,9 @@ export namespace temporal {
37156
37289
  /** Unversioned workers (with `useVersioning=false`) are reported in unversioned result even if they set a Build ID. */
37157
37290
  public pollers: temporal.api.taskqueue.v1.IPollerInfo[];
37158
37291
 
37292
+ /** TaskQueueTypeInfo stats. */
37293
+ public stats?: (temporal.api.taskqueue.v1.ITaskQueueStats|null);
37294
+
37159
37295
  /**
37160
37296
  * Creates a new TaskQueueTypeInfo instance using the specified properties.
37161
37297
  * @param [properties] Properties to set
@@ -37227,6 +37363,136 @@ export namespace temporal {
37227
37363
  public static getTypeUrl(typeUrlPrefix?: string): string;
37228
37364
  }
37229
37365
 
37366
+ /** Properties of a TaskQueueStats. */
37367
+ interface ITaskQueueStats {
37368
+
37369
+ /**
37370
+ * The approximate number of tasks backlogged in this task queue. May count expired tasks but eventually converges
37371
+ * to the right value.
37372
+ */
37373
+ approximateBacklogCount?: (Long|null);
37374
+
37375
+ /** Approximate age of the oldest task in the backlog based on the create timestamp of the task at the head of the queue. */
37376
+ approximateBacklogAge?: (google.protobuf.IDuration|null);
37377
+
37378
+ /**
37379
+ * Approximate tasks per second added to the task queue based on activity within a fixed window. This includes both backlogged and
37380
+ * sync-matched tasks.
37381
+ */
37382
+ tasksAddRate?: (number|null);
37383
+
37384
+ /**
37385
+ * Approximate tasks per second dispatched to workers based on activity within a fixed window. This includes both backlogged and
37386
+ * sync-matched tasks.
37387
+ */
37388
+ tasksDispatchRate?: (number|null);
37389
+ }
37390
+
37391
+ /**
37392
+ * For workflow task queues, we only report the normal queue stats, not sticky queues. This means the stats
37393
+ * reported here do not count all workflow tasks. However, because the tasks queued in sticky queues only remain
37394
+ * valid for a few seconds, the inaccuracy becomes less significant as the backlog age grows.
37395
+ */
37396
+ class TaskQueueStats implements ITaskQueueStats {
37397
+
37398
+ /**
37399
+ * Constructs a new TaskQueueStats.
37400
+ * @param [properties] Properties to set
37401
+ */
37402
+ constructor(properties?: temporal.api.taskqueue.v1.ITaskQueueStats);
37403
+
37404
+ /**
37405
+ * The approximate number of tasks backlogged in this task queue. May count expired tasks but eventually converges
37406
+ * to the right value.
37407
+ */
37408
+ public approximateBacklogCount: Long;
37409
+
37410
+ /** Approximate age of the oldest task in the backlog based on the create timestamp of the task at the head of the queue. */
37411
+ public approximateBacklogAge?: (google.protobuf.IDuration|null);
37412
+
37413
+ /**
37414
+ * Approximate tasks per second added to the task queue based on activity within a fixed window. This includes both backlogged and
37415
+ * sync-matched tasks.
37416
+ */
37417
+ public tasksAddRate: number;
37418
+
37419
+ /**
37420
+ * Approximate tasks per second dispatched to workers based on activity within a fixed window. This includes both backlogged and
37421
+ * sync-matched tasks.
37422
+ */
37423
+ public tasksDispatchRate: number;
37424
+
37425
+ /**
37426
+ * Creates a new TaskQueueStats instance using the specified properties.
37427
+ * @param [properties] Properties to set
37428
+ * @returns TaskQueueStats instance
37429
+ */
37430
+ public static create(properties?: temporal.api.taskqueue.v1.ITaskQueueStats): temporal.api.taskqueue.v1.TaskQueueStats;
37431
+
37432
+ /**
37433
+ * Encodes the specified TaskQueueStats message. Does not implicitly {@link temporal.api.taskqueue.v1.TaskQueueStats.verify|verify} messages.
37434
+ * @param message TaskQueueStats message or plain object to encode
37435
+ * @param [writer] Writer to encode to
37436
+ * @returns Writer
37437
+ */
37438
+ public static encode(message: temporal.api.taskqueue.v1.ITaskQueueStats, writer?: $protobuf.Writer): $protobuf.Writer;
37439
+
37440
+ /**
37441
+ * Encodes the specified TaskQueueStats message, length delimited. Does not implicitly {@link temporal.api.taskqueue.v1.TaskQueueStats.verify|verify} messages.
37442
+ * @param message TaskQueueStats message or plain object to encode
37443
+ * @param [writer] Writer to encode to
37444
+ * @returns Writer
37445
+ */
37446
+ public static encodeDelimited(message: temporal.api.taskqueue.v1.ITaskQueueStats, writer?: $protobuf.Writer): $protobuf.Writer;
37447
+
37448
+ /**
37449
+ * Decodes a TaskQueueStats message from the specified reader or buffer.
37450
+ * @param reader Reader or buffer to decode from
37451
+ * @param [length] Message length if known beforehand
37452
+ * @returns TaskQueueStats
37453
+ * @throws {Error} If the payload is not a reader or valid buffer
37454
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
37455
+ */
37456
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): temporal.api.taskqueue.v1.TaskQueueStats;
37457
+
37458
+ /**
37459
+ * Decodes a TaskQueueStats message from the specified reader or buffer, length delimited.
37460
+ * @param reader Reader or buffer to decode from
37461
+ * @returns TaskQueueStats
37462
+ * @throws {Error} If the payload is not a reader or valid buffer
37463
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
37464
+ */
37465
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): temporal.api.taskqueue.v1.TaskQueueStats;
37466
+
37467
+ /**
37468
+ * Creates a TaskQueueStats message from a plain object. Also converts values to their respective internal types.
37469
+ * @param object Plain object
37470
+ * @returns TaskQueueStats
37471
+ */
37472
+ public static fromObject(object: { [k: string]: any }): temporal.api.taskqueue.v1.TaskQueueStats;
37473
+
37474
+ /**
37475
+ * Creates a plain object from a TaskQueueStats message. Also converts values to other types if specified.
37476
+ * @param message TaskQueueStats
37477
+ * @param [options] Conversion options
37478
+ * @returns Plain object
37479
+ */
37480
+ public static toObject(message: temporal.api.taskqueue.v1.TaskQueueStats, options?: $protobuf.IConversionOptions): { [k: string]: any };
37481
+
37482
+ /**
37483
+ * Converts this TaskQueueStats to JSON.
37484
+ * @returns JSON object
37485
+ */
37486
+ public toJSON(): { [k: string]: any };
37487
+
37488
+ /**
37489
+ * Gets the default type url for TaskQueueStats
37490
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
37491
+ * @returns The default type url
37492
+ */
37493
+ public static getTypeUrl(typeUrlPrefix?: string): string;
37494
+ }
37495
+
37230
37496
  /** Properties of a TaskQueueStatus. */
37231
37497
  interface ITaskQueueStatus {
37232
37498
 
@@ -38147,29 +38413,31 @@ export namespace temporal {
38147
38413
  }
38148
38414
 
38149
38415
  /**
38150
- * These rules assign a Build ID to Unassigned Workflow Executions and
38151
- * Activities.
38416
+ * Assignment rules are applied to *new* Workflow and Activity executions at
38417
+ * schedule time to assign them to a Build ID.
38152
38418
  *
38153
- * Specifically, assignment rules are applied to the following Executions or
38154
- * Activities when they are scheduled in a Task Queue:
38155
- * - Generally, any new Workflow Execution, except:
38156
- * - When A Child Workflow or a Continue-As-New Execution inherits the
38157
- * Build ID from its parent/previous execution by setting the
38158
- * `inherit_build_id` flag.
38159
- * - Workflow Executions started Eagerly are assigned to the Build ID of
38160
- * the Starter.
38161
- * - An Activity that is scheduled on a Task Queue different from the one
38162
- * their Workflow runs on, unless the `use_workflow_build_id` flag is set.
38419
+ * Assignment rules will not be used in the following cases:
38420
+ * - Child Workflows or Continue-As-New Executions who inherit their
38421
+ * parent/previous Workflow's assigned Build ID (by setting the
38422
+ * `inherit_build_id` flag - default behavior in SDKs when the same Task Queue
38423
+ * is used.)
38424
+ * - An Activity that inherits the assigned Build ID of its Workflow (by
38425
+ * setting the `use_workflow_build_id` flag - default behavior in SDKs
38426
+ * when the same Task Queue is used.)
38163
38427
  *
38164
38428
  * In absence of (applicable) redirect rules (`CompatibleBuildIdRedirectRule`s)
38165
38429
  * the task will be dispatched to Workers of the Build ID determined by the
38166
- * assignment rules. Otherwise, the final Build ID will be determined by the
38167
- * redirect rules.
38430
+ * assignment rules (or inherited). Otherwise, the final Build ID will be
38431
+ * determined by the redirect rules.
38168
38432
  *
38169
- * When using Worker Versioning, in the steady state, for a given Task Queue,
38170
- * there should typically be exactly one assignment rule to send all Unassigned
38171
- * tasks to the latest Build ID. Existence of at least one such "unconditional"
38172
- * rule at all times is enforce by the system, unless the `force` flag is used
38433
+ * Once a Workflow completes its first Workflow Task in a particular Build ID it
38434
+ * stays in that Build ID regardless of changes to assignment rules. Redirect
38435
+ * rules can be used to move the workflow to another compatible Build ID.
38436
+ *
38437
+ * When using Worker Versioning on a Task Queue, in the steady state,
38438
+ * there should typically be a single assignment rule to send all new executions
38439
+ * to the latest Build ID. Existence of at least one such "unconditional"
38440
+ * rule at all times is enforces by the system, unless the `force` flag is used
38173
38441
  * by the user when replacing/deleting these rules (for exceptional cases).
38174
38442
  *
38175
38443
  * During a deployment, one or more additional rules can be added to assign a
@@ -38180,10 +38448,8 @@ export namespace temporal {
38180
38448
  * applied and the rest will be ignored.
38181
38449
  *
38182
38450
  * In the event that no assignment rule is applicable on a task (or the Task
38183
- * Queue is simply not versioned), the tasks will be sent to unversioned
38184
- * workers, if available. Otherwise, they remain Unassigned, and will be
38185
- * retried for assignment, or dispatch to unversioned workers, at a later time
38186
- * depending on the availability of workers.
38451
+ * Queue is simply not versioned), the tasks will be dispatched to an
38452
+ * unversioned Worker.
38187
38453
  */
38188
38454
  class BuildIdAssignmentRule implements IBuildIdAssignmentRule {
38189
38455
 
@@ -38288,7 +38554,12 @@ export namespace temporal {
38288
38554
  /** CompatibleBuildIdRedirectRule sourceBuildId */
38289
38555
  sourceBuildId?: (string|null);
38290
38556
 
38291
- /** CompatibleBuildIdRedirectRule targetBuildId */
38557
+ /**
38558
+ * Target Build ID must be compatible with the Source Build ID; that is it
38559
+ * must be able to process event histories made by the Source Build ID by
38560
+ * using [Patching](https://docs.temporal.io/workflows#patching) or other
38561
+ * means.
38562
+ */
38292
38563
  targetBuildId?: (string|null);
38293
38564
  }
38294
38565
 
@@ -38312,8 +38583,7 @@ export namespace temporal {
38312
38583
  * - To be able to Reset an old Execution so it can run on the current
38313
38584
  * (compatible) Build ID.
38314
38585
  *
38315
- * Redirect rules can be chained, but only the last rule in the chain can have
38316
- * a ramp.
38586
+ * Redirect rules can be chained.
38317
38587
  */
38318
38588
  class CompatibleBuildIdRedirectRule implements ICompatibleBuildIdRedirectRule {
38319
38589
 
@@ -38326,7 +38596,12 @@ export namespace temporal {
38326
38596
  /** CompatibleBuildIdRedirectRule sourceBuildId. */
38327
38597
  public sourceBuildId: string;
38328
38598
 
38329
- /** CompatibleBuildIdRedirectRule targetBuildId. */
38599
+ /**
38600
+ * Target Build ID must be compatible with the Source Build ID; that is it
38601
+ * must be able to process event histories made by the Source Build ID by
38602
+ * using [Patching](https://docs.temporal.io/workflows#patching) or other
38603
+ * means.
38604
+ */
38330
38605
  public targetBuildId: string;
38331
38606
 
38332
38607
  /**
@@ -38880,6 +39155,9 @@ export namespace temporal {
38880
39155
 
38881
39156
  /** WorkflowExecutionConfig defaultWorkflowTaskTimeout */
38882
39157
  defaultWorkflowTaskTimeout?: (google.protobuf.IDuration|null);
39158
+
39159
+ /** User metadata provided on start workflow. */
39160
+ userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
38883
39161
  }
38884
39162
 
38885
39163
  /** Represents a WorkflowExecutionConfig. */
@@ -38903,6 +39181,9 @@ export namespace temporal {
38903
39181
  /** WorkflowExecutionConfig defaultWorkflowTaskTimeout. */
38904
39182
  public defaultWorkflowTaskTimeout?: (google.protobuf.IDuration|null);
38905
39183
 
39184
+ /** User metadata provided on start workflow. */
39185
+ public userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
39186
+
38906
39187
  /**
38907
39188
  * Creates a new WorkflowExecutionConfig instance using the specified properties.
38908
39189
  * @param [properties] Properties to set
@@ -39672,6 +39953,13 @@ export namespace temporal {
39672
39953
 
39673
39954
  /** NewWorkflowExecutionInfo header */
39674
39955
  header?: (temporal.api.common.v1.IHeader|null);
39956
+
39957
+ /**
39958
+ * Metadata on the workflow if it is started. This is carried over to the WorkflowExecutionConfig
39959
+ * for use by user interfaces to display the fixed as-of-start summary and details of the
39960
+ * workflow.
39961
+ */
39962
+ userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
39675
39963
  }
39676
39964
 
39677
39965
  /**
@@ -39725,6 +40013,13 @@ export namespace temporal {
39725
40013
  /** NewWorkflowExecutionInfo header. */
39726
40014
  public header?: (temporal.api.common.v1.IHeader|null);
39727
40015
 
40016
+ /**
40017
+ * Metadata on the workflow if it is started. This is carried over to the WorkflowExecutionConfig
40018
+ * for use by user interfaces to display the fixed as-of-start summary and details of the
40019
+ * workflow.
40020
+ */
40021
+ public userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
40022
+
39728
40023
  /**
39729
40024
  * Creates a new NewWorkflowExecutionInfo instance using the specified properties.
39730
40025
  * @param [properties] Properties to set
@@ -40426,6 +40721,120 @@ export namespace temporal {
40426
40721
  /** Namespace v1. */
40427
40722
  namespace v1 {
40428
40723
 
40724
+ /** Properties of a UserMetadata. */
40725
+ interface IUserMetadata {
40726
+
40727
+ /**
40728
+ * Short-form text that provides a summary. This payload should be a "json/plain"-encoded payload
40729
+ * that is a single JSON string for use in user interfaces. User interface formatting may not
40730
+ * apply to this text when used in "title" situations. The payload data section is limited to 400
40731
+ * bytes by default.
40732
+ */
40733
+ summary?: (temporal.api.common.v1.IPayload|null);
40734
+
40735
+ /**
40736
+ * Long-form text that provides details. This payload should be a "json/plain"-encoded payload
40737
+ * that is a single JSON string for use in user interfaces. User interface formatting may apply to
40738
+ * this text in common use. The payload data section is limited to 20000 bytes by default.
40739
+ */
40740
+ details?: (temporal.api.common.v1.IPayload|null);
40741
+ }
40742
+
40743
+ /** Information a user can set, often for use by user interfaces. */
40744
+ class UserMetadata implements IUserMetadata {
40745
+
40746
+ /**
40747
+ * Constructs a new UserMetadata.
40748
+ * @param [properties] Properties to set
40749
+ */
40750
+ constructor(properties?: temporal.api.sdk.v1.IUserMetadata);
40751
+
40752
+ /**
40753
+ * Short-form text that provides a summary. This payload should be a "json/plain"-encoded payload
40754
+ * that is a single JSON string for use in user interfaces. User interface formatting may not
40755
+ * apply to this text when used in "title" situations. The payload data section is limited to 400
40756
+ * bytes by default.
40757
+ */
40758
+ public summary?: (temporal.api.common.v1.IPayload|null);
40759
+
40760
+ /**
40761
+ * Long-form text that provides details. This payload should be a "json/plain"-encoded payload
40762
+ * that is a single JSON string for use in user interfaces. User interface formatting may apply to
40763
+ * this text in common use. The payload data section is limited to 20000 bytes by default.
40764
+ */
40765
+ public details?: (temporal.api.common.v1.IPayload|null);
40766
+
40767
+ /**
40768
+ * Creates a new UserMetadata instance using the specified properties.
40769
+ * @param [properties] Properties to set
40770
+ * @returns UserMetadata instance
40771
+ */
40772
+ public static create(properties?: temporal.api.sdk.v1.IUserMetadata): temporal.api.sdk.v1.UserMetadata;
40773
+
40774
+ /**
40775
+ * Encodes the specified UserMetadata message. Does not implicitly {@link temporal.api.sdk.v1.UserMetadata.verify|verify} messages.
40776
+ * @param message UserMetadata message or plain object to encode
40777
+ * @param [writer] Writer to encode to
40778
+ * @returns Writer
40779
+ */
40780
+ public static encode(message: temporal.api.sdk.v1.IUserMetadata, writer?: $protobuf.Writer): $protobuf.Writer;
40781
+
40782
+ /**
40783
+ * Encodes the specified UserMetadata message, length delimited. Does not implicitly {@link temporal.api.sdk.v1.UserMetadata.verify|verify} messages.
40784
+ * @param message UserMetadata message or plain object to encode
40785
+ * @param [writer] Writer to encode to
40786
+ * @returns Writer
40787
+ */
40788
+ public static encodeDelimited(message: temporal.api.sdk.v1.IUserMetadata, writer?: $protobuf.Writer): $protobuf.Writer;
40789
+
40790
+ /**
40791
+ * Decodes a UserMetadata message from the specified reader or buffer.
40792
+ * @param reader Reader or buffer to decode from
40793
+ * @param [length] Message length if known beforehand
40794
+ * @returns UserMetadata
40795
+ * @throws {Error} If the payload is not a reader or valid buffer
40796
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
40797
+ */
40798
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): temporal.api.sdk.v1.UserMetadata;
40799
+
40800
+ /**
40801
+ * Decodes a UserMetadata message from the specified reader or buffer, length delimited.
40802
+ * @param reader Reader or buffer to decode from
40803
+ * @returns UserMetadata
40804
+ * @throws {Error} If the payload is not a reader or valid buffer
40805
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
40806
+ */
40807
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): temporal.api.sdk.v1.UserMetadata;
40808
+
40809
+ /**
40810
+ * Creates a UserMetadata message from a plain object. Also converts values to their respective internal types.
40811
+ * @param object Plain object
40812
+ * @returns UserMetadata
40813
+ */
40814
+ public static fromObject(object: { [k: string]: any }): temporal.api.sdk.v1.UserMetadata;
40815
+
40816
+ /**
40817
+ * Creates a plain object from a UserMetadata message. Also converts values to other types if specified.
40818
+ * @param message UserMetadata
40819
+ * @param [options] Conversion options
40820
+ * @returns Plain object
40821
+ */
40822
+ public static toObject(message: temporal.api.sdk.v1.UserMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };
40823
+
40824
+ /**
40825
+ * Converts this UserMetadata to JSON.
40826
+ * @returns JSON object
40827
+ */
40828
+ public toJSON(): { [k: string]: any };
40829
+
40830
+ /**
40831
+ * Gets the default type url for UserMetadata
40832
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
40833
+ * @returns The default type url
40834
+ */
40835
+ public static getTypeUrl(typeUrlPrefix?: string): string;
40836
+ }
40837
+
40429
40838
  /** Properties of a WorkflowTaskCompletedMetadata. */
40430
40839
  interface IWorkflowTaskCompletedMetadata {
40431
40840
 
@@ -40615,6 +41024,12 @@ export namespace temporal {
40615
41024
 
40616
41025
  /** Metadata provided at declaration or creation time. */
40617
41026
  definition?: (temporal.api.sdk.v1.IWorkflowDefinition|null);
41027
+
41028
+ /**
41029
+ * Current long-form details of the workflow's state. This is used by user interfaces to show
41030
+ * long-form text. This text may be formatted by the user interface.
41031
+ */
41032
+ currentDetails?: (string|null);
40618
41033
  }
40619
41034
 
40620
41035
  /** The name of the query to retrieve this information is `__temporal_workflow_metadata`. */
@@ -40629,6 +41044,12 @@ export namespace temporal {
40629
41044
  /** Metadata provided at declaration or creation time. */
40630
41045
  public definition?: (temporal.api.sdk.v1.IWorkflowDefinition|null);
40631
41046
 
41047
+ /**
41048
+ * Current long-form details of the workflow's state. This is used by user interfaces to show
41049
+ * long-form text. This text may be formatted by the user interface.
41050
+ */
41051
+ public currentDetails: string;
41052
+
40632
41053
  /**
40633
41054
  * Creates a new WorkflowMetadata instance using the specified properties.
40634
41055
  * @param [properties] Properties to set
@@ -40709,13 +41130,6 @@ export namespace temporal {
40709
41130
  */
40710
41131
  type?: (string|null);
40711
41132
 
40712
- /**
40713
- * An optional workflow description provided by the application.
40714
- * By convention, external tools may interpret its first part,
40715
- * i.e., ending with a line break, as a summary of the description.
40716
- */
40717
- description?: (string|null);
40718
-
40719
41133
  /** WorkflowDefinition queryDefinitions */
40720
41134
  queryDefinitions?: (temporal.api.sdk.v1.IWorkflowInteractionDefinition[]|null);
40721
41135
 
@@ -40741,13 +41155,6 @@ export namespace temporal {
40741
41155
  */
40742
41156
  public type: string;
40743
41157
 
40744
- /**
40745
- * An optional workflow description provided by the application.
40746
- * By convention, external tools may interpret its first part,
40747
- * i.e., ending with a line break, as a summary of the description.
40748
- */
40749
- public description: string;
40750
-
40751
41158
  /** WorkflowDefinition queryDefinitions. */
40752
41159
  public queryDefinitions: temporal.api.sdk.v1.IWorkflowInteractionDefinition[];
40753
41160
 
@@ -43022,6 +43429,20 @@ export namespace temporal {
43022
43429
  /** Command commandType */
43023
43430
  commandType?: (temporal.api.enums.v1.CommandType|null);
43024
43431
 
43432
+ /**
43433
+ * Metadata on the command. This is sometimes carried over to the history event if one is
43434
+ * created as a result of the command. Most commands won't have this information, and how this
43435
+ * information is used is dependent upon the interface that reads it.
43436
+ *
43437
+ * Current well-known uses:
43438
+ * start_child_workflow_execution_command_attributes - populates
43439
+ * temporal.api.workflow.v1.WorkflowExecutionInfo.user_metadata where the summary and details
43440
+ * are used by user interfaces to show fixed as-of-start workflow summary and details.
43441
+ * start_timer_command_attributes - populates temporal.api.history.v1.HistoryEvent for timer
43442
+ * started where the summary is used to identify the timer.
43443
+ */
43444
+ userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
43445
+
43025
43446
  /** Command scheduleActivityTaskCommandAttributes */
43026
43447
  scheduleActivityTaskCommandAttributes?: (temporal.api.command.v1.IScheduleActivityTaskCommandAttributes|null);
43027
43448
 
@@ -43086,6 +43507,20 @@ export namespace temporal {
43086
43507
  /** Command commandType. */
43087
43508
  public commandType: temporal.api.enums.v1.CommandType;
43088
43509
 
43510
+ /**
43511
+ * Metadata on the command. This is sometimes carried over to the history event if one is
43512
+ * created as a result of the command. Most commands won't have this information, and how this
43513
+ * information is used is dependent upon the interface that reads it.
43514
+ *
43515
+ * Current well-known uses:
43516
+ * * start_child_workflow_execution_command_attributes - populates
43517
+ * temporal.api.workflow.v1.WorkflowExecutionInfo.user_metadata where the summary and details
43518
+ * are used by user interfaces to show fixed as-of-start workflow summary and details.
43519
+ * * start_timer_command_attributes - populates temporal.api.history.v1.HistoryEvent for timer
43520
+ * started where the summary is used to identify the timer.
43521
+ */
43522
+ public userMetadata?: (temporal.api.sdk.v1.IUserMetadata|null);
43523
+
43089
43524
  /** Command scheduleActivityTaskCommandAttributes. */
43090
43525
  public scheduleActivityTaskCommandAttributes?: (temporal.api.command.v1.IScheduleActivityTaskCommandAttributes|null);
43091
43526
 
@@ -43137,7 +43572,7 @@ export namespace temporal {
43137
43572
  /** Command requestCancelNexusOperationCommandAttributes. */
43138
43573
  public requestCancelNexusOperationCommandAttributes?: (temporal.api.command.v1.IRequestCancelNexusOperationCommandAttributes|null);
43139
43574
 
43140
- /** Command attributes. */
43575
+ /** The command details. The type must match that in `command_type`. */
43141
43576
  public attributes?: ("scheduleActivityTaskCommandAttributes"|"startTimerCommandAttributes"|"completeWorkflowExecutionCommandAttributes"|"failWorkflowExecutionCommandAttributes"|"requestCancelActivityTaskCommandAttributes"|"cancelTimerCommandAttributes"|"cancelWorkflowExecutionCommandAttributes"|"requestCancelExternalWorkflowExecutionCommandAttributes"|"recordMarkerCommandAttributes"|"continueAsNewWorkflowExecutionCommandAttributes"|"startChildWorkflowExecutionCommandAttributes"|"signalExternalWorkflowExecutionCommandAttributes"|"upsertWorkflowSearchAttributesCommandAttributes"|"protocolMessageCommandAttributes"|"modifyWorkflowPropertiesCommandAttributes"|"scheduleNexusOperationCommandAttributes"|"requestCancelNexusOperationCommandAttributes");
43142
43577
 
43143
43578
  /**
@@ -49501,11 +49936,8 @@ export namespace temporal {
49501
49936
  */
49502
49937
  name?: (string|null);
49503
49938
 
49504
- /**
49505
- * Markdown description serialized as a single JSON string.
49506
- * If the Payload is encrypted, the UI and CLI may decrypt with the configured codec server endpoint.
49507
- */
49508
- description?: (temporal.api.common.v1.IPayload|null);
49939
+ /** EndpointSpec metadata */
49940
+ metadata?: (temporal.api.sdk.v1.IUserMetadata|null);
49509
49941
 
49510
49942
  /** Target to route requests to. */
49511
49943
  target?: (temporal.api.nexus.v1.IEndpointTarget|null);
@@ -49526,11 +49958,8 @@ export namespace temporal {
49526
49958
  */
49527
49959
  public name: string;
49528
49960
 
49529
- /**
49530
- * Markdown description serialized as a single JSON string.
49531
- * If the Payload is encrypted, the UI and CLI may decrypt with the configured codec server endpoint.
49532
- */
49533
- public description?: (temporal.api.common.v1.IPayload|null);
49961
+ /** EndpointSpec metadata. */
49962
+ public metadata?: (temporal.api.sdk.v1.IUserMetadata|null);
49534
49963
 
49535
49964
  /** Target to route requests to. */
49536
49965
  public target?: (temporal.api.nexus.v1.IEndpointTarget|null);