@temporalio/core-bridge 1.12.2 → 1.12.3

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.
Files changed (57) hide show
  1. package/package.json +3 -3
  2. package/releases/aarch64-apple-darwin/index.node +0 -0
  3. package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
  4. package/releases/x86_64-apple-darwin/index.node +0 -0
  5. package/releases/x86_64-pc-windows-msvc/index.node +0 -0
  6. package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
  7. package/sdk-core/.cargo/config.toml +1 -1
  8. package/sdk-core/client/src/callback_based.rs +123 -0
  9. package/sdk-core/client/src/lib.rs +96 -28
  10. package/sdk-core/client/src/metrics.rs +33 -5
  11. package/sdk-core/client/src/raw.rs +40 -1
  12. package/sdk-core/client/src/retry.rs +12 -3
  13. package/sdk-core/core/src/lib.rs +4 -2
  14. package/sdk-core/core/src/pollers/poll_buffer.rs +62 -14
  15. package/sdk-core/core/src/worker/client.rs +9 -5
  16. package/sdk-core/core/src/worker/heartbeat.rs +3 -1
  17. package/sdk-core/core-api/src/worker.rs +2 -2
  18. package/sdk-core/core-c-bridge/Cargo.toml +2 -0
  19. package/sdk-core/core-c-bridge/include/temporal-sdk-core-c-bridge.h +105 -0
  20. package/sdk-core/core-c-bridge/src/client.rs +265 -8
  21. package/sdk-core/core-c-bridge/src/tests/context.rs +11 -0
  22. package/sdk-core/core-c-bridge/src/tests/mod.rs +179 -3
  23. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/CODEOWNERS +1 -1
  24. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/README.md +1 -1
  25. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/VERSION +1 -1
  26. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/buf.yaml +1 -0
  27. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/request_response.proto +83 -0
  28. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/service.proto +37 -0
  29. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/connectivityrule/v1/message.proto +64 -0
  30. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/identity/v1/message.proto +3 -1
  31. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/namespace/v1/message.proto +10 -0
  32. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/operation/v1/message.proto +1 -0
  33. package/sdk-core/sdk-core-protos/protos/api_upstream/openapi/openapiv2.json +644 -9
  34. package/sdk-core/sdk-core-protos/protos/api_upstream/openapi/openapiv3.yaml +635 -21
  35. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/batch/v1/message.proto +60 -2
  36. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/common/v1/message.proto +84 -15
  37. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +3 -0
  38. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +11 -0
  39. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/history/v1/message.proto +5 -0
  40. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +1 -1
  41. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/sdk/v1/worker_config.proto +36 -0
  42. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +29 -0
  43. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/worker/v1/message.proto +11 -1
  44. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +122 -4
  45. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +41 -0
  46. package/sdk-core/sdk-core-protos/src/lib.rs +5 -1
  47. package/sdk-core/test-utils/Cargo.toml +1 -0
  48. package/sdk-core/test-utils/src/lib.rs +90 -3
  49. package/sdk-core/tests/cloud_tests.rs +11 -74
  50. package/sdk-core/tests/integ_tests/client_tests.rs +14 -10
  51. package/sdk-core/tests/integ_tests/worker_tests.rs +8 -2
  52. package/sdk-core/tests/integ_tests/workflow_tests/activities.rs +13 -0
  53. package/sdk-core/tests/integ_tests/workflow_tests/priority.rs +2 -108
  54. package/sdk-core/tests/main.rs +3 -0
  55. package/sdk-core/tests/shared_tests/mod.rs +43 -0
  56. package/sdk-core/tests/shared_tests/priority.rs +155 -0
  57. package/src/client.rs +5 -0
@@ -1300,6 +1300,47 @@ paths:
1300
1300
  application/json:
1301
1301
  schema:
1302
1302
  $ref: '#/components/schemas/Status'
1303
+ /api/v1/namespaces/{namespace}/task-queues/{taskQueue}/update-config:
1304
+ post:
1305
+ tags:
1306
+ - WorkflowService
1307
+ description: |-
1308
+ Updates task queue configuration.
1309
+ For the overall queue rate limit: the rate limit set by this api overrides the worker-set rate limit,
1310
+ which uncouples the rate limit from the worker lifecycle.
1311
+ If the overall queue rate limit is unset, the worker-set rate limit takes effect.
1312
+ operationId: UpdateTaskQueueConfig
1313
+ parameters:
1314
+ - name: namespace
1315
+ in: path
1316
+ required: true
1317
+ schema:
1318
+ type: string
1319
+ - name: taskQueue
1320
+ in: path
1321
+ description: Selects the task queue to update.
1322
+ required: true
1323
+ schema:
1324
+ type: string
1325
+ requestBody:
1326
+ content:
1327
+ application/json:
1328
+ schema:
1329
+ $ref: '#/components/schemas/UpdateTaskQueueConfigRequest'
1330
+ required: true
1331
+ responses:
1332
+ "200":
1333
+ description: OK
1334
+ content:
1335
+ application/json:
1336
+ schema:
1337
+ $ref: '#/components/schemas/UpdateTaskQueueConfigResponse'
1338
+ default:
1339
+ description: Default error response
1340
+ content:
1341
+ application/json:
1342
+ schema:
1343
+ $ref: '#/components/schemas/Status'
1303
1344
  /api/v1/namespaces/{namespace}/task-queues/{taskQueue}/worker-build-id-compatibility:
