syntax = "proto3"; package cosmos.base.reflection.v1beta1; import "google/api/annotations.proto"; option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/reflection"; // ReflectionService defines a service for interface reflection. service ReflectionService { // ListAllInterfaces lists all the interfaces registered in the interface // registry. rpc ListAllInterfaces(ListAllInterfacesRequest) returns (ListAllInterfacesResponse) { option (google.api.http).get = "/cosmos/base/reflection/v1beta1/interfaces"; }; // ListImplementations list all the concrete types that implement a given // interface. rpc ListImplementations(ListImplementationsRequest) returns (ListImplementationsResponse) { option (google.api.http).get = "/cosmos/base/reflection/v1beta1/interfaces/" "{interface_name}/implementations"; }; } // ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. message ListAllInterfacesRequest {} // ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. message ListAllInterfacesResponse { // interface_names is an array of all the registered interfaces. repeated string interface_names = 1; } // ListImplementationsRequest is the request type of the ListImplementations // RPC. message ListImplementationsRequest { // interface_name defines the interface to query the implementations for. string interface_name = 1; } // ListImplementationsResponse is the response type of the ListImplementations // RPC. message ListImplementationsResponse { repeated string implementation_message_names = 1; }