momento 0.2.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.release-please-manifest.json +1 -1
- data/.rubocop.yml +14 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +105 -0
- data/CONTRIBUTING.md +5 -6
- data/Gemfile +1 -6
- data/Gemfile.lock +34 -28
- data/README.md +64 -44
- data/README.template.md +30 -25
- data/examples/.gitignore +1 -0
- data/examples/Gemfile +1 -1
- data/examples/README.md +5 -6
- data/examples/compact.rb +13 -9
- data/examples/example.rb +24 -8
- data/examples/file.rb +7 -6
- data/lib/README-generating-pb.txt +1 -1
- data/lib/momento/auth/credential_provider.rb +78 -0
- data/lib/momento/cache_client.rb +478 -0
- data/lib/momento/collection_ttl.rb +79 -0
- data/lib/momento/config/configuration.rb +42 -0
- data/lib/momento/config/configurations.rb +24 -0
- data/lib/momento/config/transport/grpc_configuration.rb +35 -0
- data/lib/momento/config/transport/static_transport_strategy.rb +12 -0
- data/lib/momento/config/transport/transport_strategy.rb +16 -0
- data/lib/momento/error/types.rb +22 -0
- data/lib/momento/generated/README.md +16 -0
- data/lib/momento/generated/auth_pb.rb +52 -0
- data/lib/momento/generated/auth_services_pb.rb +27 -0
- data/lib/momento/generated/cacheclient_pb.rb +203 -0
- data/lib/momento/generated/cacheclient_services_pb.rb +90 -0
- data/lib/momento/generated/cacheping_pb.rb +38 -0
- data/lib/momento/generated/cacheping_services_pb.rb +23 -0
- data/lib/momento/generated/cachepubsub_pb.rb +48 -0
- data/lib/momento/generated/cachepubsub_services_pb.rb +56 -0
- data/lib/momento/generated/common_pb.rb +44 -0
- data/lib/momento/generated/controlclient_pb.rb +72 -0
- data/lib/momento/generated/controlclient_services_pb.rb +35 -0
- data/lib/momento/generated/extensions_pb.rb +35 -0
- data/lib/momento/generated/generate_protos.sh +47 -0
- data/lib/momento/generated/leaderboard_pb.rb +56 -0
- data/lib/momento/generated/leaderboard_services_pb.rb +57 -0
- data/lib/momento/generated/permissionmessages_pb.rb +48 -0
- data/lib/momento/generated/token_pb.rb +43 -0
- data/lib/momento/generated/token_services_pb.rb +23 -0
- data/lib/momento/generated/webhook_pb.rb +49 -0
- data/lib/momento/generated/webhook_services_pb.rb +32 -0
- data/lib/momento/response/control/create_cache_response.rb +61 -0
- data/lib/momento/{delete_cache_response_builder.rb → response/control/delete_cache_response.rb} +24 -3
- data/lib/momento/response/control/list_caches_response.rb +80 -0
- data/lib/momento/{delete_response_builder.rb → response/delete_response.rb} +24 -2
- data/lib/momento/{get_response.rb → response/get_response.rb} +39 -9
- data/lib/momento/{response.rb → response/response.rb} +11 -14
- data/lib/momento/response/set_response.rb +59 -0
- data/lib/momento/response/sort_order.rb +11 -0
- data/lib/momento/response/sorted_set/sorted_set_fetch_response.rb +107 -0
- data/lib/momento/response/sorted_set/sorted_set_put_element_response.rb +44 -0
- data/lib/momento/response/sorted_set/sorted_set_put_elements_response.rb +44 -0
- data/lib/momento/version.rb +1 -1
- data/lib/momento.rb +6 -1
- data/momento.gemspec +5 -3
- data/release-please-config.json +1 -1
- data/sig/momento/auth/credential_provider.rbs +11 -0
- data/sig/momento/cache_client.rbs +11 -0
- data/sig/momento/collection_ttl.rbs +22 -0
- data/sig/momento/config/configuration.rbs +13 -0
- data/sig/momento/config/configurations.rbs +9 -0
- data/sig/momento/config/transport/grpc_configuration.rbs +9 -0
- data/sig/momento/config/transport/transport_strategy.rbs +7 -0
- data/sig/momento/list_caches_response.rbs +7 -0
- data/sig/momento/sorted_set_fetch_response.rbs +13 -0
- data/sig/momento/sorted_set_put_element_response.rbs +5 -0
- data/sig/momento/sorted_set_put_elements_response.rbs +5 -0
- metadata +101 -40
- data/lib/momento/cacheclient_pb.rb +0 -334
- data/lib/momento/cacheclient_services_pb.rb +0 -44
- data/lib/momento/controlclient_pb.rb +0 -73
- data/lib/momento/controlclient_services_pb.rb +0 -31
- data/lib/momento/create_cache_response.rb +0 -37
- data/lib/momento/create_cache_response_builder.rb +0 -27
- data/lib/momento/delete_cache_response.rb +0 -24
- data/lib/momento/delete_response.rb +0 -24
- data/lib/momento/get_response_builder.rb +0 -37
- data/lib/momento/list_caches_response.rb +0 -77
- data/lib/momento/list_caches_response_builder.rb +0 -25
- data/lib/momento/set_response.rb +0 -39
- data/lib/momento/set_response_builder.rb +0 -25
- data/lib/momento/simple_cache_client.rb +0 -336
- /data/lib/momento/{response_builder.rb → response/response_builder.rb} +0 -0
@@ -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
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require_relative '../error'
|
2
|
+
require_relative '../../generated/controlclient_pb'
|
3
|
+
|
4
|
+
module Momento
|
5
|
+
# A response from creating a cache.
|
6
|
+
class CreateCacheResponse < Response
|
7
|
+
# Does the cache already exist?
|
8
|
+
# @return [Boolean]
|
9
|
+
def already_exists?
|
10
|
+
false
|
11
|
+
end
|
12
|
+
|
13
|
+
# Was the cache created?
|
14
|
+
# @return [Boolean]
|
15
|
+
def success?
|
16
|
+
false
|
17
|
+
end
|
18
|
+
|
19
|
+
# @private
|
20
|
+
class AlreadyExists < CreateCacheResponse
|
21
|
+
def already_exists?
|
22
|
+
true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# @private
|
27
|
+
class Success < CreateCacheResponse
|
28
|
+
def success?
|
29
|
+
true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# @private
|
34
|
+
class Error < CreateCacheResponse
|
35
|
+
include ::Momento::Response::Error
|
36
|
+
end
|
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
|
61
|
+
end
|
data/lib/momento/{delete_cache_response_builder.rb → response/control/delete_cache_response.rb}
RENAMED
@@ -1,7 +1,28 @@
|
|
1
|
-
|
2
|
-
require_relative 'controlclient_pb'
|
1
|
+
require_relative '../error'
|
2
|
+
require_relative '../../generated/controlclient_pb'
|
3
3
|
|
4
4
|
module Momento
|
5
|
+
# A response from deleting a cache.
|
6
|
+
class DeleteCacheResponse < Response
|
7
|
+
# Was the cache deleted?
|
8
|
+
# @return [Boolean]
|
9
|
+
def success?
|
10
|
+
false
|
11
|
+
end
|
12
|
+
|
13
|
+
# @private
|
14
|
+
class Error < DeleteCacheResponse
|
15
|
+
include ::Momento::Response::Error
|
16
|
+
end
|
17
|
+
|
18
|
+
# @private
|
19
|
+
class Success < DeleteCacheResponse
|
20
|
+
def success?
|
21
|
+
true
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
5
26
|
# @private
|
6
27
|
class DeleteCacheResponseBuilder < ResponseBuilder
|
7
28
|
# Build a Momento::DeleteCacheResponse from a block of code
|
@@ -17,7 +38,7 @@ module Momento
|
|
17
38
|
exception: e, context: context
|
18
39
|
)
|
19
40
|
else
|
20
|
-
raise TypeError unless response.is_a?(::
|
41
|
+
raise TypeError unless response.is_a?(::MomentoProtos::ControlClient::PB__DeleteCacheResponse)
|
21
42
|
|
22
43
|
return DeleteCacheResponse::Success.new
|
23
44
|
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require_relative '../error'
|
2
|
+
require_relative '../../generated/controlclient_pb'
|
3
|
+
|
4
|
+
module Momento
|
5
|
+
# A response from listing the caches.
|
6
|
+
class ListCachesResponse < Response
|
7
|
+
# Did it get a list of caches?
|
8
|
+
# @return [Boolean]
|
9
|
+
def success?
|
10
|
+
false
|
11
|
+
end
|
12
|
+
|
13
|
+
# The names of the caches.
|
14
|
+
# @return [Array,nil]
|
15
|
+
def cache_names
|
16
|
+
nil
|
17
|
+
end
|
18
|
+
|
19
|
+
# @!method to_s
|
20
|
+
# Displays the response and the list of cache names.
|
21
|
+
# The list of cache names will be truncated.
|
22
|
+
# @return [String]
|
23
|
+
|
24
|
+
# @private
|
25
|
+
class Success < ListCachesResponse
|
26
|
+
CACHE_NAMES_TO_DISPLAY = 5
|
27
|
+
|
28
|
+
# rubocop:disable Lint/MissingSuper
|
29
|
+
def initialize(grpc_response:)
|
30
|
+
@grpc_response = grpc_response
|
31
|
+
end
|
32
|
+
# rubocop:enable Lint/MissingSuper
|
33
|
+
|
34
|
+
def success?
|
35
|
+
true
|
36
|
+
end
|
37
|
+
|
38
|
+
def cache_names
|
39
|
+
@grpc_response.cache.map(&:cache_name)
|
40
|
+
end
|
41
|
+
|
42
|
+
def to_s
|
43
|
+
"#{super}: #{display_cache_names}"
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def display_cache_names
|
49
|
+
display = cache_names&.take(CACHE_NAMES_TO_DISPLAY)&.join(", ")
|
50
|
+
cache_names&.size&.>(CACHE_NAMES_TO_DISPLAY) ? "#{display}, ..." : display.to_s
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# @private
|
55
|
+
class Error < ListCachesResponse
|
56
|
+
include ::Momento::Response::Error
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# @private
|
61
|
+
class ListCachesResponseBuilder < ResponseBuilder
|
62
|
+
# Build a Momento::ListCachesResponse from a block of code
|
63
|
+
# which returns a Momento::ControlClient::ListCachesResponse..
|
64
|
+
#
|
65
|
+
# @return [Momento::ListCachesResponse]
|
66
|
+
# @raise [StandardError] when the exception is not recognized.
|
67
|
+
# @raise [TypeError] when the response is not recognized.
|
68
|
+
def from_block
|
69
|
+
response = yield
|
70
|
+
rescue GRPC::BadStatus => e
|
71
|
+
ListCachesResponse::Error.new(
|
72
|
+
exception: e, context: context
|
73
|
+
)
|
74
|
+
else
|
75
|
+
raise TypeError unless response.is_a?(::MomentoProtos::ControlClient::PB__ListCachesResponse)
|
76
|
+
|
77
|
+
return ListCachesResponse::Success.new(grpc_response: response)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -1,7 +1,29 @@
|
|
1
|
+
require_relative 'error'
|
1
2
|
require 'grpc'
|
2
|
-
require_relative 'cacheclient_pb'
|
3
|
+
require_relative '../generated/cacheclient_pb'
|
3
4
|
|
4
5
|
module Momento
|
6
|
+
# A response from deleting a key.
|
7
|
+
class DeleteResponse < Response
|
8
|
+
# Was the key deleted?
|
9
|
+
# @return [Boolean]
|
10
|
+
def success?
|
11
|
+
false
|
12
|
+
end
|
13
|
+
|
14
|
+
# @private
|
15
|
+
class Success < DeleteResponse
|
16
|
+
def success?
|
17
|
+
true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# @private
|
22
|
+
class Error < DeleteResponse
|
23
|
+
include Momento::Response::Error
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
5
27
|
# @private
|
6
28
|
class DeleteResponseBuilder < ResponseBuilder
|
7
29
|
# Build a Momento::DeleteResponse from a block of code
|
@@ -15,7 +37,7 @@ module Momento
|
|
15
37
|
rescue *RESCUED_EXCEPTIONS => e
|
16
38
|
DeleteResponse::Error.new(exception: e, context: context)
|
17
39
|
else
|
18
|
-
raise TypeError unless response.is_a?(::
|
40
|
+
raise TypeError unless response.is_a?(::MomentoProtos::CacheClient::PB__DeleteResponse)
|
19
41
|
|
20
42
|
DeleteResponse::Success.new
|
21
43
|
end
|
@@ -1,4 +1,5 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative 'error'
|
2
|
+
require_relative '../generated/cacheclient_pb'
|
2
3
|
|
3
4
|
module Momento
|
4
5
|
# A response containing the value retrieved from a cache.
|
@@ -22,15 +23,12 @@ module Momento
|
|
22
23
|
nil
|
23
24
|
end
|
24
25
|
|
25
|
-
# The gotten value, if any, as a string
|
26
|
+
# The gotten value, if any, as a UTF-8 string.
|
26
27
|
#
|
27
|
-
# @
|
28
|
-
|
29
|
-
# rubocop:disable Lint/UnusedMethodArgument
|
30
|
-
def value_string(encoding = Encoding.default_external)
|
28
|
+
# @return [String,nil] the value, if any.
|
29
|
+
def value_string
|
31
30
|
nil
|
32
31
|
end
|
33
|
-
# rubocop:enable Lint/UnusedMethodArgument
|
34
32
|
|
35
33
|
# @!method to_s
|
36
34
|
# Displays the response and the value, if any.
|
@@ -53,8 +51,8 @@ module Momento
|
|
53
51
|
@grpc_response.cache_body
|
54
52
|
end
|
55
53
|
|
56
|
-
def value_string
|
57
|
-
value_bytes.dup.force_encoding(
|
54
|
+
def value_string
|
55
|
+
value_bytes.dup.force_encoding('UTF-8')
|
58
56
|
end
|
59
57
|
|
60
58
|
def to_s
|
@@ -74,4 +72,36 @@ module Momento
|
|
74
72
|
include Momento::Response::Error
|
75
73
|
end
|
76
74
|
end
|
75
|
+
|
76
|
+
# @private
|
77
|
+
class GetResponseBuilder < ResponseBuilder
|
78
|
+
# Build a Momento::GetResponse from a block of code
|
79
|
+
# which returns a Momento::ControlClient::GetResponse.
|
80
|
+
#
|
81
|
+
# @return [Momento::GetResponse]
|
82
|
+
# @raise [StandardError] when the exception is not recognized.
|
83
|
+
# @raise [TypeError] when the response is not recognized.
|
84
|
+
def from_block
|
85
|
+
response = yield
|
86
|
+
rescue *RESCUED_EXCEPTIONS => e
|
87
|
+
GetResponse::Error.new(exception: e, context: context)
|
88
|
+
else
|
89
|
+
from_response(response)
|
90
|
+
end
|
91
|
+
|
92
|
+
private
|
93
|
+
|
94
|
+
def from_response(response)
|
95
|
+
raise TypeError unless response.is_a?(MomentoProtos::CacheClient::PB__GetResponse)
|
96
|
+
|
97
|
+
case response.result
|
98
|
+
when :Hit
|
99
|
+
GetResponse::Hit.new(grpc_response: response)
|
100
|
+
when :Miss
|
101
|
+
GetResponse::Miss.new
|
102
|
+
else
|
103
|
+
raise "Unknown get result: #{response.result}"
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
77
107
|
end
|
@@ -1,27 +1,24 @@
|
|
1
1
|
require 'grpc'
|
2
|
-
require_relative 'response/error'
|
3
2
|
require_relative 'error'
|
4
|
-
require_relative 'error
|
5
|
-
require_relative 'error/
|
6
|
-
require_relative '
|
3
|
+
require_relative '../error'
|
4
|
+
require_relative '../error/grpc_details'
|
5
|
+
require_relative '../error/transport_details'
|
6
|
+
require_relative '../error_builder'
|
7
7
|
require_relative 'response_builder'
|
8
|
-
require_relative 'create_cache_response'
|
9
|
-
require_relative 'create_cache_response_builder'
|
8
|
+
require_relative 'control/create_cache_response'
|
10
9
|
require_relative 'delete_response'
|
11
|
-
require_relative '
|
12
|
-
require_relative 'delete_cache_response'
|
13
|
-
require_relative 'delete_cache_response_builder'
|
10
|
+
require_relative 'control/delete_cache_response'
|
14
11
|
require_relative 'get_response'
|
15
|
-
require_relative '
|
16
|
-
require_relative 'list_caches_response'
|
17
|
-
require_relative 'list_caches_response_builder'
|
12
|
+
require_relative 'control/list_caches_response'
|
18
13
|
require_relative 'set_response'
|
19
|
-
require_relative '
|
14
|
+
require_relative 'sorted_set/sorted_set_put_element_response'
|
15
|
+
require_relative 'sorted_set/sorted_set_put_elements_response'
|
16
|
+
require_relative 'sorted_set/sorted_set_fetch_response'
|
20
17
|
|
21
18
|
module Momento
|
22
19
|
# The response from a Momento service request.
|
23
20
|
#
|
24
|
-
# {Momento::
|
21
|
+
# {Momento::CacheClient} returns a response for both success
|
25
22
|
# and error, as well as other states. See the documenation for each
|
26
23
|
# type of response for more.
|
27
24
|
#
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require_relative 'error'
|
2
|
+
require_relative '../generated/cacheclient_pb'
|
3
|
+
|
4
|
+
module Momento
|
5
|
+
# A response from setting a key.
|
6
|
+
class SetResponse < Response
|
7
|
+
# Was the key/value pair added to the cache?
|
8
|
+
# @return [Boolean]
|
9
|
+
def success?
|
10
|
+
false
|
11
|
+
end
|
12
|
+
|
13
|
+
# @private
|
14
|
+
class Success < SetResponse
|
15
|
+
attr_accessor :key, :value
|
16
|
+
|
17
|
+
# rubocop:disable Lint/MissingSuper
|
18
|
+
def initialize(key:, value:)
|
19
|
+
@key = key
|
20
|
+
@value = value
|
21
|
+
|
22
|
+
return
|
23
|
+
end
|
24
|
+
# rubocop:enable Lint/MissingSuper
|
25
|
+
|
26
|
+
def success?
|
27
|
+
true
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_s
|
31
|
+
"#{super}: '#{display_string(key)}' = '#{display_string(value)}'"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# @private
|
36
|
+
class Error < SetResponse
|
37
|
+
include Momento::Response::Error
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# @private
|
42
|
+
class SetResponseBuilder < ResponseBuilder
|
43
|
+
# Build a Momento::SetResponse from a block of code
|
44
|
+
# which returns a Momento::CacheClient::SetResponse..
|
45
|
+
#
|
46
|
+
# @return [Momento::SetResponse]
|
47
|
+
# @raise [StandardError] when the exception is not recognized.
|
48
|
+
# @raise [TypeError] when the response is not recognized.
|
49
|
+
def from_block
|
50
|
+
response = yield
|
51
|
+
rescue *RESCUED_EXCEPTIONS => e
|
52
|
+
SetResponse::Error.new(exception: e, context: context)
|
53
|
+
else
|
54
|
+
raise TypeError unless response.is_a?(::MomentoProtos::CacheClient::PB__SetResponse)
|
55
|
+
|
56
|
+
SetResponse::Success.new(key: context[:key], value: context[:value])
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|