1304
1345
  get:
1305
1346
  tags:
@@ -1433,6 +1474,11 @@ paths:
1433
1474
  description: Report stats for the requested task queue type(s).
1434
1475
  schema:
1435
1476
  type: boolean
1477
+ - name: reportConfig
1478
+ in: query
1479
+ description: Report Task Queue Config
1480
+ schema:
1481
+ type: boolean
1436
1482
  - name: includeTaskQueueStatus
1437
1483
  in: query
1438
1484
  description: |-
@@ -2041,6 +2087,38 @@ paths:
2041
2087
  application/json:
2042
2088
  schema:
2043
2089
  $ref: '#/components/schemas/Status'
2090
+ /api/v1/namespaces/{namespace}/workers/fetch-config:
2091
+ post:
2092
+ tags:
2093
+ - WorkflowService
2094
+ description: FetchWorkerConfig returns the worker configuration for a specific worker.
2095
+ operationId: FetchWorkerConfig
2096
+ parameters:
2097
+ - name: namespace
2098
+ in: path
2099
+ description: Namespace this worker belongs to.
2100
+ required: true
2101
+ schema:
2102
+ type: string
2103
+ requestBody:
2104
+ content:
2105
+ application/json:
2106
+ schema:
2107
+ $ref: '#/components/schemas/FetchWorkerConfigRequest'
2108
+ required: true
2109
+ responses:
2110
+ "200":
2111
+ description: OK
2112
+ content:
2113
+ application/json:
2114
+ schema:
2115
+ $ref: '#/components/schemas/FetchWorkerConfigResponse'
2116
+ default:
2117
+ description: Default error response
2118
+ content:
2119
+ application/json:
2120
+ schema:
2121
+ $ref: '#/components/schemas/Status'
2044
2122
  /api/v1/namespaces/{namespace}/workers/heartbeat:
2045
2123
  post:
2046
2124
  tags:
@@ -2073,6 +2151,41 @@ paths:
2073
2151
  application/json:
2074
2152
  schema:
2075
2153
  $ref: '#/components/schemas/Status'
2154
+ /api/v1/namespaces/{namespace}/workers/update-config:
2155
+ post:
2156
+ tags:
2157
+ - WorkflowService
2158
+ description: |-
2159
+ UpdateWorkerConfig updates the worker configuration of one or more workers.
2160
+ Can be used to partially update the worker configuration.
2161
+ Can be used to update the configuration of multiple workers.
2162
+ operationId: UpdateWorkerConfig
2163
+ parameters:
2164
+ - name: namespace
2165
+ in: path
2166
+ description: Namespace this worker belongs to.
2167
+ required: true
2168
+ schema:
2169
+ type: string
2170
+ requestBody:
2171
+ content:
2172
+ application/json:
2173
+ schema:
2174
+ $ref: '#/components/schemas/UpdateWorkerConfigRequest'
2175
+ required: true
2176
+ responses:
2177
+ "200":
2178
+ description: OK
2179
+ content:
2180
+ application/json:
2181
+ schema:
2182
+ $ref: '#/components/schemas/UpdateWorkerConfigResponse'
2183
+ default:
2184
+ description: Default error response
2185
+ content:
2186
+ application/json:
2187
+ schema:
2188
+ $ref: '#/components/schemas/Status'
2076
2189
  /api/v1/namespaces/{namespace}/workflow-count:
2077
2190
  get:
2078
2191
  tags:
@@ -4571,6 +4684,47 @@ paths:
4571
4684
  application/json:
4572
4685
  schema:
4573
4686
  $ref: '#/components/schemas/Status'
4687
+ /namespaces/{namespace}/task-queues/{taskQueue}/update-config:
4688
+ post:
4689
+ tags:
4690
+ - WorkflowService
4691
+ description: |-
4692
+ Updates task queue configuration.
4693
+ For the overall queue rate limit: the rate limit set by this api overrides the worker-set rate limit,
4694
+ which uncouples the rate limit from the worker lifecycle.
4695
+ If the overall queue rate limit is unset, the worker-set rate limit takes effect.
4696
+ operationId: UpdateTaskQueueConfig
4697
+ parameters:
4698
+ - name: namespace
4699
+ in: path
4700
+ required: true
4701
+ schema:
4702
+ type: string
4703
+ - name: taskQueue
4704
+ in: path
4705
+ description: Selects the task queue to update.
4706
+ required: true
4707
+ schema:
4708
+ type: string
4709
+ requestBody:
4710
+ content:
4711
+ application/json:
4712
+ schema:
4713
+ $ref: '#/components/schemas/UpdateTaskQueueConfigRequest'
4714
+ required: true
4715
+ responses:
4716
+ "200":
4717
+ description: OK
4718
+ content:
4719
+ application/json:
4720
+ schema:
4721
+ $ref: '#/components/schemas/UpdateTaskQueueConfigResponse'
4722
+ default:
4723
+ description: Default error response
4724
+ content:
4725
+ application/json:
4726
+ schema:
4727
+ $ref: '#/components/schemas/Status'
4574
4728
  /namespaces/{namespace}/task-queues/{taskQueue}/worker-build-id-compatibility:
