evrblk 0.1.1 → 0.1.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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -5
  3. data/README.md +2 -4
  4. data/evrblk.gemspec +14 -12
  5. data/lib/evrblk/authn/alfa.rb +9 -9
  6. data/lib/evrblk/authn/base.rb +5 -11
  7. data/lib/evrblk/authn/bravo.rb +7 -6
  8. data/lib/evrblk/authn/request_signer.rb +14 -15
  9. data/lib/evrblk/grackle/v1beta/api_pb.rb +123 -0
  10. data/lib/evrblk/grackle/v1beta/api_services_pb.rb +69 -0
  11. data/lib/evrblk/grackle/v1beta/client.rb +235 -0
  12. data/lib/evrblk/hash_converter.rb +26 -27
  13. data/lib/evrblk/moab/v0/api_pb.rb +71 -0
  14. data/lib/evrblk/moab/v0/api_services_pb.rb +43 -0
  15. data/lib/evrblk/moab/{preview → v0}/client.rb +30 -20
  16. data/lib/evrblk/version.rb +1 -1
  17. data/lib/evrblk.rb +6 -15
  18. data/proto/evrblk/grackle/v1beta/api.proto +886 -0
  19. data/proto/{moab/preview → evrblk/moab/v0}/api.proto +93 -16
  20. metadata +12 -21
  21. data/lib/evrblk/grackle/preview/api_pb.rb +0 -71
  22. data/lib/evrblk/grackle/preview/api_services_pb.rb +0 -48
  23. data/lib/evrblk/grackle/preview/client.rb +0 -126
  24. data/lib/evrblk/iam/preview/api_pb.rb +0 -56
  25. data/lib/evrblk/iam/preview/api_services_pb.rb +0 -39
  26. data/lib/evrblk/iam/preview/client.rb +0 -81
  27. data/lib/evrblk/moab/preview/api_pb.rb +0 -63
  28. data/lib/evrblk/moab/preview/api_services_pb.rb +0 -41
  29. data/lib/evrblk/myaccount/preview/api_pb.rb +0 -25
  30. data/lib/evrblk/myaccount/preview/api_services_pb.rb +0 -26
  31. data/lib/evrblk/myaccount/preview/client.rb +0 -17
  32. data/proto/grackle/preview/api.proto +0 -325
  33. data/proto/iam/preview/api.proto +0 -230
  34. data/proto/myaccount/preview/api.proto +0 -68
  35. data/protogen.sh +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad3a1682922b7ec03a46f177f111edd072e2e590f78b1d72e23e64aadd4885fd
4
- data.tar.gz: 976cad671e9b673d98c9313dac6ee74c1fe225d53c8ec1135650e4957f7c86ed
3
+ metadata.gz: 987d5e32a3b83dc718879ed3f66c06e2cffa4b3f83635abdcac0ba7753e82540
4
+ data.tar.gz: ff9be1b0f73d3e787cac2fc0faee262641fd72816d70315e1295a3b259bcd181
5
5
  SHA512:
6
- metadata.gz: 455faacfcfa25f3f1cdda4b64409929170343b332c9be5cff906ad7b036ef93cce913a1534757354a64b76add10ad617373867e2ed00fe62b8057c19f56a7adb
7
- data.tar.gz: e97623e7d2f142a5f3dbae2f09f19a48f2e9fa480a71ff419d0325c2926f5d33b4df165df1e07b35d5a0531822130834d34d3fdd3a1b52d0da9d81c7bcefdc90
6
+ metadata.gz: a12c7f5c02476e0c4b0094fd9d4e40e9dd61cd8206d0fd45211f7a438c912c3153639c5147d6dbdaf04214773bb988a9aacf41541b61c7737a6cf00cea33e2c1
7
+ data.tar.gz: 9d54c027e5b1e44c42f46252363f5cb2f530e355ffc548827efec993c921727a6a4280aad2576acbb66d2ed29a25b0bdc4ccdb8d335e12a0cb34cdcf3cacce2e
data/Gemfile CHANGED
@@ -4,12 +4,12 @@ source "https://rubygems.org"
4
4
 
5
5
  gemspec
6
6
 
7
- gem "grpc"
8
7
  gem "base64"
8
+ gem "grpc"
9
9
 
10
10
  group :development do
11
- gem "rake"
12
11
  gem "grpc-tools"
12
+ gem "rake"
13
13
  gem "test-unit"
14
14
 
15
15
  # Rubocop changes pretty quickly: new cops get added and old cops change
@@ -17,7 +17,5 @@ group :development do
17
17
  # `Gemfile.lock` checked in, so to prevent good builds from suddenly going
18
18
  # bad, pin to a specific version number here. Try to keep this relatively
19
19
  # up-to-date, but it's not the end of the world if it's not.
20
- #
21
- # The latest version of rubocop is only compatible with Ruby 2.7+
22
- gem "rubocop", "1.57.2" if RUBY_VERSION >= "2.7"
20
+ gem "rubocop", "1.79.2"
23
21
  end
data/README.md CHANGED
@@ -14,14 +14,12 @@ require "evrblk"
14
14
  api_key_id = "key_alfa_z141pKeFzfmGGyYlUyPsbF"
15
15
  api_key_secret = <<-END
16
16
  -----BEGIN EC PRIVATE KEY-----
17
- MHcCAQEEIN33cCNGxsuxwMaJ2jWvWcgxBSVr8HV7WUUSKGc71/BtoAoGCCqGSM49
18
- AwEHoUQDQgAE0m8+ZVijytLp01dsupG7QF8ZpjX5UmP20wj/sluPdoHW3BgiiyCn
19
- /pMwYptUs0yJUtUZ/0wzEyp8PgAWWhxglw==
17
+ SoME=reAl=PriVaTE=keY
20
18
  -----END EC PRIVATE KEY-----
21
19
  END
22
20
 
23
21
  signer = Evrblk::AuthN::RequestSigner.new(api_key_id, api_key_secret)
24
- grackle_client = Evrblk::Grackle::Preview::Client.new(signer, "localhost:8000")
22
+ grackle_client = Evrblk::Grackle::V1Beta::Client.new(signer, "localhost:8000")
25
23
 
26
24
  grackle_client.create_namespace(
27
25
  name: "mynamespace"
data/evrblk.gemspec CHANGED
@@ -7,7 +7,7 @@ require "evrblk/version"
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "evrblk"
9
9
  s.version = Evrblk::VERSION
10
- s.required_ruby_version = ">= 2.3.0"
10
+ s.required_ruby_version = ">= 3.1.0"
11
11
  s.summary = "Ruby bindings for the Everblack API"
12
12
  s.description = "Build simple, secure, scalable systems with Everblack. " \
13
13
  "See https://everblack.dev for details."
@@ -24,19 +24,21 @@ Gem::Specification.new do |s|
24
24
  "github_repo" => "ssh://github.com/evrblk/evrblk-ruby",
25
25
  "homepage_uri" => "https://everblack.dev",
26
26
  "source_code_uri" => "https://github.com/evrblk/evrblk-ruby",
27
- "rubygems_mfa_required" => "false",
27
+ "rubygems_mfa_required" => "true"
28
28
  }
29
29
 
