Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
f91b78e
_**READ BEFORE MERGING:** All PRs require approval by both Server AND
sivagirish81 Jun 12, 2025
25e26bb
:Merge branch 'TaskQueueConfigApi' of github.com:sivagirish81/api int…
sivagirish81 Jun 20, 2025
5afad01
Review comments incorporated
sivagirish81 Jun 25, 2025
a29c0f8
Indentation fixed
sivagirish81 Jun 25, 2025
7d9544c
Update comment against reason to make configMetaData Generic.
sivagirish81 Jun 25, 2025
0376041
Fixed tab spaces
sivagirish81 Jun 25, 2025
602e6f0
Indentation fix
sivagirish81 Jun 25, 2025
0446be3
added newlines for consistency
sivagirish81 Jun 25, 2025
9acb280
Merge branch 'temporalio:master' into TaskQueueConfigApi
sivagirish81 Jun 25, 2025
0a13fd7
Removed the source field
sivagirish81 Jun 25, 2025
729b2db
+ Removed source from config and moved it to DescribeTaskQueue
sivagirish81 Jun 25, 2025
1fb2b1b
Fixed tags + removed unnecessary whitespaces
sivagirish81 Jun 26, 2025
b04dc6a
Removed unnecessary blank lines
sivagirish81 Jun 26, 2025
a9ef10c
Updated comments + added the openapi changes
sivagirish81 Jun 26, 2025
626eace
Comment added for config in DescribeTaskQueue Response
sivagirish81 Jun 26, 2025
82e41af
Merge branch 'temporalio:master' into TaskQueueConfigApi
sivagirish81 Jun 27, 2025
b8cf2c2
Review comments incorporated from the PR.
sivagirish81 Jun 27, 2025
084b4f3
Comment update
sivagirish81 Jun 30, 2025
1792887
Changed the effectiveRateLimit field name to requestsPerSecond
sivagirish81 Jun 30, 2025
2f0f40f
Incorporated review comments.
sivagirish81 Jul 3, 2025
bafe26d
Merge branch 'temporalio:master' into TaskQueueConfigApi
sivagirish81 Jul 7, 2025
20ac0a8
Merge branch 'temporalio:master' into TaskQueueConfigApi
sivagirish81 Jul 8, 2025
339b66d
Renamed task_queue_name to task_queue to ensure consistency for routing
sivagirish81 Jul 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
236 changes: 233 additions & 3 deletions openapi/openapiv2.json
Original file line number Diff line number Diff line change
Expand Up @@ -1529,6 +1529,13 @@
"required": false,
"type": "boolean"
},
{
"name": "reportConfig",
"description": "Report Task Queue Config",
"in": "query",
"required": false,
"type": "boolean"
},
{
"name": "includeTaskQueueStatus",
"description": "Deprecated, use `report_stats` instead.\nIf true, the task queue status will be included in the response.",
Expand Down Expand Up @@ -1610,6 +1617,52 @@
]
}
},
"/api/v1/namespaces/{namespace}/task-queues/{taskQueue}/update-config": {
"post": {
"summary": "Updates task queue configuration.\nFor the overall queue rate limit: the rate limit set by this api overrides the worker-set rate limit,\nwhich uncouples the rate limit from the worker lifecycle.\nIf the overall queue rate limit is unset, the worker-set rate limit takes effect.",
"operationId": "UpdateTaskQueueConfig2",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1UpdateTaskQueueConfigResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "namespace",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "taskQueue",
"description": "Selects the task queue to update.",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/WorkflowServiceUpdateTaskQueueConfigBody"
}
}
],
"tags": [
"WorkflowService"
]
}
},
"/api/v1/namespaces/{namespace}/task-queues/{taskQueue}/worker-build-id-compatibility": {
"get": {
"summary": "Deprecated. Use `GetWorkerVersioningRules`.\nFetches the worker build id versioning sets for a task queue.",
Expand Down Expand Up @@ -5176,6 +5229,13 @@
"required": false,
"type": "boolean"
},
{
"name": "reportConfig",
"description": "Report Task Queue Config",
"in": "query",
"required": false,
"type": "boolean"
},
{
"name": "includeTaskQueueStatus",
"description": "Deprecated, use `report_stats` instead.\nIf true, the task queue status will be included in the response.",
Expand Down Expand Up @@ -5257,6 +5317,52 @@
]
}
},
"/namespaces/{namespace}/task-queues/{taskQueue}/update-config": {
"post": {
"summary": "Updates task queue configuration.\nFor the overall queue rate limit: the rate limit set by this api overrides the worker-set rate limit,\nwhich uncouples the rate limit from the worker lifecycle.\nIf the overall queue rate limit is unset, the worker-set rate limit takes effect.",
"operationId": "UpdateTaskQueueConfig",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1UpdateTaskQueueConfigResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "namespace",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "taskQueue",
"description": "Selects the task queue to update.",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/WorkflowServiceUpdateTaskQueueConfigBody"
}
}
],
"tags": [
"WorkflowService"
]
}
},
"/namespaces/{namespace}/task-queues/{taskQueue}/worker-build-id-compatibility": {
"get": {
"summary": "Deprecated. Use `GetWorkerVersioningRules`.\nFetches the worker build id versioning sets for a task queue.",
Expand Down Expand Up @@ -6932,6 +7038,20 @@
}
}
},
"DescribeTaskQueueResponseEffectiveRateLimit": {
"type": "object",
"properties": {
"requestsPerSecond": {
"type": "number",
"format": "float",
"description": "The effective rate limit for the task queue."
},
"rateLimitSource": {
"$ref": "#/definitions/v1RateLimitSource",
"title": "Source of the RateLimit Configuration,which can be one of the following values:\n- SOURCE_API: The rate limit that is set via the TaskQueueConfig api.\n- SOURCE_WORKER: The rate limit is the value set using the workerOptions in TaskQueueActivitiesPerSecond.\n- SOURCE_SYSTEM: The rate limit is the default value set by the system"
}
}
},
"DescribeWorkerDeploymentVersionResponseVersionTaskQueue": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -7178,6 +7298,19 @@
},
"description": "An operation completed successfully."
},
"UpdateTaskQueueConfigRequestRateLimitUpdate": {
"type": "object",
"properties": {
"rateLimit": {
"$ref": "#/definitions/v1RateLimit",
"title": "Rate Limit to be updated"
},
"reason": {
"type": "string",
"description": "Reason for why the rate limit was set."
}
}
},
"UpdateWorkerBuildIdCompatibilityRequestAddNewCompatibleVersion": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -8484,6 +8617,25 @@
}
}
},
"WorkflowServiceUpdateTaskQueueConfigBody": {
"type": "object",
"properties": {
"identity": {
"type": "string"
},
"taskQueueType": {
"$ref": "#/definitions/v1TaskQueueType"
},
"updateQueueRateLimit": {
"$ref": "#/definitions/UpdateTaskQueueConfigRequestRateLimitUpdate",
"description": "Update to queue-wide rate limit.\nIf not set, this configuration is unchanged.\nNOTE: A limit set by the worker is overriden; and restored again when reset.\nIf the `rate_limit` field in the `RateLimitUpdate` is missing, remove the existing rate limit."
},
"updateFairnessKeyRateLimitDefault": {
"$ref": "#/definitions/UpdateTaskQueueConfigRequestRateLimitUpdate",
"description": "Update to the default fairness key rate limit.\nIf not set, this configuration is unchanged.\nIf the `rate_limit` field in the `RateLimitUpdate` is missing, remove the existing rate limit."
}
}
},
"WorkflowServiceUpdateWorkerDeploymentVersionMetadataBody": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -9921,6 +10073,24 @@
}
}
},
"v1ConfigMetadata": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for why the config was set."
},
"updateIdentity": {
"type": "string",
"description": "Identity of the last updater.\nSet by the request's identity field."
},
"updateTime": {
"type": "string",
"format": "date-time",
"description": "Time of the last update."
}
}
},
"v1ContinueAsNewInitiator": {
"type": "string",
"enum": [
Expand Down Expand Up @@ -10320,13 +10490,20 @@
"$ref": "#/definitions/v1PollerInfo"
}
},
"versioningInfo": {
"$ref": "#/definitions/v1TaskQueueVersioningInfo",
"description": "Specifies which Worker Deployment Version(s) Server routes this Task Queue's tasks to.\nWhen not present, it means the tasks are routed to Unversioned workers (workers with\nUNVERSIONED or unspecified WorkerVersioningMode.)\nTask Queue Versioning info is updated indirectly by calling SetWorkerDeploymentCurrentVersion\nand SetWorkerDeploymentRampingVersion on Worker Deployments.\nNote: This information is not relevant to Pinned workflow executions and their activities as\nthey are always routed to their Pinned Deployment Version. However, new workflow executions\nare typically not Pinned until they complete their first task (unless they are started with\na Pinned VersioningOverride or are Child Workflows of a Pinned parent)."
},
"stats": {
"$ref": "#/definitions/v1TaskQueueStats",
"description": "Statistics for the task queue. Only populated when `report_stats` is set to true in the request."
},
"versioningInfo": {
"$ref": "#/definitions/v1TaskQueueVersioningInfo",
"description": "Specifies which Worker Deployment Version(s) Server routes this Task Queue's tasks to.\nWhen not present, it means the tasks are routed to Unversioned workers (workers with\nUNVERSIONED or unspecified WorkerVersioningMode.)\nTask Queue Versioning info is updated indirectly by calling SetWorkerDeploymentCurrentVersion\nand SetWorkerDeploymentRampingVersion on Worker Deployments.\nNote: This information is not relevant to Pinned workflow executions and their activities as\nthey are always routed to their Pinned Deployment Version. However, new workflow executions\nare typically not Pinned until they complete their first task (unless they are started with\na Pinned VersioningOverride or are Child Workflows of a Pinned parent)."
"config": {
"$ref": "#/definitions/v1TaskQueueConfig",
"description": "Only populated if report_task_queue_config is set to true."
},
"effectiveRateLimit": {
"$ref": "#/definitions/DescribeTaskQueueResponseEffectiveRateLimit"
},
"taskQueueStatus": {
"$ref": "#/definitions/v1TaskQueueStatus",
Expand Down Expand Up @@ -12711,6 +12888,38 @@
},
"description": "Range represents a set of integer values, used to match fields of a calendar\ntime in StructuredCalendarSpec. If end < start, then end is interpreted as\nequal to start. This means you can use a Range with start set to a value, and\nend and step unset (defaulting to 0) to represent a single value."
},
"v1RateLimit": {
"type": "object",
"properties": {
"requestsPerSecond": {
"type": "number",
"format": "float",
"description": "Zero is a valid rate limit."
}
}
},
"v1RateLimitConfig": {
"type": "object",
"properties": {
"rateLimit": {
"$ref": "#/definitions/v1RateLimit"
},
"metadata": {
"$ref": "#/definitions/v1ConfigMetadata"
}
}
},
"v1RateLimitSource": {
"type": "string",
"enum": [
"RATE_LIMIT_SOURCE_UNSPECIFIED",
"RATE_LIMIT_SOURCE_API",
"RATE_LIMIT_SOURCE_WORKER",
"RATE_LIMIT_SOURCE_SYSTEM"
],
"default": "RATE_LIMIT_SOURCE_UNSPECIFIED",
"description": "Source for the effective rate limit.\n\n - RATE_LIMIT_SOURCE_API: The value was set by the API.\n - RATE_LIMIT_SOURCE_WORKER: The value was set by a worker.\n - RATE_LIMIT_SOURCE_SYSTEM: The value was set as the system default."
},
"v1RecordActivityTaskHeartbeatByIdResponse": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -14469,6 +14678,19 @@
},
"title": "See https://docs.temporal.io/docs/concepts/task-queues/"
},
"v1TaskQueueConfig": {
"type": "object",
"properties": {
"queueRateLimit": {
"$ref": "#/definitions/v1RateLimitConfig",
"description": "Unless modified, this is the system-defined rate limit."
},
"fairnessKeysRateLimitDefault": {
"$ref": "#/definitions/v1RateLimitConfig",
"description": "If set, each individual fairness key will be limited to this rate, scaled by the weight of the fairness key."
}
}
},
"v1TaskQueueKind": {
"type": "string",
"enum": [
Expand Down Expand Up @@ -14925,6 +15147,14 @@
"v1UpdateScheduleResponse": {
"type": "object"
},
"v1UpdateTaskQueueConfigResponse": {
"type": "object",
"properties": {
"config": {
"$ref": "#/definitions/v1TaskQueueConfig"
}
}
},
"v1UpdateWorkerBuildIdCompatibilityResponse": {
"type": "object",
"title": "[cleanup-wv-pre-release]"
Expand Down
Loading
Loading