4575
4729
  get:
4576
4730
  tags:
@@ -4704,6 +4858,11 @@ paths:
4704
4858
  description: Report stats for the requested task queue type(s).
4705
4859
  schema:
4706
4860
  type: boolean
4861
+ - name: reportConfig
4862
+ in: query
4863
+ description: Report Task Queue Config
4864
+ schema:
4865
+ type: boolean
4707
4866
  - name: includeTaskQueueStatus
4708
4867
  in: query
4709
4868
  description: |-
@@ -5279,6 +5438,38 @@ paths:
5279
5438
  application/json:
5280
5439
  schema:
5281
5440
  $ref: '#/components/schemas/Status'
5441
+ /namespaces/{namespace}/workers/fetch-config:
5442
+ post:
5443
+ tags:
5444
+ - WorkflowService
5445
+ description: FetchWorkerConfig returns the worker configuration for a specific worker.
5446
+ operationId: FetchWorkerConfig
5447
+ parameters:
5448
+ - name: namespace
5449
+ in: path
5450
+ description: Namespace this worker belongs to.
5451
+ required: true
5452
+ schema:
5453
+ type: string
5454
+ requestBody:
5455
+ content:
5456
+ application/json:
5457
+ schema:
5458
+ $ref: '#/components/schemas/FetchWorkerConfigRequest'
5459
+ required: true
5460
+ responses:
5461
+ "200":
5462
+ description: OK
5463
+ content:
5464
+ application/json:
5465
+ schema:
5466
+ $ref: '#/components/schemas/FetchWorkerConfigResponse'
5467
+ default:
5468
+ description: Default error response
5469
+ content:
5470
+ application/json:
5471
+ schema:
5472
+ $ref: '#/components/schemas/Status'
5282
5473
  /namespaces/{namespace}/workers/heartbeat:
5283
5474
  post:
5284
5475
  tags:
@@ -5311,6 +5502,41 @@ paths:
5311
5502
  application/json:
5312
5503
  schema:
5313
5504
  $ref: '#/components/schemas/Status'
5505
+ /namespaces/{namespace}/workers/update-config:
5506
+ post:
5507
+ tags:
5508
+ - WorkflowService
5509
+ description: |-
5510
+ UpdateWorkerConfig updates the worker configuration of one or more workers.
5511
+ Can be used to partially update the worker configuration.
5512
+ Can be used to update the configuration of multiple workers.
5513
+ operationId: UpdateWorkerConfig
5514
+ parameters:
5515
+ - name: namespace
5516
+ in: path
5517
+ description: Namespace this worker belongs to.
5518
+ required: true
5519
+ schema:
5520
+ type: string
5521
+ requestBody:
5522
+ content:
5523
+ application/json:
5524
+ schema:
5525
+ $ref: '#/components/schemas/UpdateWorkerConfigRequest'
5526
+ required: true
5527
+ responses:
5528
+ "200":
5529
+ description: OK
5530
+ content:
5531
+ application/json:
5532
+ schema:
5533
+ $ref: '#/components/schemas/UpdateWorkerConfigResponse'
5534
+ default:
5535
+ description: Default error response
5536
+ content:
5537
+ application/json:
5538
+ schema:
5539
+ $ref: '#/components/schemas/Status'
5314
5540
  /namespaces/{namespace}/workflow-count:
5315
5541
  get:
5316
5542
  tags:
@@ -6623,6 +6849,40 @@ components:
6623
6849
  description: |-
6624
6850
  BatchOperationReset sends reset requests to batch workflows.
6625
6851
  Keep the parameter in sync with temporal.api.workflowservice.v1.ResetWorkflowExecutionRequest.
6852
+ BatchOperationResetActivities:
6853
+ type: object
6854
+ properties:
6855
+ identity:
6856
+ type: string
6857
+ description: The identity of the worker/client.
6858
+ type:
6859
+ type: string
6860
+ matchAll:
6861
+ type: boolean
6862
+ resetAttempts:
6863
+ type: boolean
6864
+ description: Setting this flag will also reset the number of attempts.
6865
+ resetHeartbeat:
6866
+ type: boolean
6867
+ description: Setting this flag will also reset the heartbeat details.
6868
+ keepPaused:
6869
+ type: boolean
6870
+ description: If activity is paused, it will remain paused after reset
6871
+ jitter:
6872
+ pattern: ^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$
6873
+ type: string
6874
+ description: |-
6875
+ If set, the activity will start at a random time within the specified jitter
6876
+ duration, introducing variability to the start time.
6877
+ restoreOriginalOptions:
6878
+ type: boolean
6879
+ description: |-
6880
+ If set, the activity options will be restored to the defaults.
6881
+ Default options are then options activity was created with.
6882
+ They are part of the first ActivityTaskScheduled event.
6883
+ description: |-
6884
+ BatchOperationResetActivities sends activity reset requests in a batch.
6885
+ NOTE: keep in sync with temporal.api.workflowservice.v1.ResetActivityRequest
6626
6886
  BatchOperationSignal:
6627
6887
  type: object
6628
6888
  properties:
@@ -6671,10 +6931,10 @@ components:
6671
6931
  type: boolean
6672
6932
  resetAttempts:
6673
6933
  type: boolean
