// Hand-written gRPC bindings for keymanager.proto using JSON codec. // To use: register the JSON codec before creating gRPC servers/clients. package pb import ( "context" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) // Message types type RegisterRequest struct { ServerId string `json:"server_id"` PreRegToken string `json:"pre_reg_token"` Hostname string `json:"hostname"` IpAddress string `json:"ip_address"` OsInfo string `json:"os_info"` } type RegisterResponse struct { AgentToken string `json:"agent_token"` } type SyncRequest struct { ServerId string `json:"server_id"` AgentToken string `json:"agent_token"` } type SyncResponse struct { PublicKeys []string `json:"public_keys"` } type UploadKeyRequest struct { ServerId string `json:"server_id"` AgentToken string `json:"agent_token"` PublicKey string `json:"public_key"` Label string `json:"label"` } type UploadKeyResponse struct { KeyId string `json:"key_id"` } // CommandStream message types type ServerCommand struct { CommandId string `json:"command_id"` GenerateKey *GenerateKeyCmd `json:"generate_key,omitempty"` } type GenerateKeyCmd struct { Label string `json:"label"` } type AgentMessage struct { ServerId string `json:"server_id"` AgentToken string `json:"agent_token"` Ready *AgentReady `json:"ready,omitempty"` Result *CommandResult `json:"result,omitempty"` } type AgentReady struct{} type CommandResult struct { CommandId string `json:"command_id"` Success bool `json:"success"` Message string `json:"message"` } // CommandStream server-side interface type KeyManager_CommandStreamServer interface { Send(*ServerCommand) error Recv() (*AgentMessage, error) grpc.ServerStream } type keyManagerCommandStreamServer struct { grpc.ServerStream } func (s *keyManagerCommandStreamServer) Send(m *ServerCommand) error { return s.ServerStream.SendMsg(m) } func (s *keyManagerCommandStreamServer) Recv() (*AgentMessage, error) { m := new(AgentMessage) if err := s.ServerStream.RecvMsg(m); err != nil { return nil, err } return m, nil } // CommandStream client-side interface type KeyManager_CommandStreamClient interface { Send(*AgentMessage) error Recv() (*ServerCommand, error) grpc.ClientStream } type keyManagerCommandStreamClient struct { grpc.ClientStream } func (c *keyManagerCommandStreamClient) Send(m *AgentMessage) error { return c.ClientStream.SendMsg(m) } func (c *keyManagerCommandStreamClient) Recv() (*ServerCommand, error) { m := new(ServerCommand) if err := c.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } // Server interface type KeyManagerServer interface { Register(context.Context, *RegisterRequest) (*RegisterResponse, error) SyncKeys(context.Context, *SyncRequest) (*SyncResponse, error) UploadGeneratedKey(context.Context, *UploadKeyRequest) (*UploadKeyResponse, error) CommandStream(KeyManager_CommandStreamServer) error } type UnimplementedKeyManagerServer struct{} func (UnimplementedKeyManagerServer) Register(context.Context, *RegisterRequest) (*RegisterResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Register not implemented") } func (UnimplementedKeyManagerServer) SyncKeys(context.Context, *SyncRequest) (*SyncResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SyncKeys not implemented") } func (UnimplementedKeyManagerServer) UploadGeneratedKey(context.Context, *UploadKeyRequest) (*UploadKeyResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UploadGeneratedKey not implemented") } func (UnimplementedKeyManagerServer) CommandStream(KeyManager_CommandStreamServer) error { return status.Errorf(codes.Unimplemented, "method CommandStream not implemented") } // Client interface type KeyManagerClient interface { Register(ctx context.Context, in *RegisterRequest, opts ...grpc.CallOption) (*RegisterResponse, error) SyncKeys(ctx context.Context, in *SyncRequest, opts ...grpc.CallOption) (*SyncResponse, error) UploadGeneratedKey(ctx context.Context, in *UploadKeyRequest, opts ...grpc.CallOption) (*UploadKeyResponse, error) CommandStream(ctx context.Context, opts ...grpc.CallOption) (KeyManager_CommandStreamClient, error) } type keyManagerClient struct { cc grpc.ClientConnInterface } func NewKeyManagerClient(cc grpc.ClientConnInterface) KeyManagerClient { return &keyManagerClient{cc} } func (c *keyManagerClient) Register(ctx context.Context, in *RegisterRequest, opts ...grpc.CallOption) (*RegisterResponse, error) { out := new(RegisterResponse) if err := c.cc.Invoke(ctx, "/keymanager.v1.KeyManager/Register", in, out, opts...); err != nil { return nil, err } return out, nil } func (c *keyManagerClient) SyncKeys(ctx context.Context, in *SyncRequest, opts ...grpc.CallOption) (*SyncResponse, error) { out := new(SyncResponse) if err := c.cc.Invoke(ctx, "/keymanager.v1.KeyManager/SyncKeys", in, out, opts...); err != nil { return nil, err } return out, nil } func (c *keyManagerClient) UploadGeneratedKey(ctx context.Context, in *UploadKeyRequest, opts ...grpc.CallOption) (*UploadKeyResponse, error) { out := new(UploadKeyResponse) if err := c.cc.Invoke(ctx, "/keymanager.v1.KeyManager/UploadGeneratedKey", in, out, opts...); err != nil { return nil, err } return out, nil } func (c *keyManagerClient) CommandStream(ctx context.Context, opts ...grpc.CallOption) (KeyManager_CommandStreamClient, error) { stream, err := c.cc.NewStream(ctx, &KeyManager_ServiceDesc.Streams[0], "/keymanager.v1.KeyManager/CommandStream", opts...) if err != nil { return nil, err } return &keyManagerCommandStreamClient{stream}, nil } // Server registration func RegisterKeyManagerServer(s grpc.ServiceRegistrar, srv KeyManagerServer) { s.RegisterService(&KeyManager_ServiceDesc, srv) } var KeyManager_ServiceDesc = grpc.ServiceDesc{ ServiceName: "keymanager.v1.KeyManager", HandlerType: (*KeyManagerServer)(nil), Methods: []grpc.MethodDesc{ {MethodName: "Register", Handler: _KeyManager_Register_Handler}, {MethodName: "SyncKeys", Handler: _KeyManager_SyncKeys_Handler}, {MethodName: "UploadGeneratedKey", Handler: _KeyManager_UploadGeneratedKey_Handler}, }, Streams: []grpc.StreamDesc{ { StreamName: "CommandStream", Handler: _KeyManager_CommandStream_Handler, ServerStreams: true, ClientStreams: true, }, }, Metadata: "keymanager/v1/keymanager.proto", } func _KeyManager_Register_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RegisterRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(KeyManagerServer).Register(ctx, in) } info := &grpc.UnaryServerInfo{Server: srv, FullMethod: "/keymanager.v1.KeyManager/Register"} handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(KeyManagerServer).Register(ctx, req.(*RegisterRequest)) } return interceptor(ctx, in, info, handler) } func _KeyManager_SyncKeys_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SyncRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(KeyManagerServer).SyncKeys(ctx, in) } info := &grpc.UnaryServerInfo{Server: srv, FullMethod: "/keymanager.v1.KeyManager/SyncKeys"} handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(KeyManagerServer).SyncKeys(ctx, req.(*SyncRequest)) } return interceptor(ctx, in, info, handler) } func _KeyManager_UploadGeneratedKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UploadKeyRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(KeyManagerServer).UploadGeneratedKey(ctx, in) } info := &grpc.UnaryServerInfo{Server: srv, FullMethod: "/keymanager.v1.KeyManager/UploadGeneratedKey"} handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(KeyManagerServer).UploadGeneratedKey(ctx, req.(*UploadKeyRequest)) } return interceptor(ctx, in, info, handler) } func _KeyManager_CommandStream_Handler(srv interface{}, stream grpc.ServerStream) error { return srv.(KeyManagerServer).CommandStream(&keyManagerCommandStreamServer{stream}) }