Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 9 additions & 0 deletions openapi/openapiv2.json
Original file line number Diff line number Diff line change
Expand Up @@ -10440,6 +10440,15 @@
},
"description": "Used by the worker versioning APIs, represents an unordered set of one or more versions which are\nconsidered to be compatible with each other. Currently the versions are always worker build IDs."
},
"v1CompleteNexusOperationResponse": {
"type": "object",
"properties": {
"handlerError": {
"$ref": "#/definitions/v1HandlerError",
"description": "The user handler has responded with an error or failed to respond in time."
}
}
},
"v1CompleteWorkflowExecutionCommandAttributes": {
"type": "object",
"properties": {
Expand Down
26 changes: 26 additions & 0 deletions temporal/api/workflowservice/v1/request_response.proto
Original file line number Diff line number Diff line change
Expand Up @@ -2718,3 +2718,29 @@ message GetNexusOperationResultResponse {
temporal.api.nexus.v1.HandlerError handler_error = 4;
}
}

message CompleteNexusOperationRequest {
// The identity of the client who initiated this request.
string identity = 1;
// The namespace from which the user operation handler is calling.
string namespace = 2;

// The callback containing the URL where the server should deliver the completion and additional headers to forward
// with the request.
temporal.api.common.v1.Callback.Nexus callback = 3;
// Request headers to send with the callback request.
map<string, string> header = 4;


oneof outcome {
// The operation completed successfully.
temporal.api.common.v1.Payload result = 5;
// The operation completed unsuccessfully (failed or canceled).
temporal.api.nexus.v1.UnsuccessfulOperationError operation_error = 6;
}
}

message CompleteNexusOperationResponse {
// The user handler has responded with an error or failed to respond in time.
temporal.api.nexus.v1.HandlerError handler_error = 1;
}
7 changes: 7 additions & 0 deletions temporal/api/workflowservice/v1/service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -1276,4 +1276,11 @@ service WorkflowService {
// aip.dev/not-precedent: Nexus has a separately defined HTTP API. --)
rpc GetNexusOperationResult (GetNexusOperationResultRequest) returns (GetNexusOperationResultResponse) {
}

// Request the server to invoke an operation completion on the caller's behalf.
//
// (-- api-linter: core::0127::http-annotation=disabled
// aip.dev/not-precedent: Nexus has a separately defined HTTP API. --)
rpc CompleteNexusOperation (CompleteNexusOperationRequest) returns (CompleteNexusOperationResponse) {
}
}
Loading