From 753176f41a39357a71566466448888427cd6652a Mon Sep 17 00:00:00 2001 From: Elena Kolevska Date: Thu, 15 Feb 2024 11:49:33 +0000 Subject: [PATCH 1/3] Updates protos from release-1.13.0 Signed-off-by: Elena Kolevska --- dapr/proto/common/v1/common.proto | 161 +--- dapr/proto/runtime/v1/appcallback.proto | 314 +------ dapr/proto/runtime/v1/dapr.proto | 1091 +---------------------- 3 files changed, 3 insertions(+), 1563 deletions(-) diff --git a/dapr/proto/common/v1/common.proto b/dapr/proto/common/v1/common.proto index 1e63b885..1becba2b 100644 --- a/dapr/proto/common/v1/common.proto +++ b/dapr/proto/common/v1/common.proto @@ -1,160 +1 @@ -/* -Copyright 2021 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. -*/ - -syntax = "proto3"; - -package dapr.proto.common.v1; - -import "google/protobuf/any.proto"; - -option csharp_namespace = "Dapr.Client.Autogen.Grpc.v1"; -option java_outer_classname = "CommonProtos"; -option java_package = "io.dapr.v1"; -option go_package = "github.com/dapr/dapr/pkg/proto/common/v1;common"; - -// HTTPExtension includes HTTP verb and querystring -// when Dapr runtime delivers HTTP content. -// -// For example, when callers calls http invoke api -// POST http://localhost:3500/v1.0/invoke//method/?query1=value1&query2=value2 -// -// Dapr runtime will parse POST as a verb and extract querystring to quersytring map. -message HTTPExtension { - // Type of HTTP 1.1 Methods - // RFC 7231: https://tools.ietf.org/html/rfc7231#page-24 - // RFC 5789: https://datatracker.ietf.org/doc/html/rfc5789 - enum Verb { - NONE = 0; - GET = 1; - HEAD = 2; - POST = 3; - PUT = 4; - DELETE = 5; - CONNECT = 6; - OPTIONS = 7; - TRACE = 8; - PATCH = 9; - } - - // Required. HTTP verb. - Verb verb = 1; - - // Optional. querystring represents an encoded HTTP url query string in the following format: name=value&name2=value2 - string querystring = 2; -} - -// InvokeRequest is the message to invoke a method with the data. -// This message is used in InvokeService of Dapr gRPC Service and OnInvoke -// of AppCallback gRPC service. -message InvokeRequest { - // Required. method is a method name which will be invoked by caller. - string method = 1; - - // Required in unary RPCs. Bytes value or Protobuf message which caller sent. - // Dapr treats Any.value as bytes type if Any.type_url is unset. - google.protobuf.Any data = 2; - - // The type of data content. - // - // This field is required if data delivers http request body - // Otherwise, this is optional. - string content_type = 3; - - // HTTP specific fields if request conveys http-compatible request. - // - // This field is required for http-compatible request. Otherwise, - // this field is optional. - HTTPExtension http_extension = 4; -} - -// InvokeResponse is the response message including data and its content type -// from app callback. -// This message is used in InvokeService of Dapr gRPC Service and OnInvoke -// of AppCallback gRPC service. -message InvokeResponse { - // Required in unary RPCs. The content body of InvokeService response. - google.protobuf.Any data = 1; - - // Required. The type of data content. - string content_type = 2; -} - -// Chunk of data sent in a streaming request or response. -// This is used in requests including InternalInvokeRequestStream. -message StreamPayload { - // Data sent in the chunk. - // The amount of data included in each chunk is up to the discretion of the sender, and can be empty. - // Additionally, the amount of data doesn't need to be fixed and subsequent messages can send more, or less, data. - // Receivers must not make assumptions about the number of bytes they'll receive in each chunk. - bytes data = 1; - - // Sequence number. This is a counter that starts from 0 and increments by 1 on each chunk sent. - uint64 seq = 2; -} - -// StateItem represents state key, value, and additional options to save state. -message StateItem { - // Required. The state key - string key = 1; - - // Required. The state data for key - bytes value = 2; - - // The entity tag which represents the specific version of data. - // The exact ETag format is defined by the corresponding data store. - Etag etag = 3; - - // The metadata which will be passed to state store component. - map metadata = 4; - - // Options for concurrency and consistency to save the state. - StateOptions options = 5; -} - -// Etag represents a state item version -message Etag { - // value sets the etag value - string value = 1; -} - -// StateOptions configures concurrency and consistency for state operations -message StateOptions { - // Enum describing the supported concurrency for state. - enum StateConcurrency { - CONCURRENCY_UNSPECIFIED = 0; - CONCURRENCY_FIRST_WRITE = 1; - CONCURRENCY_LAST_WRITE = 2; - } - - // Enum describing the supported consistency for state. - enum StateConsistency { - CONSISTENCY_UNSPECIFIED = 0; - CONSISTENCY_EVENTUAL = 1; - CONSISTENCY_STRONG = 2; - } - - StateConcurrency concurrency = 1; - StateConsistency consistency = 2; -} - -// ConfigurationItem represents all the configuration with its name(key). -message ConfigurationItem { - // Required. The value of configuration item. - string value = 1; - - // Version is response only and cannot be fetched. Store is not expected to keep all versions available - string version = 2; - - // the metadata which will be passed to/from configuration store component. - map metadata = 3; -} +404: Not Found \ No newline at end of file diff --git a/dapr/proto/runtime/v1/appcallback.proto b/dapr/proto/runtime/v1/appcallback.proto index 823c0aae..1becba2b 100644 --- a/dapr/proto/runtime/v1/appcallback.proto +++ b/dapr/proto/runtime/v1/appcallback.proto @@ -1,313 +1 @@ -/* -Copyright 2021 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. -*/ - -syntax = "proto3"; - -package dapr.proto.runtime.v1; - -import "google/protobuf/empty.proto"; -import "dapr/proto/common/v1/common.proto"; -import "google/protobuf/struct.proto"; - -option csharp_namespace = "Dapr.AppCallback.Autogen.Grpc.v1"; -option java_outer_classname = "DaprAppCallbackProtos"; -option java_package = "io.dapr.v1"; -option go_package = "github.com/dapr/dapr/pkg/proto/runtime/v1;runtime"; - -// AppCallback V1 allows user application to interact with Dapr runtime. -// User application needs to implement AppCallback service if it needs to -// receive message from dapr runtime. -service AppCallback { - // Invokes service method with InvokeRequest. - rpc OnInvoke (common.v1.InvokeRequest) returns (common.v1.InvokeResponse) {} - - // Lists all topics subscribed by this app. - rpc ListTopicSubscriptions(google.protobuf.Empty) returns (ListTopicSubscriptionsResponse) {} - - // Subscribes events from Pubsub - rpc OnTopicEvent(TopicEventRequest) returns (TopicEventResponse) {} - - // Lists all input bindings subscribed by this app. - rpc ListInputBindings(google.protobuf.Empty) returns (ListInputBindingsResponse) {} - - // Listens events from the input bindings - // - // User application can save the states or send the events to the output - // bindings optionally by returning BindingEventResponse. - rpc OnBindingEvent(BindingEventRequest) returns (BindingEventResponse) {} -} - -// AppCallbackHealthCheck V1 is an optional extension to AppCallback V1 to implement -// the HealthCheck method. -service AppCallbackHealthCheck { - // Health check. - rpc HealthCheck(google.protobuf.Empty) returns (HealthCheckResponse) {} -} - -// AppCallbackAlpha V1 is an optional extension to AppCallback V1 to opt -// for Alpha RPCs. -service AppCallbackAlpha { - // Subscribes bulk events from Pubsub - rpc OnBulkTopicEventAlpha1(TopicEventBulkRequest) returns (TopicEventBulkResponse) {} -} - -// TopicEventRequest message is compatible with CloudEvent spec v1.0 -// https://github.com/cloudevents/spec/blob/v1.0/spec.md -message TopicEventRequest { - // id identifies the event. Producers MUST ensure that source + id - // is unique for each distinct event. If a duplicate event is re-sent - // (e.g. due to a network error) it MAY have the same id. - string id = 1; - - // source identifies the context in which an event happened. - // Often this will include information such as the type of the - // event source, the organization publishing the event or the process - // that produced the event. The exact syntax and semantics behind - // the data encoded in the URI is defined by the event producer. - string source = 2; - - // The type of event related to the originating occurrence. - string type = 3; - - // The version of the CloudEvents specification. - string spec_version = 4; - - // The content type of data value. - string data_content_type = 5; - - // The content of the event. - bytes data = 7; - - // The pubsub topic which publisher sent to. - string topic = 6; - - // The name of the pubsub the publisher sent to. - string pubsub_name = 8; - - // The matching path from TopicSubscription/routes (if specified) for this event. - // This value is used by OnTopicEvent to "switch" inside the handler. - string path = 9; - - // The map of additional custom properties to be sent to the app. These are considered to be cloud event extensions. - google.protobuf.Struct extensions = 10; -} - -// TopicEventResponse is response from app on published message -message TopicEventResponse { - // TopicEventResponseStatus allows apps to have finer control over handling of the message. - enum TopicEventResponseStatus { - // SUCCESS is the default behavior: message is acknowledged and not retried or logged. - SUCCESS = 0; - // RETRY status signals Dapr to retry the message as part of an expected scenario (no warning is logged). - RETRY = 1; - // DROP status signals Dapr to drop the message as part of an unexpected scenario (warning is logged). - DROP = 2; - } - - // The list of output bindings. - TopicEventResponseStatus status = 1; -} - -// TopicEventCERequest message is compatible with CloudEvent spec v1.0 -message TopicEventCERequest { - // The unique identifier of this cloud event. - string id = 1; - - // source identifies the context in which an event happened. - string source = 2; - - // The type of event related to the originating occurrence. - string type = 3; - - // The version of the CloudEvents specification. - string spec_version = 4; - - // The content type of data value. - string data_content_type = 5; - - // The content of the event. - bytes data = 6; - - // Custom attributes which includes cloud event extensions. - google.protobuf.Struct extensions = 7; -} - -// TopicEventBulkRequestEntry represents a single message inside a bulk request -message TopicEventBulkRequestEntry { - // Unique identifier for the message. - string entry_id = 1; - - // The content of the event. - oneof event { - bytes bytes = 2; - TopicEventCERequest cloud_event = 3; - } - - // content type of the event contained. - string content_type = 4; - - // The metadata associated with the event. - map metadata = 5; -} - -// TopicEventBulkRequest represents request for bulk message -message TopicEventBulkRequest { - // Unique identifier for the bulk request. - string id = 1; - - // The list of items inside this bulk request. - repeated TopicEventBulkRequestEntry entries = 2; - - // The metadata associated with the this bulk request. - map metadata = 3; - - // The pubsub topic which publisher sent to. - string topic = 4; - - // The name of the pubsub the publisher sent to. - string pubsub_name = 5; - - // The type of event related to the originating occurrence. - string type = 6; - - // The matching path from TopicSubscription/routes (if specified) for this event. - // This value is used by OnTopicEvent to "switch" inside the handler. - string path = 7; -} - -// TopicEventBulkResponseEntry Represents single response, as part of TopicEventBulkResponse, to be -// sent by subscibed App for the corresponding single message during bulk subscribe -message TopicEventBulkResponseEntry { - // Unique identifier associated the message. - string entry_id = 1; - - // The status of the response. - TopicEventResponse.TopicEventResponseStatus status = 2; -} - -// AppBulkResponse is response from app on published message -message TopicEventBulkResponse { - - // The list of all responses for the bulk request. - repeated TopicEventBulkResponseEntry statuses = 1; -} - -// BindingEventRequest represents input bindings event. -message BindingEventRequest { - // Required. The name of the input binding component. - string name = 1; - - // Required. The payload that the input bindings sent - bytes data = 2; - - // The metadata set by the input binging components. - map metadata = 3; -} - -// BindingEventResponse includes operations to save state or -// send data to output bindings optionally. -message BindingEventResponse { - // The name of state store where states are saved. - string store_name = 1; - - // The state key values which will be stored in store_name. - repeated common.v1.StateItem states = 2; - - // BindingEventConcurrency is the kind of concurrency - enum BindingEventConcurrency { - // SEQUENTIAL sends data to output bindings specified in "to" sequentially. - SEQUENTIAL = 0; - // PARALLEL sends data to output bindings specified in "to" in parallel. - PARALLEL = 1; - } - - // The list of output bindings. - repeated string to = 3; - - // The content which will be sent to "to" output bindings. - bytes data = 4; - - // The concurrency of output bindings to send data to - // "to" output bindings list. The default is SEQUENTIAL. - BindingEventConcurrency concurrency = 5; -} - -// ListTopicSubscriptionsResponse is the message including the list of the subscribing topics. -message ListTopicSubscriptionsResponse { - // The list of topics. - repeated TopicSubscription subscriptions = 1; -} - -// TopicSubscription represents topic and metadata. -message TopicSubscription { - // Required. The name of the pubsub containing the topic below to subscribe to. - string pubsub_name = 1; - - // Required. The name of topic which will be subscribed - string topic = 2; - - // The optional properties used for this topic's subscription e.g. session id - map metadata = 3; - - // The optional routing rules to match against. In the gRPC interface, OnTopicEvent - // is still invoked but the matching path is sent in the TopicEventRequest. - TopicRoutes routes = 5; - - // The optional dead letter queue for this topic to send events to. - string dead_letter_topic = 6; - - // The optional bulk subscribe settings for this topic. - BulkSubscribeConfig bulk_subscribe = 7; -} - -message TopicRoutes { - // The list of rules for this topic. - repeated TopicRule rules = 1; - - // The default path for this topic. - string default = 2; -} - -message TopicRule { - // The optional CEL expression used to match the event. - // If the match is not specified, then the route is considered - // the default. - string match = 1; - - // The path used to identify matches for this subscription. - // This value is passed in TopicEventRequest and used by OnTopicEvent to "switch" - // inside the handler. - string path = 2; -} - -// BulkSubscribeConfig is the message to pass settings for bulk subscribe -message BulkSubscribeConfig { - // Required. Flag to enable/disable bulk subscribe - bool enabled = 1; - - // Optional. Max number of messages to be sent in a single bulk request - int32 max_messages_count = 2; - - // Optional. Max duration to wait for messages to be sent in a single bulk request - int32 max_await_duration_ms = 3; -} - -// ListInputBindingsResponse is the message including the list of input bindings. -message ListInputBindingsResponse { - // The list of input bindings. - repeated string bindings = 1; -} - -// HealthCheckResponse is the message with the response to the health check. -// This message is currently empty as used as placeholder. -message HealthCheckResponse {} +404: Not Found \ No newline at end of file diff --git a/dapr/proto/runtime/v1/dapr.proto b/dapr/proto/runtime/v1/dapr.proto index eafb5452..1becba2b 100644 --- a/dapr/proto/runtime/v1/dapr.proto +++ b/dapr/proto/runtime/v1/dapr.proto @@ -1,1090 +1 @@ -/* -Copyright 2021 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. -*/ - -syntax = "proto3"; - -package dapr.proto.runtime.v1; - -import "google/protobuf/any.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/timestamp.proto"; -import "dapr/proto/common/v1/common.proto"; - -option csharp_namespace = "Dapr.Client.Autogen.Grpc.v1"; -option java_outer_classname = "DaprProtos"; -option java_package = "io.dapr.v1"; -option go_package = "github.com/dapr/dapr/pkg/proto/runtime/v1;runtime"; - -// Dapr service provides APIs to user application to access Dapr building blocks. -service Dapr { - // Invokes a method on a remote Dapr app. - // Deprecated: Use proxy mode service invocation instead. - rpc InvokeService(InvokeServiceRequest) returns (common.v1.InvokeResponse) {} - - // Gets the state for a specific key. - rpc GetState(GetStateRequest) returns (GetStateResponse) {} - - // Gets a bulk of state items for a list of keys - rpc GetBulkState(GetBulkStateRequest) returns (GetBulkStateResponse) {} - - // Saves the state for a specific key. - rpc SaveState(SaveStateRequest) returns (google.protobuf.Empty) {} - - // Queries the state. - rpc QueryStateAlpha1(QueryStateRequest) returns (QueryStateResponse) {} - - // Deletes the state for a specific key. - rpc DeleteState(DeleteStateRequest) returns (google.protobuf.Empty) {} - - // Deletes a bulk of state items for a list of keys - rpc DeleteBulkState(DeleteBulkStateRequest) returns (google.protobuf.Empty) {} - - // Executes transactions for a specified store - rpc ExecuteStateTransaction(ExecuteStateTransactionRequest) returns (google.protobuf.Empty) {} - - // Publishes events to the specific topic. - rpc PublishEvent(PublishEventRequest) returns (google.protobuf.Empty) {} - - // Bulk Publishes multiple events to the specified topic. - rpc BulkPublishEventAlpha1(BulkPublishRequest) returns (BulkPublishResponse) {} - - // Invokes binding data to specific output bindings - rpc InvokeBinding(InvokeBindingRequest) returns (InvokeBindingResponse) {} - - // Gets secrets from secret stores. - rpc GetSecret(GetSecretRequest) returns (GetSecretResponse) {} - - // Gets a bulk of secrets - rpc GetBulkSecret(GetBulkSecretRequest) returns (GetBulkSecretResponse) {} - - // Register an actor timer. - rpc RegisterActorTimer(RegisterActorTimerRequest) returns (google.protobuf.Empty) {} - - // Unregister an actor timer. - rpc UnregisterActorTimer(UnregisterActorTimerRequest) returns (google.protobuf.Empty) {} - - // Register an actor reminder. - rpc RegisterActorReminder(RegisterActorReminderRequest) returns (google.protobuf.Empty) {} - - // Unregister an actor reminder. - rpc UnregisterActorReminder(UnregisterActorReminderRequest) returns (google.protobuf.Empty) {} - - // Rename an actor reminder. - rpc RenameActorReminder(RenameActorReminderRequest) returns (google.protobuf.Empty) {} - - // Gets the state for a specific actor. - rpc GetActorState(GetActorStateRequest) returns (GetActorStateResponse) {} - - // Executes state transactions for a specified actor - rpc ExecuteActorStateTransaction(ExecuteActorStateTransactionRequest) returns (google.protobuf.Empty) {} - - // InvokeActor calls a method on an actor. - rpc InvokeActor (InvokeActorRequest) returns (InvokeActorResponse) {} - - // GetConfiguration gets configuration from configuration store. - rpc GetConfigurationAlpha1(GetConfigurationRequest) returns (GetConfigurationResponse) {} - - // GetConfiguration gets configuration from configuration store. - rpc GetConfiguration(GetConfigurationRequest) returns (GetConfigurationResponse) {} - - // SubscribeConfiguration gets configuration from configuration store and subscribe the updates event by grpc stream - rpc SubscribeConfigurationAlpha1(SubscribeConfigurationRequest) returns (stream SubscribeConfigurationResponse) {} - - // SubscribeConfiguration gets configuration from configuration store and subscribe the updates event by grpc stream - rpc SubscribeConfiguration(SubscribeConfigurationRequest) returns (stream SubscribeConfigurationResponse) {} - - // UnSubscribeConfiguration unsubscribe the subscription of configuration - rpc UnsubscribeConfigurationAlpha1(UnsubscribeConfigurationRequest) returns (UnsubscribeConfigurationResponse) {} - - // UnSubscribeConfiguration unsubscribe the subscription of configuration - rpc UnsubscribeConfiguration(UnsubscribeConfigurationRequest) returns (UnsubscribeConfigurationResponse) {} - - // TryLockAlpha1 tries to get a lock with an expiry. - rpc TryLockAlpha1(TryLockRequest)returns (TryLockResponse) {} - - // UnlockAlpha1 unlocks a lock. - rpc UnlockAlpha1(UnlockRequest)returns (UnlockResponse) {} - - // EncryptAlpha1 encrypts a message using the Dapr encryption scheme and a key stored in the vault. - rpc EncryptAlpha1(stream EncryptRequest) returns (stream EncryptResponse); - - // DecryptAlpha1 decrypts a message using the Dapr encryption scheme and a key stored in the vault. - rpc DecryptAlpha1(stream DecryptRequest) returns (stream DecryptResponse); - - // Gets metadata of the sidecar - rpc GetMetadata (google.protobuf.Empty) returns (GetMetadataResponse) {} - - // Sets value in extended metadata of the sidecar - rpc SetMetadata (SetMetadataRequest) returns (google.protobuf.Empty) {} - - // SubtleGetKeyAlpha1 returns the public part of an asymmetric key stored in the vault. - rpc SubtleGetKeyAlpha1(SubtleGetKeyRequest) returns (SubtleGetKeyResponse); - - // SubtleEncryptAlpha1 encrypts a small message using a key stored in the vault. - rpc SubtleEncryptAlpha1(SubtleEncryptRequest) returns (SubtleEncryptResponse); - - // SubtleDecryptAlpha1 decrypts a small message using a key stored in the vault. - rpc SubtleDecryptAlpha1(SubtleDecryptRequest) returns (SubtleDecryptResponse); - - // SubtleWrapKeyAlpha1 wraps a key using a key stored in the vault. - rpc SubtleWrapKeyAlpha1(SubtleWrapKeyRequest) returns (SubtleWrapKeyResponse); - - // SubtleUnwrapKeyAlpha1 unwraps a key using a key stored in the vault. - rpc SubtleUnwrapKeyAlpha1(SubtleUnwrapKeyRequest) returns (SubtleUnwrapKeyResponse); - - // SubtleSignAlpha1 signs a message using a key stored in the vault. - rpc SubtleSignAlpha1(SubtleSignRequest) returns (SubtleSignResponse); - - // SubtleVerifyAlpha1 verifies the signature of a message using a key stored in the vault. - rpc SubtleVerifyAlpha1(SubtleVerifyRequest) returns (SubtleVerifyResponse); - - // Starts a new instance of a workflow - rpc StartWorkflowAlpha1 (StartWorkflowRequest) returns (StartWorkflowResponse) {} - - // Gets details about a started workflow instance - rpc GetWorkflowAlpha1 (GetWorkflowRequest) returns (GetWorkflowResponse) {} - - // Purge Workflow - rpc PurgeWorkflowAlpha1 (PurgeWorkflowRequest) returns (google.protobuf.Empty) {} - - // Terminates a running workflow instance - rpc TerminateWorkflowAlpha1 (TerminateWorkflowRequest) returns (google.protobuf.Empty) {} - - // Pauses a running workflow instance - rpc PauseWorkflowAlpha1 (PauseWorkflowRequest) returns (google.protobuf.Empty) {} - - // Resumes a paused workflow instance - rpc ResumeWorkflowAlpha1 (ResumeWorkflowRequest) returns (google.protobuf.Empty) {} - - // Raise an event to a running workflow instance - rpc RaiseEventWorkflowAlpha1 (RaiseEventWorkflowRequest) returns (google.protobuf.Empty) {} - - // Starts a new instance of a workflow - rpc StartWorkflowBeta1 (StartWorkflowRequest) returns (StartWorkflowResponse) {} - - // Gets details about a started workflow instance - rpc GetWorkflowBeta1 (GetWorkflowRequest) returns (GetWorkflowResponse) {} - - // Purge Workflow - rpc PurgeWorkflowBeta1 (PurgeWorkflowRequest) returns (google.protobuf.Empty) {} - - // Terminates a running workflow instance - rpc TerminateWorkflowBeta1 (TerminateWorkflowRequest) returns (google.protobuf.Empty) {} - - // Pauses a running workflow instance - rpc PauseWorkflowBeta1 (PauseWorkflowRequest) returns (google.protobuf.Empty) {} - - // Resumes a paused workflow instance - rpc ResumeWorkflowBeta1 (ResumeWorkflowRequest) returns (google.protobuf.Empty) {} - - // Raise an event to a running workflow instance - rpc RaiseEventWorkflowBeta1 (RaiseEventWorkflowRequest) returns (google.protobuf.Empty) {} - // Shutdown the sidecar - rpc Shutdown (google.protobuf.Empty) returns (google.protobuf.Empty) {} -} - -// InvokeServiceRequest represents the request message for Service invocation. -message InvokeServiceRequest { - // Required. Callee's app id. - string id = 1; - - // Required. message which will be delivered to callee. - common.v1.InvokeRequest message = 3; -} - -// GetStateRequest is the message to get key-value states from specific state store. -message GetStateRequest { - // The name of state store. - string store_name = 1; - - // The key of the desired state - string key = 2; - - // The read consistency of the state store. - common.v1.StateOptions.StateConsistency consistency = 3; - - // The metadata which will be sent to state store components. - map metadata = 4; -} - -// GetBulkStateRequest is the message to get a list of key-value states from specific state store. -message GetBulkStateRequest { - // The name of state store. - string store_name = 1; - - // The keys to get. - repeated string keys = 2; - - // The number of parallel operations executed on the state store for a get operation. - int32 parallelism = 3; - - // The metadata which will be sent to state store components. - map metadata = 4; -} - -// GetBulkStateResponse is the response conveying the list of state values. -message GetBulkStateResponse { - // The list of items containing the keys to get values for. - repeated BulkStateItem items = 1; -} - -// BulkStateItem is the response item for a bulk get operation. -// Return values include the item key, data and etag. -message BulkStateItem { - // state item key - string key = 1; - - // The byte array data - bytes data = 2; - - // The entity tag which represents the specific version of data. - // ETag format is defined by the corresponding data store. - string etag = 3; - - // The error that was returned from the state store in case of a failed get operation. - string error = 4; - - // The metadata which will be sent to app. - map metadata = 5; -} - -// GetStateResponse is the response conveying the state value and etag. -message GetStateResponse { - // The byte array data - bytes data = 1; - - // The entity tag which represents the specific version of data. - // ETag format is defined by the corresponding data store. - string etag = 2; - - // The metadata which will be sent to app. - map metadata = 3; -} - -// DeleteStateRequest is the message to delete key-value states in the specific state store. -message DeleteStateRequest { - // The name of state store. - string store_name = 1; - - // The key of the desired state - string key = 2; - - // The entity tag which represents the specific version of data. - // The exact ETag format is defined by the corresponding data store. - common.v1.Etag etag = 3; - - // State operation options which includes concurrency/ - // consistency/retry_policy. - common.v1.StateOptions options = 4; - - // The metadata which will be sent to state store components. - map metadata = 5; -} - -// DeleteBulkStateRequest is the message to delete a list of key-value states from specific state store. -message DeleteBulkStateRequest { - // The name of state store. - string store_name = 1; - - // The array of the state key values. - repeated common.v1.StateItem states = 2; -} - -// SaveStateRequest is the message to save multiple states into state store. -message SaveStateRequest { - // The name of state store. - string store_name = 1; - - // The array of the state key values. - repeated common.v1.StateItem states = 2; -} - -// QueryStateRequest is the message to query state store. -message QueryStateRequest { - // The name of state store. - string store_name = 1 [json_name = "storeName"]; - - // The query in JSON format. - string query = 2; - - // The metadata which will be sent to state store components. - map metadata = 3; -} - -message QueryStateItem { - // The object key. - string key = 1; - - // The object value. - bytes data = 2; - - // The entity tag which represents the specific version of data. - // ETag format is defined by the corresponding data store. - string etag = 3; - - // The error message indicating an error in processing of the query result. - string error = 4; -} - -// QueryStateResponse is the response conveying the query results. -message QueryStateResponse { - // An array of query results. - repeated QueryStateItem results = 1; - - // Pagination token. - string token = 2; - - // The metadata which will be sent to app. - map metadata = 3; -} - -// PublishEventRequest is the message to publish event data to pubsub topic -message PublishEventRequest { - // The name of the pubsub component - string pubsub_name = 1; - - // The pubsub topic - string topic = 2; - - // The data which will be published to topic. - bytes data = 3; - - // The content type for the data (optional). - string data_content_type = 4; - - // The metadata passing to pub components - // - // metadata property: - // - key : the key of the message. - map metadata = 5; -} - -// BulkPublishRequest is the message to bulk publish events to pubsub topic -message BulkPublishRequest { - // The name of the pubsub component - string pubsub_name = 1; - - // The pubsub topic - string topic = 2; - - // The entries which contain the individual events and associated details to be published - repeated BulkPublishRequestEntry entries = 3; - - // The request level metadata passing to to the pubsub components - map metadata = 4; -} - -// BulkPublishRequestEntry is the message containing the event to be bulk published -message BulkPublishRequestEntry { - // The request scoped unique ID referring to this message. Used to map status in response - string entry_id = 1; - - // The event which will be pulished to the topic - bytes event = 2; - - // The content type for the event - string content_type = 3; - - // The event level metadata passing to the pubsub component - map metadata = 4; -} - -// BulkPublishResponse is the message returned from a BulkPublishEvent call -message BulkPublishResponse { - // The entries for different events that failed publish in the BulkPublishEvent call - repeated BulkPublishResponseFailedEntry failedEntries = 1; -} - -// BulkPublishResponseFailedEntry is the message containing the entryID and error of a failed event in BulkPublishEvent call -message BulkPublishResponseFailedEntry { - - // The response scoped unique ID referring to this message - string entry_id = 1; - - // The error message if any on failure - string error = 2; -} - - -// InvokeBindingRequest is the message to send data to output bindings -message InvokeBindingRequest { - // The name of the output binding to invoke. - string name = 1; - - // The data which will be sent to output binding. - bytes data = 2; - - // The metadata passing to output binding components - // - // Common metadata property: - // - ttlInSeconds : the time to live in seconds for the message. - // If set in the binding definition will cause all messages to - // have a default time to live. The message ttl overrides any value - // in the binding definition. - map metadata = 3; - - // The name of the operation type for the binding to invoke - string operation = 4; -} - -// InvokeBindingResponse is the message returned from an output binding invocation -message InvokeBindingResponse { - // The data which will be sent to output binding. - bytes data = 1; - - // The metadata returned from an external system - map metadata = 2; -} - -// GetSecretRequest is the message to get secret from secret store. -message GetSecretRequest { - // The name of secret store. - string store_name = 1 [json_name = "storeName"]; - - // The name of secret key. - string key = 2; - - // The metadata which will be sent to secret store components. - map metadata = 3; -} - -// GetSecretResponse is the response message to convey the requested secret. -message GetSecretResponse { - // data is the secret value. Some secret store, such as kubernetes secret - // store, can save multiple secrets for single secret key. - map data = 1; -} - -// GetBulkSecretRequest is the message to get the secrets from secret store. -message GetBulkSecretRequest { - // The name of secret store. - string store_name = 1 [json_name = "storeName"]; - - // The metadata which will be sent to secret store components. - map metadata = 2; -} - -// SecretResponse is a map of decrypted string/string values -message SecretResponse { - map secrets = 1; -} - -// GetBulkSecretResponse is the response message to convey the requested secrets. -message GetBulkSecretResponse { - // data hold the secret values. Some secret store, such as kubernetes secret - // store, can save multiple secrets for single secret key. - map data = 1; -} - -// TransactionalStateOperation is the message to execute a specified operation with a key-value pair. -message TransactionalStateOperation { - // The type of operation to be executed - string operationType = 1; - - // State values to be operated on - common.v1.StateItem request = 2; -} - -// ExecuteStateTransactionRequest is the message to execute multiple operations on a specified store. -message ExecuteStateTransactionRequest { - // Required. name of state store. - string storeName = 1; - - // Required. transactional operation list. - repeated TransactionalStateOperation operations = 2; - - // The metadata used for transactional operations. - map metadata = 3; -} - -// RegisterActorTimerRequest is the message to register a timer for an actor of a given type and id. -message RegisterActorTimerRequest { - string actor_type = 1; - string actor_id = 2; - string name = 3; - string due_time = 4; - string period = 5; - string callback = 6; - bytes data = 7; - string ttl = 8; -} - -// UnregisterActorTimerRequest is the message to unregister an actor timer -message UnregisterActorTimerRequest { - string actor_type = 1; - string actor_id = 2; - string name = 3; -} - -// RegisterActorReminderRequest is the message to register a reminder for an actor of a given type and id. -message RegisterActorReminderRequest { - string actor_type = 1; - string actor_id = 2; - string name = 3; - string due_time = 4; - string period = 5; - bytes data = 6; - string ttl = 7; -} - -// UnregisterActorReminderRequest is the message to unregister an actor reminder. -message UnregisterActorReminderRequest { - string actor_type = 1; - string actor_id = 2; - string name = 3; -} - -// RenameActorReminderRequest is the message to rename an actor reminder. -message RenameActorReminderRequest { - string actor_type = 1; - string actor_id = 2; - string old_name = 3; - string new_name = 4; -} - -// GetActorStateRequest is the message to get key-value states from specific actor. -message GetActorStateRequest { - string actor_type = 1; - string actor_id = 2; - string key = 3; -} - -// GetActorStateResponse is the response conveying the actor's state value. -message GetActorStateResponse { - bytes data = 1; - - // The metadata which will be sent to app. - map metadata = 2; -} - -// ExecuteActorStateTransactionRequest is the message to execute multiple operations on a specified actor. -message ExecuteActorStateTransactionRequest { - string actor_type = 1; - string actor_id = 2; - repeated TransactionalActorStateOperation operations = 3; -} - -// TransactionalActorStateOperation is the message to execute a specified operation with a key-value pair. -message TransactionalActorStateOperation { - string operationType = 1; - string key = 2; - google.protobuf.Any value = 3; - // The metadata used for transactional operations. - // - // Common metadata property: - // - ttlInSeconds : the time to live in seconds for the stored value. - map metadata = 4; -} - -// InvokeActorRequest is the message to call an actor. -message InvokeActorRequest { - string actor_type = 1; - string actor_id = 2; - string method = 3; - bytes data = 4; - map metadata = 5; -} - -// InvokeActorResponse is the method that returns an actor invocation response. -message InvokeActorResponse { - bytes data = 1; -} - -// GetMetadataResponse is a message that is returned on GetMetadata rpc call -message GetMetadataResponse { - string id = 1; - repeated ActiveActorsCount active_actors_count = 2 [json_name = "actors"]; - repeated RegisteredComponents registered_components = 3 [json_name = "components"]; - map extended_metadata = 4 [json_name = "extended"]; - repeated PubsubSubscription subscriptions = 5 [json_name = "subscriptions"]; - repeated MetadataHTTPEndpoint http_endpoints = 6 [json_name = "httpEndpoints"]; - AppConnectionProperties app_connection_properties = 7 [json_name = "appConnectionProperties"]; - string runtime_version = 8 [json_name = "runtimeVersion"]; - repeated string enabled_features = 9 [json_name = "enabledFeatures"]; -} - -message ActiveActorsCount { - string type = 1; - int32 count = 2; -} - -message RegisteredComponents { - string name = 1; - string type = 2; - string version = 3; - repeated string capabilities = 4; -} - -message MetadataHTTPEndpoint { - string name = 1 [json_name = "name"]; -} - -message AppConnectionProperties { - int32 port = 1; - string protocol = 2; - string channel_address = 3 [json_name = "channelAddress"]; - int32 max_concurrency = 4 [json_name = "maxConcurrency"]; - AppConnectionHealthProperties health = 5; -} - -message AppConnectionHealthProperties { - string health_check_path = 1 [json_name = "healthCheckPath"]; - string health_probe_interval = 2 [json_name = "healthProbeInterval"]; - string health_probe_timeout = 3 [json_name = "healthProbeTimeout"]; - int32 health_threshold = 4 [json_name = "healthThreshold"]; -} - -message PubsubSubscription { - string pubsub_name = 1 [json_name = "pubsubname"]; - string topic = 2 [json_name = "topic"]; - map metadata = 3 [json_name = "metadata"]; - PubsubSubscriptionRules rules = 4 [json_name = "rules"]; - string dead_letter_topic = 5 [json_name = "deadLetterTopic"]; -} - -message PubsubSubscriptionRules { - repeated PubsubSubscriptionRule rules = 1; -} - -message PubsubSubscriptionRule { - string match = 1; - string path = 2; -} - -message SetMetadataRequest { - string key = 1; - string value = 2; -} - -// GetConfigurationRequest is the message to get a list of key-value configuration from specified configuration store. -message GetConfigurationRequest { - // Required. The name of configuration store. - string store_name = 1; - - // Optional. The key of the configuration item to fetch. - // If set, only query for the specified configuration items. - // Empty list means fetch all. - repeated string keys = 2; - - // Optional. The metadata which will be sent to configuration store components. - map metadata = 3; -} - -// GetConfigurationResponse is the response conveying the list of configuration values. -// It should be the FULL configuration of specified application which contains all of its configuration items. -message GetConfigurationResponse { - map items = 1; -} - -// SubscribeConfigurationRequest is the message to get a list of key-value configuration from specified configuration store. -message SubscribeConfigurationRequest { - // The name of configuration store. - string store_name = 1; - - // Optional. The key of the configuration item to fetch. - // If set, only query for the specified configuration items. - // Empty list means fetch all. - repeated string keys = 2; - - // The metadata which will be sent to configuration store components. - map metadata = 3; -} - -// UnSubscribeConfigurationRequest is the message to stop watching the key-value configuration. -message UnsubscribeConfigurationRequest { - // The name of configuration store. - string store_name = 1; - - // The id to unsubscribe. - string id = 2; -} - -message SubscribeConfigurationResponse { - // Subscribe id, used to stop subscription. - string id = 1; - - // The list of items containing configuration values - map items = 2; -} - -message UnsubscribeConfigurationResponse { - bool ok = 1; - string message = 2; -} - -message TryLockRequest { - // Required. The lock store name,e.g. `redis`. - string store_name = 1 [json_name = "storeName"]; - - // Required. resource_id is the lock key. e.g. `order_id_111` - // It stands for "which resource I want to protect" - string resource_id = 2 [json_name = "resourceId"]; - - // Required. lock_owner indicate the identifier of lock owner. - // You can generate a uuid as lock_owner.For example,in golang: - // - // req.LockOwner = uuid.New().String() - // - // This field is per request,not per process,so it is different for each request, - // which aims to prevent multi-thread in the same process trying the same lock concurrently. - // - // The reason why we don't make it automatically generated is: - // 1. If it is automatically generated,there must be a 'my_lock_owner_id' field in the response. - // This name is so weird that we think it is inappropriate to put it into the api spec - // 2. If we change the field 'my_lock_owner_id' in the response to 'lock_owner',which means the current lock owner of this lock, - // we find that in some lock services users can't get the current lock owner.Actually users don't need it at all. - // 3. When reentrant lock is needed,the existing lock_owner is required to identify client and check "whether this client can reenter this lock". - // So this field in the request shouldn't be removed. - string lock_owner = 3 [json_name = "lockOwner"]; - - // Required. The time before expiry.The time unit is second. - int32 expiry_in_seconds = 4 [json_name = "expiryInSeconds"]; -} - -message TryLockResponse { - bool success = 1; -} - -message UnlockRequest { - string store_name = 1 [json_name = "storeName"]; - // resource_id is the lock key. - string resource_id = 2 [json_name = "resourceId"]; - string lock_owner = 3 [json_name = "lockOwner"]; -} - -message UnlockResponse { - enum Status { - SUCCESS = 0; - LOCK_DOES_NOT_EXIST = 1; - LOCK_BELONGS_TO_OTHERS = 2; - INTERNAL_ERROR = 3; - } - - Status status = 1; -} - -// SubtleGetKeyRequest is the request object for SubtleGetKeyAlpha1. -message SubtleGetKeyRequest { - enum KeyFormat { - // PEM (PKIX) (default) - PEM = 0; - // JSON (JSON Web Key) as string - JSON = 1; - } - - // Name of the component - string component_name = 1 [json_name="componentName"]; - // Name (or name/version) of the key to use in the key vault - string name = 2; - // Response format - KeyFormat format = 3; -} - -// SubtleGetKeyResponse is the response for SubtleGetKeyAlpha1. -message SubtleGetKeyResponse { - // Name (or name/version) of the key. - // This is returned as response too in case there is a version. - string name = 1; - // Public key, encoded in the requested format - string public_key = 2 [json_name="publicKey"]; -} - -// SubtleEncryptRequest is the request for SubtleEncryptAlpha1. -message SubtleEncryptRequest { - // Name of the component - string component_name = 1 [json_name="componentName"]; - // Message to encrypt. - bytes plaintext = 2; - // Algorithm to use, as in the JWA standard. - string algorithm = 3; - // Name (or name/version) of the key. - string key_name = 4 [json_name="keyName"]; - // Nonce / initialization vector. - // Ignored with asymmetric ciphers. - bytes nonce = 5; - // Associated Data when using AEAD ciphers (optional). - bytes associated_data = 6 [json_name="associatedData"]; -} - -// SubtleEncryptResponse is the response for SubtleEncryptAlpha1. -message SubtleEncryptResponse { - // Encrypted ciphertext. - bytes ciphertext = 1; - // Authentication tag. - // This is nil when not using an authenticated cipher. - bytes tag = 2; -} - -// SubtleDecryptRequest is the request for SubtleDecryptAlpha1. -message SubtleDecryptRequest { - // Name of the component - string component_name = 1 [json_name="componentName"]; - // Message to decrypt. - bytes ciphertext = 2; - // Algorithm to use, as in the JWA standard. - string algorithm = 3; - // Name (or name/version) of the key. - string key_name = 4 [json_name="keyName"]; - // Nonce / initialization vector. - // Ignored with asymmetric ciphers. - bytes nonce = 5; - // Authentication tag. - // This is nil when not using an authenticated cipher. - bytes tag = 6; - // Associated Data when using AEAD ciphers (optional). - bytes associated_data = 7 [json_name="associatedData"]; -} - -// SubtleDecryptResponse is the response for SubtleDecryptAlpha1. -message SubtleDecryptResponse { - // Decrypted plaintext. - bytes plaintext = 1; -} - -// SubtleWrapKeyRequest is the request for SubtleWrapKeyAlpha1. -message SubtleWrapKeyRequest { - // Name of the component - string component_name = 1 [json_name="componentName"]; - // Key to wrap - bytes plaintext_key = 2 [json_name="plaintextKey"]; - // Algorithm to use, as in the JWA standard. - string algorithm = 3; - // Name (or name/version) of the key. - string key_name = 4 [json_name="keyName"]; - // Nonce / initialization vector. - // Ignored with asymmetric ciphers. - bytes nonce = 5; - // Associated Data when using AEAD ciphers (optional). - bytes associated_data = 6 [json_name="associatedData"]; -} - -// SubtleWrapKeyResponse is the response for SubtleWrapKeyAlpha1. -message SubtleWrapKeyResponse { - // Wrapped key. - bytes wrapped_key = 1 [json_name="wrappedKey"]; - // Authentication tag. - // This is nil when not using an authenticated cipher. - bytes tag = 2; -} - -// SubtleUnwrapKeyRequest is the request for SubtleUnwrapKeyAlpha1. -message SubtleUnwrapKeyRequest { - // Name of the component - string component_name = 1 [json_name="componentName"]; - // Wrapped key. - bytes wrapped_key = 2 [json_name="wrappedKey"]; - // Algorithm to use, as in the JWA standard. - string algorithm = 3; - // Name (or name/version) of the key. - string key_name = 4 [json_name="keyName"]; - // Nonce / initialization vector. - // Ignored with asymmetric ciphers. - bytes nonce = 5; - // Authentication tag. - // This is nil when not using an authenticated cipher. - bytes tag = 6; - // Associated Data when using AEAD ciphers (optional). - bytes associated_data = 7 [json_name="associatedData"]; -} - -// SubtleUnwrapKeyResponse is the response for SubtleUnwrapKeyAlpha1. -message SubtleUnwrapKeyResponse { - // Key in plaintext - bytes plaintext_key = 1 [json_name="plaintextKey"]; -} - -// SubtleSignRequest is the request for SubtleSignAlpha1. -message SubtleSignRequest { - // Name of the component - string component_name = 1 [json_name="componentName"]; - // Digest to sign. - bytes digest = 2; - // Algorithm to use, as in the JWA standard. - string algorithm = 3; - // Name (or name/version) of the key. - string key_name = 4 [json_name="keyName"]; -} - -// SubtleSignResponse is the response for SubtleSignAlpha1. -message SubtleSignResponse { - // The signature that was computed - bytes signature = 1; -} - -// SubtleVerifyRequest is the request for SubtleVerifyAlpha1. -message SubtleVerifyRequest { - // Name of the component - string component_name = 1 [json_name="componentName"]; - // Digest of the message. - bytes digest = 2; - // Algorithm to use, as in the JWA standard. - string algorithm = 3; - // Name (or name/version) of the key. - string key_name = 4 [json_name="keyName"]; - // Signature to verify. - bytes signature = 5; -} - -// SubtleVerifyResponse is the response for SubtleVerifyAlpha1. -message SubtleVerifyResponse { - // True if the signature is valid. - bool valid = 1; -} - -// EncryptRequest is the request for EncryptAlpha1. -message EncryptRequest { - // Request details. Must be present in the first message only. - EncryptRequestOptions options = 1; - // Chunk of data of arbitrary size. - common.v1.StreamPayload payload = 2; -} - -// EncryptRequestOptions contains options for the first message in the EncryptAlpha1 request. -message EncryptRequestOptions { - // Name of the component. Required. - string component_name = 1 [json_name="componentName"]; - // Name (or name/version) of the key. Required. - string key_name = 2 [json_name="keyName"]; - // Key wrapping algorithm to use. Required. - // Supported options include: A256KW (alias: AES), A128CBC, A192CBC, A256CBC, RSA-OAEP-256 (alias: RSA). - string key_wrap_algorithm = 3; - // Cipher used to encrypt data (optional): "aes-gcm" (default) or "chacha20-poly1305" - string data_encryption_cipher = 10; - // If true, the encrypted document does not contain a key reference. - // In that case, calls to the Decrypt method must provide a key reference (name or name/version). - // Defaults to false. - bool omit_decryption_key_name = 11 [json_name="omitDecryptionKeyName"]; - // Key reference to embed in the encrypted document (name or name/version). - // This is helpful if the reference of the key used to decrypt the document is different from the one used to encrypt it. - // If unset, uses the reference of the key used to encrypt the document (this is the default behavior). - // This option is ignored if omit_decryption_key_name is true. - string decryption_key_name = 12 [json_name="decryptionKeyName"]; -} - -// EncryptResponse is the response for EncryptAlpha1. -message EncryptResponse { - // Chunk of data. - common.v1.StreamPayload payload = 1; -} - -// DecryptRequest is the request for DecryptAlpha1. -message DecryptRequest { - // Request details. Must be present in the first message only. - DecryptRequestOptions options = 1; - // Chunk of data of arbitrary size. - common.v1.StreamPayload payload = 2; -} - -// DecryptRequestOptions contains options for the first message in the DecryptAlpha1 request. -message DecryptRequestOptions { - // Name of the component - string component_name = 1 [json_name="componentName"]; - // Name (or name/version) of the key to decrypt the message. - // Overrides any key reference included in the message if present. - // This is required if the message doesn't include a key reference (i.e. was created with omit_decryption_key_name set to true). - string key_name = 12 [json_name="keyName"]; -} - -// DecryptResponse is the response for DecryptAlpha1. -message DecryptResponse { - // Chunk of data. - common.v1.StreamPayload payload = 1; -} - -// GetWorkflowRequest is the request for GetWorkflowBeta1. -message GetWorkflowRequest { - // ID of the workflow instance to query. - string instance_id = 1 [json_name = "instanceID"]; - // Name of the workflow component. - string workflow_component = 2 [json_name = "workflowComponent"]; -} - -// GetWorkflowResponse is the response for GetWorkflowBeta1. -message GetWorkflowResponse { - // ID of the workflow instance. - string instance_id = 1 [json_name = "instanceID"]; - // Name of the workflow. - string workflow_name = 2 [json_name = "workflowName"]; - // The time at which the workflow instance was created. - google.protobuf.Timestamp created_at = 3 [json_name = "createdAt"]; - // The last time at which the workflow instance had its state changed. - google.protobuf.Timestamp last_updated_at = 4 [json_name = "lastUpdatedAt"]; - // The current status of the workflow instance, for example, "PENDING", "RUNNING", "SUSPENDED", "COMPLETED", "FAILED", and "TERMINATED". - string runtime_status = 5 [json_name = "runtimeStatus"]; - // Additional component-specific properties of the workflow instance. - map properties = 6; -} - -// StartWorkflowRequest is the request for StartWorkflowBeta1. -message StartWorkflowRequest { - // The ID to assign to the started workflow instance. If empty, a random ID is generated. - string instance_id = 1 [json_name = "instanceID"]; - // Name of the workflow component. - string workflow_component = 2 [json_name = "workflowComponent"]; - // Name of the workflow. - string workflow_name = 3 [json_name = "workflowName"]; - // Additional component-specific options for starting the workflow instance. - map options = 4; - // Input data for the workflow instance. - bytes input = 5; -} - -// StartWorkflowResponse is the response for StartWorkflowBeta1. -message StartWorkflowResponse { - // ID of the started workflow instance. - string instance_id = 1 [json_name = "instanceID"]; -} - -// TerminateWorkflowRequest is the request for TerminateWorkflowBeta1. -message TerminateWorkflowRequest { - // ID of the workflow instance to terminate. - string instance_id = 1 [json_name = "instanceID"]; - // Name of the workflow component. - string workflow_component = 2 [json_name = "workflowComponent"]; -} - -// PauseWorkflowRequest is the request for PauseWorkflowBeta1. -message PauseWorkflowRequest { - // ID of the workflow instance to pause. - string instance_id = 1 [json_name = "instanceID"]; - // Name of the workflow component. - string workflow_component = 2 [json_name = "workflowComponent"]; -} - -// ResumeWorkflowRequest is the request for ResumeWorkflowBeta1. -message ResumeWorkflowRequest { - // ID of the workflow instance to resume. - string instance_id = 1 [json_name = "instanceID"]; - // Name of the workflow component. - string workflow_component = 2 [json_name = "workflowComponent"]; -} - -// RaiseEventWorkflowRequest is the request for RaiseEventWorkflowBeta1. -message RaiseEventWorkflowRequest { - // ID of the workflow instance to raise an event for. - string instance_id = 1 [json_name = "instanceID"]; - // Name of the workflow component. - string workflow_component = 2 [json_name = "workflowComponent"]; - // Name of the event. - string event_name = 3 [json_name = "eventName"]; - // Data associated with the event. - bytes event_data = 4; -} - -// PurgeWorkflowRequest is the request for PurgeWorkflowBeta1. -message PurgeWorkflowRequest { - // ID of the workflow instance to purge. - string instance_id = 1 [json_name = "instanceID"]; - // Name of the workflow component. - string workflow_component = 2 [json_name = "workflowComponent"]; -} +404: Not Found \ No newline at end of file From b72bf75d8756aed3b0ae942eb4cceb6df5990382 Mon Sep 17 00:00:00 2001 From: Elena Kolevska Date: Thu, 15 Feb 2024 12:08:22 +0000 Subject: [PATCH 2/3] Now from the correct version Signed-off-by: Elena Kolevska --- dapr/proto/common/v1/common.proto | 161 +++- dapr/proto/runtime/v1/appcallback.proto | 314 ++++++- dapr/proto/runtime/v1/dapr.proto | 1111 ++++++++++++++++++++++- 3 files changed, 1583 insertions(+), 3 deletions(-) diff --git a/dapr/proto/common/v1/common.proto b/dapr/proto/common/v1/common.proto index 1becba2b..1e63b885 100644 --- a/dapr/proto/common/v1/common.proto +++ b/dapr/proto/common/v1/common.proto @@ -1 +1,160 @@ -404: Not Found \ No newline at end of file +/* +Copyright 2021 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. +*/ + +syntax = "proto3"; + +package dapr.proto.common.v1; + +import "google/protobuf/any.proto"; + +option csharp_namespace = "Dapr.Client.Autogen.Grpc.v1"; +option java_outer_classname = "CommonProtos"; +option java_package = "io.dapr.v1"; +option go_package = "github.com/dapr/dapr/pkg/proto/common/v1;common"; + +// HTTPExtension includes HTTP verb and querystring +// when Dapr runtime delivers HTTP content. +// +// For example, when callers calls http invoke api +// POST http://localhost:3500/v1.0/invoke//method/?query1=value1&query2=value2 +// +// Dapr runtime will parse POST as a verb and extract querystring to quersytring map. +message HTTPExtension { + // Type of HTTP 1.1 Methods + // RFC 7231: https://tools.ietf.org/html/rfc7231#page-24 + // RFC 5789: https://datatracker.ietf.org/doc/html/rfc5789 + enum Verb { + NONE = 0; + GET = 1; + HEAD = 2; + POST = 3; + PUT = 4; + DELETE = 5; + CONNECT = 6; + OPTIONS = 7; + TRACE = 8; + PATCH = 9; + } + + // Required. HTTP verb. + Verb verb = 1; + + // Optional. querystring represents an encoded HTTP url query string in the following format: name=value&name2=value2 + string querystring = 2; +} + +// InvokeRequest is the message to invoke a method with the data. +// This message is used in InvokeService of Dapr gRPC Service and OnInvoke +// of AppCallback gRPC service. +message InvokeRequest { + // Required. method is a method name which will be invoked by caller. + string method = 1; + + // Required in unary RPCs. Bytes value or Protobuf message which caller sent. + // Dapr treats Any.value as bytes type if Any.type_url is unset. + google.protobuf.Any data = 2; + + // The type of data content. + // + // This field is required if data delivers http request body + // Otherwise, this is optional. + string content_type = 3; + + // HTTP specific fields if request conveys http-compatible request. + // + // This field is required for http-compatible request. Otherwise, + // this field is optional. + HTTPExtension http_extension = 4; +} + +// InvokeResponse is the response message including data and its content type +// from app callback. +// This message is used in InvokeService of Dapr gRPC Service and OnInvoke +// of AppCallback gRPC service. +message InvokeResponse { + // Required in unary RPCs. The content body of InvokeService response. + google.protobuf.Any data = 1; + + // Required. The type of data content. + string content_type = 2; +} + +// Chunk of data sent in a streaming request or response. +// This is used in requests including InternalInvokeRequestStream. +message StreamPayload { + // Data sent in the chunk. + // The amount of data included in each chunk is up to the discretion of the sender, and can be empty. + // Additionally, the amount of data doesn't need to be fixed and subsequent messages can send more, or less, data. + // Receivers must not make assumptions about the number of bytes they'll receive in each chunk. + bytes data = 1; + + // Sequence number. This is a counter that starts from 0 and increments by 1 on each chunk sent. + uint64 seq = 2; +} + +// StateItem represents state key, value, and additional options to save state. +message StateItem { + // Required. The state key + string key = 1; + + // Required. The state data for key + bytes value = 2; + + // The entity tag which represents the specific version of data. + // The exact ETag format is defined by the corresponding data store. + Etag etag = 3; + + // The metadata which will be passed to state store component. + map metadata = 4; + + // Options for concurrency and consistency to save the state. + StateOptions options = 5; +} + +// Etag represents a state item version +message Etag { + // value sets the etag value + string value = 1; +} + +// StateOptions configures concurrency and consistency for state operations +message StateOptions { + // Enum describing the supported concurrency for state. + enum StateConcurrency { + CONCURRENCY_UNSPECIFIED = 0; + CONCURRENCY_FIRST_WRITE = 1; + CONCURRENCY_LAST_WRITE = 2; + } + + // Enum describing the supported consistency for state. + enum StateConsistency { + CONSISTENCY_UNSPECIFIED = 0; + CONSISTENCY_EVENTUAL = 1; + CONSISTENCY_STRONG = 2; + } + + StateConcurrency concurrency = 1; + StateConsistency consistency = 2; +} + +// ConfigurationItem represents all the configuration with its name(key). +message ConfigurationItem { + // Required. The value of configuration item. + string value = 1; + + // Version is response only and cannot be fetched. Store is not expected to keep all versions available + string version = 2; + + // the metadata which will be passed to/from configuration store component. + map metadata = 3; +} diff --git a/dapr/proto/runtime/v1/appcallback.proto b/dapr/proto/runtime/v1/appcallback.proto index 1becba2b..823c0aae 100644 --- a/dapr/proto/runtime/v1/appcallback.proto +++ b/dapr/proto/runtime/v1/appcallback.proto @@ -1 +1,313 @@ -404: Not Found \ No newline at end of file +/* +Copyright 2021 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. +*/ + +syntax = "proto3"; + +package dapr.proto.runtime.v1; + +import "google/protobuf/empty.proto"; +import "dapr/proto/common/v1/common.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Dapr.AppCallback.Autogen.Grpc.v1"; +option java_outer_classname = "DaprAppCallbackProtos"; +option java_package = "io.dapr.v1"; +option go_package = "github.com/dapr/dapr/pkg/proto/runtime/v1;runtime"; + +// AppCallback V1 allows user application to interact with Dapr runtime. +// User application needs to implement AppCallback service if it needs to +// receive message from dapr runtime. +service AppCallback { + // Invokes service method with InvokeRequest. + rpc OnInvoke (common.v1.InvokeRequest) returns (common.v1.InvokeResponse) {} + + // Lists all topics subscribed by this app. + rpc ListTopicSubscriptions(google.protobuf.Empty) returns (ListTopicSubscriptionsResponse) {} + + // Subscribes events from Pubsub + rpc OnTopicEvent(TopicEventRequest) returns (TopicEventResponse) {} + + // Lists all input bindings subscribed by this app. + rpc ListInputBindings(google.protobuf.Empty) returns (ListInputBindingsResponse) {} + + // Listens events from the input bindings + // + // User application can save the states or send the events to the output + // bindings optionally by returning BindingEventResponse. + rpc OnBindingEvent(BindingEventRequest) returns (BindingEventResponse) {} +} + +// AppCallbackHealthCheck V1 is an optional extension to AppCallback V1 to implement +// the HealthCheck method. +service AppCallbackHealthCheck { + // Health check. + rpc HealthCheck(google.protobuf.Empty) returns (HealthCheckResponse) {} +} + +// AppCallbackAlpha V1 is an optional extension to AppCallback V1 to opt +// for Alpha RPCs. +service AppCallbackAlpha { + // Subscribes bulk events from Pubsub + rpc OnBulkTopicEventAlpha1(TopicEventBulkRequest) returns (TopicEventBulkResponse) {} +} + +// TopicEventRequest message is compatible with CloudEvent spec v1.0 +// https://github.com/cloudevents/spec/blob/v1.0/spec.md +message TopicEventRequest { + // id identifies the event. Producers MUST ensure that source + id + // is unique for each distinct event. If a duplicate event is re-sent + // (e.g. due to a network error) it MAY have the same id. + string id = 1; + + // source identifies the context in which an event happened. + // Often this will include information such as the type of the + // event source, the organization publishing the event or the process + // that produced the event. The exact syntax and semantics behind + // the data encoded in the URI is defined by the event producer. + string source = 2; + + // The type of event related to the originating occurrence. + string type = 3; + + // The version of the CloudEvents specification. + string spec_version = 4; + + // The content type of data value. + string data_content_type = 5; + + // The content of the event. + bytes data = 7; + + // The pubsub topic which publisher sent to. + string topic = 6; + + // The name of the pubsub the publisher sent to. + string pubsub_name = 8; + + // The matching path from TopicSubscription/routes (if specified) for this event. + // This value is used by OnTopicEvent to "switch" inside the handler. + string path = 9; + + // The map of additional custom properties to be sent to the app. These are considered to be cloud event extensions. + google.protobuf.Struct extensions = 10; +} + +// TopicEventResponse is response from app on published message +message TopicEventResponse { + // TopicEventResponseStatus allows apps to have finer control over handling of the message. + enum TopicEventResponseStatus { + // SUCCESS is the default behavior: message is acknowledged and not retried or logged. + SUCCESS = 0; + // RETRY status signals Dapr to retry the message as part of an expected scenario (no warning is logged). + RETRY = 1; + // DROP status signals Dapr to drop the message as part of an unexpected scenario (warning is logged). + DROP = 2; + } + + // The list of output bindings. + TopicEventResponseStatus status = 1; +} + +// TopicEventCERequest message is compatible with CloudEvent spec v1.0 +message TopicEventCERequest { + // The unique identifier of this cloud event. + string id = 1; + + // source identifies the context in which an event happened. + string source = 2; + + // The type of event related to the originating occurrence. + string type = 3; + + // The version of the CloudEvents specification. + string spec_version = 4; + + // The content type of data value. + string data_content_type = 5; + + // The content of the event. + bytes data = 6; + + // Custom attributes which includes cloud event extensions. + google.protobuf.Struct extensions = 7; +} + +// TopicEventBulkRequestEntry represents a single message inside a bulk request +message TopicEventBulkRequestEntry { + // Unique identifier for the message. + string entry_id = 1; + + // The content of the event. + oneof event { + bytes bytes = 2; + TopicEventCERequest cloud_event = 3; + } + + // content type of the event contained. + string content_type = 4; + + // The metadata associated with the event. + map metadata = 5; +} + +// TopicEventBulkRequest represents request for bulk message +message TopicEventBulkRequest { + // Unique identifier for the bulk request. + string id = 1; + + // The list of items inside this bulk request. + repeated TopicEventBulkRequestEntry entries = 2; + + // The metadata associated with the this bulk request. + map metadata = 3; + + // The pubsub topic which publisher sent to. + string topic = 4; + + // The name of the pubsub the publisher sent to. + string pubsub_name = 5; + + // The type of event related to the originating occurrence. + string type = 6; + + // The matching path from TopicSubscription/routes (if specified) for this event. + // This value is used by OnTopicEvent to "switch" inside the handler. + string path = 7; +} + +// TopicEventBulkResponseEntry Represents single response, as part of TopicEventBulkResponse, to be +// sent by subscibed App for the corresponding single message during bulk subscribe +message TopicEventBulkResponseEntry { + // Unique identifier associated the message. + string entry_id = 1; + + // The status of the response. + TopicEventResponse.TopicEventResponseStatus status = 2; +} + +// AppBulkResponse is response from app on published message +message TopicEventBulkResponse { + + // The list of all responses for the bulk request. + repeated TopicEventBulkResponseEntry statuses = 1; +} + +// BindingEventRequest represents input bindings event. +message BindingEventRequest { + // Required. The name of the input binding component. + string name = 1; + + // Required. The payload that the input bindings sent + bytes data = 2; + + // The metadata set by the input binging components. + map metadata = 3; +} + +// BindingEventResponse includes operations to save state or +// send data to output bindings optionally. +message BindingEventResponse { + // The name of state store where states are saved. + string store_name = 1; + + // The state key values which will be stored in store_name. + repeated common.v1.StateItem states = 2; + + // BindingEventConcurrency is the kind of concurrency + enum BindingEventConcurrency { + // SEQUENTIAL sends data to output bindings specified in "to" sequentially. + SEQUENTIAL = 0; + // PARALLEL sends data to output bindings specified in "to" in parallel. + PARALLEL = 1; + } + + // The list of output bindings. + repeated string to = 3; + + // The content which will be sent to "to" output bindings. + bytes data = 4; + + // The concurrency of output bindings to send data to + // "to" output bindings list. The default is SEQUENTIAL. + BindingEventConcurrency concurrency = 5; +} + +// ListTopicSubscriptionsResponse is the message including the list of the subscribing topics. +message ListTopicSubscriptionsResponse { + // The list of topics. + repeated TopicSubscription subscriptions = 1; +} + +// TopicSubscription represents topic and metadata. +message TopicSubscription { + // Required. The name of the pubsub containing the topic below to subscribe to. + string pubsub_name = 1; + + // Required. The name of topic which will be subscribed + string topic = 2; + + // The optional properties used for this topic's subscription e.g. session id + map metadata = 3; + + // The optional routing rules to match against. In the gRPC interface, OnTopicEvent + // is still invoked but the matching path is sent in the TopicEventRequest. + TopicRoutes routes = 5; + + // The optional dead letter queue for this topic to send events to. + string dead_letter_topic = 6; + + // The optional bulk subscribe settings for this topic. + BulkSubscribeConfig bulk_subscribe = 7; +} + +message TopicRoutes { + // The list of rules for this topic. + repeated TopicRule rules = 1; + + // The default path for this topic. + string default = 2; +} + +message TopicRule { + // The optional CEL expression used to match the event. + // If the match is not specified, then the route is considered + // the default. + string match = 1; + + // The path used to identify matches for this subscription. + // This value is passed in TopicEventRequest and used by OnTopicEvent to "switch" + // inside the handler. + string path = 2; +} + +// BulkSubscribeConfig is the message to pass settings for bulk subscribe +message BulkSubscribeConfig { + // Required. Flag to enable/disable bulk subscribe + bool enabled = 1; + + // Optional. Max number of messages to be sent in a single bulk request + int32 max_messages_count = 2; + + // Optional. Max duration to wait for messages to be sent in a single bulk request + int32 max_await_duration_ms = 3; +} + +// ListInputBindingsResponse is the message including the list of input bindings. +message ListInputBindingsResponse { + // The list of input bindings. + repeated string bindings = 1; +} + +// HealthCheckResponse is the message with the response to the health check. +// This message is currently empty as used as placeholder. +message HealthCheckResponse {} diff --git a/dapr/proto/runtime/v1/dapr.proto b/dapr/proto/runtime/v1/dapr.proto index 1becba2b..5ec1cc9d 100644 --- a/dapr/proto/runtime/v1/dapr.proto +++ b/dapr/proto/runtime/v1/dapr.proto @@ -1 +1,1110 @@ -404: Not Found \ No newline at end of file +/* +Copyright 2021 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. +*/ + +syntax = "proto3"; + +package dapr.proto.runtime.v1; + +import "google/protobuf/any.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; +import "dapr/proto/common/v1/common.proto"; + +option csharp_namespace = "Dapr.Client.Autogen.Grpc.v1"; +option java_outer_classname = "DaprProtos"; +option java_package = "io.dapr.v1"; +option go_package = "github.com/dapr/dapr/pkg/proto/runtime/v1;runtime"; + +// Dapr service provides APIs to user application to access Dapr building blocks. +service Dapr { + // Invokes a method on a remote Dapr app. + // Deprecated: Use proxy mode service invocation instead. + rpc InvokeService(InvokeServiceRequest) returns (common.v1.InvokeResponse) {} + + // Gets the state for a specific key. + rpc GetState(GetStateRequest) returns (GetStateResponse) {} + + // Gets a bulk of state items for a list of keys + rpc GetBulkState(GetBulkStateRequest) returns (GetBulkStateResponse) {} + + // Saves the state for a specific key. + rpc SaveState(SaveStateRequest) returns (google.protobuf.Empty) {} + + // Queries the state. + rpc QueryStateAlpha1(QueryStateRequest) returns (QueryStateResponse) {} + + // Deletes the state for a specific key. + rpc DeleteState(DeleteStateRequest) returns (google.protobuf.Empty) {} + + // Deletes a bulk of state items for a list of keys + rpc DeleteBulkState(DeleteBulkStateRequest) returns (google.protobuf.Empty) {} + + // Executes transactions for a specified store + rpc ExecuteStateTransaction(ExecuteStateTransactionRequest) returns (google.protobuf.Empty) {} + + // Publishes events to the specific topic. + rpc PublishEvent(PublishEventRequest) returns (google.protobuf.Empty) {} + + // Bulk Publishes multiple events to the specified topic. + rpc BulkPublishEventAlpha1(BulkPublishRequest) returns (BulkPublishResponse) {} + + // Invokes binding data to specific output bindings + rpc InvokeBinding(InvokeBindingRequest) returns (InvokeBindingResponse) {} + + // Gets secrets from secret stores. + rpc GetSecret(GetSecretRequest) returns (GetSecretResponse) {} + + // Gets a bulk of secrets + rpc GetBulkSecret(GetBulkSecretRequest) returns (GetBulkSecretResponse) {} + + // Register an actor timer. + rpc RegisterActorTimer(RegisterActorTimerRequest) returns (google.protobuf.Empty) {} + + // Unregister an actor timer. + rpc UnregisterActorTimer(UnregisterActorTimerRequest) returns (google.protobuf.Empty) {} + + // Register an actor reminder. + rpc RegisterActorReminder(RegisterActorReminderRequest) returns (google.protobuf.Empty) {} + + // Unregister an actor reminder. + rpc UnregisterActorReminder(UnregisterActorReminderRequest) returns (google.protobuf.Empty) {} + + // Gets the state for a specific actor. + rpc GetActorState(GetActorStateRequest) returns (GetActorStateResponse) {} + + // Executes state transactions for a specified actor + rpc ExecuteActorStateTransaction(ExecuteActorStateTransactionRequest) returns (google.protobuf.Empty) {} + + // InvokeActor calls a method on an actor. + rpc InvokeActor (InvokeActorRequest) returns (InvokeActorResponse) {} + + // GetConfiguration gets configuration from configuration store. + rpc GetConfigurationAlpha1(GetConfigurationRequest) returns (GetConfigurationResponse) {} + + // GetConfiguration gets configuration from configuration store. + rpc GetConfiguration(GetConfigurationRequest) returns (GetConfigurationResponse) {} + + // SubscribeConfiguration gets configuration from configuration store and subscribe the updates event by grpc stream + rpc SubscribeConfigurationAlpha1(SubscribeConfigurationRequest) returns (stream SubscribeConfigurationResponse) {} + + // SubscribeConfiguration gets configuration from configuration store and subscribe the updates event by grpc stream + rpc SubscribeConfiguration(SubscribeConfigurationRequest) returns (stream SubscribeConfigurationResponse) {} + + // UnSubscribeConfiguration unsubscribe the subscription of configuration + rpc UnsubscribeConfigurationAlpha1(UnsubscribeConfigurationRequest) returns (UnsubscribeConfigurationResponse) {} + + // UnSubscribeConfiguration unsubscribe the subscription of configuration + rpc UnsubscribeConfiguration(UnsubscribeConfigurationRequest) returns (UnsubscribeConfigurationResponse) {} + + // TryLockAlpha1 tries to get a lock with an expiry. + rpc TryLockAlpha1(TryLockRequest)returns (TryLockResponse) {} + + // UnlockAlpha1 unlocks a lock. + rpc UnlockAlpha1(UnlockRequest)returns (UnlockResponse) {} + + // EncryptAlpha1 encrypts a message using the Dapr encryption scheme and a key stored in the vault. + rpc EncryptAlpha1(stream EncryptRequest) returns (stream EncryptResponse); + + // DecryptAlpha1 decrypts a message using the Dapr encryption scheme and a key stored in the vault. + rpc DecryptAlpha1(stream DecryptRequest) returns (stream DecryptResponse); + + // Gets metadata of the sidecar + rpc GetMetadata (GetMetadataRequest) returns (GetMetadataResponse) {} + + // Sets value in extended metadata of the sidecar + rpc SetMetadata (SetMetadataRequest) returns (google.protobuf.Empty) {} + + // SubtleGetKeyAlpha1 returns the public part of an asymmetric key stored in the vault. + rpc SubtleGetKeyAlpha1(SubtleGetKeyRequest) returns (SubtleGetKeyResponse); + + // SubtleEncryptAlpha1 encrypts a small message using a key stored in the vault. + rpc SubtleEncryptAlpha1(SubtleEncryptRequest) returns (SubtleEncryptResponse); + + // SubtleDecryptAlpha1 decrypts a small message using a key stored in the vault. + rpc SubtleDecryptAlpha1(SubtleDecryptRequest) returns (SubtleDecryptResponse); + + // SubtleWrapKeyAlpha1 wraps a key using a key stored in the vault. + rpc SubtleWrapKeyAlpha1(SubtleWrapKeyRequest) returns (SubtleWrapKeyResponse); + + // SubtleUnwrapKeyAlpha1 unwraps a key using a key stored in the vault. + rpc SubtleUnwrapKeyAlpha1(SubtleUnwrapKeyRequest) returns (SubtleUnwrapKeyResponse); + + // SubtleSignAlpha1 signs a message using a key stored in the vault. + rpc SubtleSignAlpha1(SubtleSignRequest) returns (SubtleSignResponse); + + // SubtleVerifyAlpha1 verifies the signature of a message using a key stored in the vault. + rpc SubtleVerifyAlpha1(SubtleVerifyRequest) returns (SubtleVerifyResponse); + + // Starts a new instance of a workflow + rpc StartWorkflowAlpha1 (StartWorkflowRequest) returns (StartWorkflowResponse) {} + + // Gets details about a started workflow instance + rpc GetWorkflowAlpha1 (GetWorkflowRequest) returns (GetWorkflowResponse) {} + + // Purge Workflow + rpc PurgeWorkflowAlpha1 (PurgeWorkflowRequest) returns (google.protobuf.Empty) {} + + // Terminates a running workflow instance + rpc TerminateWorkflowAlpha1 (TerminateWorkflowRequest) returns (google.protobuf.Empty) {} + + // Pauses a running workflow instance + rpc PauseWorkflowAlpha1 (PauseWorkflowRequest) returns (google.protobuf.Empty) {} + + // Resumes a paused workflow instance + rpc ResumeWorkflowAlpha1 (ResumeWorkflowRequest) returns (google.protobuf.Empty) {} + + // Raise an event to a running workflow instance + rpc RaiseEventWorkflowAlpha1 (RaiseEventWorkflowRequest) returns (google.protobuf.Empty) {} + + // Starts a new instance of a workflow + rpc StartWorkflowBeta1 (StartWorkflowRequest) returns (StartWorkflowResponse) {} + + // Gets details about a started workflow instance + rpc GetWorkflowBeta1 (GetWorkflowRequest) returns (GetWorkflowResponse) {} + + // Purge Workflow + rpc PurgeWorkflowBeta1 (PurgeWorkflowRequest) returns (google.protobuf.Empty) {} + + // Terminates a running workflow instance + rpc TerminateWorkflowBeta1 (TerminateWorkflowRequest) returns (google.protobuf.Empty) {} + + // Pauses a running workflow instance + rpc PauseWorkflowBeta1 (PauseWorkflowRequest) returns (google.protobuf.Empty) {} + + // Resumes a paused workflow instance + rpc ResumeWorkflowBeta1 (ResumeWorkflowRequest) returns (google.protobuf.Empty) {} + + // Raise an event to a running workflow instance + rpc RaiseEventWorkflowBeta1 (RaiseEventWorkflowRequest) returns (google.protobuf.Empty) {} + // Shutdown the sidecar + rpc Shutdown (ShutdownRequest) returns (google.protobuf.Empty) {} +} + +// InvokeServiceRequest represents the request message for Service invocation. +message InvokeServiceRequest { + // Required. Callee's app id. + string id = 1; + + // Required. message which will be delivered to callee. + common.v1.InvokeRequest message = 3; +} + +// GetStateRequest is the message to get key-value states from specific state store. +message GetStateRequest { + // The name of state store. + string store_name = 1; + + // The key of the desired state + string key = 2; + + // The read consistency of the state store. + common.v1.StateOptions.StateConsistency consistency = 3; + + // The metadata which will be sent to state store components. + map metadata = 4; +} + +// GetBulkStateRequest is the message to get a list of key-value states from specific state store. +message GetBulkStateRequest { + // The name of state store. + string store_name = 1; + + // The keys to get. + repeated string keys = 2; + + // The number of parallel operations executed on the state store for a get operation. + int32 parallelism = 3; + + // The metadata which will be sent to state store components. + map metadata = 4; +} + +// GetBulkStateResponse is the response conveying the list of state values. +message GetBulkStateResponse { + // The list of items containing the keys to get values for. + repeated BulkStateItem items = 1; +} + +// BulkStateItem is the response item for a bulk get operation. +// Return values include the item key, data and etag. +message BulkStateItem { + // state item key + string key = 1; + + // The byte array data + bytes data = 2; + + // The entity tag which represents the specific version of data. + // ETag format is defined by the corresponding data store. + string etag = 3; + + // The error that was returned from the state store in case of a failed get operation. + string error = 4; + + // The metadata which will be sent to app. + map metadata = 5; +} + +// GetStateResponse is the response conveying the state value and etag. +message GetStateResponse { + // The byte array data + bytes data = 1; + + // The entity tag which represents the specific version of data. + // ETag format is defined by the corresponding data store. + string etag = 2; + + // The metadata which will be sent to app. + map metadata = 3; +} + +// DeleteStateRequest is the message to delete key-value states in the specific state store. +message DeleteStateRequest { + // The name of state store. + string store_name = 1; + + // The key of the desired state + string key = 2; + + // The entity tag which represents the specific version of data. + // The exact ETag format is defined by the corresponding data store. + common.v1.Etag etag = 3; + + // State operation options which includes concurrency/ + // consistency/retry_policy. + common.v1.StateOptions options = 4; + + // The metadata which will be sent to state store components. + map metadata = 5; +} + +// DeleteBulkStateRequest is the message to delete a list of key-value states from specific state store. +message DeleteBulkStateRequest { + // The name of state store. + string store_name = 1; + + // The array of the state key values. + repeated common.v1.StateItem states = 2; +} + +// SaveStateRequest is the message to save multiple states into state store. +message SaveStateRequest { + // The name of state store. + string store_name = 1; + + // The array of the state key values. + repeated common.v1.StateItem states = 2; +} + +// QueryStateRequest is the message to query state store. +message QueryStateRequest { + // The name of state store. + string store_name = 1 [json_name = "storeName"]; + + // The query in JSON format. + string query = 2; + + // The metadata which will be sent to state store components. + map metadata = 3; +} + +message QueryStateItem { + // The object key. + string key = 1; + + // The object value. + bytes data = 2; + + // The entity tag which represents the specific version of data. + // ETag format is defined by the corresponding data store. + string etag = 3; + + // The error message indicating an error in processing of the query result. + string error = 4; +} + +// QueryStateResponse is the response conveying the query results. +message QueryStateResponse { + // An array of query results. + repeated QueryStateItem results = 1; + + // Pagination token. + string token = 2; + + // The metadata which will be sent to app. + map metadata = 3; +} + +// PublishEventRequest is the message to publish event data to pubsub topic +message PublishEventRequest { + // The name of the pubsub component + string pubsub_name = 1; + + // The pubsub topic + string topic = 2; + + // The data which will be published to topic. + bytes data = 3; + + // The content type for the data (optional). + string data_content_type = 4; + + // The metadata passing to pub components + // + // metadata property: + // - key : the key of the message. + map metadata = 5; +} + +// BulkPublishRequest is the message to bulk publish events to pubsub topic +message BulkPublishRequest { + // The name of the pubsub component + string pubsub_name = 1; + + // The pubsub topic + string topic = 2; + + // The entries which contain the individual events and associated details to be published + repeated BulkPublishRequestEntry entries = 3; + + // The request level metadata passing to to the pubsub components + map metadata = 4; +} + +// BulkPublishRequestEntry is the message containing the event to be bulk published +message BulkPublishRequestEntry { + // The request scoped unique ID referring to this message. Used to map status in response + string entry_id = 1; + + // The event which will be pulished to the topic + bytes event = 2; + + // The content type for the event + string content_type = 3; + + // The event level metadata passing to the pubsub component + map metadata = 4; +} + +// BulkPublishResponse is the message returned from a BulkPublishEvent call +message BulkPublishResponse { + // The entries for different events that failed publish in the BulkPublishEvent call + repeated BulkPublishResponseFailedEntry failedEntries = 1; +} + +// BulkPublishResponseFailedEntry is the message containing the entryID and error of a failed event in BulkPublishEvent call +message BulkPublishResponseFailedEntry { + // The response scoped unique ID referring to this message + string entry_id = 1; + + // The error message if any on failure + string error = 2; +} + +// InvokeBindingRequest is the message to send data to output bindings +message InvokeBindingRequest { + // The name of the output binding to invoke. + string name = 1; + + // The data which will be sent to output binding. + bytes data = 2; + + // The metadata passing to output binding components + // + // Common metadata property: + // - ttlInSeconds : the time to live in seconds for the message. + // If set in the binding definition will cause all messages to + // have a default time to live. The message ttl overrides any value + // in the binding definition. + map metadata = 3; + + // The name of the operation type for the binding to invoke + string operation = 4; +} + +// InvokeBindingResponse is the message returned from an output binding invocation +message InvokeBindingResponse { + // The data which will be sent to output binding. + bytes data = 1; + + // The metadata returned from an external system + map metadata = 2; +} + +// GetSecretRequest is the message to get secret from secret store. +message GetSecretRequest { + // The name of secret store. + string store_name = 1 [json_name = "storeName"]; + + // The name of secret key. + string key = 2; + + // The metadata which will be sent to secret store components. + map metadata = 3; +} + +// GetSecretResponse is the response message to convey the requested secret. +message GetSecretResponse { + // data is the secret value. Some secret store, such as kubernetes secret + // store, can save multiple secrets for single secret key. + map data = 1; +} + +// GetBulkSecretRequest is the message to get the secrets from secret store. +message GetBulkSecretRequest { + // The name of secret store. + string store_name = 1 [json_name = "storeName"]; + + // The metadata which will be sent to secret store components. + map metadata = 2; +} + +// SecretResponse is a map of decrypted string/string values +message SecretResponse { + map secrets = 1; +} + +// GetBulkSecretResponse is the response message to convey the requested secrets. +message GetBulkSecretResponse { + // data hold the secret values. Some secret store, such as kubernetes secret + // store, can save multiple secrets for single secret key. + map data = 1; +} + +// TransactionalStateOperation is the message to execute a specified operation with a key-value pair. +message TransactionalStateOperation { + // The type of operation to be executed + string operationType = 1; + + // State values to be operated on + common.v1.StateItem request = 2; +} + +// ExecuteStateTransactionRequest is the message to execute multiple operations on a specified store. +message ExecuteStateTransactionRequest { + // Required. name of state store. + string storeName = 1; + + // Required. transactional operation list. + repeated TransactionalStateOperation operations = 2; + + // The metadata used for transactional operations. + map metadata = 3; +} + +// RegisterActorTimerRequest is the message to register a timer for an actor of a given type and id. +message RegisterActorTimerRequest { + string actor_type = 1; + string actor_id = 2; + string name = 3; + string due_time = 4; + string period = 5; + string callback = 6; + bytes data = 7; + string ttl = 8; +} + +// UnregisterActorTimerRequest is the message to unregister an actor timer +message UnregisterActorTimerRequest { + string actor_type = 1; + string actor_id = 2; + string name = 3; +} + +// RegisterActorReminderRequest is the message to register a reminder for an actor of a given type and id. +message RegisterActorReminderRequest { + string actor_type = 1; + string actor_id = 2; + string name = 3; + string due_time = 4; + string period = 5; + bytes data = 6; + string ttl = 7; +} + +// UnregisterActorReminderRequest is the message to unregister an actor reminder. +message UnregisterActorReminderRequest { + string actor_type = 1; + string actor_id = 2; + string name = 3; +} + +// GetActorStateRequest is the message to get key-value states from specific actor. +message GetActorStateRequest { + string actor_type = 1; + string actor_id = 2; + string key = 3; +} + +// GetActorStateResponse is the response conveying the actor's state value. +message GetActorStateResponse { + bytes data = 1; + + // The metadata which will be sent to app. + map metadata = 2; +} + +// ExecuteActorStateTransactionRequest is the message to execute multiple operations on a specified actor. +message ExecuteActorStateTransactionRequest { + string actor_type = 1; + string actor_id = 2; + repeated TransactionalActorStateOperation operations = 3; +} + +// TransactionalActorStateOperation is the message to execute a specified operation with a key-value pair. +message TransactionalActorStateOperation { + string operationType = 1; + string key = 2; + google.protobuf.Any value = 3; + // The metadata used for transactional operations. + // + // Common metadata property: + // - ttlInSeconds : the time to live in seconds for the stored value. + map metadata = 4; +} + +// InvokeActorRequest is the message to call an actor. +message InvokeActorRequest { + string actor_type = 1; + string actor_id = 2; + string method = 3; + bytes data = 4; + map metadata = 5; +} + +// InvokeActorResponse is the method that returns an actor invocation response. +message InvokeActorResponse { + bytes data = 1; +} + +// GetMetadataRequest is the message for the GetMetadata request. +message GetMetadataRequest { + // Empty +} + +// GetMetadataResponse is a message that is returned on GetMetadata rpc call. +message GetMetadataResponse { + string id = 1; + // Deprecated alias for actor_runtime.active_actors. + repeated ActiveActorsCount active_actors_count = 2 [json_name = "actors", deprecated = true]; + repeated RegisteredComponents registered_components = 3 [json_name = "components"]; + map extended_metadata = 4 [json_name = "extended"]; + repeated PubsubSubscription subscriptions = 5 [json_name = "subscriptions"]; + repeated MetadataHTTPEndpoint http_endpoints = 6 [json_name = "httpEndpoints"]; + AppConnectionProperties app_connection_properties = 7 [json_name = "appConnectionProperties"]; + string runtime_version = 8 [json_name = "runtimeVersion"]; + repeated string enabled_features = 9 [json_name = "enabledFeatures"]; + ActorRuntime actor_runtime = 10 [json_name = "actorRuntime"]; +} + +message ActorRuntime { + enum ActorRuntimeStatus { + // Indicates that the actor runtime is still being initialized. + INITIALIZING = 0; + // Indicates that the actor runtime is disabled. + // This normally happens when Dapr is started without "placement-host-address" + DISABLED = 1; + // Indicates the actor runtime is running, either as an actor host or client. + RUNNING = 2; + } + + // Contains an enum indicating whether the actor runtime has been initialized. + ActorRuntimeStatus runtime_status = 1 [json_name = "runtimeStatus"]; + // Count of active actors per type. + repeated ActiveActorsCount active_actors = 2 [json_name = "activeActors"]; + // Indicates whether the actor runtime is ready to host actors. + bool host_ready = 3 [json_name = "hostReady"]; + // Custom message from the placement provider. + string placement = 4 [json_name = "placement"]; +} + +message ActiveActorsCount { + string type = 1; + int32 count = 2; +} + +message RegisteredComponents { + string name = 1; + string type = 2; + string version = 3; + repeated string capabilities = 4; +} + +message MetadataHTTPEndpoint { + string name = 1 [json_name = "name"]; +} + +message AppConnectionProperties { + int32 port = 1; + string protocol = 2; + string channel_address = 3 [json_name = "channelAddress"]; + int32 max_concurrency = 4 [json_name = "maxConcurrency"]; + AppConnectionHealthProperties health = 5; +} + +message AppConnectionHealthProperties { + string health_check_path = 1 [json_name = "healthCheckPath"]; + string health_probe_interval = 2 [json_name = "healthProbeInterval"]; + string health_probe_timeout = 3 [json_name = "healthProbeTimeout"]; + int32 health_threshold = 4 [json_name = "healthThreshold"]; +} + +message PubsubSubscription { + string pubsub_name = 1 [json_name = "pubsubname"]; + string topic = 2 [json_name = "topic"]; + map metadata = 3 [json_name = "metadata"]; + PubsubSubscriptionRules rules = 4 [json_name = "rules"]; + string dead_letter_topic = 5 [json_name = "deadLetterTopic"]; +} + +message PubsubSubscriptionRules { + repeated PubsubSubscriptionRule rules = 1; +} + +message PubsubSubscriptionRule { + string match = 1; + string path = 2; +} + +message SetMetadataRequest { + string key = 1; + string value = 2; +} + +// GetConfigurationRequest is the message to get a list of key-value configuration from specified configuration store. +message GetConfigurationRequest { + // Required. The name of configuration store. + string store_name = 1; + + // Optional. The key of the configuration item to fetch. + // If set, only query for the specified configuration items. + // Empty list means fetch all. + repeated string keys = 2; + + // Optional. The metadata which will be sent to configuration store components. + map metadata = 3; +} + +// GetConfigurationResponse is the response conveying the list of configuration values. +// It should be the FULL configuration of specified application which contains all of its configuration items. +message GetConfigurationResponse { + map items = 1; +} + +// SubscribeConfigurationRequest is the message to get a list of key-value configuration from specified configuration store. +message SubscribeConfigurationRequest { + // The name of configuration store. + string store_name = 1; + + // Optional. The key of the configuration item to fetch. + // If set, only query for the specified configuration items. + // Empty list means fetch all. + repeated string keys = 2; + + // The metadata which will be sent to configuration store components. + map metadata = 3; +} + +// UnSubscribeConfigurationRequest is the message to stop watching the key-value configuration. +message UnsubscribeConfigurationRequest { + // The name of configuration store. + string store_name = 1; + + // The id to unsubscribe. + string id = 2; +} + +message SubscribeConfigurationResponse { + // Subscribe id, used to stop subscription. + string id = 1; + + // The list of items containing configuration values + map items = 2; +} + +message UnsubscribeConfigurationResponse { + bool ok = 1; + string message = 2; +} + +message TryLockRequest { + // Required. The lock store name,e.g. `redis`. + string store_name = 1 [json_name = "storeName"]; + + // Required. resource_id is the lock key. e.g. `order_id_111` + // It stands for "which resource I want to protect" + string resource_id = 2 [json_name = "resourceId"]; + + // Required. lock_owner indicate the identifier of lock owner. + // You can generate a uuid as lock_owner.For example,in golang: + // + // req.LockOwner = uuid.New().String() + // + // This field is per request,not per process,so it is different for each request, + // which aims to prevent multi-thread in the same process trying the same lock concurrently. + // + // The reason why we don't make it automatically generated is: + // 1. If it is automatically generated,there must be a 'my_lock_owner_id' field in the response. + // This name is so weird that we think it is inappropriate to put it into the api spec + // 2. If we change the field 'my_lock_owner_id' in the response to 'lock_owner',which means the current lock owner of this lock, + // we find that in some lock services users can't get the current lock owner.Actually users don't need it at all. + // 3. When reentrant lock is needed,the existing lock_owner is required to identify client and check "whether this client can reenter this lock". + // So this field in the request shouldn't be removed. + string lock_owner = 3 [json_name = "lockOwner"]; + + // Required. The time before expiry.The time unit is second. + int32 expiry_in_seconds = 4 [json_name = "expiryInSeconds"]; +} + +message TryLockResponse { + bool success = 1; +} + +message UnlockRequest { + string store_name = 1 [json_name = "storeName"]; + // resource_id is the lock key. + string resource_id = 2 [json_name = "resourceId"]; + string lock_owner = 3 [json_name = "lockOwner"]; +} + +message UnlockResponse { + enum Status { + SUCCESS = 0; + LOCK_DOES_NOT_EXIST = 1; + LOCK_BELONGS_TO_OTHERS = 2; + INTERNAL_ERROR = 3; + } + + Status status = 1; +} + +// SubtleGetKeyRequest is the request object for SubtleGetKeyAlpha1. +message SubtleGetKeyRequest { + enum KeyFormat { + // PEM (PKIX) (default) + PEM = 0; + // JSON (JSON Web Key) as string + JSON = 1; + } + + // Name of the component + string component_name = 1 [json_name="componentName"]; + // Name (or name/version) of the key to use in the key vault + string name = 2; + // Response format + KeyFormat format = 3; +} + +// SubtleGetKeyResponse is the response for SubtleGetKeyAlpha1. +message SubtleGetKeyResponse { + // Name (or name/version) of the key. + // This is returned as response too in case there is a version. + string name = 1; + // Public key, encoded in the requested format + string public_key = 2 [json_name="publicKey"]; +} + +// SubtleEncryptRequest is the request for SubtleEncryptAlpha1. +message SubtleEncryptRequest { + // Name of the component + string component_name = 1 [json_name="componentName"]; + // Message to encrypt. + bytes plaintext = 2; + // Algorithm to use, as in the JWA standard. + string algorithm = 3; + // Name (or name/version) of the key. + string key_name = 4 [json_name="keyName"]; + // Nonce / initialization vector. + // Ignored with asymmetric ciphers. + bytes nonce = 5; + // Associated Data when using AEAD ciphers (optional). + bytes associated_data = 6 [json_name="associatedData"]; +} + +// SubtleEncryptResponse is the response for SubtleEncryptAlpha1. +message SubtleEncryptResponse { + // Encrypted ciphertext. + bytes ciphertext = 1; + // Authentication tag. + // This is nil when not using an authenticated cipher. + bytes tag = 2; +} + +// SubtleDecryptRequest is the request for SubtleDecryptAlpha1. +message SubtleDecryptRequest { + // Name of the component + string component_name = 1 [json_name="componentName"]; + // Message to decrypt. + bytes ciphertext = 2; + // Algorithm to use, as in the JWA standard. + string algorithm = 3; + // Name (or name/version) of the key. + string key_name = 4 [json_name="keyName"]; + // Nonce / initialization vector. + // Ignored with asymmetric ciphers. + bytes nonce = 5; + // Authentication tag. + // This is nil when not using an authenticated cipher. + bytes tag = 6; + // Associated Data when using AEAD ciphers (optional). + bytes associated_data = 7 [json_name="associatedData"]; +} + +// SubtleDecryptResponse is the response for SubtleDecryptAlpha1. +message SubtleDecryptResponse { + // Decrypted plaintext. + bytes plaintext = 1; +} + +// SubtleWrapKeyRequest is the request for SubtleWrapKeyAlpha1. +message SubtleWrapKeyRequest { + // Name of the component + string component_name = 1 [json_name="componentName"]; + // Key to wrap + bytes plaintext_key = 2 [json_name="plaintextKey"]; + // Algorithm to use, as in the JWA standard. + string algorithm = 3; + // Name (or name/version) of the key. + string key_name = 4 [json_name="keyName"]; + // Nonce / initialization vector. + // Ignored with asymmetric ciphers. + bytes nonce = 5; + // Associated Data when using AEAD ciphers (optional). + bytes associated_data = 6 [json_name="associatedData"]; +} + +// SubtleWrapKeyResponse is the response for SubtleWrapKeyAlpha1. +message SubtleWrapKeyResponse { + // Wrapped key. + bytes wrapped_key = 1 [json_name="wrappedKey"]; + // Authentication tag. + // This is nil when not using an authenticated cipher. + bytes tag = 2; +} + +// SubtleUnwrapKeyRequest is the request for SubtleUnwrapKeyAlpha1. +message SubtleUnwrapKeyRequest { + // Name of the component + string component_name = 1 [json_name="componentName"]; + // Wrapped key. + bytes wrapped_key = 2 [json_name="wrappedKey"]; + // Algorithm to use, as in the JWA standard. + string algorithm = 3; + // Name (or name/version) of the key. + string key_name = 4 [json_name="keyName"]; + // Nonce / initialization vector. + // Ignored with asymmetric ciphers. + bytes nonce = 5; + // Authentication tag. + // This is nil when not using an authenticated cipher. + bytes tag = 6; + // Associated Data when using AEAD ciphers (optional). + bytes associated_data = 7 [json_name="associatedData"]; +} + +// SubtleUnwrapKeyResponse is the response for SubtleUnwrapKeyAlpha1. +message SubtleUnwrapKeyResponse { + // Key in plaintext + bytes plaintext_key = 1 [json_name="plaintextKey"]; +} + +// SubtleSignRequest is the request for SubtleSignAlpha1. +message SubtleSignRequest { + // Name of the component + string component_name = 1 [json_name="componentName"]; + // Digest to sign. + bytes digest = 2; + // Algorithm to use, as in the JWA standard. + string algorithm = 3; + // Name (or name/version) of the key. + string key_name = 4 [json_name="keyName"]; +} + +// SubtleSignResponse is the response for SubtleSignAlpha1. +message SubtleSignResponse { + // The signature that was computed + bytes signature = 1; +} + +// SubtleVerifyRequest is the request for SubtleVerifyAlpha1. +message SubtleVerifyRequest { + // Name of the component + string component_name = 1 [json_name="componentName"]; + // Digest of the message. + bytes digest = 2; + // Algorithm to use, as in the JWA standard. + string algorithm = 3; + // Name (or name/version) of the key. + string key_name = 4 [json_name="keyName"]; + // Signature to verify. + bytes signature = 5; +} + +// SubtleVerifyResponse is the response for SubtleVerifyAlpha1. +message SubtleVerifyResponse { + // True if the signature is valid. + bool valid = 1; +} + +// EncryptRequest is the request for EncryptAlpha1. +message EncryptRequest { + // Request details. Must be present in the first message only. + EncryptRequestOptions options = 1; + // Chunk of data of arbitrary size. + common.v1.StreamPayload payload = 2; +} + +// EncryptRequestOptions contains options for the first message in the EncryptAlpha1 request. +message EncryptRequestOptions { + // Name of the component. Required. + string component_name = 1 [json_name="componentName"]; + // Name (or name/version) of the key. Required. + string key_name = 2 [json_name="keyName"]; + // Key wrapping algorithm to use. Required. + // Supported options include: A256KW (alias: AES), A128CBC, A192CBC, A256CBC, RSA-OAEP-256 (alias: RSA). + string key_wrap_algorithm = 3; + // Cipher used to encrypt data (optional): "aes-gcm" (default) or "chacha20-poly1305" + string data_encryption_cipher = 10; + // If true, the encrypted document does not contain a key reference. + // In that case, calls to the Decrypt method must provide a key reference (name or name/version). + // Defaults to false. + bool omit_decryption_key_name = 11 [json_name="omitDecryptionKeyName"]; + // Key reference to embed in the encrypted document (name or name/version). + // This is helpful if the reference of the key used to decrypt the document is different from the one used to encrypt it. + // If unset, uses the reference of the key used to encrypt the document (this is the default behavior). + // This option is ignored if omit_decryption_key_name is true. + string decryption_key_name = 12 [json_name="decryptionKeyName"]; +} + +// EncryptResponse is the response for EncryptAlpha1. +message EncryptResponse { + // Chunk of data. + common.v1.StreamPayload payload = 1; +} + +// DecryptRequest is the request for DecryptAlpha1. +message DecryptRequest { + // Request details. Must be present in the first message only. + DecryptRequestOptions options = 1; + // Chunk of data of arbitrary size. + common.v1.StreamPayload payload = 2; +} + +// DecryptRequestOptions contains options for the first message in the DecryptAlpha1 request. +message DecryptRequestOptions { + // Name of the component + string component_name = 1 [json_name="componentName"]; + // Name (or name/version) of the key to decrypt the message. + // Overrides any key reference included in the message if present. + // This is required if the message doesn't include a key reference (i.e. was created with omit_decryption_key_name set to true). + string key_name = 12 [json_name="keyName"]; +} + +// DecryptResponse is the response for DecryptAlpha1. +message DecryptResponse { + // Chunk of data. + common.v1.StreamPayload payload = 1; +} + +// GetWorkflowRequest is the request for GetWorkflowBeta1. +message GetWorkflowRequest { + // ID of the workflow instance to query. + string instance_id = 1 [json_name = "instanceID"]; + // Name of the workflow component. + string workflow_component = 2 [json_name = "workflowComponent"]; +} + +// GetWorkflowResponse is the response for GetWorkflowBeta1. +message GetWorkflowResponse { + // ID of the workflow instance. + string instance_id = 1 [json_name = "instanceID"]; + // Name of the workflow. + string workflow_name = 2 [json_name = "workflowName"]; + // The time at which the workflow instance was created. + google.protobuf.Timestamp created_at = 3 [json_name = "createdAt"]; + // The last time at which the workflow instance had its state changed. + google.protobuf.Timestamp last_updated_at = 4 [json_name = "lastUpdatedAt"]; + // The current status of the workflow instance, for example, "PENDING", "RUNNING", "SUSPENDED", "COMPLETED", "FAILED", and "TERMINATED". + string runtime_status = 5 [json_name = "runtimeStatus"]; + // Additional component-specific properties of the workflow instance. + map properties = 6; +} + +// StartWorkflowRequest is the request for StartWorkflowBeta1. +message StartWorkflowRequest { + // The ID to assign to the started workflow instance. If empty, a random ID is generated. + string instance_id = 1 [json_name = "instanceID"]; + // Name of the workflow component. + string workflow_component = 2 [json_name = "workflowComponent"]; + // Name of the workflow. + string workflow_name = 3 [json_name = "workflowName"]; + // Additional component-specific options for starting the workflow instance. + map options = 4; + // Input data for the workflow instance. + bytes input = 5; +} + +// StartWorkflowResponse is the response for StartWorkflowBeta1. +message StartWorkflowResponse { + // ID of the started workflow instance. + string instance_id = 1 [json_name = "instanceID"]; +} + +// TerminateWorkflowRequest is the request for TerminateWorkflowBeta1. +message TerminateWorkflowRequest { + // ID of the workflow instance to terminate. + string instance_id = 1 [json_name = "instanceID"]; + // Name of the workflow component. + string workflow_component = 2 [json_name = "workflowComponent"]; +} + +// PauseWorkflowRequest is the request for PauseWorkflowBeta1. +message PauseWorkflowRequest { + // ID of the workflow instance to pause. + string instance_id = 1 [json_name = "instanceID"]; + // Name of the workflow component. + string workflow_component = 2 [json_name = "workflowComponent"]; +} + +// ResumeWorkflowRequest is the request for ResumeWorkflowBeta1. +message ResumeWorkflowRequest { + // ID of the workflow instance to resume. + string instance_id = 1 [json_name = "instanceID"]; + // Name of the workflow component. + string workflow_component = 2 [json_name = "workflowComponent"]; +} + +// RaiseEventWorkflowRequest is the request for RaiseEventWorkflowBeta1. +message RaiseEventWorkflowRequest { + // ID of the workflow instance to raise an event for. + string instance_id = 1 [json_name = "instanceID"]; + // Name of the workflow component. + string workflow_component = 2 [json_name = "workflowComponent"]; + // Name of the event. + string event_name = 3 [json_name = "eventName"]; + // Data associated with the event. + bytes event_data = 4; +} + +// PurgeWorkflowRequest is the request for PurgeWorkflowBeta1. +message PurgeWorkflowRequest { + // ID of the workflow instance to purge. + string instance_id = 1 [json_name = "instanceID"]; + // Name of the workflow component. + string workflow_component = 2 [json_name = "workflowComponent"]; +} + +// ShutdownRequest is the request for Shutdown. +message ShutdownRequest { + // Empty +} From 40ff01ec394d348b3c107a39649b17cee6ca984f Mon Sep 17 00:00:00 2001 From: Elena Kolevska Date: Thu, 15 Feb 2024 23:24:01 +0000 Subject: [PATCH 3/3] uses GetMetadataRequest Signed-off-by: Elena Kolevska --- src/client.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/client.rs b/src/client.rs index 412ba584..e720a4ab 100644 --- a/src/client.rs +++ b/src/client.rs @@ -459,7 +459,7 @@ impl DaprInterface for dapr_v1::dapr_client::DaprClient { } async fn get_metadata(&mut self) -> Result { - Ok(self.get_metadata(Request::new(())).await?.into_inner()) + Ok(self.get_metadata(GetMetadataRequest {}).await?.into_inner()) } async fn invoke_actor( @@ -539,6 +539,9 @@ pub type GetSecretResponse = dapr_v1::GetSecretResponse; /// A response from getting metadata pub type GetMetadataResponse = dapr_v1::GetMetadataResponse; +/// A request for getting metadata +pub type GetMetadataRequest = dapr_v1::GetMetadataRequest; + /// A request for setting metadata pub type SetMetadataRequest = dapr_v1::SetMetadataRequest;