momento 0.1.0 → 0.4.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/.release-please-manifest.json +3 -0
  3. data/.rubocop.yml +26 -1
  4. data/.ruby-version +1 -1
  5. data/.yardopts +2 -0
  6. data/CHANGELOG.md +119 -0
  7. data/CONTRIBUTING.md +6 -7
  8. data/Gemfile +1 -6
  9. data/Gemfile.lock +34 -24
  10. data/README.md +143 -38
  11. data/README.template.md +93 -0
  12. data/examples/.gitignore +1 -0
  13. data/examples/Gemfile +5 -0
  14. data/examples/README.md +34 -0
  15. data/examples/compact.rb +47 -0
  16. data/examples/example.rb +72 -0
  17. data/examples/file.rb +58 -0
  18. data/lib/README-generating-pb.txt +1 -1
  19. data/lib/momento/auth/credential_provider.rb +78 -0
  20. data/lib/momento/cache_client.rb +457 -0
  21. data/lib/momento/collection_ttl.rb +79 -0
  22. data/lib/momento/config/configuration.rb +16 -0
  23. data/lib/momento/config/configurations.rb +17 -0
  24. data/lib/momento/config/transport/grpc_configuration.rb +25 -0
  25. data/lib/momento/config/transport/static_transport_strategy.rb +12 -0
  26. data/lib/momento/config/transport/transport_strategy.rb +16 -0
  27. data/lib/momento/error/grpc_details.rb +38 -0
  28. data/lib/momento/error/transport_details.rb +20 -0
  29. data/lib/momento/error/types.rb +247 -0
  30. data/lib/momento/error.rb +54 -0
  31. data/lib/momento/error_builder.rb +50 -0
  32. data/lib/momento/exceptions.rb +7 -0
  33. data/lib/momento/generated/README.md +16 -0
  34. data/lib/momento/generated/auth_pb.rb +52 -0
  35. data/lib/momento/generated/auth_services_pb.rb +27 -0
  36. data/lib/momento/generated/cacheclient_pb.rb +203 -0
  37. data/lib/momento/generated/cacheclient_services_pb.rb +90 -0
  38. data/lib/momento/generated/cacheping_pb.rb +38 -0
  39. data/lib/momento/generated/cacheping_services_pb.rb +23 -0
  40. data/lib/momento/generated/cachepubsub_pb.rb +48 -0
  41. data/lib/momento/generated/cachepubsub_services_pb.rb +56 -0
  42. data/lib/momento/generated/common_pb.rb +44 -0
  43. data/lib/momento/generated/controlclient_pb.rb +72 -0
  44. data/lib/momento/generated/controlclient_services_pb.rb +35 -0
  45. data/lib/momento/generated/extensions_pb.rb +35 -0
  46. data/lib/momento/generated/generate_protos.sh +47 -0
  47. data/lib/momento/generated/leaderboard_pb.rb +56 -0
  48. data/lib/momento/generated/leaderboard_services_pb.rb +57 -0
  49. data/lib/momento/generated/permissionmessages_pb.rb +48 -0
  50. data/lib/momento/generated/token_pb.rb +43 -0
  51. data/lib/momento/generated/token_services_pb.rb +23 -0
  52. data/lib/momento/generated/webhook_pb.rb +49 -0
  53. data/lib/momento/generated/webhook_services_pb.rb +32 -0
  54. data/lib/momento/{create_cache_response.rb → response/control/create_cache_response.rb} +33 -24
  55. data/lib/momento/{delete_cache_response.rb → response/control/delete_cache_response.rb} +28 -21
  56. data/lib/momento/response/control/list_caches_response.rb +80 -0
  57. data/lib/momento/response/delete_response.rb +45 -0
  58. data/lib/momento/response/error.rb +10 -3
  59. data/lib/momento/response/get_response.rb +107 -0
  60. data/lib/momento/response/response.rb +67 -0
  61. data/lib/momento/response/response_builder.rb +18 -0
  62. data/lib/momento/response/set_response.rb +59 -0
  63. data/lib/momento/response/sort_order.rb +11 -0
  64. data/lib/momento/response/sorted_set/sorted_set_fetch_response.rb +107 -0
  65. data/lib/momento/response/sorted_set/sorted_set_put_element_response.rb +44 -0
  66. data/lib/momento/response/sorted_set/sorted_set_put_elements_response.rb +44 -0
  67. data/lib/momento/ttl.rb +48 -0
  68. data/lib/momento/version.rb +2 -1
  69. data/lib/momento.rb +6 -1
  70. data/momento.gemspec +6 -3
  71. data/release-please-config.json +15 -0
  72. data/sig/momento/auth/credential_provider.rbs +11 -0
  73. data/sig/momento/cache_client.rbs +12 -0
  74. data/sig/momento/collection_ttl.rbs +22 -0
  75. data/sig/momento/config/configuration.rbs +9 -0
  76. data/sig/momento/config/configurations.rbs +9 -0
  77. data/sig/momento/config/transport/grpc_configuration.rbs +7 -0
  78. data/sig/momento/config/transport/transport_strategy.rbs +7 -0
  79. data/sig/momento/list_caches_response.rbs +7 -0
  80. data/sig/momento/sorted_set_fetch_response.rbs +13 -0
  81. data/sig/momento/sorted_set_put_element_response.rbs +5 -0
  82. data/sig/momento/sorted_set_put_elements_response.rbs +5 -0
  83. metadata +127 -28
  84. data/examples/basic.rb +0 -45
  85. data/lib/momento/cacheclient_pb.rb +0 -332
  86. data/lib/momento/cacheclient_services_pb.rb +0 -42
  87. data/lib/momento/controlclient_pb.rb +0 -71
  88. data/lib/momento/controlclient_services_pb.rb +0 -29
  89. data/lib/momento/delete_response.rb +0 -33
  90. data/lib/momento/get_response.rb +0 -80
  91. data/lib/momento/list_caches_response.rb +0 -53
  92. data/lib/momento/response.rb +0 -17
  93. data/lib/momento/set_response.rb +0 -39
  94. data/lib/momento/simple_cache_client.rb +0 -204
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
4
+ # source: controlclient.proto
5
+
6
+ require 'google/protobuf'
7
+
8
+ descriptor_data = "\n\x13\x63ontrolclient.proto\x12\x0e\x63ontrol_client\")\n\x13_CreateStoreRequest\x12\x12\n\nstore_name\x18\x01 \x01(\t\"\x16\n\x14_CreateStoreResponse\")\n\x13_DeleteStoreRequest\x12\x12\n\nstore_name\x18\x01 \x01(\t\"\x16\n\x14_DeleteStoreResponse\"(\n\x12_ListStoresRequest\x12\x12\n\nnext_token\x18\x01 \x01(\t\"P\n\x13_ListStoresResponse\x12%\n\x05store\x18\x01 \x03(\x0b\x32\x16.control_client._Store\x12\x12\n\nnext_token\x18\x02 \x01(\t\"\x1c\n\x06_Store\x12\x12\n\nstore_name\x18\x01 \x01(\t\"\xda\x02\n\x11_SimilarityMetric\x12V\n\x14\x65uclidean_similarity\x18\x01 \x01(\x0b\x32\x36.control_client._SimilarityMetric._EuclideanSimilarityH\x00\x12H\n\rinner_product\x18\x02 \x01(\x0b\x32/.control_client._SimilarityMetric._InnerProductH\x00\x12P\n\x11\x63osine_similarity\x18\x03 \x01(\x0b\x32\x33.control_client._SimilarityMetric._CosineSimilarityH\x00\x1a\x16\n\x14_EuclideanSimilarity\x1a\x0f\n\r_InnerProduct\x1a\x13\n\x11_CosineSimilarityB\x13\n\x11similarity_metric\"\x7f\n\x13_CreateIndexRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x16\n\x0enum_dimensions\x18\x02 \x01(\x04\x12<\n\x11similarity_metric\x18\x03 \x01(\x0b\x32!.control_client._SimilarityMetric\"\x16\n\x14_CreateIndexResponse\")\n\x13_DeleteIndexRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\"\x16\n\x14_DeleteIndexResponse\"\x15\n\x13_ListIndexesRequest\"\xc8\x01\n\x14_ListIndexesResponse\x12<\n\x07indexes\x18\x01 \x03(\x0b\x32+.control_client._ListIndexesResponse._Index\x1ar\n\x06_Index\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x16\n\x0enum_dimensions\x18\x02 \x01(\x04\x12<\n\x11similarity_metric\x18\x03 \x01(\x0b\x32!.control_client._SimilarityMetric\")\n\x13_DeleteCacheRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\"\x16\n\x14_DeleteCacheResponse\")\n\x13_CreateCacheRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\"\x16\n\x14_CreateCacheResponse\"(\n\x12_ListCachesRequest\x12\x12\n\nnext_token\x18\x01 \x01(\t\"x\n\x0c_CacheLimits\x12\x18\n\x10max_traffic_rate\x18\x01 \x01(\r\x12\x1b\n\x13max_throughput_kbps\x18\x02 \x01(\r\x12\x18\n\x10max_item_size_kb\x18\x03 \x01(\r\x12\x17\n\x0fmax_ttl_seconds\x18\x04 \x01(\x04\"m\n\x0c_TopicLimits\x12\x18\n\x10max_publish_rate\x18\x01 \x01(\r\x12\x1e\n\x16max_subscription_count\x18\x02 \x01(\r\x12#\n\x1bmax_publish_message_size_kb\x18\x03 \x01(\r\"\x84\x01\n\x06_Cache\x12\x12\n\ncache_name\x18\x01 \x01(\t\x12\x32\n\x0c\x63\x61\x63he_limits\x18\x02 \x01(\x0b\x32\x1c.control_client._CacheLimits\x12\x32\n\x0ctopic_limits\x18\x03 \x01(\x0b\x32\x1c.control_client._TopicLimits\"P\n\x13_ListCachesResponse\x12%\n\x05\x63\x61\x63he\x18\x01 \x03(\x0b\x32\x16.control_client._Cache\x12\x12\n\nnext_token\x18\x02 \x01(\t\"/\n\x18_CreateSigningKeyRequest\x12\x13\n\x0bttl_minutes\x18\x01 \x01(\r\"<\n\x19_CreateSigningKeyResponse\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\nexpires_at\x18\x02 \x01(\x04\"*\n\x18_RevokeSigningKeyRequest\x12\x0e\n\x06key_id\x18\x01 \x01(\t\"\x1b\n\x19_RevokeSigningKeyResponse\"1\n\x0b_SigningKey\x12\x0e\n\x06key_id\x18\x01 \x01(\t\x12\x12\n\nexpires_at\x18\x02 \x01(\x04\"-\n\x17_ListSigningKeysRequest\x12\x12\n\nnext_token\x18\x01 \x01(\t\"`\n\x18_ListSigningKeysResponse\x12\x30\n\x0bsigning_key\x18\x01 \x03(\x0b\x32\x1b.control_client._SigningKey\x12\x12\n\nnext_token\x18\x02 \x01(\t\"(\n\x12_FlushCacheRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\"\x15\n\x13_FlushCacheResponse2\xd9\t\n\nScsControl\x12Z\n\x0b\x43reateCache\x12#.control_client._CreateCacheRequest\x1a$.control_client._CreateCacheResponse\"\x00\x12Z\n\x0b\x44\x65leteCache\x12#.control_client._DeleteCacheRequest\x1a$.control_client._DeleteCacheResponse\"\x00\x12W\n\nListCaches\x12\".control_client._ListCachesRequest\x1a#.control_client._ListCachesResponse\"\x00\x12W\n\nFlushCache\x12\".control_client._FlushCacheRequest\x1a#.control_client._FlushCacheResponse\"\x00\x12i\n\x10\x43reateSigningKey\x12(.control_client._CreateSigningKeyRequest\x1a).control_client._CreateSigningKeyResponse\"\x00\x12i\n\x10RevokeSigningKey\x12(.control_client._RevokeSigningKeyRequest\x1a).control_client._RevokeSigningKeyResponse\"\x00\x12\x66\n\x0fListSigningKeys\x12'.control_client._ListSigningKeysRequest\x1a(.control_client._ListSigningKeysResponse\"\x00\x12Z\n\x0b\x43reateIndex\x12#.control_client._CreateIndexRequest\x1a$.control_client._CreateIndexResponse\"\x00\x12Z\n\x0b\x44\x65leteIndex\x12#.control_client._DeleteIndexRequest\x1a$.control_client._DeleteIndexResponse\"\x00\x12Z\n\x0bListIndexes\x12#.control_client._ListIndexesRequest\x1a$.control_client._ListIndexesResponse\"\x00\x12Z\n\x0b\x43reateStore\x12#.control_client._CreateStoreRequest\x1a$.control_client._CreateStoreResponse\"\x00\x12Z\n\x0b\x44\x65leteStore\x12#.control_client._DeleteStoreRequest\x1a$.control_client._DeleteStoreResponse\"\x00\x12W\n\nListStores\x12\".control_client._ListStoresRequest\x1a#.control_client._ListStoresResponse\"\x00\x42h\n\x13grpc.control_clientP\x01Z0github.com/momentohq/client-sdk-go;client_sdk_go\xaa\x02\x1cMomento.Protos.ControlClientb\x06proto3"
9
+
10
+ pool = Google::Protobuf::DescriptorPool.generated_pool
11
+
12
+ begin
13
+ pool.add_serialized_file(descriptor_data)
14
+ rescue TypeError
15
+ # Compatibility code: will be removed in the next major version.
16
+ require_relative 'google/protobuf/descriptor_pb'
17
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
+ parsed.clear_dependency
19
+ serialized = parsed.class.encode(parsed)
20
+ file = pool.add_serialized_file(serialized)
21
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
+ imports = []
23
+ imports.each do |type_name, expected_filename|
24
+ import_file = pool.lookup(type_name).file_descriptor
25
+ if import_file.name != expected_filename
26
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
27
+ end
28
+ end
29
+ warn "Each proto file must use a consistent fully-qualified name."
30
+ warn "This will become an error in the next major version."
31
+ end
32
+
33
+ module MomentoProtos
34
+ module ControlClient
35
+ PB__CreateStoreRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._CreateStoreRequest").msgclass
36
+ PB__CreateStoreResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._CreateStoreResponse").msgclass
37
+ PB__DeleteStoreRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._DeleteStoreRequest").msgclass
38
+ PB__DeleteStoreResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._DeleteStoreResponse").msgclass
39
+ PB__ListStoresRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._ListStoresRequest").msgclass
40
+ PB__ListStoresResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._ListStoresResponse").msgclass
41
+ PB__Store = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._Store").msgclass
42
+ PB__SimilarityMetric = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._SimilarityMetric").msgclass
43
+ PB__SimilarityMetric::PB__EuclideanSimilarity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._SimilarityMetric._EuclideanSimilarity").msgclass
44
+ PB__SimilarityMetric::PB__InnerProduct = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._SimilarityMetric._InnerProduct").msgclass
45
+ PB__SimilarityMetric::PB__CosineSimilarity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._SimilarityMetric._CosineSimilarity").msgclass
46
+ PB__CreateIndexRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._CreateIndexRequest").msgclass
47
+ PB__CreateIndexResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._CreateIndexResponse").msgclass
48
+ PB__DeleteIndexRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._DeleteIndexRequest").msgclass
49
+ PB__DeleteIndexResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._DeleteIndexResponse").msgclass
50
+ PB__ListIndexesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._ListIndexesRequest").msgclass
51
+ PB__ListIndexesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._ListIndexesResponse").msgclass
52
+ PB__ListIndexesResponse::PB__Index = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._ListIndexesResponse._Index").msgclass
53
+ PB__DeleteCacheRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._DeleteCacheRequest").msgclass
54
+ PB__DeleteCacheResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._DeleteCacheResponse").msgclass
55
+ PB__CreateCacheRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._CreateCacheRequest").msgclass
56
+ PB__CreateCacheResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._CreateCacheResponse").msgclass
57
+ PB__ListCachesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._ListCachesRequest").msgclass
58
+ PB__CacheLimits = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._CacheLimits").msgclass
59
+ PB__TopicLimits = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._TopicLimits").msgclass
60
+ PB__Cache = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._Cache").msgclass
61
+ PB__ListCachesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._ListCachesResponse").msgclass
62
+ PB__CreateSigningKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._CreateSigningKeyRequest").msgclass
63
+ PB__CreateSigningKeyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._CreateSigningKeyResponse").msgclass
64
+ PB__RevokeSigningKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._RevokeSigningKeyRequest").msgclass
65
+ PB__RevokeSigningKeyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._RevokeSigningKeyResponse").msgclass
66
+ PB__SigningKey = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._SigningKey").msgclass
67
+ PB__ListSigningKeysRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._ListSigningKeysRequest").msgclass
68
+ PB__ListSigningKeysResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._ListSigningKeysResponse").msgclass
69
+ PB__FlushCacheRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._FlushCacheRequest").msgclass
70
+ PB__FlushCacheResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("control_client._FlushCacheResponse").msgclass
71
+ end
72
+ end
@@ -0,0 +1,35 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: controlclient.proto for package 'control_client'
3
+
4
+ require 'grpc'
5
+ require_relative 'controlclient_pb'
6
+
7
+ module MomentoProtos
8
+ module ControlClient
9
+ module ScsControl
10
+ class Service
11
+ include ::GRPC::GenericService
12
+
13
+ self.marshal_class_method = :encode
14
+ self.unmarshal_class_method = :decode
15
+ self.service_name = 'control_client.ScsControl'
16
+
17
+ rpc :CreateCache, ::MomentoProtos::ControlClient::PB__CreateCacheRequest, ::MomentoProtos::ControlClient::PB__CreateCacheResponse
18
+ rpc :DeleteCache, ::MomentoProtos::ControlClient::PB__DeleteCacheRequest, ::MomentoProtos::ControlClient::PB__DeleteCacheResponse
19
+ rpc :ListCaches, ::MomentoProtos::ControlClient::PB__ListCachesRequest, ::MomentoProtos::ControlClient::PB__ListCachesResponse
20
+ rpc :FlushCache, ::MomentoProtos::ControlClient::PB__FlushCacheRequest, ::MomentoProtos::ControlClient::PB__FlushCacheResponse
21
+ rpc :CreateSigningKey, ::MomentoProtos::ControlClient::PB__CreateSigningKeyRequest, ::MomentoProtos::ControlClient::PB__CreateSigningKeyResponse
22
+ rpc :RevokeSigningKey, ::MomentoProtos::ControlClient::PB__RevokeSigningKeyRequest, ::MomentoProtos::ControlClient::PB__RevokeSigningKeyResponse
23
+ rpc :ListSigningKeys, ::MomentoProtos::ControlClient::PB__ListSigningKeysRequest, ::MomentoProtos::ControlClient::PB__ListSigningKeysResponse
24
+ rpc :CreateIndex, ::MomentoProtos::ControlClient::PB__CreateIndexRequest, ::MomentoProtos::ControlClient::PB__CreateIndexResponse
25
+ rpc :DeleteIndex, ::MomentoProtos::ControlClient::PB__DeleteIndexRequest, ::MomentoProtos::ControlClient::PB__DeleteIndexResponse
26
+ rpc :ListIndexes, ::MomentoProtos::ControlClient::PB__ListIndexesRequest, ::MomentoProtos::ControlClient::PB__ListIndexesResponse
27
+ rpc :CreateStore, ::MomentoProtos::ControlClient::PB__CreateStoreRequest, ::MomentoProtos::ControlClient::PB__CreateStoreResponse
28
+ rpc :DeleteStore, ::MomentoProtos::ControlClient::PB__DeleteStoreRequest, ::MomentoProtos::ControlClient::PB__DeleteStoreResponse
29
+ rpc :ListStores, ::MomentoProtos::ControlClient::PB__ListStoresRequest, ::MomentoProtos::ControlClient::PB__ListStoresResponse
30
+ end
31
+
32
+ Stub = Service.rpc_stub_class
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
4
+ # source: extensions.proto
5
+
6
+ require 'google/protobuf'
7
+
8
+ require_relative 'google/protobuf/descriptor_pb'
9
+
10
+ descriptor_data = "\n\x10\x65xtensions.proto\x1a google/protobuf/descriptor.proto*0\n\rRetrySemantic\x12\x10\n\x0cNotRetryable\x10\x00\x12\r\n\tRetryable\x10\x01:I\n\x0eretry_semantic\x12\x1f.google.protobuf.MessageOptions\x18\xd0\x86\x03 \x01(\x0e\x32\x0e.RetrySemanticB_\n\x0fgrpc.extensionsZ0github.com/momentohq/client-sdk-go;client_sdk_go\xaa\x02\x19Momento.Protos.Extensionsb\x06proto3"
11
+
12
+ pool = Google::Protobuf::DescriptorPool.generated_pool
13
+
14
+ begin
15
+ pool.add_serialized_file(descriptor_data)
16
+ rescue TypeError
17
+ # Compatibility code: will be removed in the next major version.
18
+ require_relative 'google/protobuf/descriptor_pb'
19
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
20
+ parsed.clear_dependency
21
+ serialized = parsed.class.encode(parsed)
22
+ file = pool.add_serialized_file(serialized)
23
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
24
+ imports = []
25
+ imports.each do |type_name, expected_filename|
26
+ import_file = pool.lookup(type_name).file_descriptor
27
+ if import_file.name != expected_filename
28
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
29
+ end
30
+ end
31
+ warn "Each proto file must use a consistent fully-qualified name."
32
+ warn "This will become an error in the next major version."
33
+ end
34
+
35
+ RetrySemantic = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("RetrySemantic").enummodule
@@ -0,0 +1,47 @@
1
+ #!/bin/bash
2
+ set -e
3
+ set -x
4
+
5
+ # Must specify the path to the proto files
6
+ if [ -z "${PROTO_PATH}" ]; then
7
+ echo "PROTO_PATH is not set, please specify the path to the client-protos/proto directory"
8
+ exit 1
9
+ fi
10
+
11
+ # Remove existing generated code
12
+ rm -f *_pb.rb
13
+
14
+ # Copy files over temporarily
15
+ cp ${PROTO_PATH}/*.proto ./
16
+
17
+ # Remove files we don't want to generate code from
18
+ rm -f ./httpcache.proto
19
+ rm -f ./vectorindex.proto
20
+
21
+ # Generate the code
22
+ grpc_tools_ruby_protoc -I ./ --ruby_out=./ --grpc_out=./ ./*.proto
23
+
24
+ # Remove the protos
25
+ rm -f ./*.proto
26
+
27
+ # In the *_pb.rb files, replace the require with require_relative
28
+ sed -i '' -E "s/require '(.*)_pb'/require_relative '\1_pb'/g" *_pb.rb
29
+
30
+ # Wrap the generated code in a module named MomentoProtos, but only the top-level modules
31
+ for file in *_pb.rb; do
32
+ sed -i '' -E 's/^module (.*)/module MomentoProtos::\1/g' $file
33
+ done
34
+
35
+ # Run the linter, converts from :: syntax to nested modules
36
+ rubocop -A --disable-uncorrectable *_pb.rb
37
+
38
+ # In the *_services_pb.rb files, change the module names.
39
+ # * rename ::ControlClient to ::MomentoProtos::ControlClient
40
+ # * rename ::CacheClient to ::MomentoProtos::CacheClient
41
+ for file in *_services_pb.rb; do
42
+ sed -i '' -E 's/::ControlClient::/::MomentoProtos::ControlClient::/g' $file
43
+ sed -i '' -E 's/::CacheClient::/::MomentoProtos::CacheClient::/g' $file
44
+ done
45
+
46
+ # Run the linter
47
+ rubocop -A *_pb.rb
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
4
+ # source: leaderboard.proto
5
+
6
+ require 'google/protobuf'
7
+
8
+ require_relative 'common_pb'
9
+
10
+ descriptor_data = "\n\x11leaderboard.proto\x12\x0bleaderboard\x1a\x0c\x63ommon.proto\"+\n\x08_Element\x12\n\n\x02id\x18\x01 \x01(\r\x12\r\n\x05score\x18\x03 \x01(\x01J\x04\x08\x02\x10\x03\"?\n\x0e_RankedElement\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04rank\x18\x03 \x01(\r\x12\r\n\x05score\x18\x04 \x01(\x01J\x04\x08\x02\x10\x03\"<\n\n_RankRange\x12\x17\n\x0fstart_inclusive\x18\x01 \x01(\r\x12\x15\n\rend_exclusive\x18\x02 \x01(\r\"\xb3\x01\n\x0b_ScoreRange\x12+\n\runbounded_min\x18\x01 \x01(\x0b\x32\x12.common._UnboundedH\x00\x12\x17\n\rmin_inclusive\x18\x05 \x01(\x01H\x00\x12+\n\runbounded_max\x18\x03 \x01(\x0b\x32\x12.common._UnboundedH\x01\x12\x17\n\rmax_exclusive\x18\x06 \x01(\x01H\x01\x42\x05\n\x03minB\x05\n\x03maxJ\x04\x08\x02\x10\x03J\x04\x08\x04\x10\x05\"D\n\x19_DeleteLeaderboardRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\x12\x13\n\x0bleaderboard\x18\x02 \x01(\t\"G\n\x1c_GetLeaderboardLengthRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\x12\x13\n\x0bleaderboard\x18\x02 \x01(\t\".\n\x1d_GetLeaderboardLengthResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\r\"j\n\x16_UpsertElementsRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\x12\x13\n\x0bleaderboard\x18\x02 \x01(\t\x12'\n\x08\x65lements\x18\x03 \x03(\x0b\x32\x15.leaderboard._Element\"\x8d\x01\n\x11_GetByRankRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\x12\x13\n\x0bleaderboard\x18\x02 \x01(\t\x12+\n\nrank_range\x18\x03 \x01(\x0b\x32\x17.leaderboard._RankRange\x12\"\n\x05order\x18\x04 \x01(\x0e\x32\x13.leaderboard._Order\"C\n\x12_GetByRankResponse\x12-\n\x08\x65lements\x18\x01 \x03(\x0b\x32\x1b.leaderboard._RankedElement\"k\n\x0f_GetRankRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\x12\x13\n\x0bleaderboard\x18\x02 \x01(\t\x12\x0b\n\x03ids\x18\x03 \x03(\r\x12\"\n\x05order\x18\x04 \x01(\x0e\x32\x13.leaderboard._Order\"A\n\x10_GetRankResponse\x12-\n\x08\x65lements\x18\x01 \x03(\x0b\x32\x1b.leaderboard._RankedElement\"N\n\x16_RemoveElementsRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\x12\x13\n\x0bleaderboard\x18\x02 \x01(\t\x12\x0b\n\x03ids\x18\x03 \x03(\r\"\xb8\x01\n\x12_GetByScoreRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\x12\x13\n\x0bleaderboard\x18\x02 \x01(\t\x12-\n\x0bscore_range\x18\x03 \x01(\x0b\x32\x18.leaderboard._ScoreRange\x12\x0e\n\x06offset\x18\x04 \x01(\r\x12\x16\n\x0elimit_elements\x18\x05 \x01(\r\x12\"\n\x05order\x18\x06 \x01(\x0e\x32\x13.leaderboard._Order\"D\n\x13_GetByScoreResponse\x12-\n\x08\x65lements\x18\x01 \x03(\x0b\x32\x1b.leaderboard._RankedElement*'\n\x06_Order\x12\r\n\tASCENDING\x10\x00\x12\x0e\n\nDESCENDING\x10\x01\x32\xbe\x04\n\x0bLeaderboard\x12K\n\x11\x44\x65leteLeaderboard\x12&.leaderboard._DeleteLeaderboardRequest\x1a\x0e.common._Empty\x12\x45\n\x0eUpsertElements\x12#.leaderboard._UpsertElementsRequest\x1a\x0e.common._Empty\x12\x45\n\x0eRemoveElements\x12#.leaderboard._RemoveElementsRequest\x1a\x0e.common._Empty\x12m\n\x14GetLeaderboardLength\x12).leaderboard._GetLeaderboardLengthRequest\x1a*.leaderboard._GetLeaderboardLengthResponse\x12L\n\tGetByRank\x12\x1e.leaderboard._GetByRankRequest\x1a\x1f.leaderboard._GetByRankResponse\x12\x46\n\x07GetRank\x12\x1c.leaderboard._GetRankRequest\x1a\x1d.leaderboard._GetRankResponse\x12O\n\nGetByScore\x12\x1f.leaderboard._GetByScoreRequest\x1a .leaderboard._GetByScoreResponseBc\n\x10grpc.leaderboardP\x01Z0github.com/momentohq/client-sdk-go;client_sdk_go\xaa\x02\x1aMomento.Protos.Leaderboardb\x06proto3"
11
+
12
+ pool = Google::Protobuf::DescriptorPool.generated_pool
13
+
14
+ begin
15
+ pool.add_serialized_file(descriptor_data)
16
+ rescue TypeError
17
+ # Compatibility code: will be removed in the next major version.
18
+ require_relative 'google/protobuf/descriptor_pb'
19
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
20
+ parsed.clear_dependency
21
+ serialized = parsed.class.encode(parsed)
22
+ file = pool.add_serialized_file(serialized)
23
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
24
+ imports = [
25
+ ["common._Unbounded", "common.proto"]
26
+ ]
27
+ imports.each do |type_name, expected_filename|
28
+ import_file = pool.lookup(type_name).file_descriptor
29
+ if import_file.name != expected_filename
30
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
31
+ end
32
+ end
33
+ warn "Each proto file must use a consistent fully-qualified name."
34
+ warn "This will become an error in the next major version."
35
+ end
36
+
37
+ module MomentoProtos
38
+ module Leaderboard
39
+ PB__Element = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._Element").msgclass
40
+ PB__RankedElement = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._RankedElement").msgclass
41
+ PB__RankRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._RankRange").msgclass
42
+ PB__ScoreRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._ScoreRange").msgclass
43
+ PB__DeleteLeaderboardRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._DeleteLeaderboardRequest").msgclass
44
+ PB__GetLeaderboardLengthRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._GetLeaderboardLengthRequest").msgclass
45
+ PB__GetLeaderboardLengthResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._GetLeaderboardLengthResponse").msgclass
46
+ PB__UpsertElementsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._UpsertElementsRequest").msgclass
47
+ PB__GetByRankRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._GetByRankRequest").msgclass
48
+ PB__GetByRankResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._GetByRankResponse").msgclass
49
+ PB__GetRankRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._GetRankRequest").msgclass
50
+ PB__GetRankResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._GetRankResponse").msgclass
51
+ PB__RemoveElementsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._RemoveElementsRequest").msgclass
52
+ PB__GetByScoreRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._GetByScoreRequest").msgclass
53
+ PB__GetByScoreResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._GetByScoreResponse").msgclass
54
+ PB__Order = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("leaderboard._Order").enummodule
55
+ end
56
+ end
@@ -0,0 +1,57 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: leaderboard.proto for package 'leaderboard'
3
+
4
+ require 'grpc'
5
+ require_relative 'leaderboard_pb'
6
+
7
+ module MomentoProtos
8
+ module Leaderboard
9
+ module Leaderboard
10
+ # Like a sorted set, but for leaderboards!
11
+ #
12
+ # Elements in a leaderboard are keyed by an ID, which is an unsigned 64 bit integer.
13
+ # Scores are single-precision floating point numbers.
14
+ #
15
+ # Each ID can have only 1 score.
16
+ #
17
+ # For batchy, multi-element apis, limits are 8192 elements per api call.
18
+ #
19
+ # Scores are IEEE 754 single-precision floating point numbers. This has a few
20
+ # implications you should be aware of, but the one most likely to affect you is that
21
+ # below -16777216 and above 16777216, not all integers are able to be represented.
22
+ class Service
23
+ include ::GRPC::GenericService
24
+
25
+ self.marshal_class_method = :encode
26
+ self.unmarshal_class_method = :decode
27
+ self.service_name = 'leaderboard.Leaderboard'
28
+
29
+ # Deletes a leaderboard. After this call, you're not incurring storage cost for this leaderboard anymore.
30
+ rpc :DeleteLeaderboard, ::Leaderboard::PB__DeleteLeaderboardRequest, ::Common::PB__Empty
31
+ # Insert or update elements in a leaderboard. You can do up to 8192 elements per call.
32
+ # There is no partial failure: Upsert succeeds or fails.
33
+ rpc :UpsertElements, ::Leaderboard::PB__UpsertElementsRequest, ::Common::PB__Empty
34
+ # Remove up to 8192 elements at a time from a leaderboard. Elements are removed by id.
35
+ rpc :RemoveElements, ::Leaderboard::PB__RemoveElementsRequest, ::Common::PB__Empty
36
+ # Returns the length of a leaderboard in terms of ID count.
37
+ rpc :GetLeaderboardLength, ::Leaderboard::PB__GetLeaderboardLengthRequest, ::Leaderboard::PB__GetLeaderboardLengthResponse
38
+ # Get a range of elements.
39
+ # * Ordinal, 0-based rank.
40
+ # * Range can span up to 8192 elements.
41
+ # See RankRange for details about permissible ranges.
42
+ rpc :GetByRank, ::Leaderboard::PB__GetByRankRequest, ::Leaderboard::PB__GetByRankResponse
43
+ # Get the rank of a list of particular ids in the leaderboard.
44
+ # * Ordinal, 0-based rank.
45
+ rpc :GetRank, ::Leaderboard::PB__GetRankRequest, ::Leaderboard::PB__GetRankResponse
46
+ # Get a range of elements by a score range.
47
+ # * Ordinal, 0-based rank.
48
+ #
49
+ # You can request up to 8192 elements at a time. To page through many elements that all
50
+ # fall into a score range you can repeatedly invoke this api with the offset parameter.
51
+ rpc :GetByScore, ::Leaderboard::PB__GetByScoreRequest, ::Leaderboard::PB__GetByScoreResponse
52
+ end
53
+
54
+ Stub = Service.rpc_stub_class
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
4
+ # source: permissionmessages.proto
5
+
6
+ require 'google/protobuf'
7
+
8
+ descriptor_data = "\n\x18permissionmessages.proto\x12\x13permission_messages\"\x94\x01\n\x0bPermissions\x12?\n\nsuper_user\x18\x01 \x01(\x0e\x32).permission_messages.SuperUserPermissionsH\x00\x12<\n\x08\x65xplicit\x18\x02 \x01(\x0b\x32(.permission_messages.ExplicitPermissionsH\x00\x42\x06\n\x04kind\"P\n\x13\x45xplicitPermissions\x12\x39\n\x0bpermissions\x18\x01 \x03(\x0b\x32$.permission_messages.PermissionsType\"\xee\x08\n\x0fPermissionsType\x12R\n\x11\x63\x61\x63he_permissions\x18\x01 \x01(\x0b\x32\x35.permission_messages.PermissionsType.CachePermissionsH\x00\x12R\n\x11topic_permissions\x18\x02 \x01(\x0b\x32\x35.permission_messages.PermissionsType.TopicPermissionsH\x00\x1a\x05\n\x03\x41ll\x1a-\n\rCacheSelector\x12\x14\n\ncache_name\x18\x01 \x01(\tH\x00\x42\x06\n\x04kind\x1a@\n\x11\x43\x61\x63heItemSelector\x12\r\n\x03key\x18\x01 \x01(\x0cH\x00\x12\x14\n\nkey_prefix\x18\x02 \x01(\x0cH\x00\x42\x06\n\x04kind\x1a\xf5\x02\n\x10\x43\x61\x63hePermissions\x12,\n\x04role\x18\x01 \x01(\x0e\x32\x1e.permission_messages.CacheRole\x12>\n\nall_caches\x18\x02 \x01(\x0b\x32(.permission_messages.PermissionsType.AllH\x00\x12L\n\x0e\x63\x61\x63he_selector\x18\x03 \x01(\x0b\x32\x32.permission_messages.PermissionsType.CacheSelectorH\x00\x12=\n\tall_items\x18\x04 \x01(\x0b\x32(.permission_messages.PermissionsType.AllH\x01\x12O\n\ritem_selector\x18\x05 \x01(\x0b\x32\x36.permission_messages.PermissionsType.CacheItemSelectorH\x01\x42\x07\n\x05\x63\x61\x63heB\x0c\n\ncache_item\x1aJ\n\rTopicSelector\x12\x14\n\ntopic_name\x18\x01 \x01(\tH\x00\x12\x1b\n\x11topic_name_prefix\x18\x02 \x01(\tH\x00\x42\x06\n\x04kind\x1a\xee\x02\n\x10TopicPermissions\x12,\n\x04role\x18\x01 \x01(\x0e\x32\x1e.permission_messages.TopicRole\x12>\n\nall_caches\x18\x02 \x01(\x0b\x32(.permission_messages.PermissionsType.AllH\x00\x12L\n\x0e\x63\x61\x63he_selector\x18\x03 \x01(\x0b\x32\x32.permission_messages.PermissionsType.CacheSelectorH\x00\x12>\n\nall_topics\x18\x04 \x01(\x0b\x32(.permission_messages.PermissionsType.AllH\x01\x12L\n\x0etopic_selector\x18\x05 \x01(\x0b\x32\x32.permission_messages.PermissionsType.TopicSelectorH\x01\x42\x07\n\x05\x63\x61\x63heB\x07\n\x05topicB\x06\n\x04kind*[\n\tCacheRole\x12\x13\n\x0f\x43\x61\x63hePermitNone\x10\x00\x12\x12\n\x0e\x43\x61\x63heReadWrite\x10\x01\x12\x11\n\rCacheReadOnly\x10\x02\x12\x12\n\x0e\x43\x61\x63heWriteOnly\x10\x03*[\n\tTopicRole\x12\x13\n\x0fTopicPermitNone\x10\x00\x12\x12\n\x0eTopicReadWrite\x10\x01\x12\x11\n\rTopicReadOnly\x10\x02\x12\x12\n\x0eTopicWriteOnly\x10\x03*%\n\x14SuperUserPermissions\x12\r\n\tSuperUser\x10\x00\x42r\n\x18grpc.permission_messagesP\x01Z0github.com/momentohq/client-sdk-go;client_sdk_go\xaa\x02!Momento.Protos.PermissionMessagesb\x06proto3"
9
+
10
+ pool = Google::Protobuf::DescriptorPool.generated_pool
11
+
12
+ begin
13
+ pool.add_serialized_file(descriptor_data)
14
+ rescue TypeError
15
+ # Compatibility code: will be removed in the next major version.
16
+ require_relative 'google/protobuf/descriptor_pb'
17
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
+ parsed.clear_dependency
19
+ serialized = parsed.class.encode(parsed)
20
+ file = pool.add_serialized_file(serialized)
21
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
+ imports = []
23
+ imports.each do |type_name, expected_filename|
24
+ import_file = pool.lookup(type_name).file_descriptor
25
+ if import_file.name != expected_filename
26
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
27
+ end
28
+ end
29
+ warn "Each proto file must use a consistent fully-qualified name."
30
+ warn "This will become an error in the next major version."
31
+ end
32
+
33
+ module MomentoProtos
34
+ module PermissionMessages
35
+ Permissions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.Permissions").msgclass
36
+ ExplicitPermissions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.ExplicitPermissions").msgclass
37
+ PermissionsType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.PermissionsType").msgclass
38
+ PermissionsType::All = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.PermissionsType.All").msgclass
39
+ PermissionsType::CacheSelector = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.PermissionsType.CacheSelector").msgclass
40
+ PermissionsType::CacheItemSelector = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.PermissionsType.CacheItemSelector").msgclass
41
+ PermissionsType::CachePermissions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.PermissionsType.CachePermissions").msgclass
42
+ PermissionsType::TopicSelector = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.PermissionsType.TopicSelector").msgclass
43
+ PermissionsType::TopicPermissions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.PermissionsType.TopicPermissions").msgclass
44
+ CacheRole = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.CacheRole").enummodule
45
+ TopicRole = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.TopicRole").enummodule
46
+ SuperUserPermissions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("permission_messages.SuperUserPermissions").enummodule
47
+ end
48
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
4
+ # source: token.proto
5
+
6
+ require 'google/protobuf'
7
+
8
+ require_relative 'permissionmessages_pb'
9
+
10
+ descriptor_data = "\n\x0btoken.proto\x12\x05token\x1a\x18permissionmessages.proto\"\xe5\x01\n\x1f_GenerateDisposableTokenRequest\x12?\n\x07\x65xpires\x18\x01 \x01(\x0b\x32..token._GenerateDisposableTokenRequest.Expires\x12\x12\n\nauth_token\x18\x02 \x01(\t\x12\x35\n\x0bpermissions\x18\x03 \x01(\x0b\x32 .permission_messages.Permissions\x12\x10\n\x08token_id\x18\x04 \x01(\t\x1a$\n\x07\x45xpires\x12\x19\n\x11valid_for_seconds\x18\x01 \x01(\r\"Z\n _GenerateDisposableTokenResponse\x12\x0f\n\x07\x61pi_key\x18\x01 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12\x13\n\x0bvalid_until\x18\x03 \x01(\x04\x32u\n\x05Token\x12l\n\x17GenerateDisposableToken\x12&.token._GenerateDisposableTokenRequest\x1a'.token._GenerateDisposableTokenResponse\"\x00\x42`\n\rmomento.tokenP\x01Z0github.com/momentohq/client-sdk-go;client_sdk_go\xaa\x02\x1aMomento.Protos.TokenClientb\x06proto3"
11
+
12
+ pool = Google::Protobuf::DescriptorPool.generated_pool
13
+
14
+ begin
15
+ pool.add_serialized_file(descriptor_data)
16
+ rescue TypeError
17
+ # Compatibility code: will be removed in the next major version.
18
+ require_relative 'google/protobuf/descriptor_pb'
19
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
20
+ parsed.clear_dependency
21
+ serialized = parsed.class.encode(parsed)
22
+ file = pool.add_serialized_file(serialized)
23
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
24
+ imports = [
25
+ ["permission_messages.Permissions", "permissionmessages.proto"]
26
+ ]
27
+ imports.each do |type_name, expected_filename|
28
+ import_file = pool.lookup(type_name).file_descriptor
29
+ if import_file.name != expected_filename
30
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
31
+ end
32
+ end
33
+ warn "Each proto file must use a consistent fully-qualified name."
34
+ warn "This will become an error in the next major version."
35
+ end
36
+
37
+ module MomentoProtos
38
+ module Token
39
+ PB__GenerateDisposableTokenRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("token._GenerateDisposableTokenRequest").msgclass
40
+ PB__GenerateDisposableTokenRequest::Expires = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("token._GenerateDisposableTokenRequest.Expires").msgclass
41
+ PB__GenerateDisposableTokenResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("token._GenerateDisposableTokenResponse").msgclass
42
+ end
43
+ end
@@ -0,0 +1,23 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: token.proto for package 'token'
3
+
4
+ require 'grpc'
5
+ require_relative 'token_pb'
6
+
7
+ module MomentoProtos
8
+ module Token
9
+ module Token
10
+ class Service
11
+ include ::GRPC::GenericService
12
+
13
+ self.marshal_class_method = :encode
14
+ self.unmarshal_class_method = :decode
15
+ self.service_name = 'token.Token'
16
+
17
+ rpc :GenerateDisposableToken, ::Token::PB__GenerateDisposableTokenRequest, ::Token::PB__GenerateDisposableTokenResponse
18
+ end
19
+
20
+ Stub = Service.rpc_stub_class
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
4
+ # source: webhook.proto
5
+
6
+ require 'google/protobuf'
7
+
8
+ descriptor_data = "\n\rwebhook.proto\x12\x07webhook\"6\n\n_WebhookId\x12\x12\n\ncache_name\x18\x01 \x01(\t\x12\x14\n\x0cwebhook_name\x18\x02 \x01(\t\"z\n\x08_Webhook\x12'\n\nwebhook_id\x18\x01 \x01(\x0b\x32\x13.webhook._WebhookId\x12\x12\n\ntopic_name\x18\x02 \x01(\t\x12\x31\n\x0b\x64\x65stination\x18\x03 \x01(\x0b\x32\x1c.webhook._WebhookDestination\"8\n\x12_PutWebhookRequest\x12\"\n\x07webhook\x18\x01 \x01(\x0b\x32\x11.webhook._Webhook\",\n\x13_PutWebhookResponse\x12\x15\n\rsecret_string\x18\x01 \x01(\t\"@\n\x15_DeleteWebhookRequest\x12'\n\nwebhook_id\x18\x01 \x01(\x0b\x32\x13.webhook._WebhookId\"\x18\n\x16_DeleteWebhookResponse\")\n\x13_ListWebhookRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\";\n\x15_ListWebhooksResponse\x12\"\n\x07webhook\x18\x01 \x03(\x0b\x32\x11.webhook._Webhook\"D\n\x18_GetWebhookSecretRequest\x12\x12\n\ncache_name\x18\x01 \x01(\t\x12\x14\n\x0cwebhook_name\x18\x02 \x01(\t\"\\\n\x19_GetWebhookSecretResponse\x12\x12\n\ncache_name\x18\x01 \x01(\t\x12\x14\n\x0cwebhook_name\x18\x02 \x01(\t\x12\x15\n\rsecret_string\x18\x03 \x01(\t\"1\n\x13_WebhookDestination\x12\x12\n\x08post_url\x18\x01 \x01(\tH\x00\x42\x06\n\x04kind\"F\n\x1b_RotateWebhookSecretRequest\x12'\n\nwebhook_id\x18\x01 \x01(\x0b\x32\x13.webhook._WebhookId\"5\n\x1c_RotateWebhookSecretResponse\x12\x15\n\rsecret_string\x18\x01 \x01(\t2\xbb\x03\n\x07Webhook\x12I\n\nPutWebhook\x12\x1b.webhook._PutWebhookRequest\x1a\x1c.webhook._PutWebhookResponse\"\x00\x12R\n\rDeleteWebhook\x12\x1e.webhook._DeleteWebhookRequest\x1a\x1f.webhook._DeleteWebhookResponse\"\x00\x12N\n\x0cListWebhooks\x12\x1c.webhook._ListWebhookRequest\x1a\x1e.webhook._ListWebhooksResponse\"\x00\x12[\n\x10GetWebhookSecret\x12!.webhook._GetWebhookSecretRequest\x1a\".webhook._GetWebhookSecretResponse\"\x00\x12\x64\n\x13RotateWebhookSecret\x12$.webhook._RotateWebhookSecretRequest\x1a%.webhook._RotateWebhookSecretResponse\"\x00\x42[\n\x0cgrpc.webhookP\x01Z0github.com/momentohq/client-sdk-go;client_sdk_go\xaa\x02\x16Momento.Protos.Webhookb\x06proto3"
9
+
10
+ pool = Google::Protobuf::DescriptorPool.generated_pool
11
+
12
+ begin
13
+ pool.add_serialized_file(descriptor_data)
14
+ rescue TypeError
15
+ # Compatibility code: will be removed in the next major version.
16
+ require_relative 'google/protobuf/descriptor_pb'
17
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
+ parsed.clear_dependency
19
+ serialized = parsed.class.encode(parsed)
20
+ file = pool.add_serialized_file(serialized)
21
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
+ imports = []
23
+ imports.each do |type_name, expected_filename|
24
+ import_file = pool.lookup(type_name).file_descriptor
25
+ if import_file.name != expected_filename
26
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
27
+ end
28
+ end
29
+ warn "Each proto file must use a consistent fully-qualified name."
30
+ warn "This will become an error in the next major version."
31
+ end
32
+
33
+ module MomentoProtos
34
+ module Webhook
35
+ PB__WebhookId = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._WebhookId").msgclass
36
+ PB__Webhook = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._Webhook").msgclass
37
+ PB__PutWebhookRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._PutWebhookRequest").msgclass
38
+ PB__PutWebhookResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._PutWebhookResponse").msgclass
39
+ PB__DeleteWebhookRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._DeleteWebhookRequest").msgclass
40
+ PB__DeleteWebhookResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._DeleteWebhookResponse").msgclass
41
+ PB__ListWebhookRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._ListWebhookRequest").msgclass
42
+ PB__ListWebhooksResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._ListWebhooksResponse").msgclass
43
+ PB__GetWebhookSecretRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._GetWebhookSecretRequest").msgclass
44
+ PB__GetWebhookSecretResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._GetWebhookSecretResponse").msgclass
45
+ PB__WebhookDestination = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._WebhookDestination").msgclass
46
+ PB__RotateWebhookSecretRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._RotateWebhookSecretRequest").msgclass
47
+ PB__RotateWebhookSecretResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("webhook._RotateWebhookSecretResponse").msgclass
48
+ end
49
+ end
@@ -0,0 +1,32 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: webhook.proto for package 'webhook'
3
+
4
+ require 'grpc'
5
+ require_relative 'webhook_pb'
6
+
7
+ module MomentoProtos
8
+ module Webhook
9
+ module Webhook
10
+ # A Webhook is a mechanism to consume messages on a Topic.
11
+ # The primary purpose of webhooks in Momento is to enable
12
+ # Lambda to be a subscriber to the messages sent on a topic.
13
+ # Secondarily, webhooks open us up to a whole lot of integrations
14
+ # (slack, discord, event bridge, etc).
15
+ class Service
16
+ include ::GRPC::GenericService
17
+
18
+ self.marshal_class_method = :encode
19
+ self.unmarshal_class_method = :decode
20
+ self.service_name = 'webhook.Webhook'
21
+
22
+ rpc :PutWebhook, ::Webhook::PB__PutWebhookRequest, ::Webhook::PB__PutWebhookResponse
23
+ rpc :DeleteWebhook, ::Webhook::PB__DeleteWebhookRequest, ::Webhook::PB__DeleteWebhookResponse
24
+ rpc :ListWebhooks, ::Webhook::PB__ListWebhookRequest, ::Webhook::PB__ListWebhooksResponse
25
+ rpc :GetWebhookSecret, ::Webhook::PB__GetWebhookSecretRequest, ::Webhook::PB__GetWebhookSecretResponse
26
+ rpc :RotateWebhookSecret, ::Webhook::PB__RotateWebhookSecretRequest, ::Webhook::PB__RotateWebhookSecretResponse
27
+ end
28
+
29
+ Stub = Service.rpc_stub_class
30
+ end
31
+ end
32
+ end
@@ -1,52 +1,61 @@
1
- require 'grpc'
2
- require 'momento/controlclient_pb'
1
+ require_relative '../error'
2
+ require_relative '../../generated/controlclient_pb'
3
3
 
4
4
  module Momento
5
- # Responses specific to create_cache.
5
+ # A response from creating a cache.
6
6
  class CreateCacheResponse < Response
7
- # Build a Momento::CreateCacheResponse from a block of code
8
- # which returns a Momento::ControlClient::CreateCacheResponse.
9
- #
10
- # @return [Momento::CreateCacheResponse]
11
- # @raise [StandardError] when the exception is not recognized.
12
- # @raise [TypeError] when the response is not recognized.
13
- def self.from_block
14
- response = yield
15
- rescue GRPC::AlreadyExists
16
- return AlreadyExists.new
17
- rescue GRPC::BadStatus => e
18
- Error.new(grpc_exception: e)
19
- else
20
- raise TypeError unless response.is_a?(Momento::ControlClient::CreateCacheResponse)
21
-
22
- return Success.new
23
- end
24
-
7
+ # Does the cache already exist?
8
+ # @return [Boolean]
25
9
  def already_exists?
26
10
  false
27
11
  end
28
12
 
13
+ # Was the cache created?
14
+ # @return [Boolean]
29
15
  def success?
30
16
  false
31
17
  end
32
18
 
33
- # A cache with that name already exists.
19
+ # @private
34
20
  class AlreadyExists < CreateCacheResponse
35
21
  def already_exists?
36
22
  true
37
23
  end
38
24
  end
39
25
 
40
- # The cache was created.
26
+ # @private
41
27
  class Success < CreateCacheResponse
42
28
  def success?
43
29
  true
44
30
  end
45
31
  end
46
32
 
47
- # There was an error creating the cache.
33
+ # @private
48
34
  class Error < CreateCacheResponse
49
35
  include ::Momento::Response::Error
50
36
  end
51
37
  end
38
+
39
+ # @private
40
+ class CreateCacheResponseBuilder < ResponseBuilder
41
+ # Build a Momento::CreateCacheResponse from a block of code
42
+ # which returns a Momento::ControlClient::CreateCacheResponse.
43
+ #
44
+ # @return [Momento::CreateCacheResponse]
45
+ # @raise [StandardError] when the exception is not recognized.
46
+ # @raise [TypeError] when the response is not recognized.
47
+ def from_block
48
+ response = yield
49
+ rescue GRPC::AlreadyExists
50
+ return CreateCacheResponse::AlreadyExists.new
51
+ rescue *RESCUED_EXCEPTIONS => e
52
+ CreateCacheResponse::Error.new(
53
+ exception: e, context: context
54
+ )
55
+ else
56
+ raise TypeError unless response.is_a?(::MomentoProtos::ControlClient::PB__CreateCacheResponse)
57
+
58
+ return CreateCacheResponse::Success.new
59
+ end
60
+ end
52
61
  end