6674
- description: Providing this flag will also reset the number of attempts.
6934
+ description: Setting this flag will also reset the number of attempts.
6675
6935
  resetHeartbeat:
6676
6936
  type: boolean
6677
- description: Providing this flag will also reset the heartbeat details.
6937
+ description: Setting this flag will also reset the heartbeat details.
6678
6938
  jitter:
6679
6939
  pattern: ^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$
6680
6940
  type: string
@@ -6682,6 +6942,35 @@ components:
6682
6942
  If set, the activity will start at a random time within the specified jitter
6683
6943
  duration, introducing variability to the start time.
6684
6944
  description: BatchOperationUnpauseActivities sends unpause requests to batch workflows.
6945
+ BatchOperationUpdateActivityOptions:
6946
+ type: object
6947
+ properties:
6948
+ identity:
6949
+ type: string
6950
+ description: The identity of the worker/client.
6951
+ type:
6952
+ type: string
6953
+ matchAll:
6954
+ type: boolean
6955
+ activityOptions:
6956
+ allOf:
6957
+ - $ref: '#/components/schemas/ActivityOptions'
6958
+ description: Update Activity options. Partial updates are accepted and controlled by update_mask.
6959
+ updateMask:
6960
+ type: string
6961
+ description: Controls which fields from `activity_options` will be applied
6962
+ format: field-mask
6963
+ restoreOriginal:
6964
+ type: boolean
6965
+ description: |-
6966
+ If set, the activity options will be restored to the default.
6967
+ Default options are then options activity was created with.
6968
+ They are part of the first ActivityTaskScheduled event.
6969
+ This flag cannot be combined with any other option; if you supply
6970
+ restore_original together with other options, the request will be rejected.
6971
+ description: |-
6972
+ BatchOperationUpdateActivityOptions sends an update-activity-options requests in a batch.
6973
+ NOTE: keep in sync with temporal.api.workflowservice.v1.UpdateActivityRequest
6685
6974
  BatchOperationUpdateWorkflowExecutionOptions:
6686
6975
  type: object
6687
6976
  properties:
@@ -7135,6 +7424,21 @@ components:
7135
7424
  description: |-
7136
7425
  Used by the worker versioning APIs, represents an unordered set of one or more versions which are
7137
7426
  considered to be compatible with each other. Currently the versions are always worker build IDs.
7427
+ ConfigMetadata:
7428
+ type: object
7429
+ properties:
7430
+ reason:
7431
+ type: string
7432
+ description: Reason for why the config was set.
7433
+ updateIdentity:
7434
+ type: string
7435
+ description: |-
7436
+ Identity of the last updater.
7437
+ Set by the request's identity field.
7438
+ updateTime:
7439
+ type: string
7440
+ description: Time of the last update.
7441
+ format: date-time
7138
7442
  CountWorkflowExecutionsResponse:
7139
7443
  type: object
7140
7444
  properties:
@@ -7396,6 +7700,9 @@ components:
7396
7700
  - BATCH_OPERATION_TYPE_DELETE
7397
7701
  - BATCH_OPERATION_TYPE_RESET
7398
7702
  - BATCH_OPERATION_TYPE_UPDATE_EXECUTION_OPTIONS
7703
+ - BATCH_OPERATION_TYPE_UNPAUSE_ACTIVITY
7704
+ - BATCH_OPERATION_TYPE_UPDATE_ACTIVITY_OPTIONS
7705
+ - BATCH_OPERATION_TYPE_RESET_ACTIVITY
7399
7706
  type: string
7400
7707
  description: Batch operation type
7401
7708
  format: enum
@@ -7501,7 +7808,18 @@ components:
7501
7808
  stats:
7502
7809
  allOf:
7503
7810
  - $ref: '#/components/schemas/TaskQueueStats'
7504
- description: Statistics for the task queue. Only populated when `report_stats` is set to true in the request.
7811
+ description: |-
7812
+ Statistics for the task queue.
7813
+ Only set if `report_stats` is set on the request.
7814
+ statsByPriorityKey:
7815
+ type: object
7816
+ additionalProperties:
7817
+ $ref: '#/components/schemas/TaskQueueStats'
7818
+ description: |-
7819
+ Task queue stats breakdown by priority key. Only contains actively used priority keys.
7820
+ Only set if `report_stats` is set on the request.
7821
+ (-- api-linter: core::0140::prepositions=disabled
7822
+ aip.dev/not-precedent: "by" is used to clarify the keys and values. --)
7505
7823
  versioningInfo:
7506
7824
  allOf:
7507
7825
  - $ref: '#/components/schemas/TaskQueueVersioningInfo'
@@ -7515,6 +7833,12 @@ components:
7515
7833
  they are always routed to their Pinned Deployment Version. However, new workflow executions
7516
7834
  are typically not Pinned until they complete their first task (unless they are started with
7517
7835
  a Pinned VersioningOverride or are Child Workflows of a Pinned parent).
7836
+ config:
7837
+ allOf:
7838
+ - $ref: '#/components/schemas/TaskQueueConfig'
7839
+ description: Only populated if report_task_queue_config is set to true.
7840
+ effectiveRateLimit:
7841
+ $ref: '#/components/schemas/DescribeTaskQueueResponse_EffectiveRateLimit'
7518
7842
  taskQueueStatus:
