dapr-ruby 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +7 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +69 -0
- data/LICENSE.txt +21 -0
- data/README.md +79 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/regen_client.sh +21 -0
- data/bin/setup +8 -0
- data/dapr/proto/common/v1/common.proto +160 -0
- data/dapr/proto/runtime/v1/appcallback.proto +313 -0
- data/dapr/proto/runtime/v1/dapr.proto +1044 -0
- data/dapr.gemspec +46 -0
- data/example.rb +25 -0
- data/examples/app-callback/README.md +25 -0
- data/examples/app-callback/app_callback_example.rb +15 -0
- data/examples/app-callback/app_callback_service.rb +53 -0
- data/examples/invoke-simple/README.md +17 -0
- data/examples/invoke-simple/invoke-caller.rb +19 -0
- data/examples/invoke-simple/invoke-receiver.rb +27 -0
- data/examples/pubsub-simple/README.md +13 -0
- data/examples/pubsub-simple/publisher.rb +19 -0
- data/examples/pubsub-simple/subscriber.rb +32 -0
- data/examples/state-store/README.md +7 -0
- data/examples/state-store/state-store.rb +29 -0
- data/lib/dapr/proto/common/v1/common_pb.rb +90 -0
- data/lib/dapr/proto/runtime/v1/appcallback_pb.rb +139 -0
- data/lib/dapr/proto/runtime/v1/appcallback_services_pb.rb +90 -0
- data/lib/dapr/proto/runtime/v1/dapr_pb.rb +526 -0
- data/lib/dapr/proto/runtime/v1/dapr_services_pb.rb +138 -0
- data/lib/dapr/version.rb +3 -0
- data/lib/dapr-client.rb +3 -0
- data/lib/dapr.rb +1 -0
- metadata +158 -0
data/dapr.gemspec
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "dapr/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "dapr-ruby"
|
8
|
+
spec.version = Dapr::VERSION
|
9
|
+
spec.authors = ["tjwp","bougyman"]
|
10
|
+
spec.email = ["tjwp@users.noreply.github.com","bougyman@users.noreply.github.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Dapr SDK for Ruby}
|
13
|
+
spec.description = %q{Dapr SDK for Ruby}
|
14
|
+
spec.homepage = "https://github.com/rubyists/dapr-ruby-sdk"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
19
|
+
if spec.respond_to?(:metadata)
|
20
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
21
|
+
|
22
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
23
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
24
|
+
spec.metadata["changelog_uri"] = "#{spec.homepage}/CHANGELOG.md"
|
25
|
+
spec.metadata["github_repo"] = "ssh://github.com/rubyists/dapr-ruby-sdk"
|
26
|
+
else
|
27
|
+
raise "RubyGems 2.0 or newer is required to protect against " \
|
28
|
+
"public gem pushes."
|
29
|
+
end
|
30
|
+
|
31
|
+
# Specify which files should be added to the gem when it is released.
|
32
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
33
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
34
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
35
|
+
end
|
36
|
+
spec.bindir = "exe"
|
37
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
38
|
+
spec.require_paths = ["lib"]
|
39
|
+
|
40
|
+
spec.add_runtime_dependency "google-protobuf"
|
41
|
+
|
42
|
+
spec.add_development_dependency "grpc"
|
43
|
+
spec.add_development_dependency "grpc-tools"
|
44
|
+
spec.add_development_dependency "rake"
|
45
|
+
spec.add_development_dependency "rspec"
|
46
|
+
end
|
data/example.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "dapr/proto/runtime/v1/dapr_services_pb"
|
4
|
+
|
5
|
+
port = ENV.fetch('DAPR_GRPC_PORT', '5001')
|
6
|
+
dapr_uri = "localhost:#{port}"
|
7
|
+
|
8
|
+
client = Dapr::Proto::Runtime::V1::Dapr::Stub.new(dapr_uri, :this_channel_is_insecure)
|
9
|
+
data = 'lala'
|
10
|
+
client.publish_event(Dapr::Proto::Runtime::V1::PublishEventRequest.new(pubsub_name: 'pubsub', topic: 'sith', data: 'lala'))
|
11
|
+
puts('Published')
|
12
|
+
|
13
|
+
key = 'mykey'
|
14
|
+
store_name = 'statestore'
|
15
|
+
state = Dapr::Proto::Common::V1::StateItem.new(key: key, value: 'my state')
|
16
|
+
req = Dapr::Proto::Runtime::V1::SaveStateRequest.new(store_name: store_name, states: [state])
|
17
|
+
client.save_state(req)
|
18
|
+
puts('Saved!')
|
19
|
+
|
20
|
+
resp = client.get_state(Dapr::Proto::Runtime::V1::GetStateRequest.new(store_name: store_name, key: key))
|
21
|
+
puts('Got state!')
|
22
|
+
puts(resp)
|
23
|
+
|
24
|
+
client.delete_state(Dapr::Proto::Runtime::V1::DeleteStateRequest.new(store_name: store_name, key: key))
|
25
|
+
puts('Deleted!')
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# AppCallbackExample
|
2
|
+
|
3
|
+
Run the example service:
|
4
|
+
|
5
|
+
```bash
|
6
|
+
dapr run --app-id app-callback --app-protocol grpc --app-port 50051 \
|
7
|
+
-- bundle exec ruby app_callback_example.rb
|
8
|
+
```
|
9
|
+
|
10
|
+
Make a request to invoke a method:
|
11
|
+
|
12
|
+
```bash
|
13
|
+
dapr invoke --app-id app-callback --method foobar --data '{"foo": "bar"}'
|
14
|
+
```
|
15
|
+
|
16
|
+
Publish a message to a topic:
|
17
|
+
|
18
|
+
```bash
|
19
|
+
dapr publish -i app-callback --pubsub pubsub --topic "example" --data "5"
|
20
|
+
```
|
21
|
+
|
22
|
+
Invoke the binding:
|
23
|
+
```ruby
|
24
|
+
dapr run --app-id invoke-binding -- bundle exec ruby invoke-binding.rb
|
25
|
+
```
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative "./app_callback_service"
|
2
|
+
|
3
|
+
$stdout.sync = true
|
4
|
+
|
5
|
+
port = '0.0.0.0:50051'
|
6
|
+
s = GRPC::RpcServer.new
|
7
|
+
s.add_http2_port(port, :this_port_is_insecure)
|
8
|
+
GRPC.logger.info("... running insecurely on #{port}")
|
9
|
+
service = AppCallbackService
|
10
|
+
s.handle(service)
|
11
|
+
|
12
|
+
# Runs the server with SIGHUP, SIGINT and SIGQUIT signal handlers to
|
13
|
+
# gracefully shutdown.
|
14
|
+
# User could also choose to run server via call to run_till_terminated
|
15
|
+
s.run_till_terminated_or_interrupted([1, 'int', 'SIGQUIT'])
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "dapr/proto/runtime/v1/appcallback_services_pb"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
class AppCallbackService < Dapr::Proto::Runtime::V1::AppCallback::Service
|
7
|
+
Any = Google::Protobuf::Any
|
8
|
+
Protocol = Dapr::Proto::Runtime::V1
|
9
|
+
|
10
|
+
def on_invoke(invoke, _call)
|
11
|
+
# Be careful! method() is a builtin method in Ruby
|
12
|
+
method = invoke['method']
|
13
|
+
raw_data = invoke.data
|
14
|
+
puts "invoked method '#{method}' with data '#{raw_data}'!"
|
15
|
+
data = JSON.parse(raw_data.value) if raw_data&.value
|
16
|
+
result = { method: method, data: data }
|
17
|
+
Dapr::Proto::Common::V1::InvokeResponse.new(data: Any.new(value: result.to_json))
|
18
|
+
rescue => ex
|
19
|
+
Dapr::Proto::Common::V1::InvokeResponse.new(data: Any.new(value: { error: ex.inspect }.to_json))
|
20
|
+
end
|
21
|
+
|
22
|
+
def list_topic_subscriptions(_empty, _call)
|
23
|
+
puts "topics requested!"
|
24
|
+
pubsub_name = "pubsub"
|
25
|
+
Protocol::ListTopicSubscriptionsResponse.
|
26
|
+
new(subscriptions: Array(Protocol::TopicSubscription.new(pubsub_name: pubsub_name, topic: "example")))
|
27
|
+
end
|
28
|
+
|
29
|
+
def list_input_bindings(_empty, _call)
|
30
|
+
puts "bindings requested!"
|
31
|
+
bindings = %w(binding)
|
32
|
+
Protocol::ListInputBindingsResponse.new(bindings: bindings)
|
33
|
+
end
|
34
|
+
|
35
|
+
def on_binding_event(binding_event, _call)
|
36
|
+
puts "binding event!"
|
37
|
+
name = binding_event.name
|
38
|
+
raw_data = binding_event.data
|
39
|
+
_metadata = binding_event.metadata
|
40
|
+
puts "Binding Event: name:#{name}, data: #{raw_data}"
|
41
|
+
Protocol::BindingEventResponse.new # data: Any.new(value:)
|
42
|
+
end
|
43
|
+
|
44
|
+
def on_topic_event(topic_event, _call)
|
45
|
+
puts "topic event!"
|
46
|
+
topic = topic_event.topic
|
47
|
+
raw_data = topic_event.data
|
48
|
+
puts "Topic Event: topic:#{topic}, data: #{raw_data}"
|
49
|
+
Google::Protobuf::Empty.new
|
50
|
+
rescue => ex
|
51
|
+
puts ex.inspect
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Example - Invoke
|
2
|
+
|
3
|
+
This example utilizes a receiver and a caller for the OnInvoke / Invoke
|
4
|
+
functionality. It will create a gRPC server and bind the on_invoke method,
|
5
|
+
which gets called after a client sends a direct method invocation.
|
6
|
+
|
7
|
+
## Running
|
8
|
+
|
9
|
+
To run this example, use the following code:
|
10
|
+
|
11
|
+
```
|
12
|
+
# 1. Start Receiver (expose gRPC receiver server on port 50051)
|
13
|
+
dapr run --app-id invoke-receiver --app-protocol grpc --app-port 50051 -- bundle exec ruby invoke-receiver.rb
|
14
|
+
|
15
|
+
# 2. Start Caller
|
16
|
+
dapr run --app-id invoke-caller -- bundle exec ruby invoke-caller.rb
|
17
|
+
```
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "dapr/proto/runtime/v1/dapr_services_pb"
|
4
|
+
|
5
|
+
$stdout.sync = true
|
6
|
+
|
7
|
+
port = ENV["DAPR_GRPC_PORT"]
|
8
|
+
stub = Dapr::Proto::Runtime::V1::Dapr::Stub.new("localhost:#{port}", :this_channel_is_insecure)
|
9
|
+
request = Dapr::Proto::Runtime::V1::InvokeServiceRequest.
|
10
|
+
new(id: "invoke-receiver",
|
11
|
+
message: Dapr::Proto::Common::V1::InvokeRequest.new(
|
12
|
+
method: "my-method",
|
13
|
+
data: Google::Protobuf::Any.new(value: "TEST MESSAGE"),
|
14
|
+
content_type: "text/plain; charset=UTF-8"
|
15
|
+
))
|
16
|
+
response = stub.invoke_service(request)
|
17
|
+
|
18
|
+
puts response.content_type
|
19
|
+
puts response.data.value
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
$stdout.sync = true
|
4
|
+
|
5
|
+
require "dapr/proto/runtime/v1/appcallback_services_pb"
|
6
|
+
|
7
|
+
class InvokeReceiverService < Dapr::Proto::Runtime::V1::AppCallback::Service
|
8
|
+
Any = Google::Protobuf::Any
|
9
|
+
|
10
|
+
def on_invoke(invoke, _call)
|
11
|
+
content_type = "text/plain; charset=UTF-8"
|
12
|
+
puts "Invoked method '#{invoke["method"]}' with value '#{invoke["data"]["value"]}'"
|
13
|
+
data = if invoke["method"] == "my-method"
|
14
|
+
Any.new(value: "INVOKE_RECEIVED")
|
15
|
+
else
|
16
|
+
Any.new(value: "unsupported method")
|
17
|
+
end
|
18
|
+
|
19
|
+
Dapr::Proto::Common::V1::InvokeResponse.new(data: data, content_type: content_type)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
server = GRPC::RpcServer.new
|
24
|
+
server.add_http2_port("0.0.0.0:50051", :this_port_is_insecure)
|
25
|
+
server.handle(InvokeReceiverService)
|
26
|
+
|
27
|
+
server.run_till_terminated_or_interrupted([1, +"int", +"SIGQUIT"])
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Example - Pub/Sub
|
2
|
+
|
3
|
+
## Running
|
4
|
+
|
5
|
+
To run this example, use the following commands:
|
6
|
+
|
7
|
+
```bash
|
8
|
+
# 1. Start Subscriber (expose gRPC receiver server on port 50051)
|
9
|
+
dapr run --app-id subscriber --app-protocol grpc --app-port 50051 -- bundle exec ruby subscriber.rb
|
10
|
+
|
11
|
+
# 2. Start Publisher
|
12
|
+
dapr run --app-id publisher -- bundle exec ruby publisher.rb
|
13
|
+
```
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "dapr/proto/runtime/v1/dapr_services_pb"
|
4
|
+
|
5
|
+
$stdout.sync = true
|
6
|
+
|
7
|
+
RuntimeV1 = Dapr::Proto::Runtime::V1
|
8
|
+
|
9
|
+
port = ENV["DAPR_GRPC_PORT"]
|
10
|
+
client = Dapr::Proto::Runtime::V1::Dapr::Stub.new("localhost:#{port}", :this_channel_is_insecure)
|
11
|
+
|
12
|
+
# This matches the name of the pubsub component used
|
13
|
+
pubsub_name = "pubsub"
|
14
|
+
|
15
|
+
data = "ACTION=1"
|
16
|
+
client.publish_event(RuntimeV1::PublishEventRequest.
|
17
|
+
new(pubsub_name: pubsub_name, topic: "TOPIC_A", data: data))
|
18
|
+
|
19
|
+
puts "Published #{data}"
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "dapr/proto/runtime/v1/appcallback_services_pb"
|
4
|
+
|
5
|
+
$stdout.sync = true
|
6
|
+
|
7
|
+
class Subscriber < Dapr::Proto::Runtime::V1::AppCallback::Service
|
8
|
+
RuntimeV1 = Dapr::Proto::Runtime::V1
|
9
|
+
|
10
|
+
|
11
|
+
# Dapr will call this method to get the list of topics the app
|
12
|
+
# wants to subscribe to. In this example, we are telling Dapr
|
13
|
+
# To subscribe to a topic named TOPIC_A
|
14
|
+
def list_topic_subscriptions(_empty, _call)
|
15
|
+
# Name of the configured pubsub component
|
16
|
+
pubsub_name = "pubsub"
|
17
|
+
|
18
|
+
RuntimeV1::ListTopicSubscriptionsResponse.new(
|
19
|
+
subscriptions: Array(RuntimeV1::TopicSubscription.new(pubsub_name: pubsub_name, topic: "TOPIC_A")))
|
20
|
+
end
|
21
|
+
|
22
|
+
def on_topic_event(topic_event, _call)
|
23
|
+
puts "Event received #{topic_event}!"
|
24
|
+
Google::Protobuf::Empty.new
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
server = GRPC::RpcServer.new
|
29
|
+
server.add_http2_port("0.0.0.0:50051", :this_port_is_insecure)
|
30
|
+
server.handle(Subscriber)
|
31
|
+
|
32
|
+
server.run_till_terminated_or_interrupted([1, +"int", +"SIGQUIT"])
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "dapr/proto/runtime/v1/dapr_services_pb"
|
4
|
+
|
5
|
+
$stdout.sync = true
|
6
|
+
|
7
|
+
RuntimeV1 = Dapr::Proto::Runtime::V1
|
8
|
+
|
9
|
+
port = ENV["DAPR_GRPC_PORT"]
|
10
|
+
client = Dapr::Proto::Runtime::V1::Dapr::Stub.new("localhost:#{port}", :this_channel_is_insecure)
|
11
|
+
|
12
|
+
key = "my-key"
|
13
|
+
store_name = "statestore"
|
14
|
+
|
15
|
+
state = Dapr::Proto::Common::V1::StateItem.
|
16
|
+
new(key: key, value: "my state")
|
17
|
+
|
18
|
+
client.save_state(RuntimeV1::SaveStateRequest.
|
19
|
+
new(store_name: store_name, states: Array(state)))
|
20
|
+
puts "Saved!"
|
21
|
+
|
22
|
+
response = client.get_state(RuntimeV1::GetStateRequest.
|
23
|
+
new(store_name: store_name, key: key))
|
24
|
+
puts "Fetched!"
|
25
|
+
puts response.inspect
|
26
|
+
|
27
|
+
client.delete_state(RuntimeV1::DeleteStateRequest.
|
28
|
+
new(store_name: store_name, key: key))
|
29
|
+
puts "Deleted!"
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: dapr/proto/common/v1/common.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
require 'google/protobuf/any_pb'
|
7
|
+
|
8
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
9
|
+
add_file("dapr/proto/common/v1/common.proto", :syntax => :proto3) do
|
10
|
+
add_message "dapr.proto.common.v1.HTTPExtension" do
|
11
|
+
optional :verb, :enum, 1, "dapr.proto.common.v1.HTTPExtension.Verb"
|
12
|
+
optional :querystring, :string, 2
|
13
|
+
end
|
14
|
+
add_enum "dapr.proto.common.v1.HTTPExtension.Verb" do
|
15
|
+
value :NONE, 0
|
16
|
+
value :GET, 1
|
17
|
+
value :HEAD, 2
|
18
|
+
value :POST, 3
|
19
|
+
value :PUT, 4
|
20
|
+
value :DELETE, 5
|
21
|
+
value :CONNECT, 6
|
22
|
+
value :OPTIONS, 7
|
23
|
+
value :TRACE, 8
|
24
|
+
value :PATCH, 9
|
25
|
+
end
|
26
|
+
add_message "dapr.proto.common.v1.InvokeRequest" do
|
27
|
+
optional :method, :string, 1
|
28
|
+
optional :data, :message, 2, "google.protobuf.Any"
|
29
|
+
optional :content_type, :string, 3
|
30
|
+
optional :http_extension, :message, 4, "dapr.proto.common.v1.HTTPExtension"
|
31
|
+
end
|
32
|
+
add_message "dapr.proto.common.v1.InvokeResponse" do
|
33
|
+
optional :data, :message, 1, "google.protobuf.Any"
|
34
|
+
optional :content_type, :string, 2
|
35
|
+
end
|
36
|
+
add_message "dapr.proto.common.v1.StreamPayload" do
|
37
|
+
optional :data, :bytes, 1
|
38
|
+
optional :seq, :uint64, 2
|
39
|
+
end
|
40
|
+
add_message "dapr.proto.common.v1.StateItem" do
|
41
|
+
optional :key, :string, 1
|
42
|
+
optional :value, :bytes, 2
|
43
|
+
optional :etag, :message, 3, "dapr.proto.common.v1.Etag"
|
44
|
+
map :metadata, :string, :string, 4
|
45
|
+
optional :options, :message, 5, "dapr.proto.common.v1.StateOptions"
|
46
|
+
end
|
47
|
+
add_message "dapr.proto.common.v1.Etag" do
|
48
|
+
optional :value, :string, 1
|
49
|
+
end
|
50
|
+
add_message "dapr.proto.common.v1.StateOptions" do
|
51
|
+
optional :concurrency, :enum, 1, "dapr.proto.common.v1.StateOptions.StateConcurrency"
|
52
|
+
optional :consistency, :enum, 2, "dapr.proto.common.v1.StateOptions.StateConsistency"
|
53
|
+
end
|
54
|
+
add_enum "dapr.proto.common.v1.StateOptions.StateConcurrency" do
|
55
|
+
value :CONCURRENCY_UNSPECIFIED, 0
|
56
|
+
value :CONCURRENCY_FIRST_WRITE, 1
|
57
|
+
value :CONCURRENCY_LAST_WRITE, 2
|
58
|
+
end
|
59
|
+
add_enum "dapr.proto.common.v1.StateOptions.StateConsistency" do
|
60
|
+
value :CONSISTENCY_UNSPECIFIED, 0
|
61
|
+
value :CONSISTENCY_EVENTUAL, 1
|
62
|
+
value :CONSISTENCY_STRONG, 2
|
63
|
+
end
|
64
|
+
add_message "dapr.proto.common.v1.ConfigurationItem" do
|
65
|
+
optional :value, :string, 1
|
66
|
+
optional :version, :string, 2
|
67
|
+
map :metadata, :string, :string, 3
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
module Dapr
|
73
|
+
module Proto
|
74
|
+
module Common
|
75
|
+
module V1
|
76
|
+
HTTPExtension = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.common.v1.HTTPExtension").msgclass
|
77
|
+
HTTPExtension::Verb = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.common.v1.HTTPExtension.Verb").enummodule
|
78
|
+
InvokeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.common.v1.InvokeRequest").msgclass
|
79
|
+
InvokeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.common.v1.InvokeResponse").msgclass
|
80
|
+
StreamPayload = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.common.v1.StreamPayload").msgclass
|
81
|
+
StateItem = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.common.v1.StateItem").msgclass
|
82
|
+
Etag = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.common.v1.Etag").msgclass
|
83
|
+
StateOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.common.v1.StateOptions").msgclass
|
84
|
+
StateOptions::StateConcurrency = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.common.v1.StateOptions.StateConcurrency").enummodule
|
85
|
+
StateOptions::StateConsistency = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.common.v1.StateOptions.StateConsistency").enummodule
|
86
|
+
ConfigurationItem = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.common.v1.ConfigurationItem").msgclass
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: dapr/proto/runtime/v1/appcallback.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
require 'google/protobuf/empty_pb'
|
7
|
+
require 'dapr/proto/common/v1/common_pb'
|
8
|
+
require 'google/protobuf/struct_pb'
|
9
|
+
|
10
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
11
|
+
add_file("dapr/proto/runtime/v1/appcallback.proto", :syntax => :proto3) do
|
12
|
+
add_message "dapr.proto.runtime.v1.TopicEventRequest" do
|
13
|
+
optional :id, :string, 1
|
14
|
+
optional :source, :string, 2
|
15
|
+
optional :type, :string, 3
|
16
|
+
optional :spec_version, :string, 4
|
17
|
+
optional :data_content_type, :string, 5
|
18
|
+
optional :data, :bytes, 7
|
19
|
+
optional :topic, :string, 6
|
20
|
+
optional :pubsub_name, :string, 8
|
21
|
+
optional :path, :string, 9
|
22
|
+
optional :extensions, :message, 10, "google.protobuf.Struct"
|
23
|
+
end
|
24
|
+
add_message "dapr.proto.runtime.v1.TopicEventResponse" do
|
25
|
+
optional :status, :enum, 1, "dapr.proto.runtime.v1.TopicEventResponse.TopicEventResponseStatus"
|
26
|
+
end
|
27
|
+
add_enum "dapr.proto.runtime.v1.TopicEventResponse.TopicEventResponseStatus" do
|
28
|
+
value :SUCCESS, 0
|
29
|
+
value :RETRY, 1
|
30
|
+
value :DROP, 2
|
31
|
+
end
|
32
|
+
add_message "dapr.proto.runtime.v1.TopicEventCERequest" do
|
33
|
+
optional :id, :string, 1
|
34
|
+
optional :source, :string, 2
|
35
|
+
optional :type, :string, 3
|
36
|
+
optional :spec_version, :string, 4
|
37
|
+
optional :data_content_type, :string, 5
|
38
|
+
optional :data, :bytes, 6
|
39
|
+
optional :extensions, :message, 7, "google.protobuf.Struct"
|
40
|
+
end
|
41
|
+
add_message "dapr.proto.runtime.v1.TopicEventBulkRequestEntry" do
|
42
|
+
optional :entry_id, :string, 1
|
43
|
+
optional :content_type, :string, 4
|
44
|
+
map :metadata, :string, :string, 5
|
45
|
+
oneof :event do
|
46
|
+
optional :bytes, :bytes, 2
|
47
|
+
optional :cloud_event, :message, 3, "dapr.proto.runtime.v1.TopicEventCERequest"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
add_message "dapr.proto.runtime.v1.TopicEventBulkRequest" do
|
51
|
+
optional :id, :string, 1
|
52
|
+
repeated :entries, :message, 2, "dapr.proto.runtime.v1.TopicEventBulkRequestEntry"
|
53
|
+
map :metadata, :string, :string, 3
|
54
|
+
optional :topic, :string, 4
|
55
|
+
optional :pubsub_name, :string, 5
|
56
|
+
optional :type, :string, 6
|
57
|
+
optional :path, :string, 7
|
58
|
+
end
|
59
|
+
add_message "dapr.proto.runtime.v1.TopicEventBulkResponseEntry" do
|
60
|
+
optional :entry_id, :string, 1
|
61
|
+
optional :status, :enum, 2, "dapr.proto.runtime.v1.TopicEventResponse.TopicEventResponseStatus"
|
62
|
+
end
|
63
|
+
add_message "dapr.proto.runtime.v1.TopicEventBulkResponse" do
|
64
|
+
repeated :statuses, :message, 1, "dapr.proto.runtime.v1.TopicEventBulkResponseEntry"
|
65
|
+
end
|
66
|
+
add_message "dapr.proto.runtime.v1.BindingEventRequest" do
|
67
|
+
optional :name, :string, 1
|
68
|
+
optional :data, :bytes, 2
|
69
|
+
map :metadata, :string, :string, 3
|
70
|
+
end
|
71
|
+
add_message "dapr.proto.runtime.v1.BindingEventResponse" do
|
72
|
+
optional :store_name, :string, 1
|
73
|
+
repeated :states, :message, 2, "dapr.proto.common.v1.StateItem"
|
74
|
+
repeated :to, :string, 3
|
75
|
+
optional :data, :bytes, 4
|
76
|
+
optional :concurrency, :enum, 5, "dapr.proto.runtime.v1.BindingEventResponse.BindingEventConcurrency"
|
77
|
+
end
|
78
|
+
add_enum "dapr.proto.runtime.v1.BindingEventResponse.BindingEventConcurrency" do
|
79
|
+
value :SEQUENTIAL, 0
|
80
|
+
value :PARALLEL, 1
|
81
|
+
end
|
82
|
+
add_message "dapr.proto.runtime.v1.ListTopicSubscriptionsResponse" do
|
83
|
+
repeated :subscriptions, :message, 1, "dapr.proto.runtime.v1.TopicSubscription"
|
84
|
+
end
|
85
|
+
add_message "dapr.proto.runtime.v1.TopicSubscription" do
|
86
|
+
optional :pubsub_name, :string, 1
|
87
|
+
optional :topic, :string, 2
|
88
|
+
map :metadata, :string, :string, 3
|
89
|
+
optional :routes, :message, 5, "dapr.proto.runtime.v1.TopicRoutes"
|
90
|
+
optional :dead_letter_topic, :string, 6
|
91
|
+
optional :bulk_subscribe, :message, 7, "dapr.proto.runtime.v1.BulkSubscribeConfig"
|
92
|
+
end
|
93
|
+
add_message "dapr.proto.runtime.v1.TopicRoutes" do
|
94
|
+
repeated :rules, :message, 1, "dapr.proto.runtime.v1.TopicRule"
|
95
|
+
optional :default, :string, 2
|
96
|
+
end
|
97
|
+
add_message "dapr.proto.runtime.v1.TopicRule" do
|
98
|
+
optional :match, :string, 1
|
99
|
+
optional :path, :string, 2
|
100
|
+
end
|
101
|
+
add_message "dapr.proto.runtime.v1.BulkSubscribeConfig" do
|
102
|
+
optional :enabled, :bool, 1
|
103
|
+
optional :max_messages_count, :int32, 2
|
104
|
+
optional :max_await_duration_ms, :int32, 3
|
105
|
+
end
|
106
|
+
add_message "dapr.proto.runtime.v1.ListInputBindingsResponse" do
|
107
|
+
repeated :bindings, :string, 1
|
108
|
+
end
|
109
|
+
add_message "dapr.proto.runtime.v1.HealthCheckResponse" do
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
module Dapr
|
115
|
+
module Proto
|
116
|
+
module Runtime
|
117
|
+
module V1
|
118
|
+
TopicEventRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.TopicEventRequest").msgclass
|
119
|
+
TopicEventResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.TopicEventResponse").msgclass
|
120
|
+
TopicEventResponse::TopicEventResponseStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.TopicEventResponse.TopicEventResponseStatus").enummodule
|
121
|
+
TopicEventCERequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.TopicEventCERequest").msgclass
|
122
|
+
TopicEventBulkRequestEntry = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.TopicEventBulkRequestEntry").msgclass
|
123
|
+
TopicEventBulkRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.TopicEventBulkRequest").msgclass
|
124
|
+
TopicEventBulkResponseEntry = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.TopicEventBulkResponseEntry").msgclass
|
125
|
+
TopicEventBulkResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.TopicEventBulkResponse").msgclass
|
126
|
+
BindingEventRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.BindingEventRequest").msgclass
|
127
|
+
BindingEventResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.BindingEventResponse").msgclass
|
128
|
+
BindingEventResponse::BindingEventConcurrency = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.BindingEventResponse.BindingEventConcurrency").enummodule
|
129
|
+
ListTopicSubscriptionsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.ListTopicSubscriptionsResponse").msgclass
|
130
|
+
TopicSubscription = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.TopicSubscription").msgclass
|
131
|
+
TopicRoutes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.TopicRoutes").msgclass
|
132
|
+
TopicRule = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.TopicRule").msgclass
|
133
|
+
BulkSubscribeConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.BulkSubscribeConfig").msgclass
|
134
|
+
ListInputBindingsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.ListInputBindingsResponse").msgclass
|
135
|
+
HealthCheckResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("dapr.proto.runtime.v1.HealthCheckResponse").msgclass
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# Source: dapr/proto/runtime/v1/appcallback.proto for package 'dapr.proto.runtime.v1'
|
3
|
+
# Original file comments:
|
4
|
+
#
|
5
|
+
# Copyright 2021 The Dapr Authors
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'grpc'
|
18
|
+
require 'dapr/proto/runtime/v1/appcallback_pb'
|
19
|
+
|
20
|
+
module Dapr
|
21
|
+
module Proto
|
22
|
+
module Runtime
|
23
|
+
module V1
|
24
|
+
module AppCallback
|
25
|
+
# AppCallback V1 allows user application to interact with Dapr runtime.
|
26
|
+
# User application needs to implement AppCallback service if it needs to
|
27
|
+
# receive message from dapr runtime.
|
28
|
+
class Service
|
29
|
+
|
30
|
+
include ::GRPC::GenericService
|
31
|
+
|
32
|
+
self.marshal_class_method = :encode
|
33
|
+
self.unmarshal_class_method = :decode
|
34
|
+
self.service_name = 'dapr.proto.runtime.v1.AppCallback'
|
35
|
+
|
36
|
+
# Invokes service method with InvokeRequest.
|
37
|
+
rpc :OnInvoke, ::Dapr::Proto::Common::V1::InvokeRequest, ::Dapr::Proto::Common::V1::InvokeResponse
|
38
|
+
# Lists all topics subscribed by this app.
|
39
|
+
rpc :ListTopicSubscriptions, ::Google::Protobuf::Empty, ::Dapr::Proto::Runtime::V1::ListTopicSubscriptionsResponse
|
40
|
+
# Subscribes events from Pubsub
|
41
|
+
rpc :OnTopicEvent, ::Dapr::Proto::Runtime::V1::TopicEventRequest, ::Dapr::Proto::Runtime::V1::TopicEventResponse
|
42
|
+
# Lists all input bindings subscribed by this app.
|
43
|
+
rpc :ListInputBindings, ::Google::Protobuf::Empty, ::Dapr::Proto::Runtime::V1::ListInputBindingsResponse
|
44
|
+
# Listens events from the input bindings
|
45
|
+
#
|
46
|
+
# User application can save the states or send the events to the output
|
47
|
+
# bindings optionally by returning BindingEventResponse.
|
48
|
+
rpc :OnBindingEvent, ::Dapr::Proto::Runtime::V1::BindingEventRequest, ::Dapr::Proto::Runtime::V1::BindingEventResponse
|
49
|
+
end
|
50
|
+
|
51
|
+
Stub = Service.rpc_stub_class
|
52
|
+
end
|
53
|
+
module AppCallbackHealthCheck
|
54
|
+
# AppCallbackHealthCheck V1 is an optional extension to AppCallback V1 to implement
|
55
|
+
# the HealthCheck method.
|
56
|
+
class Service
|
57
|
+
|
58
|
+
include ::GRPC::GenericService
|
59
|
+
|
60
|
+
self.marshal_class_method = :encode
|
61
|
+
self.unmarshal_class_method = :decode
|
62
|
+
self.service_name = 'dapr.proto.runtime.v1.AppCallbackHealthCheck'
|
63
|
+
|
64
|
+
# Health check.
|
65
|
+
rpc :HealthCheck, ::Google::Protobuf::Empty, ::Dapr::Proto::Runtime::V1::HealthCheckResponse
|
66
|
+
end
|
67
|
+
|
68
|
+
Stub = Service.rpc_stub_class
|
69
|
+
end
|
70
|
+
module AppCallbackAlpha
|
71
|
+
# AppCallbackAlpha V1 is an optional extension to AppCallback V1 to opt
|
72
|
+
# for Alpha RPCs.
|
73
|
+
class Service
|
74
|
+
|
75
|
+
include ::GRPC::GenericService
|
76
|
+
|
77
|
+
self.marshal_class_method = :encode
|
78
|
+
self.unmarshal_class_method = :decode
|
79
|
+
self.service_name = 'dapr.proto.runtime.v1.AppCallbackAlpha'
|
80
|
+
|
81
|
+
# Subscribes bulk events from Pubsub
|
82
|
+
rpc :OnBulkTopicEventAlpha1, ::Dapr::Proto::Runtime::V1::TopicEventBulkRequest, ::Dapr::Proto::Runtime::V1::TopicEventBulkResponse
|
83
|
+
end
|
84
|
+
|
85
|
+
Stub = Service.rpc_stub_class
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|