30
- ignored = Regexp.union(
31
- /\A\.editorconfig/,
32
- /\A\.git/,
33
- /\A\.rubocop/,
34
- /\A\.travis.yml/,
35
- /\A\.vscode/,
36
- /\A\.cursor/,
37
- /\Abin/,
38
- /\Atest/
30
+ s.files = Dir.glob(
31
+ [
32
+ "lib/**/*.rb",
33
+ "proto/**/*.proto",
34
+ "README.md",
35
+ "LICENSE",
36
+ "Gemfile",
37
+ "evrblk.gemspec"
38
+ ],
39
+ base: __dir__
39
40
  )
40
- s.files = `git ls-files`.split("\n").grep_v(ignored)
41
+ raise "Cannot build evrblk.gemspec: file glob returned no files" if s.files.empty?
42
+
41
43
  s.require_paths = ["lib"]
42
44
  end
@@ -1,19 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'openssl'
4
- require 'base64'
3
+ require "openssl"
4
+ require "base64"
5
5
 
6
6
  module Evrblk
7
7
  module AuthN
8
8
  class Alfa < Base
9
9
  def initialize(private_key_pem)
10
+ super()
11
+
10
12
  # Parse the PEM-encoded private key
11
13
  @private_key = OpenSSL::PKey::EC.new(private_key_pem)
12
14
 
13
15
  # Verify that the private key is using the correct curve
14
- unless @private_key.group.curve_name == 'prime256v1'
15
- raise "Invalid key: Expected secp256r1 (prime256v1) but got #{@private_key.group.curve_name}"
16
- end
16
+ return if @private_key.group.curve_name == "prime256v1"
17
+
18
+ raise "Invalid key: Expected secp256r1 (prime256v1) but got #{@private_key.group.curve_name}"
17
19
  end
18
20
 
19
21
  def sign(request, timestamp, service, method)
@@ -21,12 +23,10 @@ module Evrblk
21
23
  data = serialize_int64(timestamp) + service + "." + method + marshal_protobuf(request)
22
24
 
23
25
  # Sign a digest using SHA-256 with the private key
24
- signature = @private_key.sign(OpenSSL::Digest::SHA256.new, data)
26
+ signature = @private_key.sign(OpenSSL::Digest.new("SHA256"), data)
25
27
 
26
28
  # Convert the signature to Base64
27
- signature_base64 = Base64.strict_encode64(signature)
28
-
29
- return signature_base64
29
+ Base64.strict_encode64(signature)
30
30
  end
31
31
  end
32
32
  end
@@ -3,7 +3,7 @@
3
3
  module Evrblk
4
4
  module AuthN
5
5
  class Base
6
- def sign(request, timestamp)
6
+ def sign(_request, _timestamp)
7
7
  raise "Implement me"
8
8
  end
9
9
 
@@ -12,31 +12,25 @@ module Evrblk
12
12
  # Serializes an Int64 value into an 8-byte big-endian
13
13
  def serialize_int64(value)
14
14
  # Ensure the value is within the 64-bit integer range
15
- if value < -9223372036854775808 || value > 9223372036854775807
15
+ if value < -9_223_372_036_854_775_808 || value > 9_223_372_036_854_775_807
16
16
  raise ArgumentError, "Value is outside the Int64 range"
17
17
  end
18
18
 
19
19
  # Pack the integer into 8 bytes with big-endian byte order
20
- bytes = [value].pack('q>')
21
-
22
- return bytes
20
+ [value].pack("q>")
23
21
  end
24
22
 
25
23
  # Marshals a protobuf object into a byte array with deterministic serialization.
26
24
  # The deterministic option ensures consistent byte representation regardless of system.
27
25
  def marshal_protobuf(obj)
28
26
  # Ensure the object is a valid protobuf message
29
- unless obj.is_a?(Google::Protobuf::MessageExts)
30
- raise ArgumentError, "Object must be a Google::Protobuf message"
31
- end
27
+ raise ArgumentError, "Object must be a Google::Protobuf message" unless obj.is_a?(Google::Protobuf::MessageExts)
32
28
 
33
29
  # Marshal the protobuf object with deterministic serialization option
34
30
  options = { deterministic: true }
35
31
 
36
32
  # Encode the protobuf message to bytes
37
- bytes = obj.to_proto(options)
38
-
39
- return bytes
33
+ obj.to_proto(options)
40
34
  end
41
35
  end
42
36
  end
@@ -1,25 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'base64'
3
+ require "openssl"
4
+ require "base64"
4
5
 
5
6
  module Evrblk
6
7
  module AuthN
7
8
  class Bravo < Base
8
9
  def initialize(secret_base64)
10
+ super()
9
11
 
12
+ @secret = Base64.strict_decode64(secret_base64)
10
13
  end
11
14
 
12
15
  def sign(request, timestamp, service, method)
13
16
  # Serialize timestamp and request body
14
17
  data = serialize_int64(timestamp) + service + "." + method + marshal_protobuf(request)
15
18
 
16
- # Sign a digest using SHA-256 with the private key
17
- signature = @private_key.sign(OpenSSL::Digest::SHA256.new, data)
19
+ # Sign a digest using HMAC-SHA256 with the shared secret
20
+ signature = OpenSSL::HMAC.digest(OpenSSL::Digest.new("SHA256"), @secret, data)
18
21
 
19
22
  # Convert the signature to Base64
20
- signature_base64 = Base64.strict_encode64(signature)
21
-
22
- return signature_base64
23
+ Base64.strict_encode64(signature)
23
24
  end
24
25
  end
25
26
  end
@@ -4,16 +4,18 @@ module Evrblk
4
4
  module AuthN
5
5
  class RequestSigner
6
6
  def initialize(api_key_id, api_key_secret)
7
- if !api_key_id.match?(/key_(alfa|bravo)_[0-9a-zA-Z]+/)
8
- raise ArgumentError, "Invalid API Key ID #{api_key_id}"
7
+ unless api_key_id.match?(/key_(alfa|bravo)_[0-9a-zA-Z]+/)
8
+ raise ArgumentError,
9
+ "Invalid API Key ID #{api_key_id}"
9
10
  end
11
+
10
12
  @api_key_id = api_key_id
11
13
 
12
- if api_key_id.start_with?("key_alfa")
13
- @signer = Evrblk::AuthN::Alfa.new(api_key_secret)
14
- else
15
- @signer = Evrblk::AuthN::Bravo.new(api_key_secret)
16
- end
14
+ @signer = if api_key_id.start_with?("key_alfa")
15
+ Evrblk::AuthN::Alfa.new(api_key_secret)
16
+ else
17
+ Evrblk::AuthN::Bravo.new(api_key_secret)
18
+ end
17
19
  end
18
20
 
19
21
  def sign(request, service, method)
@@ -24,20 +26,17 @@ module Evrblk
24
26
  signature = @signer.sign(request, timestamp, service, method)
25
27
 
26
28
  # Return gRPC headers for authentication
27
- return {
28
- "evrblk-signature": signature,
29
+ {
30
+ "evrblk-signature": signature,
29
31
  "evrblk-api-key-id": @api_key_id,
30
- "evrblk-timestamp": timestamp.to_s,
32
+ "evrblk-timestamp": timestamp.to_s
31
33
  }
32
34
  end
33
35
  end
34
36
 
35
37
  class NoOpSigner
36
- def initialize()
37
- end
38
-
39
- def sign(request)
40
- return {}
38
+ def sign(_request, _service = nil, _method = nil)
39
+ {}
41
40
  end
42
41
  end
43
42
  end
@@ -0,0 +1,123 @@
1
+ # frozen_string_literal: true
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: evrblk/grackle/v1beta/api.proto
4
+
5
+ require 'google/protobuf'
6
+
7
+
8
+ descriptor_data = "\n\x1f\x65vrblk/grackle/v1beta/api.proto\x12\x19\x63om.evrblk.grackle.v1beta\"\xbf\x01\n\x16\x43reateNamespaceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12Q\n\x08metadata\x18\x03 \x03(\x0b\x32?.com.evrblk.grackle.v1beta.CreateNamespaceRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"R\n\x17\x43reateNamespaceResponse\x12\x37\n\tnamespace\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.Namespace\"@\n\x15ListNamespacesRequest\x12\x18\n\x10pagination_token\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\"\x94\x01\n\x16ListNamespacesResponse\x12\x38\n\nnamespaces\x18\x01 \x03(\x0b\x32$.com.evrblk.grackle.v1beta.Namespace\x12\x1d\n\x15next_pagination_token\x18\x02 \x01(\t\x12!\n\x19previous_pagination_token\x18\x03 \x01(\t\"-\n\x13GetNamespaceRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\"O\n\x14GetNamespaceResponse\x12\x37\n\tnamespace\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.Namespace\"0\n\x16\x44\x65leteNamespaceRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\"\x19\n\x17\x44\x65leteNamespaceResponse\"\xe3\x01\n\x16UpdateNamespaceRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12Q\n\x08metadata\x18\x03 \x03(\x0b\x32?.com.evrblk.grackle.v1beta.UpdateNamespaceRequest.MetadataEntry\x12\x18\n\x10\x65xpected_version\x18\x04 \x01(\x03\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"R\n\x17UpdateNamespaceResponse\x12\x37\n\tnamespace\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.Namespace\"\xf2\x01\n\x16\x43reateSemaphoreRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x16\n\x0esemaphore_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0f\n\x07permits\x18\x04 \x01(\x03\x12Q\n\x08metadata\x18\x05 \x03(\x0b\x32?.com.evrblk.grackle.v1beta.CreateSemaphoreRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"R\n\x17\x43reateSemaphoreResponse\x12\x37\n\tsemaphore\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.Semaphore\"X\n\x15ListSemaphoresRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x18\n\x10pagination_token\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\x05\"\x94\x01\n\x16ListSemaphoresResponse\x12\x38\n\nsemaphores\x18\x01 \x03(\x0b\x32$.com.evrblk.grackle.v1beta.Semaphore\x12\x1d\n\x15next_pagination_token\x18\x02 \x01(\t\x12!\n\x19previous_pagination_token\x18\x03 \x01(\t\"E\n\x13GetSemaphoreRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x16\n\x0esemaphore_name\x18\x02 \x01(\t\"O\n\x14GetSemaphoreResponse\x12\x37\n\tsemaphore\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.Semaphore\"\x89\x02\n\x17\x41\x63quireSemaphoreRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x16\n\x0esemaphore_name\x18\x02 \x01(\t\x12\x10\n\x08lease_id\x18\x03 \x01(\t\x12\x0e\n\x06weight\x18\x04 \x01(\x03\x12\x17\n\x0ftimeout_seconds\x18\x05 \x01(\x05\x12R\n\x08metadata\x18\x06 \x03(\x0b\x32@.com.evrblk.grackle.v1beta.AcquireSemaphoreRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8f\x01\n\x18\x41\x63quireSemaphoreResponse\x12\x37\n\tsemaphore\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.Semaphore\x12:\n\x07outcome\x18\x02 \x01(\x0e\x32).com.evrblk.grackle.v1beta.AcquireOutcome\"[\n\x17ReleaseSemaphoreRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x16\n\x0esemaphore_name\x18\x02 \x01(\t\x12\x10\n\x08lease_id\x18\x03 \x01(\t\"S\n\x18ReleaseSemaphoreResponse\x12\x37\n\tsemaphore\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.Semaphore\"\x8c\x02\n\x16UpdateSemaphoreRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x16\n\x0esemaphore_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0f\n\x07permits\x18\x04 \x01(\x03\x12Q\n\x08metadata\x18\x05 \x03(\x0b\x32?.com.evrblk.grackle.v1beta.UpdateSemaphoreRequest.MetadataEntry\x12\x18\n\x10\x65xpected_version\x18\x06 \x01(\x03\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"R\n\x17UpdateSemaphoreResponse\x12\x37\n\tsemaphore\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.Semaphore\"H\n\x16\x44\x65leteSemaphoreRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x16\n\x0esemaphore_name\x18\x02 \x01(\t\"\x19\n\x17\x44\x65leteSemaphoreResponse\"v\n\x1bListSemaphoreHoldersRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x16\n\x0esemaphore_name\x18\x02 \x01(\t\x12\x18\n\x10pagination_token\x18\x03 \x01(\t\x12\r\n\x05limit\x18\x04 \x01(\x05\"\x9d\x01\n\x1cListSemaphoreHoldersResponse\x12;\n\x07holders\x18\x01 \x03(\x0b\x32*.com.evrblk.grackle.v1beta.SemaphoreHolder\x12\x1d\n\x15next_pagination_token\x18\x02 \x01(\t\x12!\n\x19previous_pagination_token\x18\x03 \x01(\t\"\xe7\x01\n\x1b\x43reateSemaphoreLeaseRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x12\n\nprocess_id\x18\x02 \x01(\t\x12\x13\n\x0bttl_seconds\x18\x03 \x01(\x03\x12V\n\x08metadata\x18\x04 \x03(\x0b\x32\x44.com.evrblk.grackle.v1beta.CreateSemaphoreLeaseRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"O\n\x1c\x43reateSemaphoreLeaseResponse\x12/\n\x05lease\x18\x01 \x01(\x0b\x32 .com.evrblk.grackle.v1beta.Lease\"G\n\x1bRevokeSemaphoreLeaseRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x10\n\x08lease_id\x18\x02 \x01(\t\"\x1e\n\x1cRevokeSemaphoreLeaseResponse\"]\n\x1cRefreshSemaphoreLeaseRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x10\n\x08lease_id\x18\x02 \x01(\t\x12\x13\n\x0bttl_seconds\x18\x03 \x01(\x03\"P\n\x1dRefreshSemaphoreLeaseResponse\x12/\n\x05lease\x18\x01 \x01(\x0b\x32 .com.evrblk.grackle.v1beta.Lease\"]\n\x1aListSemaphoreLeasesRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x18\n\x10pagination_token\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\x05\"\x91\x01\n\x1bListSemaphoreLeasesResponse\x12\x30\n\x06leases\x18\x01 \x03(\x0b\x32 .com.evrblk.grackle.v1beta.Lease\x12\x1d\n\x15next_pagination_token\x18\x02 \x01(\t\x12!\n\x19previous_pagination_token\x18\x03 \x01(\t\"D\n\x18GetSemaphoreLeaseRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x10\n\x08lease_id\x18\x02 \x01(\t\"L\n\x19GetSemaphoreLeaseResponse\x12/\n\x05lease\x18\x01 \x01(\x0b\x32 .com.evrblk.grackle.v1beta.Lease\"\xc8\x01\n\x05Lease\x12\x10\n\x08lease_id\x18\x01 \x01(\t\x12\x12\n\nprocess_id\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x03\x12\x12\n\nexpires_at\x18\x04 \x01(\x03\x12@\n\x08metadata\x18\x05 \x03(\x0b\x32..com.evrblk.grackle.v1beta.Lease.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbd\x02\n\tSemaphore\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x03\x12\x12\n\nupdated_at\x18\x04 \x01(\x03\x12\x0f\n\x07version\x18\x05 \x01(\x03\x12\x0f\n\x07permits\x18\x06 \x01(\x03\x12\x14\n\x0c\x61\x63tive_holds\x18\x07 \x01(\x03\x12\x1c\n\x14\x61\x63tive_holders_count\x18\x08 \x01(\x03\x12\x44\n\x08metadata\x18\t \x03(\x0b\x32\x32.com.evrblk.grackle.v1beta.Semaphore.MetadataEntry\x12\x18\n\x10last_activity_at\x18\n \x01(\x03\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc3\x01\n\x0fSemaphoreHolder\x12\x10\n\x08lease_id\x18\x01 \x01(\t\x12\x11\n\tlocked_at\x18\x02 \x01(\x03\x12\x0e\n\x06weight\x18\x03 \x01(\x03\x12J\n\x08metadata\x18\x04 \x03(\x0b\x32\x38.com.evrblk.grackle.v1beta.SemaphoreHolder.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xae\x02\n\x16\x43reateWaitGroupRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x17\n\x0fwait_group_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0f\n\x07\x63ounter\x18\x04 \x01(\x03\x12\x12\n\nexpires_at\x18\x05 \x01(\x03\x12Q\n\x08metadata\x18\x06 \x03(\x0b\x32?.com.evrblk.grackle.v1beta.CreateWaitGroupRequest.MetadataEntry\x12%\n\x1d\x64\x65lete_after_finished_seconds\x18\x07 \x01(\x03\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"S\n\x17\x43reateWaitGroupResponse\x12\x38\n\nwait_group\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.WaitGroup\"\xc8\x02\n\x16UpdateWaitGroupRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x17\n\x0fwait_group_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0f\n\x07\x63ounter\x18\x04 \x01(\x03\x12\x12\n\nexpires_at\x18\x05 \x01(\x03\x12Q\n\x08metadata\x18\x06 \x03(\x0b\x32?.com.evrblk.grackle.v1beta.UpdateWaitGroupRequest.MetadataEntry\x12\x18\n\x10\x65xpected_version\x18\x07 \x01(\x03\x12%\n\x1d\x64\x65lete_after_finished_seconds\x18\x08 \x01(\x03\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"S\n\x17UpdateWaitGroupResponse\x12\x38\n\nwait_group\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.WaitGroup\"X\n\x15ListWaitGroupsRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x18\n\x10pagination_token\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\x05\"\x95\x01\n\x16ListWaitGroupsResponse\x12\x39\n\x0bwait_groups\x18\x01 \x03(\x0b\x32$.com.evrblk.grackle.v1beta.WaitGroup\x12\x1d\n\x15next_pagination_token\x18\x02 \x01(\t\x12!\n\x19previous_pagination_token\x18\x03 \x01(\t\"F\n\x13GetWaitGroupRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x17\n\x0fwait_group_name\x18\x02 \x01(\t\"P\n\x14GetWaitGroupResponse\x12\x38\n\nwait_group\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.WaitGroup\"I\n\x16\x44\x65leteWaitGroupRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x17\n\x0fwait_group_name\x18\x02 \x01(\t\"\x19\n\x17\x44\x65leteWaitGroupResponse\"\x90\x01\n CompleteJobsFromWaitGroupRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x17\n\x0fwait_group_name\x18\x02 \x01(\t\x12;\n\x04jobs\x18\x03 \x03(\x0b\x32-.com.evrblk.grackle.v1beta.CompleteJobRequest\"\xa4\x01\n\x12\x43ompleteJobRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12M\n\x08metadata\x18\x02 \x03(\x0b\x32;.com.evrblk.grackle.v1beta.CompleteJobRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"]\n!CompleteJobsFromWaitGroupResponse\x12\x38\n\nwait_group\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.WaitGroup\"}\n!ListWaitGroupCompletedJobsRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x17\n\x0fwait_group_name\x18\x02 \x01(\t\x12\x18\n\x10pagination_token\x18\x03 \x01(\t\x12\r\n\x05limit\x18\x04 \x01(\x05\"\x9d\x01\n\"ListWaitGroupCompletedJobsResponse\x12\x35\n\x04jobs\x18\x01 \x03(\x0b\x32\'.com.evrblk.grackle.v1beta.WaitGroupJob\x12\x1d\n\x15next_pagination_token\x18\x02 \x01(\t\x12!\n\x19previous_pagination_token\x18\x03 \x01(\t\"c\n\x17WaitForWaitGroupRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x17\n\x0fwait_group_name\x18\x02 \x01(\t\x12\x17\n\x0ftimeout_seconds\x18\x03 \x01(\x05\"\x96\x01\n\x18WaitForWaitGroupResponse\x12\x38\n\nwait_group\x18\x01 \x01(\x0b\x32$.com.evrblk.grackle.v1beta.WaitGroup\x12@\n\x07outcome\x18\x02 \x01(\x0e\x32/.com.evrblk.grackle.v1beta.WaitGroupWaitOutcome\"\xad\x03\n\tWaitGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x03\x12\x12\n\nupdated_at\x18\x04 \x01(\x03\x12\x0f\n\x07version\x18\x05 \x01(\x03\x12\x12\n\nexpires_at\x18\x06 \x01(\x03\x12\x0f\n\x07\x63ounter\x18\x07 \x01(\x03\x12\x16\n\x0e\x63ompleted_jobs\x18\x08 \x01(\x03\x12\x44\n\x08metadata\x18\t \x03(\x0b\x32\x32.com.evrblk.grackle.v1beta.WaitGroup.MetadataEntry\x12:\n\x06status\x18\n \x01(\x0e\x32*.com.evrblk.grackle.v1beta.WaitGroupStatus\x12%\n\x1d\x64\x65lete_after_finished_seconds\x18\x0b \x01(\x03\x12\x13\n\x0b\x66inished_at\x18\x0c \x01(\x03\x12\x18\n\x10last_activity_at\x18\r \x01(\x03\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xae\x01\n\x0cWaitGroupJob\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ompleted_at\x18\x02 \x01(\x03\x12G\n\x08metadata\x18\x03 \x03(\x0b\x32\x35.com.evrblk.grackle.v1beta.WaitGroupJob.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xfd\x01\n\x12\x41\x63quireLockRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x11\n\tlock_name\x18\x02 \x01(\t\x12\x11\n\texclusive\x18\x03 \x01(\x08\x12\x10\n\x08lease_id\x18\x04 \x01(\t\x12\x17\n\x0ftimeout_seconds\x18\x05 \x01(\x05\x12M\n\x08metadata\x18\x06 \x03(\x0b\x32;.com.evrblk.grackle.v1beta.AcquireLockRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xf6\x01\n\x13\x41\x63quireLockResponse\x12-\n\x04lock\x18\x01 \x01(\x0b\x32\x1f.com.evrblk.grackle.v1beta.Lock\x12:\n\x07outcome\x18\x02 \x01(\x0e\x32).com.evrblk.grackle.v1beta.AcquireOutcome\x12;\n\x06reason\x18\x03 \x01(\x0e\x32+.com.evrblk.grackle.v1beta.ContentionReason\x12\x37\n\x0e\x62locking_locks\x18\x04 \x03(\x0b\x32\x1f.com.evrblk.grackle.v1beta.Lock\"Q\n\x12ReleaseLockRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x11\n\tlock_name\x18\x02 \x01(\t\x12\x10\n\x08lease_id\x18\x03 \x01(\t\"D\n\x13ReleaseLockResponse\x12-\n\x04lock\x18\x01 \x01(\x0b\x32\x1f.com.evrblk.grackle.v1beta.Lock\";\n\x0eGetLockRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x11\n\tlock_name\x18\x02 \x01(\t\"@\n\x0fGetLockResponse\x12-\n\x04lock\x18\x01 \x01(\x0b\x32\x1f.com.evrblk.grackle.v1beta.Lock\">\n\x11\x44\x65leteLockRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x11\n\tlock_name\x18\x02 \x01(\t\"\x14\n\x12\x44\x65leteLockResponse\"S\n\x10ListLocksRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x18\n\x10pagination_token\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\x05\"\x85\x01\n\x11ListLocksResponse\x12.\n\x05locks\x18\x01 \x03(\x0b\x32\x1f.com.evrblk.grackle.v1beta.Lock\x12\x1d\n\x15next_pagination_token\x18\x02 \x01(\t\x12!\n\x19previous_pagination_token\x18\x03 \x01(\t\"\xdd\x01\n\x16\x43reateLockLeaseRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x12\n\nprocess_id\x18\x02 \x01(\t\x12\x13\n\x0bttl_seconds\x18\x03 \x01(\x03\x12Q\n\x08metadata\x18\x04 \x03(\x0b\x32?.com.evrblk.grackle.v1beta.CreateLockLeaseRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"J\n\x17\x43reateLockLeaseResponse\x12/\n\x05lease\x18\x01 \x01(\x0b\x32 .com.evrblk.grackle.v1beta.Lease\"B\n\x16RevokeLockLeaseRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x10\n\x08lease_id\x18\x02 \x01(\t\"\x19\n\x17RevokeLockLeaseResponse\"X\n\x17RefreshLockLeaseRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x10\n\x08lease_id\x18\x02 \x01(\t\x12\x13\n\x0bttl_seconds\x18\x03 \x01(\x03\"K\n\x18RefreshLockLeaseResponse\x12/\n\x05lease\x18\x01 \x01(\x0b\x32 .com.evrblk.grackle.v1beta.Lease\"X\n\x15ListLockLeasesRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x18\n\x10pagination_token\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\x05\"\x8c\x01\n\x16ListLockLeasesResponse\x12\x30\n\x06leases\x18\x01 \x03(\x0b\x32 .com.evrblk.grackle.v1beta.Lease\x12\x1d\n\x15next_pagination_token\x18\x02 \x01(\t\x12!\n\x19previous_pagination_token\x18\x03 \x01(\t\"?\n\x13GetLockLeaseRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x10\n\x08lease_id\x18\x02 \x01(\t\"G\n\x14GetLockLeaseResponse\x12/\n\x05lease\x18\x01 \x01(\x0b\x32 .com.evrblk.grackle.v1beta.Lease\"\xb3\x01\n\x04Lock\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x05state\x18\x02 \x01(\x0e\x32$.com.evrblk.grackle.v1beta.LockState\x12\x11\n\tlocked_at\x18\x03 \x01(\x03\x12;\n\x0clock_holders\x18\x04 \x03(\x0b\x32%.com.evrblk.grackle.v1beta.LockHolder\x12\x18\n\x10last_activity_at\x18\x05 \x01(\x03\"\xa9\x01\n\nLockHolder\x12\x10\n\x08lease_id\x18\x01 \x01(\t\x12\x11\n\tlocked_at\x18\x02 \x01(\x03\x12\x45\n\x08metadata\x18\x03 \x03(\x0b\x32\x33.com.evrblk.grackle.v1beta.LockHolder.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xde\x01\n\tNamespace\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x12\n\ncreated_at\x18\x03 \x01(\x03\x12\x12\n\nupdated_at\x18\x04 \x01(\x03\x12\x0f\n\x07version\x18\x05 \x01(\x03\x12\x44\n\x08metadata\x18\x06 \x03(\x0b\x32\x32.com.evrblk.grackle.v1beta.Namespace.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9e\x02\n\x14\x43reateBarrierRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x61rrier_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x1a\n\x12\x65xpected_processes\x18\x04 \x01(\x03\x12%\n\x1d\x64\x65lete_inactive_after_seconds\x18\x08 \x01(\x03\x12O\n\x08metadata\x18\t \x03(\x0b\x32=.com.evrblk.grackle.v1beta.CreateBarrierRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"L\n\x15\x43reateBarrierResponse\x12\x33\n\x07\x62\x61rrier\x18\x01 \x01(\x0b\x32\".com.evrblk.grackle.v1beta.Barrier\"V\n\x13ListBarriersRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x18\n\x10pagination_token\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\x05\"\x8e\x01\n\x14ListBarriersResponse\x12\x34\n\x08\x62\x61rriers\x18\x01 \x03(\x0b\x32\".com.evrblk.grackle.v1beta.Barrier\x12\x1d\n\x15next_pagination_token\x18\x02 \x01(\t\x12!\n\x19previous_pagination_token\x18\x03 \x01(\t\"A\n\x11GetBarrierRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x61rrier_name\x18\x02 \x01(\t\"I\n\x12GetBarrierResponse\x12\x33\n\x07\x62\x61rrier\x18\x01 \x01(\x0b\x32\".com.evrblk.grackle.v1beta.Barrier\"D\n\x14\x44\x65leteBarrierRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x61rrier_name\x18\x02 \x01(\t\"\x17\n\x15\x44\x65leteBarrierResponse\"\xb8\x02\n\x14UpdateBarrierRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x61rrier_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x1a\n\x12\x65xpected_processes\x18\x04 \x01(\x03\x12O\n\x08metadata\x18\x05 \x03(\x0b\x32=.com.evrblk.grackle.v1beta.UpdateBarrierRequest.MetadataEntry\x12\x18\n\x10\x65xpected_version\x18\x06 \x01(\x03\x12%\n\x1d\x64\x65lete_inactive_after_seconds\x18\x07 \x01(\x03\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"L\n\x15UpdateBarrierResponse\x12\x33\n\x07\x62\x61rrier\x18\x01 \x01(\x0b\x32\".com.evrblk.grackle.v1beta.Barrier\"\xfb\x01\n\x16\x41rriveAtBarrierRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x61rrier_name\x18\x02 \x01(\t\x12\x12\n\nprocess_id\x18\x03 \x01(\t\x12\x1b\n\x13\x65xpected_generation\x18\x04 \x01(\x03\x12Q\n\x08metadata\x18\x05 \x03(\x0b\x32?.com.evrblk.grackle.v1beta.ArriveAtBarrierRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"c\n\x17\x41rriveAtBarrierResponse\x12\x33\n\x07\x62\x61rrier\x18\x01 \x01(\x0b\x32\".com.evrblk.grackle.v1beta.Barrier\x12\x13\n\x0b\x61ll_arrived\x18\x02 \x01(\x08\"z\n\x14WaitAtBarrierRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x61rrier_name\x18\x02 \x01(\t\x12\x1b\n\x13\x65xpected_generation\x18\x03 \x01(\x03\x12\x17\n\x0ftimeout_seconds\x18\x04 \x01(\x05\"\x8c\x01\n\x15WaitAtBarrierResponse\x12\x33\n\x07\x62\x61rrier\x18\x01 \x01(\x0b\x32\".com.evrblk.grackle.v1beta.Barrier\x12>\n\x07outcome\x18\x02 \x01(\x0e\x32-.com.evrblk.grackle.v1beta.BarrierWaitOutcome\"\x8b\x01\n\x1eListBarrierParticipantsRequest\x12\x16\n\x0enamespace_name\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x61rrier_name\x18\x02 \x01(\t\x12\x12\n\ngeneration\x18\x03 \x01(\x03\x12\x18\n\x10pagination_token\x18\x04 \x01(\t\x12\r\n\x05limit\x18\x05 \x01(\x05\"\xa8\x01\n\x1fListBarrierParticipantsResponse\x12\x43\n\x0cparticipants\x18\x01 \x03(\x0b\x32-.com.evrblk.grackle.v1beta.BarrierParticipant\x12\x1d\n\x15next_pagination_token\x18\x02 \x01(\t\x12!\n\x19previous_pagination_token\x18\x03 \x01(\t\"\xe6\x02\n\x07\x42\x61rrier\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x1a\n\x12\x65xpected_processes\x18\x03 \x01(\x03\x12\x19\n\x11\x61rrived_processes\x18\x04 \x01(\x03\x12\x12\n\ngeneration\x18\x05 \x01(\x03\x12\x12\n\ncreated_at\x18\x06 \x01(\x03\x12\x12\n\nupdated_at\x18\x07 \x01(\x03\x12\x0f\n\x07version\x18\x08 \x01(\x03\x12\x42\n\x08metadata\x18\t \x03(\x0b\x32\x30.com.evrblk.grackle.v1beta.Barrier.MetadataEntry\x12\x18\n\x10last_activity_at\x18\n \x01(\x03\x12%\n\x1d\x64\x65lete_inactive_after_seconds\x18\x0b \x01(\x03\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbc\x01\n\x12\x42\x61rrierParticipant\x12\x12\n\nprocess_id\x18\x01 \x01(\t\x12\x12\n\narrived_at\x18\x02 \x01(\x03\x12M\n\x08metadata\x18\x03 \x03(\x0b\x32;.com.evrblk.grackle.v1beta.BarrierParticipant.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*\x8b\x01\n\x0e\x41\x63quireOutcome\x12\x1b\n\x17\x41\x43QUIRE_OUTCOME_INVALID\x10\x00\x12\x1c\n\x18\x41\x43QUIRE_OUTCOME_ACQUIRED\x10\x01\x12\x1f\n\x1b\x41\x43QUIRE_OUTCOME_UNAVAILABLE\x10\x02\x12\x1d\n\x19\x41\x43QUIRE_OUTCOME_TIMED_OUT\x10\x03*\xae\x01\n\x14WaitGroupWaitOutcome\x12#\n\x1fWAIT_GROUP_WAIT_OUTCOME_INVALID\x10\x00\x12%\n!WAIT_GROUP_WAIT_OUTCOME_COMPLETED\x10\x01\x12#\n\x1fWAIT_GROUP_WAIT_OUTCOME_EXPIRED\x10\x02\x12%\n!WAIT_GROUP_WAIT_OUTCOME_TIMED_OUT\x10\x03*\x8e\x01\n\x0fWaitGroupStatus\x12\x1d\n\x19WAIT_GROUP_STATUS_INVALID\x10\x00\x12\x1c\n\x18WAIT_GROUP_STATUS_ACTIVE\x10\x01\x12\x1d\n\x19WAIT_GROUP_STATUS_EXPIRED\x10\x02\x12\x1f\n\x1bWAIT_GROUP_STATUS_COMPLETED\x10\x03*\x93\x01\n\x10\x43ontentionReason\x12!\n\x1d\x43ONTENTION_REASON_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x43ONTENTION_REASON_PEER\x10\x01\x12\x1e\n\x1a\x43ONTENTION_REASON_ANCESTOR\x10\x02\x12 \n\x1c\x43ONTENTION_REASON_DESCENDANT\x10\x03*{\n\tLockState\x12\x16\n\x12LOCK_STATE_INVALID\x10\x00\x12\x17\n\x13LOCK_STATE_UNLOCKED\x10\x01\x12\x1c\n\x18LOCK_STATE_SHARED_LOCKED\x10\x02\x12\x1f\n\x1bLOCK_STATE_EXCLUSIVE_LOCKED\x10\x03*|\n\x12\x42\x61rrierWaitOutcome\x12 \n\x1c\x42\x41RRIER_WAIT_OUTCOME_INVALID\x10\x00\x12 \n\x1c\x42\x41RRIER_WAIT_OUTCOME_TRIPPED\x10\x01\x12\"\n\x1e\x42\x41RRIER_WAIT_OUTCOME_TIMED_OUT\x10\x02\x32\xe8*\n\nGrackleApi\x12z\n\x0f\x43reateNamespace\x12\x31.com.evrblk.grackle.v1beta.CreateNamespaceRequest\x1a\x32.com.evrblk.grackle.v1beta.CreateNamespaceResponse\"\x00\x12w\n\x0eListNamespaces\x12\x30.com.evrblk.grackle.v1beta.ListNamespacesRequest\x1a\x31.com.evrblk.grackle.v1beta.ListNamespacesResponse\"\x00\x12q\n\x0cGetNamespace\x12..com.evrblk.grackle.v1beta.GetNamespaceRequest\x1a/.com.evrblk.grackle.v1beta.GetNamespaceResponse\"\x00\x12z\n\x0f\x44\x65leteNamespace\x12\x31.com.evrblk.grackle.v1beta.DeleteNamespaceRequest\x1a\x32.com.evrblk.grackle.v1beta.DeleteNamespaceResponse\"\x00\x12z\n\x0fUpdateNamespace\x12\x31.com.evrblk.grackle.v1beta.UpdateNamespaceRequest\x1a\x32.com.evrblk.grackle.v1beta.UpdateNamespaceResponse\"\x00\x12z\n\x0f\x43reateSemaphore\x12\x31.com.evrblk.grackle.v1beta.CreateSemaphoreRequest\x1a\x32.com.evrblk.grackle.v1beta.CreateSemaphoreResponse\"\x00\x12w\n\x0eListSemaphores\x12\x30.com.evrblk.grackle.v1beta.ListSemaphoresRequest\x1a\x31.com.evrblk.grackle.v1beta.ListSemaphoresResponse\"\x00\x12q\n\x0cGetSemaphore\x12..com.evrblk.grackle.v1beta.GetSemaphoreRequest\x1a/.com.evrblk.grackle.v1beta.GetSemaphoreResponse\"\x00\x12}\n\x10\x41\x63quireSemaphore\x12\x32.com.evrblk.grackle.v1beta.AcquireSemaphoreRequest\x1a\x33.com.evrblk.grackle.v1beta.AcquireSemaphoreResponse\"\x00\x12}\n\x10ReleaseSemaphore\x12\x32.com.evrblk.grackle.v1beta.ReleaseSemaphoreRequest\x1a\x33.com.evrblk.grackle.v1beta.ReleaseSemaphoreResponse\"\x00\x12z\n\x0fUpdateSemaphore\x12\x31.com.evrblk.grackle.v1beta.UpdateSemaphoreRequest\x1a\x32.com.evrblk.grackle.v1beta.UpdateSemaphoreResponse\"\x00\x12z\n\x0f\x44\x65leteSemaphore\x12\x31.com.evrblk.grackle.v1beta.DeleteSemaphoreRequest\x1a\x32.com.evrblk.grackle.v1beta.DeleteSemaphoreResponse\"\x00\x12\x89\x01\n\x14ListSemaphoreHolders\x12\x36.com.evrblk.grackle.v1beta.ListSemaphoreHoldersRequest\x1a\x37.com.evrblk.grackle.v1beta.ListSemaphoreHoldersResponse\"\x00\x12\x89\x01\n\x14\x43reateSemaphoreLease\x12\x36.com.evrblk.grackle.v1beta.CreateSemaphoreLeaseRequest\x1a\x37.com.evrblk.grackle.v1beta.CreateSemaphoreLeaseResponse\"\x00\x12\x89\x01\n\x14RevokeSemaphoreLease\x12\x36.com.evrblk.grackle.v1beta.RevokeSemaphoreLeaseRequest\x1a\x37.com.evrblk.grackle.v1beta.RevokeSemaphoreLeaseResponse\"\x00\x12\x8c\x01\n\x15RefreshSemaphoreLease\x12\x37.com.evrblk.grackle.v1beta.RefreshSemaphoreLeaseRequest\x1a\x38.com.evrblk.grackle.v1beta.RefreshSemaphoreLeaseResponse\"\x00\x12\x86\x01\n\x13ListSemaphoreLeases\x12\x35.com.evrblk.grackle.v1beta.ListSemaphoreLeasesRequest\x1a\x36.com.evrblk.grackle.v1beta.ListSemaphoreLeasesResponse\"\x00\x12\x80\x01\n\x11GetSemaphoreLease\x12\x33.com.evrblk.grackle.v1beta.GetSemaphoreLeaseRequest\x1a\x34.com.evrblk.grackle.v1beta.GetSemaphoreLeaseResponse\"\x00\x12z\n\x0f\x43reateWaitGroup\x12\x31.com.evrblk.grackle.v1beta.CreateWaitGroupRequest\x1a\x32.com.evrblk.grackle.v1beta.CreateWaitGroupResponse\"\x00\x12z\n\x0fUpdateWaitGroup\x12\x31.com.evrblk.grackle.v1beta.UpdateWaitGroupRequest\x1a\x32.com.evrblk.grackle.v1beta.UpdateWaitGroupResponse\"\x00\x12w\n\x0eListWaitGroups\x12\x30.com.evrblk.grackle.v1beta.ListWaitGroupsRequest\x1a\x31.com.evrblk.grackle.v1beta.ListWaitGroupsResponse\"\x00\x12q\n\x0cGetWaitGroup\x12..com.evrblk.grackle.v1beta.GetWaitGroupRequest\x1a/.com.evrblk.grackle.v1beta.GetWaitGroupResponse\"\x00\x12z\n\x0f\x44\x65leteWaitGroup\x12\x31.com.evrblk.grackle.v1beta.DeleteWaitGroupRequest\x1a\x32.com.evrblk.grackle.v1beta.DeleteWaitGroupResponse\"\x00\x12\x98\x01\n\x19\x43ompleteJobsFromWaitGroup\x12;.com.evrblk.grackle.v1beta.CompleteJobsFromWaitGroupRequest\x1a<.com.evrblk.grackle.v1beta.CompleteJobsFromWaitGroupResponse\"\x00\x12\x9b\x01\n\x1aListWaitGroupCompletedJobs\x12<.com.evrblk.grackle.v1beta.ListWaitGroupCompletedJobsRequest\x1a=.com.evrblk.grackle.v1beta.ListWaitGroupCompletedJobsResponse\"\x00\x12}\n\x10WaitForWaitGroup\x12\x32.com.evrblk.grackle.v1beta.WaitForWaitGroupRequest\x1a\x33.com.evrblk.grackle.v1beta.WaitForWaitGroupResponse\"\x00\x12n\n\x0b\x41\x63quireLock\x12-.com.evrblk.grackle.v1beta.AcquireLockRequest\x1a..com.evrblk.grackle.v1beta.AcquireLockResponse\"\x00\x12n\n\x0bReleaseLock\x12-.com.evrblk.grackle.v1beta.ReleaseLockRequest\x1a..com.evrblk.grackle.v1beta.ReleaseLockResponse\"\x00\x12\x62\n\x07GetLock\x12).com.evrblk.grackle.v1beta.GetLockRequest\x1a*.com.evrblk.grackle.v1beta.GetLockResponse\"\x00\x12k\n\nDeleteLock\x12,.com.evrblk.grackle.v1beta.DeleteLockRequest\x1a-.com.evrblk.grackle.v1beta.DeleteLockResponse\"\x00\x12h\n\tListLocks\x12+.com.evrblk.grackle.v1beta.ListLocksRequest\x1a,.com.evrblk.grackle.v1beta.ListLocksResponse\"\x00\x12z\n\x0f\x43reateLockLease\x12\x31.com.evrblk.grackle.v1beta.CreateLockLeaseRequest\x1a\x32.com.evrblk.grackle.v1beta.CreateLockLeaseResponse\"\x00\x12z\n\x0fRevokeLockLease\x12\x31.com.evrblk.grackle.v1beta.RevokeLockLeaseRequest\x1a\x32.com.evrblk.grackle.v1beta.RevokeLockLeaseResponse\"\x00\x12}\n\x10RefreshLockLease\x12\x32.com.evrblk.grackle.v1beta.RefreshLockLeaseRequest\x1a\x33.com.evrblk.grackle.v1beta.RefreshLockLeaseResponse\"\x00\x12w\n\x0eListLockLeases\x12\x30.com.evrblk.grackle.v1beta.ListLockLeasesRequest\x1a\x31.com.evrblk.grackle.v1beta.ListLockLeasesResponse\"\x00\x12q\n\x0cGetLockLease\x12..com.evrblk.grackle.v1beta.GetLockLeaseRequest\x1a/.com.evrblk.grackle.v1beta.GetLockLeaseResponse\"\x00\x12t\n\rCreateBarrier\x12/.com.evrblk.grackle.v1beta.CreateBarrierRequest\x1a\x30.com.evrblk.grackle.v1beta.CreateBarrierResponse\"\x00\x12q\n\x0cListBarriers\x12..com.evrblk.grackle.v1beta.ListBarriersRequest\x1a/.com.evrblk.grackle.v1beta.ListBarriersResponse\"\x00\x12k\n\nGetBarrier\x12,.com.evrblk.grackle.v1beta.GetBarrierRequest\x1a-.com.evrblk.grackle.v1beta.GetBarrierResponse\"\x00\x12t\n\rDeleteBarrier\x12/.com.evrblk.grackle.v1beta.DeleteBarrierRequest\x1a\x30.com.evrblk.grackle.v1beta.DeleteBarrierResponse\"\x00\x12t\n\rUpdateBarrier\x12/.com.evrblk.grackle.v1beta.UpdateBarrierRequest\x1a\x30.com.evrblk.grackle.v1beta.UpdateBarrierResponse\"\x00\x12z\n\x0f\x41rriveAtBarrier\x12\x31.com.evrblk.grackle.v1beta.ArriveAtBarrierRequest\x1a\x32.com.evrblk.grackle.v1beta.ArriveAtBarrierResponse\"\x00\x12t\n\rWaitAtBarrier\x12/.com.evrblk.grackle.v1beta.WaitAtBarrierRequest\x1a\x30.com.evrblk.grackle.v1beta.WaitAtBarrierResponse\"\x00\x12\x92\x01\n\x17ListBarrierParticipants\x12\x39.com.evrblk.grackle.v1beta.ListBarrierParticipantsRequest\x1a:.com.evrblk.grackle.v1beta.ListBarrierParticipantsResponse\"\x00\x42NZ2github.com/evrblk/evrblk-go/grackle/v1beta;grackle\xea\x02\x17\x45vrblk::Grackle::V1Betab\x06proto3"
9
+
10
+ pool = ::Google::Protobuf::DescriptorPool.generated_pool
11
+ pool.add_serialized_file(descriptor_data)
12
+
13
+ module Evrblk
14
+ module Grackle
15
+ module V1Beta
16
+ CreateNamespaceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateNamespaceRequest").msgclass
17
+ CreateNamespaceResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateNamespaceResponse").msgclass
18
+ ListNamespacesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListNamespacesRequest").msgclass
19
+ ListNamespacesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListNamespacesResponse").msgclass
20
+ GetNamespaceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetNamespaceRequest").msgclass
21
+ GetNamespaceResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetNamespaceResponse").msgclass
22
+ DeleteNamespaceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.DeleteNamespaceRequest").msgclass
23
+ DeleteNamespaceResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.DeleteNamespaceResponse").msgclass
24
+ UpdateNamespaceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.UpdateNamespaceRequest").msgclass
25
+ UpdateNamespaceResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.UpdateNamespaceResponse").msgclass
26
+ CreateSemaphoreRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateSemaphoreRequest").msgclass
27
+ CreateSemaphoreResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateSemaphoreResponse").msgclass
28
+ ListSemaphoresRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListSemaphoresRequest").msgclass
29
+ ListSemaphoresResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListSemaphoresResponse").msgclass
30
+ GetSemaphoreRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetSemaphoreRequest").msgclass
31
+ GetSemaphoreResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetSemaphoreResponse").msgclass
32
+ AcquireSemaphoreRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.AcquireSemaphoreRequest").msgclass
33
+ AcquireSemaphoreResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.AcquireSemaphoreResponse").msgclass
34
+ ReleaseSemaphoreRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ReleaseSemaphoreRequest").msgclass
35
+ ReleaseSemaphoreResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ReleaseSemaphoreResponse").msgclass
36
+ UpdateSemaphoreRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.UpdateSemaphoreRequest").msgclass
37
+ UpdateSemaphoreResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.UpdateSemaphoreResponse").msgclass
38
+ DeleteSemaphoreRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.DeleteSemaphoreRequest").msgclass
39
+ DeleteSemaphoreResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.DeleteSemaphoreResponse").msgclass
40
+ ListSemaphoreHoldersRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListSemaphoreHoldersRequest").msgclass
41
+ ListSemaphoreHoldersResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListSemaphoreHoldersResponse").msgclass
42
+ CreateSemaphoreLeaseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateSemaphoreLeaseRequest").msgclass
43
+ CreateSemaphoreLeaseResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateSemaphoreLeaseResponse").msgclass
44
+ RevokeSemaphoreLeaseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.RevokeSemaphoreLeaseRequest").msgclass
45
+ RevokeSemaphoreLeaseResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.RevokeSemaphoreLeaseResponse").msgclass
46
+ RefreshSemaphoreLeaseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.RefreshSemaphoreLeaseRequest").msgclass
47
+ RefreshSemaphoreLeaseResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.RefreshSemaphoreLeaseResponse").msgclass
48
+ ListSemaphoreLeasesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListSemaphoreLeasesRequest").msgclass
49
+ ListSemaphoreLeasesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListSemaphoreLeasesResponse").msgclass
50
+ GetSemaphoreLeaseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetSemaphoreLeaseRequest").msgclass
51
+ GetSemaphoreLeaseResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetSemaphoreLeaseResponse").msgclass
52
+ Lease = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.Lease").msgclass
53
+ Semaphore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.Semaphore").msgclass
54
+ SemaphoreHolder = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.SemaphoreHolder").msgclass
55
+ CreateWaitGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateWaitGroupRequest").msgclass
56
+ CreateWaitGroupResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateWaitGroupResponse").msgclass
57
+ UpdateWaitGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.UpdateWaitGroupRequest").msgclass
58
+ UpdateWaitGroupResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.UpdateWaitGroupResponse").msgclass
59
+ ListWaitGroupsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListWaitGroupsRequest").msgclass
60
+ ListWaitGroupsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListWaitGroupsResponse").msgclass
61
+ GetWaitGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetWaitGroupRequest").msgclass
62
+ GetWaitGroupResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetWaitGroupResponse").msgclass
63
+ DeleteWaitGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.DeleteWaitGroupRequest").msgclass
64
+ DeleteWaitGroupResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.DeleteWaitGroupResponse").msgclass
65
+ CompleteJobsFromWaitGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CompleteJobsFromWaitGroupRequest").msgclass
66
+ CompleteJobRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CompleteJobRequest").msgclass
67
+ CompleteJobsFromWaitGroupResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CompleteJobsFromWaitGroupResponse").msgclass
68
+ ListWaitGroupCompletedJobsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListWaitGroupCompletedJobsRequest").msgclass
69
+ ListWaitGroupCompletedJobsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListWaitGroupCompletedJobsResponse").msgclass
70
+ WaitForWaitGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.WaitForWaitGroupRequest").msgclass
71
+ WaitForWaitGroupResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.WaitForWaitGroupResponse").msgclass
72
+ WaitGroup = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.WaitGroup").msgclass
73
+ WaitGroupJob = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.WaitGroupJob").msgclass
74
+ AcquireLockRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.AcquireLockRequest").msgclass
75
+ AcquireLockResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.AcquireLockResponse").msgclass
76
+ ReleaseLockRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ReleaseLockRequest").msgclass
77
+ ReleaseLockResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ReleaseLockResponse").msgclass
78
+ GetLockRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetLockRequest").msgclass
79
+ GetLockResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetLockResponse").msgclass
80
+ DeleteLockRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.DeleteLockRequest").msgclass
81
+ DeleteLockResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.DeleteLockResponse").msgclass
82
+ ListLocksRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListLocksRequest").msgclass
83
+ ListLocksResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListLocksResponse").msgclass
84
+ CreateLockLeaseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateLockLeaseRequest").msgclass
85
+ CreateLockLeaseResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateLockLeaseResponse").msgclass
86
+ RevokeLockLeaseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.RevokeLockLeaseRequest").msgclass
87
+ RevokeLockLeaseResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.RevokeLockLeaseResponse").msgclass
88
+ RefreshLockLeaseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.RefreshLockLeaseRequest").msgclass
89
+ RefreshLockLeaseResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.RefreshLockLeaseResponse").msgclass
90
+ ListLockLeasesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListLockLeasesRequest").msgclass
91
+ ListLockLeasesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListLockLeasesResponse").msgclass
92
+ GetLockLeaseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetLockLeaseRequest").msgclass
93
+ GetLockLeaseResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetLockLeaseResponse").msgclass
94
+ Lock = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.Lock").msgclass
95
+ LockHolder = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.LockHolder").msgclass
96
+ Namespace = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.Namespace").msgclass
97
+ CreateBarrierRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateBarrierRequest").msgclass
98
+ CreateBarrierResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.CreateBarrierResponse").msgclass
99
+ ListBarriersRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListBarriersRequest").msgclass
100
+ ListBarriersResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListBarriersResponse").msgclass
101
+ GetBarrierRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetBarrierRequest").msgclass
102
+ GetBarrierResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.GetBarrierResponse").msgclass
103
+ DeleteBarrierRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.DeleteBarrierRequest").msgclass
104
+ DeleteBarrierResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.DeleteBarrierResponse").msgclass
105
+ UpdateBarrierRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.UpdateBarrierRequest").msgclass
106
+ UpdateBarrierResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.UpdateBarrierResponse").msgclass
107
+ ArriveAtBarrierRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ArriveAtBarrierRequest").msgclass
108
+ ArriveAtBarrierResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ArriveAtBarrierResponse").msgclass
109
+ WaitAtBarrierRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.WaitAtBarrierRequest").msgclass
110
+ WaitAtBarrierResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.WaitAtBarrierResponse").msgclass
111
+ ListBarrierParticipantsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListBarrierParticipantsRequest").msgclass
112
+ ListBarrierParticipantsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ListBarrierParticipantsResponse").msgclass
113
+ Barrier = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.Barrier").msgclass
114
+ BarrierParticipant = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.BarrierParticipant").msgclass
115
+ AcquireOutcome = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.AcquireOutcome").enummodule
116
+ WaitGroupWaitOutcome = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.WaitGroupWaitOutcome").enummodule
117
+ WaitGroupStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.WaitGroupStatus").enummodule
118
+ ContentionReason = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.ContentionReason").enummodule
119
+ LockState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.LockState").enummodule
120
+ BarrierWaitOutcome = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("com.evrblk.grackle.v1beta.BarrierWaitOutcome").enummodule
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,69 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: evrblk/grackle/v1beta/api.proto for package 'Evrblk.Grackle.V1Beta'
3
+
4
+ require 'grpc'
5
+ require 'evrblk/grackle/v1beta/api_pb'
6
+
7
+ module Evrblk
8
+ module Grackle
9
+ module V1Beta
10
+ module GrackleApi
11
+ class Service
12
+
13
+ include ::GRPC::GenericService
14
+
15
+ self.marshal_class_method = :encode
16
+ self.unmarshal_class_method = :decode
17
+ self.service_name = 'com.evrblk.grackle.v1beta.GrackleApi'
18
+
19
+ rpc :CreateNamespace, ::Evrblk::Grackle::V1Beta::CreateNamespaceRequest, ::Evrblk::Grackle::V1Beta::CreateNamespaceResponse
20
+ rpc :ListNamespaces, ::Evrblk::Grackle::V1Beta::ListNamespacesRequest, ::Evrblk::Grackle::V1Beta::ListNamespacesResponse
21
+ rpc :GetNamespace, ::Evrblk::Grackle::V1Beta::GetNamespaceRequest, ::Evrblk::Grackle::V1Beta::GetNamespaceResponse
22
+ rpc :DeleteNamespace, ::Evrblk::Grackle::V1Beta::DeleteNamespaceRequest, ::Evrblk::Grackle::V1Beta::DeleteNamespaceResponse
23
+ rpc :UpdateNamespace, ::Evrblk::Grackle::V1Beta::UpdateNamespaceRequest, ::Evrblk::Grackle::V1Beta::UpdateNamespaceResponse
24
+ rpc :CreateSemaphore, ::Evrblk::Grackle::V1Beta::CreateSemaphoreRequest, ::Evrblk::Grackle::V1Beta::CreateSemaphoreResponse
25
+ rpc :ListSemaphores, ::Evrblk::Grackle::V1Beta::ListSemaphoresRequest, ::Evrblk::Grackle::V1Beta::ListSemaphoresResponse
26
+ rpc :GetSemaphore, ::Evrblk::Grackle::V1Beta::GetSemaphoreRequest, ::Evrblk::Grackle::V1Beta::GetSemaphoreResponse
27
+ rpc :AcquireSemaphore, ::Evrblk::Grackle::V1Beta::AcquireSemaphoreRequest, ::Evrblk::Grackle::V1Beta::AcquireSemaphoreResponse
28
+ rpc :ReleaseSemaphore, ::Evrblk::Grackle::V1Beta::ReleaseSemaphoreRequest, ::Evrblk::Grackle::V1Beta::ReleaseSemaphoreResponse
29
+ rpc :UpdateSemaphore, ::Evrblk::Grackle::V1Beta::UpdateSemaphoreRequest, ::Evrblk::Grackle::V1Beta::UpdateSemaphoreResponse
30
+ rpc :DeleteSemaphore, ::Evrblk::Grackle::V1Beta::DeleteSemaphoreRequest, ::Evrblk::Grackle::V1Beta::DeleteSemaphoreResponse
31
+ rpc :ListSemaphoreHolders, ::Evrblk::Grackle::V1Beta::ListSemaphoreHoldersRequest, ::Evrblk::Grackle::V1Beta::ListSemaphoreHoldersResponse
32
+ rpc :CreateSemaphoreLease, ::Evrblk::Grackle::V1Beta::CreateSemaphoreLeaseRequest, ::Evrblk::Grackle::V1Beta::CreateSemaphoreLeaseResponse
33
+ rpc :RevokeSemaphoreLease, ::Evrblk::Grackle::V1Beta::RevokeSemaphoreLeaseRequest, ::Evrblk::Grackle::V1Beta::RevokeSemaphoreLeaseResponse
34
+ rpc :RefreshSemaphoreLease, ::Evrblk::Grackle::V1Beta::RefreshSemaphoreLeaseRequest, ::Evrblk::Grackle::V1Beta::RefreshSemaphoreLeaseResponse
35
+ rpc :ListSemaphoreLeases, ::Evrblk::Grackle::V1Beta::ListSemaphoreLeasesRequest, ::Evrblk::Grackle::V1Beta::ListSemaphoreLeasesResponse
36
+ rpc :GetSemaphoreLease, ::Evrblk::Grackle::V1Beta::GetSemaphoreLeaseRequest, ::Evrblk::Grackle::V1Beta::GetSemaphoreLeaseResponse
37
+ rpc :CreateWaitGroup, ::Evrblk::Grackle::V1Beta::CreateWaitGroupRequest, ::Evrblk::Grackle::V1Beta::CreateWaitGroupResponse
38
+ rpc :UpdateWaitGroup, ::Evrblk::Grackle::V1Beta::UpdateWaitGroupRequest, ::Evrblk::Grackle::V1Beta::UpdateWaitGroupResponse
39
+ rpc :ListWaitGroups, ::Evrblk::Grackle::V1Beta::ListWaitGroupsRequest, ::Evrblk::Grackle::V1Beta::ListWaitGroupsResponse
40
+ rpc :GetWaitGroup, ::Evrblk::Grackle::V1Beta::GetWaitGroupRequest, ::Evrblk::Grackle::V1Beta::GetWaitGroupResponse
41
+ rpc :DeleteWaitGroup, ::Evrblk::Grackle::V1Beta::DeleteWaitGroupRequest, ::Evrblk::Grackle::V1Beta::DeleteWaitGroupResponse
42
+ rpc :CompleteJobsFromWaitGroup, ::Evrblk::Grackle::V1Beta::CompleteJobsFromWaitGroupRequest, ::Evrblk::Grackle::V1Beta::CompleteJobsFromWaitGroupResponse
43
+ rpc :ListWaitGroupCompletedJobs, ::Evrblk::Grackle::V1Beta::ListWaitGroupCompletedJobsRequest, ::Evrblk::Grackle::V1Beta::ListWaitGroupCompletedJobsResponse
44
+ rpc :WaitForWaitGroup, ::Evrblk::Grackle::V1Beta::WaitForWaitGroupRequest, ::Evrblk::Grackle::V1Beta::WaitForWaitGroupResponse
45
+ rpc :AcquireLock, ::Evrblk::Grackle::V1Beta::AcquireLockRequest, ::Evrblk::Grackle::V1Beta::AcquireLockResponse
46
+ rpc :ReleaseLock, ::Evrblk::Grackle::V1Beta::ReleaseLockRequest, ::Evrblk::Grackle::V1Beta::ReleaseLockResponse
47
+ rpc :GetLock, ::Evrblk::Grackle::V1Beta::GetLockRequest, ::Evrblk::Grackle::V1Beta::GetLockResponse
48
+ rpc :DeleteLock, ::Evrblk::Grackle::V1Beta::DeleteLockRequest, ::Evrblk::Grackle::V1Beta::DeleteLockResponse
49
+ rpc :ListLocks, ::Evrblk::Grackle::V1Beta::ListLocksRequest, ::Evrblk::Grackle::V1Beta::ListLocksResponse
50
+ rpc :CreateLockLease, ::Evrblk::Grackle::V1Beta::CreateLockLeaseRequest, ::Evrblk::Grackle::V1Beta::CreateLockLeaseResponse
51
+ rpc :RevokeLockLease, ::Evrblk::Grackle::V1Beta::RevokeLockLeaseRequest, ::Evrblk::Grackle::V1Beta::RevokeLockLeaseResponse
52
+ rpc :RefreshLockLease, ::Evrblk::Grackle::V1Beta::RefreshLockLeaseRequest, ::Evrblk::Grackle::V1Beta::RefreshLockLeaseResponse
53
+ rpc :ListLockLeases, ::Evrblk::Grackle::V1Beta::ListLockLeasesRequest, ::Evrblk::Grackle::V1Beta::ListLockLeasesResponse
54
+ rpc :GetLockLease, ::Evrblk::Grackle::V1Beta::GetLockLeaseRequest, ::Evrblk::Grackle::V1Beta::GetLockLeaseResponse
55
+ rpc :CreateBarrier, ::Evrblk::Grackle::V1Beta::CreateBarrierRequest, ::Evrblk::Grackle::V1Beta::CreateBarrierResponse
56
+ rpc :ListBarriers, ::Evrblk::Grackle::V1Beta::ListBarriersRequest, ::Evrblk::Grackle::V1Beta::ListBarriersResponse
57
+ rpc :GetBarrier, ::Evrblk::Grackle::V1Beta::GetBarrierRequest, ::Evrblk::Grackle::V1Beta::GetBarrierResponse
58
+ rpc :DeleteBarrier, ::Evrblk::Grackle::V1Beta::DeleteBarrierRequest, ::Evrblk::Grackle::V1Beta::DeleteBarrierResponse
59
+ rpc :UpdateBarrier, ::Evrblk::Grackle::V1Beta::UpdateBarrierRequest, ::Evrblk::Grackle::V1Beta::UpdateBarrierResponse
60
+ rpc :ArriveAtBarrier, ::Evrblk::Grackle::V1Beta::ArriveAtBarrierRequest, ::Evrblk::Grackle::V1Beta::ArriveAtBarrierResponse
61
+ rpc :WaitAtBarrier, ::Evrblk::Grackle::V1Beta::WaitAtBarrierRequest, ::Evrblk::Grackle::V1Beta::WaitAtBarrierResponse
62
+ rpc :ListBarrierParticipants, ::Evrblk::Grackle::V1Beta::ListBarrierParticipantsRequest, ::Evrblk::Grackle::V1Beta::ListBarrierParticipantsResponse
63
+ end
64
+
65
+ Stub = Service.rpc_stub_class
66
+ end
67
+ end
68
+ end
69
+ end