7519
7843
  allOf:
7520
7844
  - $ref: '#/components/schemas/TaskQueueStatus'
@@ -7529,6 +7853,26 @@ components:
7529
7853
  Deprecated.
7530
7854
  Only returned in ENHANCED mode.
7531
7855
  This map contains Task Queue information for each Build ID. Empty string as key value means unversioned.
7856
+ DescribeTaskQueueResponse_EffectiveRateLimit:
7857
+ type: object
7858
+ properties:
7859
+ requestsPerSecond:
7860
+ type: number
7861
+ description: The effective rate limit for the task queue.
7862
+ format: float
7863
+ rateLimitSource:
7864
+ enum:
7865
+ - RATE_LIMIT_SOURCE_UNSPECIFIED
7866
+ - RATE_LIMIT_SOURCE_API
7867
+ - RATE_LIMIT_SOURCE_WORKER
7868
+ - RATE_LIMIT_SOURCE_SYSTEM
7869
+ type: string
7870
+ description: |-
7871
+ Source of the RateLimit Configuration,which can be one of the following values:
7872
+ - SOURCE_API: The rate limit that is set via the TaskQueueConfig api.
7873
+ - SOURCE_WORKER: The rate limit is the value set using the workerOptions in TaskQueueActivitiesPerSecond.
7874
+ - SOURCE_SYSTEM: The rate limit is the default value set by the system
7875
+ format: enum
7532
7876
  DescribeWorkerDeploymentResponse:
7533
7877
  type: object
7534
7878
  properties:
@@ -7568,6 +7912,15 @@ components:
7568
7912
  allOf:
7569
7913
  - $ref: '#/components/schemas/TaskQueueStats'
7570
7914
  description: Only set if `report_task_queue_stats` is set on the request.
7915
+ statsByPriorityKey:
7916
+ type: object
7917
+ additionalProperties:
7918
+ $ref: '#/components/schemas/TaskQueueStats'
7919
+ description: |-
7920
+ Task queue stats breakdown by priority key. Only contains actively used priority keys.
7921
+ Only set if `report_task_queue_stats` is set to true in the request.
7922
+ (-- api-linter: core::0140::prepositions=disabled
7923
+ aip.dev/not-precedent: "by" is used to clarify the key. --)
7571
7924
  DescribeWorkflowExecutionResponse:
7572
7925
  type: object
7573
7926
  properties:
@@ -7839,6 +8192,31 @@ components:
7839
8192
  $ref: '#/components/schemas/NexusOperationFailureInfo'
7840
8193
  nexusHandlerFailureInfo:
7841
8194
  $ref: '#/components/schemas/NexusHandlerFailureInfo'
8195
+ FetchWorkerConfigRequest:
8196
+ type: object
8197
+ properties:
8198
+ namespace:
8199
+ type: string
8200
+ description: Namespace this worker belongs to.
8201
+ identity:
8202
+ type: string
8203
+ description: The identity of the client who initiated this request.
8204
+ reason:
8205
+ type: string
8206
+ description: Reason for sending worker command, can be used for audit purpose.
8207
+ selector:
8208
+ allOf:
8209
+ - $ref: '#/components/schemas/WorkerSelector'
8210
+ description: |-
8211
+ Defines which workers should receive this command.
8212
+ only single worker is supported at this time.
8213
+ FetchWorkerConfigResponse:
8214
+ type: object
8215
+ properties:
8216
+ workerConfig:
8217
+ allOf:
8218
+ - $ref: '#/components/schemas/WorkerConfig'
8219
+ description: The worker configuration.
7842
8220
  GetClusterInfoResponse:
7843
8221
  type: object
7844
8222
  properties:
@@ -9362,6 +9740,15 @@ components:
9362
9740
  attempt:
9363
9741
  type: integer
9364
9742
  format: int32
9743
+ PluginInfo:
9744
+ type: object
9745
+ properties:
9746
+ name:
9747
+ type: string
9748
+ description: The name of the plugin, required.
9749
+ version:
9750
+ type: string
9751
+ description: The version of the plugin, may be empty.
9365
9752
  PollWorkflowTaskQueueResponse:
9366
9753
  type: object
9367
9754
  properties:
@@ -9551,29 +9938,82 @@ components:
9551
9938
  The maximum priority value (minimum priority) is determined by server
9552
9939
  configuration, and defaults to 5.
9553
9940
 
9554
- The default priority is (min+max)/2. With the default max of 5 and min of
9555
- 1, that comes out to 3.
9941
+ If priority is not present (or zero), then the effective priority will be
9942
+ the default priority, which is is calculated by (min+max)/2. With the
9943
+ default max of 5, and min of 1, that comes out to 3.
9556
9944
  format: int32
