diff --git a/dapr/aio/clients/grpc/client.py b/dapr/aio/clients/grpc/client.py index 68d032b57..0bc45cbc6 100644 --- a/dapr/aio/clients/grpc/client.py +++ b/dapr/aio/clients/grpc/client.py @@ -80,6 +80,7 @@ GetMetadataResponse, GetSecretResponse, InvokeMethodResponse, + MetadataMCPServer, QueryResponse, QueryResponseItem, RegisteredComponents, @@ -1723,6 +1724,7 @@ async def get_metadata(self) -> GetMetadataResponse: for i in response.registered_components ] extended_metadata = dict(response.extended_metadata.items()) + mcp_servers = [MetadataMCPServer(name=s.name) for s in response.mcp_servers] return GetMetadataResponse( application_id=response.id, @@ -1730,6 +1732,7 @@ async def get_metadata(self) -> GetMetadataResponse: registered_components=registered_components, extended_metadata=extended_metadata, headers=await call.initial_metadata(), + mcp_servers=mcp_servers, ) async def schedule_job_alpha1(self, job: Job, overwrite: bool = False) -> DaprResponse: diff --git a/dapr/clients/grpc/_response.py b/dapr/clients/grpc/_response.py index 2f966d3e8..bbe8efb78 100644 --- a/dapr/clients/grpc/_response.py +++ b/dapr/clients/grpc/_response.py @@ -956,6 +956,7 @@ def __init__( registered_components: Sequence[RegisteredComponents], extended_metadata: Dict[str, str], headers: MetadataTuple = (), + mcp_servers: Optional[Sequence['MetadataMCPServer']] = None, ): """Initializes GetMetadataResponse. @@ -968,12 +969,15 @@ def __init__( extended_metadata (Dict[str, str]): mapping of custom (extended) attributes to their respective values. headers (Tuple, optional): the headers from Dapr gRPC response. + mcp_servers (Sequence[MetadataMCPServer], optional): list of + loaded MCPServer resources. """ super().__init__(headers) self._application_id = application_id self._active_actors_count = active_actors_count self._registered_components = registered_components self._extended_metadata = extended_metadata + self._mcp_servers = mcp_servers or [] @property def application_id(self) -> str: @@ -995,6 +999,11 @@ def extended_metadata(self) -> Dict[str, str]: """Mapping of custom (extended) attributes to their respective values.""" return self._extended_metadata + @property + def mcp_servers(self) -> Sequence['MetadataMCPServer']: + """List of loaded MCPServer resources.""" + return self._mcp_servers + class RegisteredComponents(NamedTuple): """Describes a loaded Dapr component.""" @@ -1012,6 +1021,13 @@ class RegisteredComponents(NamedTuple): """Supported capabilities for this component type and version.""" +class MetadataMCPServer(NamedTuple): + """Describes a loaded Dapr MCPServer resource.""" + + name: str + """Name of the MCPServer resource.""" + + class CryptoResponse(DaprResponse, Generic[TCryptoResponse]): """An iterable of cryptography API responses.""" diff --git a/dapr/clients/grpc/client.py b/dapr/clients/grpc/client.py index 5ac02f609..285db0d14 100644 --- a/dapr/clients/grpc/client.py +++ b/dapr/clients/grpc/client.py @@ -71,6 +71,7 @@ GetMetadataResponse, GetSecretResponse, InvokeMethodResponse, + MetadataMCPServer, QueryResponse, QueryResponseItem, RegisteredComponents, @@ -1828,6 +1829,7 @@ def get_metadata(self) -> GetMetadataResponse: for i in response.registered_components ] extended_metadata = dict(response.extended_metadata.items()) + mcp_servers = [MetadataMCPServer(name=s.name) for s in response.mcp_servers] return GetMetadataResponse( application_id=response.id, @@ -1835,6 +1837,7 @@ def get_metadata(self) -> GetMetadataResponse: registered_components=registered_components, extended_metadata=extended_metadata, headers=call.initial_metadata(), + mcp_servers=mcp_servers, ) def set_metadata(self, attributeName: str, attributeValue: str) -> DaprResponse: diff --git a/dapr/proto/common/v1/common_pb2.pyi b/dapr/proto/common/v1/common_pb2.pyi index 1a610f022..22f28acbb 100644 --- a/dapr/proto/common/v1/common_pb2.pyi +++ b/dapr/proto/common/v1/common_pb2.pyi @@ -25,10 +25,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -91,8 +91,11 @@ class HTTPExtension(_message.Message): verb: Global___HTTPExtension.Verb.ValueType = ..., querystring: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["querystring", b"querystring", "verb", b"verb"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___HTTPExtension: _TypeAlias = HTTPExtension # noqa: Y015 @@ -143,6 +146,7 @@ class InvokeRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["content_type", b"content_type", "data", b"data", "http_extension", b"http_extension", "method", b"method"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___InvokeRequest: _TypeAlias = InvokeRequest # noqa: Y015 @@ -174,6 +178,7 @@ class InvokeResponse(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["content_type", b"content_type", "data", b"data"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___InvokeResponse: _TypeAlias = InvokeResponse # noqa: Y015 @@ -201,8 +206,11 @@ class StreamPayload(_message.Message): data: _builtins.bytes = ..., seq: _builtins.int = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "seq", b"seq"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___StreamPayload: _TypeAlias = StreamPayload # noqa: Y015 @@ -226,8 +234,11 @@ class StateItem(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... KEY_FIELD_NUMBER: _builtins.int VALUE_FIELD_NUMBER: _builtins.int @@ -265,6 +276,7 @@ class StateItem(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["etag", b"etag", "key", b"key", "metadata", b"metadata", "options", b"options", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___StateItem: _TypeAlias = StateItem # noqa: Y015 @@ -282,8 +294,11 @@ class Etag(_message.Message): *, value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___Etag: _TypeAlias = Etag # noqa: Y015 @@ -337,8 +352,11 @@ class StateOptions(_message.Message): concurrency: Global___StateOptions.StateConcurrency.ValueType = ..., consistency: Global___StateOptions.StateConsistency.ValueType = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["concurrency", b"concurrency", "consistency", b"consistency"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___StateOptions: _TypeAlias = StateOptions # noqa: Y015 @@ -362,8 +380,11 @@ class ConfigurationItem(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... VALUE_FIELD_NUMBER: _builtins.int VERSION_FIELD_NUMBER: _builtins.int @@ -383,8 +404,11 @@ class ConfigurationItem(_message.Message): version: _builtins.str = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "value", b"value", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ConfigurationItem: _TypeAlias = ConfigurationItem # noqa: Y015 @@ -425,6 +449,11 @@ class JobFailurePolicyDrop(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___JobFailurePolicyDrop: _TypeAlias = JobFailurePolicyDrop # noqa: Y015 diff --git a/dapr/proto/common/v1/common_pb2_grpc.py b/dapr/proto/common/v1/common_pb2_grpc.py index 8e198f49a..6e08339a9 100644 --- a/dapr/proto/common/v1/common_pb2_grpc.py +++ b/dapr/proto/common/v1/common_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/actors_pb2.pyi b/dapr/proto/runtime/v1/actors_pb2.pyi index 735def561..3ba92ec17 100644 --- a/dapr/proto/runtime/v1/actors_pb2.pyi +++ b/dapr/proto/runtime/v1/actors_pb2.pyi @@ -24,10 +24,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -65,8 +65,11 @@ class RegisterActorTimerRequest(_message.Message): data: _builtins.bytes = ..., ttl: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["actor_id", b"actor_id", "actor_type", b"actor_type", "callback", b"callback", "data", b"data", "due_time", b"due_time", "name", b"name", "period", b"period", "ttl", b"ttl"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___RegisterActorTimerRequest: _TypeAlias = RegisterActorTimerRequest # noqa: Y015 @@ -89,8 +92,11 @@ class UnregisterActorTimerRequest(_message.Message): actor_id: _builtins.str = ..., name: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["actor_id", b"actor_id", "actor_type", b"actor_type", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___UnregisterActorTimerRequest: _TypeAlias = UnregisterActorTimerRequest # noqa: Y015 @@ -174,8 +180,11 @@ class UnregisterActorReminderRequest(_message.Message): actor_id: _builtins.str = ..., name: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["actor_id", b"actor_id", "actor_type", b"actor_type", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___UnregisterActorReminderRequest: _TypeAlias = UnregisterActorReminderRequest # noqa: Y015 @@ -198,8 +207,11 @@ class GetActorStateRequest(_message.Message): actor_id: _builtins.str = ..., key: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["actor_id", b"actor_id", "actor_type", b"actor_type", "key", b"key"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetActorStateRequest: _TypeAlias = GetActorStateRequest # noqa: Y015 @@ -223,8 +235,11 @@ class GetActorStateResponse(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... DATA_FIELD_NUMBER: _builtins.int METADATA_FIELD_NUMBER: _builtins.int @@ -239,8 +254,11 @@ class GetActorStateResponse(_message.Message): data: _builtins.bytes = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "metadata", b"metadata"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetActorStateResponse: _TypeAlias = GetActorStateResponse # noqa: Y015 @@ -264,8 +282,11 @@ class ExecuteActorStateTransactionRequest(_message.Message): actor_id: _builtins.str = ..., operations: _abc.Iterable[Global___TransactionalActorStateOperation] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["actor_id", b"actor_id", "actor_type", b"actor_type", "operations", b"operations"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ExecuteActorStateTransactionRequest: _TypeAlias = ExecuteActorStateTransactionRequest # noqa: Y015 @@ -289,8 +310,11 @@ class TransactionalActorStateOperation(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... OPERATIONTYPE_FIELD_NUMBER: _builtins.int KEY_FIELD_NUMBER: _builtins.int @@ -320,6 +344,7 @@ class TransactionalActorStateOperation(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "metadata", b"metadata", "operationType", b"operationType", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TransactionalActorStateOperation: _TypeAlias = TransactionalActorStateOperation # noqa: Y015 @@ -343,8 +368,11 @@ class InvokeActorRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... ACTOR_TYPE_FIELD_NUMBER: _builtins.int ACTOR_ID_FIELD_NUMBER: _builtins.int @@ -366,8 +394,11 @@ class InvokeActorRequest(_message.Message): data: _builtins.bytes = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["actor_id", b"actor_id", "actor_type", b"actor_type", "data", b"data", "metadata", b"metadata", "method", b"method"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___InvokeActorRequest: _TypeAlias = InvokeActorRequest # noqa: Y015 @@ -384,8 +415,11 @@ class InvokeActorResponse(_message.Message): *, data: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___InvokeActorResponse: _TypeAlias = InvokeActorResponse # noqa: Y015 @@ -408,8 +442,11 @@ class GetActorReminderRequest(_message.Message): actor_id: _builtins.str = ..., name: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["actor_id", b"actor_id", "actor_type", b"actor_type", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetActorReminderRequest: _TypeAlias = GetActorReminderRequest # noqa: Y015 @@ -497,8 +534,11 @@ class ListActorRemindersResponse(_message.Message): *, reminders: _abc.Iterable[Global___NamedActorReminder] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["reminders", b"reminders"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ListActorRemindersResponse: _TypeAlias = ListActorRemindersResponse # noqa: Y015 @@ -521,6 +561,7 @@ class NamedActorReminder(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "reminder", b"reminder"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___NamedActorReminder: _TypeAlias = NamedActorReminder # noqa: Y015 @@ -606,5 +647,10 @@ class UnregisterActorRemindersByTypeResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___UnregisterActorRemindersByTypeResponse: _TypeAlias = UnregisterActorRemindersByTypeResponse # noqa: Y015 diff --git a/dapr/proto/runtime/v1/actors_pb2_grpc.py b/dapr/proto/runtime/v1/actors_pb2_grpc.py index 02669cd7e..7e41794fb 100644 --- a/dapr/proto/runtime/v1/actors_pb2_grpc.py +++ b/dapr/proto/runtime/v1/actors_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/ai_pb2.pyi b/dapr/proto/runtime/v1/ai_pb2.pyi index 2aa85422b..80602c465 100644 --- a/dapr/proto/runtime/v1/ai_pb2.pyi +++ b/dapr/proto/runtime/v1/ai_pb2.pyi @@ -25,10 +25,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never if sys.version_info >= (3, 13): from warnings import deprecated as _deprecated @@ -68,6 +68,7 @@ class ConversationRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... @_typing.final class MetadataEntry(_message.Message): @@ -83,8 +84,11 @@ class ConversationRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... NAME_FIELD_NUMBER: _builtins.int CONTEXTID_FIELD_NUMBER: _builtins.int @@ -173,6 +177,7 @@ class ConversationRequestAlpha2(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... @_typing.final class MetadataEntry(_message.Message): @@ -188,8 +193,11 @@ class ConversationRequestAlpha2(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... NAME_FIELD_NUMBER: _builtins.int CONTEXT_ID_FIELD_NUMBER: _builtins.int @@ -672,8 +680,11 @@ class ConversationToolCallsOfFunction(_message.Message): name: _builtins.str = ..., arguments: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["arguments", b"arguments", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ConversationToolCallsOfFunction: _TypeAlias = ConversationToolCallsOfFunction # noqa: Y015 @@ -695,8 +706,11 @@ class ConversationMessageContent(_message.Message): *, text: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["text", b"text"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ConversationMessageContent: _TypeAlias = ConversationMessageContent # noqa: Y015 @@ -726,6 +740,7 @@ class ConversationResult(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... RESULT_FIELD_NUMBER: _builtins.int PARAMETERS_FIELD_NUMBER: _builtins.int @@ -741,8 +756,11 @@ class ConversationResult(_message.Message): result: _builtins.str = ..., parameters: _abc.Mapping[_builtins.str, _any_pb2.Any] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["parameters", b"parameters", "result", b"result"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ConversationResult: _TypeAlias = ConversationResult # noqa: Y015 @@ -875,8 +893,11 @@ class ConversationResultAlpha2CompletionUsageCompletionTokensDetails(_message.Me reasoning_tokens: _builtins.int = ..., rejected_prediction_tokens: _builtins.int = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["accepted_prediction_tokens", b"accepted_prediction_tokens", "audio_tokens", b"audio_tokens", "reasoning_tokens", b"reasoning_tokens", "rejected_prediction_tokens", b"rejected_prediction_tokens"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ConversationResultAlpha2CompletionUsageCompletionTokensDetails: _TypeAlias = ConversationResultAlpha2CompletionUsageCompletionTokensDetails # noqa: Y015 @@ -900,8 +921,11 @@ class ConversationResultAlpha2CompletionUsagePromptTokensDetails(_message.Messag audio_tokens: _builtins.int = ..., cached_tokens: _builtins.int = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["audio_tokens", b"audio_tokens", "cached_tokens", b"cached_tokens"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ConversationResultAlpha2CompletionUsagePromptTokensDetails: _TypeAlias = ConversationResultAlpha2CompletionUsagePromptTokensDetails # noqa: Y015 @@ -941,6 +965,7 @@ class ConversationResultChoices(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["finish_reason", b"finish_reason", "index", b"index", "message", b"message"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ConversationResultChoices: _TypeAlias = ConversationResultChoices # noqa: Y015 @@ -966,8 +991,11 @@ class ConversationResultMessage(_message.Message): content: _builtins.str = ..., tool_calls: _abc.Iterable[Global___ConversationToolCalls] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["content", b"content", "tool_calls", b"tool_calls"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ConversationResultMessage: _TypeAlias = ConversationResultMessage # noqa: Y015 @@ -1081,7 +1109,7 @@ class ConversationToolsFunction(_message.Message): def parameters(self) -> _struct_pb2.Struct: """The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, - and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. Omitting `parameters` defines a function with an empty parameter list. """ diff --git a/dapr/proto/runtime/v1/ai_pb2_grpc.py b/dapr/proto/runtime/v1/ai_pb2_grpc.py index d4f769741..d941a6813 100644 --- a/dapr/proto/runtime/v1/ai_pb2_grpc.py +++ b/dapr/proto/runtime/v1/ai_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/appcallback_pb2.py b/dapr/proto/runtime/v1/appcallback_pb2.py index 24267f1e4..4e35f0712 100644 --- a/dapr/proto/runtime/v1/appcallback_pb2.py +++ b/dapr/proto/runtime/v1/appcallback_pb2.py @@ -28,7 +28,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'dapr/proto/runtime/v1/appcallback.proto\x12\x15\x64\x61pr.proto.runtime.v1\x1a\x19google/protobuf/any.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a!dapr/proto/common/v1/common.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xa6\x01\n\x0fJobEventRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\"\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x0e\n\x06method\x18\x03 \x01(\t\x12\x14\n\x0c\x63ontent_type\x18\x04 \x01(\t\x12;\n\x0ehttp_extension\x18\x05 \x01(\x0b\x32#.dapr.proto.common.v1.HTTPExtension\"\x12\n\x10JobEventResponse\"\xdb\x01\n\x11TopicEventRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x14\n\x0cspec_version\x18\x04 \x01(\t\x12\x19\n\x11\x64\x61ta_content_type\x18\x05 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x07 \x01(\x0c\x12\r\n\x05topic\x18\x06 \x01(\t\x12\x13\n\x0bpubsub_name\x18\x08 \x01(\t\x12\x0c\n\x04path\x18\t \x01(\t\x12+\n\nextensions\x18\n \x01(\x0b\x32\x17.google.protobuf.Struct\"\xa6\x01\n\x12TopicEventResponse\x12R\n\x06status\x18\x01 \x01(\x0e\x32\x42.dapr.proto.runtime.v1.TopicEventResponse.TopicEventResponseStatus\"<\n\x18TopicEventResponseStatus\x12\x0b\n\x07SUCCESS\x10\x00\x12\t\n\x05RETRY\x10\x01\x12\x08\n\x04\x44ROP\x10\x02\"\xab\x01\n\x13TopicEventCERequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x14\n\x0cspec_version\x18\x04 \x01(\t\x12\x19\n\x11\x64\x61ta_content_type\x18\x05 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x12+\n\nextensions\x18\x07 \x01(\x0b\x32\x17.google.protobuf.Struct\"\xa5\x02\n\x1aTopicEventBulkRequestEntry\x12\x10\n\x08\x65ntry_id\x18\x01 \x01(\t\x12\x0f\n\x05\x62ytes\x18\x02 \x01(\x0cH\x00\x12\x41\n\x0b\x63loud_event\x18\x03 \x01(\x0b\x32*.dapr.proto.runtime.v1.TopicEventCERequestH\x00\x12\x14\n\x0c\x63ontent_type\x18\x04 \x01(\t\x12Q\n\x08metadata\x18\x05 \x03(\x0b\x32?.dapr.proto.runtime.v1.TopicEventBulkRequestEntry.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05\x65vent\"\xa6\x02\n\x15TopicEventBulkRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x42\n\x07\x65ntries\x18\x02 \x03(\x0b\x32\x31.dapr.proto.runtime.v1.TopicEventBulkRequestEntry\x12L\n\x08metadata\x18\x03 \x03(\x0b\x32:.dapr.proto.runtime.v1.TopicEventBulkRequest.MetadataEntry\x12\r\n\x05topic\x18\x04 \x01(\t\x12\x13\n\x0bpubsub_name\x18\x05 \x01(\t\x12\x0c\n\x04type\x18\x06 \x01(\t\x12\x0c\n\x04path\x18\x07 \x01(\t\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x83\x01\n\x1bTopicEventBulkResponseEntry\x12\x10\n\x08\x65ntry_id\x18\x01 \x01(\t\x12R\n\x06status\x18\x02 \x01(\x0e\x32\x42.dapr.proto.runtime.v1.TopicEventResponse.TopicEventResponseStatus\"^\n\x16TopicEventBulkResponse\x12\x44\n\x08statuses\x18\x01 \x03(\x0b\x32\x32.dapr.proto.runtime.v1.TopicEventBulkResponseEntry\"\xae\x01\n\x13\x42indingEventRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12J\n\x08metadata\x18\x03 \x03(\x0b\x32\x38.dapr.proto.runtime.v1.BindingEventRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x02\n\x14\x42indingEventResponse\x12\x12\n\nstore_name\x18\x01 \x01(\t\x12/\n\x06states\x18\x02 \x03(\x0b\x32\x1f.dapr.proto.common.v1.StateItem\x12\n\n\x02to\x18\x03 \x03(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12X\n\x0b\x63oncurrency\x18\x05 \x01(\x0e\x32\x43.dapr.proto.runtime.v1.BindingEventResponse.BindingEventConcurrency\"7\n\x17\x42indingEventConcurrency\x12\x0e\n\nSEQUENTIAL\x10\x00\x12\x0c\n\x08PARALLEL\x10\x01\"a\n\x1eListTopicSubscriptionsResponse\x12?\n\rsubscriptions\x18\x01 \x03(\x0b\x32(.dapr.proto.runtime.v1.TopicSubscription\"\xc5\x02\n\x11TopicSubscription\x12\x13\n\x0bpubsub_name\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12H\n\x08metadata\x18\x03 \x03(\x0b\x32\x36.dapr.proto.runtime.v1.TopicSubscription.MetadataEntry\x12\x32\n\x06routes\x18\x05 \x01(\x0b\x32\".dapr.proto.runtime.v1.TopicRoutes\x12\x19\n\x11\x64\x65\x61\x64_letter_topic\x18\x06 \x01(\t\x12\x42\n\x0e\x62ulk_subscribe\x18\x07 \x01(\x0b\x32*.dapr.proto.runtime.v1.BulkSubscribeConfig\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"O\n\x0bTopicRoutes\x12/\n\x05rules\x18\x01 \x03(\x0b\x32 .dapr.proto.runtime.v1.TopicRule\x12\x0f\n\x07\x64\x65\x66\x61ult\x18\x02 \x01(\t\"(\n\tTopicRule\x12\r\n\x05match\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"a\n\x13\x42ulkSubscribeConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x1a\n\x12max_messages_count\x18\x02 \x01(\x05\x12\x1d\n\x15max_await_duration_ms\x18\x03 \x01(\x05\"-\n\x19ListInputBindingsResponse\x12\x10\n\x08\x62indings\x18\x01 \x03(\t\"\x15\n\x13HealthCheckResponse2\xf9\x04\n\x0b\x41ppCallback\x12W\n\x08OnInvoke\x12#.dapr.proto.common.v1.InvokeRequest\x1a$.dapr.proto.common.v1.InvokeResponse\"\x00\x12i\n\x16ListTopicSubscriptions\x12\x16.google.protobuf.Empty\x1a\x35.dapr.proto.runtime.v1.ListTopicSubscriptionsResponse\"\x00\x12\x65\n\x0cOnTopicEvent\x12(.dapr.proto.runtime.v1.TopicEventRequest\x1a).dapr.proto.runtime.v1.TopicEventResponse\"\x00\x12_\n\x11ListInputBindings\x12\x16.google.protobuf.Empty\x1a\x30.dapr.proto.runtime.v1.ListInputBindingsResponse\"\x00\x12k\n\x0eOnBindingEvent\x12*.dapr.proto.runtime.v1.BindingEventRequest\x1a+.dapr.proto.runtime.v1.BindingEventResponse\"\x00\x12q\n\x10OnBulkTopicEvent\x12,.dapr.proto.runtime.v1.TopicEventBulkRequest\x1a-.dapr.proto.runtime.v1.TopicEventBulkResponse\"\x00\x32m\n\x16\x41ppCallbackHealthCheck\x12S\n\x0bHealthCheck\x12\x16.google.protobuf.Empty\x1a*.dapr.proto.runtime.v1.HealthCheckResponse\"\x00\x32\xf3\x01\n\x10\x41ppCallbackAlpha\x12z\n\x16OnBulkTopicEventAlpha1\x12,.dapr.proto.runtime.v1.TopicEventBulkRequest\x1a-.dapr.proto.runtime.v1.TopicEventBulkResponse\"\x03\x88\x02\x01\x12\x63\n\x10OnJobEventAlpha1\x12&.dapr.proto.runtime.v1.JobEventRequest\x1a\'.dapr.proto.runtime.v1.JobEventResponseBy\n\nio.dapr.v1B\x15\x44\x61prAppCallbackProtosZ1github.com/dapr/dapr/pkg/proto/runtime/v1;runtime\xaa\x02 Dapr.AppCallback.Autogen.Grpc.v1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'dapr/proto/runtime/v1/appcallback.proto\x12\x15\x64\x61pr.proto.runtime.v1\x1a\x19google/protobuf/any.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a!dapr/proto/common/v1/common.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xa6\x01\n\x0fJobEventRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\"\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x0e\n\x06method\x18\x03 \x01(\t\x12\x14\n\x0c\x63ontent_type\x18\x04 \x01(\t\x12;\n\x0ehttp_extension\x18\x05 \x01(\x0b\x32#.dapr.proto.common.v1.HTTPExtension\"\x12\n\x10JobEventResponse\"\xdb\x01\n\x11TopicEventRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x14\n\x0cspec_version\x18\x04 \x01(\t\x12\x19\n\x11\x64\x61ta_content_type\x18\x05 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x07 \x01(\x0c\x12\r\n\x05topic\x18\x06 \x01(\t\x12\x13\n\x0bpubsub_name\x18\x08 \x01(\t\x12\x0c\n\x04path\x18\t \x01(\t\x12+\n\nextensions\x18\n \x01(\x0b\x32\x17.google.protobuf.Struct\"\xa6\x01\n\x12TopicEventResponse\x12R\n\x06status\x18\x01 \x01(\x0e\x32\x42.dapr.proto.runtime.v1.TopicEventResponse.TopicEventResponseStatus\"<\n\x18TopicEventResponseStatus\x12\x0b\n\x07SUCCESS\x10\x00\x12\t\n\x05RETRY\x10\x01\x12\x08\n\x04\x44ROP\x10\x02\"\xab\x01\n\x13TopicEventCERequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x14\n\x0cspec_version\x18\x04 \x01(\t\x12\x19\n\x11\x64\x61ta_content_type\x18\x05 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x12+\n\nextensions\x18\x07 \x01(\x0b\x32\x17.google.protobuf.Struct\"\xa5\x02\n\x1aTopicEventBulkRequestEntry\x12\x10\n\x08\x65ntry_id\x18\x01 \x01(\t\x12\x0f\n\x05\x62ytes\x18\x02 \x01(\x0cH\x00\x12\x41\n\x0b\x63loud_event\x18\x03 \x01(\x0b\x32*.dapr.proto.runtime.v1.TopicEventCERequestH\x00\x12\x14\n\x0c\x63ontent_type\x18\x04 \x01(\t\x12Q\n\x08metadata\x18\x05 \x03(\x0b\x32?.dapr.proto.runtime.v1.TopicEventBulkRequestEntry.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05\x65vent\"\xa6\x02\n\x15TopicEventBulkRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x42\n\x07\x65ntries\x18\x02 \x03(\x0b\x32\x31.dapr.proto.runtime.v1.TopicEventBulkRequestEntry\x12L\n\x08metadata\x18\x03 \x03(\x0b\x32:.dapr.proto.runtime.v1.TopicEventBulkRequest.MetadataEntry\x12\r\n\x05topic\x18\x04 \x01(\t\x12\x13\n\x0bpubsub_name\x18\x05 \x01(\t\x12\x0c\n\x04type\x18\x06 \x01(\t\x12\x0c\n\x04path\x18\x07 \x01(\t\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x83\x01\n\x1bTopicEventBulkResponseEntry\x12\x10\n\x08\x65ntry_id\x18\x01 \x01(\t\x12R\n\x06status\x18\x02 \x01(\x0e\x32\x42.dapr.proto.runtime.v1.TopicEventResponse.TopicEventResponseStatus\"^\n\x16TopicEventBulkResponse\x12\x44\n\x08statuses\x18\x01 \x03(\x0b\x32\x32.dapr.proto.runtime.v1.TopicEventBulkResponseEntry\"\xae\x01\n\x13\x42indingEventRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12J\n\x08metadata\x18\x03 \x03(\x0b\x32\x38.dapr.proto.runtime.v1.BindingEventRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x02\n\x14\x42indingEventResponse\x12\x12\n\nstore_name\x18\x01 \x01(\t\x12/\n\x06states\x18\x02 \x03(\x0b\x32\x1f.dapr.proto.common.v1.StateItem\x12\n\n\x02to\x18\x03 \x03(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12X\n\x0b\x63oncurrency\x18\x05 \x01(\x0e\x32\x43.dapr.proto.runtime.v1.BindingEventResponse.BindingEventConcurrency\"7\n\x17\x42indingEventConcurrency\x12\x0e\n\nSEQUENTIAL\x10\x00\x12\x0c\n\x08PARALLEL\x10\x01\"a\n\x1eListTopicSubscriptionsResponse\x12?\n\rsubscriptions\x18\x01 \x03(\x0b\x32(.dapr.proto.runtime.v1.TopicSubscription\"\xc5\x02\n\x11TopicSubscription\x12\x13\n\x0bpubsub_name\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12H\n\x08metadata\x18\x03 \x03(\x0b\x32\x36.dapr.proto.runtime.v1.TopicSubscription.MetadataEntry\x12\x32\n\x06routes\x18\x05 \x01(\x0b\x32\".dapr.proto.runtime.v1.TopicRoutes\x12\x19\n\x11\x64\x65\x61\x64_letter_topic\x18\x06 \x01(\t\x12\x42\n\x0e\x62ulk_subscribe\x18\x07 \x01(\x0b\x32*.dapr.proto.runtime.v1.BulkSubscribeConfig\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"O\n\x0bTopicRoutes\x12/\n\x05rules\x18\x01 \x03(\x0b\x32 .dapr.proto.runtime.v1.TopicRule\x12\x0f\n\x07\x64\x65\x66\x61ult\x18\x02 \x01(\t\"(\n\tTopicRule\x12\r\n\x05match\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"a\n\x13\x42ulkSubscribeConfig\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x1a\n\x12max_messages_count\x18\x02 \x01(\x05\x12\x1d\n\x15max_await_duration_ms\x18\x03 \x01(\x05\"-\n\x19ListInputBindingsResponse\x12\x10\n\x08\x62indings\x18\x01 \x03(\t\"\x15\n\x13HealthCheckResponse2\xd8\x05\n\x0b\x41ppCallback\x12W\n\x08OnInvoke\x12#.dapr.proto.common.v1.InvokeRequest\x1a$.dapr.proto.common.v1.InvokeResponse\"\x00\x12i\n\x16ListTopicSubscriptions\x12\x16.google.protobuf.Empty\x1a\x35.dapr.proto.runtime.v1.ListTopicSubscriptionsResponse\"\x00\x12\x65\n\x0cOnTopicEvent\x12(.dapr.proto.runtime.v1.TopicEventRequest\x1a).dapr.proto.runtime.v1.TopicEventResponse\"\x00\x12_\n\x11ListInputBindings\x12\x16.google.protobuf.Empty\x1a\x30.dapr.proto.runtime.v1.ListInputBindingsResponse\"\x00\x12k\n\x0eOnBindingEvent\x12*.dapr.proto.runtime.v1.BindingEventRequest\x1a+.dapr.proto.runtime.v1.BindingEventResponse\"\x00\x12q\n\x10OnBulkTopicEvent\x12,.dapr.proto.runtime.v1.TopicEventBulkRequest\x1a-.dapr.proto.runtime.v1.TopicEventBulkResponse\"\x00\x12]\n\nOnJobEvent\x12&.dapr.proto.runtime.v1.JobEventRequest\x1a\'.dapr.proto.runtime.v1.JobEventResponse2m\n\x16\x41ppCallbackHealthCheck\x12S\n\x0bHealthCheck\x12\x16.google.protobuf.Empty\x1a*.dapr.proto.runtime.v1.HealthCheckResponse\"\x00\x32\xf8\x01\n\x10\x41ppCallbackAlpha\x12z\n\x16OnBulkTopicEventAlpha1\x12,.dapr.proto.runtime.v1.TopicEventBulkRequest\x1a-.dapr.proto.runtime.v1.TopicEventBulkResponse\"\x03\x88\x02\x01\x12h\n\x10OnJobEventAlpha1\x12&.dapr.proto.runtime.v1.JobEventRequest\x1a\'.dapr.proto.runtime.v1.JobEventResponse\"\x03\x88\x02\x01\x42y\n\nio.dapr.v1B\x15\x44\x61prAppCallbackProtosZ1github.com/dapr/dapr/pkg/proto/runtime/v1;runtime\xaa\x02 Dapr.AppCallback.Autogen.Grpc.v1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -46,6 +46,8 @@ _globals['_TOPICSUBSCRIPTION_METADATAENTRY']._serialized_options = b'8\001' _globals['_APPCALLBACKALPHA'].methods_by_name['OnBulkTopicEventAlpha1']._loaded_options = None _globals['_APPCALLBACKALPHA'].methods_by_name['OnBulkTopicEventAlpha1']._serialized_options = b'\210\002\001' + _globals['_APPCALLBACKALPHA'].methods_by_name['OnJobEventAlpha1']._loaded_options = None + _globals['_APPCALLBACKALPHA'].methods_by_name['OnJobEventAlpha1']._serialized_options = b'\210\002\001' _globals['_JOBEVENTREQUEST']._serialized_start=188 _globals['_JOBEVENTREQUEST']._serialized_end=354 _globals['_JOBEVENTRESPONSE']._serialized_start=356 @@ -95,9 +97,9 @@ _globals['_HEALTHCHECKRESPONSE']._serialized_start=2904 _globals['_HEALTHCHECKRESPONSE']._serialized_end=2925 _globals['_APPCALLBACK']._serialized_start=2928 - _globals['_APPCALLBACK']._serialized_end=3561 - _globals['_APPCALLBACKHEALTHCHECK']._serialized_start=3563 - _globals['_APPCALLBACKHEALTHCHECK']._serialized_end=3672 - _globals['_APPCALLBACKALPHA']._serialized_start=3675 - _globals['_APPCALLBACKALPHA']._serialized_end=3918 + _globals['_APPCALLBACK']._serialized_end=3656 + _globals['_APPCALLBACKHEALTHCHECK']._serialized_start=3658 + _globals['_APPCALLBACKHEALTHCHECK']._serialized_end=3767 + _globals['_APPCALLBACKALPHA']._serialized_start=3770 + _globals['_APPCALLBACKALPHA']._serialized_end=4018 # @@protoc_insertion_point(module_scope) diff --git a/dapr/proto/runtime/v1/appcallback_pb2.pyi b/dapr/proto/runtime/v1/appcallback_pb2.pyi index 70b39f03b..2f1aa6a44 100644 --- a/dapr/proto/runtime/v1/appcallback_pb2.pyi +++ b/dapr/proto/runtime/v1/appcallback_pb2.pyi @@ -26,10 +26,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -77,6 +77,7 @@ class JobEventRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["content_type", b"content_type", "data", b"data", "http_extension", b"http_extension", "method", b"method", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___JobEventRequest: _TypeAlias = JobEventRequest # noqa: Y015 @@ -89,6 +90,11 @@ class JobEventResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___JobEventResponse: _TypeAlias = JobEventResponse # noqa: Y015 @@ -160,6 +166,7 @@ class TopicEventRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "data_content_type", b"data_content_type", "extensions", b"extensions", "id", b"id", "path", b"path", "pubsub_name", b"pubsub_name", "source", b"source", "spec_version", b"spec_version", "topic", b"topic", "type", b"type"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TopicEventRequest: _TypeAlias = TopicEventRequest # noqa: Y015 @@ -200,8 +207,11 @@ class TopicEventResponse(_message.Message): *, status: Global___TopicEventResponse.TopicEventResponseStatus.ValueType = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["status", b"status"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TopicEventResponse: _TypeAlias = TopicEventResponse # noqa: Y015 @@ -249,6 +259,7 @@ class TopicEventCERequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "data_content_type", b"data_content_type", "extensions", b"extensions", "id", b"id", "source", b"source", "spec_version", b"spec_version", "type", b"type"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TopicEventCERequest: _TypeAlias = TopicEventCERequest # noqa: Y015 @@ -272,8 +283,11 @@ class TopicEventBulkRequestEntry(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... ENTRY_ID_FIELD_NUMBER: _builtins.int BYTES_FIELD_NUMBER: _builtins.int @@ -330,8 +344,11 @@ class TopicEventBulkRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... ID_FIELD_NUMBER: _builtins.int ENTRIES_FIELD_NUMBER: _builtins.int @@ -371,8 +388,11 @@ class TopicEventBulkRequest(_message.Message): type: _builtins.str = ..., path: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["entries", b"entries", "id", b"id", "metadata", b"metadata", "path", b"path", "pubsub_name", b"pubsub_name", "topic", b"topic", "type", b"type"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TopicEventBulkRequest: _TypeAlias = TopicEventBulkRequest # noqa: Y015 @@ -396,8 +416,11 @@ class TopicEventBulkResponseEntry(_message.Message): entry_id: _builtins.str = ..., status: Global___TopicEventResponse.TopicEventResponseStatus.ValueType = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["entry_id", b"entry_id", "status", b"status"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TopicEventBulkResponseEntry: _TypeAlias = TopicEventBulkResponseEntry # noqa: Y015 @@ -417,8 +440,11 @@ class TopicEventBulkResponse(_message.Message): *, statuses: _abc.Iterable[Global___TopicEventBulkResponseEntry] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["statuses", b"statuses"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TopicEventBulkResponse: _TypeAlias = TopicEventBulkResponse # noqa: Y015 @@ -442,8 +468,11 @@ class BindingEventRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... NAME_FIELD_NUMBER: _builtins.int DATA_FIELD_NUMBER: _builtins.int @@ -463,8 +492,11 @@ class BindingEventRequest(_message.Message): data: _builtins.bytes = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "metadata", b"metadata", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___BindingEventRequest: _TypeAlias = BindingEventRequest # noqa: Y015 @@ -525,8 +557,11 @@ class BindingEventResponse(_message.Message): data: _builtins.bytes = ..., concurrency: Global___BindingEventResponse.BindingEventConcurrency.ValueType = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["concurrency", b"concurrency", "data", b"data", "states", b"states", "store_name", b"store_name", "to", b"to"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___BindingEventResponse: _TypeAlias = BindingEventResponse # noqa: Y015 @@ -546,8 +581,11 @@ class ListTopicSubscriptionsResponse(_message.Message): *, subscriptions: _abc.Iterable[Global___TopicSubscription] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["subscriptions", b"subscriptions"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ListTopicSubscriptionsResponse: _TypeAlias = ListTopicSubscriptionsResponse # noqa: Y015 @@ -571,8 +609,11 @@ class TopicSubscription(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... PUBSUB_NAME_FIELD_NUMBER: _builtins.int TOPIC_FIELD_NUMBER: _builtins.int @@ -614,6 +655,7 @@ class TopicSubscription(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["bulk_subscribe", b"bulk_subscribe", "dead_letter_topic", b"dead_letter_topic", "metadata", b"metadata", "pubsub_name", b"pubsub_name", "routes", b"routes", "topic", b"topic"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TopicSubscription: _TypeAlias = TopicSubscription # noqa: Y015 @@ -635,8 +677,11 @@ class TopicRoutes(_message.Message): rules: _abc.Iterable[Global___TopicRule] | None = ..., default: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["default", b"default", "rules", b"rules"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TopicRoutes: _TypeAlias = TopicRoutes # noqa: Y015 @@ -662,8 +707,11 @@ class TopicRule(_message.Message): match: _builtins.str = ..., path: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["match", b"match", "path", b"path"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TopicRule: _TypeAlias = TopicRule # noqa: Y015 @@ -689,8 +737,11 @@ class BulkSubscribeConfig(_message.Message): max_messages_count: _builtins.int = ..., max_await_duration_ms: _builtins.int = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["enabled", b"enabled", "max_await_duration_ms", b"max_await_duration_ms", "max_messages_count", b"max_messages_count"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___BulkSubscribeConfig: _TypeAlias = BulkSubscribeConfig # noqa: Y015 @@ -710,8 +761,11 @@ class ListInputBindingsResponse(_message.Message): *, bindings: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["bindings", b"bindings"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ListInputBindingsResponse: _TypeAlias = ListInputBindingsResponse # noqa: Y015 @@ -726,5 +780,10 @@ class HealthCheckResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___HealthCheckResponse: _TypeAlias = HealthCheckResponse # noqa: Y015 diff --git a/dapr/proto/runtime/v1/appcallback_pb2_grpc.py b/dapr/proto/runtime/v1/appcallback_pb2_grpc.py index 26c586cbc..f2c9baae0 100644 --- a/dapr/proto/runtime/v1/appcallback_pb2_grpc.py +++ b/dapr/proto/runtime/v1/appcallback_pb2_grpc.py @@ -7,7 +7,7 @@ from dapr.proto.runtime.v1 import appcallback_pb2 as dapr_dot_proto_dot_runtime_dot_v1_dot_appcallback__pb2 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False @@ -69,6 +69,11 @@ def __init__(self, channel): request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_appcallback__pb2.TopicEventBulkRequest.SerializeToString, response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_appcallback__pb2.TopicEventBulkResponse.FromString, _registered_method=True) + self.OnJobEvent = channel.unary_unary( + '/dapr.proto.runtime.v1.AppCallback/OnJobEvent', + request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_appcallback__pb2.JobEventRequest.SerializeToString, + response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_appcallback__pb2.JobEventResponse.FromString, + _registered_method=True) class AppCallbackServicer(object): @@ -122,6 +127,13 @@ def OnBulkTopicEvent(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def OnJobEvent(self, request, context): + """Sends job back to the app's endpoint at trigger time. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_AppCallbackServicer_to_server(servicer, server): rpc_method_handlers = { @@ -155,6 +167,11 @@ def add_AppCallbackServicer_to_server(servicer, server): request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_appcallback__pb2.TopicEventBulkRequest.FromString, response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_appcallback__pb2.TopicEventBulkResponse.SerializeToString, ), + 'OnJobEvent': grpc.unary_unary_rpc_method_handler( + servicer.OnJobEvent, + request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_appcallback__pb2.JobEventRequest.FromString, + response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_appcallback__pb2.JobEventResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'dapr.proto.runtime.v1.AppCallback', rpc_method_handlers) @@ -331,6 +348,33 @@ def OnBulkTopicEvent(request, metadata, _registered_method=True) + @staticmethod + def OnJobEvent(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dapr.proto.runtime.v1.AppCallback/OnJobEvent', + dapr_dot_proto_dot_runtime_dot_v1_dot_appcallback__pb2.JobEventRequest.SerializeToString, + dapr_dot_proto_dot_runtime_dot_v1_dot_appcallback__pb2.JobEventResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + class AppCallbackHealthCheckStub(object): """AppCallbackHealthCheck V1 is an optional extension to AppCallback V1 to implement @@ -447,7 +491,7 @@ def OnBulkTopicEventAlpha1(self, request, context): raise NotImplementedError('Method not implemented!') def OnJobEventAlpha1(self, request, context): - """Sends job back to the app's endpoint at trigger time. + """Deprecated: Sends job back to the app's endpoint at trigger time. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') diff --git a/dapr/proto/runtime/v1/binding_pb2.pyi b/dapr/proto/runtime/v1/binding_pb2.pyi index 31ed08886..00e2152e2 100644 --- a/dapr/proto/runtime/v1/binding_pb2.pyi +++ b/dapr/proto/runtime/v1/binding_pb2.pyi @@ -22,10 +22,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -49,8 +49,11 @@ class InvokeBindingRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... NAME_FIELD_NUMBER: _builtins.int DATA_FIELD_NUMBER: _builtins.int @@ -82,8 +85,11 @@ class InvokeBindingRequest(_message.Message): metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., operation: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "metadata", b"metadata", "name", b"name", "operation", b"operation"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___InvokeBindingRequest: _TypeAlias = InvokeBindingRequest # noqa: Y015 @@ -107,8 +113,11 @@ class InvokeBindingResponse(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... DATA_FIELD_NUMBER: _builtins.int METADATA_FIELD_NUMBER: _builtins.int @@ -124,7 +133,10 @@ class InvokeBindingResponse(_message.Message): data: _builtins.bytes = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "metadata", b"metadata"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___InvokeBindingResponse: _TypeAlias = InvokeBindingResponse # noqa: Y015 diff --git a/dapr/proto/runtime/v1/binding_pb2_grpc.py b/dapr/proto/runtime/v1/binding_pb2_grpc.py index 822b02cbc..3393b6dc1 100644 --- a/dapr/proto/runtime/v1/binding_pb2_grpc.py +++ b/dapr/proto/runtime/v1/binding_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/configuration_pb2.pyi b/dapr/proto/runtime/v1/configuration_pb2.pyi index 3e14b5146..e2d651d3d 100644 --- a/dapr/proto/runtime/v1/configuration_pb2.pyi +++ b/dapr/proto/runtime/v1/configuration_pb2.pyi @@ -23,10 +23,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -50,8 +50,11 @@ class GetConfigurationRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... STORE_NAME_FIELD_NUMBER: _builtins.int KEYS_FIELD_NUMBER: _builtins.int @@ -76,8 +79,11 @@ class GetConfigurationRequest(_message.Message): keys: _abc.Iterable[_builtins.str] | None = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys", "metadata", b"metadata", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetConfigurationRequest: _TypeAlias = GetConfigurationRequest # noqa: Y015 @@ -108,6 +114,7 @@ class GetConfigurationResponse(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... ITEMS_FIELD_NUMBER: _builtins.int @_builtins.property @@ -117,8 +124,11 @@ class GetConfigurationResponse(_message.Message): *, items: _abc.Mapping[_builtins.str, _common_pb2.ConfigurationItem] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["items", b"items"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetConfigurationResponse: _TypeAlias = GetConfigurationResponse # noqa: Y015 @@ -142,8 +152,11 @@ class SubscribeConfigurationRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... STORE_NAME_FIELD_NUMBER: _builtins.int KEYS_FIELD_NUMBER: _builtins.int @@ -168,8 +181,11 @@ class SubscribeConfigurationRequest(_message.Message): keys: _abc.Iterable[_builtins.str] | None = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys", "metadata", b"metadata", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubscribeConfigurationRequest: _TypeAlias = SubscribeConfigurationRequest # noqa: Y015 @@ -191,8 +207,11 @@ class UnsubscribeConfigurationRequest(_message.Message): store_name: _builtins.str = ..., id: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___UnsubscribeConfigurationRequest: _TypeAlias = UnsubscribeConfigurationRequest # noqa: Y015 @@ -219,6 +238,7 @@ class SubscribeConfigurationResponse(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... ID_FIELD_NUMBER: _builtins.int ITEMS_FIELD_NUMBER: _builtins.int @@ -234,8 +254,11 @@ class SubscribeConfigurationResponse(_message.Message): id: _builtins.str = ..., items: _abc.Mapping[_builtins.str, _common_pb2.ConfigurationItem] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "items", b"items"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubscribeConfigurationResponse: _TypeAlias = SubscribeConfigurationResponse # noqa: Y015 @@ -253,7 +276,10 @@ class UnsubscribeConfigurationResponse(_message.Message): ok: _builtins.bool = ..., message: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["message", b"message", "ok", b"ok"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___UnsubscribeConfigurationResponse: _TypeAlias = UnsubscribeConfigurationResponse # noqa: Y015 diff --git a/dapr/proto/runtime/v1/configuration_pb2_grpc.py b/dapr/proto/runtime/v1/configuration_pb2_grpc.py index ecdb3ab3c..0e13b85bc 100644 --- a/dapr/proto/runtime/v1/configuration_pb2_grpc.py +++ b/dapr/proto/runtime/v1/configuration_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/crypto_pb2.pyi b/dapr/proto/runtime/v1/crypto_pb2.pyi index 424e4e7fa..38eaf9d42 100644 --- a/dapr/proto/runtime/v1/crypto_pb2.pyi +++ b/dapr/proto/runtime/v1/crypto_pb2.pyi @@ -22,10 +22,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -68,8 +68,11 @@ class SubtleGetKeyRequest(_message.Message): name: _builtins.str = ..., format: Global___SubtleGetKeyRequest.KeyFormat.ValueType = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["component_name", b"component_name", "format", b"format", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleGetKeyRequest: _TypeAlias = SubtleGetKeyRequest # noqa: Y015 @@ -93,8 +96,11 @@ class SubtleGetKeyResponse(_message.Message): name: _builtins.str = ..., public_key: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "public_key", b"public_key"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleGetKeyResponse: _TypeAlias = SubtleGetKeyResponse # noqa: Y015 @@ -134,8 +140,11 @@ class SubtleEncryptRequest(_message.Message): nonce: _builtins.bytes = ..., associated_data: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["algorithm", b"algorithm", "associated_data", b"associated_data", "component_name", b"component_name", "key_name", b"key_name", "nonce", b"nonce", "plaintext", b"plaintext"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleEncryptRequest: _TypeAlias = SubtleEncryptRequest # noqa: Y015 @@ -159,8 +168,11 @@ class SubtleEncryptResponse(_message.Message): ciphertext: _builtins.bytes = ..., tag: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["ciphertext", b"ciphertext", "tag", b"tag"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleEncryptResponse: _TypeAlias = SubtleEncryptResponse # noqa: Y015 @@ -206,8 +218,11 @@ class SubtleDecryptRequest(_message.Message): tag: _builtins.bytes = ..., associated_data: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["algorithm", b"algorithm", "associated_data", b"associated_data", "ciphertext", b"ciphertext", "component_name", b"component_name", "key_name", b"key_name", "nonce", b"nonce", "tag", b"tag"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleDecryptRequest: _TypeAlias = SubtleDecryptRequest # noqa: Y015 @@ -225,8 +240,11 @@ class SubtleDecryptResponse(_message.Message): *, plaintext: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["plaintext", b"plaintext"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleDecryptResponse: _TypeAlias = SubtleDecryptResponse # noqa: Y015 @@ -266,8 +284,11 @@ class SubtleWrapKeyRequest(_message.Message): nonce: _builtins.bytes = ..., associated_data: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["algorithm", b"algorithm", "associated_data", b"associated_data", "component_name", b"component_name", "key_name", b"key_name", "nonce", b"nonce", "plaintext_key", b"plaintext_key"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleWrapKeyRequest: _TypeAlias = SubtleWrapKeyRequest # noqa: Y015 @@ -291,8 +312,11 @@ class SubtleWrapKeyResponse(_message.Message): wrapped_key: _builtins.bytes = ..., tag: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["tag", b"tag", "wrapped_key", b"wrapped_key"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleWrapKeyResponse: _TypeAlias = SubtleWrapKeyResponse # noqa: Y015 @@ -338,8 +362,11 @@ class SubtleUnwrapKeyRequest(_message.Message): tag: _builtins.bytes = ..., associated_data: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["algorithm", b"algorithm", "associated_data", b"associated_data", "component_name", b"component_name", "key_name", b"key_name", "nonce", b"nonce", "tag", b"tag", "wrapped_key", b"wrapped_key"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleUnwrapKeyRequest: _TypeAlias = SubtleUnwrapKeyRequest # noqa: Y015 @@ -357,8 +384,11 @@ class SubtleUnwrapKeyResponse(_message.Message): *, plaintext_key: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["plaintext_key", b"plaintext_key"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleUnwrapKeyResponse: _TypeAlias = SubtleUnwrapKeyResponse # noqa: Y015 @@ -388,8 +418,11 @@ class SubtleSignRequest(_message.Message): algorithm: _builtins.str = ..., key_name: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["algorithm", b"algorithm", "component_name", b"component_name", "digest", b"digest", "key_name", b"key_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleSignRequest: _TypeAlias = SubtleSignRequest # noqa: Y015 @@ -407,8 +440,11 @@ class SubtleSignResponse(_message.Message): *, signature: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["signature", b"signature"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleSignResponse: _TypeAlias = SubtleSignResponse # noqa: Y015 @@ -442,8 +478,11 @@ class SubtleVerifyRequest(_message.Message): key_name: _builtins.str = ..., signature: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["algorithm", b"algorithm", "component_name", b"component_name", "digest", b"digest", "key_name", b"key_name", "signature", b"signature"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleVerifyRequest: _TypeAlias = SubtleVerifyRequest # noqa: Y015 @@ -461,8 +500,11 @@ class SubtleVerifyResponse(_message.Message): *, valid: _builtins.bool = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["valid", b"valid"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubtleVerifyResponse: _TypeAlias = SubtleVerifyResponse # noqa: Y015 @@ -492,6 +534,7 @@ class EncryptRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["options", b"options", "payload", b"payload"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___EncryptRequest: _TypeAlias = EncryptRequest # noqa: Y015 @@ -538,8 +581,11 @@ class EncryptRequestOptions(_message.Message): omit_decryption_key_name: _builtins.bool = ..., decryption_key_name: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["component_name", b"component_name", "data_encryption_cipher", b"data_encryption_cipher", "decryption_key_name", b"decryption_key_name", "key_name", b"key_name", "key_wrap_algorithm", b"key_wrap_algorithm", "omit_decryption_key_name", b"omit_decryption_key_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___EncryptRequestOptions: _TypeAlias = EncryptRequestOptions # noqa: Y015 @@ -563,6 +609,7 @@ class EncryptResponse(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["payload", b"payload"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___EncryptResponse: _TypeAlias = EncryptResponse # noqa: Y015 @@ -592,6 +639,7 @@ class DecryptRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["options", b"options", "payload", b"payload"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___DecryptRequest: _TypeAlias = DecryptRequest # noqa: Y015 @@ -616,8 +664,11 @@ class DecryptRequestOptions(_message.Message): component_name: _builtins.str = ..., key_name: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["component_name", b"component_name", "key_name", b"key_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___DecryptRequestOptions: _TypeAlias = DecryptRequestOptions # noqa: Y015 @@ -641,5 +692,6 @@ class DecryptResponse(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["payload", b"payload"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___DecryptResponse: _TypeAlias = DecryptResponse # noqa: Y015 diff --git a/dapr/proto/runtime/v1/crypto_pb2_grpc.py b/dapr/proto/runtime/v1/crypto_pb2_grpc.py index c054d79a2..1416ee0bd 100644 --- a/dapr/proto/runtime/v1/crypto_pb2_grpc.py +++ b/dapr/proto/runtime/v1/crypto_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/dapr_pb2.py b/dapr/proto/runtime/v1/dapr_pb2.py index 642ced434..af4ac3502 100644 --- a/dapr/proto/runtime/v1/dapr_pb2.py +++ b/dapr/proto/runtime/v1/dapr_pb2.py @@ -39,7 +39,7 @@ from dapr.proto.runtime.v1 import ai_pb2 as dapr_dot_proto_dot_runtime_dot_v1_dot_ai__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n dapr/proto/runtime/v1/dapr.proto\x12\x15\x64\x61pr.proto.runtime.v1\x1a\x1bgoogle/protobuf/empty.proto\x1a!dapr/proto/common/v1/common.proto\x1a\"dapr/proto/runtime/v1/actors.proto\x1a\"dapr/proto/runtime/v1/pubsub.proto\x1a\"dapr/proto/runtime/v1/invoke.proto\x1a!dapr/proto/runtime/v1/state.proto\x1a#dapr/proto/runtime/v1/binding.proto\x1a\"dapr/proto/runtime/v1/secret.proto\x1a$dapr/proto/runtime/v1/metadata.proto\x1a)dapr/proto/runtime/v1/configuration.proto\x1a dapr/proto/runtime/v1/lock.proto\x1a\"dapr/proto/runtime/v1/crypto.proto\x1a$dapr/proto/runtime/v1/workflow.proto\x1a dapr/proto/runtime/v1/jobs.proto\x1a\x1e\x64\x61pr/proto/runtime/v1/ai.proto\"\x11\n\x0fShutdownRequest2\xbe\x38\n\x04\x44\x61pr\x12\x64\n\rInvokeService\x12+.dapr.proto.runtime.v1.InvokeServiceRequest\x1a$.dapr.proto.common.v1.InvokeResponse\"\x00\x12]\n\x08GetState\x12&.dapr.proto.runtime.v1.GetStateRequest\x1a\'.dapr.proto.runtime.v1.GetStateResponse\"\x00\x12i\n\x0cGetBulkState\x12*.dapr.proto.runtime.v1.GetBulkStateRequest\x1a+.dapr.proto.runtime.v1.GetBulkStateResponse\"\x00\x12N\n\tSaveState\x12\'.dapr.proto.runtime.v1.SaveStateRequest\x1a\x16.google.protobuf.Empty\"\x00\x12i\n\x10QueryStateAlpha1\x12(.dapr.proto.runtime.v1.QueryStateRequest\x1a).dapr.proto.runtime.v1.QueryStateResponse\"\x00\x12R\n\x0b\x44\x65leteState\x12).dapr.proto.runtime.v1.DeleteStateRequest\x1a\x16.google.protobuf.Empty\"\x00\x12Z\n\x0f\x44\x65leteBulkState\x12-.dapr.proto.runtime.v1.DeleteBulkStateRequest\x1a\x16.google.protobuf.Empty\"\x00\x12j\n\x17\x45xecuteStateTransaction\x12\x35.dapr.proto.runtime.v1.ExecuteStateTransactionRequest\x1a\x16.google.protobuf.Empty\"\x00\x12T\n\x0cPublishEvent\x12*.dapr.proto.runtime.v1.PublishEventRequest\x1a\x16.google.protobuf.Empty\"\x00\x12t\n\x16\x42ulkPublishEventAlpha1\x12).dapr.proto.runtime.v1.BulkPublishRequest\x1a*.dapr.proto.runtime.v1.BulkPublishResponse\"\x03\x88\x02\x01\x12k\n\x10\x42ulkPublishEvent\x12).dapr.proto.runtime.v1.BulkPublishRequest\x1a*.dapr.proto.runtime.v1.BulkPublishResponse\"\x00\x12\x97\x01\n\x1aSubscribeTopicEventsAlpha1\x12\x38.dapr.proto.runtime.v1.SubscribeTopicEventsRequestAlpha1\x1a\x39.dapr.proto.runtime.v1.SubscribeTopicEventsResponseAlpha1\"\x00(\x01\x30\x01\x12l\n\rInvokeBinding\x12+.dapr.proto.runtime.v1.InvokeBindingRequest\x1a,.dapr.proto.runtime.v1.InvokeBindingResponse\"\x00\x12`\n\tGetSecret\x12\'.dapr.proto.runtime.v1.GetSecretRequest\x1a(.dapr.proto.runtime.v1.GetSecretResponse\"\x00\x12l\n\rGetBulkSecret\x12+.dapr.proto.runtime.v1.GetBulkSecretRequest\x1a,.dapr.proto.runtime.v1.GetBulkSecretResponse\"\x00\x12`\n\x12RegisterActorTimer\x12\x30.dapr.proto.runtime.v1.RegisterActorTimerRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x64\n\x14UnregisterActorTimer\x12\x32.dapr.proto.runtime.v1.UnregisterActorTimerRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x66\n\x15RegisterActorReminder\x12\x33.dapr.proto.runtime.v1.RegisterActorReminderRequest\x1a\x16.google.protobuf.Empty\"\x00\x12j\n\x17UnregisterActorReminder\x12\x35.dapr.proto.runtime.v1.UnregisterActorReminderRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x9f\x01\n\x1eUnregisterActorRemindersByType\x12<.dapr.proto.runtime.v1.UnregisterActorRemindersByTypeRequest\x1a=.dapr.proto.runtime.v1.UnregisterActorRemindersByTypeResponse\"\x00\x12{\n\x12ListActorReminders\x12\x30.dapr.proto.runtime.v1.ListActorRemindersRequest\x1a\x31.dapr.proto.runtime.v1.ListActorRemindersResponse\"\x00\x12l\n\rGetActorState\x12+.dapr.proto.runtime.v1.GetActorStateRequest\x1a,.dapr.proto.runtime.v1.GetActorStateResponse\"\x00\x12u\n\x10GetActorReminder\x12..dapr.proto.runtime.v1.GetActorReminderRequest\x1a/.dapr.proto.runtime.v1.GetActorReminderResponse\"\x00\x12t\n\x1c\x45xecuteActorStateTransaction\x12:.dapr.proto.runtime.v1.ExecuteActorStateTransactionRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x66\n\x0bInvokeActor\x12).dapr.proto.runtime.v1.InvokeActorRequest\x1a*.dapr.proto.runtime.v1.InvokeActorResponse\"\x00\x12{\n\x16GetConfigurationAlpha1\x12..dapr.proto.runtime.v1.GetConfigurationRequest\x1a/.dapr.proto.runtime.v1.GetConfigurationResponse\"\x00\x12u\n\x10GetConfiguration\x12..dapr.proto.runtime.v1.GetConfigurationRequest\x1a/.dapr.proto.runtime.v1.GetConfigurationResponse\"\x00\x12\x8f\x01\n\x1cSubscribeConfigurationAlpha1\x12\x34.dapr.proto.runtime.v1.SubscribeConfigurationRequest\x1a\x35.dapr.proto.runtime.v1.SubscribeConfigurationResponse\"\x00\x30\x01\x12\x89\x01\n\x16SubscribeConfiguration\x12\x34.dapr.proto.runtime.v1.SubscribeConfigurationRequest\x1a\x35.dapr.proto.runtime.v1.SubscribeConfigurationResponse\"\x00\x30\x01\x12\x93\x01\n\x1eUnsubscribeConfigurationAlpha1\x12\x36.dapr.proto.runtime.v1.UnsubscribeConfigurationRequest\x1a\x37.dapr.proto.runtime.v1.UnsubscribeConfigurationResponse\"\x00\x12\x8d\x01\n\x18UnsubscribeConfiguration\x12\x36.dapr.proto.runtime.v1.UnsubscribeConfigurationRequest\x1a\x37.dapr.proto.runtime.v1.UnsubscribeConfigurationResponse\"\x00\x12`\n\rTryLockAlpha1\x12%.dapr.proto.runtime.v1.TryLockRequest\x1a&.dapr.proto.runtime.v1.TryLockResponse\"\x00\x12]\n\x0cUnlockAlpha1\x12$.dapr.proto.runtime.v1.UnlockRequest\x1a%.dapr.proto.runtime.v1.UnlockResponse\"\x00\x12\x62\n\rEncryptAlpha1\x12%.dapr.proto.runtime.v1.EncryptRequest\x1a&.dapr.proto.runtime.v1.EncryptResponse(\x01\x30\x01\x12\x62\n\rDecryptAlpha1\x12%.dapr.proto.runtime.v1.DecryptRequest\x1a&.dapr.proto.runtime.v1.DecryptResponse(\x01\x30\x01\x12\x66\n\x0bGetMetadata\x12).dapr.proto.runtime.v1.GetMetadataRequest\x1a*.dapr.proto.runtime.v1.GetMetadataResponse\"\x00\x12R\n\x0bSetMetadata\x12).dapr.proto.runtime.v1.SetMetadataRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x12SubtleGetKeyAlpha1\x12*.dapr.proto.runtime.v1.SubtleGetKeyRequest\x1a+.dapr.proto.runtime.v1.SubtleGetKeyResponse\x12p\n\x13SubtleEncryptAlpha1\x12+.dapr.proto.runtime.v1.SubtleEncryptRequest\x1a,.dapr.proto.runtime.v1.SubtleEncryptResponse\x12p\n\x13SubtleDecryptAlpha1\x12+.dapr.proto.runtime.v1.SubtleDecryptRequest\x1a,.dapr.proto.runtime.v1.SubtleDecryptResponse\x12p\n\x13SubtleWrapKeyAlpha1\x12+.dapr.proto.runtime.v1.SubtleWrapKeyRequest\x1a,.dapr.proto.runtime.v1.SubtleWrapKeyResponse\x12v\n\x15SubtleUnwrapKeyAlpha1\x12-.dapr.proto.runtime.v1.SubtleUnwrapKeyRequest\x1a..dapr.proto.runtime.v1.SubtleUnwrapKeyResponse\x12g\n\x10SubtleSignAlpha1\x12(.dapr.proto.runtime.v1.SubtleSignRequest\x1a).dapr.proto.runtime.v1.SubtleSignResponse\x12m\n\x12SubtleVerifyAlpha1\x12*.dapr.proto.runtime.v1.SubtleVerifyRequest\x1a+.dapr.proto.runtime.v1.SubtleVerifyResponse\x12u\n\x13StartWorkflowAlpha1\x12+.dapr.proto.runtime.v1.StartWorkflowRequest\x1a,.dapr.proto.runtime.v1.StartWorkflowResponse\"\x03\x88\x02\x01\x12o\n\x11GetWorkflowAlpha1\x12).dapr.proto.runtime.v1.GetWorkflowRequest\x1a*.dapr.proto.runtime.v1.GetWorkflowResponse\"\x03\x88\x02\x01\x12_\n\x13PurgeWorkflowAlpha1\x12+.dapr.proto.runtime.v1.PurgeWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x03\x88\x02\x01\x12g\n\x17TerminateWorkflowAlpha1\x12/.dapr.proto.runtime.v1.TerminateWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x03\x88\x02\x01\x12_\n\x13PauseWorkflowAlpha1\x12+.dapr.proto.runtime.v1.PauseWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x03\x88\x02\x01\x12\x61\n\x14ResumeWorkflowAlpha1\x12,.dapr.proto.runtime.v1.ResumeWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x03\x88\x02\x01\x12i\n\x18RaiseEventWorkflowAlpha1\x12\x30.dapr.proto.runtime.v1.RaiseEventWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x03\x88\x02\x01\x12q\n\x12StartWorkflowBeta1\x12+.dapr.proto.runtime.v1.StartWorkflowRequest\x1a,.dapr.proto.runtime.v1.StartWorkflowResponse\"\x00\x12k\n\x10GetWorkflowBeta1\x12).dapr.proto.runtime.v1.GetWorkflowRequest\x1a*.dapr.proto.runtime.v1.GetWorkflowResponse\"\x00\x12[\n\x12PurgeWorkflowBeta1\x12+.dapr.proto.runtime.v1.PurgeWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x16TerminateWorkflowBeta1\x12/.dapr.proto.runtime.v1.TerminateWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x00\x12[\n\x12PauseWorkflowBeta1\x12+.dapr.proto.runtime.v1.PauseWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x00\x12]\n\x13ResumeWorkflowBeta1\x12,.dapr.proto.runtime.v1.ResumeWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x65\n\x17RaiseEventWorkflowBeta1\x12\x30.dapr.proto.runtime.v1.RaiseEventWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x00\x12L\n\x08Shutdown\x12&.dapr.proto.runtime.v1.ShutdownRequest\x1a\x16.google.protobuf.Empty\"\x00\x12l\n\x11ScheduleJobAlpha1\x12).dapr.proto.runtime.v1.ScheduleJobRequest\x1a*.dapr.proto.runtime.v1.ScheduleJobResponse\"\x00\x12]\n\x0cGetJobAlpha1\x12$.dapr.proto.runtime.v1.GetJobRequest\x1a%.dapr.proto.runtime.v1.GetJobResponse\"\x00\x12\x66\n\x0f\x44\x65leteJobAlpha1\x12\'.dapr.proto.runtime.v1.DeleteJobRequest\x1a(.dapr.proto.runtime.v1.DeleteJobResponse\"\x00\x12\x8d\x01\n\x18\x44\x65leteJobsByPrefixAlpha1\x12\x36.dapr.proto.runtime.v1.DeleteJobsByPrefixRequestAlpha1\x1a\x37.dapr.proto.runtime.v1.DeleteJobsByPrefixResponseAlpha1\"\x00\x12o\n\x0eListJobsAlpha1\x12,.dapr.proto.runtime.v1.ListJobsRequestAlpha1\x1a-.dapr.proto.runtime.v1.ListJobsResponseAlpha1\"\x00\x12k\n\x0e\x43onverseAlpha1\x12*.dapr.proto.runtime.v1.ConversationRequest\x1a+.dapr.proto.runtime.v1.ConversationResponse\"\x00\x12w\n\x0e\x43onverseAlpha2\x12\x30.dapr.proto.runtime.v1.ConversationRequestAlpha2\x1a\x31.dapr.proto.runtime.v1.ConversationResponseAlpha2\"\x00\x42i\n\nio.dapr.v1B\nDaprProtosZ1github.com/dapr/dapr/pkg/proto/runtime/v1;runtime\xaa\x02\x1b\x44\x61pr.Client.Autogen.Grpc.v1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n dapr/proto/runtime/v1/dapr.proto\x12\x15\x64\x61pr.proto.runtime.v1\x1a\x1bgoogle/protobuf/empty.proto\x1a!dapr/proto/common/v1/common.proto\x1a\"dapr/proto/runtime/v1/actors.proto\x1a\"dapr/proto/runtime/v1/pubsub.proto\x1a\"dapr/proto/runtime/v1/invoke.proto\x1a!dapr/proto/runtime/v1/state.proto\x1a#dapr/proto/runtime/v1/binding.proto\x1a\"dapr/proto/runtime/v1/secret.proto\x1a$dapr/proto/runtime/v1/metadata.proto\x1a)dapr/proto/runtime/v1/configuration.proto\x1a dapr/proto/runtime/v1/lock.proto\x1a\"dapr/proto/runtime/v1/crypto.proto\x1a$dapr/proto/runtime/v1/workflow.proto\x1a dapr/proto/runtime/v1/jobs.proto\x1a\x1e\x64\x61pr/proto/runtime/v1/ai.proto\"\x11\n\x0fShutdownRequest2\xcc<\n\x04\x44\x61pr\x12\x64\n\rInvokeService\x12+.dapr.proto.runtime.v1.InvokeServiceRequest\x1a$.dapr.proto.common.v1.InvokeResponse\"\x00\x12]\n\x08GetState\x12&.dapr.proto.runtime.v1.GetStateRequest\x1a\'.dapr.proto.runtime.v1.GetStateResponse\"\x00\x12i\n\x0cGetBulkState\x12*.dapr.proto.runtime.v1.GetBulkStateRequest\x1a+.dapr.proto.runtime.v1.GetBulkStateResponse\"\x00\x12N\n\tSaveState\x12\'.dapr.proto.runtime.v1.SaveStateRequest\x1a\x16.google.protobuf.Empty\"\x00\x12i\n\x10QueryStateAlpha1\x12(.dapr.proto.runtime.v1.QueryStateRequest\x1a).dapr.proto.runtime.v1.QueryStateResponse\"\x00\x12R\n\x0b\x44\x65leteState\x12).dapr.proto.runtime.v1.DeleteStateRequest\x1a\x16.google.protobuf.Empty\"\x00\x12Z\n\x0f\x44\x65leteBulkState\x12-.dapr.proto.runtime.v1.DeleteBulkStateRequest\x1a\x16.google.protobuf.Empty\"\x00\x12j\n\x17\x45xecuteStateTransaction\x12\x35.dapr.proto.runtime.v1.ExecuteStateTransactionRequest\x1a\x16.google.protobuf.Empty\"\x00\x12T\n\x0cPublishEvent\x12*.dapr.proto.runtime.v1.PublishEventRequest\x1a\x16.google.protobuf.Empty\"\x00\x12t\n\x16\x42ulkPublishEventAlpha1\x12).dapr.proto.runtime.v1.BulkPublishRequest\x1a*.dapr.proto.runtime.v1.BulkPublishResponse\"\x03\x88\x02\x01\x12k\n\x10\x42ulkPublishEvent\x12).dapr.proto.runtime.v1.BulkPublishRequest\x1a*.dapr.proto.runtime.v1.BulkPublishResponse\"\x00\x12\x97\x01\n\x1aSubscribeTopicEventsAlpha1\x12\x38.dapr.proto.runtime.v1.SubscribeTopicEventsRequestAlpha1\x1a\x39.dapr.proto.runtime.v1.SubscribeTopicEventsResponseAlpha1\"\x00(\x01\x30\x01\x12l\n\rInvokeBinding\x12+.dapr.proto.runtime.v1.InvokeBindingRequest\x1a,.dapr.proto.runtime.v1.InvokeBindingResponse\"\x00\x12`\n\tGetSecret\x12\'.dapr.proto.runtime.v1.GetSecretRequest\x1a(.dapr.proto.runtime.v1.GetSecretResponse\"\x00\x12l\n\rGetBulkSecret\x12+.dapr.proto.runtime.v1.GetBulkSecretRequest\x1a,.dapr.proto.runtime.v1.GetBulkSecretResponse\"\x00\x12`\n\x12RegisterActorTimer\x12\x30.dapr.proto.runtime.v1.RegisterActorTimerRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x64\n\x14UnregisterActorTimer\x12\x32.dapr.proto.runtime.v1.UnregisterActorTimerRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x66\n\x15RegisterActorReminder\x12\x33.dapr.proto.runtime.v1.RegisterActorReminderRequest\x1a\x16.google.protobuf.Empty\"\x00\x12j\n\x17UnregisterActorReminder\x12\x35.dapr.proto.runtime.v1.UnregisterActorReminderRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x9f\x01\n\x1eUnregisterActorRemindersByType\x12<.dapr.proto.runtime.v1.UnregisterActorRemindersByTypeRequest\x1a=.dapr.proto.runtime.v1.UnregisterActorRemindersByTypeResponse\"\x00\x12{\n\x12ListActorReminders\x12\x30.dapr.proto.runtime.v1.ListActorRemindersRequest\x1a\x31.dapr.proto.runtime.v1.ListActorRemindersResponse\"\x00\x12l\n\rGetActorState\x12+.dapr.proto.runtime.v1.GetActorStateRequest\x1a,.dapr.proto.runtime.v1.GetActorStateResponse\"\x00\x12u\n\x10GetActorReminder\x12..dapr.proto.runtime.v1.GetActorReminderRequest\x1a/.dapr.proto.runtime.v1.GetActorReminderResponse\"\x00\x12t\n\x1c\x45xecuteActorStateTransaction\x12:.dapr.proto.runtime.v1.ExecuteActorStateTransactionRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x66\n\x0bInvokeActor\x12).dapr.proto.runtime.v1.InvokeActorRequest\x1a*.dapr.proto.runtime.v1.InvokeActorResponse\"\x00\x12{\n\x16GetConfigurationAlpha1\x12..dapr.proto.runtime.v1.GetConfigurationRequest\x1a/.dapr.proto.runtime.v1.GetConfigurationResponse\"\x00\x12u\n\x10GetConfiguration\x12..dapr.proto.runtime.v1.GetConfigurationRequest\x1a/.dapr.proto.runtime.v1.GetConfigurationResponse\"\x00\x12\x8f\x01\n\x1cSubscribeConfigurationAlpha1\x12\x34.dapr.proto.runtime.v1.SubscribeConfigurationRequest\x1a\x35.dapr.proto.runtime.v1.SubscribeConfigurationResponse\"\x00\x30\x01\x12\x89\x01\n\x16SubscribeConfiguration\x12\x34.dapr.proto.runtime.v1.SubscribeConfigurationRequest\x1a\x35.dapr.proto.runtime.v1.SubscribeConfigurationResponse\"\x00\x30\x01\x12\x93\x01\n\x1eUnsubscribeConfigurationAlpha1\x12\x36.dapr.proto.runtime.v1.UnsubscribeConfigurationRequest\x1a\x37.dapr.proto.runtime.v1.UnsubscribeConfigurationResponse\"\x00\x12\x8d\x01\n\x18UnsubscribeConfiguration\x12\x36.dapr.proto.runtime.v1.UnsubscribeConfigurationRequest\x1a\x37.dapr.proto.runtime.v1.UnsubscribeConfigurationResponse\"\x00\x12`\n\rTryLockAlpha1\x12%.dapr.proto.runtime.v1.TryLockRequest\x1a&.dapr.proto.runtime.v1.TryLockResponse\"\x00\x12]\n\x0cUnlockAlpha1\x12$.dapr.proto.runtime.v1.UnlockRequest\x1a%.dapr.proto.runtime.v1.UnlockResponse\"\x00\x12\x62\n\rEncryptAlpha1\x12%.dapr.proto.runtime.v1.EncryptRequest\x1a&.dapr.proto.runtime.v1.EncryptResponse(\x01\x30\x01\x12\x62\n\rDecryptAlpha1\x12%.dapr.proto.runtime.v1.DecryptRequest\x1a&.dapr.proto.runtime.v1.DecryptResponse(\x01\x30\x01\x12\x66\n\x0bGetMetadata\x12).dapr.proto.runtime.v1.GetMetadataRequest\x1a*.dapr.proto.runtime.v1.GetMetadataResponse\"\x00\x12R\n\x0bSetMetadata\x12).dapr.proto.runtime.v1.SetMetadataRequest\x1a\x16.google.protobuf.Empty\"\x00\x12m\n\x12SubtleGetKeyAlpha1\x12*.dapr.proto.runtime.v1.SubtleGetKeyRequest\x1a+.dapr.proto.runtime.v1.SubtleGetKeyResponse\x12p\n\x13SubtleEncryptAlpha1\x12+.dapr.proto.runtime.v1.SubtleEncryptRequest\x1a,.dapr.proto.runtime.v1.SubtleEncryptResponse\x12p\n\x13SubtleDecryptAlpha1\x12+.dapr.proto.runtime.v1.SubtleDecryptRequest\x1a,.dapr.proto.runtime.v1.SubtleDecryptResponse\x12p\n\x13SubtleWrapKeyAlpha1\x12+.dapr.proto.runtime.v1.SubtleWrapKeyRequest\x1a,.dapr.proto.runtime.v1.SubtleWrapKeyResponse\x12v\n\x15SubtleUnwrapKeyAlpha1\x12-.dapr.proto.runtime.v1.SubtleUnwrapKeyRequest\x1a..dapr.proto.runtime.v1.SubtleUnwrapKeyResponse\x12g\n\x10SubtleSignAlpha1\x12(.dapr.proto.runtime.v1.SubtleSignRequest\x1a).dapr.proto.runtime.v1.SubtleSignResponse\x12m\n\x12SubtleVerifyAlpha1\x12*.dapr.proto.runtime.v1.SubtleVerifyRequest\x1a+.dapr.proto.runtime.v1.SubtleVerifyResponse\x12u\n\x13StartWorkflowAlpha1\x12+.dapr.proto.runtime.v1.StartWorkflowRequest\x1a,.dapr.proto.runtime.v1.StartWorkflowResponse\"\x03\x88\x02\x01\x12o\n\x11GetWorkflowAlpha1\x12).dapr.proto.runtime.v1.GetWorkflowRequest\x1a*.dapr.proto.runtime.v1.GetWorkflowResponse\"\x03\x88\x02\x01\x12_\n\x13PurgeWorkflowAlpha1\x12+.dapr.proto.runtime.v1.PurgeWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x03\x88\x02\x01\x12g\n\x17TerminateWorkflowAlpha1\x12/.dapr.proto.runtime.v1.TerminateWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x03\x88\x02\x01\x12_\n\x13PauseWorkflowAlpha1\x12+.dapr.proto.runtime.v1.PauseWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x03\x88\x02\x01\x12\x61\n\x14ResumeWorkflowAlpha1\x12,.dapr.proto.runtime.v1.ResumeWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x03\x88\x02\x01\x12i\n\x18RaiseEventWorkflowAlpha1\x12\x30.dapr.proto.runtime.v1.RaiseEventWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x03\x88\x02\x01\x12q\n\x12StartWorkflowBeta1\x12+.dapr.proto.runtime.v1.StartWorkflowRequest\x1a,.dapr.proto.runtime.v1.StartWorkflowResponse\"\x00\x12k\n\x10GetWorkflowBeta1\x12).dapr.proto.runtime.v1.GetWorkflowRequest\x1a*.dapr.proto.runtime.v1.GetWorkflowResponse\"\x00\x12[\n\x12PurgeWorkflowBeta1\x12+.dapr.proto.runtime.v1.PurgeWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x63\n\x16TerminateWorkflowBeta1\x12/.dapr.proto.runtime.v1.TerminateWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x00\x12[\n\x12PauseWorkflowBeta1\x12+.dapr.proto.runtime.v1.PauseWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x00\x12]\n\x13ResumeWorkflowBeta1\x12,.dapr.proto.runtime.v1.ResumeWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x65\n\x17RaiseEventWorkflowBeta1\x12\x30.dapr.proto.runtime.v1.RaiseEventWorkflowRequest\x1a\x16.google.protobuf.Empty\"\x00\x12L\n\x08Shutdown\x12&.dapr.proto.runtime.v1.ShutdownRequest\x1a\x16.google.protobuf.Empty\"\x00\x12o\n\x11ScheduleJobAlpha1\x12).dapr.proto.runtime.v1.ScheduleJobRequest\x1a*.dapr.proto.runtime.v1.ScheduleJobResponse\"\x03\x88\x02\x01\x12\x66\n\x0bScheduleJob\x12).dapr.proto.runtime.v1.ScheduleJobRequest\x1a*.dapr.proto.runtime.v1.ScheduleJobResponse\"\x00\x12`\n\x0cGetJobAlpha1\x12$.dapr.proto.runtime.v1.GetJobRequest\x1a%.dapr.proto.runtime.v1.GetJobResponse\"\x03\x88\x02\x01\x12W\n\x06GetJob\x12$.dapr.proto.runtime.v1.GetJobRequest\x1a%.dapr.proto.runtime.v1.GetJobResponse\"\x00\x12i\n\x0f\x44\x65leteJobAlpha1\x12\'.dapr.proto.runtime.v1.DeleteJobRequest\x1a(.dapr.proto.runtime.v1.DeleteJobResponse\"\x03\x88\x02\x01\x12`\n\tDeleteJob\x12\'.dapr.proto.runtime.v1.DeleteJobRequest\x1a(.dapr.proto.runtime.v1.DeleteJobResponse\"\x00\x12\x90\x01\n\x18\x44\x65leteJobsByPrefixAlpha1\x12\x36.dapr.proto.runtime.v1.DeleteJobsByPrefixRequestAlpha1\x1a\x37.dapr.proto.runtime.v1.DeleteJobsByPrefixResponseAlpha1\"\x03\x88\x02\x01\x12{\n\x12\x44\x65leteJobsByPrefix\x12\x30.dapr.proto.runtime.v1.DeleteJobsByPrefixRequest\x1a\x31.dapr.proto.runtime.v1.DeleteJobsByPrefixResponse\"\x00\x12r\n\x0eListJobsAlpha1\x12,.dapr.proto.runtime.v1.ListJobsRequestAlpha1\x1a-.dapr.proto.runtime.v1.ListJobsResponseAlpha1\"\x03\x88\x02\x01\x12]\n\x08ListJobs\x12&.dapr.proto.runtime.v1.ListJobsRequest\x1a\'.dapr.proto.runtime.v1.ListJobsResponse\"\x00\x12k\n\x0e\x43onverseAlpha1\x12*.dapr.proto.runtime.v1.ConversationRequest\x1a+.dapr.proto.runtime.v1.ConversationResponse\"\x00\x12w\n\x0e\x43onverseAlpha2\x12\x30.dapr.proto.runtime.v1.ConversationRequestAlpha2\x1a\x31.dapr.proto.runtime.v1.ConversationResponseAlpha2\"\x00\x42i\n\nio.dapr.v1B\nDaprProtosZ1github.com/dapr/dapr/pkg/proto/runtime/v1;runtime\xaa\x02\x1b\x44\x61pr.Client.Autogen.Grpc.v1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -63,8 +63,18 @@ _globals['_DAPR'].methods_by_name['ResumeWorkflowAlpha1']._serialized_options = b'\210\002\001' _globals['_DAPR'].methods_by_name['RaiseEventWorkflowAlpha1']._loaded_options = None _globals['_DAPR'].methods_by_name['RaiseEventWorkflowAlpha1']._serialized_options = b'\210\002\001' + _globals['_DAPR'].methods_by_name['ScheduleJobAlpha1']._loaded_options = None + _globals['_DAPR'].methods_by_name['ScheduleJobAlpha1']._serialized_options = b'\210\002\001' + _globals['_DAPR'].methods_by_name['GetJobAlpha1']._loaded_options = None + _globals['_DAPR'].methods_by_name['GetJobAlpha1']._serialized_options = b'\210\002\001' + _globals['_DAPR'].methods_by_name['DeleteJobAlpha1']._loaded_options = None + _globals['_DAPR'].methods_by_name['DeleteJobAlpha1']._serialized_options = b'\210\002\001' + _globals['_DAPR'].methods_by_name['DeleteJobsByPrefixAlpha1']._loaded_options = None + _globals['_DAPR'].methods_by_name['DeleteJobsByPrefixAlpha1']._serialized_options = b'\210\002\001' + _globals['_DAPR'].methods_by_name['ListJobsAlpha1']._loaded_options = None + _globals['_DAPR'].methods_by_name['ListJobsAlpha1']._serialized_options = b'\210\002\001' _globals['_SHUTDOWNREQUEST']._serialized_start=594 _globals['_SHUTDOWNREQUEST']._serialized_end=611 _globals['_DAPR']._serialized_start=614 - _globals['_DAPR']._serialized_end=7844 + _globals['_DAPR']._serialized_end=8370 # @@protoc_insertion_point(module_scope) diff --git a/dapr/proto/runtime/v1/dapr_pb2.pyi b/dapr/proto/runtime/v1/dapr_pb2.pyi index 1fb71704b..451058205 100644 --- a/dapr/proto/runtime/v1/dapr_pb2.pyi +++ b/dapr/proto/runtime/v1/dapr_pb2.pyi @@ -16,13 +16,14 @@ limitations under the License. from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message +import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -37,5 +38,10 @@ class ShutdownRequest(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ShutdownRequest: _TypeAlias = ShutdownRequest # noqa: Y015 diff --git a/dapr/proto/runtime/v1/dapr_pb2_grpc.py b/dapr/proto/runtime/v1/dapr_pb2_grpc.py index 803556190..2ed5c2f67 100644 --- a/dapr/proto/runtime/v1/dapr_pb2_grpc.py +++ b/dapr/proto/runtime/v1/dapr_pb2_grpc.py @@ -20,7 +20,7 @@ from dapr.proto.runtime.v1 import workflow_pb2 as dapr_dot_proto_dot_runtime_dot_v1_dot_workflow__pb2 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False @@ -350,26 +350,51 @@ def __init__(self, channel): request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ScheduleJobRequest.SerializeToString, response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ScheduleJobResponse.FromString, _registered_method=True) + self.ScheduleJob = channel.unary_unary( + '/dapr.proto.runtime.v1.Dapr/ScheduleJob', + request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ScheduleJobRequest.SerializeToString, + response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ScheduleJobResponse.FromString, + _registered_method=True) self.GetJobAlpha1 = channel.unary_unary( '/dapr.proto.runtime.v1.Dapr/GetJobAlpha1', request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.GetJobRequest.SerializeToString, response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.GetJobResponse.FromString, _registered_method=True) + self.GetJob = channel.unary_unary( + '/dapr.proto.runtime.v1.Dapr/GetJob', + request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.GetJobRequest.SerializeToString, + response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.GetJobResponse.FromString, + _registered_method=True) self.DeleteJobAlpha1 = channel.unary_unary( '/dapr.proto.runtime.v1.Dapr/DeleteJobAlpha1', request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobRequest.SerializeToString, response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobResponse.FromString, _registered_method=True) + self.DeleteJob = channel.unary_unary( + '/dapr.proto.runtime.v1.Dapr/DeleteJob', + request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobRequest.SerializeToString, + response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobResponse.FromString, + _registered_method=True) self.DeleteJobsByPrefixAlpha1 = channel.unary_unary( '/dapr.proto.runtime.v1.Dapr/DeleteJobsByPrefixAlpha1', request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobsByPrefixRequestAlpha1.SerializeToString, response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobsByPrefixResponseAlpha1.FromString, _registered_method=True) + self.DeleteJobsByPrefix = channel.unary_unary( + '/dapr.proto.runtime.v1.Dapr/DeleteJobsByPrefix', + request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobsByPrefixRequest.SerializeToString, + response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobsByPrefixResponse.FromString, + _registered_method=True) self.ListJobsAlpha1 = channel.unary_unary( '/dapr.proto.runtime.v1.Dapr/ListJobsAlpha1', request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ListJobsRequestAlpha1.SerializeToString, response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ListJobsResponseAlpha1.FromString, _registered_method=True) + self.ListJobs = channel.unary_unary( + '/dapr.proto.runtime.v1.Dapr/ListJobs', + request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ListJobsRequest.SerializeToString, + response_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ListJobsResponse.FromString, + _registered_method=True) self.ConverseAlpha1 = channel.unary_unary( '/dapr.proto.runtime.v1.Dapr/ConverseAlpha1', request_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_ai__pb2.ConversationRequest.SerializeToString, @@ -800,6 +825,13 @@ def Shutdown(self, request, context): raise NotImplementedError('Method not implemented!') def ScheduleJobAlpha1(self, request, context): + """Deprecated: Create and schedule a job + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ScheduleJob(self, request, context): """Create and schedule a job """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -807,6 +839,13 @@ def ScheduleJobAlpha1(self, request, context): raise NotImplementedError('Method not implemented!') def GetJobAlpha1(self, request, context): + """Deprecated: Gets a scheduled job + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetJob(self, request, context): """Gets a scheduled job """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -814,6 +853,13 @@ def GetJobAlpha1(self, request, context): raise NotImplementedError('Method not implemented!') def DeleteJobAlpha1(self, request, context): + """Deprecated: Delete a job + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteJob(self, request, context): """Delete a job """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -821,13 +867,29 @@ def DeleteJobAlpha1(self, request, context): raise NotImplementedError('Method not implemented!') def DeleteJobsByPrefixAlpha1(self, request, context): - """Missing associated documentation comment in .proto file.""" + """Deprecated: Delete jobs by name prefix + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteJobsByPrefix(self, request, context): + """Delete jobs by name prefix + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListJobsAlpha1(self, request, context): - """Missing associated documentation comment in .proto file.""" + """Deprecated: List all jobs + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListJobs(self, request, context): + """List all jobs + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') @@ -1149,26 +1211,51 @@ def add_DaprServicer_to_server(servicer, server): request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ScheduleJobRequest.FromString, response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ScheduleJobResponse.SerializeToString, ), + 'ScheduleJob': grpc.unary_unary_rpc_method_handler( + servicer.ScheduleJob, + request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ScheduleJobRequest.FromString, + response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ScheduleJobResponse.SerializeToString, + ), 'GetJobAlpha1': grpc.unary_unary_rpc_method_handler( servicer.GetJobAlpha1, request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.GetJobRequest.FromString, response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.GetJobResponse.SerializeToString, ), + 'GetJob': grpc.unary_unary_rpc_method_handler( + servicer.GetJob, + request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.GetJobRequest.FromString, + response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.GetJobResponse.SerializeToString, + ), 'DeleteJobAlpha1': grpc.unary_unary_rpc_method_handler( servicer.DeleteJobAlpha1, request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobRequest.FromString, response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobResponse.SerializeToString, ), + 'DeleteJob': grpc.unary_unary_rpc_method_handler( + servicer.DeleteJob, + request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobRequest.FromString, + response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobResponse.SerializeToString, + ), 'DeleteJobsByPrefixAlpha1': grpc.unary_unary_rpc_method_handler( servicer.DeleteJobsByPrefixAlpha1, request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobsByPrefixRequestAlpha1.FromString, response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobsByPrefixResponseAlpha1.SerializeToString, ), + 'DeleteJobsByPrefix': grpc.unary_unary_rpc_method_handler( + servicer.DeleteJobsByPrefix, + request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobsByPrefixRequest.FromString, + response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobsByPrefixResponse.SerializeToString, + ), 'ListJobsAlpha1': grpc.unary_unary_rpc_method_handler( servicer.ListJobsAlpha1, request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ListJobsRequestAlpha1.FromString, response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ListJobsResponseAlpha1.SerializeToString, ), + 'ListJobs': grpc.unary_unary_rpc_method_handler( + servicer.ListJobs, + request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ListJobsRequest.FromString, + response_serializer=dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ListJobsResponse.SerializeToString, + ), 'ConverseAlpha1': grpc.unary_unary_rpc_method_handler( servicer.ConverseAlpha1, request_deserializer=dapr_dot_proto_dot_runtime_dot_v1_dot_ai__pb2.ConversationRequest.FromString, @@ -2811,6 +2898,33 @@ def ScheduleJobAlpha1(request, metadata, _registered_method=True) + @staticmethod + def ScheduleJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dapr.proto.runtime.v1.Dapr/ScheduleJob', + dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ScheduleJobRequest.SerializeToString, + dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ScheduleJobResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def GetJobAlpha1(request, target, @@ -2838,6 +2952,33 @@ def GetJobAlpha1(request, metadata, _registered_method=True) + @staticmethod + def GetJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dapr.proto.runtime.v1.Dapr/GetJob', + dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.GetJobRequest.SerializeToString, + dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.GetJobResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def DeleteJobAlpha1(request, target, @@ -2865,6 +3006,33 @@ def DeleteJobAlpha1(request, metadata, _registered_method=True) + @staticmethod + def DeleteJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dapr.proto.runtime.v1.Dapr/DeleteJob', + dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobRequest.SerializeToString, + dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def DeleteJobsByPrefixAlpha1(request, target, @@ -2892,6 +3060,33 @@ def DeleteJobsByPrefixAlpha1(request, metadata, _registered_method=True) + @staticmethod + def DeleteJobsByPrefix(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dapr.proto.runtime.v1.Dapr/DeleteJobsByPrefix', + dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobsByPrefixRequest.SerializeToString, + dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.DeleteJobsByPrefixResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def ListJobsAlpha1(request, target, @@ -2919,6 +3114,33 @@ def ListJobsAlpha1(request, metadata, _registered_method=True) + @staticmethod + def ListJobs(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dapr.proto.runtime.v1.Dapr/ListJobs', + dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ListJobsRequest.SerializeToString, + dapr_dot_proto_dot_runtime_dot_v1_dot_jobs__pb2.ListJobsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def ConverseAlpha1(request, target, diff --git a/dapr/proto/runtime/v1/invoke_pb2.pyi b/dapr/proto/runtime/v1/invoke_pb2.pyi index 56533dbea..a97dfbc47 100644 --- a/dapr/proto/runtime/v1/invoke_pb2.pyi +++ b/dapr/proto/runtime/v1/invoke_pb2.pyi @@ -21,10 +21,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -52,5 +52,6 @@ class InvokeServiceRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "message", b"message"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___InvokeServiceRequest: _TypeAlias = InvokeServiceRequest # noqa: Y015 diff --git a/dapr/proto/runtime/v1/invoke_pb2_grpc.py b/dapr/proto/runtime/v1/invoke_pb2_grpc.py index 0b2904d4c..2b5dc61e1 100644 --- a/dapr/proto/runtime/v1/invoke_pb2_grpc.py +++ b/dapr/proto/runtime/v1/invoke_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/jobs_pb2.py b/dapr/proto/runtime/v1/jobs_pb2.py index 0631950db..38aefd0cf 100644 --- a/dapr/proto/runtime/v1/jobs_pb2.py +++ b/dapr/proto/runtime/v1/jobs_pb2.py @@ -26,7 +26,7 @@ from dapr.proto.common.v1 import common_pb2 as dapr_dot_proto_dot_common_dot_v1_dot_common__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n dapr/proto/runtime/v1/jobs.proto\x12\x15\x64\x61pr.proto.runtime.v1\x1a\x19google/protobuf/any.proto\x1a!dapr/proto/common/v1/common.proto\"\xcf\x02\n\x03Job\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x08schedule\x18\x02 \x01(\tH\x00R\x08schedule\x88\x01\x01\x12\x1d\n\x07repeats\x18\x03 \x01(\rH\x01R\x07repeats\x88\x01\x01\x12\x1e\n\x08\x64ue_time\x18\x04 \x01(\tH\x02R\x07\x64ueTime\x88\x01\x01\x12\x15\n\x03ttl\x18\x05 \x01(\tH\x03R\x03ttl\x88\x01\x01\x12(\n\x04\x64\x61ta\x18\x06 \x01(\x0b\x32\x14.google.protobuf.AnyR\x04\x64\x61ta\x12R\n\x0e\x66\x61ilure_policy\x18\x07 \x01(\x0b\x32&.dapr.proto.common.v1.JobFailurePolicyH\x04R\rfailurePolicy\x88\x01\x01\x42\x0b\n\t_scheduleB\n\n\x08_repeatsB\x0b\n\t_due_timeB\x06\n\x04_ttlB\x11\n\x0f_failure_policy\"[\n\x12ScheduleJobRequest\x12\'\n\x03job\x18\x01 \x01(\x0b\x32\x1a.dapr.proto.runtime.v1.Job\x12\x1c\n\toverwrite\x18\x02 \x01(\x08R\toverwrite\"\x15\n\x13ScheduleJobResponse\"\x1d\n\rGetJobRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"9\n\x0eGetJobResponse\x12\'\n\x03job\x18\x01 \x01(\x0b\x32\x1a.dapr.proto.runtime.v1.Job\" \n\x10\x44\x65leteJobRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x13\n\x11\x44\x65leteJobResponse\"K\n\x1f\x44\x65leteJobsByPrefixRequestAlpha1\x12\x18\n\x0bname_prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_name_prefix\"\"\n DeleteJobsByPrefixResponseAlpha1\"\x17\n\x15ListJobsRequestAlpha1\"B\n\x16ListJobsResponseAlpha1\x12(\n\x04jobs\x18\x01 \x03(\x0b\x32\x1a.dapr.proto.runtime.v1.JobBm\n\nio.dapr.v1B\x0e\x44\x61prJobsProtosZ1github.com/dapr/dapr/pkg/proto/runtime/v1;runtime\xaa\x02\x1b\x44\x61pr.Client.Autogen.Grpc.v1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n dapr/proto/runtime/v1/jobs.proto\x12\x15\x64\x61pr.proto.runtime.v1\x1a\x19google/protobuf/any.proto\x1a!dapr/proto/common/v1/common.proto\"\xcf\x02\n\x03Job\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x08schedule\x18\x02 \x01(\tH\x00R\x08schedule\x88\x01\x01\x12\x1d\n\x07repeats\x18\x03 \x01(\rH\x01R\x07repeats\x88\x01\x01\x12\x1e\n\x08\x64ue_time\x18\x04 \x01(\tH\x02R\x07\x64ueTime\x88\x01\x01\x12\x15\n\x03ttl\x18\x05 \x01(\tH\x03R\x03ttl\x88\x01\x01\x12(\n\x04\x64\x61ta\x18\x06 \x01(\x0b\x32\x14.google.protobuf.AnyR\x04\x64\x61ta\x12R\n\x0e\x66\x61ilure_policy\x18\x07 \x01(\x0b\x32&.dapr.proto.common.v1.JobFailurePolicyH\x04R\rfailurePolicy\x88\x01\x01\x42\x0b\n\t_scheduleB\n\n\x08_repeatsB\x0b\n\t_due_timeB\x06\n\x04_ttlB\x11\n\x0f_failure_policy\"[\n\x12ScheduleJobRequest\x12\'\n\x03job\x18\x01 \x01(\x0b\x32\x1a.dapr.proto.runtime.v1.Job\x12\x1c\n\toverwrite\x18\x02 \x01(\x08R\toverwrite\"\x15\n\x13ScheduleJobResponse\"\x1d\n\rGetJobRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"9\n\x0eGetJobResponse\x12\'\n\x03job\x18\x01 \x01(\x0b\x32\x1a.dapr.proto.runtime.v1.Job\" \n\x10\x44\x65leteJobRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x13\n\x11\x44\x65leteJobResponse\"K\n\x1f\x44\x65leteJobsByPrefixRequestAlpha1\x12\x18\n\x0bname_prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_name_prefix\"\"\n DeleteJobsByPrefixResponseAlpha1\"E\n\x19\x44\x65leteJobsByPrefixRequest\x12\x18\n\x0bname_prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_name_prefix\"\x1c\n\x1a\x44\x65leteJobsByPrefixResponse\"\x17\n\x15ListJobsRequestAlpha1\"B\n\x16ListJobsResponseAlpha1\x12(\n\x04jobs\x18\x01 \x03(\x0b\x32\x1a.dapr.proto.runtime.v1.Job\"\x11\n\x0fListJobsRequest\"<\n\x10ListJobsResponse\x12(\n\x04jobs\x18\x01 \x03(\x0b\x32\x1a.dapr.proto.runtime.v1.JobBm\n\nio.dapr.v1B\x0e\x44\x61prJobsProtosZ1github.com/dapr/dapr/pkg/proto/runtime/v1;runtime\xaa\x02\x1b\x44\x61pr.Client.Autogen.Grpc.v1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -52,8 +52,16 @@ _globals['_DELETEJOBSBYPREFIXREQUESTALPHA1']._serialized_end=795 _globals['_DELETEJOBSBYPREFIXRESPONSEALPHA1']._serialized_start=797 _globals['_DELETEJOBSBYPREFIXRESPONSEALPHA1']._serialized_end=831 - _globals['_LISTJOBSREQUESTALPHA1']._serialized_start=833 - _globals['_LISTJOBSREQUESTALPHA1']._serialized_end=856 - _globals['_LISTJOBSRESPONSEALPHA1']._serialized_start=858 - _globals['_LISTJOBSRESPONSEALPHA1']._serialized_end=924 + _globals['_DELETEJOBSBYPREFIXREQUEST']._serialized_start=833 + _globals['_DELETEJOBSBYPREFIXREQUEST']._serialized_end=902 + _globals['_DELETEJOBSBYPREFIXRESPONSE']._serialized_start=904 + _globals['_DELETEJOBSBYPREFIXRESPONSE']._serialized_end=932 + _globals['_LISTJOBSREQUESTALPHA1']._serialized_start=934 + _globals['_LISTJOBSREQUESTALPHA1']._serialized_end=957 + _globals['_LISTJOBSRESPONSEALPHA1']._serialized_start=959 + _globals['_LISTJOBSRESPONSEALPHA1']._serialized_end=1025 + _globals['_LISTJOBSREQUEST']._serialized_start=1027 + _globals['_LISTJOBSREQUEST']._serialized_end=1044 + _globals['_LISTJOBSRESPONSE']._serialized_start=1046 + _globals['_LISTJOBSRESPONSE']._serialized_end=1106 # @@protoc_insertion_point(module_scope) diff --git a/dapr/proto/runtime/v1/jobs_pb2.pyi b/dapr/proto/runtime/v1/jobs_pb2.pyi index 20a7ab795..62b53b556 100644 --- a/dapr/proto/runtime/v1/jobs_pb2.pyi +++ b/dapr/proto/runtime/v1/jobs_pb2.pyi @@ -24,10 +24,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -157,6 +157,7 @@ class ScheduleJobRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["job", b"job", "overwrite", b"overwrite"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ScheduleJobRequest: _TypeAlias = ScheduleJobRequest # noqa: Y015 @@ -171,6 +172,11 @@ class ScheduleJobResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ScheduleJobResponse: _TypeAlias = ScheduleJobResponse # noqa: Y015 @@ -188,8 +194,11 @@ class GetJobRequest(_message.Message): *, name: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetJobRequest: _TypeAlias = GetJobRequest # noqa: Y015 @@ -213,6 +222,7 @@ class GetJobResponse(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["job", b"job"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetJobResponse: _TypeAlias = GetJobResponse # noqa: Y015 @@ -230,8 +240,11 @@ class DeleteJobRequest(_message.Message): *, name: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___DeleteJobRequest: _TypeAlias = DeleteJobRequest # noqa: Y015 @@ -246,6 +259,11 @@ class DeleteJobResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___DeleteJobResponse: _TypeAlias = DeleteJobResponse # noqa: Y015 @@ -284,9 +302,57 @@ class DeleteJobsByPrefixResponseAlpha1(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___DeleteJobsByPrefixResponseAlpha1: _TypeAlias = DeleteJobsByPrefixResponseAlpha1 # noqa: Y015 +@_typing.final +class DeleteJobsByPrefixRequest(_message.Message): + """DeleteJobsByPrefixRequest is the stable message to delete jobs by name prefix.""" + + DESCRIPTOR: _descriptor.Descriptor + + NAME_PREFIX_FIELD_NUMBER: _builtins.int + name_prefix: _builtins.str + """name_prefix is the prefix of the job names to delete. If not provided, all + jobs associated with this app ID will be deleted. + """ + def __init__( + self, + *, + name_prefix: _builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["_name_prefix", b"_name_prefix", "name_prefix", b"name_prefix"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["_name_prefix", b"_name_prefix", "name_prefix", b"name_prefix"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__name_prefix: _TypeAlias = _typing.Literal["name_prefix"] # noqa: Y015 + _WhichOneofArgType__name_prefix: _TypeAlias = _typing.Literal["_name_prefix", b"_name_prefix"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType__name_prefix) -> _WhichOneofReturnType__name_prefix | None: ... + +Global___DeleteJobsByPrefixRequest: _TypeAlias = DeleteJobsByPrefixRequest # noqa: Y015 + +@_typing.final +class DeleteJobsByPrefixResponse(_message.Message): + """Empty""" + + DESCRIPTOR: _descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___DeleteJobsByPrefixResponse: _TypeAlias = DeleteJobsByPrefixResponse # noqa: Y015 + @_typing.final class ListJobsRequestAlpha1(_message.Message): """Empty""" @@ -296,6 +362,11 @@ class ListJobsRequestAlpha1(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ListJobsRequestAlpha1: _TypeAlias = ListJobsRequestAlpha1 # noqa: Y015 @@ -315,7 +386,51 @@ class ListJobsResponseAlpha1(_message.Message): *, jobs: _abc.Iterable[Global___Job] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["jobs", b"jobs"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ListJobsResponseAlpha1: _TypeAlias = ListJobsResponseAlpha1 # noqa: Y015 + +@_typing.final +class ListJobsRequest(_message.Message): + """Empty""" + + DESCRIPTOR: _descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___ListJobsRequest: _TypeAlias = ListJobsRequest # noqa: Y015 + +@_typing.final +class ListJobsResponse(_message.Message): + """ListJobsResponse is the stable message response containing the list of jobs.""" + + DESCRIPTOR: _descriptor.Descriptor + + JOBS_FIELD_NUMBER: _builtins.int + @_builtins.property + def jobs(self) -> _containers.RepeatedCompositeFieldContainer[Global___Job]: + """The list of jobs.""" + + def __init__( + self, + *, + jobs: _abc.Iterable[Global___Job] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["jobs", b"jobs"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___ListJobsResponse: _TypeAlias = ListJobsResponse # noqa: Y015 diff --git a/dapr/proto/runtime/v1/jobs_pb2_grpc.py b/dapr/proto/runtime/v1/jobs_pb2_grpc.py index 7efc58c13..90b065c34 100644 --- a/dapr/proto/runtime/v1/jobs_pb2_grpc.py +++ b/dapr/proto/runtime/v1/jobs_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/lock_pb2.pyi b/dapr/proto/runtime/v1/lock_pb2.pyi index c14392e2e..e148ed1a8 100644 --- a/dapr/proto/runtime/v1/lock_pb2.pyi +++ b/dapr/proto/runtime/v1/lock_pb2.pyi @@ -21,10 +21,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -69,8 +69,11 @@ class TryLockRequest(_message.Message): lock_owner: _builtins.str = ..., expiry_in_seconds: _builtins.int = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["expiry_in_seconds", b"expiry_in_seconds", "lock_owner", b"lock_owner", "resource_id", b"resource_id", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TryLockRequest: _TypeAlias = TryLockRequest # noqa: Y015 @@ -85,8 +88,11 @@ class TryLockResponse(_message.Message): *, success: _builtins.bool = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["success", b"success"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TryLockResponse: _TypeAlias = TryLockResponse # noqa: Y015 @@ -108,8 +114,11 @@ class UnlockRequest(_message.Message): resource_id: _builtins.str = ..., lock_owner: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["lock_owner", b"lock_owner", "resource_id", b"resource_id", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___UnlockRequest: _TypeAlias = UnlockRequest # noqa: Y015 @@ -141,7 +150,10 @@ class UnlockResponse(_message.Message): *, status: Global___UnlockResponse.Status.ValueType = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["status", b"status"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___UnlockResponse: _TypeAlias = UnlockResponse # noqa: Y015 diff --git a/dapr/proto/runtime/v1/lock_pb2_grpc.py b/dapr/proto/runtime/v1/lock_pb2_grpc.py index f1d875c49..17a57e6ba 100644 --- a/dapr/proto/runtime/v1/lock_pb2_grpc.py +++ b/dapr/proto/runtime/v1/lock_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/metadata_pb2.py b/dapr/proto/runtime/v1/metadata_pb2.py index f19bea65d..d518894c1 100644 --- a/dapr/proto/runtime/v1/metadata_pb2.py +++ b/dapr/proto/runtime/v1/metadata_pb2.py @@ -24,7 +24,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$dapr/proto/runtime/v1/metadata.proto\x12\x15\x64\x61pr.proto.runtime.v1\"\x14\n\x12GetMetadataRequest\"\xd1\x07\n\x13GetMetadataResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12Q\n\x13\x61\x63tive_actors_count\x18\x02 \x03(\x0b\x32(.dapr.proto.runtime.v1.ActiveActorsCountB\x02\x18\x01R\x06\x61\x63tors\x12V\n\x15registered_components\x18\x03 \x03(\x0b\x32+.dapr.proto.runtime.v1.RegisteredComponentsR\ncomponents\x12\x65\n\x11\x65xtended_metadata\x18\x04 \x03(\x0b\x32@.dapr.proto.runtime.v1.GetMetadataResponse.ExtendedMetadataEntryR\x08\x65xtended\x12O\n\rsubscriptions\x18\x05 \x03(\x0b\x32).dapr.proto.runtime.v1.PubsubSubscriptionR\rsubscriptions\x12R\n\x0ehttp_endpoints\x18\x06 \x03(\x0b\x32+.dapr.proto.runtime.v1.MetadataHTTPEndpointR\rhttpEndpoints\x12j\n\x19\x61pp_connection_properties\x18\x07 \x01(\x0b\x32..dapr.proto.runtime.v1.AppConnectionPropertiesR\x17\x61ppConnectionProperties\x12\'\n\x0fruntime_version\x18\x08 \x01(\tR\x0eruntimeVersion\x12)\n\x10\x65nabled_features\x18\t \x03(\tR\x0f\x65nabledFeatures\x12H\n\ractor_runtime\x18\n \x01(\x0b\x32#.dapr.proto.runtime.v1.ActorRuntimeR\x0c\x61\x63torRuntime\x12K\n\tscheduler\x18\x0b \x01(\x0b\x32(.dapr.proto.runtime.v1.MetadataSchedulerH\x00R\tscheduler\x88\x01\x01\x12K\n\tworkflows\x18\x0c \x01(\x0b\x32(.dapr.proto.runtime.v1.MetadataWorkflowsH\x01R\tworkflows\x88\x01\x01\x1a\x37\n\x15\x45xtendedMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0c\n\n_schedulerB\x0c\n\n_workflows\"@\n\x11MetadataWorkflows\x12+\n\x11\x63onnected_workers\x18\x01 \x01(\x05R\x10\x63onnectedWorkers\"0\n\x11MetadataScheduler\x12\x1b\n\x13\x63onnected_addresses\x18\x01 \x03(\t\"\xbc\x02\n\x0c\x41\x63torRuntime\x12]\n\x0eruntime_status\x18\x01 \x01(\x0e\x32\x36.dapr.proto.runtime.v1.ActorRuntime.ActorRuntimeStatusR\rruntimeStatus\x12M\n\ractive_actors\x18\x02 \x03(\x0b\x32(.dapr.proto.runtime.v1.ActiveActorsCountR\x0c\x61\x63tiveActors\x12\x1d\n\nhost_ready\x18\x03 \x01(\x08R\thostReady\x12\x1c\n\tplacement\x18\x04 \x01(\tR\tplacement\"A\n\x12\x41\x63torRuntimeStatus\x12\x10\n\x0cINITIALIZING\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\"0\n\x11\x41\x63tiveActorsCount\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"Y\n\x14RegisteredComponents\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x14\n\x0c\x63\x61pabilities\x18\x04 \x03(\t\"*\n\x14MetadataHTTPEndpoint\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\xd1\x01\n\x17\x41ppConnectionProperties\x12\x0c\n\x04port\x18\x01 \x01(\x05\x12\x10\n\x08protocol\x18\x02 \x01(\t\x12\'\n\x0f\x63hannel_address\x18\x03 \x01(\tR\x0e\x63hannelAddress\x12\'\n\x0fmax_concurrency\x18\x04 \x01(\x05R\x0emaxConcurrency\x12\x44\n\x06health\x18\x05 \x01(\x0b\x32\x34.dapr.proto.runtime.v1.AppConnectionHealthProperties\"\xdc\x01\n\x1d\x41ppConnectionHealthProperties\x12*\n\x11health_check_path\x18\x01 \x01(\tR\x0fhealthCheckPath\x12\x32\n\x15health_probe_interval\x18\x02 \x01(\tR\x13healthProbeInterval\x12\x30\n\x14health_probe_timeout\x18\x03 \x01(\tR\x12healthProbeTimeout\x12)\n\x10health_threshold\x18\x04 \x01(\x05R\x0fhealthThreshold\"\x86\x03\n\x12PubsubSubscription\x12\x1f\n\x0bpubsub_name\x18\x01 \x01(\tR\npubsubname\x12\x14\n\x05topic\x18\x02 \x01(\tR\x05topic\x12S\n\x08metadata\x18\x03 \x03(\x0b\x32\x37.dapr.proto.runtime.v1.PubsubSubscription.MetadataEntryR\x08metadata\x12\x44\n\x05rules\x18\x04 \x01(\x0b\x32..dapr.proto.runtime.v1.PubsubSubscriptionRulesR\x05rules\x12*\n\x11\x64\x65\x61\x64_letter_topic\x18\x05 \x01(\tR\x0f\x64\x65\x61\x64LetterTopic\x12\x41\n\x04type\x18\x06 \x01(\x0e\x32-.dapr.proto.runtime.v1.PubsubSubscriptionTypeR\x04type\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"W\n\x17PubsubSubscriptionRules\x12<\n\x05rules\x18\x01 \x03(\x0b\x32-.dapr.proto.runtime.v1.PubsubSubscriptionRule\"5\n\x16PubsubSubscriptionRule\x12\r\n\x05match\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"0\n\x12SetMetadataRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t*W\n\x16PubsubSubscriptionType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0f\n\x0b\x44\x45\x43LARATIVE\x10\x01\x12\x10\n\x0cPROGRAMMATIC\x10\x02\x12\r\n\tSTREAMING\x10\x03\x42q\n\nio.dapr.v1B\x12\x44\x61prMetadataProtosZ1github.com/dapr/dapr/pkg/proto/runtime/v1;runtime\xaa\x02\x1b\x44\x61pr.Client.Autogen.Grpc.v1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$dapr/proto/runtime/v1/metadata.proto\x12\x15\x64\x61pr.proto.runtime.v1\"\x14\n\x12GetMetadataRequest\"\x8b\t\n\x13GetMetadataResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12Q\n\x13\x61\x63tive_actors_count\x18\x02 \x03(\x0b\x32(.dapr.proto.runtime.v1.ActiveActorsCountB\x02\x18\x01R\x06\x61\x63tors\x12V\n\x15registered_components\x18\x03 \x03(\x0b\x32+.dapr.proto.runtime.v1.RegisteredComponentsR\ncomponents\x12\x65\n\x11\x65xtended_metadata\x18\x04 \x03(\x0b\x32@.dapr.proto.runtime.v1.GetMetadataResponse.ExtendedMetadataEntryR\x08\x65xtended\x12O\n\rsubscriptions\x18\x05 \x03(\x0b\x32).dapr.proto.runtime.v1.PubsubSubscriptionR\rsubscriptions\x12R\n\x0ehttp_endpoints\x18\x06 \x03(\x0b\x32+.dapr.proto.runtime.v1.MetadataHTTPEndpointR\rhttpEndpoints\x12j\n\x19\x61pp_connection_properties\x18\x07 \x01(\x0b\x32..dapr.proto.runtime.v1.AppConnectionPropertiesR\x17\x61ppConnectionProperties\x12\'\n\x0fruntime_version\x18\x08 \x01(\tR\x0eruntimeVersion\x12)\n\x10\x65nabled_features\x18\t \x03(\tR\x0f\x65nabledFeatures\x12H\n\ractor_runtime\x18\n \x01(\x0b\x32#.dapr.proto.runtime.v1.ActorRuntimeR\x0c\x61\x63torRuntime\x12K\n\tscheduler\x18\x0b \x01(\x0b\x32(.dapr.proto.runtime.v1.MetadataSchedulerH\x00R\tscheduler\x88\x01\x01\x12K\n\tworkflows\x18\x0c \x01(\x0b\x32(.dapr.proto.runtime.v1.MetadataWorkflowsH\x01R\tworkflows\x88\x01\x01\x12I\n\x0bmcp_servers\x18\r \x03(\x0b\x32(.dapr.proto.runtime.v1.MetadataMCPServerR\nmcpServers\x12m\n\x18workflow_access_policies\x18\x0e \x03(\x0b\x32\x33.dapr.proto.runtime.v1.MetadataWorkflowAccessPolicyR\x16workflowAccessPolicies\x1a\x37\n\x15\x45xtendedMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0c\n\n_schedulerB\x0c\n\n_workflows\"@\n\x11MetadataWorkflows\x12+\n\x11\x63onnected_workers\x18\x01 \x01(\x05R\x10\x63onnectedWorkers\"0\n\x11MetadataScheduler\x12\x1b\n\x13\x63onnected_addresses\x18\x01 \x03(\t\"\xbc\x02\n\x0c\x41\x63torRuntime\x12]\n\x0eruntime_status\x18\x01 \x01(\x0e\x32\x36.dapr.proto.runtime.v1.ActorRuntime.ActorRuntimeStatusR\rruntimeStatus\x12M\n\ractive_actors\x18\x02 \x03(\x0b\x32(.dapr.proto.runtime.v1.ActiveActorsCountR\x0c\x61\x63tiveActors\x12\x1d\n\nhost_ready\x18\x03 \x01(\x08R\thostReady\x12\x1c\n\tplacement\x18\x04 \x01(\tR\tplacement\"A\n\x12\x41\x63torRuntimeStatus\x12\x10\n\x0cINITIALIZING\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\"0\n\x11\x41\x63tiveActorsCount\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\"Y\n\x14RegisteredComponents\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x14\n\x0c\x63\x61pabilities\x18\x04 \x03(\t\"*\n\x14MetadataHTTPEndpoint\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\'\n\x11MetadataMCPServer\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"2\n\x1cMetadataWorkflowAccessPolicy\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\xd1\x01\n\x17\x41ppConnectionProperties\x12\x0c\n\x04port\x18\x01 \x01(\x05\x12\x10\n\x08protocol\x18\x02 \x01(\t\x12\'\n\x0f\x63hannel_address\x18\x03 \x01(\tR\x0e\x63hannelAddress\x12\'\n\x0fmax_concurrency\x18\x04 \x01(\x05R\x0emaxConcurrency\x12\x44\n\x06health\x18\x05 \x01(\x0b\x32\x34.dapr.proto.runtime.v1.AppConnectionHealthProperties\"\xdc\x01\n\x1d\x41ppConnectionHealthProperties\x12*\n\x11health_check_path\x18\x01 \x01(\tR\x0fhealthCheckPath\x12\x32\n\x15health_probe_interval\x18\x02 \x01(\tR\x13healthProbeInterval\x12\x30\n\x14health_probe_timeout\x18\x03 \x01(\tR\x12healthProbeTimeout\x12)\n\x10health_threshold\x18\x04 \x01(\x05R\x0fhealthThreshold\"\x86\x03\n\x12PubsubSubscription\x12\x1f\n\x0bpubsub_name\x18\x01 \x01(\tR\npubsubname\x12\x14\n\x05topic\x18\x02 \x01(\tR\x05topic\x12S\n\x08metadata\x18\x03 \x03(\x0b\x32\x37.dapr.proto.runtime.v1.PubsubSubscription.MetadataEntryR\x08metadata\x12\x44\n\x05rules\x18\x04 \x01(\x0b\x32..dapr.proto.runtime.v1.PubsubSubscriptionRulesR\x05rules\x12*\n\x11\x64\x65\x61\x64_letter_topic\x18\x05 \x01(\tR\x0f\x64\x65\x61\x64LetterTopic\x12\x41\n\x04type\x18\x06 \x01(\x0e\x32-.dapr.proto.runtime.v1.PubsubSubscriptionTypeR\x04type\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"W\n\x17PubsubSubscriptionRules\x12<\n\x05rules\x18\x01 \x03(\x0b\x32-.dapr.proto.runtime.v1.PubsubSubscriptionRule\"5\n\x16PubsubSubscriptionRule\x12\r\n\x05match\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"0\n\x12SetMetadataRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t*W\n\x16PubsubSubscriptionType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0f\n\x0b\x44\x45\x43LARATIVE\x10\x01\x12\x10\n\x0cPROGRAMMATIC\x10\x02\x12\r\n\tSTREAMING\x10\x03\x42q\n\nio.dapr.v1B\x12\x44\x61prMetadataProtosZ1github.com/dapr/dapr/pkg/proto/runtime/v1;runtime\xaa\x02\x1b\x44\x61pr.Client.Autogen.Grpc.v1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -38,40 +38,44 @@ _globals['_GETMETADATARESPONSE'].fields_by_name['active_actors_count']._serialized_options = b'\030\001' _globals['_PUBSUBSUBSCRIPTION_METADATAENTRY']._loaded_options = None _globals['_PUBSUBSUBSCRIPTION_METADATAENTRY']._serialized_options = b'8\001' - _globals['_PUBSUBSUBSCRIPTIONTYPE']._serialized_start=2707 - _globals['_PUBSUBSUBSCRIPTIONTYPE']._serialized_end=2794 + _globals['_PUBSUBSUBSCRIPTIONTYPE']._serialized_start=2986 + _globals['_PUBSUBSUBSCRIPTIONTYPE']._serialized_end=3073 _globals['_GETMETADATAREQUEST']._serialized_start=63 _globals['_GETMETADATAREQUEST']._serialized_end=83 _globals['_GETMETADATARESPONSE']._serialized_start=86 - _globals['_GETMETADATARESPONSE']._serialized_end=1063 - _globals['_GETMETADATARESPONSE_EXTENDEDMETADATAENTRY']._serialized_start=980 - _globals['_GETMETADATARESPONSE_EXTENDEDMETADATAENTRY']._serialized_end=1035 - _globals['_METADATAWORKFLOWS']._serialized_start=1065 - _globals['_METADATAWORKFLOWS']._serialized_end=1129 - _globals['_METADATASCHEDULER']._serialized_start=1131 - _globals['_METADATASCHEDULER']._serialized_end=1179 - _globals['_ACTORRUNTIME']._serialized_start=1182 - _globals['_ACTORRUNTIME']._serialized_end=1498 - _globals['_ACTORRUNTIME_ACTORRUNTIMESTATUS']._serialized_start=1433 - _globals['_ACTORRUNTIME_ACTORRUNTIMESTATUS']._serialized_end=1498 - _globals['_ACTIVEACTORSCOUNT']._serialized_start=1500 - _globals['_ACTIVEACTORSCOUNT']._serialized_end=1548 - _globals['_REGISTEREDCOMPONENTS']._serialized_start=1550 - _globals['_REGISTEREDCOMPONENTS']._serialized_end=1639 - _globals['_METADATAHTTPENDPOINT']._serialized_start=1641 - _globals['_METADATAHTTPENDPOINT']._serialized_end=1683 - _globals['_APPCONNECTIONPROPERTIES']._serialized_start=1686 - _globals['_APPCONNECTIONPROPERTIES']._serialized_end=1895 - _globals['_APPCONNECTIONHEALTHPROPERTIES']._serialized_start=1898 - _globals['_APPCONNECTIONHEALTHPROPERTIES']._serialized_end=2118 - _globals['_PUBSUBSUBSCRIPTION']._serialized_start=2121 - _globals['_PUBSUBSUBSCRIPTION']._serialized_end=2511 - _globals['_PUBSUBSUBSCRIPTION_METADATAENTRY']._serialized_start=2464 - _globals['_PUBSUBSUBSCRIPTION_METADATAENTRY']._serialized_end=2511 - _globals['_PUBSUBSUBSCRIPTIONRULES']._serialized_start=2513 - _globals['_PUBSUBSUBSCRIPTIONRULES']._serialized_end=2600 - _globals['_PUBSUBSUBSCRIPTIONRULE']._serialized_start=2602 - _globals['_PUBSUBSUBSCRIPTIONRULE']._serialized_end=2655 - _globals['_SETMETADATAREQUEST']._serialized_start=2657 - _globals['_SETMETADATAREQUEST']._serialized_end=2705 + _globals['_GETMETADATARESPONSE']._serialized_end=1249 + _globals['_GETMETADATARESPONSE_EXTENDEDMETADATAENTRY']._serialized_start=1166 + _globals['_GETMETADATARESPONSE_EXTENDEDMETADATAENTRY']._serialized_end=1221 + _globals['_METADATAWORKFLOWS']._serialized_start=1251 + _globals['_METADATAWORKFLOWS']._serialized_end=1315 + _globals['_METADATASCHEDULER']._serialized_start=1317 + _globals['_METADATASCHEDULER']._serialized_end=1365 + _globals['_ACTORRUNTIME']._serialized_start=1368 + _globals['_ACTORRUNTIME']._serialized_end=1684 + _globals['_ACTORRUNTIME_ACTORRUNTIMESTATUS']._serialized_start=1619 + _globals['_ACTORRUNTIME_ACTORRUNTIMESTATUS']._serialized_end=1684 + _globals['_ACTIVEACTORSCOUNT']._serialized_start=1686 + _globals['_ACTIVEACTORSCOUNT']._serialized_end=1734 + _globals['_REGISTEREDCOMPONENTS']._serialized_start=1736 + _globals['_REGISTEREDCOMPONENTS']._serialized_end=1825 + _globals['_METADATAHTTPENDPOINT']._serialized_start=1827 + _globals['_METADATAHTTPENDPOINT']._serialized_end=1869 + _globals['_METADATAMCPSERVER']._serialized_start=1871 + _globals['_METADATAMCPSERVER']._serialized_end=1910 + _globals['_METADATAWORKFLOWACCESSPOLICY']._serialized_start=1912 + _globals['_METADATAWORKFLOWACCESSPOLICY']._serialized_end=1962 + _globals['_APPCONNECTIONPROPERTIES']._serialized_start=1965 + _globals['_APPCONNECTIONPROPERTIES']._serialized_end=2174 + _globals['_APPCONNECTIONHEALTHPROPERTIES']._serialized_start=2177 + _globals['_APPCONNECTIONHEALTHPROPERTIES']._serialized_end=2397 + _globals['_PUBSUBSUBSCRIPTION']._serialized_start=2400 + _globals['_PUBSUBSUBSCRIPTION']._serialized_end=2790 + _globals['_PUBSUBSUBSCRIPTION_METADATAENTRY']._serialized_start=2743 + _globals['_PUBSUBSUBSCRIPTION_METADATAENTRY']._serialized_end=2790 + _globals['_PUBSUBSUBSCRIPTIONRULES']._serialized_start=2792 + _globals['_PUBSUBSUBSCRIPTIONRULES']._serialized_end=2879 + _globals['_PUBSUBSUBSCRIPTIONRULE']._serialized_start=2881 + _globals['_PUBSUBSUBSCRIPTIONRULE']._serialized_end=2934 + _globals['_SETMETADATAREQUEST']._serialized_start=2936 + _globals['_SETMETADATAREQUEST']._serialized_end=2984 # @@protoc_insertion_point(module_scope) diff --git a/dapr/proto/runtime/v1/metadata_pb2.pyi b/dapr/proto/runtime/v1/metadata_pb2.pyi index 82ab0137f..e49ca6d14 100644 --- a/dapr/proto/runtime/v1/metadata_pb2.pyi +++ b/dapr/proto/runtime/v1/metadata_pb2.pyi @@ -23,10 +23,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never if sys.version_info >= (3, 13): from warnings import deprecated as _deprecated @@ -74,6 +74,11 @@ class GetMetadataRequest(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetMetadataRequest: _TypeAlias = GetMetadataRequest # noqa: Y015 @@ -97,8 +102,11 @@ class GetMetadataResponse(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... ID_FIELD_NUMBER: _builtins.int ACTIVE_ACTORS_COUNT_FIELD_NUMBER: _builtins.int @@ -112,6 +120,8 @@ class GetMetadataResponse(_message.Message): ACTOR_RUNTIME_FIELD_NUMBER: _builtins.int SCHEDULER_FIELD_NUMBER: _builtins.int WORKFLOWS_FIELD_NUMBER: _builtins.int + MCP_SERVERS_FIELD_NUMBER: _builtins.int + WORKFLOW_ACCESS_POLICIES_FIELD_NUMBER: _builtins.int id: _builtins.str runtime_version: _builtins.str @_builtins.property @@ -137,6 +147,10 @@ class GetMetadataResponse(_message.Message): def scheduler(self) -> Global___MetadataScheduler: ... @_builtins.property def workflows(self) -> Global___MetadataWorkflows: ... + @_builtins.property + def mcp_servers(self) -> _containers.RepeatedCompositeFieldContainer[Global___MetadataMCPServer]: ... + @_builtins.property + def workflow_access_policies(self) -> _containers.RepeatedCompositeFieldContainer[Global___MetadataWorkflowAccessPolicy]: ... def __init__( self, *, @@ -152,10 +166,12 @@ class GetMetadataResponse(_message.Message): actor_runtime: Global___ActorRuntime | None = ..., scheduler: Global___MetadataScheduler | None = ..., workflows: Global___MetadataWorkflows | None = ..., + mcp_servers: _abc.Iterable[Global___MetadataMCPServer] | None = ..., + workflow_access_policies: _abc.Iterable[Global___MetadataWorkflowAccessPolicy] | None = ..., ) -> None: ... _HasFieldArgType: _TypeAlias = _typing.Literal["_scheduler", b"_scheduler", "_workflows", b"_workflows", "actor_runtime", b"actor_runtime", "app_connection_properties", b"app_connection_properties", "scheduler", b"scheduler", "workflows", b"workflows"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["_scheduler", b"_scheduler", "_workflows", b"_workflows", "active_actors_count", b"active_actors_count", "actor_runtime", b"actor_runtime", "app_connection_properties", b"app_connection_properties", "enabled_features", b"enabled_features", "extended_metadata", b"extended_metadata", "http_endpoints", b"http_endpoints", "id", b"id", "registered_components", b"registered_components", "runtime_version", b"runtime_version", "scheduler", b"scheduler", "subscriptions", b"subscriptions", "workflows", b"workflows"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_scheduler", b"_scheduler", "_workflows", b"_workflows", "active_actors_count", b"active_actors_count", "actor_runtime", b"actor_runtime", "app_connection_properties", b"app_connection_properties", "enabled_features", b"enabled_features", "extended_metadata", b"extended_metadata", "http_endpoints", b"http_endpoints", "id", b"id", "mcp_servers", b"mcp_servers", "registered_components", b"registered_components", "runtime_version", b"runtime_version", "scheduler", b"scheduler", "subscriptions", b"subscriptions", "workflow_access_policies", b"workflow_access_policies", "workflows", b"workflows"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... _WhichOneofReturnType__scheduler: _TypeAlias = _typing.Literal["scheduler"] # noqa: Y015 _WhichOneofArgType__scheduler: _TypeAlias = _typing.Literal["_scheduler", b"_scheduler"] # noqa: Y015 @@ -179,8 +195,11 @@ class MetadataWorkflows(_message.Message): *, connected_workers: _builtins.int = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["connected_workers", b"connected_workers"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___MetadataWorkflows: _TypeAlias = MetadataWorkflows # noqa: Y015 @@ -202,8 +221,11 @@ class MetadataScheduler(_message.Message): *, connected_addresses: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["connected_addresses", b"connected_addresses"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___MetadataScheduler: _TypeAlias = MetadataScheduler # noqa: Y015 @@ -258,8 +280,11 @@ class ActorRuntime(_message.Message): host_ready: _builtins.bool = ..., placement: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["active_actors", b"active_actors", "host_ready", b"host_ready", "placement", b"placement", "runtime_status", b"runtime_status"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ActorRuntime: _TypeAlias = ActorRuntime # noqa: Y015 @@ -277,8 +302,11 @@ class ActiveActorsCount(_message.Message): type: _builtins.str = ..., count: _builtins.int = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["count", b"count", "type", b"type"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ActiveActorsCount: _TypeAlias = ActiveActorsCount # noqa: Y015 @@ -303,8 +331,11 @@ class RegisteredComponents(_message.Message): version: _builtins.str = ..., capabilities: _abc.Iterable[_builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["capabilities", b"capabilities", "name", b"name", "type", b"type", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___RegisteredComponents: _TypeAlias = RegisteredComponents # noqa: Y015 @@ -319,11 +350,57 @@ class MetadataHTTPEndpoint(_message.Message): *, name: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___MetadataHTTPEndpoint: _TypeAlias = MetadataHTTPEndpoint # noqa: Y015 +@_typing.final +class MetadataMCPServer(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str + def __init__( + self, + *, + name: _builtins.str = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___MetadataMCPServer: _TypeAlias = MetadataMCPServer # noqa: Y015 + +@_typing.final +class MetadataWorkflowAccessPolicy(_message.Message): + """MetadataWorkflowAccessPolicy describes a loaded WorkflowAccessPolicy + resource. Lets clients verify which policies are currently in effect on + the sidecar, including after a hot reload. + """ + + DESCRIPTOR: _descriptor.Descriptor + + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str + def __init__( + self, + *, + name: _builtins.str = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___MetadataWorkflowAccessPolicy: _TypeAlias = MetadataWorkflowAccessPolicy # noqa: Y015 + @_typing.final class AppConnectionProperties(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -352,6 +429,7 @@ class AppConnectionProperties(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["channel_address", b"channel_address", "health", b"health", "max_concurrency", b"max_concurrency", "port", b"port", "protocol", b"protocol"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___AppConnectionProperties: _TypeAlias = AppConnectionProperties # noqa: Y015 @@ -375,8 +453,11 @@ class AppConnectionHealthProperties(_message.Message): health_probe_timeout: _builtins.str = ..., health_threshold: _builtins.int = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["health_check_path", b"health_check_path", "health_probe_interval", b"health_probe_interval", "health_probe_timeout", b"health_probe_timeout", "health_threshold", b"health_threshold"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___AppConnectionHealthProperties: _TypeAlias = AppConnectionHealthProperties # noqa: Y015 @@ -398,8 +479,11 @@ class PubsubSubscription(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... PUBSUB_NAME_FIELD_NUMBER: _builtins.int TOPIC_FIELD_NUMBER: _builtins.int @@ -429,6 +513,7 @@ class PubsubSubscription(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["dead_letter_topic", b"dead_letter_topic", "metadata", b"metadata", "pubsub_name", b"pubsub_name", "rules", b"rules", "topic", b"topic", "type", b"type"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___PubsubSubscription: _TypeAlias = PubsubSubscription # noqa: Y015 @@ -444,8 +529,11 @@ class PubsubSubscriptionRules(_message.Message): *, rules: _abc.Iterable[Global___PubsubSubscriptionRule] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["rules", b"rules"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___PubsubSubscriptionRules: _TypeAlias = PubsubSubscriptionRules # noqa: Y015 @@ -463,8 +551,11 @@ class PubsubSubscriptionRule(_message.Message): match: _builtins.str = ..., path: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["match", b"match", "path", b"path"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___PubsubSubscriptionRule: _TypeAlias = PubsubSubscriptionRule # noqa: Y015 @@ -482,7 +573,10 @@ class SetMetadataRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SetMetadataRequest: _TypeAlias = SetMetadataRequest # noqa: Y015 diff --git a/dapr/proto/runtime/v1/metadata_pb2_grpc.py b/dapr/proto/runtime/v1/metadata_pb2_grpc.py index 58c1b4c77..adc1fd3f9 100644 --- a/dapr/proto/runtime/v1/metadata_pb2_grpc.py +++ b/dapr/proto/runtime/v1/metadata_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/pubsub_pb2.pyi b/dapr/proto/runtime/v1/pubsub_pb2.pyi index d15676afd..427c32352 100644 --- a/dapr/proto/runtime/v1/pubsub_pb2.pyi +++ b/dapr/proto/runtime/v1/pubsub_pb2.pyi @@ -23,10 +23,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -50,8 +50,11 @@ class PublishEventRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... PUBSUB_NAME_FIELD_NUMBER: _builtins.int TOPIC_FIELD_NUMBER: _builtins.int @@ -83,8 +86,11 @@ class PublishEventRequest(_message.Message): data_content_type: _builtins.str = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "data_content_type", b"data_content_type", "metadata", b"metadata", "pubsub_name", b"pubsub_name", "topic", b"topic"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___PublishEventRequest: _TypeAlias = PublishEventRequest # noqa: Y015 @@ -108,8 +114,11 @@ class BulkPublishRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... PUBSUB_NAME_FIELD_NUMBER: _builtins.int TOPIC_FIELD_NUMBER: _builtins.int @@ -135,8 +144,11 @@ class BulkPublishRequest(_message.Message): entries: _abc.Iterable[Global___BulkPublishRequestEntry] | None = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["entries", b"entries", "metadata", b"metadata", "pubsub_name", b"pubsub_name", "topic", b"topic"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___BulkPublishRequest: _TypeAlias = BulkPublishRequest # noqa: Y015 @@ -160,8 +172,11 @@ class BulkPublishRequestEntry(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... ENTRY_ID_FIELD_NUMBER: _builtins.int EVENT_FIELD_NUMBER: _builtins.int @@ -185,8 +200,11 @@ class BulkPublishRequestEntry(_message.Message): content_type: _builtins.str = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["content_type", b"content_type", "entry_id", b"entry_id", "event", b"event", "metadata", b"metadata"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___BulkPublishRequestEntry: _TypeAlias = BulkPublishRequestEntry # noqa: Y015 @@ -206,8 +224,11 @@ class BulkPublishResponse(_message.Message): *, failedEntries: _abc.Iterable[Global___BulkPublishResponseFailedEntry] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["failedEntries", b"failedEntries"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___BulkPublishResponse: _TypeAlias = BulkPublishResponse # noqa: Y015 @@ -229,8 +250,11 @@ class BulkPublishResponseFailedEntry(_message.Message): entry_id: _builtins.str = ..., error: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["entry_id", b"entry_id", "error", b"error"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___BulkPublishResponseFailedEntry: _TypeAlias = BulkPublishResponseFailedEntry # noqa: Y015 @@ -288,8 +312,11 @@ class SubscribeTopicEventsRequestInitialAlpha1(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... PUBSUB_NAME_FIELD_NUMBER: _builtins.int TOPIC_FIELD_NUMBER: _builtins.int @@ -355,6 +382,7 @@ class SubscribeTopicEventsRequestProcessedAlpha1(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "status", b"status"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubscribeTopicEventsRequestProcessedAlpha1: _TypeAlias = SubscribeTopicEventsRequestProcessedAlpha1 # noqa: Y015 @@ -399,5 +427,10 @@ class SubscribeTopicEventsResponseInitialAlpha1(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SubscribeTopicEventsResponseInitialAlpha1: _TypeAlias = SubscribeTopicEventsResponseInitialAlpha1 # noqa: Y015 diff --git a/dapr/proto/runtime/v1/pubsub_pb2_grpc.py b/dapr/proto/runtime/v1/pubsub_pb2_grpc.py index 9d4d03889..5ed57eb73 100644 --- a/dapr/proto/runtime/v1/pubsub_pb2_grpc.py +++ b/dapr/proto/runtime/v1/pubsub_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/secret_pb2.pyi b/dapr/proto/runtime/v1/secret_pb2.pyi index 0b60323fa..c26cdc9cf 100644 --- a/dapr/proto/runtime/v1/secret_pb2.pyi +++ b/dapr/proto/runtime/v1/secret_pb2.pyi @@ -22,10 +22,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -49,8 +49,11 @@ class GetSecretRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... STORE_NAME_FIELD_NUMBER: _builtins.int KEY_FIELD_NUMBER: _builtins.int @@ -70,8 +73,11 @@ class GetSecretRequest(_message.Message): key: _builtins.str = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "metadata", b"metadata", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetSecretRequest: _TypeAlias = GetSecretRequest # noqa: Y015 @@ -95,8 +101,11 @@ class GetSecretResponse(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... DATA_FIELD_NUMBER: _builtins.int @_builtins.property @@ -110,8 +119,11 @@ class GetSecretResponse(_message.Message): *, data: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetSecretResponse: _TypeAlias = GetSecretResponse # noqa: Y015 @@ -135,8 +147,11 @@ class GetBulkSecretRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... STORE_NAME_FIELD_NUMBER: _builtins.int METADATA_FIELD_NUMBER: _builtins.int @@ -152,8 +167,11 @@ class GetBulkSecretRequest(_message.Message): store_name: _builtins.str = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetBulkSecretRequest: _TypeAlias = GetBulkSecretRequest # noqa: Y015 @@ -177,8 +195,11 @@ class SecretResponse(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... SECRETS_FIELD_NUMBER: _builtins.int @_builtins.property @@ -188,8 +209,11 @@ class SecretResponse(_message.Message): *, secrets: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["secrets", b"secrets"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SecretResponse: _TypeAlias = SecretResponse # noqa: Y015 @@ -218,6 +242,7 @@ class GetBulkSecretResponse(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... DATA_FIELD_NUMBER: _builtins.int @_builtins.property @@ -231,7 +256,10 @@ class GetBulkSecretResponse(_message.Message): *, data: _abc.Mapping[_builtins.str, Global___SecretResponse] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetBulkSecretResponse: _TypeAlias = GetBulkSecretResponse # noqa: Y015 diff --git a/dapr/proto/runtime/v1/secret_pb2_grpc.py b/dapr/proto/runtime/v1/secret_pb2_grpc.py index 52607485e..3f3ce4fac 100644 --- a/dapr/proto/runtime/v1/secret_pb2_grpc.py +++ b/dapr/proto/runtime/v1/secret_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/state_pb2.pyi b/dapr/proto/runtime/v1/state_pb2.pyi index 587d9fa33..b85bc9a3d 100644 --- a/dapr/proto/runtime/v1/state_pb2.pyi +++ b/dapr/proto/runtime/v1/state_pb2.pyi @@ -23,10 +23,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -50,8 +50,11 @@ class GetStateRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... STORE_NAME_FIELD_NUMBER: _builtins.int KEY_FIELD_NUMBER: _builtins.int @@ -75,8 +78,11 @@ class GetStateRequest(_message.Message): consistency: _common_pb2.StateOptions.StateConsistency.ValueType = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["consistency", b"consistency", "key", b"key", "metadata", b"metadata", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetStateRequest: _TypeAlias = GetStateRequest # noqa: Y015 @@ -100,8 +106,11 @@ class GetBulkStateRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... STORE_NAME_FIELD_NUMBER: _builtins.int KEYS_FIELD_NUMBER: _builtins.int @@ -127,8 +136,11 @@ class GetBulkStateRequest(_message.Message): parallelism: _builtins.int = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["keys", b"keys", "metadata", b"metadata", "parallelism", b"parallelism", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetBulkStateRequest: _TypeAlias = GetBulkStateRequest # noqa: Y015 @@ -148,8 +160,11 @@ class GetBulkStateResponse(_message.Message): *, items: _abc.Iterable[Global___BulkStateItem] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["items", b"items"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetBulkStateResponse: _TypeAlias = GetBulkStateResponse # noqa: Y015 @@ -175,8 +190,11 @@ class BulkStateItem(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... KEY_FIELD_NUMBER: _builtins.int DATA_FIELD_NUMBER: _builtins.int @@ -206,8 +224,11 @@ class BulkStateItem(_message.Message): error: _builtins.str = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "error", b"error", "etag", b"etag", "key", b"key", "metadata", b"metadata"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___BulkStateItem: _TypeAlias = BulkStateItem # noqa: Y015 @@ -231,8 +252,11 @@ class GetStateResponse(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... DATA_FIELD_NUMBER: _builtins.int ETAG_FIELD_NUMBER: _builtins.int @@ -254,8 +278,11 @@ class GetStateResponse(_message.Message): etag: _builtins.str = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "etag", b"etag", "metadata", b"metadata"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetStateResponse: _TypeAlias = GetStateResponse # noqa: Y015 @@ -279,8 +306,11 @@ class DeleteStateRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... STORE_NAME_FIELD_NUMBER: _builtins.int KEY_FIELD_NUMBER: _builtins.int @@ -320,6 +350,7 @@ class DeleteStateRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["etag", b"etag", "key", b"key", "metadata", b"metadata", "options", b"options", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___DeleteStateRequest: _TypeAlias = DeleteStateRequest # noqa: Y015 @@ -343,8 +374,11 @@ class DeleteBulkStateRequest(_message.Message): store_name: _builtins.str = ..., states: _abc.Iterable[_common_pb2.StateItem] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["states", b"states", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___DeleteBulkStateRequest: _TypeAlias = DeleteBulkStateRequest # noqa: Y015 @@ -368,8 +402,11 @@ class SaveStateRequest(_message.Message): store_name: _builtins.str = ..., states: _abc.Iterable[_common_pb2.StateItem] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["states", b"states", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SaveStateRequest: _TypeAlias = SaveStateRequest # noqa: Y015 @@ -393,8 +430,11 @@ class QueryStateRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... STORE_NAME_FIELD_NUMBER: _builtins.int QUERY_FIELD_NUMBER: _builtins.int @@ -414,8 +454,11 @@ class QueryStateRequest(_message.Message): query: _builtins.str = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "query", b"query", "store_name", b"store_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___QueryStateRequest: _TypeAlias = QueryStateRequest # noqa: Y015 @@ -445,8 +488,11 @@ class QueryStateItem(_message.Message): etag: _builtins.str = ..., error: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "error", b"error", "etag", b"etag", "key", b"key"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___QueryStateItem: _TypeAlias = QueryStateItem # noqa: Y015 @@ -470,8 +516,11 @@ class QueryStateResponse(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... RESULTS_FIELD_NUMBER: _builtins.int TOKEN_FIELD_NUMBER: _builtins.int @@ -493,8 +542,11 @@ class QueryStateResponse(_message.Message): token: _builtins.str = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "results", b"results", "token", b"token"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___QueryStateResponse: _TypeAlias = QueryStateResponse # noqa: Y015 @@ -522,6 +574,7 @@ class TransactionalStateOperation(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["operationType", b"operationType", "request", b"request"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TransactionalStateOperation: _TypeAlias = TransactionalStateOperation # noqa: Y015 @@ -545,8 +598,11 @@ class ExecuteStateTransactionRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... STORENAME_FIELD_NUMBER: _builtins.int OPERATIONS_FIELD_NUMBER: _builtins.int @@ -568,7 +624,10 @@ class ExecuteStateTransactionRequest(_message.Message): operations: _abc.Iterable[Global___TransactionalStateOperation] | None = ..., metadata: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["metadata", b"metadata", "operations", b"operations", "storeName", b"storeName"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ExecuteStateTransactionRequest: _TypeAlias = ExecuteStateTransactionRequest # noqa: Y015 diff --git a/dapr/proto/runtime/v1/state_pb2_grpc.py b/dapr/proto/runtime/v1/state_pb2_grpc.py index 5dfc30057..9d7023c6b 100644 --- a/dapr/proto/runtime/v1/state_pb2_grpc.py +++ b/dapr/proto/runtime/v1/state_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/dapr/proto/runtime/v1/workflow_pb2.pyi b/dapr/proto/runtime/v1/workflow_pb2.pyi index fb5fedc01..6854642d4 100644 --- a/dapr/proto/runtime/v1/workflow_pb2.pyi +++ b/dapr/proto/runtime/v1/workflow_pb2.pyi @@ -23,10 +23,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -48,8 +48,11 @@ class GetWorkflowRequest(_message.Message): instance_id: _builtins.str = ..., workflow_component: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instance_id", b"instance_id", "workflow_component", b"workflow_component"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetWorkflowRequest: _TypeAlias = GetWorkflowRequest # noqa: Y015 @@ -73,8 +76,11 @@ class GetWorkflowResponse(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... INSTANCE_ID_FIELD_NUMBER: _builtins.int WORKFLOW_NAME_FIELD_NUMBER: _builtins.int @@ -114,6 +120,7 @@ class GetWorkflowResponse(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["created_at", b"created_at", "instance_id", b"instance_id", "last_updated_at", b"last_updated_at", "properties", b"properties", "runtime_status", b"runtime_status", "workflow_name", b"workflow_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetWorkflowResponse: _TypeAlias = GetWorkflowResponse # noqa: Y015 @@ -137,8 +144,11 @@ class StartWorkflowRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... INSTANCE_ID_FIELD_NUMBER: _builtins.int WORKFLOW_COMPONENT_FIELD_NUMBER: _builtins.int @@ -166,8 +176,11 @@ class StartWorkflowRequest(_message.Message): options: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., input: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["input", b"input", "instance_id", b"instance_id", "options", b"options", "workflow_component", b"workflow_component", "workflow_name", b"workflow_name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___StartWorkflowRequest: _TypeAlias = StartWorkflowRequest # noqa: Y015 @@ -185,8 +198,11 @@ class StartWorkflowResponse(_message.Message): *, instance_id: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instance_id", b"instance_id"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___StartWorkflowResponse: _TypeAlias = StartWorkflowResponse # noqa: Y015 @@ -208,8 +224,11 @@ class TerminateWorkflowRequest(_message.Message): instance_id: _builtins.str = ..., workflow_component: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instance_id", b"instance_id", "workflow_component", b"workflow_component"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TerminateWorkflowRequest: _TypeAlias = TerminateWorkflowRequest # noqa: Y015 @@ -231,8 +250,11 @@ class PauseWorkflowRequest(_message.Message): instance_id: _builtins.str = ..., workflow_component: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instance_id", b"instance_id", "workflow_component", b"workflow_component"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___PauseWorkflowRequest: _TypeAlias = PauseWorkflowRequest # noqa: Y015 @@ -254,8 +276,11 @@ class ResumeWorkflowRequest(_message.Message): instance_id: _builtins.str = ..., workflow_component: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instance_id", b"instance_id", "workflow_component", b"workflow_component"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ResumeWorkflowRequest: _TypeAlias = ResumeWorkflowRequest # noqa: Y015 @@ -285,8 +310,11 @@ class RaiseEventWorkflowRequest(_message.Message): event_name: _builtins.str = ..., event_data: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["event_data", b"event_data", "event_name", b"event_name", "instance_id", b"instance_id", "workflow_component", b"workflow_component"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___RaiseEventWorkflowRequest: _TypeAlias = RaiseEventWorkflowRequest # noqa: Y015 @@ -308,7 +336,10 @@ class PurgeWorkflowRequest(_message.Message): instance_id: _builtins.str = ..., workflow_component: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instance_id", b"instance_id", "workflow_component", b"workflow_component"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___PurgeWorkflowRequest: _TypeAlias = PurgeWorkflowRequest # noqa: Y015 diff --git a/dapr/proto/runtime/v1/workflow_pb2_grpc.py b/dapr/proto/runtime/v1/workflow_pb2_grpc.py index 24be1cbbb..9265fa536 100644 --- a/dapr/proto/runtime/v1/workflow_pb2_grpc.py +++ b/dapr/proto/runtime/v1/workflow_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/examples/mcp/README.md b/examples/mcp/README.md new file mode 100644 index 000000000..11205a74c --- /dev/null +++ b/examples/mcp/README.md @@ -0,0 +1,70 @@ +# MCP Examples + +Examples demonstrating how to use the `DaprMCPClient` from the Dapr Python SDK +to discover and invoke MCP tools via Dapr's built-in workflow orchestrations. + +## Prerequisites + +- **Dapr CLI** installed with `dapr init` completed (provides Redis on `localhost:6379`) +- **Python 3.11+** +- Install deps: `pip install -r requirements.txt` + +## Files + +| File | Purpose | +|------|---------| +| `mcp_tool_discovery.py` | The example: discovers tools and runs one in a workflow. | +| `weather_mcp_server.py` | Self-contained MCP server with `get_weather` / `get_forecast` tools (streamable-HTTP on `:8081/mcp`). | +| `resources/weather.yaml` | Dapr `MCPServer` resource pointing the sidecar at the weather server. | +| `resources/statestore.yaml` | Redis state store with `actorStateStore: true` (required by workflows). | + +## Run + +In one terminal, start the bundled MCP server: + +```bash +python weather_mcp_server.py +``` + +In another terminal, run the example with Dapr: + +```bash +dapr run \ + --app-id mcp-demo \ + --resources-path ./resources \ + -- python mcp_tool_discovery.py +``` + +The example will: + +1. Connect to the `weather` MCPServer resource via the sidecar. +2. Print each discovered tool's name, description, and workflow name. +3. Schedule a `CallTool` child workflow for the first tool with `{"location": "Seattle"}`. +4. Print the result. + +## Using a different MCP server + +Edit `resources/weather.yaml` to point at any MCP-compatible endpoint. Supported +transports: + +```yaml +spec: + endpoint: + streamableHTTP: + url: http://host:port/mcp +``` + +```yaml +spec: + endpoint: + sse: + url: http://host:port/sse +``` + +```yaml +spec: + endpoint: + stdio: + command: python + args: ["path/to/server.py"] +``` diff --git a/examples/mcp/mcp_tool_discovery.py b/examples/mcp/mcp_tool_discovery.py new file mode 100644 index 000000000..fb3eefc0c --- /dev/null +++ b/examples/mcp/mcp_tool_discovery.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +# Copyright 2026 The Dapr Authors +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +MCP Tool Discovery Example +=========================== + +Demonstrates using DaprMCPClient to discover MCP tools from Dapr +MCPServer resources — without any agent framework dependency. + +This is the SDK-level client that any agent framework can build on top of. + +Prerequisites +------------- +1. A Dapr MCPServer resource named "weather" loaded in the sidecar:: + + apiVersion: dapr.io/v1alpha1 + kind: MCPServer + metadata: + name: weather + spec: + endpoint: + streamableHTTP: + url: http://localhost:8081/mcp + +2. An MCP server running at the configured URL. + +Run +--- +:: + + dapr run --app-id mcp-demo --resources-path ./resources -- python mcp_tool_discovery.py +""" + +from dapr.ext.workflow import ( + DaprMCPClient, + DaprWorkflowClient, + DaprWorkflowContext, + WorkflowActivityContext, + WorkflowRuntime, + create_pydantic_model_from_schema, +) + + +def main(): + # ------------------------------------------------------------------ + # 1. Discover MCP tools from a Dapr MCPServer resource. + # ------------------------------------------------------------------ + print("Connecting to MCPServer 'weather'...") + + client = DaprMCPClient(timeout_in_seconds=30) + client.connect('weather') + + tools = client.get_all_tools() + print(f'\nDiscovered {len(tools)} tool(s):\n') + for tool in tools: + print(f' Name: {tool.name}') + print(f' Description: {tool.description}') + print(f' Server: {tool.server_name}') + print(f' Workflow: {tool.call_tool_workflow}') + if tool.input_schema.get('properties'): + props = list(tool.input_schema['properties'].keys()) + print(f' Parameters: {", ".join(props)}') + print() + + # ------------------------------------------------------------------ + # 2. Use the tool in a Dapr workflow. + # This shows how any framework can use MCPToolDef to schedule + # durable tool calls via child workflows. + # ------------------------------------------------------------------ + if not tools: + print('No tools discovered — exiting.') + return + + tool = tools[0] + print(f"Using tool '{tool.name}' in a workflow...\n") + + # Build a Pydantic model from the tool's JSON Schema for validation. + if tool.input_schema: + ArgsModel = create_pydantic_model_from_schema(tool.input_schema, f'{tool.name}Args') + print(f' Args model: {ArgsModel.__name__}') + print(f' Fields: {list(ArgsModel.model_fields.keys())}\n') + + # Define a simple workflow that calls the MCP tool. + def call_mcp_tool_workflow(ctx: DaprWorkflowContext, input: dict): + """Workflow that calls an MCP tool as a child workflow.""" + result = yield ctx.call_child_workflow( + workflow=tool.call_tool_workflow, + input={ + 'toolName': tool.name, + 'arguments': input.get('arguments', {}), + }, + ) + return result + + def print_result(ctx: WorkflowActivityContext, input): + """Activity that prints the tool result.""" + print(f' Tool result: {input}') + + # Register and run the workflow. + wfr = WorkflowRuntime() + wfr.register_workflow(call_mcp_tool_workflow) + wfr.register_activity(print_result) + wfr.start() + + wf_client = DaprWorkflowClient() + instance_id = wf_client.schedule_new_workflow( + workflow=call_mcp_tool_workflow, + input={'arguments': {'location': 'Seattle'}}, + ) + print(f' Scheduled workflow: {instance_id}') + + state = wf_client.wait_for_workflow_completion( + instance_id=instance_id, + timeout_in_seconds=30, + fetch_payloads=True, + ) + + if state: + print(f' Status: {state.runtime_status.name}') + print(f' Output: {state.serialized_output}') + else: + print(' Workflow timed out.') + + wfr.shutdown() + print('\nDone.') + + +if __name__ == '__main__': + main() diff --git a/examples/mcp/requirements.txt b/examples/mcp/requirements.txt new file mode 100644 index 000000000..087549b94 --- /dev/null +++ b/examples/mcp/requirements.txt @@ -0,0 +1,2 @@ +dapr-ext-workflow +mcp diff --git a/examples/mcp/resources/statestore.yaml b/examples/mcp/resources/statestore.yaml new file mode 100644 index 000000000..0bbb9d8f9 --- /dev/null +++ b/examples/mcp/resources/statestore.yaml @@ -0,0 +1,14 @@ +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: workflowstatestore +spec: + type: state.redis + version: v1 + metadata: + - name: redisHost + value: localhost:6379 + - name: redisPassword + value: "" + - name: actorStateStore + value: "true" diff --git a/examples/mcp/resources/weather.yaml b/examples/mcp/resources/weather.yaml new file mode 100644 index 000000000..2cb0710c1 --- /dev/null +++ b/examples/mcp/resources/weather.yaml @@ -0,0 +1,8 @@ +apiVersion: dapr.io/v1alpha1 +kind: MCPServer +metadata: + name: weather +spec: + endpoint: + streamableHTTP: + url: http://localhost:8081/mcp diff --git a/examples/mcp/weather_mcp_server.py b/examples/mcp/weather_mcp_server.py new file mode 100644 index 000000000..fffc59703 --- /dev/null +++ b/examples/mcp/weather_mcp_server.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- +# Copyright 2026 The Dapr Authors +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Weather MCP Server (streamable-HTTP transport) +============================================== + +Self-contained MCP server used by ``mcp_tool_discovery.py``. Exposes +``get_weather`` and ``get_forecast`` tools over the streamable-HTTP +transport at ``http://:/mcp``. + +Run:: + + python weather_mcp_server.py [--host 0.0.0.0] [--port 8081] +""" + +import argparse +import logging +import random + +from mcp.server.fastmcp import FastMCP + +logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') +logger = logging.getLogger('weather-mcp-server') + + +def build_server(host: str, port: int) -> FastMCP: + mcp = FastMCP('WeatherService', host=host, port=port) + + @mcp.tool() + async def get_weather(location: str) -> str: + """Get current weather information for a location. + + Args: + location: City or region name (e.g. 'Seattle', 'London'). + + Returns: + Current temperature and conditions. + """ + temperature = random.randint(32, 105) + conditions = random.choice( + ['sunny', 'cloudy', 'partly cloudy', 'rainy', 'windy', 'snowy', 'foggy'] + ) + humidity = random.randint(20, 95) + return f'{location}: {temperature}F, {conditions}, {humidity}% humidity.' + + @mcp.tool() + async def get_forecast(location: str, days: int = 5) -> str: + """Get a multi-day weather forecast for a location. + + Args: + location: City or region name. + days: Number of days to forecast (default 5, max 10). + + Returns: + Multi-line forecast summary. + """ + days = min(max(days, 1), 10) + lines = [f'{location} {days}-day forecast:'] + for i in range(1, days + 1): + high = random.randint(55, 105) + low = high - random.randint(10, 25) + cond = random.choice(['sunny', 'cloudy', 'rainy', 'stormy', 'clear', 'partly cloudy']) + lines.append(f' Day {i}: High {high}F / Low {low}F, {cond}') + return '\n'.join(lines) + + return mcp + + +def main() -> None: + parser = argparse.ArgumentParser(description='Weather MCP server (streamable-HTTP transport)') + parser.add_argument('--host', default='0.0.0.0') + parser.add_argument('--port', type=int, default=8081) + args = parser.parse_args() + + mcp = build_server(args.host, args.port) + logger.info('Weather MCP server listening on http://%s:%d/mcp', args.host, args.port) + try: + mcp.run(transport='streamable-http') + except (KeyboardInterrupt, SystemExit): + logger.info('Shutting down.') + + +if __name__ == '__main__': + main() diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/__init__.py b/ext/dapr-ext-workflow/dapr/ext/workflow/__init__.py index ef8e082e9..cb5f5e7e3 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/__init__.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/__init__.py @@ -17,6 +17,10 @@ from dapr.ext.workflow._durabletask.task import TaskFailedError from dapr.ext.workflow.dapr_workflow_client import DaprWorkflowClient from dapr.ext.workflow.dapr_workflow_context import DaprWorkflowContext, when_all, when_any + +# MCP +from dapr.ext.workflow.mcp import MCP_WORKFLOW_PREFIX, DaprMCPClient, MCPToolDef +from dapr.ext.workflow.mcp_schema import create_pydantic_model_from_schema from dapr.ext.workflow.retry_policy import RetryPolicy from dapr.ext.workflow.workflow_activity_context import WorkflowActivityContext from dapr.ext.workflow.workflow_runtime import WorkflowRuntime, alternate_name @@ -34,4 +38,9 @@ 'alternate_name', 'RetryPolicy', 'TaskFailedError', + # MCP + 'DaprMCPClient', + 'MCPToolDef', + 'MCP_WORKFLOW_PREFIX', + 'create_pydantic_model_from_schema', ] diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/PROTO_SOURCE_COMMIT_HASH b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/PROTO_SOURCE_COMMIT_HASH index 8185eaeea..1ff110464 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/PROTO_SOURCE_COMMIT_HASH +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/PROTO_SOURCE_COMMIT_HASH @@ -1 +1 @@ -a70949377cd95e5af1003f0b5e29e3772dea0d9e +7d7391e4044252f4abcf55b17634a65de744f4ee diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/attestation_pb2.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/attestation_pb2.py new file mode 100644 index 000000000..ec67ccda1 --- /dev/null +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/attestation_pb2.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: attestation.proto +# Protobuf Python Version: 6.31.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 31, + 1, + '', + 'attestation.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61ttestation.proto\"\xcf\x01\n!ChildCompletionAttestationPayload\x12\x18\n\x10parentInstanceId\x18\x01 \x01(\t\x12\x1d\n\x15parentTaskScheduledId\x18\x02 \x01(\x05\x12\x10\n\x08ioDigest\x18\x03 \x01(\x0c\x12\x18\n\x10signerCertDigest\x18\x04 \x01(\x0c\x12\'\n\x0eterminalStatus\x18\x05 \x01(\x0e\x32\x0f.TerminalStatus\x12\x1c\n\x14\x63\x61nonicalSpecVersion\x18\x06 \x01(\r\"@\n\x1a\x43hildCompletionAttestation\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"\xf0\x01\n$ActivityCompletionAttestationPayload\x12\x18\n\x10parentInstanceId\x18\x01 \x01(\t\x12\x1d\n\x15parentTaskScheduledId\x18\x02 \x01(\x05\x12\x14\n\x0c\x61\x63tivityName\x18\x03 \x01(\t\x12\x10\n\x08ioDigest\x18\x04 \x01(\x0c\x12\x18\n\x10signerCertDigest\x18\x05 \x01(\x0c\x12/\n\x0eterminalStatus\x18\x06 \x01(\x0e\x32\x17.ActivityTerminalStatus\x12\x1c\n\x14\x63\x61nonicalSpecVersion\x18\x07 \x01(\r\"C\n\x1d\x41\x63tivityCompletionAttestation\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"A\n\x1a\x45xternalSigningCertificate\x12\x0e\n\x06\x64igest\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63\x65rtificate\x18\x02 \x01(\x0c*l\n\x0eTerminalStatus\x12\x1f\n\x1bTERMINAL_STATUS_UNSPECIFIED\x10\x00\x12\x1d\n\x19TERMINAL_STATUS_COMPLETED\x10\x01\x12\x1a\n\x16TERMINAL_STATUS_FAILED\x10\x02*\x8f\x01\n\x16\x41\x63tivityTerminalStatus\x12(\n$ACTIVITY_TERMINAL_STATUS_UNSPECIFIED\x10\x00\x12&\n\"ACTIVITY_TERMINAL_STATUS_COMPLETED\x10\x01\x12#\n\x1f\x41\x43TIVITY_TERMINAL_STATUS_FAILED\x10\x02\x42V\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'dapr.ext.workflow._durabletask.internal.attestation_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n+io.dapr.durabletask.implementation.protobufZ\013/api/protos\252\002\031Dapr.DurableTask.Protobuf' + _globals['_TERMINALSTATUS']._serialized_start=676 + _globals['_TERMINALSTATUS']._serialized_end=784 + _globals['_ACTIVITYTERMINALSTATUS']._serialized_start=787 + _globals['_ACTIVITYTERMINALSTATUS']._serialized_end=930 + _globals['_CHILDCOMPLETIONATTESTATIONPAYLOAD']._serialized_start=22 + _globals['_CHILDCOMPLETIONATTESTATIONPAYLOAD']._serialized_end=229 + _globals['_CHILDCOMPLETIONATTESTATION']._serialized_start=231 + _globals['_CHILDCOMPLETIONATTESTATION']._serialized_end=295 + _globals['_ACTIVITYCOMPLETIONATTESTATIONPAYLOAD']._serialized_start=298 + _globals['_ACTIVITYCOMPLETIONATTESTATIONPAYLOAD']._serialized_end=538 + _globals['_ACTIVITYCOMPLETIONATTESTATION']._serialized_start=540 + _globals['_ACTIVITYCOMPLETIONATTESTATION']._serialized_end=607 + _globals['_EXTERNALSIGNINGCERTIFICATE']._serialized_start=609 + _globals['_EXTERNALSIGNINGCERTIFICATE']._serialized_end=674 +# @@protoc_insertion_point(module_scope) diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/attestation_pb2.pyi b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/attestation_pb2.pyi new file mode 100644 index 000000000..e729adac1 --- /dev/null +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/attestation_pb2.pyi @@ -0,0 +1,412 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file + +Copyright 2026 The Dapr Authors +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +""" + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins +import sys +import typing as _typing + +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never +else: + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never + +DESCRIPTOR: _descriptor.FileDescriptor + +class _TerminalStatus: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + +class _TerminalStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_TerminalStatus.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + TERMINAL_STATUS_UNSPECIFIED: _TerminalStatus.ValueType # 0 + TERMINAL_STATUS_COMPLETED: _TerminalStatus.ValueType # 1 + TERMINAL_STATUS_FAILED: _TerminalStatus.ValueType # 2 + +class TerminalStatus(_TerminalStatus, metaclass=_TerminalStatusEnumTypeWrapper): + """============================================================================ + Canonical byte serialization for ioDigest + ============================================================================ + + ioDigest fields commit to an invocation's input and output. To stay stable + across protobuf versions, implementations, and languages, the bytes fed + into the digest are defined directly in terms of user-visible data — the + protobuf marshaler's output is never used. + + The digest is: + sha256( u64be(len(inputBytes)) || inputBytes || + u64be(len(outputBytes)) || outputBytes ) + where inputBytes and outputBytes come from the rules below. Length + prefixes are big-endian uint64 to prevent concatenation ambiguity (same + pattern as HistorySignature.eventsDigest). + + --- String normalization --- + All UTF-8 string bytes used below are first normalized to Unicode + Normalization Form C (NFC). Different-language SDKs (Go, .NET, Python, + Java, JS) may default to different Unicode normalization forms; NFC is + the web-standard canonical form and ensures that semantically equal + strings produce identical bytes regardless of which SDK emitted them. + Verifiers MUST NFC-normalize before hashing to compare against a + signer-produced digest. + + --- Input bytes (child workflows and activities) --- + Inputs are carried as google.protobuf.StringValue in the source event. + Canonical bytes: + wrapper unset: zero-length + wrapper set: nfc_utf8(string_value.value) + The StringValue envelope is not included — only the NFC-normalized + UTF-8 content of the value field. + + --- Output bytes, COMPLETED (child and activity) --- + Same rule as input: NFC-normalized UTF-8 bytes of the result + StringValue's value field, or zero-length if unset. + + --- Output bytes, FAILED (child and activity) --- + Spec-defined canonical serialization of TaskFailureDetails, independent + of protobuf wire format: + + u32be(len(errorType)) || nfc_utf8(errorType) + u32be(len(errorMessage)) || nfc_utf8(errorMessage) + u32be(len(stackTrace)) || nfc_utf8(stackTrace) // StringValue.value, + // zero-length if unset + u8(0 if innerFailure is unset, 1 if set) + if innerFailure is set: + + + Fields appear in this fixed order regardless of proto field numbers. + Unset string fields serialize as zero-length. No protobuf tags, varints, + or envelopes are emitted. The TaskFailureDetails.isNonRetriable field is + intentionally excluded — it is a framework retry-policy hint, not a + description of the failure, and committing to it would couple attestation + verification to retry-semantics evolution with no security benefit. + + The innerFailure recursion depth is capped (implementation-defined, at + least 32 levels). Chains exceeding the cap are treated as malformed: + the signer refuses to produce an attestation and the verifier refuses + to verify one. This bounds the work performed on attacker-controlled + input. + + --- Versioning --- + The canonicalSpecVersion field on each payload identifies which revision + of the rules above produced the attestation's ioDigest. Verifiers that + don't recognize the value reject the attestation rather than risk a + silent digest mismatch. Current value: 1. When TaskFailureDetails or + another canonicalized input grows an attestation-relevant field, the + spec is revised and canonicalSpecVersion is incremented — the rules + above are never silently changed. + + --- Certificate validity --- + Verifiers check that the signer certificate is valid at a specific + point in time. The correct choice of time depends on whether the + attestation is being verified at ingestion or from stored history: + + * Ingestion (parent absorbs an inbound attestation from a child/ + activity): use a trusted wallclock (time.Now()). The enclosing + HistoryEvent.timestamp is set by the sender and is not yet covered + by a signature at this point, so it cannot be trusted. Wallclock + gives "is the cert still valid right now" which is the right + freshness guarantee at the trust boundary. + + * Stored / propagated history (re-verification after the enclosing + event has been signed): use the enclosing HistoryEvent.timestamp. + Once the event is covered by a HistorySignature, the timestamp is + tamper-evident and provides a stable historical point-in-time for + cert validity — the cert was valid at signing time, even if it has + since expired. This mirrors how HistorySignature itself is checked + against the last event in its signed range. + + Terminal state of a child workflow at the moment of attestation. + """ + +TERMINAL_STATUS_UNSPECIFIED: TerminalStatus.ValueType # 0 +TERMINAL_STATUS_COMPLETED: TerminalStatus.ValueType # 1 +TERMINAL_STATUS_FAILED: TerminalStatus.ValueType # 2 +Global___TerminalStatus: _TypeAlias = TerminalStatus # noqa: Y015 + +class _ActivityTerminalStatus: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + +class _ActivityTerminalStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_ActivityTerminalStatus.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + ACTIVITY_TERMINAL_STATUS_UNSPECIFIED: _ActivityTerminalStatus.ValueType # 0 + ACTIVITY_TERMINAL_STATUS_COMPLETED: _ActivityTerminalStatus.ValueType # 1 + ACTIVITY_TERMINAL_STATUS_FAILED: _ActivityTerminalStatus.ValueType # 2 + +class ActivityTerminalStatus(_ActivityTerminalStatus, metaclass=_ActivityTerminalStatusEnumTypeWrapper): + """Terminal state of an activity task at the moment of attestation. + Activities have no "terminate" operation, so the space is smaller than + TerminalStatus. + """ + +ACTIVITY_TERMINAL_STATUS_UNSPECIFIED: ActivityTerminalStatus.ValueType # 0 +ACTIVITY_TERMINAL_STATUS_COMPLETED: ActivityTerminalStatus.ValueType # 1 +ACTIVITY_TERMINAL_STATUS_FAILED: ActivityTerminalStatus.ValueType # 2 +Global___ActivityTerminalStatus: _TypeAlias = ActivityTerminalStatus # noqa: Y015 + +@_typing.final +class ChildCompletionAttestationPayload(_message.Message): + """Inner signed payload for a child workflow completion attestation. The + deterministically serialized form of this message is what the signer + signs over and what receivers verify against; the bytes are produced + once and never re-marshaled. + """ + + DESCRIPTOR: _descriptor.Descriptor + + PARENTINSTANCEID_FIELD_NUMBER: _builtins.int + PARENTTASKSCHEDULEDID_FIELD_NUMBER: _builtins.int + IODIGEST_FIELD_NUMBER: _builtins.int + SIGNERCERTDIGEST_FIELD_NUMBER: _builtins.int + TERMINALSTATUS_FIELD_NUMBER: _builtins.int + CANONICALSPECVERSION_FIELD_NUMBER: _builtins.int + parentInstanceId: _builtins.str + """Parent workflow instance ID. Binds the attestation to a single parent + run, preventing replay by other instances of the same parent workflow + that share a signing key. + """ + parentTaskScheduledId: _builtins.int + """taskScheduledId from the parent's ChildWorkflowInstanceCreatedEvent. + Unique within the parent instance; distinguishes multiple invocations + of the same child workflow. + """ + ioDigest: _builtins.bytes + """sha256 commitment to this invocation's input and output. The bytes + fed into the digest are produced by the canonical byte serialization + spec at the top of this file — not by any protobuf marshaler — so + the digest is stable across proto versions, implementations, and + languages. Use terminalStatus to select the output serialization rule + (COMPLETED or FAILED). + """ + signerCertDigest: _builtins.bytes + """sha256 of the DER-encoded X.509 certificate chain bytes of the + signer (leaf first, intermediates concatenated; same byte format + as the `certificate` field of SigningCertificate). Computed directly + over the DER bytes rather than any protobuf envelope, so the digest + is stable across protobuf version changes. The certificate itself + is carried as a companion field on the enclosing event on first + delivery and stored once in the receiver's external certificate + table (ext-sigcert-NNNNNN), looked up by this digest. + """ + terminalStatus: Global___TerminalStatus.ValueType + """Terminal state of the child workflow at the moment of attestation. + Signed so that a verifier reading the attestation from propagated + history can tell whether the child succeeded without relying on the + enclosing event type (Completed vs Failed), which may not be + visible or trustworthy when the attestation is inspected in + isolation. + """ + canonicalSpecVersion: _builtins.int + """Version of the canonical byte serialization spec used to compute + ioDigest. See the "Versioning" section of the spec block at the top + of this file. Verifiers that don't recognize the value reject the + attestation rather than risk a silent digest mismatch. Current + value: 1. + """ + def __init__( + self, + *, + parentInstanceId: _builtins.str = ..., + parentTaskScheduledId: _builtins.int = ..., + ioDigest: _builtins.bytes = ..., + signerCertDigest: _builtins.bytes = ..., + terminalStatus: Global___TerminalStatus.ValueType = ..., + canonicalSpecVersion: _builtins.int = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["canonicalSpecVersion", b"canonicalSpecVersion", "ioDigest", b"ioDigest", "parentInstanceId", b"parentInstanceId", "parentTaskScheduledId", b"parentTaskScheduledId", "signerCertDigest", b"signerCertDigest", "terminalStatus", b"terminalStatus"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___ChildCompletionAttestationPayload: _TypeAlias = ChildCompletionAttestationPayload # noqa: Y015 + +@_typing.final +class ChildCompletionAttestation(_message.Message): + """Signed wrapper around ChildCompletionAttestationPayload.""" + + DESCRIPTOR: _descriptor.Descriptor + + PAYLOAD_FIELD_NUMBER: _builtins.int + SIGNATURE_FIELD_NUMBER: _builtins.int + payload: _builtins.bytes + """Deterministically serialized form of ChildCompletionAttestationPayload + produced once by the signer. Opaque bytes thereafter; receivers, + storage layers, and verifiers never re-marshal. + """ + signature: _builtins.bytes + """Cryptographic signature over sha256(payload) using the private key + corresponding to the certificate whose digest is in the payload's + signerCertDigest field. Signature format follows the same rules as + HistorySignature.signature. + """ + def __init__( + self, + *, + payload: _builtins.bytes = ..., + signature: _builtins.bytes = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["payload", b"payload", "signature", b"signature"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___ChildCompletionAttestation: _TypeAlias = ChildCompletionAttestation # noqa: Y015 + +@_typing.final +class ActivityCompletionAttestationPayload(_message.Message): + """Inner signed payload for an activity completion attestation. Activities + have no signed history chain of their own (unlike child workflows), so + there is no finalSignatureDigest field. Activity identity is the hosting + app's SPIFFE identity; a compromised app can attest only to activities + it hosts, not to activities hosted on other apps. + """ + + DESCRIPTOR: _descriptor.Descriptor + + PARENTINSTANCEID_FIELD_NUMBER: _builtins.int + PARENTTASKSCHEDULEDID_FIELD_NUMBER: _builtins.int + ACTIVITYNAME_FIELD_NUMBER: _builtins.int + IODIGEST_FIELD_NUMBER: _builtins.int + SIGNERCERTDIGEST_FIELD_NUMBER: _builtins.int + TERMINALSTATUS_FIELD_NUMBER: _builtins.int + CANONICALSPECVERSION_FIELD_NUMBER: _builtins.int + parentInstanceId: _builtins.str + """Parent workflow instance ID that scheduled the activity.""" + parentTaskScheduledId: _builtins.int + """taskScheduledId from the parent's TaskScheduledEvent. Unique within + the parent instance. + """ + activityName: _builtins.str + """Activity name from the parent's TaskScheduledEvent. Explicit because + no separate creation event binds it in the parent's history the way + ChildWorkflowInstanceCreatedEvent does for child workflows. + """ + ioDigest: _builtins.bytes + """sha256 commitment to this invocation's input and output. See the + canonical byte serialization spec at the top of this file. Use + terminalStatus (ACTIVITY_TERMINAL_STATUS_COMPLETED or _FAILED) to + select the output serialization rule. + """ + signerCertDigest: _builtins.bytes + """sha256 of the DER-encoded X.509 certificate chain bytes of the + activity executor's signer. Same semantics and storage behavior as + ChildCompletionAttestationPayload.signerCertDigest. + """ + terminalStatus: Global___ActivityTerminalStatus.ValueType + """Terminal state of the activity at the moment of attestation.""" + canonicalSpecVersion: _builtins.int + """Version of the canonical byte serialization spec used to compute + ioDigest. See the "Versioning" section of the spec block at the top + of this file. Verifiers that don't recognize the value reject the + attestation rather than risk a silent digest mismatch. Current + value: 1. + """ + def __init__( + self, + *, + parentInstanceId: _builtins.str = ..., + parentTaskScheduledId: _builtins.int = ..., + activityName: _builtins.str = ..., + ioDigest: _builtins.bytes = ..., + signerCertDigest: _builtins.bytes = ..., + terminalStatus: Global___ActivityTerminalStatus.ValueType = ..., + canonicalSpecVersion: _builtins.int = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["activityName", b"activityName", "canonicalSpecVersion", b"canonicalSpecVersion", "ioDigest", b"ioDigest", "parentInstanceId", b"parentInstanceId", "parentTaskScheduledId", b"parentTaskScheduledId", "signerCertDigest", b"signerCertDigest", "terminalStatus", b"terminalStatus"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___ActivityCompletionAttestationPayload: _TypeAlias = ActivityCompletionAttestationPayload # noqa: Y015 + +@_typing.final +class ActivityCompletionAttestation(_message.Message): + """Signed wrapper around ActivityCompletionAttestationPayload.""" + + DESCRIPTOR: _descriptor.Descriptor + + PAYLOAD_FIELD_NUMBER: _builtins.int + SIGNATURE_FIELD_NUMBER: _builtins.int + payload: _builtins.bytes + """Deterministically serialized form of + ActivityCompletionAttestationPayload produced once by the signer. + Opaque bytes thereafter; receivers, storage layers, and verifiers + never re-marshal. + """ + signature: _builtins.bytes + """Cryptographic signature over sha256(payload).""" + def __init__( + self, + *, + payload: _builtins.bytes = ..., + signature: _builtins.bytes = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["payload", b"payload", "signature", b"signature"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___ActivityCompletionAttestation: _TypeAlias = ActivityCompletionAttestation # noqa: Y015 + +@_typing.final +class ExternalSigningCertificate(_message.Message): + """A foreign signer's X.509 certificate; one belonging to another workflow + instance or activity executor whose attestations this workflow has + received. Stored once per unique digest and referenced by digest from + any attestation embedded in history. Stored as individual actor state + keys: ext-sigcert-000000, ext-sigcert-000001, etc. + + Lifecycle mirrors SigningCertificate (monotonically appended within a + run, cleared on ContinueAsNew and instance purge, tracked by + BackendWorkflowStateMetadata.externalSigningCertificateLength). Dedup + within a run is performed by in-memory digest→index lookup built at + load time. + """ + + DESCRIPTOR: _descriptor.Descriptor + + DIGEST_FIELD_NUMBER: _builtins.int + CERTIFICATE_FIELD_NUMBER: _builtins.int + digest: _builtins.bytes + """sha256 of the DER-encoded X.509 certificate chain bytes (the value + in `certificate` below). Also the primary lookup key used by + attestations' signerCertDigest fields. Stored explicitly so + load-time index construction and post-load integrity checks do not + have to re-hash every entry. + """ + certificate: _builtins.bytes + """Same byte format as SigningCertificate.certificate: DER-encoded + X.509 chain, leaf first, intermediates concatenated. + """ + def __init__( + self, + *, + digest: _builtins.bytes = ..., + certificate: _builtins.bytes = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["certificate", b"certificate", "digest", b"digest"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___ExternalSigningCertificate: _TypeAlias = ExternalSigningCertificate # noqa: Y015 diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/attestation_pb2_grpc.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/attestation_pb2_grpc.py new file mode 100644 index 000000000..1104adc4b --- /dev/null +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/attestation_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.80.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in attestation_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2.py index c969a3d2a..26643c527 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2.py @@ -28,7 +28,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x62\x61\x63kend_service.proto\x12\x1d\x64urabletask.protos.backend.v1\x1a\x13orchestration.proto\x1a\x14history_events.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"T\n\x0f\x41\x64\x64\x45ventRequest\x12#\n\x08instance\x18\x01 \x01(\x0b\x32\x11.WorkflowInstance\x12\x1c\n\x05\x65vent\x18\x02 \x01(\x0b\x32\r.HistoryEvent\"\x12\n\x10\x41\x64\x64\x45ventResponse\"`\n\x1f\x43ompleteActivityWorkItemRequest\x12\x17\n\x0f\x63ompletionToken\x18\x01 \x01(\t\x12$\n\rresponseEvent\x18\x02 \x01(\x0b\x32\r.HistoryEvent\"\"\n CompleteActivityWorkItemResponse\"\xa4\x03\n\x1f\x43ompleteWorkflowWorkItemRequest\x12\x17\n\x0f\x63ompletionToken\x18\x01 \x01(\t\x12#\n\x08instance\x18\x02 \x01(\x0b\x32\x11.WorkflowInstance\x12+\n\rruntimeStatus\x18\x03 \x01(\x0e\x32\x14.OrchestrationStatus\x12\x32\n\x0c\x63ustomStatus\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12!\n\nnewHistory\x18\x05 \x03(\x0b\x32\r.HistoryEvent\x12\x1f\n\x08newTasks\x18\x06 \x03(\x0b\x32\r.HistoryEvent\x12 \n\tnewTimers\x18\x07 \x03(\x0b\x32\r.HistoryEvent\x12\x43\n\x0bnewMessages\x18\x08 \x03(\x0b\x32..durabletask.protos.backend.v1.WorkflowMessage\x12\x37\n\x12numEventsProcessed\x18\t \x01(\x0b\x32\x1b.google.protobuf.Int32Value\"\"\n CompleteWorkflowWorkItemResponse\"T\n\x0fWorkflowMessage\x12#\n\x08instance\x18\x01 \x01(\x0b\x32\x11.WorkflowInstance\x12\x1c\n\x05\x65vent\x18\x02 \x01(\x0b\x32\r.HistoryEvent\"\x9c\x01\n\x14\x42\x61\x63kendWorkflowState\x12\x1c\n\x05inbox\x18\x01 \x03(\x0b\x32\r.HistoryEvent\x12\x1e\n\x07history\x18\x02 \x03(\x0b\x32\r.HistoryEvent\x12\x32\n\x0c\x63ustomStatus\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x12\n\ngeneration\x18\x04 \x01(\x04\"P\n\x1d\x43reateWorkflowInstanceRequest\x12!\n\nstartEvent\x18\x01 \x01(\x0b\x32\r.HistoryEventJ\x04\x08\x02\x10\x03R\x06policy\"\xca\x03\n\x10WorkflowMetadata\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12+\n\rruntimeStatus\x18\x03 \x01(\x0e\x32\x14.OrchestrationStatus\x12-\n\tcreatedAt\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rlastUpdatedAt\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x05input\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x06output\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x63ustomStatus\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x0e\x66\x61ilureDetails\x18\t \x01(\x0b\x32\x13.TaskFailureDetails\x12/\n\x0b\x63ompletedAt\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10parentInstanceId\x18\x0b \x01(\t\"\x99\x01\n\x1c\x42\x61\x63kendWorkflowStateMetadata\x12\x13\n\x0binboxLength\x18\x01 \x01(\x04\x12\x15\n\rhistoryLength\x18\x02 \x01(\x04\x12\x12\n\ngeneration\x18\x03 \x01(\x04\x12\x17\n\x0fsignatureLength\x18\x04 \x01(\x04\x12 \n\x18signingCertificateLength\x18\x05 \x01(\x04\")\n\x12SigningCertificate\x12\x13\n\x0b\x63\x65rtificate\x18\x01 \x01(\x0c\"\xc4\x01\n\x10HistorySignature\x12\x17\n\x0fstartEventIndex\x18\x01 \x01(\x04\x12\x12\n\neventCount\x18\x02 \x01(\x04\x12$\n\x17previousSignatureDigest\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x0c\x65ventsDigest\x18\x04 \x01(\x0c\x12\x18\n\x10\x63\x65rtificateIndex\x18\x05 \x01(\x04\x12\x11\n\tsignature\x18\x06 \x01(\x0c\x42\x1a\n\x18_previousSignatureDigest\"E\n\x0c\x44urableTimer\x12!\n\ntimerEvent\x18\x01 \x01(\x0b\x32\r.HistoryEvent\x12\x12\n\ngeneration\x18\x02 \x01(\x04\x42V\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x62\x61\x63kend_service.proto\x12\x1d\x64urabletask.protos.backend.v1\x1a\x13orchestration.proto\x1a\x14history_events.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"T\n\x0f\x41\x64\x64\x45ventRequest\x12#\n\x08instance\x18\x01 \x01(\x0b\x32\x11.WorkflowInstance\x12\x1c\n\x05\x65vent\x18\x02 \x01(\x0b\x32\r.HistoryEvent\"\x12\n\x10\x41\x64\x64\x45ventResponse\"`\n\x1f\x43ompleteActivityWorkItemRequest\x12\x17\n\x0f\x63ompletionToken\x18\x01 \x01(\t\x12$\n\rresponseEvent\x18\x02 \x01(\x0b\x32\r.HistoryEvent\"\"\n CompleteActivityWorkItemResponse\"\xa4\x03\n\x1f\x43ompleteWorkflowWorkItemRequest\x12\x17\n\x0f\x63ompletionToken\x18\x01 \x01(\t\x12#\n\x08instance\x18\x02 \x01(\x0b\x32\x11.WorkflowInstance\x12+\n\rruntimeStatus\x18\x03 \x01(\x0e\x32\x14.OrchestrationStatus\x12\x32\n\x0c\x63ustomStatus\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12!\n\nnewHistory\x18\x05 \x03(\x0b\x32\r.HistoryEvent\x12\x1f\n\x08newTasks\x18\x06 \x03(\x0b\x32\r.HistoryEvent\x12 \n\tnewTimers\x18\x07 \x03(\x0b\x32\r.HistoryEvent\x12\x43\n\x0bnewMessages\x18\x08 \x03(\x0b\x32..durabletask.protos.backend.v1.WorkflowMessage\x12\x37\n\x12numEventsProcessed\x18\t \x01(\x0b\x32\x1b.google.protobuf.Int32Value\"\"\n CompleteWorkflowWorkItemResponse\"T\n\x0fWorkflowMessage\x12#\n\x08instance\x18\x01 \x01(\x0b\x32\x11.WorkflowInstance\x12\x1c\n\x05\x65vent\x18\x02 \x01(\x0b\x32\r.HistoryEvent\"\x9c\x01\n\x14\x42\x61\x63kendWorkflowState\x12\x1c\n\x05inbox\x18\x01 \x03(\x0b\x32\r.HistoryEvent\x12\x1e\n\x07history\x18\x02 \x03(\x0b\x32\r.HistoryEvent\x12\x32\n\x0c\x63ustomStatus\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x12\n\ngeneration\x18\x04 \x01(\x04\"\x83\x01\n\x12\x41\x63tivityInvocation\x12#\n\x0chistoryEvent\x18\x01 \x01(\x0b\x32\r.HistoryEvent\x12\x32\n\x11propagatedHistory\x18\x02 \x01(\x0b\x32\x12.PropagatedHistoryH\x00\x88\x01\x01\x42\x14\n\x12_propagatedHistory\"\x9a\x01\n\x1d\x43reateWorkflowInstanceRequest\x12!\n\nstartEvent\x18\x01 \x01(\x0b\x32\r.HistoryEvent\x12\x32\n\x11propagatedHistory\x18\x03 \x01(\x0b\x32\x12.PropagatedHistoryH\x00\x88\x01\x01\x42\x14\n\x12_propagatedHistoryJ\x04\x08\x02\x10\x03R\x06policy\"\x94\x05\n\x10WorkflowMetadata\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12+\n\rruntimeStatus\x18\x03 \x01(\x0e\x32\x14.OrchestrationStatus\x12-\n\tcreatedAt\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rlastUpdatedAt\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x05input\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x06output\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x63ustomStatus\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x0e\x66\x61ilureDetails\x18\t \x01(\x0b\x32\x13.TaskFailureDetails\x12/\n\x0b\x63ompletedAt\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10parentInstanceId\x18\x0b \x01(\t\x12\x32\n\x07version\x18\x0c \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x00\x88\x01\x01\x12\x36\n\x0bparentAppId\x18\r \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x01\x88\x01\x01\x12\x32\n\tstartedAt\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x42\n\n\x08_versionB\x0e\n\x0c_parentAppIdB\x0c\n\n_startedAt\"\xc3\x01\n\x1c\x42\x61\x63kendWorkflowStateMetadata\x12\x13\n\x0binboxLength\x18\x01 \x01(\x04\x12\x15\n\rhistoryLength\x18\x02 \x01(\x04\x12\x12\n\ngeneration\x18\x03 \x01(\x04\x12\x17\n\x0fsignatureLength\x18\x04 \x01(\x04\x12 \n\x18signingCertificateLength\x18\x05 \x01(\x04\x12(\n externalSigningCertificateLength\x18\x06 \x01(\x04\")\n\x12SigningCertificate\x12\x13\n\x0b\x63\x65rtificate\x18\x01 \x01(\x0c\"\xc4\x01\n\x10HistorySignature\x12\x17\n\x0fstartEventIndex\x18\x01 \x01(\x04\x12\x12\n\neventCount\x18\x02 \x01(\x04\x12$\n\x17previousSignatureDigest\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x0c\x65ventsDigest\x18\x04 \x01(\x0c\x12\x18\n\x10\x63\x65rtificateIndex\x18\x05 \x01(\x04\x12\x11\n\tsignature\x18\x06 \x01(\x0c\x42\x1a\n\x18_previousSignatureDigest\"E\n\x0c\x44urableTimer\x12!\n\ntimerEvent\x18\x01 \x01(\x0b\x32\r.HistoryEvent\x12\x12\n\ngeneration\x18\x02 \x01(\x04\x42V\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -52,16 +52,18 @@ _globals['_WORKFLOWMESSAGE']._serialized_end=947 _globals['_BACKENDWORKFLOWSTATE']._serialized_start=950 _globals['_BACKENDWORKFLOWSTATE']._serialized_end=1106 - _globals['_CREATEWORKFLOWINSTANCEREQUEST']._serialized_start=1108 - _globals['_CREATEWORKFLOWINSTANCEREQUEST']._serialized_end=1188 - _globals['_WORKFLOWMETADATA']._serialized_start=1191 - _globals['_WORKFLOWMETADATA']._serialized_end=1649 - _globals['_BACKENDWORKFLOWSTATEMETADATA']._serialized_start=1652 - _globals['_BACKENDWORKFLOWSTATEMETADATA']._serialized_end=1805 - _globals['_SIGNINGCERTIFICATE']._serialized_start=1807 - _globals['_SIGNINGCERTIFICATE']._serialized_end=1848 - _globals['_HISTORYSIGNATURE']._serialized_start=1851 - _globals['_HISTORYSIGNATURE']._serialized_end=2047 - _globals['_DURABLETIMER']._serialized_start=2049 - _globals['_DURABLETIMER']._serialized_end=2118 + _globals['_ACTIVITYINVOCATION']._serialized_start=1109 + _globals['_ACTIVITYINVOCATION']._serialized_end=1240 + _globals['_CREATEWORKFLOWINSTANCEREQUEST']._serialized_start=1243 + _globals['_CREATEWORKFLOWINSTANCEREQUEST']._serialized_end=1397 + _globals['_WORKFLOWMETADATA']._serialized_start=1400 + _globals['_WORKFLOWMETADATA']._serialized_end=2060 + _globals['_BACKENDWORKFLOWSTATEMETADATA']._serialized_start=2063 + _globals['_BACKENDWORKFLOWSTATEMETADATA']._serialized_end=2258 + _globals['_SIGNINGCERTIFICATE']._serialized_start=2260 + _globals['_SIGNINGCERTIFICATE']._serialized_end=2301 + _globals['_HISTORYSIGNATURE']._serialized_start=2304 + _globals['_HISTORYSIGNATURE']._serialized_end=2500 + _globals['_DURABLETIMER']._serialized_start=2502 + _globals['_DURABLETIMER']._serialized_end=2571 # @@protoc_insertion_point(module_scope) diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2.pyi b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2.pyi index 7b1a84ded..9edff8188 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2.pyi +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2.pyi @@ -17,10 +17,10 @@ from dapr.ext.workflow._durabletask.internal import orchestration_pb2 as _orches import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -50,6 +50,7 @@ class AddEventRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["event", b"event", "instance", b"instance"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___AddEventRequest: _TypeAlias = AddEventRequest # noqa: Y015 @@ -64,6 +65,11 @@ class AddEventResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___AddEventResponse: _TypeAlias = AddEventResponse # noqa: Y015 @@ -93,6 +99,7 @@ class CompleteActivityWorkItemRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["completionToken", b"completionToken", "responseEvent", b"responseEvent"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___CompleteActivityWorkItemRequest: _TypeAlias = CompleteActivityWorkItemRequest # noqa: Y015 @@ -107,6 +114,11 @@ class CompleteActivityWorkItemResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___CompleteActivityWorkItemResponse: _TypeAlias = CompleteActivityWorkItemResponse # noqa: Y015 @@ -163,6 +175,7 @@ class CompleteWorkflowWorkItemRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["completionToken", b"completionToken", "customStatus", b"customStatus", "instance", b"instance", "newHistory", b"newHistory", "newMessages", b"newMessages", "newTasks", b"newTasks", "newTimers", b"newTimers", "numEventsProcessed", b"numEventsProcessed", "runtimeStatus", b"runtimeStatus"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___CompleteWorkflowWorkItemRequest: _TypeAlias = CompleteWorkflowWorkItemRequest # noqa: Y015 @@ -177,6 +190,11 @@ class CompleteWorkflowWorkItemResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___CompleteWorkflowWorkItemResponse: _TypeAlias = CompleteWorkflowWorkItemResponse # noqa: Y015 @@ -206,6 +224,7 @@ class WorkflowMessage(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["event", b"event", "instance", b"instance"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___WorkflowMessage: _TypeAlias = WorkflowMessage # noqa: Y015 @@ -236,25 +255,67 @@ class BackendWorkflowState(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["customStatus", b"customStatus", "generation", b"generation", "history", b"history", "inbox", b"inbox"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___BackendWorkflowState: _TypeAlias = BackendWorkflowState # noqa: Y015 +@_typing.final +class ActivityInvocation(_message.Message): + """ActivityInvocation wraps a TaskScheduled HistoryEvent with optional + propagated history for delivery to an activity actor. + """ + + DESCRIPTOR: _descriptor.Descriptor + + HISTORYEVENT_FIELD_NUMBER: _builtins.int + PROPAGATEDHISTORY_FIELD_NUMBER: _builtins.int + @_builtins.property + def historyEvent(self) -> _history_events_pb2.HistoryEvent: ... + @_builtins.property + def propagatedHistory(self) -> _history_events_pb2.PropagatedHistory: + """Propagated history from the calling workflow.""" + + def __init__( + self, + *, + historyEvent: _history_events_pb2.HistoryEvent | None = ..., + propagatedHistory: _history_events_pb2.PropagatedHistory | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory", "historyEvent", b"historyEvent", "propagatedHistory", b"propagatedHistory"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory", "historyEvent", b"historyEvent", "propagatedHistory", b"propagatedHistory"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__propagatedHistory: _TypeAlias = _typing.Literal["propagatedHistory"] # noqa: Y015 + _WhichOneofArgType__propagatedHistory: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType__propagatedHistory) -> _WhichOneofReturnType__propagatedHistory | None: ... + +Global___ActivityInvocation: _TypeAlias = ActivityInvocation # noqa: Y015 + @_typing.final class CreateWorkflowInstanceRequest(_message.Message): DESCRIPTOR: _descriptor.Descriptor STARTEVENT_FIELD_NUMBER: _builtins.int + PROPAGATEDHISTORY_FIELD_NUMBER: _builtins.int @_builtins.property def startEvent(self) -> _history_events_pb2.HistoryEvent: ... + @_builtins.property + def propagatedHistory(self) -> _history_events_pb2.PropagatedHistory: + """Propagated history from the parent workflow.""" + def __init__( self, *, startEvent: _history_events_pb2.HistoryEvent | None = ..., + propagatedHistory: _history_events_pb2.PropagatedHistory | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["startEvent", b"startEvent"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory", "propagatedHistory", b"propagatedHistory", "startEvent", b"startEvent"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["startEvent", b"startEvent"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory", "propagatedHistory", b"propagatedHistory", "startEvent", b"startEvent"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__propagatedHistory: _TypeAlias = _typing.Literal["propagatedHistory"] # noqa: Y015 + _WhichOneofArgType__propagatedHistory: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType__propagatedHistory) -> _WhichOneofReturnType__propagatedHistory | None: ... Global___CreateWorkflowInstanceRequest: _TypeAlias = CreateWorkflowInstanceRequest # noqa: Y015 @@ -273,6 +334,9 @@ class WorkflowMetadata(_message.Message): FAILUREDETAILS_FIELD_NUMBER: _builtins.int COMPLETEDAT_FIELD_NUMBER: _builtins.int PARENTINSTANCEID_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + PARENTAPPID_FIELD_NUMBER: _builtins.int + STARTEDAT_FIELD_NUMBER: _builtins.int instanceId: _builtins.str name: _builtins.str runtimeStatus: _orchestration_pb2.OrchestrationStatus.ValueType @@ -291,6 +355,12 @@ class WorkflowMetadata(_message.Message): def failureDetails(self) -> _orchestration_pb2.TaskFailureDetails: ... @_builtins.property def completedAt(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def version(self) -> _wrappers_pb2.StringValue: ... + @_builtins.property + def parentAppId(self) -> _wrappers_pb2.StringValue: ... + @_builtins.property + def startedAt(self) -> _timestamp_pb2.Timestamp: ... def __init__( self, *, @@ -305,11 +375,26 @@ class WorkflowMetadata(_message.Message): failureDetails: _orchestration_pb2.TaskFailureDetails | None = ..., completedAt: _timestamp_pb2.Timestamp | None = ..., parentInstanceId: _builtins.str = ..., + version: _wrappers_pb2.StringValue | None = ..., + parentAppId: _wrappers_pb2.StringValue | None = ..., + startedAt: _timestamp_pb2.Timestamp | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["completedAt", b"completedAt", "createdAt", b"createdAt", "customStatus", b"customStatus", "failureDetails", b"failureDetails", "input", b"input", "lastUpdatedAt", b"lastUpdatedAt", "output", b"output"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_parentAppId", b"_parentAppId", "_startedAt", b"_startedAt", "_version", b"_version", "completedAt", b"completedAt", "createdAt", b"createdAt", "customStatus", b"customStatus", "failureDetails", b"failureDetails", "input", b"input", "lastUpdatedAt", b"lastUpdatedAt", "output", b"output", "parentAppId", b"parentAppId", "startedAt", b"startedAt", "version", b"version"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["completedAt", b"completedAt", "createdAt", b"createdAt", "customStatus", b"customStatus", "failureDetails", b"failureDetails", "input", b"input", "instanceId", b"instanceId", "lastUpdatedAt", b"lastUpdatedAt", "name", b"name", "output", b"output", "parentInstanceId", b"parentInstanceId", "runtimeStatus", b"runtimeStatus"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_parentAppId", b"_parentAppId", "_startedAt", b"_startedAt", "_version", b"_version", "completedAt", b"completedAt", "createdAt", b"createdAt", "customStatus", b"customStatus", "failureDetails", b"failureDetails", "input", b"input", "instanceId", b"instanceId", "lastUpdatedAt", b"lastUpdatedAt", "name", b"name", "output", b"output", "parentAppId", b"parentAppId", "parentInstanceId", b"parentInstanceId", "runtimeStatus", b"runtimeStatus", "startedAt", b"startedAt", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__parentAppId: _TypeAlias = _typing.Literal["parentAppId"] # noqa: Y015 + _WhichOneofArgType__parentAppId: _TypeAlias = _typing.Literal["_parentAppId", b"_parentAppId"] # noqa: Y015 + _WhichOneofReturnType__startedAt: _TypeAlias = _typing.Literal["startedAt"] # noqa: Y015 + _WhichOneofArgType__startedAt: _TypeAlias = _typing.Literal["_startedAt", b"_startedAt"] # noqa: Y015 + _WhichOneofReturnType__version: _TypeAlias = _typing.Literal["version"] # noqa: Y015 + _WhichOneofArgType__version: _TypeAlias = _typing.Literal["_version", b"_version"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__parentAppId) -> _WhichOneofReturnType__parentAppId | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__startedAt) -> _WhichOneofReturnType__startedAt | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__version) -> _WhichOneofReturnType__version | None: ... Global___WorkflowMetadata: _TypeAlias = WorkflowMetadata # noqa: Y015 @@ -322,6 +407,7 @@ class BackendWorkflowStateMetadata(_message.Message): GENERATION_FIELD_NUMBER: _builtins.int SIGNATURELENGTH_FIELD_NUMBER: _builtins.int SIGNINGCERTIFICATELENGTH_FIELD_NUMBER: _builtins.int + EXTERNALSIGNINGCERTIFICATELENGTH_FIELD_NUMBER: _builtins.int inboxLength: _builtins.int historyLength: _builtins.int generation: _builtins.int @@ -329,6 +415,14 @@ class BackendWorkflowStateMetadata(_message.Message): """Number of HistorySignature entries stored (signature-NNNNNN keys).""" signingCertificateLength: _builtins.int """Number of SigningCertificate entries stored (sigcert-NNNNNN keys).""" + externalSigningCertificateLength: _builtins.int + """Number of ExternalSigningCertificate entries stored + (ext-sigcert-NNNNNN keys). Same lifecycle as signingCertificateLength: + monotonically grows within a run as new foreign signer certificates + are absorbed from incoming attestations, zeroed on ContinueAsNew, + cleared on instance purge. Subject to the same maxStateEntries + tampering bound. + """ def __init__( self, *, @@ -337,9 +431,13 @@ class BackendWorkflowStateMetadata(_message.Message): generation: _builtins.int = ..., signatureLength: _builtins.int = ..., signingCertificateLength: _builtins.int = ..., + externalSigningCertificateLength: _builtins.int = ..., ) -> None: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["generation", b"generation", "historyLength", b"historyLength", "inboxLength", b"inboxLength", "signatureLength", b"signatureLength", "signingCertificateLength", b"signingCertificateLength"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["externalSigningCertificateLength", b"externalSigningCertificateLength", "generation", b"generation", "historyLength", b"historyLength", "inboxLength", b"inboxLength", "signatureLength", b"signatureLength", "signingCertificateLength", b"signingCertificateLength"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___BackendWorkflowStateMetadata: _TypeAlias = BackendWorkflowStateMetadata # noqa: Y015 @@ -365,8 +463,11 @@ class SigningCertificate(_message.Message): *, certificate: _builtins.bytes = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["certificate", b"certificate"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SigningCertificate: _TypeAlias = SigningCertificate # noqa: Y015 @@ -457,5 +558,6 @@ class DurableTimer(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["generation", b"generation", "timerEvent", b"timerEvent"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___DurableTimer: _TypeAlias = DurableTimer # noqa: Y015 diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2_grpc.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2_grpc.py index 4cb95f3af..10a6c6cf9 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2_grpc.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/backend_service_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2.py index feb7e313a..707c93d4e 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2.py @@ -23,11 +23,12 @@ from dapr.ext.workflow._durabletask.internal import orchestration_pb2 as orchestration__pb2 +from dapr.ext.workflow._durabletask.internal import attestation_pb2 as attestation__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14history_events.proto\x1a\x13orchestration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd6\x03\n\x15\x45xecutionStartedEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\x07version\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x10workflowInstance\x18\x04 \x01(\x0b\x32\x11.WorkflowInstance\x12+\n\x0eparentInstance\x18\x05 \x01(\x0b\x32\x13.ParentInstanceInfo\x12;\n\x17scheduledStartTimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12)\n\x12parentTraceContext\x18\x07 \x01(\x0b\x32\r.TraceContext\x12\x34\n\x0eworkflowSpanID\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x04tags\x18\t \x03(\x0b\x32 .ExecutionStartedEvent.TagsEntry\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa2\x01\n\x17\x45xecutionCompletedEvent\x12,\n\x0eworkflowStatus\x18\x01 \x01(\x0e\x32\x14.OrchestrationStatus\x12,\n\x06result\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x0e\x66\x61ilureDetails\x18\x03 \x01(\x0b\x32\x13.TaskFailureDetails\"X\n\x18\x45xecutionTerminatedEvent\x12+\n\x05input\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0f\n\x07recurse\x18\x02 \x01(\x08\"\x9e\x02\n\x12TaskScheduledEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\x07version\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12)\n\x12parentTraceContext\x18\x04 \x01(\x0b\x32\r.TraceContext\x12\x17\n\x0ftaskExecutionId\x18\x05 \x01(\t\x12>\n\x17rerunParentInstanceInfo\x18\x06 \x01(\x0b\x32\x18.RerunParentInstanceInfoH\x00\x88\x01\x01\x42\x1a\n\x18_rerunParentInstanceInfo\"t\n\x12TaskCompletedEvent\x12\x17\n\x0ftaskScheduledId\x18\x01 \x01(\x05\x12,\n\x06result\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x17\n\x0ftaskExecutionId\x18\x03 \x01(\t\"p\n\x0fTaskFailedEvent\x12\x17\n\x0ftaskScheduledId\x18\x01 \x01(\x05\x12+\n\x0e\x66\x61ilureDetails\x18\x02 \x01(\x0b\x32\x13.TaskFailureDetails\x12\x17\n\x0ftaskExecutionId\x18\x03 \x01(\t\"\xa8\x02\n!ChildWorkflowInstanceCreatedEvent\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\x07version\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12)\n\x12parentTraceContext\x18\x05 \x01(\x0b\x32\r.TraceContext\x12>\n\x17rerunParentInstanceInfo\x18\x06 \x01(\x0b\x32\x18.RerunParentInstanceInfoH\x00\x88\x01\x01\x42\x1a\n\x18_rerunParentInstanceInfo\"l\n#ChildWorkflowInstanceCompletedEvent\x12\x17\n\x0ftaskScheduledId\x18\x01 \x01(\x05\x12,\n\x06result\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"h\n ChildWorkflowInstanceFailedEvent\x12\x17\n\x0ftaskScheduledId\x18\x01 \x01(\x05\x12+\n\x0e\x66\x61ilureDetails\x18\x02 \x01(\x0b\x32\x13.TaskFailureDetails\"\x18\n\x16TimerOriginCreateTimer\"(\n\x18TimerOriginExternalEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"3\n\x18TimerOriginActivityRetry\x12\x17\n\x0ftaskExecutionId\x18\x01 \x01(\t\"3\n\x1dTimerOriginChildWorkflowRetry\x12\x12\n\ninstanceId\x18\x01 \x01(\t\"\x97\x03\n\x11TimerCreatedEvent\x12*\n\x06\x66ireAt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\x04name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12>\n\x17rerunParentInstanceInfo\x18\x03 \x01(\x0b\x32\x18.RerunParentInstanceInfoH\x02\x88\x01\x01\x12.\n\x0b\x63reateTimer\x18\x04 \x01(\x0b\x32\x17.TimerOriginCreateTimerH\x00\x12\x32\n\rexternalEvent\x18\x05 \x01(\x0b\x32\x19.TimerOriginExternalEventH\x00\x12\x32\n\ractivityRetry\x18\x06 \x01(\x0b\x32\x19.TimerOriginActivityRetryH\x00\x12<\n\x12\x63hildWorkflowRetry\x18\x07 \x01(\x0b\x32\x1e.TimerOriginChildWorkflowRetryH\x00\x42\x08\n\x06originB\x07\n\x05_nameB\x1a\n\x18_rerunParentInstanceInfo\"N\n\x0fTimerFiredEvent\x12*\n\x06\x66ireAt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07timerId\x18\x02 \x01(\x05\"J\n\x14WorkflowStartedEvent\x12&\n\x07version\x18\x01 \x01(\x0b\x32\x10.WorkflowVersionH\x00\x88\x01\x01\x42\n\n\x08_version\"\x18\n\x16WorkflowCompletedEvent\"_\n\x0e\x45ventSentEvent\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"M\n\x10\x45ventRaisedEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12+\n\x05input\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"A\n\x12\x43ontinueAsNewEvent\x12+\n\x05input\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"F\n\x17\x45xecutionSuspendedEvent\x12+\n\x05input\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"D\n\x15\x45xecutionResumedEvent\x12+\n\x05input\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"a\n\x15\x45xecutionStalledEvent\x12\x1e\n\x06reason\x18\x01 \x01(\x0e\x32\x0e.StalledReason\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\xa8\t\n\x0cHistoryEvent\x12\x0f\n\x07\x65ventId\x18\x01 \x01(\x05\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x32\n\x10\x65xecutionStarted\x18\x03 \x01(\x0b\x32\x16.ExecutionStartedEventH\x00\x12\x36\n\x12\x65xecutionCompleted\x18\x04 \x01(\x0b\x32\x18.ExecutionCompletedEventH\x00\x12\x38\n\x13\x65xecutionTerminated\x18\x05 \x01(\x0b\x32\x19.ExecutionTerminatedEventH\x00\x12,\n\rtaskScheduled\x18\x06 \x01(\x0b\x32\x13.TaskScheduledEventH\x00\x12,\n\rtaskCompleted\x18\x07 \x01(\x0b\x32\x13.TaskCompletedEventH\x00\x12&\n\ntaskFailed\x18\x08 \x01(\x0b\x32\x10.TaskFailedEventH\x00\x12J\n\x1c\x63hildWorkflowInstanceCreated\x18\t \x01(\x0b\x32\".ChildWorkflowInstanceCreatedEventH\x00\x12N\n\x1e\x63hildWorkflowInstanceCompleted\x18\n \x01(\x0b\x32$.ChildWorkflowInstanceCompletedEventH\x00\x12H\n\x1b\x63hildWorkflowInstanceFailed\x18\x0b \x01(\x0b\x32!.ChildWorkflowInstanceFailedEventH\x00\x12*\n\x0ctimerCreated\x18\x0c \x01(\x0b\x32\x12.TimerCreatedEventH\x00\x12&\n\ntimerFired\x18\r \x01(\x0b\x32\x10.TimerFiredEventH\x00\x12\x30\n\x0fworkflowStarted\x18\x0e \x01(\x0b\x32\x15.WorkflowStartedEventH\x00\x12\x34\n\x11workflowCompleted\x18\x0f \x01(\x0b\x32\x17.WorkflowCompletedEventH\x00\x12$\n\teventSent\x18\x10 \x01(\x0b\x32\x0f.EventSentEventH\x00\x12(\n\x0b\x65ventRaised\x18\x11 \x01(\x0b\x32\x11.EventRaisedEventH\x00\x12,\n\rcontinueAsNew\x18\x14 \x01(\x0b\x32\x13.ContinueAsNewEventH\x00\x12\x36\n\x12\x65xecutionSuspended\x18\x15 \x01(\x0b\x32\x18.ExecutionSuspendedEventH\x00\x12\x32\n\x10\x65xecutionResumed\x18\x16 \x01(\x0b\x32\x16.ExecutionResumedEventH\x00\x12\x32\n\x10\x65xecutionStalled\x18\x1f \x01(\x0b\x32\x16.ExecutionStalledEventH\x00\x12 \n\x06router\x18\x1e \x01(\x0b\x32\x0b.TaskRouterH\x01\x88\x01\x01\x42\x0b\n\teventTypeB\t\n\x07_routerJ\x04\x08\x12\x10\x13J\x04\x08\x13\x10\x14J\x04\x08\x17\x10\x18J\x04\x08\x18\x10\x19J\x04\x08\x19\x10\x1aJ\x04\x08\x1a\x10\x1bJ\x04\x08\x1b\x10\x1cJ\x04\x08\x1c\x10\x1dJ\x04\x08\x1d\x10\x1e\x42V\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14history_events.proto\x1a\x13orchestration.proto\x1a\x11\x61ttestation.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd6\x03\n\x15\x45xecutionStartedEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\x07version\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x10workflowInstance\x18\x04 \x01(\x0b\x32\x11.WorkflowInstance\x12+\n\x0eparentInstance\x18\x05 \x01(\x0b\x32\x13.ParentInstanceInfo\x12;\n\x17scheduledStartTimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12)\n\x12parentTraceContext\x18\x07 \x01(\x0b\x32\r.TraceContext\x12\x34\n\x0eworkflowSpanID\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x04tags\x18\t \x03(\x0b\x32 .ExecutionStartedEvent.TagsEntry\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa2\x01\n\x17\x45xecutionCompletedEvent\x12,\n\x0eworkflowStatus\x18\x01 \x01(\x0e\x32\x14.OrchestrationStatus\x12,\n\x06result\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x0e\x66\x61ilureDetails\x18\x03 \x01(\x0b\x32\x13.TaskFailureDetails\"X\n\x18\x45xecutionTerminatedEvent\x12+\n\x05input\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0f\n\x07recurse\x18\x02 \x01(\x08\"\xfa\x02\n\x12TaskScheduledEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\x07version\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12)\n\x12parentTraceContext\x18\x04 \x01(\x0b\x32\r.TraceContext\x12\x17\n\x0ftaskExecutionId\x18\x05 \x01(\t\x12>\n\x17rerunParentInstanceInfo\x18\x06 \x01(\x0b\x32\x18.RerunParentInstanceInfoH\x00\x88\x01\x01\x12>\n\x17historyPropagationScope\x18\x07 \x01(\x0e\x32\x18.HistoryPropagationScopeH\x01\x88\x01\x01\x42\x1a\n\x18_rerunParentInstanceInfoB\x1a\n\x18_historyPropagationScope\"\xf4\x01\n\x12TaskCompletedEvent\x12\x17\n\x0ftaskScheduledId\x18\x01 \x01(\x05\x12,\n\x06result\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x17\n\x0ftaskExecutionId\x18\x03 \x01(\t\x12\x38\n\x0b\x61ttestation\x18\x04 \x01(\x0b\x32\x1e.ActivityCompletionAttestationH\x00\x88\x01\x01\x12\x1e\n\x11signerCertificate\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x42\x0e\n\x0c_attestationB\x14\n\x12_signerCertificate\"\xf0\x01\n\x0fTaskFailedEvent\x12\x17\n\x0ftaskScheduledId\x18\x01 \x01(\x05\x12+\n\x0e\x66\x61ilureDetails\x18\x02 \x01(\x0b\x32\x13.TaskFailureDetails\x12\x17\n\x0ftaskExecutionId\x18\x03 \x01(\t\x12\x38\n\x0b\x61ttestation\x18\x04 \x01(\x0b\x32\x1e.ActivityCompletionAttestationH\x00\x88\x01\x01\x12\x1e\n\x11signerCertificate\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x42\x0e\n\x0c_attestationB\x14\n\x12_signerCertificate\"\x84\x03\n!ChildWorkflowInstanceCreatedEvent\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\x07version\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12)\n\x12parentTraceContext\x18\x05 \x01(\x0b\x32\r.TraceContext\x12>\n\x17rerunParentInstanceInfo\x18\x06 \x01(\x0b\x32\x18.RerunParentInstanceInfoH\x00\x88\x01\x01\x12>\n\x17historyPropagationScope\x18\x07 \x01(\x0e\x32\x18.HistoryPropagationScopeH\x01\x88\x01\x01\x42\x1a\n\x18_rerunParentInstanceInfoB\x1a\n\x18_historyPropagationScope\"\xe9\x01\n#ChildWorkflowInstanceCompletedEvent\x12\x17\n\x0ftaskScheduledId\x18\x01 \x01(\x05\x12,\n\x06result\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x0b\x61ttestation\x18\x03 \x01(\x0b\x32\x1b.ChildCompletionAttestationH\x00\x88\x01\x01\x12\x1e\n\x11signerCertificate\x18\x04 \x01(\x0cH\x01\x88\x01\x01\x42\x0e\n\x0c_attestationB\x14\n\x12_signerCertificate\"\xe5\x01\n ChildWorkflowInstanceFailedEvent\x12\x17\n\x0ftaskScheduledId\x18\x01 \x01(\x05\x12+\n\x0e\x66\x61ilureDetails\x18\x02 \x01(\x0b\x32\x13.TaskFailureDetails\x12\x35\n\x0b\x61ttestation\x18\x03 \x01(\x0b\x32\x1b.ChildCompletionAttestationH\x00\x88\x01\x01\x12\x1e\n\x11signerCertificate\x18\x04 \x01(\x0cH\x01\x88\x01\x01\x42\x0e\n\x0c_attestationB\x14\n\x12_signerCertificate\":\n$DetachedWorkflowInstanceCreatedEvent\x12\x12\n\ninstanceId\x18\x01 \x01(\t\"\x18\n\x16TimerOriginCreateTimer\"(\n\x18TimerOriginExternalEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\"3\n\x18TimerOriginActivityRetry\x12\x17\n\x0ftaskExecutionId\x18\x01 \x01(\t\"3\n\x1dTimerOriginChildWorkflowRetry\x12\x12\n\ninstanceId\x18\x01 \x01(\t\"\x97\x03\n\x11TimerCreatedEvent\x12*\n\x06\x66ireAt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\x04name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12>\n\x17rerunParentInstanceInfo\x18\x03 \x01(\x0b\x32\x18.RerunParentInstanceInfoH\x02\x88\x01\x01\x12.\n\x0b\x63reateTimer\x18\x04 \x01(\x0b\x32\x17.TimerOriginCreateTimerH\x00\x12\x32\n\rexternalEvent\x18\x05 \x01(\x0b\x32\x19.TimerOriginExternalEventH\x00\x12\x32\n\ractivityRetry\x18\x06 \x01(\x0b\x32\x19.TimerOriginActivityRetryH\x00\x12<\n\x12\x63hildWorkflowRetry\x18\x07 \x01(\x0b\x32\x1e.TimerOriginChildWorkflowRetryH\x00\x42\x08\n\x06originB\x07\n\x05_nameB\x1a\n\x18_rerunParentInstanceInfo\"N\n\x0fTimerFiredEvent\x12*\n\x06\x66ireAt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07timerId\x18\x02 \x01(\x05\"J\n\x14WorkflowStartedEvent\x12&\n\x07version\x18\x01 \x01(\x0b\x32\x10.WorkflowVersionH\x00\x88\x01\x01\x42\n\n\x08_version\"\x18\n\x16WorkflowCompletedEvent\"_\n\x0e\x45ventSentEvent\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"M\n\x10\x45ventRaisedEvent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12+\n\x05input\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"A\n\x12\x43ontinueAsNewEvent\x12+\n\x05input\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"F\n\x17\x45xecutionSuspendedEvent\x12+\n\x05input\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"D\n\x15\x45xecutionResumedEvent\x12+\n\x05input\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"a\n\x15\x45xecutionStalledEvent\x12\x1e\n\x06reason\x18\x01 \x01(\x0e\x32\x0e.StalledReason\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\xfa\t\n\x0cHistoryEvent\x12\x0f\n\x07\x65ventId\x18\x01 \x01(\x05\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x32\n\x10\x65xecutionStarted\x18\x03 \x01(\x0b\x32\x16.ExecutionStartedEventH\x00\x12\x36\n\x12\x65xecutionCompleted\x18\x04 \x01(\x0b\x32\x18.ExecutionCompletedEventH\x00\x12\x38\n\x13\x65xecutionTerminated\x18\x05 \x01(\x0b\x32\x19.ExecutionTerminatedEventH\x00\x12,\n\rtaskScheduled\x18\x06 \x01(\x0b\x32\x13.TaskScheduledEventH\x00\x12,\n\rtaskCompleted\x18\x07 \x01(\x0b\x32\x13.TaskCompletedEventH\x00\x12&\n\ntaskFailed\x18\x08 \x01(\x0b\x32\x10.TaskFailedEventH\x00\x12J\n\x1c\x63hildWorkflowInstanceCreated\x18\t \x01(\x0b\x32\".ChildWorkflowInstanceCreatedEventH\x00\x12N\n\x1e\x63hildWorkflowInstanceCompleted\x18\n \x01(\x0b\x32$.ChildWorkflowInstanceCompletedEventH\x00\x12H\n\x1b\x63hildWorkflowInstanceFailed\x18\x0b \x01(\x0b\x32!.ChildWorkflowInstanceFailedEventH\x00\x12*\n\x0ctimerCreated\x18\x0c \x01(\x0b\x32\x12.TimerCreatedEventH\x00\x12&\n\ntimerFired\x18\r \x01(\x0b\x32\x10.TimerFiredEventH\x00\x12\x30\n\x0fworkflowStarted\x18\x0e \x01(\x0b\x32\x15.WorkflowStartedEventH\x00\x12\x34\n\x11workflowCompleted\x18\x0f \x01(\x0b\x32\x17.WorkflowCompletedEventH\x00\x12$\n\teventSent\x18\x10 \x01(\x0b\x32\x0f.EventSentEventH\x00\x12(\n\x0b\x65ventRaised\x18\x11 \x01(\x0b\x32\x11.EventRaisedEventH\x00\x12,\n\rcontinueAsNew\x18\x14 \x01(\x0b\x32\x13.ContinueAsNewEventH\x00\x12\x36\n\x12\x65xecutionSuspended\x18\x15 \x01(\x0b\x32\x18.ExecutionSuspendedEventH\x00\x12\x32\n\x10\x65xecutionResumed\x18\x16 \x01(\x0b\x32\x16.ExecutionResumedEventH\x00\x12\x32\n\x10\x65xecutionStalled\x18\x1f \x01(\x0b\x32\x16.ExecutionStalledEventH\x00\x12P\n\x1f\x64\x65tachedWorkflowInstanceCreated\x18 \x01(\x0b\x32%.DetachedWorkflowInstanceCreatedEventH\x00\x12 \n\x06router\x18\x1e \x01(\x0b\x32\x0b.TaskRouterH\x01\x88\x01\x01\x42\x0b\n\teventTypeB\t\n\x07_routerJ\x04\x08\x12\x10\x13J\x04\x08\x13\x10\x14J\x04\x08\x17\x10\x18J\x04\x08\x18\x10\x19J\x04\x08\x19\x10\x1aJ\x04\x08\x1a\x10\x1bJ\x04\x08\x1b\x10\x1cJ\x04\x08\x1c\x10\x1dJ\x04\x08\x1d\x10\x1e\"\x96\x01\n\x16PropagatedHistoryChunk\x12\x11\n\trawEvents\x18\x01 \x03(\x0c\x12\r\n\x05\x61ppId\x18\x02 \x01(\t\x12\x12\n\ninstanceId\x18\x03 \x01(\t\x12\x14\n\x0cworkflowName\x18\x04 \x01(\t\x12\x15\n\rrawSignatures\x18\x05 \x03(\x0c\x12\x19\n\x11signingCertChains\x18\x06 \x03(\x0c\"e\n\x11PropagatedHistory\x12\'\n\x05scope\x18\x01 \x01(\x0e\x32\x18.HistoryPropagationScope\x12\'\n\x06\x63hunks\x18\x02 \x03(\x0b\x32\x17.PropagatedHistoryChunkBV\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -37,54 +38,60 @@ _globals['DESCRIPTOR']._serialized_options = b'\n+io.dapr.durabletask.implementation.protobufZ\013/api/protos\252\002\031Dapr.DurableTask.Protobuf' _globals['_EXECUTIONSTARTEDEVENT_TAGSENTRY']._loaded_options = None _globals['_EXECUTIONSTARTEDEVENT_TAGSENTRY']._serialized_options = b'8\001' - _globals['_EXECUTIONSTARTEDEVENT']._serialized_start=111 - _globals['_EXECUTIONSTARTEDEVENT']._serialized_end=581 - _globals['_EXECUTIONSTARTEDEVENT_TAGSENTRY']._serialized_start=538 - _globals['_EXECUTIONSTARTEDEVENT_TAGSENTRY']._serialized_end=581 - _globals['_EXECUTIONCOMPLETEDEVENT']._serialized_start=584 - _globals['_EXECUTIONCOMPLETEDEVENT']._serialized_end=746 - _globals['_EXECUTIONTERMINATEDEVENT']._serialized_start=748 - _globals['_EXECUTIONTERMINATEDEVENT']._serialized_end=836 - _globals['_TASKSCHEDULEDEVENT']._serialized_start=839 - _globals['_TASKSCHEDULEDEVENT']._serialized_end=1125 - _globals['_TASKCOMPLETEDEVENT']._serialized_start=1127 - _globals['_TASKCOMPLETEDEVENT']._serialized_end=1243 - _globals['_TASKFAILEDEVENT']._serialized_start=1245 - _globals['_TASKFAILEDEVENT']._serialized_end=1357 - _globals['_CHILDWORKFLOWINSTANCECREATEDEVENT']._serialized_start=1360 - _globals['_CHILDWORKFLOWINSTANCECREATEDEVENT']._serialized_end=1656 - _globals['_CHILDWORKFLOWINSTANCECOMPLETEDEVENT']._serialized_start=1658 - _globals['_CHILDWORKFLOWINSTANCECOMPLETEDEVENT']._serialized_end=1766 - _globals['_CHILDWORKFLOWINSTANCEFAILEDEVENT']._serialized_start=1768 - _globals['_CHILDWORKFLOWINSTANCEFAILEDEVENT']._serialized_end=1872 - _globals['_TIMERORIGINCREATETIMER']._serialized_start=1874 - _globals['_TIMERORIGINCREATETIMER']._serialized_end=1898 - _globals['_TIMERORIGINEXTERNALEVENT']._serialized_start=1900 - _globals['_TIMERORIGINEXTERNALEVENT']._serialized_end=1940 - _globals['_TIMERORIGINACTIVITYRETRY']._serialized_start=1942 - _globals['_TIMERORIGINACTIVITYRETRY']._serialized_end=1993 - _globals['_TIMERORIGINCHILDWORKFLOWRETRY']._serialized_start=1995 - _globals['_TIMERORIGINCHILDWORKFLOWRETRY']._serialized_end=2046 - _globals['_TIMERCREATEDEVENT']._serialized_start=2049 - _globals['_TIMERCREATEDEVENT']._serialized_end=2456 - _globals['_TIMERFIREDEVENT']._serialized_start=2458 - _globals['_TIMERFIREDEVENT']._serialized_end=2536 - _globals['_WORKFLOWSTARTEDEVENT']._serialized_start=2538 - _globals['_WORKFLOWSTARTEDEVENT']._serialized_end=2612 - _globals['_WORKFLOWCOMPLETEDEVENT']._serialized_start=2614 - _globals['_WORKFLOWCOMPLETEDEVENT']._serialized_end=2638 - _globals['_EVENTSENTEVENT']._serialized_start=2640 - _globals['_EVENTSENTEVENT']._serialized_end=2735 - _globals['_EVENTRAISEDEVENT']._serialized_start=2737 - _globals['_EVENTRAISEDEVENT']._serialized_end=2814 - _globals['_CONTINUEASNEWEVENT']._serialized_start=2816 - _globals['_CONTINUEASNEWEVENT']._serialized_end=2881 - _globals['_EXECUTIONSUSPENDEDEVENT']._serialized_start=2883 - _globals['_EXECUTIONSUSPENDEDEVENT']._serialized_end=2953 - _globals['_EXECUTIONRESUMEDEVENT']._serialized_start=2955 - _globals['_EXECUTIONRESUMEDEVENT']._serialized_end=3023 - _globals['_EXECUTIONSTALLEDEVENT']._serialized_start=3025 - _globals['_EXECUTIONSTALLEDEVENT']._serialized_end=3122 - _globals['_HISTORYEVENT']._serialized_start=3125 - _globals['_HISTORYEVENT']._serialized_end=4317 + _globals['_EXECUTIONSTARTEDEVENT']._serialized_start=130 + _globals['_EXECUTIONSTARTEDEVENT']._serialized_end=600 + _globals['_EXECUTIONSTARTEDEVENT_TAGSENTRY']._serialized_start=557 + _globals['_EXECUTIONSTARTEDEVENT_TAGSENTRY']._serialized_end=600 + _globals['_EXECUTIONCOMPLETEDEVENT']._serialized_start=603 + _globals['_EXECUTIONCOMPLETEDEVENT']._serialized_end=765 + _globals['_EXECUTIONTERMINATEDEVENT']._serialized_start=767 + _globals['_EXECUTIONTERMINATEDEVENT']._serialized_end=855 + _globals['_TASKSCHEDULEDEVENT']._serialized_start=858 + _globals['_TASKSCHEDULEDEVENT']._serialized_end=1236 + _globals['_TASKCOMPLETEDEVENT']._serialized_start=1239 + _globals['_TASKCOMPLETEDEVENT']._serialized_end=1483 + _globals['_TASKFAILEDEVENT']._serialized_start=1486 + _globals['_TASKFAILEDEVENT']._serialized_end=1726 + _globals['_CHILDWORKFLOWINSTANCECREATEDEVENT']._serialized_start=1729 + _globals['_CHILDWORKFLOWINSTANCECREATEDEVENT']._serialized_end=2117 + _globals['_CHILDWORKFLOWINSTANCECOMPLETEDEVENT']._serialized_start=2120 + _globals['_CHILDWORKFLOWINSTANCECOMPLETEDEVENT']._serialized_end=2353 + _globals['_CHILDWORKFLOWINSTANCEFAILEDEVENT']._serialized_start=2356 + _globals['_CHILDWORKFLOWINSTANCEFAILEDEVENT']._serialized_end=2585 + _globals['_DETACHEDWORKFLOWINSTANCECREATEDEVENT']._serialized_start=2587 + _globals['_DETACHEDWORKFLOWINSTANCECREATEDEVENT']._serialized_end=2645 + _globals['_TIMERORIGINCREATETIMER']._serialized_start=2647 + _globals['_TIMERORIGINCREATETIMER']._serialized_end=2671 + _globals['_TIMERORIGINEXTERNALEVENT']._serialized_start=2673 + _globals['_TIMERORIGINEXTERNALEVENT']._serialized_end=2713 + _globals['_TIMERORIGINACTIVITYRETRY']._serialized_start=2715 + _globals['_TIMERORIGINACTIVITYRETRY']._serialized_end=2766 + _globals['_TIMERORIGINCHILDWORKFLOWRETRY']._serialized_start=2768 + _globals['_TIMERORIGINCHILDWORKFLOWRETRY']._serialized_end=2819 + _globals['_TIMERCREATEDEVENT']._serialized_start=2822 + _globals['_TIMERCREATEDEVENT']._serialized_end=3229 + _globals['_TIMERFIREDEVENT']._serialized_start=3231 + _globals['_TIMERFIREDEVENT']._serialized_end=3309 + _globals['_WORKFLOWSTARTEDEVENT']._serialized_start=3311 + _globals['_WORKFLOWSTARTEDEVENT']._serialized_end=3385 + _globals['_WORKFLOWCOMPLETEDEVENT']._serialized_start=3387 + _globals['_WORKFLOWCOMPLETEDEVENT']._serialized_end=3411 + _globals['_EVENTSENTEVENT']._serialized_start=3413 + _globals['_EVENTSENTEVENT']._serialized_end=3508 + _globals['_EVENTRAISEDEVENT']._serialized_start=3510 + _globals['_EVENTRAISEDEVENT']._serialized_end=3587 + _globals['_CONTINUEASNEWEVENT']._serialized_start=3589 + _globals['_CONTINUEASNEWEVENT']._serialized_end=3654 + _globals['_EXECUTIONSUSPENDEDEVENT']._serialized_start=3656 + _globals['_EXECUTIONSUSPENDEDEVENT']._serialized_end=3726 + _globals['_EXECUTIONRESUMEDEVENT']._serialized_start=3728 + _globals['_EXECUTIONRESUMEDEVENT']._serialized_end=3796 + _globals['_EXECUTIONSTALLEDEVENT']._serialized_start=3798 + _globals['_EXECUTIONSTALLEDEVENT']._serialized_end=3895 + _globals['_HISTORYEVENT']._serialized_start=3898 + _globals['_HISTORYEVENT']._serialized_end=5172 + _globals['_PROPAGATEDHISTORYCHUNK']._serialized_start=5175 + _globals['_PROPAGATEDHISTORYCHUNK']._serialized_end=5325 + _globals['_PROPAGATEDHISTORY']._serialized_start=5327 + _globals['_PROPAGATEDHISTORY']._serialized_end=5428 # @@protoc_insertion_point(module_scope) diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2.pyi b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2.pyi index 66ba6ba67..8473da99c 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2.pyi +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2.pyi @@ -11,15 +11,16 @@ from google.protobuf import message as _message from google.protobuf import timestamp_pb2 as _timestamp_pb2 from google.protobuf import wrappers_pb2 as _wrappers_pb2 from google.protobuf.internal import containers as _containers +from dapr.ext.workflow._durabletask.internal import attestation_pb2 as _attestation_pb2 import builtins as _builtins from dapr.ext.workflow._durabletask.internal import orchestration_pb2 as _orchestration_pb2 import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -41,8 +42,11 @@ class ExecutionStartedEvent(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... NAME_FIELD_NUMBER: _builtins.int VERSION_FIELD_NUMBER: _builtins.int @@ -87,6 +91,7 @@ class ExecutionStartedEvent(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["input", b"input", "name", b"name", "parentInstance", b"parentInstance", "parentTraceContext", b"parentTraceContext", "scheduledStartTimestamp", b"scheduledStartTimestamp", "tags", b"tags", "version", b"version", "workflowInstance", b"workflowInstance", "workflowSpanID", b"workflowSpanID"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ExecutionStartedEvent: _TypeAlias = ExecutionStartedEvent # noqa: Y015 @@ -113,6 +118,7 @@ class ExecutionCompletedEvent(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["failureDetails", b"failureDetails", "result", b"result", "workflowStatus", b"workflowStatus"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ExecutionCompletedEvent: _TypeAlias = ExecutionCompletedEvent # noqa: Y015 @@ -135,6 +141,7 @@ class ExecutionTerminatedEvent(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["input", b"input", "recurse", b"recurse"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ExecutionTerminatedEvent: _TypeAlias = ExecutionTerminatedEvent # noqa: Y015 @@ -148,8 +155,14 @@ class TaskScheduledEvent(_message.Message): PARENTTRACECONTEXT_FIELD_NUMBER: _builtins.int TASKEXECUTIONID_FIELD_NUMBER: _builtins.int RERUNPARENTINSTANCEINFO_FIELD_NUMBER: _builtins.int + HISTORYPROPAGATIONSCOPE_FIELD_NUMBER: _builtins.int name: _builtins.str taskExecutionId: _builtins.str + historyPropagationScope: _orchestration_pb2.HistoryPropagationScope.ValueType + """History propagation scope used when this task was originally scheduled. + Persisted on the event so rerun can re-issue the task with the same + scope after the action has been discarded. + """ @_builtins.property def version(self) -> _wrappers_pb2.StringValue: ... @_builtins.property @@ -171,13 +184,19 @@ class TaskScheduledEvent(_message.Message): parentTraceContext: _orchestration_pb2.TraceContext | None = ..., taskExecutionId: _builtins.str = ..., rerunParentInstanceInfo: _orchestration_pb2.RerunParentInstanceInfo | None = ..., + historyPropagationScope: _orchestration_pb2.HistoryPropagationScope.ValueType | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["_rerunParentInstanceInfo", b"_rerunParentInstanceInfo", "input", b"input", "parentTraceContext", b"parentTraceContext", "rerunParentInstanceInfo", b"rerunParentInstanceInfo", "version", b"version"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope", "_rerunParentInstanceInfo", b"_rerunParentInstanceInfo", "historyPropagationScope", b"historyPropagationScope", "input", b"input", "parentTraceContext", b"parentTraceContext", "rerunParentInstanceInfo", b"rerunParentInstanceInfo", "version", b"version"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["_rerunParentInstanceInfo", b"_rerunParentInstanceInfo", "input", b"input", "name", b"name", "parentTraceContext", b"parentTraceContext", "rerunParentInstanceInfo", b"rerunParentInstanceInfo", "taskExecutionId", b"taskExecutionId", "version", b"version"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope", "_rerunParentInstanceInfo", b"_rerunParentInstanceInfo", "historyPropagationScope", b"historyPropagationScope", "input", b"input", "name", b"name", "parentTraceContext", b"parentTraceContext", "rerunParentInstanceInfo", b"rerunParentInstanceInfo", "taskExecutionId", b"taskExecutionId", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__historyPropagationScope: _TypeAlias = _typing.Literal["historyPropagationScope"] # noqa: Y015 + _WhichOneofArgType__historyPropagationScope: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope"] # noqa: Y015 _WhichOneofReturnType__rerunParentInstanceInfo: _TypeAlias = _typing.Literal["rerunParentInstanceInfo"] # noqa: Y015 _WhichOneofArgType__rerunParentInstanceInfo: _TypeAlias = _typing.Literal["_rerunParentInstanceInfo", b"_rerunParentInstanceInfo"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__historyPropagationScope) -> _WhichOneofReturnType__historyPropagationScope | None: ... + @_typing.overload def WhichOneof(self, oneof_group: _WhichOneofArgType__rerunParentInstanceInfo) -> _WhichOneofReturnType__rerunParentInstanceInfo | None: ... Global___TaskScheduledEvent: _TypeAlias = TaskScheduledEvent # noqa: Y015 @@ -189,21 +208,50 @@ class TaskCompletedEvent(_message.Message): TASKSCHEDULEDID_FIELD_NUMBER: _builtins.int RESULT_FIELD_NUMBER: _builtins.int TASKEXECUTIONID_FIELD_NUMBER: _builtins.int + ATTESTATION_FIELD_NUMBER: _builtins.int + SIGNERCERTIFICATE_FIELD_NUMBER: _builtins.int taskScheduledId: _builtins.int taskExecutionId: _builtins.str + signerCertificate: _builtins.bytes + """Companion: DER-encoded X.509 certificate chain of the executor's + signing identity (leaf first, intermediates concatenated; same + format as SigningCertificate.certificate in backend_service.proto). + Wire-only; stripped by the receiver before the event is written to + history-NNNNNN. The certificate lives once in ext-sigcert-NNNNNN, + referenced by attestation payload's signerCertDigest. + """ @_builtins.property def result(self) -> _wrappers_pb2.StringValue: ... + @_builtins.property + def attestation(self) -> _attestation_pb2.ActivityCompletionAttestation: + """Attestation signed by the activity executor's SPIFFE identity. + Present when the activity was executed under a signing-enabled + configuration. Verified on inbox ingestion against the companion + signerCertificate and preserved in stored history for future audit + and forwarding via provenance bundles. + """ + def __init__( self, *, taskScheduledId: _builtins.int = ..., result: _wrappers_pb2.StringValue | None = ..., taskExecutionId: _builtins.str = ..., + attestation: _attestation_pb2.ActivityCompletionAttestation | None = ..., + signerCertificate: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_attestation", b"_attestation", "_signerCertificate", b"_signerCertificate", "attestation", b"attestation", "result", b"result", "signerCertificate", b"signerCertificate"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["result", b"result", "taskExecutionId", b"taskExecutionId", "taskScheduledId", b"taskScheduledId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_attestation", b"_attestation", "_signerCertificate", b"_signerCertificate", "attestation", b"attestation", "result", b"result", "signerCertificate", b"signerCertificate", "taskExecutionId", b"taskExecutionId", "taskScheduledId", b"taskScheduledId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__attestation: _TypeAlias = _typing.Literal["attestation"] # noqa: Y015 + _WhichOneofArgType__attestation: _TypeAlias = _typing.Literal["_attestation", b"_attestation"] # noqa: Y015 + _WhichOneofReturnType__signerCertificate: _TypeAlias = _typing.Literal["signerCertificate"] # noqa: Y015 + _WhichOneofArgType__signerCertificate: _TypeAlias = _typing.Literal["_signerCertificate", b"_signerCertificate"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__attestation) -> _WhichOneofReturnType__attestation | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__signerCertificate) -> _WhichOneofReturnType__signerCertificate | None: ... Global___TaskCompletedEvent: _TypeAlias = TaskCompletedEvent # noqa: Y015 @@ -214,21 +262,39 @@ class TaskFailedEvent(_message.Message): TASKSCHEDULEDID_FIELD_NUMBER: _builtins.int FAILUREDETAILS_FIELD_NUMBER: _builtins.int TASKEXECUTIONID_FIELD_NUMBER: _builtins.int + ATTESTATION_FIELD_NUMBER: _builtins.int + SIGNERCERTIFICATE_FIELD_NUMBER: _builtins.int taskScheduledId: _builtins.int taskExecutionId: _builtins.str + signerCertificate: _builtins.bytes + """Wire-only companion; see TaskCompletedEvent.signerCertificate.""" @_builtins.property def failureDetails(self) -> _orchestration_pb2.TaskFailureDetails: ... + @_builtins.property + def attestation(self) -> _attestation_pb2.ActivityCompletionAttestation: + """See TaskCompletedEvent.attestation.""" + def __init__( self, *, taskScheduledId: _builtins.int = ..., failureDetails: _orchestration_pb2.TaskFailureDetails | None = ..., taskExecutionId: _builtins.str = ..., + attestation: _attestation_pb2.ActivityCompletionAttestation | None = ..., + signerCertificate: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["failureDetails", b"failureDetails"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_attestation", b"_attestation", "_signerCertificate", b"_signerCertificate", "attestation", b"attestation", "failureDetails", b"failureDetails", "signerCertificate", b"signerCertificate"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["failureDetails", b"failureDetails", "taskExecutionId", b"taskExecutionId", "taskScheduledId", b"taskScheduledId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_attestation", b"_attestation", "_signerCertificate", b"_signerCertificate", "attestation", b"attestation", "failureDetails", b"failureDetails", "signerCertificate", b"signerCertificate", "taskExecutionId", b"taskExecutionId", "taskScheduledId", b"taskScheduledId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__attestation: _TypeAlias = _typing.Literal["attestation"] # noqa: Y015 + _WhichOneofArgType__attestation: _TypeAlias = _typing.Literal["_attestation", b"_attestation"] # noqa: Y015 + _WhichOneofReturnType__signerCertificate: _TypeAlias = _typing.Literal["signerCertificate"] # noqa: Y015 + _WhichOneofArgType__signerCertificate: _TypeAlias = _typing.Literal["_signerCertificate", b"_signerCertificate"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__attestation) -> _WhichOneofReturnType__attestation | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__signerCertificate) -> _WhichOneofReturnType__signerCertificate | None: ... Global___TaskFailedEvent: _TypeAlias = TaskFailedEvent # noqa: Y015 @@ -242,8 +308,14 @@ class ChildWorkflowInstanceCreatedEvent(_message.Message): INPUT_FIELD_NUMBER: _builtins.int PARENTTRACECONTEXT_FIELD_NUMBER: _builtins.int RERUNPARENTINSTANCEINFO_FIELD_NUMBER: _builtins.int + HISTORYPROPAGATIONSCOPE_FIELD_NUMBER: _builtins.int instanceId: _builtins.str name: _builtins.str + historyPropagationScope: _orchestration_pb2.HistoryPropagationScope.ValueType + """History propagation scope used when this child workflow was originally + scheduled. Persisted on the event so rerun can re-issue the child with + the same scope after the action has been discarded. + """ @_builtins.property def version(self) -> _wrappers_pb2.StringValue: ... @_builtins.property @@ -265,13 +337,19 @@ class ChildWorkflowInstanceCreatedEvent(_message.Message): input: _wrappers_pb2.StringValue | None = ..., parentTraceContext: _orchestration_pb2.TraceContext | None = ..., rerunParentInstanceInfo: _orchestration_pb2.RerunParentInstanceInfo | None = ..., + historyPropagationScope: _orchestration_pb2.HistoryPropagationScope.ValueType | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["_rerunParentInstanceInfo", b"_rerunParentInstanceInfo", "input", b"input", "parentTraceContext", b"parentTraceContext", "rerunParentInstanceInfo", b"rerunParentInstanceInfo", "version", b"version"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope", "_rerunParentInstanceInfo", b"_rerunParentInstanceInfo", "historyPropagationScope", b"historyPropagationScope", "input", b"input", "parentTraceContext", b"parentTraceContext", "rerunParentInstanceInfo", b"rerunParentInstanceInfo", "version", b"version"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["_rerunParentInstanceInfo", b"_rerunParentInstanceInfo", "input", b"input", "instanceId", b"instanceId", "name", b"name", "parentTraceContext", b"parentTraceContext", "rerunParentInstanceInfo", b"rerunParentInstanceInfo", "version", b"version"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope", "_rerunParentInstanceInfo", b"_rerunParentInstanceInfo", "historyPropagationScope", b"historyPropagationScope", "input", b"input", "instanceId", b"instanceId", "name", b"name", "parentTraceContext", b"parentTraceContext", "rerunParentInstanceInfo", b"rerunParentInstanceInfo", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__historyPropagationScope: _TypeAlias = _typing.Literal["historyPropagationScope"] # noqa: Y015 + _WhichOneofArgType__historyPropagationScope: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope"] # noqa: Y015 _WhichOneofReturnType__rerunParentInstanceInfo: _TypeAlias = _typing.Literal["rerunParentInstanceInfo"] # noqa: Y015 _WhichOneofArgType__rerunParentInstanceInfo: _TypeAlias = _typing.Literal["_rerunParentInstanceInfo", b"_rerunParentInstanceInfo"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__historyPropagationScope) -> _WhichOneofReturnType__historyPropagationScope | None: ... + @_typing.overload def WhichOneof(self, oneof_group: _WhichOneofArgType__rerunParentInstanceInfo) -> _WhichOneofReturnType__rerunParentInstanceInfo | None: ... Global___ChildWorkflowInstanceCreatedEvent: _TypeAlias = ChildWorkflowInstanceCreatedEvent # noqa: Y015 @@ -282,19 +360,48 @@ class ChildWorkflowInstanceCompletedEvent(_message.Message): TASKSCHEDULEDID_FIELD_NUMBER: _builtins.int RESULT_FIELD_NUMBER: _builtins.int + ATTESTATION_FIELD_NUMBER: _builtins.int + SIGNERCERTIFICATE_FIELD_NUMBER: _builtins.int taskScheduledId: _builtins.int + signerCertificate: _builtins.bytes + """Companion: DER-encoded X.509 certificate chain of the child's signing + identity (leaf first, intermediates concatenated; same format as + SigningCertificate.certificate in backend_service.proto). Wire-only; + stripped by the receiver before the event is written to + history-NNNNNN. The certificate lives once in ext-sigcert-NNNNNN, + referenced by attestation payload's signerCertDigest. + """ @_builtins.property def result(self) -> _wrappers_pb2.StringValue: ... + @_builtins.property + def attestation(self) -> _attestation_pb2.ChildCompletionAttestation: + """Attestation signed by the completing child workflow's SPIFFE + identity. Present when the child was executed under a signing-enabled + configuration. Verified on inbox ingestion against the companion + signerCertificate and preserved in stored history for future audit + and forwarding via provenance bundles. + """ + def __init__( self, *, taskScheduledId: _builtins.int = ..., result: _wrappers_pb2.StringValue | None = ..., + attestation: _attestation_pb2.ChildCompletionAttestation | None = ..., + signerCertificate: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_attestation", b"_attestation", "_signerCertificate", b"_signerCertificate", "attestation", b"attestation", "result", b"result", "signerCertificate", b"signerCertificate"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["result", b"result", "taskScheduledId", b"taskScheduledId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_attestation", b"_attestation", "_signerCertificate", b"_signerCertificate", "attestation", b"attestation", "result", b"result", "signerCertificate", b"signerCertificate", "taskScheduledId", b"taskScheduledId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__attestation: _TypeAlias = _typing.Literal["attestation"] # noqa: Y015 + _WhichOneofArgType__attestation: _TypeAlias = _typing.Literal["_attestation", b"_attestation"] # noqa: Y015 + _WhichOneofReturnType__signerCertificate: _TypeAlias = _typing.Literal["signerCertificate"] # noqa: Y015 + _WhichOneofArgType__signerCertificate: _TypeAlias = _typing.Literal["_signerCertificate", b"_signerCertificate"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__attestation) -> _WhichOneofReturnType__attestation | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__signerCertificate) -> _WhichOneofReturnType__signerCertificate | None: ... Global___ChildWorkflowInstanceCompletedEvent: _TypeAlias = ChildWorkflowInstanceCompletedEvent # noqa: Y015 @@ -304,22 +411,69 @@ class ChildWorkflowInstanceFailedEvent(_message.Message): TASKSCHEDULEDID_FIELD_NUMBER: _builtins.int FAILUREDETAILS_FIELD_NUMBER: _builtins.int + ATTESTATION_FIELD_NUMBER: _builtins.int + SIGNERCERTIFICATE_FIELD_NUMBER: _builtins.int taskScheduledId: _builtins.int + signerCertificate: _builtins.bytes + """Wire-only companion; see + ChildWorkflowInstanceCompletedEvent.signerCertificate. + """ @_builtins.property def failureDetails(self) -> _orchestration_pb2.TaskFailureDetails: ... + @_builtins.property + def attestation(self) -> _attestation_pb2.ChildCompletionAttestation: + """See ChildWorkflowInstanceCompletedEvent.attestation.""" + def __init__( self, *, taskScheduledId: _builtins.int = ..., failureDetails: _orchestration_pb2.TaskFailureDetails | None = ..., + attestation: _attestation_pb2.ChildCompletionAttestation | None = ..., + signerCertificate: _builtins.bytes | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["failureDetails", b"failureDetails"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_attestation", b"_attestation", "_signerCertificate", b"_signerCertificate", "attestation", b"attestation", "failureDetails", b"failureDetails", "signerCertificate", b"signerCertificate"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["failureDetails", b"failureDetails", "taskScheduledId", b"taskScheduledId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_attestation", b"_attestation", "_signerCertificate", b"_signerCertificate", "attestation", b"attestation", "failureDetails", b"failureDetails", "signerCertificate", b"signerCertificate", "taskScheduledId", b"taskScheduledId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__attestation: _TypeAlias = _typing.Literal["attestation"] # noqa: Y015 + _WhichOneofArgType__attestation: _TypeAlias = _typing.Literal["_attestation", b"_attestation"] # noqa: Y015 + _WhichOneofReturnType__signerCertificate: _TypeAlias = _typing.Literal["signerCertificate"] # noqa: Y015 + _WhichOneofArgType__signerCertificate: _TypeAlias = _typing.Literal["_signerCertificate", b"_signerCertificate"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__attestation) -> _WhichOneofReturnType__attestation | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__signerCertificate) -> _WhichOneofReturnType__signerCertificate | None: ... Global___ChildWorkflowInstanceFailedEvent: _TypeAlias = ChildWorkflowInstanceFailedEvent # noqa: Y015 +@_typing.final +class DetachedWorkflowInstanceCreatedEvent(_message.Message): + """DetachedWorkflowInstanceCreatedEvent records that a running workflow + created a new, detached workflow instance via CreateDetachedWorkflowAction. + The new workflow has no parent linkage (no completion or failure flows + back), so this event only stores a pointer to the spawned instance — the + inputs themselves are consumed directly from the action when scheduling. + Replay matches on instanceId, so it is the same value the action carried. + """ + + DESCRIPTOR: _descriptor.Descriptor + + INSTANCEID_FIELD_NUMBER: _builtins.int + instanceId: _builtins.str + def __init__( + self, + *, + instanceId: _builtins.str = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["instanceId", b"instanceId"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___DetachedWorkflowInstanceCreatedEvent: _TypeAlias = DetachedWorkflowInstanceCreatedEvent # noqa: Y015 + @_typing.final class TimerOriginCreateTimer(_message.Message): """Indicates the timer was created by a createTimer call with no special origin.""" @@ -329,6 +483,11 @@ class TimerOriginCreateTimer(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TimerOriginCreateTimer: _TypeAlias = TimerOriginCreateTimer # noqa: Y015 @@ -346,8 +505,11 @@ class TimerOriginExternalEvent(_message.Message): *, name: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TimerOriginExternalEvent: _TypeAlias = TimerOriginExternalEvent # noqa: Y015 @@ -365,8 +527,11 @@ class TimerOriginActivityRetry(_message.Message): *, taskExecutionId: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["taskExecutionId", b"taskExecutionId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TimerOriginActivityRetry: _TypeAlias = TimerOriginActivityRetry # noqa: Y015 @@ -384,8 +549,11 @@ class TimerOriginChildWorkflowRetry(_message.Message): *, instanceId: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instanceId", b"instanceId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TimerOriginChildWorkflowRetry: _TypeAlias = TimerOriginChildWorkflowRetry # noqa: Y015 @@ -466,6 +634,7 @@ class TimerFiredEvent(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["fireAt", b"fireAt", "timerId", b"timerId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TimerFiredEvent: _TypeAlias = TimerFiredEvent # noqa: Y015 @@ -500,6 +669,11 @@ class WorkflowCompletedEvent(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___WorkflowCompletedEvent: _TypeAlias = WorkflowCompletedEvent # noqa: Y015 @@ -525,6 +699,7 @@ class EventSentEvent(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["input", b"input", "instanceId", b"instanceId", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___EventSentEvent: _TypeAlias = EventSentEvent # noqa: Y015 @@ -547,6 +722,7 @@ class EventRaisedEvent(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["input", b"input", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___EventRaisedEvent: _TypeAlias = EventRaisedEvent # noqa: Y015 @@ -566,6 +742,7 @@ class ContinueAsNewEvent(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["input", b"input"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ContinueAsNewEvent: _TypeAlias = ContinueAsNewEvent # noqa: Y015 @@ -585,6 +762,7 @@ class ExecutionSuspendedEvent(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["input", b"input"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ExecutionSuspendedEvent: _TypeAlias = ExecutionSuspendedEvent # noqa: Y015 @@ -604,6 +782,7 @@ class ExecutionResumedEvent(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["input", b"input"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ExecutionResumedEvent: _TypeAlias = ExecutionResumedEvent # noqa: Y015 @@ -656,6 +835,7 @@ class HistoryEvent(_message.Message): EXECUTIONSUSPENDED_FIELD_NUMBER: _builtins.int EXECUTIONRESUMED_FIELD_NUMBER: _builtins.int EXECUTIONSTALLED_FIELD_NUMBER: _builtins.int + DETACHEDWORKFLOWINSTANCECREATED_FIELD_NUMBER: _builtins.int ROUTER_FIELD_NUMBER: _builtins.int eventId: _builtins.int @_builtins.property @@ -699,6 +879,8 @@ class HistoryEvent(_message.Message): @_builtins.property def executionStalled(self) -> Global___ExecutionStalledEvent: ... @_builtins.property + def detachedWorkflowInstanceCreated(self) -> Global___DetachedWorkflowInstanceCreatedEvent: ... + @_builtins.property def router(self) -> _orchestration_pb2.TaskRouter: ... def __init__( self, @@ -724,15 +906,16 @@ class HistoryEvent(_message.Message): executionSuspended: Global___ExecutionSuspendedEvent | None = ..., executionResumed: Global___ExecutionResumedEvent | None = ..., executionStalled: Global___ExecutionStalledEvent | None = ..., + detachedWorkflowInstanceCreated: Global___DetachedWorkflowInstanceCreatedEvent | None = ..., router: _orchestration_pb2.TaskRouter | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "childWorkflowInstanceCompleted", b"childWorkflowInstanceCompleted", "childWorkflowInstanceCreated", b"childWorkflowInstanceCreated", "childWorkflowInstanceFailed", b"childWorkflowInstanceFailed", "continueAsNew", b"continueAsNew", "eventRaised", b"eventRaised", "eventSent", b"eventSent", "eventType", b"eventType", "executionCompleted", b"executionCompleted", "executionResumed", b"executionResumed", "executionStalled", b"executionStalled", "executionStarted", b"executionStarted", "executionSuspended", b"executionSuspended", "executionTerminated", b"executionTerminated", "router", b"router", "taskCompleted", b"taskCompleted", "taskFailed", b"taskFailed", "taskScheduled", b"taskScheduled", "timerCreated", b"timerCreated", "timerFired", b"timerFired", "timestamp", b"timestamp", "workflowCompleted", b"workflowCompleted", "workflowStarted", b"workflowStarted"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "childWorkflowInstanceCompleted", b"childWorkflowInstanceCompleted", "childWorkflowInstanceCreated", b"childWorkflowInstanceCreated", "childWorkflowInstanceFailed", b"childWorkflowInstanceFailed", "continueAsNew", b"continueAsNew", "detachedWorkflowInstanceCreated", b"detachedWorkflowInstanceCreated", "eventRaised", b"eventRaised", "eventSent", b"eventSent", "eventType", b"eventType", "executionCompleted", b"executionCompleted", "executionResumed", b"executionResumed", "executionStalled", b"executionStalled", "executionStarted", b"executionStarted", "executionSuspended", b"executionSuspended", "executionTerminated", b"executionTerminated", "router", b"router", "taskCompleted", b"taskCompleted", "taskFailed", b"taskFailed", "taskScheduled", b"taskScheduled", "timerCreated", b"timerCreated", "timerFired", b"timerFired", "timestamp", b"timestamp", "workflowCompleted", b"workflowCompleted", "workflowStarted", b"workflowStarted"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "childWorkflowInstanceCompleted", b"childWorkflowInstanceCompleted", "childWorkflowInstanceCreated", b"childWorkflowInstanceCreated", "childWorkflowInstanceFailed", b"childWorkflowInstanceFailed", "continueAsNew", b"continueAsNew", "eventId", b"eventId", "eventRaised", b"eventRaised", "eventSent", b"eventSent", "eventType", b"eventType", "executionCompleted", b"executionCompleted", "executionResumed", b"executionResumed", "executionStalled", b"executionStalled", "executionStarted", b"executionStarted", "executionSuspended", b"executionSuspended", "executionTerminated", b"executionTerminated", "router", b"router", "taskCompleted", b"taskCompleted", "taskFailed", b"taskFailed", "taskScheduled", b"taskScheduled", "timerCreated", b"timerCreated", "timerFired", b"timerFired", "timestamp", b"timestamp", "workflowCompleted", b"workflowCompleted", "workflowStarted", b"workflowStarted"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "childWorkflowInstanceCompleted", b"childWorkflowInstanceCompleted", "childWorkflowInstanceCreated", b"childWorkflowInstanceCreated", "childWorkflowInstanceFailed", b"childWorkflowInstanceFailed", "continueAsNew", b"continueAsNew", "detachedWorkflowInstanceCreated", b"detachedWorkflowInstanceCreated", "eventId", b"eventId", "eventRaised", b"eventRaised", "eventSent", b"eventSent", "eventType", b"eventType", "executionCompleted", b"executionCompleted", "executionResumed", b"executionResumed", "executionStalled", b"executionStalled", "executionStarted", b"executionStarted", "executionSuspended", b"executionSuspended", "executionTerminated", b"executionTerminated", "router", b"router", "taskCompleted", b"taskCompleted", "taskFailed", b"taskFailed", "taskScheduled", b"taskScheduled", "timerCreated", b"timerCreated", "timerFired", b"timerFired", "timestamp", b"timestamp", "workflowCompleted", b"workflowCompleted", "workflowStarted", b"workflowStarted"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... _WhichOneofReturnType__router: _TypeAlias = _typing.Literal["router"] # noqa: Y015 _WhichOneofArgType__router: _TypeAlias = _typing.Literal["_router", b"_router"] # noqa: Y015 - _WhichOneofReturnType_eventType: _TypeAlias = _typing.Literal["executionStarted", "executionCompleted", "executionTerminated", "taskScheduled", "taskCompleted", "taskFailed", "childWorkflowInstanceCreated", "childWorkflowInstanceCompleted", "childWorkflowInstanceFailed", "timerCreated", "timerFired", "workflowStarted", "workflowCompleted", "eventSent", "eventRaised", "continueAsNew", "executionSuspended", "executionResumed", "executionStalled"] # noqa: Y015 + _WhichOneofReturnType_eventType: _TypeAlias = _typing.Literal["executionStarted", "executionCompleted", "executionTerminated", "taskScheduled", "taskCompleted", "taskFailed", "childWorkflowInstanceCreated", "childWorkflowInstanceCompleted", "childWorkflowInstanceFailed", "timerCreated", "timerFired", "workflowStarted", "workflowCompleted", "eventSent", "eventRaised", "continueAsNew", "executionSuspended", "executionResumed", "executionStalled", "detachedWorkflowInstanceCreated"] # noqa: Y015 _WhichOneofArgType_eventType: _TypeAlias = _typing.Literal["eventType", b"eventType"] # noqa: Y015 @_typing.overload def WhichOneof(self, oneof_group: _WhichOneofArgType__router) -> _WhichOneofReturnType__router | None: ... @@ -740,3 +923,104 @@ class HistoryEvent(_message.Message): def WhichOneof(self, oneof_group: _WhichOneofArgType_eventType) -> _WhichOneofReturnType_eventType | None: ... Global___HistoryEvent: _TypeAlias = HistoryEvent # noqa: Y015 + +@_typing.final +class PropagatedHistoryChunk(_message.Message): + """A self-contained range of events produced by a single app, used when + history from multiple workflows is propagated to a downstream workflow + or activity. Each chunk owns the raw event bytes its producer signed; + receivers digest those bytes directly and decode them into typed + HistoryEvents on demand. + """ + + DESCRIPTOR: _descriptor.Descriptor + + RAWEVENTS_FIELD_NUMBER: _builtins.int + APPID_FIELD_NUMBER: _builtins.int + INSTANCEID_FIELD_NUMBER: _builtins.int + WORKFLOWNAME_FIELD_NUMBER: _builtins.int + RAWSIGNATURES_FIELD_NUMBER: _builtins.int + SIGNINGCERTCHAINS_FIELD_NUMBER: _builtins.int + appId: _builtins.str + instanceId: _builtins.str + """The workflow instance ID/name that produced the events in this chunk.""" + workflowName: _builtins.str + @_builtins.property + def rawEvents(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: + """Raw deterministic bytes of each HistoryEvent in this chunk, in execution + order. The producer marshals each event once and signs over these exact + bytes; receivers digest them directly and never re-marshal, so chunk + verification is independent of protobuf marshaler-version stability + across producer and receiver. This mirrors the approach attestations use + for ioDigest: signed bytes travel verbatim end-to-end. The chunk's + length is len(rawEvents). + """ + + @_builtins.property + def rawSignatures(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: + """Raw deterministic bytes of each HistorySignature message produced by the + chunk's app at dispatch time, covering rawEvents in order. Receivers + unmarshal these on demand to verify the chain. Raw bytes are required + because HistorySignature.previousSignatureDigest commits to the exact + persisted serialization; re-marshaling on the wire would break chain + linkage. See backend_service.proto: HistorySignature. + """ + + @_builtins.property + def signingCertChains(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: + """X.509 certificate chains of the chunk app's signing identities, + DER-concatenated leaf-first then intermediates (same encoding as + backend_service.proto: SigningCertificate.certificate). Each + HistorySignature in rawSignatures has a certificateIndex that indexes + into this list, scoped to the chunk's producer app. Raw bytes here avoid + a circular import on backend_service.proto's SigningCertificate type. + """ + + def __init__( + self, + *, + rawEvents: _abc.Iterable[_builtins.bytes] | None = ..., + appId: _builtins.str = ..., + instanceId: _builtins.str = ..., + workflowName: _builtins.str = ..., + rawSignatures: _abc.Iterable[_builtins.bytes] | None = ..., + signingCertChains: _abc.Iterable[_builtins.bytes] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["appId", b"appId", "instanceId", b"instanceId", "rawEvents", b"rawEvents", "rawSignatures", b"rawSignatures", "signingCertChains", b"signingCertChains", "workflowName", b"workflowName"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___PropagatedHistoryChunk: _TypeAlias = PropagatedHistoryChunk # noqa: Y015 + +@_typing.final +class PropagatedHistory(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + SCOPE_FIELD_NUMBER: _builtins.int + CHUNKS_FIELD_NUMBER: _builtins.int + scope: _orchestration_pb2.HistoryPropagationScope.ValueType + """The propagation scope that was used to produce this history.""" + @_builtins.property + def chunks(self) -> _containers.RepeatedCompositeFieldContainer[Global___PropagatedHistoryChunk]: + """Per-app history chunks. Each chunk owns the raw event bytes its producer + signed (PropagatedHistoryChunk.rawEvents); receivers digest those bytes + directly and decode them into typed HistoryEvents on demand. Chunks are + ordered, non-overlapping, and together describe the full propagated + event sequence. + """ + + def __init__( + self, + *, + scope: _orchestration_pb2.HistoryPropagationScope.ValueType = ..., + chunks: _abc.Iterable[Global___PropagatedHistoryChunk] | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["chunks", b"chunks", "scope", b"scope"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + +Global___PropagatedHistory: _TypeAlias = PropagatedHistory # noqa: Y015 diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2_grpc.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2_grpc.py index 8a738f5a2..201aad188 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2_grpc.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/history_events_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2.py index f9727296e..cfe77c700 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2.py @@ -26,7 +26,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13orchestration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"K\n\nTaskRouter\x12\x13\n\x0bsourceAppID\x18\x01 \x01(\t\x12\x18\n\x0btargetAppID\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_targetAppID\">\n\x0fWorkflowVersion\x12\x0f\n\x07patches\x18\x01 \x03(\t\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"Y\n\x10WorkflowInstance\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x31\n\x0b\x65xecutionId\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xb2\x01\n\x12TaskFailureDetails\x12\x11\n\terrorType\x18\x01 \x01(\t\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\x12\x30\n\nstackTrace\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12)\n\x0cinnerFailure\x18\x04 \x01(\x0b\x32\x13.TaskFailureDetails\x12\x16\n\x0eisNonRetriable\x18\x05 \x01(\x08\"\xd3\x01\n\x12ParentInstanceInfo\x12\x17\n\x0ftaskScheduledId\x18\x01 \x01(\x05\x12*\n\x04name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07version\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x10workflowInstance\x18\x04 \x01(\x0b\x32\x11.WorkflowInstance\x12\x12\n\x05\x61ppID\x18\x05 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_appID\"-\n\x17RerunParentInstanceInfo\x12\x12\n\ninstanceID\x18\x01 \x01(\t\"i\n\x0cTraceContext\x12\x13\n\x0btraceParent\x18\x01 \x01(\t\x12\x12\n\x06spanID\x18\x02 \x01(\tB\x02\x18\x01\x12\x30\n\ntraceState\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xef\x05\n\rWorkflowState\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\x07version\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x0eworkflowStatus\x18\x04 \x01(\x0e\x32\x14.OrchestrationStatus\x12;\n\x17scheduledStartTimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x10\x63reatedTimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x14lastUpdatedTimestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x05input\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x06output\x18\t \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x63ustomStatus\x18\n \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x0e\x66\x61ilureDetails\x18\x0b \x01(\x0b\x32\x13.TaskFailureDetails\x12\x31\n\x0b\x65xecutionId\x18\x0c \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x12\x63ompletedTimestamp\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x10parentInstanceId\x18\x0e \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12&\n\x04tags\x18\x0f \x03(\x0b\x32\x18.WorkflowState.TagsEntry\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*>\n\rStalledReason\x12\x12\n\x0ePATCH_MISMATCH\x10\x00\x12\x19\n\x15VERSION_NOT_AVAILABLE\x10\x01*\xd7\x02\n\x13OrchestrationStatus\x12 \n\x1cORCHESTRATION_STATUS_RUNNING\x10\x00\x12\"\n\x1eORCHESTRATION_STATUS_COMPLETED\x10\x01\x12)\n%ORCHESTRATION_STATUS_CONTINUED_AS_NEW\x10\x02\x12\x1f\n\x1bORCHESTRATION_STATUS_FAILED\x10\x03\x12!\n\x1dORCHESTRATION_STATUS_CANCELED\x10\x04\x12#\n\x1fORCHESTRATION_STATUS_TERMINATED\x10\x05\x12 \n\x1cORCHESTRATION_STATUS_PENDING\x10\x06\x12\"\n\x1eORCHESTRATION_STATUS_SUSPENDED\x10\x07\x12 \n\x1cORCHESTRATION_STATUS_STALLED\x10\x08\x42V\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13orchestration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x83\x01\n\nTaskRouter\x12\x13\n\x0bsourceAppID\x18\x01 \x01(\t\x12\x18\n\x0btargetAppID\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12targetAppNamespace\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_targetAppIDB\x15\n\x13_targetAppNamespace\">\n\x0fWorkflowVersion\x12\x0f\n\x07patches\x18\x01 \x03(\t\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"Y\n\x10WorkflowInstance\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x31\n\x0b\x65xecutionId\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xb2\x01\n\x12TaskFailureDetails\x12\x11\n\terrorType\x18\x01 \x01(\t\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\x12\x30\n\nstackTrace\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12)\n\x0cinnerFailure\x18\x04 \x01(\x0b\x32\x13.TaskFailureDetails\x12\x16\n\x0eisNonRetriable\x18\x05 \x01(\x08\"\xff\x01\n\x12ParentInstanceInfo\x12\x17\n\x0ftaskScheduledId\x18\x01 \x01(\x05\x12*\n\x04name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07version\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x10workflowInstance\x18\x04 \x01(\x0b\x32\x11.WorkflowInstance\x12\x12\n\x05\x61ppID\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0c\x61ppNamespace\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_appIDB\x0f\n\r_appNamespace\"-\n\x17RerunParentInstanceInfo\x12\x12\n\ninstanceID\x18\x01 \x01(\t\"i\n\x0cTraceContext\x12\x13\n\x0btraceParent\x18\x01 \x01(\t\x12\x12\n\x06spanID\x18\x02 \x01(\tB\x02\x18\x01\x12\x30\n\ntraceState\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xef\x05\n\rWorkflowState\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\x07version\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x0eworkflowStatus\x18\x04 \x01(\x0e\x32\x14.OrchestrationStatus\x12;\n\x17scheduledStartTimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x10\x63reatedTimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x14lastUpdatedTimestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x05input\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x06output\x18\t \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x63ustomStatus\x18\n \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x0e\x66\x61ilureDetails\x18\x0b \x01(\x0b\x32\x13.TaskFailureDetails\x12\x31\n\x0b\x65xecutionId\x18\x0c \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x12\x63ompletedTimestamp\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x10parentInstanceId\x18\x0e \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12&\n\x04tags\x18\x0f \x03(\x0b\x32\x18.WorkflowState.TagsEntry\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*Y\n\rStalledReason\x12\x12\n\x0ePATCH_MISMATCH\x10\x00\x12\x19\n\x15VERSION_NOT_AVAILABLE\x10\x01\x12\x19\n\x15PAYLOAD_SIZE_EXCEEDED\x10\x02*\xd7\x02\n\x13OrchestrationStatus\x12 \n\x1cORCHESTRATION_STATUS_RUNNING\x10\x00\x12\"\n\x1eORCHESTRATION_STATUS_COMPLETED\x10\x01\x12)\n%ORCHESTRATION_STATUS_CONTINUED_AS_NEW\x10\x02\x12\x1f\n\x1bORCHESTRATION_STATUS_FAILED\x10\x03\x12!\n\x1dORCHESTRATION_STATUS_CANCELED\x10\x04\x12#\n\x1fORCHESTRATION_STATUS_TERMINATED\x10\x05\x12 \n\x1cORCHESTRATION_STATUS_PENDING\x10\x06\x12\"\n\x1eORCHESTRATION_STATUS_SUSPENDED\x10\x07\x12 \n\x1cORCHESTRATION_STATUS_STALLED\x10\x08*\x8f\x01\n\x17HistoryPropagationScope\x12\"\n\x1eHISTORY_PROPAGATION_SCOPE_NONE\x10\x00\x12)\n%HISTORY_PROPAGATION_SCOPE_OWN_HISTORY\x10\x01\x12%\n!HISTORY_PROPAGATION_SCOPE_LINEAGE\x10\x02\x42V\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -38,26 +38,28 @@ _globals['_TRACECONTEXT'].fields_by_name['spanID']._serialized_options = b'\030\001' _globals['_WORKFLOWSTATE_TAGSENTRY']._loaded_options = None _globals['_WORKFLOWSTATE_TAGSENTRY']._serialized_options = b'8\001' - _globals['_STALLEDREASON']._serialized_start=1623 - _globals['_STALLEDREASON']._serialized_end=1685 - _globals['_ORCHESTRATIONSTATUS']._serialized_start=1688 - _globals['_ORCHESTRATIONSTATUS']._serialized_end=2031 - _globals['_TASKROUTER']._serialized_start=88 - _globals['_TASKROUTER']._serialized_end=163 - _globals['_WORKFLOWVERSION']._serialized_start=165 - _globals['_WORKFLOWVERSION']._serialized_end=227 - _globals['_WORKFLOWINSTANCE']._serialized_start=229 - _globals['_WORKFLOWINSTANCE']._serialized_end=318 - _globals['_TASKFAILUREDETAILS']._serialized_start=321 - _globals['_TASKFAILUREDETAILS']._serialized_end=499 - _globals['_PARENTINSTANCEINFO']._serialized_start=502 - _globals['_PARENTINSTANCEINFO']._serialized_end=713 - _globals['_RERUNPARENTINSTANCEINFO']._serialized_start=715 - _globals['_RERUNPARENTINSTANCEINFO']._serialized_end=760 - _globals['_TRACECONTEXT']._serialized_start=762 - _globals['_TRACECONTEXT']._serialized_end=867 - _globals['_WORKFLOWSTATE']._serialized_start=870 - _globals['_WORKFLOWSTATE']._serialized_end=1621 - _globals['_WORKFLOWSTATE_TAGSENTRY']._serialized_start=1578 - _globals['_WORKFLOWSTATE_TAGSENTRY']._serialized_end=1621 + _globals['_STALLEDREASON']._serialized_start=1724 + _globals['_STALLEDREASON']._serialized_end=1813 + _globals['_ORCHESTRATIONSTATUS']._serialized_start=1816 + _globals['_ORCHESTRATIONSTATUS']._serialized_end=2159 + _globals['_HISTORYPROPAGATIONSCOPE']._serialized_start=2162 + _globals['_HISTORYPROPAGATIONSCOPE']._serialized_end=2305 + _globals['_TASKROUTER']._serialized_start=89 + _globals['_TASKROUTER']._serialized_end=220 + _globals['_WORKFLOWVERSION']._serialized_start=222 + _globals['_WORKFLOWVERSION']._serialized_end=284 + _globals['_WORKFLOWINSTANCE']._serialized_start=286 + _globals['_WORKFLOWINSTANCE']._serialized_end=375 + _globals['_TASKFAILUREDETAILS']._serialized_start=378 + _globals['_TASKFAILUREDETAILS']._serialized_end=556 + _globals['_PARENTINSTANCEINFO']._serialized_start=559 + _globals['_PARENTINSTANCEINFO']._serialized_end=814 + _globals['_RERUNPARENTINSTANCEINFO']._serialized_start=816 + _globals['_RERUNPARENTINSTANCEINFO']._serialized_end=861 + _globals['_TRACECONTEXT']._serialized_start=863 + _globals['_TRACECONTEXT']._serialized_end=968 + _globals['_WORKFLOWSTATE']._serialized_start=971 + _globals['_WORKFLOWSTATE']._serialized_end=1722 + _globals['_WORKFLOWSTATE_TAGSENTRY']._serialized_start=1679 + _globals['_WORKFLOWSTATE_TAGSENTRY']._serialized_end=1722 # @@protoc_insertion_point(module_scope) diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2.pyi b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2.pyi index ce5f416c1..681329f60 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2.pyi +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2.pyi @@ -16,10 +16,10 @@ import builtins as _builtins import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never if sys.version_info >= (3, 13): from warnings import deprecated as _deprecated @@ -36,11 +36,13 @@ class _StalledReasonEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_Stalled DESCRIPTOR: _descriptor.EnumDescriptor PATCH_MISMATCH: _StalledReason.ValueType # 0 VERSION_NOT_AVAILABLE: _StalledReason.ValueType # 1 + PAYLOAD_SIZE_EXCEEDED: _StalledReason.ValueType # 2 class StalledReason(_StalledReason, metaclass=_StalledReasonEnumTypeWrapper): ... PATCH_MISMATCH: StalledReason.ValueType # 0 VERSION_NOT_AVAILABLE: StalledReason.ValueType # 1 +PAYLOAD_SIZE_EXCEEDED: StalledReason.ValueType # 2 Global___StalledReason: _TypeAlias = StalledReason # noqa: Y015 class _OrchestrationStatus: @@ -72,27 +74,75 @@ ORCHESTRATION_STATUS_SUSPENDED: OrchestrationStatus.ValueType # 7 ORCHESTRATION_STATUS_STALLED: OrchestrationStatus.ValueType # 8 Global___OrchestrationStatus: _TypeAlias = OrchestrationStatus # noqa: Y015 +class _HistoryPropagationScope: + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType # noqa: Y015 + +class _HistoryPropagationScopeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_HistoryPropagationScope.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor + HISTORY_PROPAGATION_SCOPE_NONE: _HistoryPropagationScope.ValueType # 0 + """No propagation. This is the default for an unset/missing field; the + child receives no history from the caller. + """ + HISTORY_PROPAGATION_SCOPE_OWN_HISTORY: _HistoryPropagationScope.ValueType # 1 + """Propagate the caller's own history events only. The child does + not see any ancestral history (trust boundary). + """ + HISTORY_PROPAGATION_SCOPE_LINEAGE: _HistoryPropagationScope.ValueType # 2 + """Propagate the caller's own history events AND the full ancestral + chain. Any propagated history this workflow received from its + parent is forwarded to the child. + """ + +class HistoryPropagationScope(_HistoryPropagationScope, metaclass=_HistoryPropagationScopeEnumTypeWrapper): + """HistoryPropagationScope controls how history is propagated to a child + workflow or activity + """ + +HISTORY_PROPAGATION_SCOPE_NONE: HistoryPropagationScope.ValueType # 0 +"""No propagation. This is the default for an unset/missing field; the +child receives no history from the caller. +""" +HISTORY_PROPAGATION_SCOPE_OWN_HISTORY: HistoryPropagationScope.ValueType # 1 +"""Propagate the caller's own history events only. The child does +not see any ancestral history (trust boundary). +""" +HISTORY_PROPAGATION_SCOPE_LINEAGE: HistoryPropagationScope.ValueType # 2 +"""Propagate the caller's own history events AND the full ancestral +chain. Any propagated history this workflow received from its +parent is forwarded to the child. +""" +Global___HistoryPropagationScope: _TypeAlias = HistoryPropagationScope # noqa: Y015 + @_typing.final class TaskRouter(_message.Message): DESCRIPTOR: _descriptor.Descriptor SOURCEAPPID_FIELD_NUMBER: _builtins.int TARGETAPPID_FIELD_NUMBER: _builtins.int + TARGETAPPNAMESPACE_FIELD_NUMBER: _builtins.int sourceAppID: _builtins.str targetAppID: _builtins.str + targetAppNamespace: _builtins.str def __init__( self, *, sourceAppID: _builtins.str = ..., targetAppID: _builtins.str | None = ..., + targetAppNamespace: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["_targetAppID", b"_targetAppID", "targetAppID", b"targetAppID"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_targetAppID", b"_targetAppID", "_targetAppNamespace", b"_targetAppNamespace", "targetAppID", b"targetAppID", "targetAppNamespace", b"targetAppNamespace"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["_targetAppID", b"_targetAppID", "sourceAppID", b"sourceAppID", "targetAppID", b"targetAppID"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_targetAppID", b"_targetAppID", "_targetAppNamespace", b"_targetAppNamespace", "sourceAppID", b"sourceAppID", "targetAppID", b"targetAppID", "targetAppNamespace", b"targetAppNamespace"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... _WhichOneofReturnType__targetAppID: _TypeAlias = _typing.Literal["targetAppID"] # noqa: Y015 _WhichOneofArgType__targetAppID: _TypeAlias = _typing.Literal["_targetAppID", b"_targetAppID"] # noqa: Y015 + _WhichOneofReturnType__targetAppNamespace: _TypeAlias = _typing.Literal["targetAppNamespace"] # noqa: Y015 + _WhichOneofArgType__targetAppNamespace: _TypeAlias = _typing.Literal["_targetAppNamespace", b"_targetAppNamespace"] # noqa: Y015 + @_typing.overload def WhichOneof(self, oneof_group: _WhichOneofArgType__targetAppID) -> _WhichOneofReturnType__targetAppID | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__targetAppNamespace) -> _WhichOneofReturnType__targetAppNamespace | None: ... Global___TaskRouter: _TypeAlias = TaskRouter # noqa: Y015 @@ -141,6 +191,7 @@ class WorkflowInstance(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["executionId", b"executionId", "instanceId", b"instanceId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___WorkflowInstance: _TypeAlias = WorkflowInstance # noqa: Y015 @@ -173,6 +224,7 @@ class TaskFailureDetails(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["errorMessage", b"errorMessage", "errorType", b"errorType", "innerFailure", b"innerFailure", "isNonRetriable", b"isNonRetriable", "stackTrace", b"stackTrace"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TaskFailureDetails: _TypeAlias = TaskFailureDetails # noqa: Y015 @@ -185,8 +237,10 @@ class ParentInstanceInfo(_message.Message): VERSION_FIELD_NUMBER: _builtins.int WORKFLOWINSTANCE_FIELD_NUMBER: _builtins.int APPID_FIELD_NUMBER: _builtins.int + APPNAMESPACE_FIELD_NUMBER: _builtins.int taskScheduledId: _builtins.int appID: _builtins.str + appNamespace: _builtins.str @_builtins.property def name(self) -> _wrappers_pb2.StringValue: ... @_builtins.property @@ -201,14 +255,20 @@ class ParentInstanceInfo(_message.Message): version: _wrappers_pb2.StringValue | None = ..., workflowInstance: Global___WorkflowInstance | None = ..., appID: _builtins.str | None = ..., + appNamespace: _builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["_appID", b"_appID", "appID", b"appID", "name", b"name", "version", b"version", "workflowInstance", b"workflowInstance"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_appID", b"_appID", "_appNamespace", b"_appNamespace", "appID", b"appID", "appNamespace", b"appNamespace", "name", b"name", "version", b"version", "workflowInstance", b"workflowInstance"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["_appID", b"_appID", "appID", b"appID", "name", b"name", "taskScheduledId", b"taskScheduledId", "version", b"version", "workflowInstance", b"workflowInstance"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_appID", b"_appID", "_appNamespace", b"_appNamespace", "appID", b"appID", "appNamespace", b"appNamespace", "name", b"name", "taskScheduledId", b"taskScheduledId", "version", b"version", "workflowInstance", b"workflowInstance"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... _WhichOneofReturnType__appID: _TypeAlias = _typing.Literal["appID"] # noqa: Y015 _WhichOneofArgType__appID: _TypeAlias = _typing.Literal["_appID", b"_appID"] # noqa: Y015 + _WhichOneofReturnType__appNamespace: _TypeAlias = _typing.Literal["appNamespace"] # noqa: Y015 + _WhichOneofArgType__appNamespace: _TypeAlias = _typing.Literal["_appNamespace", b"_appNamespace"] # noqa: Y015 + @_typing.overload def WhichOneof(self, oneof_group: _WhichOneofArgType__appID) -> _WhichOneofReturnType__appID | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__appNamespace) -> _WhichOneofReturnType__appNamespace | None: ... Global___ParentInstanceInfo: _TypeAlias = ParentInstanceInfo # noqa: Y015 @@ -231,8 +291,11 @@ class RerunParentInstanceInfo(_message.Message): *, instanceID: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instanceID", b"instanceID"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___RerunParentInstanceInfo: _TypeAlias = RerunParentInstanceInfo # noqa: Y015 @@ -263,6 +326,7 @@ class TraceContext(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["spanID", b"spanID", "traceParent", b"traceParent", "traceState", b"traceState"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TraceContext: _TypeAlias = TraceContext # noqa: Y015 @@ -284,8 +348,11 @@ class WorkflowState(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... INSTANCEID_FIELD_NUMBER: _builtins.int NAME_FIELD_NUMBER: _builtins.int @@ -352,5 +419,6 @@ class WorkflowState(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["completedTimestamp", b"completedTimestamp", "createdTimestamp", b"createdTimestamp", "customStatus", b"customStatus", "executionId", b"executionId", "failureDetails", b"failureDetails", "input", b"input", "instanceId", b"instanceId", "lastUpdatedTimestamp", b"lastUpdatedTimestamp", "name", b"name", "output", b"output", "parentInstanceId", b"parentInstanceId", "scheduledStartTimestamp", b"scheduledStartTimestamp", "tags", b"tags", "version", b"version", "workflowStatus", b"workflowStatus"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___WorkflowState: _TypeAlias = WorkflowState # noqa: Y015 diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2_grpc.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2_grpc.py index dca81c14f..8afda749e 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2_grpc.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestration_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2.py index 718bb76cc..0d0b4bd04 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2.py @@ -28,7 +28,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aorchestrator_actions.proto\x1a\x13orchestration.proto\x1a\x14history_events.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xc4\x01\n\x12ScheduleTaskAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\x07version\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x06router\x18\x04 \x01(\x0b\x32\x0b.TaskRouterH\x00\x88\x01\x01\x12\x17\n\x0ftaskExecutionId\x18\x05 \x01(\tB\t\n\x07_router\"\xc6\x01\n\x19\x43reateChildWorkflowAction\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\x07version\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x06router\x18\x05 \x01(\x0b\x32\x0b.TaskRouterH\x00\x88\x01\x01\x42\t\n\x07_router\"\xbb\x02\n\x11\x43reateTimerAction\x12*\n\x06\x66ireAt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\x04name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x0b\x63reateTimer\x18\x03 \x01(\x0b\x32\x17.TimerOriginCreateTimerH\x00\x12\x32\n\rexternalEvent\x18\x04 \x01(\x0b\x32\x19.TimerOriginExternalEventH\x00\x12\x32\n\ractivityRetry\x18\x05 \x01(\x0b\x32\x19.TimerOriginActivityRetryH\x00\x12<\n\x12\x63hildWorkflowRetry\x18\x06 \x01(\x0b\x32\x1e.TimerOriginChildWorkflowRetryH\x00\x42\x08\n\x06originB\x07\n\x05_name\"p\n\x0fSendEventAction\x12#\n\x08instance\x18\x01 \x01(\x0b\x32\x11.WorkflowInstance\x12\x0c\n\x04name\x18\x02 \x01(\t\x12*\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xaa\x02\n\x16\x43ompleteWorkflowAction\x12,\n\x0eworkflowStatus\x18\x01 \x01(\x0e\x32\x14.OrchestrationStatus\x12,\n\x06result\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07\x64\x65tails\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\nnewVersion\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12&\n\x0f\x63\x61rryoverEvents\x18\x05 \x03(\x0b\x32\r.HistoryEvent\x12+\n\x0e\x66\x61ilureDetails\x18\x06 \x01(\x0b\x32\x13.TaskFailureDetails\"l\n\x17TerminateWorkflowAction\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12,\n\x06reason\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0f\n\x07recurse\x18\x03 \x01(\x08\"#\n!WorkflowVersionNotAvailableAction\"\xd6\x03\n\x0eWorkflowAction\x12\n\n\x02id\x18\x01 \x01(\x05\x12+\n\x0cscheduleTask\x18\x02 \x01(\x0b\x32\x13.ScheduleTaskActionH\x00\x12\x39\n\x13\x63reateChildWorkflow\x18\x03 \x01(\x0b\x32\x1a.CreateChildWorkflowActionH\x00\x12)\n\x0b\x63reateTimer\x18\x04 \x01(\x0b\x32\x12.CreateTimerActionH\x00\x12%\n\tsendEvent\x18\x05 \x01(\x0b\x32\x10.SendEventActionH\x00\x12\x33\n\x10\x63ompleteWorkflow\x18\x06 \x01(\x0b\x32\x17.CompleteWorkflowActionH\x00\x12\x35\n\x11terminateWorkflow\x18\x07 \x01(\x0b\x32\x18.TerminateWorkflowActionH\x00\x12I\n\x1bworkflowVersionNotAvailable\x18\n \x01(\x0b\x32\".WorkflowVersionNotAvailableActionH\x00\x12 \n\x06router\x18\t \x01(\x0b\x32\x0b.TaskRouterH\x01\x88\x01\x01\x42\x14\n\x12workflowActionTypeB\t\n\x07_routerJ\x04\x08\x08\x10\tBV\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aorchestrator_actions.proto\x1a\x13orchestration.proto\x1a\x14history_events.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xa0\x02\n\x12ScheduleTaskAction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\x07version\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x06router\x18\x04 \x01(\x0b\x32\x0b.TaskRouterH\x00\x88\x01\x01\x12\x17\n\x0ftaskExecutionId\x18\x05 \x01(\t\x12>\n\x17historyPropagationScope\x18\x06 \x01(\x0e\x32\x18.HistoryPropagationScopeH\x01\x88\x01\x01\x42\t\n\x07_routerB\x1a\n\x18_historyPropagationScope\"\xa2\x02\n\x19\x43reateChildWorkflowAction\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\x07version\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x06router\x18\x05 \x01(\x0b\x32\x0b.TaskRouterH\x00\x88\x01\x01\x12>\n\x17historyPropagationScope\x18\x06 \x01(\x0e\x32\x18.HistoryPropagationScopeH\x01\x88\x01\x01\x42\t\n\x07_routerB\x1a\n\x18_historyPropagationScope\"\x85\x04\n\x1c\x43reateDetachedWorkflowAction\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\x07version\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12@\n\x17scheduledStartTimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x31\n\x0b\x65xecutionId\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x04tags\x18\x07 \x03(\x0b\x32\'.CreateDetachedWorkflowAction.TagsEntry\x12.\n\x12parentTraceContext\x18\x08 \x01(\x0b\x32\r.TraceContextH\x01\x88\x01\x01\x12 \n\x06router\x18\t \x01(\x0b\x32\x0b.TaskRouterH\x02\x88\x01\x01\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x1a\n\x18_scheduledStartTimestampB\x15\n\x13_parentTraceContextB\t\n\x07_router\"\xbb\x02\n\x11\x43reateTimerAction\x12*\n\x06\x66ireAt\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\x04name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x0b\x63reateTimer\x18\x03 \x01(\x0b\x32\x17.TimerOriginCreateTimerH\x00\x12\x32\n\rexternalEvent\x18\x04 \x01(\x0b\x32\x19.TimerOriginExternalEventH\x00\x12\x32\n\ractivityRetry\x18\x05 \x01(\x0b\x32\x19.TimerOriginActivityRetryH\x00\x12<\n\x12\x63hildWorkflowRetry\x18\x06 \x01(\x0b\x32\x1e.TimerOriginChildWorkflowRetryH\x00\x42\x08\n\x06originB\x07\n\x05_name\"p\n\x0fSendEventAction\x12#\n\x08instance\x18\x01 \x01(\x0b\x32\x11.WorkflowInstance\x12\x0c\n\x04name\x18\x02 \x01(\t\x12*\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xaa\x02\n\x16\x43ompleteWorkflowAction\x12,\n\x0eworkflowStatus\x18\x01 \x01(\x0e\x32\x14.OrchestrationStatus\x12,\n\x06result\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07\x64\x65tails\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\nnewVersion\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12&\n\x0f\x63\x61rryoverEvents\x18\x05 \x03(\x0b\x32\r.HistoryEvent\x12+\n\x0e\x66\x61ilureDetails\x18\x06 \x01(\x0b\x32\x13.TaskFailureDetails\"l\n\x17TerminateWorkflowAction\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12,\n\x06reason\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0f\n\x07recurse\x18\x03 \x01(\x08\"#\n!WorkflowVersionNotAvailableAction\"\x97\x04\n\x0eWorkflowAction\x12\n\n\x02id\x18\x01 \x01(\x05\x12+\n\x0cscheduleTask\x18\x02 \x01(\x0b\x32\x13.ScheduleTaskActionH\x00\x12\x39\n\x13\x63reateChildWorkflow\x18\x03 \x01(\x0b\x32\x1a.CreateChildWorkflowActionH\x00\x12)\n\x0b\x63reateTimer\x18\x04 \x01(\x0b\x32\x12.CreateTimerActionH\x00\x12%\n\tsendEvent\x18\x05 \x01(\x0b\x32\x10.SendEventActionH\x00\x12\x33\n\x10\x63ompleteWorkflow\x18\x06 \x01(\x0b\x32\x17.CompleteWorkflowActionH\x00\x12\x35\n\x11terminateWorkflow\x18\x07 \x01(\x0b\x32\x18.TerminateWorkflowActionH\x00\x12I\n\x1bworkflowVersionNotAvailable\x18\n \x01(\x0b\x32\".WorkflowVersionNotAvailableActionH\x00\x12?\n\x16\x63reateDetachedWorkflow\x18\x0b \x01(\x0b\x32\x1d.CreateDetachedWorkflowActionH\x00\x12 \n\x06router\x18\t \x01(\x0b\x32\x0b.TaskRouterH\x01\x88\x01\x01\x42\x14\n\x12workflowActionTypeB\t\n\x07_routerJ\x04\x08\x08\x10\tBV\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -36,20 +36,26 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n+io.dapr.durabletask.implementation.protobufZ\013/api/protos\252\002\031Dapr.DurableTask.Protobuf' + _globals['_CREATEDETACHEDWORKFLOWACTION_TAGSENTRY']._loaded_options = None + _globals['_CREATEDETACHEDWORKFLOWACTION_TAGSENTRY']._serialized_options = b'8\001' _globals['_SCHEDULETASKACTION']._serialized_start=139 - _globals['_SCHEDULETASKACTION']._serialized_end=335 - _globals['_CREATECHILDWORKFLOWACTION']._serialized_start=338 - _globals['_CREATECHILDWORKFLOWACTION']._serialized_end=536 - _globals['_CREATETIMERACTION']._serialized_start=539 - _globals['_CREATETIMERACTION']._serialized_end=854 - _globals['_SENDEVENTACTION']._serialized_start=856 - _globals['_SENDEVENTACTION']._serialized_end=968 - _globals['_COMPLETEWORKFLOWACTION']._serialized_start=971 - _globals['_COMPLETEWORKFLOWACTION']._serialized_end=1269 - _globals['_TERMINATEWORKFLOWACTION']._serialized_start=1271 - _globals['_TERMINATEWORKFLOWACTION']._serialized_end=1379 - _globals['_WORKFLOWVERSIONNOTAVAILABLEACTION']._serialized_start=1381 - _globals['_WORKFLOWVERSIONNOTAVAILABLEACTION']._serialized_end=1416 - _globals['_WORKFLOWACTION']._serialized_start=1419 - _globals['_WORKFLOWACTION']._serialized_end=1889 + _globals['_SCHEDULETASKACTION']._serialized_end=427 + _globals['_CREATECHILDWORKFLOWACTION']._serialized_start=430 + _globals['_CREATECHILDWORKFLOWACTION']._serialized_end=720 + _globals['_CREATEDETACHEDWORKFLOWACTION']._serialized_start=723 + _globals['_CREATEDETACHEDWORKFLOWACTION']._serialized_end=1240 + _globals['_CREATEDETACHEDWORKFLOWACTION_TAGSENTRY']._serialized_start=1135 + _globals['_CREATEDETACHEDWORKFLOWACTION_TAGSENTRY']._serialized_end=1178 + _globals['_CREATETIMERACTION']._serialized_start=1243 + _globals['_CREATETIMERACTION']._serialized_end=1558 + _globals['_SENDEVENTACTION']._serialized_start=1560 + _globals['_SENDEVENTACTION']._serialized_end=1672 + _globals['_COMPLETEWORKFLOWACTION']._serialized_start=1675 + _globals['_COMPLETEWORKFLOWACTION']._serialized_end=1973 + _globals['_TERMINATEWORKFLOWACTION']._serialized_start=1975 + _globals['_TERMINATEWORKFLOWACTION']._serialized_end=2083 + _globals['_WORKFLOWVERSIONNOTAVAILABLEACTION']._serialized_start=2085 + _globals['_WORKFLOWVERSIONNOTAVAILABLEACTION']._serialized_end=2120 + _globals['_WORKFLOWACTION']._serialized_start=2123 + _globals['_WORKFLOWACTION']._serialized_end=2658 # @@protoc_insertion_point(module_scope) diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2.pyi b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2.pyi index 8df2644c1..93897eaf7 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2.pyi +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2.pyi @@ -17,10 +17,10 @@ from dapr.ext.workflow._durabletask.internal import orchestration_pb2 as _orches import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -33,8 +33,11 @@ class ScheduleTaskAction(_message.Message): INPUT_FIELD_NUMBER: _builtins.int ROUTER_FIELD_NUMBER: _builtins.int TASKEXECUTIONID_FIELD_NUMBER: _builtins.int + HISTORYPROPAGATIONSCOPE_FIELD_NUMBER: _builtins.int name: _builtins.str taskExecutionId: _builtins.str + historyPropagationScope: _orchestration_pb2.HistoryPropagationScope.ValueType + """History propagation scope. Absent/SCOPE_NONE = no propagation.""" @_builtins.property def version(self) -> _wrappers_pb2.StringValue: ... @_builtins.property @@ -49,13 +52,19 @@ class ScheduleTaskAction(_message.Message): input: _wrappers_pb2.StringValue | None = ..., router: _orchestration_pb2.TaskRouter | None = ..., taskExecutionId: _builtins.str = ..., + historyPropagationScope: _orchestration_pb2.HistoryPropagationScope.ValueType | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "input", b"input", "router", b"router", "version", b"version"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope", "_router", b"_router", "historyPropagationScope", b"historyPropagationScope", "input", b"input", "router", b"router", "version", b"version"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "input", b"input", "name", b"name", "router", b"router", "taskExecutionId", b"taskExecutionId", "version", b"version"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope", "_router", b"_router", "historyPropagationScope", b"historyPropagationScope", "input", b"input", "name", b"name", "router", b"router", "taskExecutionId", b"taskExecutionId", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__historyPropagationScope: _TypeAlias = _typing.Literal["historyPropagationScope"] # noqa: Y015 + _WhichOneofArgType__historyPropagationScope: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope"] # noqa: Y015 _WhichOneofReturnType__router: _TypeAlias = _typing.Literal["router"] # noqa: Y015 _WhichOneofArgType__router: _TypeAlias = _typing.Literal["_router", b"_router"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__historyPropagationScope) -> _WhichOneofReturnType__historyPropagationScope | None: ... + @_typing.overload def WhichOneof(self, oneof_group: _WhichOneofArgType__router) -> _WhichOneofReturnType__router | None: ... Global___ScheduleTaskAction: _TypeAlias = ScheduleTaskAction # noqa: Y015 @@ -69,8 +78,11 @@ class CreateChildWorkflowAction(_message.Message): VERSION_FIELD_NUMBER: _builtins.int INPUT_FIELD_NUMBER: _builtins.int ROUTER_FIELD_NUMBER: _builtins.int + HISTORYPROPAGATIONSCOPE_FIELD_NUMBER: _builtins.int instanceId: _builtins.str name: _builtins.str + historyPropagationScope: _orchestration_pb2.HistoryPropagationScope.ValueType + """History propagation scope. Absent/SCOPE_NONE = no propagation.""" @_builtins.property def version(self) -> _wrappers_pb2.StringValue: ... @_builtins.property @@ -85,17 +97,125 @@ class CreateChildWorkflowAction(_message.Message): version: _wrappers_pb2.StringValue | None = ..., input: _wrappers_pb2.StringValue | None = ..., router: _orchestration_pb2.TaskRouter | None = ..., + historyPropagationScope: _orchestration_pb2.HistoryPropagationScope.ValueType | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "input", b"input", "router", b"router", "version", b"version"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope", "_router", b"_router", "historyPropagationScope", b"historyPropagationScope", "input", b"input", "router", b"router", "version", b"version"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "input", b"input", "instanceId", b"instanceId", "name", b"name", "router", b"router", "version", b"version"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope", "_router", b"_router", "historyPropagationScope", b"historyPropagationScope", "input", b"input", "instanceId", b"instanceId", "name", b"name", "router", b"router", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__historyPropagationScope: _TypeAlias = _typing.Literal["historyPropagationScope"] # noqa: Y015 + _WhichOneofArgType__historyPropagationScope: _TypeAlias = _typing.Literal["_historyPropagationScope", b"_historyPropagationScope"] # noqa: Y015 _WhichOneofReturnType__router: _TypeAlias = _typing.Literal["router"] # noqa: Y015 _WhichOneofArgType__router: _TypeAlias = _typing.Literal["_router", b"_router"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__historyPropagationScope) -> _WhichOneofReturnType__historyPropagationScope | None: ... + @_typing.overload def WhichOneof(self, oneof_group: _WhichOneofArgType__router) -> _WhichOneofReturnType__router | None: ... Global___CreateChildWorkflowAction: _TypeAlias = CreateChildWorkflowAction # noqa: Y015 +@_typing.final +class CreateDetachedWorkflowAction(_message.Message): + """CreateDetachedWorkflowAction creates a new, detached workflow instance from + a running workflow. Mirrors the fields of CreateInstanceRequest (the client + scheduling API) so the runtime has all the information needed to schedule + the new instance directly from this action. The spawned workflow is fully + decoupled from the caller: no parent pointer is recorded on the new + workflow, no completion is awaited, and no failure propagation flows back. + The creation is recorded once in the caller's history as a + DetachedWorkflowInstanceCreatedEvent referencing the new instance ID. + """ + + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class TagsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str + def __init__( + self, + *, + key: _builtins.str = ..., + value: _builtins.str = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... + + INSTANCEID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + INPUT_FIELD_NUMBER: _builtins.int + SCHEDULEDSTARTTIMESTAMP_FIELD_NUMBER: _builtins.int + EXECUTIONID_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + PARENTTRACECONTEXT_FIELD_NUMBER: _builtins.int + ROUTER_FIELD_NUMBER: _builtins.int + instanceId: _builtins.str + """instanceId is the ID assigned to the new workflow. It is mandatory: + implementors must set a stable, deterministic ID so that on replay the + call resolves to the same DetachedWorkflowInstanceCreatedEvent in + history. + """ + name: _builtins.str + """name of the workflow to schedule. Mandatory.""" + @_builtins.property + def version(self) -> _wrappers_pb2.StringValue: + """The remaining fields mirror the optional inputs of + CreateInstanceRequest. Wrapper types (StringValue) carry presence via + the wrapper; bare message fields are explicitly marked optional. + """ + + @_builtins.property + def input(self) -> _wrappers_pb2.StringValue: ... + @_builtins.property + def scheduledStartTimestamp(self) -> _timestamp_pb2.Timestamp: ... + @_builtins.property + def executionId(self) -> _wrappers_pb2.StringValue: ... + @_builtins.property + def tags(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... + @_builtins.property + def parentTraceContext(self) -> _orchestration_pb2.TraceContext: ... + @_builtins.property + def router(self) -> _orchestration_pb2.TaskRouter: ... + def __init__( + self, + *, + instanceId: _builtins.str = ..., + name: _builtins.str = ..., + version: _wrappers_pb2.StringValue | None = ..., + input: _wrappers_pb2.StringValue | None = ..., + scheduledStartTimestamp: _timestamp_pb2.Timestamp | None = ..., + executionId: _wrappers_pb2.StringValue | None = ..., + tags: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., + parentTraceContext: _orchestration_pb2.TraceContext | None = ..., + router: _orchestration_pb2.TaskRouter | None = ..., + ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["_parentTraceContext", b"_parentTraceContext", "_router", b"_router", "_scheduledStartTimestamp", b"_scheduledStartTimestamp", "executionId", b"executionId", "input", b"input", "parentTraceContext", b"parentTraceContext", "router", b"router", "scheduledStartTimestamp", b"scheduledStartTimestamp", "version", b"version"] # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["_parentTraceContext", b"_parentTraceContext", "_router", b"_router", "_scheduledStartTimestamp", b"_scheduledStartTimestamp", "executionId", b"executionId", "input", b"input", "instanceId", b"instanceId", "name", b"name", "parentTraceContext", b"parentTraceContext", "router", b"router", "scheduledStartTimestamp", b"scheduledStartTimestamp", "tags", b"tags", "version", b"version"] # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__parentTraceContext: _TypeAlias = _typing.Literal["parentTraceContext"] # noqa: Y015 + _WhichOneofArgType__parentTraceContext: _TypeAlias = _typing.Literal["_parentTraceContext", b"_parentTraceContext"] # noqa: Y015 + _WhichOneofReturnType__router: _TypeAlias = _typing.Literal["router"] # noqa: Y015 + _WhichOneofArgType__router: _TypeAlias = _typing.Literal["_router", b"_router"] # noqa: Y015 + _WhichOneofReturnType__scheduledStartTimestamp: _TypeAlias = _typing.Literal["scheduledStartTimestamp"] # noqa: Y015 + _WhichOneofArgType__scheduledStartTimestamp: _TypeAlias = _typing.Literal["_scheduledStartTimestamp", b"_scheduledStartTimestamp"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__parentTraceContext) -> _WhichOneofReturnType__parentTraceContext | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__router) -> _WhichOneofReturnType__router | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__scheduledStartTimestamp) -> _WhichOneofReturnType__scheduledStartTimestamp | None: ... + +Global___CreateDetachedWorkflowAction: _TypeAlias = CreateDetachedWorkflowAction # noqa: Y015 + @_typing.final class CreateTimerAction(_message.Message): DESCRIPTOR: _descriptor.Descriptor @@ -165,6 +285,7 @@ class SendEventAction(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data", "instance", b"instance", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SendEventAction: _TypeAlias = SendEventAction # noqa: Y015 @@ -203,6 +324,7 @@ class CompleteWorkflowAction(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["carryoverEvents", b"carryoverEvents", "details", b"details", "failureDetails", b"failureDetails", "newVersion", b"newVersion", "result", b"result", "workflowStatus", b"workflowStatus"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___CompleteWorkflowAction: _TypeAlias = CompleteWorkflowAction # noqa: Y015 @@ -228,6 +350,7 @@ class TerminateWorkflowAction(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instanceId", b"instanceId", "reason", b"reason", "recurse", b"recurse"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TerminateWorkflowAction: _TypeAlias = TerminateWorkflowAction # noqa: Y015 @@ -238,6 +361,11 @@ class WorkflowVersionNotAvailableAction(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___WorkflowVersionNotAvailableAction: _TypeAlias = WorkflowVersionNotAvailableAction # noqa: Y015 @@ -253,6 +381,7 @@ class WorkflowAction(_message.Message): COMPLETEWORKFLOW_FIELD_NUMBER: _builtins.int TERMINATEWORKFLOW_FIELD_NUMBER: _builtins.int WORKFLOWVERSIONNOTAVAILABLE_FIELD_NUMBER: _builtins.int + CREATEDETACHEDWORKFLOW_FIELD_NUMBER: _builtins.int ROUTER_FIELD_NUMBER: _builtins.int id: _builtins.int @_builtins.property @@ -270,6 +399,8 @@ class WorkflowAction(_message.Message): @_builtins.property def workflowVersionNotAvailable(self) -> Global___WorkflowVersionNotAvailableAction: ... @_builtins.property + def createDetachedWorkflow(self) -> Global___CreateDetachedWorkflowAction: ... + @_builtins.property def router(self) -> _orchestration_pb2.TaskRouter: ... def __init__( self, @@ -282,15 +413,16 @@ class WorkflowAction(_message.Message): completeWorkflow: Global___CompleteWorkflowAction | None = ..., terminateWorkflow: Global___TerminateWorkflowAction | None = ..., workflowVersionNotAvailable: Global___WorkflowVersionNotAvailableAction | None = ..., + createDetachedWorkflow: Global___CreateDetachedWorkflowAction | None = ..., router: _orchestration_pb2.TaskRouter | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "completeWorkflow", b"completeWorkflow", "createChildWorkflow", b"createChildWorkflow", "createTimer", b"createTimer", "router", b"router", "scheduleTask", b"scheduleTask", "sendEvent", b"sendEvent", "terminateWorkflow", b"terminateWorkflow", "workflowActionType", b"workflowActionType", "workflowVersionNotAvailable", b"workflowVersionNotAvailable"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "completeWorkflow", b"completeWorkflow", "createChildWorkflow", b"createChildWorkflow", "createDetachedWorkflow", b"createDetachedWorkflow", "createTimer", b"createTimer", "router", b"router", "scheduleTask", b"scheduleTask", "sendEvent", b"sendEvent", "terminateWorkflow", b"terminateWorkflow", "workflowActionType", b"workflowActionType", "workflowVersionNotAvailable", b"workflowVersionNotAvailable"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "completeWorkflow", b"completeWorkflow", "createChildWorkflow", b"createChildWorkflow", "createTimer", b"createTimer", "id", b"id", "router", b"router", "scheduleTask", b"scheduleTask", "sendEvent", b"sendEvent", "terminateWorkflow", b"terminateWorkflow", "workflowActionType", b"workflowActionType", "workflowVersionNotAvailable", b"workflowVersionNotAvailable"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "completeWorkflow", b"completeWorkflow", "createChildWorkflow", b"createChildWorkflow", "createDetachedWorkflow", b"createDetachedWorkflow", "createTimer", b"createTimer", "id", b"id", "router", b"router", "scheduleTask", b"scheduleTask", "sendEvent", b"sendEvent", "terminateWorkflow", b"terminateWorkflow", "workflowActionType", b"workflowActionType", "workflowVersionNotAvailable", b"workflowVersionNotAvailable"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... _WhichOneofReturnType__router: _TypeAlias = _typing.Literal["router"] # noqa: Y015 _WhichOneofArgType__router: _TypeAlias = _typing.Literal["_router", b"_router"] # noqa: Y015 - _WhichOneofReturnType_workflowActionType: _TypeAlias = _typing.Literal["scheduleTask", "createChildWorkflow", "createTimer", "sendEvent", "completeWorkflow", "terminateWorkflow", "workflowVersionNotAvailable"] # noqa: Y015 + _WhichOneofReturnType_workflowActionType: _TypeAlias = _typing.Literal["scheduleTask", "createChildWorkflow", "createTimer", "sendEvent", "completeWorkflow", "terminateWorkflow", "workflowVersionNotAvailable", "createDetachedWorkflow"] # noqa: Y015 _WhichOneofArgType_workflowActionType: _TypeAlias = _typing.Literal["workflowActionType", b"workflowActionType"] # noqa: Y015 @_typing.overload def WhichOneof(self, oneof_group: _WhichOneofArgType__router) -> _WhichOneofReturnType__router | None: ... diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2_grpc.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2_grpc.py index 2445897f9..042994a2a 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2_grpc.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_actions_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2.py index a3255f819..e9c39e64d 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2.py @@ -30,7 +30,7 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aorchestrator_service.proto\x1a\x13orchestration.proto\x1a\x14history_events.proto\x1a\x1aorchestrator_actions.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xfc\x01\n\x0f\x41\x63tivityRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\x07version\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x10workflowInstance\x18\x04 \x01(\x0b\x32\x11.WorkflowInstance\x12\x0e\n\x06taskId\x18\x05 \x01(\x05\x12)\n\x12parentTraceContext\x18\x06 \x01(\x0b\x32\r.TraceContext\x12\x17\n\x0ftaskExecutionId\x18\x07 \x01(\t\"\xaa\x01\n\x10\x41\x63tivityResponse\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0e\n\x06taskId\x18\x02 \x01(\x05\x12,\n\x06result\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x0e\x66\x61ilureDetails\x18\x04 \x01(\x0b\x32\x13.TaskFailureDetails\x12\x17\n\x0f\x63ompletionToken\x18\x05 \x01(\t\"\xf2\x01\n\x0fWorkflowRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x31\n\x0b\x65xecutionId\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12!\n\npastEvents\x18\x03 \x03(\x0b\x32\r.HistoryEvent\x12 \n\tnewEvents\x18\x04 \x03(\x0b\x32\r.HistoryEvent\x12 \n\x18requiresHistoryStreaming\x18\x06 \x01(\x08\x12 \n\x06router\x18\x07 \x01(\x0b\x32\x0b.TaskRouterH\x00\x88\x01\x01\x42\t\n\x07_routerJ\x04\x08\x05\x10\x06\"\x82\x02\n\x10WorkflowResponse\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12 \n\x07\x61\x63tions\x18\x02 \x03(\x0b\x32\x0f.WorkflowAction\x12\x32\n\x0c\x63ustomStatus\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x17\n\x0f\x63ompletionToken\x18\x04 \x01(\t\x12\x37\n\x12numEventsProcessed\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12&\n\x07version\x18\x06 \x01(\x0b\x32\x10.WorkflowVersionH\x00\x88\x01\x01\x42\n\n\x08_version\"\xaf\x03\n\x15\x43reateInstanceRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\x07version\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12;\n\x17scheduledStartTimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\x0b\x65xecutionId\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x04tags\x18\x08 \x03(\x0b\x32 .CreateInstanceRequest.TagsEntry\x12)\n\x12parentTraceContext\x18\t \x01(\x0b\x32\r.TraceContext\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x06\x10\x07R\x1aorchestrationIdReusePolicy\",\n\x16\x43reateInstanceResponse\x12\x12\n\ninstanceId\x18\x01 \x01(\t\"E\n\x12GetInstanceRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x1b\n\x13getInputsAndOutputs\x18\x02 \x01(\x08\"L\n\x13GetInstanceResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\x12%\n\rworkflowState\x18\x02 \x01(\x0b\x32\x0e.WorkflowState\"b\n\x11RaiseEventRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x14\n\x12RaiseEventResponse\"g\n\x10TerminateRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12,\n\x06output\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x03 \x01(\x08\"\x13\n\x11TerminateResponse\"R\n\x0eSuspendRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12,\n\x06reason\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x11\n\x0fSuspendResponse\"Q\n\rResumeRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12,\n\x06reason\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x10\n\x0eResumeResponse\"\x9e\x01\n\x15PurgeInstancesRequest\x12\x14\n\ninstanceId\x18\x01 \x01(\tH\x00\x12\x33\n\x13purgeInstanceFilter\x18\x02 \x01(\x0b\x32\x14.PurgeInstanceFilterH\x00\x12\x11\n\trecursive\x18\x03 \x01(\x08\x12\x12\n\x05\x66orce\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\t\n\x07requestB\x08\n\x06_force\"\xaa\x01\n\x13PurgeInstanceFilter\x12\x33\n\x0f\x63reatedTimeFrom\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rcreatedTimeTo\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\rruntimeStatus\x18\x03 \x03(\x0e\x32\x14.OrchestrationStatus\"f\n\x16PurgeInstancesResponse\x12\x1c\n\x14\x64\x65letedInstanceCount\x18\x01 \x01(\x05\x12.\n\nisComplete\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"-\n\x13GetWorkItemsRequestJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\n\x10\x0b\"\x9a\x01\n\x08WorkItem\x12+\n\x0fworkflowRequest\x18\x01 \x01(\x0b\x32\x10.WorkflowRequestH\x00\x12+\n\x0f\x61\x63tivityRequest\x18\x02 \x01(\x0b\x32\x10.ActivityRequestH\x00\x12\x17\n\x0f\x63ompletionToken\x18\n \x01(\tB\t\n\x07requestJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\"\x16\n\x14\x43ompleteTaskResponse\"\x85\x02\n\x1dRerunWorkflowFromEventRequest\x12\x18\n\x10sourceInstanceID\x18\x01 \x01(\t\x12\x0f\n\x07\x65ventID\x18\x02 \x01(\r\x12\x1a\n\rnewInstanceID\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\x05input\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoverwriteInput\x18\x05 \x01(\x08\x12\'\n\x1anewChildWorkflowInstanceID\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_newInstanceIDB\x1d\n\x1b_newChildWorkflowInstanceID\"7\n\x1eRerunWorkflowFromEventResponse\x12\x15\n\rnewInstanceID\x18\x01 \x01(\t\"r\n\x16ListInstanceIDsRequest\x12\x1e\n\x11\x63ontinuationToken\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08pageSize\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_continuationTokenB\x0b\n\t_pageSize\"d\n\x17ListInstanceIDsResponse\x12\x13\n\x0binstanceIds\x18\x01 \x03(\t\x12\x1e\n\x11\x63ontinuationToken\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_continuationToken\"/\n\x19GetInstanceHistoryRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\";\n\x1aGetInstanceHistoryResponse\x12\x1d\n\x06\x65vents\x18\x01 \x03(\x0b\x32\r.HistoryEvent*^\n\x10WorkerCapability\x12!\n\x1dWORKER_CAPABILITY_UNSPECIFIED\x10\x00\x12\'\n#WORKER_CAPABILITY_HISTORY_STREAMING\x10\x01\x32\xe8\x08\n\x15TaskHubSidecarService\x12\x37\n\x05Hello\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12@\n\rStartInstance\x12\x16.CreateInstanceRequest\x1a\x17.CreateInstanceResponse\x12\x38\n\x0bGetInstance\x12\x13.GetInstanceRequest\x1a\x14.GetInstanceResponse\x12\x41\n\x14WaitForInstanceStart\x12\x13.GetInstanceRequest\x1a\x14.GetInstanceResponse\x12\x46\n\x19WaitForInstanceCompletion\x12\x13.GetInstanceRequest\x1a\x14.GetInstanceResponse\x12\x35\n\nRaiseEvent\x12\x12.RaiseEventRequest\x1a\x13.RaiseEventResponse\x12:\n\x11TerminateInstance\x12\x11.TerminateRequest\x1a\x12.TerminateResponse\x12\x34\n\x0fSuspendInstance\x12\x0f.SuspendRequest\x1a\x10.SuspendResponse\x12\x31\n\x0eResumeInstance\x12\x0e.ResumeRequest\x1a\x0f.ResumeResponse\x12\x41\n\x0ePurgeInstances\x12\x16.PurgeInstancesRequest\x1a\x17.PurgeInstancesResponse\x12\x31\n\x0cGetWorkItems\x12\x14.GetWorkItemsRequest\x1a\t.WorkItem0\x01\x12@\n\x14\x43ompleteActivityTask\x12\x11.ActivityResponse\x1a\x15.CompleteTaskResponse\x12I\n\x18\x43ompleteOrchestratorTask\x12\x11.WorkflowResponse\x1a\x15.CompleteTaskResponse\"\x03\x88\x02\x01\x12@\n\x14\x43ompleteWorkflowTask\x12\x11.WorkflowResponse\x1a\x15.CompleteTaskResponse\x12Y\n\x16RerunWorkflowFromEvent\x12\x1e.RerunWorkflowFromEventRequest\x1a\x1f.RerunWorkflowFromEventResponse\x12\x44\n\x0fListInstanceIDs\x12\x17.ListInstanceIDsRequest\x1a\x18.ListInstanceIDsResponse\x12M\n\x12GetInstanceHistory\x12\x1a.GetInstanceHistoryRequest\x1a\x1b.GetInstanceHistoryResponseBV\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aorchestrator_service.proto\x1a\x13orchestration.proto\x1a\x14history_events.proto\x1a\x1aorchestrator_actions.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xc6\x02\n\x0f\x41\x63tivityRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\x07version\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x10workflowInstance\x18\x04 \x01(\x0b\x32\x11.WorkflowInstance\x12\x0e\n\x06taskId\x18\x05 \x01(\x05\x12)\n\x12parentTraceContext\x18\x06 \x01(\x0b\x32\r.TraceContext\x12\x17\n\x0ftaskExecutionId\x18\x07 \x01(\t\x12\x32\n\x11propagatedHistory\x18\x08 \x01(\x0b\x32\x12.PropagatedHistoryH\x00\x88\x01\x01\x42\x14\n\x12_propagatedHistory\"\xaa\x01\n\x10\x41\x63tivityResponse\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0e\n\x06taskId\x18\x02 \x01(\x05\x12,\n\x06result\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x0e\x66\x61ilureDetails\x18\x04 \x01(\x0b\x32\x13.TaskFailureDetails\x12\x17\n\x0f\x63ompletionToken\x18\x05 \x01(\t\"\xbc\x02\n\x0fWorkflowRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x31\n\x0b\x65xecutionId\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12!\n\npastEvents\x18\x03 \x03(\x0b\x32\r.HistoryEvent\x12 \n\tnewEvents\x18\x04 \x03(\x0b\x32\r.HistoryEvent\x12 \n\x18requiresHistoryStreaming\x18\x06 \x01(\x08\x12 \n\x06router\x18\x07 \x01(\x0b\x32\x0b.TaskRouterH\x00\x88\x01\x01\x12\x32\n\x11propagatedHistory\x18\x08 \x01(\x0b\x32\x12.PropagatedHistoryH\x01\x88\x01\x01\x42\t\n\x07_routerB\x14\n\x12_propagatedHistoryJ\x04\x08\x05\x10\x06\"\x82\x02\n\x10WorkflowResponse\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12 \n\x07\x61\x63tions\x18\x02 \x03(\x0b\x32\x0f.WorkflowAction\x12\x32\n\x0c\x63ustomStatus\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x17\n\x0f\x63ompletionToken\x18\x04 \x01(\t\x12\x37\n\x12numEventsProcessed\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12&\n\x07version\x18\x06 \x01(\x0b\x32\x10.WorkflowVersionH\x00\x88\x01\x01\x42\n\n\x08_version\"\xaf\x03\n\x15\x43reateInstanceRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\x07version\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05input\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12;\n\x17scheduledStartTimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\x0b\x65xecutionId\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x04tags\x18\x08 \x03(\x0b\x32 .CreateInstanceRequest.TagsEntry\x12)\n\x12parentTraceContext\x18\t \x01(\x0b\x32\r.TraceContext\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x06\x10\x07R\x1aorchestrationIdReusePolicy\",\n\x16\x43reateInstanceResponse\x12\x12\n\ninstanceId\x18\x01 \x01(\t\"E\n\x12GetInstanceRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x1b\n\x13getInputsAndOutputs\x18\x02 \x01(\x08\"L\n\x13GetInstanceResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\x12%\n\rworkflowState\x18\x02 \x01(\x0b\x32\x0e.WorkflowState\"b\n\x11RaiseEventRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12+\n\x05input\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x14\n\x12RaiseEventResponse\"g\n\x10TerminateRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12,\n\x06output\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x03 \x01(\x08\"\x13\n\x11TerminateResponse\"R\n\x0eSuspendRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12,\n\x06reason\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x11\n\x0fSuspendResponse\"Q\n\rResumeRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12,\n\x06reason\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x10\n\x0eResumeResponse\"\x9e\x01\n\x15PurgeInstancesRequest\x12\x14\n\ninstanceId\x18\x01 \x01(\tH\x00\x12\x33\n\x13purgeInstanceFilter\x18\x02 \x01(\x0b\x32\x14.PurgeInstanceFilterH\x00\x12\x11\n\trecursive\x18\x03 \x01(\x08\x12\x12\n\x05\x66orce\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\t\n\x07requestB\x08\n\x06_force\"\xaa\x01\n\x13PurgeInstanceFilter\x12\x33\n\x0f\x63reatedTimeFrom\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rcreatedTimeTo\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\rruntimeStatus\x18\x03 \x03(\x0e\x32\x14.OrchestrationStatus\"f\n\x16PurgeInstancesResponse\x12\x1c\n\x14\x64\x65letedInstanceCount\x18\x01 \x01(\x05\x12.\n\nisComplete\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"-\n\x13GetWorkItemsRequestJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\n\x10\x0b\"\x9a\x01\n\x08WorkItem\x12+\n\x0fworkflowRequest\x18\x01 \x01(\x0b\x32\x10.WorkflowRequestH\x00\x12+\n\x0f\x61\x63tivityRequest\x18\x02 \x01(\x0b\x32\x10.ActivityRequestH\x00\x12\x17\n\x0f\x63ompletionToken\x18\n \x01(\tB\t\n\x07requestJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\"\x16\n\x14\x43ompleteTaskResponse\"\x85\x02\n\x1dRerunWorkflowFromEventRequest\x12\x18\n\x10sourceInstanceID\x18\x01 \x01(\t\x12\x0f\n\x07\x65ventID\x18\x02 \x01(\r\x12\x1a\n\rnewInstanceID\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\x05input\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoverwriteInput\x18\x05 \x01(\x08\x12\'\n\x1anewChildWorkflowInstanceID\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_newInstanceIDB\x1d\n\x1b_newChildWorkflowInstanceID\"7\n\x1eRerunWorkflowFromEventResponse\x12\x15\n\rnewInstanceID\x18\x01 \x01(\t\"r\n\x16ListInstanceIDsRequest\x12\x1e\n\x11\x63ontinuationToken\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08pageSize\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_continuationTokenB\x0b\n\t_pageSize\"d\n\x17ListInstanceIDsResponse\x12\x13\n\x0binstanceIds\x18\x01 \x03(\t\x12\x1e\n\x11\x63ontinuationToken\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_continuationToken\"/\n\x19GetInstanceHistoryRequest\x12\x12\n\ninstanceId\x18\x01 \x01(\t\";\n\x1aGetInstanceHistoryResponse\x12\x1d\n\x06\x65vents\x18\x01 \x03(\x0b\x32\r.HistoryEvent*^\n\x10WorkerCapability\x12!\n\x1dWORKER_CAPABILITY_UNSPECIFIED\x10\x00\x12\'\n#WORKER_CAPABILITY_HISTORY_STREAMING\x10\x01\x32\xe8\x08\n\x15TaskHubSidecarService\x12\x37\n\x05Hello\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12@\n\rStartInstance\x12\x16.CreateInstanceRequest\x1a\x17.CreateInstanceResponse\x12\x38\n\x0bGetInstance\x12\x13.GetInstanceRequest\x1a\x14.GetInstanceResponse\x12\x41\n\x14WaitForInstanceStart\x12\x13.GetInstanceRequest\x1a\x14.GetInstanceResponse\x12\x46\n\x19WaitForInstanceCompletion\x12\x13.GetInstanceRequest\x1a\x14.GetInstanceResponse\x12\x35\n\nRaiseEvent\x12\x12.RaiseEventRequest\x1a\x13.RaiseEventResponse\x12:\n\x11TerminateInstance\x12\x11.TerminateRequest\x1a\x12.TerminateResponse\x12\x34\n\x0fSuspendInstance\x12\x0f.SuspendRequest\x1a\x10.SuspendResponse\x12\x31\n\x0eResumeInstance\x12\x0e.ResumeRequest\x1a\x0f.ResumeResponse\x12\x41\n\x0ePurgeInstances\x12\x16.PurgeInstancesRequest\x1a\x17.PurgeInstancesResponse\x12\x31\n\x0cGetWorkItems\x12\x14.GetWorkItemsRequest\x1a\t.WorkItem0\x01\x12@\n\x14\x43ompleteActivityTask\x12\x11.ActivityResponse\x1a\x15.CompleteTaskResponse\x12I\n\x18\x43ompleteOrchestratorTask\x12\x11.WorkflowResponse\x1a\x15.CompleteTaskResponse\"\x03\x88\x02\x01\x12@\n\x14\x43ompleteWorkflowTask\x12\x11.WorkflowResponse\x1a\x15.CompleteTaskResponse\x12Y\n\x16RerunWorkflowFromEvent\x12\x1e.RerunWorkflowFromEventRequest\x1a\x1f.RerunWorkflowFromEventResponse\x12\x44\n\x0fListInstanceIDs\x12\x17.ListInstanceIDsRequest\x1a\x18.ListInstanceIDsResponse\x12M\n\x12GetInstanceHistory\x12\x1a.GetInstanceHistoryRequest\x1a\x1b.GetInstanceHistoryResponseBV\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -42,66 +42,66 @@ _globals['_CREATEINSTANCEREQUEST_TAGSENTRY']._serialized_options = b'8\001' _globals['_TASKHUBSIDECARSERVICE'].methods_by_name['CompleteOrchestratorTask']._loaded_options = None _globals['_TASKHUBSIDECARSERVICE'].methods_by_name['CompleteOrchestratorTask']._serialized_options = b'\210\002\001' - _globals['_WORKERCAPABILITY']._serialized_start=3525 - _globals['_WORKERCAPABILITY']._serialized_end=3619 + _globals['_WORKERCAPABILITY']._serialized_start=3673 + _globals['_WORKERCAPABILITY']._serialized_end=3767 _globals['_ACTIVITYREQUEST']._serialized_start=196 - _globals['_ACTIVITYREQUEST']._serialized_end=448 - _globals['_ACTIVITYRESPONSE']._serialized_start=451 - _globals['_ACTIVITYRESPONSE']._serialized_end=621 - _globals['_WORKFLOWREQUEST']._serialized_start=624 - _globals['_WORKFLOWREQUEST']._serialized_end=866 - _globals['_WORKFLOWRESPONSE']._serialized_start=869 - _globals['_WORKFLOWRESPONSE']._serialized_end=1127 - _globals['_CREATEINSTANCEREQUEST']._serialized_start=1130 - _globals['_CREATEINSTANCEREQUEST']._serialized_end=1561 - _globals['_CREATEINSTANCEREQUEST_TAGSENTRY']._serialized_start=1484 - _globals['_CREATEINSTANCEREQUEST_TAGSENTRY']._serialized_end=1527 - _globals['_CREATEINSTANCERESPONSE']._serialized_start=1563 - _globals['_CREATEINSTANCERESPONSE']._serialized_end=1607 - _globals['_GETINSTANCEREQUEST']._serialized_start=1609 - _globals['_GETINSTANCEREQUEST']._serialized_end=1678 - _globals['_GETINSTANCERESPONSE']._serialized_start=1680 - _globals['_GETINSTANCERESPONSE']._serialized_end=1756 - _globals['_RAISEEVENTREQUEST']._serialized_start=1758 - _globals['_RAISEEVENTREQUEST']._serialized_end=1856 - _globals['_RAISEEVENTRESPONSE']._serialized_start=1858 - _globals['_RAISEEVENTRESPONSE']._serialized_end=1878 - _globals['_TERMINATEREQUEST']._serialized_start=1880 - _globals['_TERMINATEREQUEST']._serialized_end=1983 - _globals['_TERMINATERESPONSE']._serialized_start=1985 - _globals['_TERMINATERESPONSE']._serialized_end=2004 - _globals['_SUSPENDREQUEST']._serialized_start=2006 - _globals['_SUSPENDREQUEST']._serialized_end=2088 - _globals['_SUSPENDRESPONSE']._serialized_start=2090 - _globals['_SUSPENDRESPONSE']._serialized_end=2107 - _globals['_RESUMEREQUEST']._serialized_start=2109 - _globals['_RESUMEREQUEST']._serialized_end=2190 - _globals['_RESUMERESPONSE']._serialized_start=2192 - _globals['_RESUMERESPONSE']._serialized_end=2208 - _globals['_PURGEINSTANCESREQUEST']._serialized_start=2211 - _globals['_PURGEINSTANCESREQUEST']._serialized_end=2369 - _globals['_PURGEINSTANCEFILTER']._serialized_start=2372 - _globals['_PURGEINSTANCEFILTER']._serialized_end=2542 - _globals['_PURGEINSTANCESRESPONSE']._serialized_start=2544 - _globals['_PURGEINSTANCESRESPONSE']._serialized_end=2646 - _globals['_GETWORKITEMSREQUEST']._serialized_start=2648 - _globals['_GETWORKITEMSREQUEST']._serialized_end=2693 - _globals['_WORKITEM']._serialized_start=2696 - _globals['_WORKITEM']._serialized_end=2850 - _globals['_COMPLETETASKRESPONSE']._serialized_start=2852 - _globals['_COMPLETETASKRESPONSE']._serialized_end=2874 - _globals['_RERUNWORKFLOWFROMEVENTREQUEST']._serialized_start=2877 - _globals['_RERUNWORKFLOWFROMEVENTREQUEST']._serialized_end=3138 - _globals['_RERUNWORKFLOWFROMEVENTRESPONSE']._serialized_start=3140 - _globals['_RERUNWORKFLOWFROMEVENTRESPONSE']._serialized_end=3195 - _globals['_LISTINSTANCEIDSREQUEST']._serialized_start=3197 - _globals['_LISTINSTANCEIDSREQUEST']._serialized_end=3311 - _globals['_LISTINSTANCEIDSRESPONSE']._serialized_start=3313 - _globals['_LISTINSTANCEIDSRESPONSE']._serialized_end=3413 - _globals['_GETINSTANCEHISTORYREQUEST']._serialized_start=3415 - _globals['_GETINSTANCEHISTORYREQUEST']._serialized_end=3462 - _globals['_GETINSTANCEHISTORYRESPONSE']._serialized_start=3464 - _globals['_GETINSTANCEHISTORYRESPONSE']._serialized_end=3523 - _globals['_TASKHUBSIDECARSERVICE']._serialized_start=3622 - _globals['_TASKHUBSIDECARSERVICE']._serialized_end=4750 + _globals['_ACTIVITYREQUEST']._serialized_end=522 + _globals['_ACTIVITYRESPONSE']._serialized_start=525 + _globals['_ACTIVITYRESPONSE']._serialized_end=695 + _globals['_WORKFLOWREQUEST']._serialized_start=698 + _globals['_WORKFLOWREQUEST']._serialized_end=1014 + _globals['_WORKFLOWRESPONSE']._serialized_start=1017 + _globals['_WORKFLOWRESPONSE']._serialized_end=1275 + _globals['_CREATEINSTANCEREQUEST']._serialized_start=1278 + _globals['_CREATEINSTANCEREQUEST']._serialized_end=1709 + _globals['_CREATEINSTANCEREQUEST_TAGSENTRY']._serialized_start=1632 + _globals['_CREATEINSTANCEREQUEST_TAGSENTRY']._serialized_end=1675 + _globals['_CREATEINSTANCERESPONSE']._serialized_start=1711 + _globals['_CREATEINSTANCERESPONSE']._serialized_end=1755 + _globals['_GETINSTANCEREQUEST']._serialized_start=1757 + _globals['_GETINSTANCEREQUEST']._serialized_end=1826 + _globals['_GETINSTANCERESPONSE']._serialized_start=1828 + _globals['_GETINSTANCERESPONSE']._serialized_end=1904 + _globals['_RAISEEVENTREQUEST']._serialized_start=1906 + _globals['_RAISEEVENTREQUEST']._serialized_end=2004 + _globals['_RAISEEVENTRESPONSE']._serialized_start=2006 + _globals['_RAISEEVENTRESPONSE']._serialized_end=2026 + _globals['_TERMINATEREQUEST']._serialized_start=2028 + _globals['_TERMINATEREQUEST']._serialized_end=2131 + _globals['_TERMINATERESPONSE']._serialized_start=2133 + _globals['_TERMINATERESPONSE']._serialized_end=2152 + _globals['_SUSPENDREQUEST']._serialized_start=2154 + _globals['_SUSPENDREQUEST']._serialized_end=2236 + _globals['_SUSPENDRESPONSE']._serialized_start=2238 + _globals['_SUSPENDRESPONSE']._serialized_end=2255 + _globals['_RESUMEREQUEST']._serialized_start=2257 + _globals['_RESUMEREQUEST']._serialized_end=2338 + _globals['_RESUMERESPONSE']._serialized_start=2340 + _globals['_RESUMERESPONSE']._serialized_end=2356 + _globals['_PURGEINSTANCESREQUEST']._serialized_start=2359 + _globals['_PURGEINSTANCESREQUEST']._serialized_end=2517 + _globals['_PURGEINSTANCEFILTER']._serialized_start=2520 + _globals['_PURGEINSTANCEFILTER']._serialized_end=2690 + _globals['_PURGEINSTANCESRESPONSE']._serialized_start=2692 + _globals['_PURGEINSTANCESRESPONSE']._serialized_end=2794 + _globals['_GETWORKITEMSREQUEST']._serialized_start=2796 + _globals['_GETWORKITEMSREQUEST']._serialized_end=2841 + _globals['_WORKITEM']._serialized_start=2844 + _globals['_WORKITEM']._serialized_end=2998 + _globals['_COMPLETETASKRESPONSE']._serialized_start=3000 + _globals['_COMPLETETASKRESPONSE']._serialized_end=3022 + _globals['_RERUNWORKFLOWFROMEVENTREQUEST']._serialized_start=3025 + _globals['_RERUNWORKFLOWFROMEVENTREQUEST']._serialized_end=3286 + _globals['_RERUNWORKFLOWFROMEVENTRESPONSE']._serialized_start=3288 + _globals['_RERUNWORKFLOWFROMEVENTRESPONSE']._serialized_end=3343 + _globals['_LISTINSTANCEIDSREQUEST']._serialized_start=3345 + _globals['_LISTINSTANCEIDSREQUEST']._serialized_end=3459 + _globals['_LISTINSTANCEIDSRESPONSE']._serialized_start=3461 + _globals['_LISTINSTANCEIDSRESPONSE']._serialized_end=3561 + _globals['_GETINSTANCEHISTORYREQUEST']._serialized_start=3563 + _globals['_GETINSTANCEHISTORYREQUEST']._serialized_end=3610 + _globals['_GETINSTANCEHISTORYRESPONSE']._serialized_start=3612 + _globals['_GETINSTANCEHISTORYRESPONSE']._serialized_end=3671 + _globals['_TASKHUBSIDECARSERVICE']._serialized_start=3770 + _globals['_TASKHUBSIDECARSERVICE']._serialized_end=4898 # @@protoc_insertion_point(module_scope) diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2.pyi b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2.pyi index 8786348eb..a75bb3d89 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2.pyi +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2.pyi @@ -19,10 +19,10 @@ from dapr.ext.workflow._durabletask.internal import orchestrator_actions_pb2 as import sys import typing as _typing -if sys.version_info >= (3, 10): - from typing import TypeAlias as _TypeAlias +if sys.version_info >= (3, 11): + from typing import TypeAlias as _TypeAlias, Never as _Never else: - from typing_extensions import TypeAlias as _TypeAlias + from typing_extensions import TypeAlias as _TypeAlias, Never as _Never DESCRIPTOR: _descriptor.FileDescriptor @@ -62,6 +62,7 @@ class ActivityRequest(_message.Message): TASKID_FIELD_NUMBER: _builtins.int PARENTTRACECONTEXT_FIELD_NUMBER: _builtins.int TASKEXECUTIONID_FIELD_NUMBER: _builtins.int + PROPAGATEDHISTORY_FIELD_NUMBER: _builtins.int name: _builtins.str taskId: _builtins.int taskExecutionId: _builtins.str @@ -73,6 +74,13 @@ class ActivityRequest(_message.Message): def workflowInstance(self) -> _orchestration_pb2.WorkflowInstance: ... @_builtins.property def parentTraceContext(self) -> _orchestration_pb2.TraceContext: ... + @_builtins.property + def propagatedHistory(self) -> _history_events_pb2.PropagatedHistory: + """Propagated history from the calling workflow. + Delivered via the work item stream to the SDK, so that the + activity function can access it via ctx. + """ + def __init__( self, *, @@ -83,11 +91,15 @@ class ActivityRequest(_message.Message): taskId: _builtins.int = ..., parentTraceContext: _orchestration_pb2.TraceContext | None = ..., taskExecutionId: _builtins.str = ..., + propagatedHistory: _history_events_pb2.PropagatedHistory | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["input", b"input", "parentTraceContext", b"parentTraceContext", "version", b"version", "workflowInstance", b"workflowInstance"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory", "input", b"input", "parentTraceContext", b"parentTraceContext", "propagatedHistory", b"propagatedHistory", "version", b"version", "workflowInstance", b"workflowInstance"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["input", b"input", "name", b"name", "parentTraceContext", b"parentTraceContext", "taskExecutionId", b"taskExecutionId", "taskId", b"taskId", "version", b"version", "workflowInstance", b"workflowInstance"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory", "input", b"input", "name", b"name", "parentTraceContext", b"parentTraceContext", "propagatedHistory", b"propagatedHistory", "taskExecutionId", b"taskExecutionId", "taskId", b"taskId", "version", b"version", "workflowInstance", b"workflowInstance"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__propagatedHistory: _TypeAlias = _typing.Literal["propagatedHistory"] # noqa: Y015 + _WhichOneofArgType__propagatedHistory: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType__propagatedHistory) -> _WhichOneofReturnType__propagatedHistory | None: ... Global___ActivityRequest: _TypeAlias = ActivityRequest # noqa: Y015 @@ -120,6 +132,7 @@ class ActivityResponse(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["completionToken", b"completionToken", "failureDetails", b"failureDetails", "instanceId", b"instanceId", "result", b"result", "taskId", b"taskId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ActivityResponse: _TypeAlias = ActivityResponse # noqa: Y015 @@ -133,6 +146,7 @@ class WorkflowRequest(_message.Message): NEWEVENTS_FIELD_NUMBER: _builtins.int REQUIRESHISTORYSTREAMING_FIELD_NUMBER: _builtins.int ROUTER_FIELD_NUMBER: _builtins.int + PROPAGATEDHISTORY_FIELD_NUMBER: _builtins.int instanceId: _builtins.str requiresHistoryStreaming: _builtins.bool @_builtins.property @@ -143,6 +157,13 @@ class WorkflowRequest(_message.Message): def newEvents(self) -> _containers.RepeatedCompositeFieldContainer[_history_events_pb2.HistoryEvent]: ... @_builtins.property def router(self) -> _orchestration_pb2.TaskRouter: ... + @_builtins.property + def propagatedHistory(self) -> _history_events_pb2.PropagatedHistory: + """Propagated history from a parent workflow. + Delivered via the work item stream to the SDK, so that the + workflow function can access it via ctx. + """ + def __init__( self, *, @@ -152,13 +173,19 @@ class WorkflowRequest(_message.Message): newEvents: _abc.Iterable[_history_events_pb2.HistoryEvent] | None = ..., requiresHistoryStreaming: _builtins.bool = ..., router: _orchestration_pb2.TaskRouter | None = ..., + propagatedHistory: _history_events_pb2.PropagatedHistory | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "executionId", b"executionId", "router", b"router"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory", "_router", b"_router", "executionId", b"executionId", "propagatedHistory", b"propagatedHistory", "router", b"router"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["_router", b"_router", "executionId", b"executionId", "instanceId", b"instanceId", "newEvents", b"newEvents", "pastEvents", b"pastEvents", "requiresHistoryStreaming", b"requiresHistoryStreaming", "router", b"router"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory", "_router", b"_router", "executionId", b"executionId", "instanceId", b"instanceId", "newEvents", b"newEvents", "pastEvents", b"pastEvents", "propagatedHistory", b"propagatedHistory", "requiresHistoryStreaming", b"requiresHistoryStreaming", "router", b"router"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__propagatedHistory: _TypeAlias = _typing.Literal["propagatedHistory"] # noqa: Y015 + _WhichOneofArgType__propagatedHistory: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory"] # noqa: Y015 _WhichOneofReturnType__router: _TypeAlias = _typing.Literal["router"] # noqa: Y015 _WhichOneofArgType__router: _TypeAlias = _typing.Literal["_router", b"_router"] # noqa: Y015 + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__propagatedHistory) -> _WhichOneofReturnType__propagatedHistory | None: ... + @_typing.overload def WhichOneof(self, oneof_group: _WhichOneofArgType__router) -> _WhichOneofReturnType__router | None: ... Global___WorkflowRequest: _TypeAlias = WorkflowRequest # noqa: Y015 @@ -225,8 +252,11 @@ class CreateInstanceRequest(_message.Message): key: _builtins.str = ..., value: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... INSTANCEID_FIELD_NUMBER: _builtins.int NAME_FIELD_NUMBER: _builtins.int @@ -266,6 +296,7 @@ class CreateInstanceRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["executionId", b"executionId", "input", b"input", "instanceId", b"instanceId", "name", b"name", "parentTraceContext", b"parentTraceContext", "scheduledStartTimestamp", b"scheduledStartTimestamp", "tags", b"tags", "version", b"version"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___CreateInstanceRequest: _TypeAlias = CreateInstanceRequest # noqa: Y015 @@ -280,8 +311,11 @@ class CreateInstanceResponse(_message.Message): *, instanceId: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instanceId", b"instanceId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___CreateInstanceResponse: _TypeAlias = CreateInstanceResponse # noqa: Y015 @@ -299,8 +333,11 @@ class GetInstanceRequest(_message.Message): instanceId: _builtins.str = ..., getInputsAndOutputs: _builtins.bool = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["getInputsAndOutputs", b"getInputsAndOutputs", "instanceId", b"instanceId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetInstanceRequest: _TypeAlias = GetInstanceRequest # noqa: Y015 @@ -323,6 +360,7 @@ class GetInstanceResponse(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["exists", b"exists", "workflowState", b"workflowState"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetInstanceResponse: _TypeAlias = GetInstanceResponse # noqa: Y015 @@ -348,6 +386,7 @@ class RaiseEventRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["input", b"input", "instanceId", b"instanceId", "name", b"name"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___RaiseEventRequest: _TypeAlias = RaiseEventRequest # noqa: Y015 @@ -360,6 +399,11 @@ class RaiseEventResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___RaiseEventResponse: _TypeAlias = RaiseEventResponse # noqa: Y015 @@ -385,6 +429,7 @@ class TerminateRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instanceId", b"instanceId", "output", b"output", "recursive", b"recursive"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TerminateRequest: _TypeAlias = TerminateRequest # noqa: Y015 @@ -397,6 +442,11 @@ class TerminateResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___TerminateResponse: _TypeAlias = TerminateResponse # noqa: Y015 @@ -419,6 +469,7 @@ class SuspendRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instanceId", b"instanceId", "reason", b"reason"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SuspendRequest: _TypeAlias = SuspendRequest # noqa: Y015 @@ -431,6 +482,11 @@ class SuspendResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___SuspendResponse: _TypeAlias = SuspendResponse # noqa: Y015 @@ -453,6 +509,7 @@ class ResumeRequest(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instanceId", b"instanceId", "reason", b"reason"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ResumeRequest: _TypeAlias = ResumeRequest # noqa: Y015 @@ -465,6 +522,11 @@ class ResumeResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___ResumeResponse: _TypeAlias = ResumeResponse # noqa: Y015 @@ -538,6 +600,7 @@ class PurgeInstanceFilter(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["createdTimeFrom", b"createdTimeFrom", "createdTimeTo", b"createdTimeTo", "runtimeStatus", b"runtimeStatus"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___PurgeInstanceFilter: _TypeAlias = PurgeInstanceFilter # noqa: Y015 @@ -560,6 +623,7 @@ class PurgeInstancesResponse(_message.Message): def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["deletedInstanceCount", b"deletedInstanceCount", "isComplete", b"isComplete"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___PurgeInstancesResponse: _TypeAlias = PurgeInstancesResponse # noqa: Y015 @@ -570,6 +634,11 @@ class GetWorkItemsRequest(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetWorkItemsRequest: _TypeAlias = GetWorkItemsRequest # noqa: Y015 @@ -611,6 +680,11 @@ class CompleteTaskResponse(_message.Message): def __init__( self, ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _Never # noqa: Y015 + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___CompleteTaskResponse: _TypeAlias = CompleteTaskResponse # noqa: Y015 @@ -695,8 +769,11 @@ class RerunWorkflowFromEventResponse(_message.Message): *, newInstanceID: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["newInstanceID", b"newInstanceID"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___RerunWorkflowFromEventResponse: _TypeAlias = RerunWorkflowFromEventResponse # noqa: Y015 @@ -785,8 +862,11 @@ class GetInstanceHistoryRequest(_message.Message): *, instanceId: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["instanceId", b"instanceId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetInstanceHistoryRequest: _TypeAlias = GetInstanceHistoryRequest # noqa: Y015 @@ -804,7 +884,10 @@ class GetInstanceHistoryResponse(_message.Message): *, events: _abc.Iterable[_history_events_pb2.HistoryEvent] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _Never # noqa: Y015 + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... _ClearFieldArgType: _TypeAlias = _typing.Literal["events", b"events"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def WhichOneof(self, oneof_group: _Never) -> None: ... Global___GetInstanceHistoryResponse: _TypeAlias = GetInstanceHistoryResponse # noqa: Y015 diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2_grpc.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2_grpc.py index 85712b33c..39de6a5cf 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2_grpc.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/orchestrator_service_pb2_grpc.py @@ -6,7 +6,7 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 from dapr.ext.workflow._durabletask.internal import orchestrator_service_pb2 as orchestrator__service__pb2 -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2.py index 4e1561f4e..645e902d6 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2.py @@ -28,7 +28,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13runtime_state.proto\x12\x1d\x64urabletask.protos.backend.v1\x1a\x13orchestration.proto\x1a\x14history_events.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"_\n\x13RuntimeStateStalled\x12\x1e\n\x06reason\x18\x01 \x01(\x0e\x32\x0e.StalledReason\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\xbc\x05\n\x14WorkflowRuntimeState\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12 \n\tnewEvents\x18\x02 \x03(\x0b\x32\r.HistoryEvent\x12 \n\toldEvents\x18\x03 \x03(\x0b\x32\r.HistoryEvent\x12#\n\x0cpendingTasks\x18\x04 \x03(\x0b\x32\r.HistoryEvent\x12$\n\rpendingTimers\x18\x05 \x03(\x0b\x32\r.HistoryEvent\x12S\n\x0fpendingMessages\x18\x06 \x03(\x0b\x32:.durabletask.protos.backend.v1.WorkflowRuntimeStateMessage\x12*\n\nstartEvent\x18\x07 \x01(\x0b\x32\x16.ExecutionStartedEvent\x12\x30\n\x0e\x63ompletedEvent\x18\x08 \x01(\x0b\x32\x18.ExecutionCompletedEvent\x12/\n\x0b\x63reatedTime\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0flastUpdatedTime\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rcompletedTime\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x16\n\x0e\x63ontinuedAsNew\x18\x0c \x01(\x08\x12\x13\n\x0bisSuspended\x18\r \x01(\x08\x12\x32\n\x0c\x63ustomStatus\x18\x0e \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12H\n\x07stalled\x18\x0f \x01(\x0b\x32\x32.durabletask.protos.backend.v1.RuntimeStateStalledH\x00\x88\x01\x01\x42\n\n\x08_stalled\"\\\n\x1bWorkflowRuntimeStateMessage\x12#\n\x0chistoryEvent\x18\x01 \x01(\x0b\x32\r.HistoryEvent\x12\x18\n\x10targetInstanceId\x18\x02 \x01(\tBV\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13runtime_state.proto\x12\x1d\x64urabletask.protos.backend.v1\x1a\x13orchestration.proto\x1a\x14history_events.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"_\n\x13RuntimeStateStalled\x12\x1e\n\x06reason\x18\x01 \x01(\x0e\x32\x0e.StalledReason\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\xbc\x05\n\x14WorkflowRuntimeState\x12\x12\n\ninstanceId\x18\x01 \x01(\t\x12 \n\tnewEvents\x18\x02 \x03(\x0b\x32\r.HistoryEvent\x12 \n\toldEvents\x18\x03 \x03(\x0b\x32\r.HistoryEvent\x12#\n\x0cpendingTasks\x18\x04 \x03(\x0b\x32\r.HistoryEvent\x12$\n\rpendingTimers\x18\x05 \x03(\x0b\x32\r.HistoryEvent\x12S\n\x0fpendingMessages\x18\x06 \x03(\x0b\x32:.durabletask.protos.backend.v1.WorkflowRuntimeStateMessage\x12*\n\nstartEvent\x18\x07 \x01(\x0b\x32\x16.ExecutionStartedEvent\x12\x30\n\x0e\x63ompletedEvent\x18\x08 \x01(\x0b\x32\x18.ExecutionCompletedEvent\x12/\n\x0b\x63reatedTime\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0flastUpdatedTime\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rcompletedTime\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x16\n\x0e\x63ontinuedAsNew\x18\x0c \x01(\x08\x12\x13\n\x0bisSuspended\x18\r \x01(\x08\x12\x32\n\x0c\x63ustomStatus\x18\x0e \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12H\n\x07stalled\x18\x0f \x01(\x0b\x32\x32.durabletask.protos.backend.v1.RuntimeStateStalledH\x00\x88\x01\x01\x42\n\n\x08_stalled\"\xa6\x01\n\x1bWorkflowRuntimeStateMessage\x12#\n\x0chistoryEvent\x18\x01 \x01(\x0b\x32\r.HistoryEvent\x12\x18\n\x10targetInstanceId\x18\x02 \x01(\t\x12\x32\n\x11propagatedHistory\x18\x03 \x01(\x0b\x32\x12.PropagatedHistoryH\x00\x88\x01\x01\x42\x14\n\x12_propagatedHistoryBV\n+io.dapr.durabletask.implementation.protobufZ\x0b/api/protos\xaa\x02\x19\x44\x61pr.DurableTask.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,6 +40,6 @@ _globals['_RUNTIMESTATESTALLED']._serialized_end=257 _globals['_WORKFLOWRUNTIMESTATE']._serialized_start=260 _globals['_WORKFLOWRUNTIMESTATE']._serialized_end=960 - _globals['_WORKFLOWRUNTIMESTATEMESSAGE']._serialized_start=962 - _globals['_WORKFLOWRUNTIMESTATEMESSAGE']._serialized_end=1054 + _globals['_WORKFLOWRUNTIMESTATEMESSAGE']._serialized_start=963 + _globals['_WORKFLOWRUNTIMESTATEMESSAGE']._serialized_end=1129 # @@protoc_insertion_point(module_scope) diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2.pyi b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2.pyi index fd0b75f80..6f41ceee6 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2.pyi +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2.pyi @@ -142,18 +142,31 @@ class WorkflowRuntimeStateMessage(_message.Message): HISTORYEVENT_FIELD_NUMBER: _builtins.int TARGETINSTANCEID_FIELD_NUMBER: _builtins.int + PROPAGATEDHISTORY_FIELD_NUMBER: _builtins.int targetInstanceId: _builtins.str @_builtins.property def historyEvent(self) -> _history_events_pb2.HistoryEvent: ... + @_builtins.property + def propagatedHistory(self) -> _history_events_pb2.PropagatedHistory: + """Propagated history to deliver to the child workflow. + This is a transport field used when creating child workflows with + history propagation enabled. It is NOT stored as part of any + workflow's history events. + """ + def __init__( self, *, historyEvent: _history_events_pb2.HistoryEvent | None = ..., targetInstanceId: _builtins.str = ..., + propagatedHistory: _history_events_pb2.PropagatedHistory | None = ..., ) -> None: ... - _HasFieldArgType: _TypeAlias = _typing.Literal["historyEvent", b"historyEvent"] # noqa: Y015 + _HasFieldArgType: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory", "historyEvent", b"historyEvent", "propagatedHistory", b"propagatedHistory"] # noqa: Y015 def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal["historyEvent", b"historyEvent", "targetInstanceId", b"targetInstanceId"] # noqa: Y015 + _ClearFieldArgType: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory", "historyEvent", b"historyEvent", "propagatedHistory", b"propagatedHistory", "targetInstanceId", b"targetInstanceId"] # noqa: Y015 def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__propagatedHistory: _TypeAlias = _typing.Literal["propagatedHistory"] # noqa: Y015 + _WhichOneofArgType__propagatedHistory: _TypeAlias = _typing.Literal["_propagatedHistory", b"_propagatedHistory"] # noqa: Y015 + def WhichOneof(self, oneof_group: _WhichOneofArgType__propagatedHistory) -> _WhichOneofReturnType__propagatedHistory | None: ... Global___WorkflowRuntimeStateMessage: _TypeAlias = WorkflowRuntimeStateMessage # noqa: Y015 diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2_grpc.py b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2_grpc.py index bb1e985eb..56526119e 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2_grpc.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/_durabletask/internal/runtime_state_pb2_grpc.py @@ -4,7 +4,7 @@ import warnings -GRPC_GENERATED_VERSION = '1.76.0' +GRPC_GENERATED_VERSION = '1.80.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/aio/__init__.py b/ext/dapr-ext-workflow/dapr/ext/workflow/aio/__init__.py index ceb8672be..abc8af2a5 100644 --- a/ext/dapr-ext-workflow/dapr/ext/workflow/aio/__init__.py +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/aio/__init__.py @@ -13,8 +13,14 @@ limitations under the License. """ +# Re-export MCPToolDef so async users don't need to import from the sync module. +from dapr.ext.workflow.mcp import MCPToolDef + from .dapr_workflow_client import DaprWorkflowClient +from .mcp import DaprMCPClient __all__ = [ 'DaprWorkflowClient', + 'DaprMCPClient', + 'MCPToolDef', ] diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/aio/mcp.py b/ext/dapr-ext-workflow/dapr/ext/workflow/aio/mcp.py new file mode 100644 index 000000000..7d98f3b8a --- /dev/null +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/aio/mcp.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- + +# Copyright 2026 The Dapr Authors +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Async variant of :class:`~dapr.ext.workflow.mcp.DaprMCPClient`.""" + +from __future__ import annotations + +import logging +import uuid +from typing import Optional, Set + +from dapr.ext.workflow.aio.dapr_workflow_client import DaprWorkflowClient +from dapr.ext.workflow.mcp import _MCP_METHOD_LIST_TOOLS, MCP_WORKFLOW_PREFIX, _DaprMCPClientBase +from dapr.ext.workflow.workflow_state import WorkflowStatus + +logger = logging.getLogger(__name__) + + +class DaprMCPClient(_DaprMCPClientBase): + """Async framework-agnostic client for discovering MCP tools via Dapr workflows. + + This is the async counterpart of :class:`dapr.ext.workflow.mcp.DaprMCPClient`. + All methods that interact with the Dapr sidecar are ``async``. + + Args: + timeout_in_seconds: Maximum seconds to wait for each ``ListTools`` + workflow to complete. + allowed_tools: Optional set of tool names to keep. + wf_client: Optional pre-configured async :class:`DaprWorkflowClient`. + + Example:: + + from dapr.ext.workflow.aio import DaprMCPClient + + client = DaprMCPClient() + await client.connect("weather") + tools = client.get_all_tools() + """ + + def __init__( + self, + *, + timeout_in_seconds: int = 60, + allowed_tools: Optional[Set[str]] = None, + wf_client: Optional[DaprWorkflowClient] = None, + ) -> None: + super().__init__( + timeout_in_seconds=timeout_in_seconds, + allowed_tools=allowed_tools, + ) + self._wf_client = wf_client or DaprWorkflowClient() + + async def connect(self, mcpserver_name: str) -> None: + """Discover tools from a Dapr MCPServer resource. + + Schedules ``dapr.internal.mcp..ListTools``, awaits workflow + completion, and caches the resulting :class:`MCPToolDef` list. + + Args: + mcpserver_name: Name of the ``MCPServer`` Dapr resource (must + match the ``metadata.name`` in the MCPServer YAML). + + Raises: + RuntimeError: If the workflow times out or ends with a non-COMPLETED + status. + ValueError: If *mcpserver_name* is empty. + """ + if not mcpserver_name or not mcpserver_name.strip(): + raise ValueError('mcpserver_name must be a non-empty string') + + instance_id = str(uuid.uuid4()) + # TODO(@sicoyle): reminder to add a func like I have in durabletask-go to use for here instead of building like this! + workflow_name = f'{MCP_WORKFLOW_PREFIX}{mcpserver_name}{_MCP_METHOD_LIST_TOOLS}' + + logger.debug('Scheduling %s (instance=%s)', workflow_name, instance_id) + + await self._wf_client.schedule_new_workflow( + workflow=workflow_name, + input={'mcpServerName': mcpserver_name}, + instance_id=instance_id, + ) + + state = await self._wf_client.wait_for_workflow_completion( + instance_id=instance_id, + timeout_in_seconds=self._timeout, + fetch_payloads=True, + ) + + if state is None: + raise RuntimeError( + f"ListTools workflow for MCPServer '{mcpserver_name}' " + f'timed out after {self._timeout}s' + ) + + if state.runtime_status != WorkflowStatus.COMPLETED: + raise RuntimeError( + f"ListTools workflow for MCPServer '{mcpserver_name}' " + f'ended with status {state.runtime_status.name!r}: ' + f'{state.serialized_output or ""}' + ) + + self._process_list_tools_result(mcpserver_name, state.serialized_output) diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/mcp.py b/ext/dapr-ext-workflow/dapr/ext/workflow/mcp.py new file mode 100644 index 000000000..4c53006db --- /dev/null +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/mcp.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- + +# Copyright 2026 The Dapr Authors +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +DaprMCPClient — framework-agnostic client for discovering and cataloguing +MCP tools exposed by Dapr MCPServer resources. + +The client schedules Dapr's built-in workflow orchestrations +(``dapr.internal.mcp..ListTools`` / ``CallTool``) and returns +plain :class:`MCPToolDef` dataclasses that any agent framework can consume. + +Usage:: + + from dapr.ext.workflow import DaprMCPClient + + client = DaprMCPClient() + client.connect("weather") + for tool in client.get_all_tools(): + print(tool.name, tool.description) +""" + +from __future__ import annotations + +import json +import logging +import uuid +from dataclasses import dataclass, field +from typing import Any, Dict, List, Optional, Set + +from dapr.ext.workflow.dapr_workflow_client import DaprWorkflowClient +from dapr.ext.workflow.workflow_state import WorkflowStatus + +logger = logging.getLogger(__name__) + +# MCP workflow name constants — mirrors the proto enums in +# dapr/dapr/dapr/proto/workflows/v1/mcp.proto as plain strings. +MCP_WORKFLOW_PREFIX: str = 'dapr.internal.mcp.' +"""Prefix for all built-in MCP workflow orchestrations.""" + +_MCP_METHOD_LIST_TOOLS = '.ListTools' +_MCP_METHOD_CALL_TOOL = '.CallTool' + + +# TODO(@sicoyle): see if I can use the mcp pkg class instead for this? +@dataclass(frozen=True) +class MCPToolDef: + """Framework-agnostic description of a single MCP tool. + + Returned by :meth:`DaprMCPClient.get_all_tools` and consumed by + agent frameworks to build their own tool wrappers. + + Attributes: + name: The MCP tool name as returned by the server (e.g. ``get_weather``). + description: Human-readable description of what the tool does. + input_schema: JSON Schema dict describing the tool's input parameters. + server_name: Name of the Dapr ``MCPServer`` resource that hosts this tool. + call_tool_workflow: Pre-computed workflow name for invoking this tool + (e.g. ``dapr.internal.mcp.weather.CallTool.get_weather``). + """ + + name: str + description: str + input_schema: Dict[str, Any] = field(default_factory=dict) + server_name: str = '' + call_tool_workflow: str = '' + + +class _DaprMCPClientBase: + """Shared state and getters for sync/async MCP clients.""" + + def __init__( + self, + *, + timeout_in_seconds: int = 60, + allowed_tools: Optional[Set[str]] = None, + ) -> None: + if timeout_in_seconds <= 0: + raise ValueError('timeout_in_seconds must be a positive integer') + self._timeout = timeout_in_seconds + self._allowed_tools = allowed_tools + self._server_tools: Dict[str, List[MCPToolDef]] = {} + + def _process_list_tools_result( + self, mcpserver_name: str, serialized_output: Optional[str] + ) -> None: + """Parse a ListTools workflow output and cache the MCPToolDef list.""" + try: + result = json.loads(serialized_output) if serialized_output else {} + except json.JSONDecodeError as exc: + raise RuntimeError( + f"ListTools workflow for MCPServer '{mcpserver_name}' returned " + f'malformed JSON: {exc}' + ) from exc + + tools: List[MCPToolDef] = [] + for tool_def in result.get('tools', []): + name = tool_def.get('name', '') + if self._allowed_tools is not None and name not in self._allowed_tools: + logger.debug("Skipping tool '%s' (not in allowed_tools)", name) + continue + # Workflow name includes the tool name for per-tool observability: + # dapr.internal.mcp..CallTool. + call_tool_wf = f'{MCP_WORKFLOW_PREFIX}{mcpserver_name}{_MCP_METHOD_CALL_TOOL}.{name}' + tools.append( + MCPToolDef( + name=name, + description=tool_def.get('description', ''), + input_schema=tool_def.get('inputSchema') or {}, + server_name=mcpserver_name, + call_tool_workflow=call_tool_wf, + ) + ) + + self._server_tools[mcpserver_name] = tools + logger.info( + "Connected to MCPServer '%s': %d tool(s) loaded", + mcpserver_name, + len(tools), + ) + + def get_all_tools(self) -> List[MCPToolDef]: + """Return all cached tools from every connected MCPServer.""" + return [t for tools in self._server_tools.values() for t in tools] + + def get_server_tools(self, server_name: str) -> List[MCPToolDef]: + """Return cached tools for a specific MCPServer.""" + return list(self._server_tools.get(server_name, [])) + + def get_connected_servers(self) -> List[str]: + """Return the names of all MCPServers connected so far.""" + return list(self._server_tools.keys()) + + +class DaprMCPClient(_DaprMCPClientBase): + """Framework-agnostic client for discovering MCP tools via Dapr workflows. + + This client schedules Dapr's built-in workflow orchestrations + (``ListTools`` / ``CallTool``) via :class:`DaprWorkflowClient`. + It returns :class:`MCPToolDef` dataclasses — plain data objects + with no framework dependencies — that any agent framework can convert + to its own tool type. + + Args: + timeout_in_seconds: Maximum seconds to wait for each ``ListTools`` + workflow to complete. Defaults to 60. + allowed_tools: Optional set of tool names to keep. When provided, + only tools whose name appears in this set are included in the + catalogue. ``None`` (default) keeps all tools. + wf_client: Optional pre-configured :class:`DaprWorkflowClient`. + If omitted, a new client is created with default settings. + + Example:: + + client = DaprMCPClient() + client.connect("weather") + tools = client.get_all_tools() # List[MCPToolDef] + + # Each framework converts MCPToolDef to its own tool type: + for t in tools: + print(f"{t.name}: {t.call_tool_workflow}") + """ + + def __init__( + self, + *, + timeout_in_seconds: int = 60, + allowed_tools: Optional[Set[str]] = None, + wf_client: Optional[DaprWorkflowClient] = None, + ) -> None: + super().__init__( + timeout_in_seconds=timeout_in_seconds, + allowed_tools=allowed_tools, + ) + self._wf_client = wf_client or DaprWorkflowClient() + + # ------------------------------------------------------------------ + # Public API + # ------------------------------------------------------------------ + + def connect(self, mcpserver_name: str) -> None: + """Discover tools from a Dapr MCPServer resource. + + Schedules ``dapr.internal.mcp..ListTools``, blocks until the + workflow completes, and caches the resulting :class:`MCPToolDef` list. + + Args: + mcpserver_name: Name of the ``MCPServer`` Dapr resource (must + match the ``metadata.name`` in the MCPServer YAML). + + Raises: + RuntimeError: If the workflow times out or ends with a non-COMPLETED + status. + """ + if not mcpserver_name or not mcpserver_name.strip(): + raise ValueError('mcpserver_name must be a non-empty string') + + instance_id = str(uuid.uuid4()) + # TODO(@sicoyle): reminder to add a func like I have in durabletask-go to use for here instead of building like this! + workflow_name = f'{MCP_WORKFLOW_PREFIX}{mcpserver_name}{_MCP_METHOD_LIST_TOOLS}' + + logger.debug('Scheduling %s (instance=%s)', workflow_name, instance_id) + + self._wf_client.schedule_new_workflow( + workflow=workflow_name, + input={'mcpServerName': mcpserver_name}, + instance_id=instance_id, + ) + + state = self._wf_client.wait_for_workflow_completion( + instance_id=instance_id, + timeout_in_seconds=self._timeout, + fetch_payloads=True, + ) + + if state is None: + raise RuntimeError( + f"ListTools workflow for MCPServer '{mcpserver_name}' " + f'timed out after {self._timeout}s' + ) + + if state.runtime_status != WorkflowStatus.COMPLETED: + raise RuntimeError( + f"ListTools workflow for MCPServer '{mcpserver_name}' " + f'ended with status {state.runtime_status.name!r}: ' + f'{state.serialized_output or ""}' + ) + + self._process_list_tools_result(mcpserver_name, state.serialized_output) diff --git a/ext/dapr-ext-workflow/dapr/ext/workflow/mcp_schema.py b/ext/dapr-ext-workflow/dapr/ext/workflow/mcp_schema.py new file mode 100644 index 000000000..e8f4ac5c7 --- /dev/null +++ b/ext/dapr-ext-workflow/dapr/ext/workflow/mcp_schema.py @@ -0,0 +1,118 @@ +# -*- coding: utf-8 -*- + +# Copyright 2026 The Dapr Authors +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Utility for converting MCP JSON Schema definitions to Pydantic models.""" + +from __future__ import annotations + +import logging +from typing import Any, Dict, List, Optional, Type + +from pydantic import BaseModel, Field, create_model + +logger = logging.getLogger(__name__) + +# Mapping from JSON Schema types to Python types. +TYPE_MAPPING = { + 'string': str, + 'number': float, + 'integer': int, + 'boolean': bool, + 'object': dict, + 'array': list, + 'null': type(None), +} + + +# TODO(@sicoyle): see if I can remove this and use something from official modelcontextprotocol python-sdk instead??? +def create_pydantic_model_from_schema(schema: Dict[str, Any], model_name: str) -> Type[BaseModel]: + """Create a Pydantic model from a JSON Schema definition. + + This function converts a JSON Schema object (commonly used in MCP tool + definitions) to a Pydantic model that can be used for argument validation. + + Args: + schema: JSON Schema dictionary containing type information. + model_name: Name for the generated model class. + + Returns: + A dynamically created Pydantic model class. + + Raises: + ValueError: If the schema is invalid or cannot be converted. + """ + logger.debug("Creating Pydantic model '%s' from schema", model_name) + + try: + properties = schema.get('properties', {}) + required = set(schema.get('required', [])) + + # Handle schemas that wrap arguments in a 'kwargs' field. + # Some MCP tools use this pattern — unwrap to accept flat arguments. + if ( + len(properties) == 1 + and 'kwargs' in properties + and properties['kwargs'].get('type') == 'object' + and 'properties' in properties['kwargs'] + ): + logger.debug("Detected 'kwargs' wrapper in schema for '%s', unwrapping", model_name) + kwargs_schema = properties['kwargs'] + properties = kwargs_schema['properties'] + required = set(kwargs_schema.get('required', [])) + + fields: Dict[str, Any] = {} + + for field_name, field_props in properties.items(): + # Handle anyOf/oneOf for nullable/union fields. + if 'anyOf' in field_props or 'oneOf' in field_props: + variants = field_props.get('anyOf') or field_props.get('oneOf') + types = [v.get('type', 'string') for v in variants] + has_null = 'null' in types + non_null_variants = [v for v in variants if v.get('type') != 'null'] + if non_null_variants: + primary_type = non_null_variants[0].get('type', 'string') + field_type = TYPE_MAPPING.get(primary_type, str) + if primary_type == 'array' and 'items' in non_null_variants[0]: + item_type = non_null_variants[0]['items'].get('type', 'string') + field_type = List[TYPE_MAPPING.get(item_type, str)] + elif primary_type == 'object': + field_type = dict + else: + field_type = str + if has_null: + field_type = Optional[field_type] + else: + json_type = field_props.get('type', 'string') + field_type = TYPE_MAPPING.get(json_type, str) + if json_type == 'array' and 'items' in field_props: + item_type = field_props['items'].get('type', 'string') + field_type = List[TYPE_MAPPING.get(item_type, str)] + + if field_name in required: + default = ... + else: + default = None + if not (hasattr(field_type, '__origin__') and field_type.__origin__ is Optional): + field_type = Optional[field_type] + + field_description = field_props.get('description', '') + fields[field_name] = ( + field_type, + Field(default, description=field_description), + ) + + return create_model(model_name, **fields) + + except Exception as e: + logger.error('Failed to create model from schema: %s', e) + raise ValueError(f'Invalid schema: {e}') from e diff --git a/ext/dapr-ext-workflow/tests/test_mcp_client.py b/ext/dapr-ext-workflow/tests/test_mcp_client.py new file mode 100644 index 000000000..55378613f --- /dev/null +++ b/ext/dapr-ext-workflow/tests/test_mcp_client.py @@ -0,0 +1,362 @@ +# -*- coding: utf-8 -*- + +""" +Copyright 2026 The Dapr Authors +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +""" + +import json +import unittest +from datetime import datetime +from unittest.mock import MagicMock + +from dapr.ext.workflow._durabletask import client +from dapr.ext.workflow.mcp import MCP_WORKFLOW_PREFIX, DaprMCPClient, MCPToolDef +from dapr.ext.workflow.workflow_state import WorkflowState + + +def _make_completed_state(output_json: dict) -> WorkflowState: + """Create a WorkflowState that simulates a COMPLETED workflow.""" + inner = client.WorkflowState( + instance_id='test-id', + name='test-workflow', + runtime_status=client.OrchestrationStatus.COMPLETED, + created_at=datetime.now(), + last_updated_at=datetime.now(), + serialized_input=None, + serialized_output=json.dumps(output_json), + serialized_custom_status=None, + failure_details=None, + ) + return WorkflowState(inner) + + +def _make_failed_state() -> WorkflowState: + """Create a WorkflowState that simulates a FAILED workflow.""" + inner = client.WorkflowState( + instance_id='test-id', + name='test-workflow', + runtime_status=client.OrchestrationStatus.FAILED, + created_at=datetime.now(), + last_updated_at=datetime.now(), + serialized_input=None, + serialized_output='error details', + serialized_custom_status=None, + failure_details=None, + ) + return WorkflowState(inner) + + +SAMPLE_LIST_TOOLS_RESPONSE = { + 'tools': [ + { + 'name': 'get_weather', + 'description': 'Get current weather for a location.', + 'inputSchema': { + 'type': 'object', + 'properties': { + 'location': {'type': 'string', 'description': 'City name'}, + }, + 'required': ['location'], + }, + }, + { + 'name': 'get_forecast', + 'description': 'Get multi-day forecast.', + 'inputSchema': { + 'type': 'object', + 'properties': { + 'location': {'type': 'string'}, + 'days': {'type': 'integer'}, + }, + 'required': ['location'], + }, + }, + ] +} + + +class TestMCPToolDef(unittest.TestCase): + """Tests for the MCPToolDef dataclass.""" + + def test_frozen(self): + tool = MCPToolDef( + name='test', + description='desc', + input_schema={'type': 'object'}, + server_name='srv', + call_tool_workflow='dapr.internal.mcp.srv.CallTool', + ) + with self.assertRaises(AttributeError): + tool.name = 'changed' + + def test_defaults(self): + tool = MCPToolDef(name='test', description='desc') + self.assertEqual(tool.input_schema, {}) + self.assertEqual(tool.server_name, '') + self.assertEqual(tool.call_tool_workflow, '') + + +class TestDaprMCPClientConnect(unittest.TestCase): + """Tests for DaprMCPClient.connect().""" + + def _make_client(self, wf_client: MagicMock) -> DaprMCPClient: + return DaprMCPClient(timeout_in_seconds=30, wf_client=wf_client) + + def test_connect_schedules_correct_workflow(self): + """connect() should schedule dapr.internal.mcp..ListTools.""" + mock_wf = MagicMock() + mock_wf.schedule_new_workflow.return_value = 'inst-1' + mock_wf.wait_for_workflow_completion.return_value = _make_completed_state( + SAMPLE_LIST_TOOLS_RESPONSE + ) + + mcp_client = self._make_client(mock_wf) + mcp_client.connect('weather') + + mock_wf.schedule_new_workflow.assert_called_once() + call_kwargs = mock_wf.schedule_new_workflow.call_args + self.assertEqual( + call_kwargs.kwargs['workflow'], + 'dapr.internal.mcp.weather.ListTools', + ) + self.assertEqual( + call_kwargs.kwargs['input'], + {'mcpServerName': 'weather'}, + ) + + def test_connect_caches_tools(self): + """connect() should cache MCPToolDef objects.""" + mock_wf = MagicMock() + mock_wf.wait_for_workflow_completion.return_value = _make_completed_state( + SAMPLE_LIST_TOOLS_RESPONSE + ) + + mcp_client = self._make_client(mock_wf) + mcp_client.connect('weather') + + tools = mcp_client.get_all_tools() + self.assertEqual(len(tools), 2) + self.assertIsInstance(tools[0], MCPToolDef) + self.assertEqual(tools[0].name, 'get_weather') + self.assertEqual(tools[1].name, 'get_forecast') + + def test_connect_sets_server_name_and_workflow(self): + """Each MCPToolDef should have server_name and call_tool_workflow set.""" + mock_wf = MagicMock() + mock_wf.wait_for_workflow_completion.return_value = _make_completed_state( + SAMPLE_LIST_TOOLS_RESPONSE + ) + + mcp_client = self._make_client(mock_wf) + mcp_client.connect('weather') + + tool = mcp_client.get_all_tools()[0] + self.assertEqual(tool.server_name, 'weather') + self.assertEqual( + tool.call_tool_workflow, + 'dapr.internal.mcp.weather.CallTool.get_weather', + ) + + def test_connect_preserves_description_and_schema(self): + """MCPToolDef should carry the original description and inputSchema.""" + mock_wf = MagicMock() + mock_wf.wait_for_workflow_completion.return_value = _make_completed_state( + SAMPLE_LIST_TOOLS_RESPONSE + ) + + mcp_client = self._make_client(mock_wf) + mcp_client.connect('weather') + + tool = mcp_client.get_all_tools()[0] + self.assertEqual(tool.description, 'Get current weather for a location.') + self.assertIn('properties', tool.input_schema) + + def test_connect_timeout_raises(self): + """connect() should raise RuntimeError on timeout (None state).""" + mock_wf = MagicMock() + mock_wf.wait_for_workflow_completion.return_value = None + + mcp_client = self._make_client(mock_wf) + with self.assertRaises(RuntimeError) as ctx: + mcp_client.connect('weather') + self.assertIn('timed out', str(ctx.exception)) + + def test_connect_failed_status_raises(self): + """connect() should raise RuntimeError on FAILED workflow status.""" + mock_wf = MagicMock() + mock_wf.wait_for_workflow_completion.return_value = _make_failed_state() + + mcp_client = self._make_client(mock_wf) + with self.assertRaises(RuntimeError) as ctx: + mcp_client.connect('weather') + self.assertIn('FAILED', str(ctx.exception)) + + def test_connect_empty_tools(self): + """connect() should handle empty tools list gracefully.""" + mock_wf = MagicMock() + mock_wf.wait_for_workflow_completion.return_value = _make_completed_state({'tools': []}) + + mcp_client = self._make_client(mock_wf) + mcp_client.connect('empty-server') + + self.assertEqual(len(mcp_client.get_all_tools()), 0) + self.assertIn('empty-server', mcp_client.get_connected_servers()) + + +class TestDaprMCPClientFiltering(unittest.TestCase): + """Tests for allowed_tools filtering.""" + + def test_allowed_tools_filters(self): + """Only tools in allowed_tools should be kept.""" + mock_wf = MagicMock() + mock_wf.wait_for_workflow_completion.return_value = _make_completed_state( + SAMPLE_LIST_TOOLS_RESPONSE + ) + + mcp_client = DaprMCPClient( + allowed_tools={'get_weather'}, + wf_client=mock_wf, + ) + mcp_client.connect('weather') + + tools = mcp_client.get_all_tools() + self.assertEqual(len(tools), 1) + self.assertEqual(tools[0].name, 'get_weather') + + def test_allowed_tools_none_keeps_all(self): + """allowed_tools=None should keep all tools.""" + mock_wf = MagicMock() + mock_wf.wait_for_workflow_completion.return_value = _make_completed_state( + SAMPLE_LIST_TOOLS_RESPONSE + ) + + mcp_client = DaprMCPClient(allowed_tools=None, wf_client=mock_wf) + mcp_client.connect('weather') + + self.assertEqual(len(mcp_client.get_all_tools()), 2) + + +class TestDaprMCPClientMultiServer(unittest.TestCase): + """Tests for connecting to multiple MCPServer resources.""" + + def test_multiple_servers_accumulate(self): + """Tools from multiple connect() calls should accumulate.""" + mock_wf = MagicMock() + + weather_response = _make_completed_state(SAMPLE_LIST_TOOLS_RESPONSE) + local_response = _make_completed_state( + { + 'tools': [ + {'name': 'search_files', 'description': 'Search files.'}, + ] + } + ) + mock_wf.wait_for_workflow_completion.side_effect = [ + weather_response, + local_response, + ] + + mcp_client = DaprMCPClient(wf_client=mock_wf) + mcp_client.connect('weather') + mcp_client.connect('local-tools') + + self.assertEqual(len(mcp_client.get_all_tools()), 3) + self.assertEqual(len(mcp_client.get_server_tools('weather')), 2) + self.assertEqual(len(mcp_client.get_server_tools('local-tools')), 1) + self.assertEqual( + mcp_client.get_connected_servers(), + ['weather', 'local-tools'], + ) + + def test_get_server_tools_unknown_returns_empty(self): + """get_server_tools() for unknown server returns empty list.""" + mock_wf = MagicMock() + mcp_client = DaprMCPClient(wf_client=mock_wf) + self.assertEqual(mcp_client.get_server_tools('nonexistent'), []) + + +class TestDaprMCPClientValidation(unittest.TestCase): + """Tests for input validation.""" + + def test_init_zero_timeout_raises(self): + with self.assertRaises(ValueError): + DaprMCPClient(timeout_in_seconds=0, wf_client=MagicMock()) + + def test_init_negative_timeout_raises(self): + with self.assertRaises(ValueError): + DaprMCPClient(timeout_in_seconds=-1, wf_client=MagicMock()) + + def test_connect_empty_server_name_raises(self): + mcp_client = DaprMCPClient(wf_client=MagicMock()) + with self.assertRaises(ValueError): + mcp_client.connect('') + + def test_connect_whitespace_server_name_raises(self): + mcp_client = DaprMCPClient(wf_client=MagicMock()) + with self.assertRaises(ValueError): + mcp_client.connect(' ') + + def test_connect_malformed_json_raises(self): + """connect() should raise RuntimeError on malformed JSON output.""" + mock_wf = MagicMock() + inner = client.WorkflowState( + instance_id='test', + name='test', + runtime_status=client.OrchestrationStatus.COMPLETED, + created_at=datetime.now(), + last_updated_at=datetime.now(), + serialized_input=None, + serialized_output='not valid json{{{', + serialized_custom_status=None, + failure_details=None, + ) + mock_wf.wait_for_workflow_completion.return_value = WorkflowState(inner) + + mcp_client = DaprMCPClient(wf_client=mock_wf) + with self.assertRaises(RuntimeError) as ctx: + mcp_client.connect('weather') + self.assertIn('malformed JSON', str(ctx.exception)) + + def test_connect_missing_tool_name_uses_empty_string(self): + """Tools without a 'name' field should use empty string.""" + mock_wf = MagicMock() + mock_wf.wait_for_workflow_completion.return_value = _make_completed_state( + {'tools': [{'description': 'No name tool'}]} + ) + + mcp_client = DaprMCPClient(wf_client=mock_wf) + mcp_client.connect('server') + + tools = mcp_client.get_all_tools() + self.assertEqual(len(tools), 1) + self.assertEqual(tools[0].name, '') + + +class TestMCPWorkflowPrefix(unittest.TestCase): + """Tests for the workflow naming constant.""" + + def test_prefix_value(self): + self.assertEqual(MCP_WORKFLOW_PREFIX, 'dapr.internal.mcp.') + + def test_list_tools_name(self): + name = f'{MCP_WORKFLOW_PREFIX}weather.ListTools' + self.assertEqual(name, 'dapr.internal.mcp.weather.ListTools') + + def test_call_tool_name(self): + # CallTool workflows include the tool name as a suffix: + # dapr.internal.mcp..CallTool. + name = f'{MCP_WORKFLOW_PREFIX}weather.CallTool.get_forecast' + self.assertEqual(name, 'dapr.internal.mcp.weather.CallTool.get_forecast') + + +if __name__ == '__main__': + unittest.main() diff --git a/ext/dapr-ext-workflow/tests/test_mcp_schema.py b/ext/dapr-ext-workflow/tests/test_mcp_schema.py new file mode 100644 index 000000000..642d5b16f --- /dev/null +++ b/ext/dapr-ext-workflow/tests/test_mcp_schema.py @@ -0,0 +1,241 @@ +# -*- coding: utf-8 -*- + +""" +Copyright 2026 The Dapr Authors +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +""" + +import unittest + +from dapr.ext.workflow.mcp_schema import create_pydantic_model_from_schema +from pydantic import BaseModel + + +class TestBasicTypes(unittest.TestCase): + """Tests for basic JSON Schema type conversions.""" + + def test_string_field(self): + schema = { + 'type': 'object', + 'properties': {'name': {'type': 'string', 'description': 'A name'}}, + 'required': ['name'], + } + Model = create_pydantic_model_from_schema(schema, 'TestModel') + instance = Model(name='Alice') + self.assertEqual(instance.name, 'Alice') + + def test_integer_field(self): + schema = { + 'type': 'object', + 'properties': {'count': {'type': 'integer'}}, + 'required': ['count'], + } + Model = create_pydantic_model_from_schema(schema, 'IntModel') + instance = Model(count=42) + self.assertEqual(instance.count, 42) + + def test_number_field(self): + schema = { + 'type': 'object', + 'properties': {'price': {'type': 'number'}}, + 'required': ['price'], + } + Model = create_pydantic_model_from_schema(schema, 'NumModel') + instance = Model(price=9.99) + self.assertAlmostEqual(instance.price, 9.99) + + def test_boolean_field(self): + schema = { + 'type': 'object', + 'properties': {'active': {'type': 'boolean'}}, + 'required': ['active'], + } + Model = create_pydantic_model_from_schema(schema, 'BoolModel') + instance = Model(active=True) + self.assertTrue(instance.active) + + def test_array_field(self): + schema = { + 'type': 'object', + 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}}, + 'required': ['tags'], + } + Model = create_pydantic_model_from_schema(schema, 'ArrayModel') + instance = Model(tags=['a', 'b']) + self.assertEqual(instance.tags, ['a', 'b']) + + +class TestRequiredOptional(unittest.TestCase): + """Tests for required vs optional field handling.""" + + def test_required_field_has_no_default(self): + schema = { + 'type': 'object', + 'properties': {'location': {'type': 'string'}}, + 'required': ['location'], + } + Model = create_pydantic_model_from_schema(schema, 'ReqModel') + with self.assertRaises(Exception): + Model() # Missing required field + + def test_optional_field_defaults_to_none(self): + schema = { + 'type': 'object', + 'properties': {'location': {'type': 'string'}}, + 'required': [], + } + Model = create_pydantic_model_from_schema(schema, 'OptModel') + instance = Model() + self.assertIsNone(instance.location) + + def test_mixed_required_optional(self): + schema = { + 'type': 'object', + 'properties': { + 'location': {'type': 'string'}, + 'days': {'type': 'integer'}, + }, + 'required': ['location'], + } + Model = create_pydantic_model_from_schema(schema, 'MixedModel') + instance = Model(location='Tokyo') + self.assertEqual(instance.location, 'Tokyo') + self.assertIsNone(instance.days) + + +class TestAnyOfOneOf(unittest.TestCase): + """Tests for anyOf/oneOf nullable/union field handling.""" + + def test_anyof_nullable_string(self): + schema = { + 'type': 'object', + 'properties': { + 'label': { + 'anyOf': [ + {'type': 'string'}, + {'type': 'null'}, + ] + } + }, + 'required': ['label'], + } + Model = create_pydantic_model_from_schema(schema, 'NullableModel') + instance = Model(label=None) + self.assertIsNone(instance.label) + instance2 = Model(label='hello') + self.assertEqual(instance2.label, 'hello') + + def test_oneof_nullable_integer(self): + schema = { + 'type': 'object', + 'properties': { + 'count': { + 'oneOf': [ + {'type': 'integer'}, + {'type': 'null'}, + ] + } + }, + 'required': ['count'], + } + Model = create_pydantic_model_from_schema(schema, 'OneOfModel') + instance = Model(count=5) + self.assertEqual(instance.count, 5) + + +class TestKwargsUnwrapping(unittest.TestCase): + """Tests for the kwargs wrapper unwrapping pattern.""" + + def test_kwargs_wrapper_is_unwrapped(self): + """Schemas wrapping args in a 'kwargs' field should be unwrapped.""" + schema = { + 'type': 'object', + 'properties': { + 'kwargs': { + 'type': 'object', + 'properties': { + 'city': {'type': 'string'}, + 'units': {'type': 'string'}, + }, + 'required': ['city'], + } + }, + } + Model = create_pydantic_model_from_schema(schema, 'KwargsModel') + instance = Model(city='Seattle') + self.assertEqual(instance.city, 'Seattle') + self.assertIsNone(instance.units) + + def test_non_kwargs_not_unwrapped(self): + """Schemas without the kwargs wrapper should not be affected.""" + schema = { + 'type': 'object', + 'properties': { + 'city': {'type': 'string'}, + }, + 'required': ['city'], + } + Model = create_pydantic_model_from_schema(schema, 'FlatModel') + instance = Model(city='Tokyo') + self.assertEqual(instance.city, 'Tokyo') + + +class TestEmptyAndEdgeCases(unittest.TestCase): + """Tests for edge cases.""" + + def test_empty_properties(self): + schema = {'type': 'object', 'properties': {}} + Model = create_pydantic_model_from_schema(schema, 'EmptyModel') + instance = Model() + self.assertIsInstance(instance, BaseModel) + + def test_no_properties_key(self): + schema = {'type': 'object'} + Model = create_pydantic_model_from_schema(schema, 'NoPropsModel') + instance = Model() + self.assertIsInstance(instance, BaseModel) + + def test_description_preserved(self): + schema = { + 'type': 'object', + 'properties': { + 'city': { + 'type': 'string', + 'description': 'The city to query', + } + }, + 'required': ['city'], + } + Model = create_pydantic_model_from_schema(schema, 'DescModel') + field_info = Model.model_fields['city'] + self.assertEqual(field_info.description, 'The city to query') + + def test_returns_pydantic_model_subclass(self): + schema = { + 'type': 'object', + 'properties': {'x': {'type': 'integer'}}, + 'required': ['x'], + } + Model = create_pydantic_model_from_schema(schema, 'SubclassCheck') + self.assertTrue(issubclass(Model, BaseModel)) + + def test_model_name_set(self): + schema = { + 'type': 'object', + 'properties': {'x': {'type': 'integer'}}, + 'required': ['x'], + } + Model = create_pydantic_model_from_schema(schema, 'MyToolArgs') + self.assertEqual(Model.__name__, 'MyToolArgs') + + +if __name__ == '__main__': + unittest.main()