9945
+ fairnessKey:
9946
+ type: string
9947
+ description: |-
9948
+ Fairness key is a short string that's used as a key for a fairness
9949
+ balancing mechanism. It may correspond to a tenant id, or to a fixed
9950
+ string like "high" or "low". The default is the empty string.
9951
+
9952
+ The fairness mechanism attempts to dispatch tasks for a given key in
9953
+ proportion to its weight. For example, using a thousand distinct tenant
9954
+ ids, each with a weight of 1.0 (the default) will result in each tenant
9955
+ getting a roughly equal share of task dispatch throughput.
9956
+
9957
+ (Note: this does not imply equal share of worker capacity! Fairness
9958
+ decisions are made based on queue statistics, not
9959
+ current worker load.)
9960
+
9961
+ As another example, using keys "high" and "low" with weight 9.0 and 1.0
9962
+ respectively will prefer dispatching "high" tasks over "low" tasks at a
9963
+ 9:1 ratio, while allowing either key to use all worker capacity if the
9964
+ other is not present.
9965
+
9966
+ All fairness mechanisms, including rate limits, are best-effort and
9967
+ probabilistic. The results may not match what a "perfect" algorithm with
9968
+ infinite resources would produce. The more unique keys are used, the less
9969
+ accurate the results will be.
9970
+
9971
+ Fairness keys are limited to 64 bytes.
9972
+ fairnessWeight:
9973
+ type: number
9974
+ description: |-
9975
+ Fairness weight for a task can come from multiple sources for
9976
+ flexibility. From highest to lowest precedence:
9977
+ 1. Weights for a small set of keys can be overridden in task queue
9978
+ configuration with an API.
9979
+ 2. It can be attached to the workflow/activity in this field.
9980
+ 3. The default weight of 1.0 will be used.
9981
+
9982
+ Weight values are clamped to the range [0.001, 1000].
9983
+ format: float
9557
9984
  description: |-
9558
9985
  Priority contains metadata that controls relative ordering of task processing
9559
- when tasks are backlogged in a queue. Initially, Priority will be used in
9560
- activity and workflow task queues, which are typically where backlogs exist.
9561
- Other queues in the server (such as transfer and timer queues) and rate
9562
- limiting decisions do not use Priority, but may in the future.
9563
-
9564
- Priority is attached to workflows and activities. Activities and child
9565
- workflows inherit Priority from the workflow that created them, but may
9566
- override fields when they are started or modified. For each field of a
9567
- Priority on an activity/workflow, not present or equal to zero/empty string
9568
- means to inherit the value from the calling workflow, or if there is no
9569
- calling workflow, then use the default (documented below).
9570
-
9571
- Despite being named "Priority", this message will also contains fields that
9986
+ when tasks are backed up in a queue. Initially, Priority will be used in
9987
+ matching (workflow and activity) task queues. Later it may be used in history
9988
+ task queues and in rate limiting decisions.
9989
+
9990
+ Priority is attached to workflows and activities. By default, activities
9991
+ inherit Priority from the workflow that created them, but may override fields
9992
+ when an activity is started or modified.
9993
+
9994
+ Despite being named "Priority", this message also contains fields that
9572
9995
  control "fairness" mechanisms.
9573
9996
 
9997
+ For all fields, the field not present or equal to zero/empty string means to
9998
+ inherit the value from the calling workflow, or if there is no calling
9999
+ workflow, then use the default value.
10000
+
10001
+ For all fields other than fairness_key, the zero value isn't meaningful so
10002
+ there's no confusion between inherit/default and a meaningful value. For
10003
+ fairness_key, the empty string will be interpreted as "inherit". This means
10004
+ that if a workflow has a non-empty fairness key, you can't override the
10005
+ fairness key of its activity to the empty string.
10006
+
9574
10007
  The overall semantics of Priority are:
9575
- 1. First, consider "priority_key": lower number goes first.
9576
- (more will be added here later)
10008
+ 1. First, consider "priority": higher priority (lower number) goes first.
10009
+ 2. Then, consider fairness: try to dispatch tasks for different fairness keys
10010
+ in proportion to their weight.
10011
+
10012
+ Applications may use any subset of mechanisms that are useful to them and
10013
+ leave the other fields to use default values.
10014
+
10015
+ Not all queues in the system may support the "full" semantics of all priority
10016
+ fields. (Currently only support in matching task queues is planned.)
9577
10017
  QueryRejected:
9578
10018
  type: object
9579
10019
  properties:
@@ -9643,6 +10083,20 @@ components:
9643
10083
  time in StructuredCalendarSpec. If end < start, then end is interpreted as
9644
10084
  equal to start. This means you can use a Range with start set to a value, and
9645
10085
  end and step unset (defaulting to 0) to represent a single value.
10086
+ RateLimit:
10087
+ type: object
10088
+ properties:
10089
+ requestsPerSecond:
10090
+ type: number
10091
+ description: Zero is a valid rate limit.
10092
+ format: float
10093
+ RateLimitConfig:
10094
+ type: object
10095
+ properties:
10096
+ rateLimit:
10097
+ $ref: '#/components/schemas/RateLimit'
10098
+ metadata:
10099
+ $ref: '#/components/schemas/ConfigMetadata'
9646
10100
  RecordActivityTaskHeartbeatByIdRequest:
9647
10101
  type: object
9648
10102
  properties:
@@ -9981,6 +10435,9 @@ components:
9981
10435
  type:
9982
10436
  type: string
9983
10437
  description: Reset all running activities with of this type.
10438
+ matchAll:
10439
+ type: boolean
10440
+ description: Reset all running activities.
9984
10441
  resetHeartbeat:
9985
10442
  type: boolean
9986
10443
  description: |-
@@ -9988,7 +10445,7 @@ components:
9988
10445
  This flag will be applied only to the new instance of the activity.
9989
10446
  keepPaused:
9990
10447
  type: boolean
9991
- description: if activity is paused, it will remain paused after reset
10448
+ description: If activity is paused, it will remain paused after reset
9992
10449
  jitter:
9993
10450
  pattern: ^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$
9994
10451
  type: string
@@ -10001,6 +10458,7 @@ components:
10001
10458
  If set, the activity options will be restored to the defaults.
10002
10459
  Default options are then options activity was created with.
10003
10460
  They are part of the first SCHEDULE event.
10461
+ description: 'NOTE: keep in sync with temporal.api.batch.v1.BatchOperationResetActivities'
10004
10462
  ResetActivityResponse:
10005
10463
  type: object
10006
10464
  properties: {}
@@ -11254,6 +11712,10 @@ components:
11254
11712
  $ref: '#/components/schemas/BatchOperationUpdateWorkflowExecutionOptions'
11255
11713
  unpauseActivitiesOperation:
11256
11714
  $ref: '#/components/schemas/BatchOperationUnpauseActivities'
11715
+ resetActivitiesOperation:
11716
+ $ref: '#/components/schemas/BatchOperationResetActivities'
11717
+ updateActivityOptionsOperation:
11718
+ $ref: '#/components/schemas/BatchOperationUpdateActivityOptions'
11257
11719
  StartBatchOperationResponse:
11258
11720
  type: object
11259
11721
  properties: {}
@@ -11647,6 +12109,17 @@ components:
11647
12109
  Iff kind == TASK_QUEUE_KIND_STICKY, then this field contains the name of
11648
12110
  the normal task queue that the sticky worker is running on.
11649
12111
  description: See https://docs.temporal.io/docs/concepts/task-queues/
12112
+ TaskQueueConfig:
12113
+ type: object
12114
+ properties:
12115
+ queueRateLimit:
12116
+ allOf:
12117
+ - $ref: '#/components/schemas/RateLimitConfig'
12118
+ description: Unless modified, this is the system-defined rate limit.
12119
+ fairnessKeysRateLimitDefault:
12120
+ allOf:
12121
+ - $ref: '#/components/schemas/RateLimitConfig'
12122
+ description: If set, each individual fairness key will be limited to this rate, scaled by the weight of the fairness key.
11650
12123
  TaskQueueReachability:
11651
12124
  type: object
11652
12125
  properties:
@@ -12033,6 +12506,9 @@ components:
12033
12506
  type:
12034
12507
  type: string
12035
12508
  description: Update all running activities of this type.
12509
+ matchAll:
12510
+ type: boolean
12511
+ description: Update all running activities.
12036
12512
  restoreOriginal:
12037
12513
  type: boolean
12038
12514
  description: |-
@@ -12041,6 +12517,7 @@ components:
12041
12517
  They are part of the first SCHEDULE event.
12042
12518
  This flag cannot be combined with any other option; if you supply
12043
12519
  restore_original together with other options, the request will be rejected.
12520
+ description: 'NOTE: keep in sync with temporal.api.batch.v1.BatchOperationUpdateActivityOptions'
12044
12521
  UpdateActivityOptionsResponse:
12045
12522
  type: object
12046
12523
  properties:
@@ -12187,6 +12664,87 @@ components:
12187
12664
  UpdateScheduleResponse:
12188
12665
  type: object
12189
12666
  properties: {}
12667
+ UpdateTaskQueueConfigRequest:
12668
+ type: object
12669
+ properties:
12670
+ namespace:
12671
+ type: string
12672
+ identity:
12673
+ type: string
12674
+ taskQueue:
12675
+ type: string
12676
+ description: Selects the task queue to update.
12677
+ taskQueueType:
12678
+ enum:
12679
+ - TASK_QUEUE_TYPE_UNSPECIFIED
12680
+ - TASK_QUEUE_TYPE_WORKFLOW
12681
+ - TASK_QUEUE_TYPE_ACTIVITY
12682
+ - TASK_QUEUE_TYPE_NEXUS
12683
+ type: string
12684
+ format: enum
12685
+ updateQueueRateLimit:
12686
+ allOf:
12687
+ - $ref: '#/components/schemas/UpdateTaskQueueConfigRequest_RateLimitUpdate'
12688
+ description: |-
12689
+ Update to queue-wide rate limit.
12690
+ If not set, this configuration is unchanged.
12691
+ NOTE: A limit set by the worker is overriden; and restored again when reset.
12692
+ If the `rate_limit` field in the `RateLimitUpdate` is missing, remove the existing rate limit.
12693
+ updateFairnessKeyRateLimitDefault:
12694
+ allOf:
12695
+ - $ref: '#/components/schemas/UpdateTaskQueueConfigRequest_RateLimitUpdate'
12696
+ description: |-
12697
+ Update to the default fairness key rate limit.
12698
+ If not set, this configuration is unchanged.
12699
+ If the `rate_limit` field in the `RateLimitUpdate` is missing, remove the existing rate limit.
12700
+ UpdateTaskQueueConfigRequest_RateLimitUpdate:
12701
+ type: object
12702
+ properties:
12703
+ rateLimit:
12704
+ allOf:
12705
+ - $ref: '#/components/schemas/RateLimit'
12706
+ description: Rate Limit to be updated
12707
+ reason:
12708
+ type: string
12709
+ description: Reason for why the rate limit was set.
12710
+ UpdateTaskQueueConfigResponse:
12711
+ type: object
12712
+ properties:
12713
+ config:
12714
+ $ref: '#/components/schemas/TaskQueueConfig'
12715
+ UpdateWorkerConfigRequest:
12716
+ type: object
12717
+ properties:
12718
+ namespace:
12719
+ type: string
12720
+ description: Namespace this worker belongs to.
12721
+ identity:
12722
+ type: string
12723
+ description: The identity of the client who initiated this request.
12724
+ reason:
12725
+ type: string
12726
+ description: Reason for sending worker command, can be used for audit purpose.
12727
+ workerConfig:
12728
+ allOf:
12729
+ - $ref: '#/components/schemas/WorkerConfig'
12730
+ description: |-
12731
+ Partial updates are accepted and controlled by update_mask.
12732
+ The worker configuration to set.
12733
+ updateMask:
12734
+ type: string
12735
+ description: Controls which fields from `worker_config` will be applied
12736
+ format: field-mask
12737
+ selector:
12738
+ allOf:
12739
+ - $ref: '#/components/schemas/WorkerSelector'
12740
+ description: Defines which workers should receive this command.
12741
+ UpdateWorkerConfigResponse:
12742
+ type: object
12743
+ properties:
12744
+ workerConfig:
12745
+ allOf:
12746
+ - $ref: '#/components/schemas/WorkerConfig'
12747
+ description: The worker configuration. Will be returned if the command was sent to a single worker.
12190
12748
  UpdateWorkerDeploymentVersionMetadataRequest:
12191
12749
  type: object
12192
12750
  properties:
@@ -12478,6 +13036,41 @@ components:
12478
13036
  user specified timeout, API call returns even if specified stage is not reached.
12479
13037
  format: enum
12480
13038
  description: Specifies client's intent to wait for Update results.
13039
+ WorkerConfig:
13040
+ type: object
13041
+ properties:
13042
+ workflowCacheSize:
13043
+ type: integer
13044
+ format: int32
13045
+ simplePollerBehavior:
13046
+ $ref: '#/components/schemas/WorkerConfig_SimplePollerBehavior'
13047
+ autoscalingPollerBehavior:
13048
+ $ref: '#/components/schemas/WorkerConfig_AutoscalingPollerBehavior'
13049
+ WorkerConfig_AutoscalingPollerBehavior:
13050
+ type: object
13051
+ properties:
13052
+ minPollers:
13053
+ type: integer
13054
+ description: |-
13055
+ At least this many poll calls will always be attempted (assuming slots are available).
13056
+ Cannot be zero.
13057
+ format: int32
13058
+ maxPollers:
13059
+ type: integer
13060
+ description: At most this many poll calls will ever be open at once. Must be >= `minimum`.
13061
+ format: int32
13062
+ initialPollers:
13063
+ type: integer
13064
+ description: |-
13065
+ This many polls will be attempted initially before scaling kicks in. Must be between
13066
+ `minimum` and `maximum`.
13067
+ format: int32
13068
+ WorkerConfig_SimplePollerBehavior:
13069
+ type: object
13070
+ properties:
13071
+ maxPollers:
13072
+ type: integer
13073
+ format: int32
12481
13074
  WorkerDeploymentInfo:
12482
13075
  type: object
12483
13076
  properties:
@@ -12788,6 +13381,11 @@ components:
12788
13381
  type: integer
12789
13382
  description: Current cache size, expressed in number of Workflow Executions.
12790
13383
  format: int32
13384
+ plugins:
13385
+ type: array
13386
+ items:
13387
+ $ref: '#/components/schemas/PluginInfo'
13388
+ description: Plugins currently in use by this SDK.
12791
13389
  description: |-
12792
13390
  Worker info message, contains information about the worker and its current state.
12793
13391
  All information is provided by the worker itself.
@@ -12843,6 +13441,16 @@ components:
12843
13441
  isAutoscaling:
12844
13442
  type: boolean
12845
13443
  description: Set true if the number of concurrent pollers is auto-scaled
13444
+ WorkerSelector:
13445
+ type: object
13446
+ properties:
13447
+ workerInstanceKey:
13448
+ type: string
13449
+ description: Worker instance key to which the command should be sent.
13450
+ description: |-
13451
+ This is used to send commands to a specific worker or a group of workers.
13452
+ Right now, it is used to send commands to a specific worker instance.
13453
+ Will be extended to be able to send command to multiple workers.
12846
13454
  WorkerSlotsInfo:
12847
13455
  type: object
12848
13456
  properties:
@@ -13610,6 +14218,12 @@ components:
13610
14218
 
13611
14219
  Pinned override is inherited if Task Queue of new run is compatible with the override version.
13612
14220
  Override is inherited separately and takes precedence over inherited base version.
14221
+ eagerExecutionAccepted:
14222
+ type: boolean
14223
+ description: |-
14224
+ A boolean indicating whether the SDK has asked to eagerly execute the first workflow task for this workflow and
14225
+ eager execution was accepted by the server.
14226
+ Only populated by server with version >= 1.29.0.
13613
14227
  description: Always the first event in workflow history
13614
14228
  WorkflowExecutionTerminatedEventAttributes:
13615
14229
  type: object